Proyecto 15 Displays

7
ESCUELA POLITÉCNICA DEL EJÉRCITO INGENIERIA MECATRONICA MICROPROCESADORES Y MICROCONTROLADORES PROYECTO Francisco Hinojosa Santiago Lema Mayra Reyes 22 de Abril de 2010

Transcript of Proyecto 15 Displays

Page 1: Proyecto 15 Displays

5/5/2018 Proyecto 15 Displays - slidepdf.com

http://slidepdf.com/reader/full/proyecto-15-displays 1/7

ESCUELA POLITÉCNICA DEL EJÉRCITO

INGENIERIA MECATRONICA

MICROPROCESADORES YMICROCONTROLADORES

PROYECTO

Francisco Hinojosa

Santiago Lema

Mayra Reyes

22 de Abril de 2010

Page 2: Proyecto 15 Displays

5/5/2018 Proyecto 15 Displays - slidepdf.com

http://slidepdf.com/reader/full/proyecto-15-displays 2/7

OBJETIVOS

y  Realizar un circuito optimizado que sea capaz de mostrar un mensaje programado en displays

y  Utilizar los conocimiento adquiridos para realizar un control practico y eficiente de datos

ENUNCIADO DEL EJERCICIO

Se necesita mostrar en 15 displays una frase en dos partes; es decir sale la primera parte en los 15

displays y enseguida sale la siguiente parte en los mismos 15 displays, para luego repetirse.

MATERIALES UTILIZADOS

y  Un PIC 16F84A

y  Un 74LS154 (Demultiplexor 4 a 16)

y  15 Diplays de 7 segmentos, cátodo común

y  Fuente de 5V DCy  Protoboard

y  Cables

DESCRIPCIÓN DEL CIRCUITO

Page 3: Proyecto 15 Displays

5/5/2018 Proyecto 15 Displays - slidepdf.com

http://slidepdf.com/reader/full/proyecto-15-displays 3/7

El circuito consta de tres bloques principales; el uno es el pic, el otro el demultiplexor de 4 a 16 y el

último son los displays.

El PIC 16F84A se encarga de realizar casi en totalidad la función que necesitamos; a éste lo

programamos y grabamos.

El código o programa que grabamos en el PIC es el siguiente:

PROGRAMA DEL PIC

TRISA = 0

TRISB = 0

Dim digito As Byte

Dim control As Byte

Dim mascara As Byte

Dim a As Byte

Dim b As Byte

loop:

b = 0

For control = b To 1

a = 0

For digito = a To 15

If control = 0 Then

mascara = LookUp(0x38, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x77, 0x78, 0x50, 0x30, 0x77), digito

Else

mascara = LookUp(0x6e, 0x77, 0x00, 0x79, 0x6d, 0x00, 0x00, 0x5e, 0x79, 0x00, 0x78, 0x3f, 0x5e, 0x3f, 0x6d), digito

Endif 

Select Case digito

Case 0

PORTA.3 = 0

PORTA.2 = 0

PORTA.0 = 0

PORTA.1 = 0

PORTB = mascara

Case 1

PORTA.0 = 1PORTB = mascara

Case 2

PORTA.1 = 1

PORTA.0 = 0

PORTB = mascara

Case 3

PORTA.0 = 1

PORTB = mascara

Case 4

PORTA.2 = 1

PORTA.0 = 0

PORTA.1 = 0

PORTB = mascara

Case 5

PORTA.0 = 1

PORTB = mascara

Case 6

PORTA.0 = 0

PORTA.1 = 1

PORTB = mascara

Page 4: Proyecto 15 Displays

5/5/2018 Proyecto 15 Displays - slidepdf.com

http://slidepdf.com/reader/full/proyecto-15-displays 4/7

 

Case 7

PORTA.0 = 1

PORTB = mascara

Case 8

PORTA.3 = 1

PORTA.2 = 0

PORTA.0 = 0PORTA.1 = 0

PORTB = mascara

Case 9

PORTA.0 = 1

PORTB = mascara

Case 10

PORTA.1 = 1

PORTA.0 = 0

PORTB = mascara

Case 11

PORTA.0 = 1

PORTB = mascara

Case 12

PORTA.2 = 1

PORTA.1 = 0

PORTA.0 = 0

PORTB = mascara

Case 13

PORTA.0 = 1

PORTB = mascara

Case 14

PORTA.1 = 1

PORTA.0 = 0

PORTB = mascara

Case 15

PORTA.0 = 1

PORTB = mascara

