Proyecto 15 Displays
Transcript of 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
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
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
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.
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.
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
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