EndSelect

Next digito

Next control

Goto loop

End

En el programa primeramente se declara las variables que se utilizarán; después consta de dos

estructuras de control FOR anidados, es decir uno dentro del otro, para poder escoger cuál de las

máscaras se va a utilizar; es decir, primero usa o envía una de las máscaras que van a salir a losdiplays y luego envía la otra, para luego repetirse.

Esta parte del programa lo hace mediante el puerto B del PIC, y todos los displays están

conectados al mismo bus de datos que en este caso sería el puerto B; entonces se podría decir que

en todos los diplays van a salir las mismas letras al mismo tiempo. Esta sección del programa se

dedica exclusiva e independientemente de los datos, es decir de la transmisión de estos por el bus

de datos que va a todos los displays. En nuestro proyecto utilizamos 7 de los 8 pines del PUERTO B.

Page 5: Proyecto 15 Displays

5/5/2018 Proyecto 15 Displays - slidepdf.com

http://slidepdf.com/reader/full/proyecto-15-displays 5/7

Entonces podemos decir que el programa consta de dos partes principales, los datos y el control.

Los datos se controlan o envían por el puerto B y el control o señales de control se lo hace por el

Puerto A. y estos dos puertos trabajan simultanea pero independientemente.

La otra sección de programa es la parte del control. Partimos de que necesitamos controlar 15

displays, por lo que necesitaríamos 15 señales; pero gracias al demultiplexor de 4 a 16 utilizamos

simplemente 4 señales o salidas del pic que son del Puerto A, es decir utilizamos 4 pines del puertoA; éstas señales se envía en forma de números en binario, por lo que el DEMULTIPLEXOR recibe

estas 4 señales y escoge en cuál de sus 16 pines de salidas envía otra señal que en este caso lo

hace por bajo, y de ésta forma puedo controlar los 15 displays con 4 señales en binario.

El motivo de controlar a los displays es de activarlos o desactivarlos según la necesidad; es decir,

voy activando uno por uno, según la letra que quiero que se muestre en un determinado display,

de ésta forma los datos enviados en el bus de datos, solo se mostrarán en el display que se

encuentra activado y los otros permanecerán apagados.

La frase que saldrá en los displays será:

LA PATRIA YA ES DE TODOS

Y saldrá en dos partes, la primera dice: La Patria y la segunda: Ya es de todos

Las letras que saldrán simplemente se definen en la máscara del código del programa, ya que cada

letra posee un código hexadecimal, de esta forma se pone en la secuencia en que saldrán las

letras.

Page 6: Proyecto 15 Displays

5/5/2018 Proyecto 15 Displays - slidepdf.com

http://slidepdf.com/reader/full/proyecto-15-displays 6/7

CONCLUSIONES

y  El PIC 16F84 posee solo dos puertos y posee una memoria de 2Kb que es relativamente

poco para poder controlar tantos displays.

y  Para el control con este PIC utilizamos un mismo bus de datos para todos los diplays

además de un DEMULTIPLEXOR para el bus de controly  El DEMUX es muy útil en este caso para que con 4 señales del pic se pueda transformar a

16 señales, de las cuales utilizamos 15 para los displays.

y  Un problema que se genera debido a utilizar el mismo bus de datos para todos los displays

es que va saliendo letra por letra y se apagan las anteriores; es decir, no puede

permanecer encendida toda la palabra o frase sino solo es una secuencia de letras

y  La eficiencia en un circuito así también como el aprovechamiento de recursos ( usar

menos pines), Es un factor muy importante en nuestro proyecto , por lo cual utilizamos un

bus de datos para todos los displays, y un multiplexor para realizar el control de cada uno

de los displays

y  La rapidez con la que se muestre el mensaje, es determinada por las características del pic,

o dependiendo del tiempo de espera ´programado. Si se desea una mayor velocidad se

puede cambiar el cristal

BIBLIOGRAFÍA

y  http://ww1.microchip.com/downloads/en/devicedoc/35007b.pdf 

y  http://www.datasheetcatalog.org/datasheets/70/232348_DS.pdf 

y  http://www.uhull.com/matheus/lab/08-05-08/display%207%20segmentos.png

Page 7: Proyecto 15 Displays

5/5/2018 Proyecto 15 Displays - slidepdf.com

http://slidepdf.com/reader/full/proyecto-15-displays 7/7

ANEXOS

DM74LS1544-Line to 16-Line Decoder/Demultiplexer

PIC16F84A

Display 7 segmentos