You are on page 1of 7

ESCUELA POLITCNICA DEL EJRCITO

INGENIERIA MECATRONICA

MICROPROCESADORES Y MICROCONTROLADORES

PROYECTO

Francisco Hinojosa Santiago Lema Mayra Reyes

22 de Abril de 2010

OBJETIVOS

y y

Realizar un circuito optimizado que sea capaz de mostrar un mensaje programado en displays 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 y y y y y Un PIC 16F84A Un 74LS154 (Demultiplexor 4 a 16) 15 Diplays de 7 segmentos, ctodo comn Fuente de 5V DC Protoboard Cables

DESCRIPCIN DEL CIRCUITO

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 funcin que necesitamos; a ste lo programamos y grabamos. El cdigo 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 = 1 PORTB = 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

Case 7 PORTA.0 = 1 PORTB = mascara Case 8 PORTA.3 = 1 PORTA.2 = 0 PORTA.0 = 0 PORTA.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 utilizarn; despus consta de dos estructuras de control FOR anidados, es decir uno dentro del otro, para poder escoger cul de las mscaras se va a utilizar; es decir, primero usa o enva una de las mscaras que van a salir a los diplays y luego enva la otra, para luego repetirse. Esta parte del programa lo hace mediante el puerto B del PIC, y todos los displays estn conectados al mismo bus de datos que en este caso sera el puerto B; entonces se podra decir que en todos los diplays van a salir las mismas letras al mismo tiempo. Esta seccin del programa se dedica exclusiva e independientemente de los datos, es decir de la transmisin 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.

Entonces podemos decir que el programa consta de dos partes principales, los datos y el control. Los datos se controlan o envan por el puerto B y el control o seales de control se lo hace por el Puerto A. y estos dos puertos trabajan simultanea pero independientemente. La otra seccin de programa es la parte del control. Partimos de que necesitamos controlar 15 displays, por lo que necesitaramos 15 seales; pero gracias al demultiplexor de 4 a 16 utilizamos simplemente 4 seales o salidas del pic que son del Puerto A, es decir utilizamos 4 pines del puerto A; stas seales se enva en forma de nmeros en binario, por lo que el DEMULTIPLEXOR recibe estas 4 seales y escoge en cul de sus 16 pines de salidas enva otra seal que en este caso lo hace por bajo, y de sta forma puedo controlar los 15 displays con 4 seales en binario. El motivo de controlar a los displays es de activarlos o desactivarlos segn la necesidad; es decir, voy activando uno por uno, segn la letra que quiero que se muestre en un determinado display, de sta forma los datos enviados en el bus de datos, solo se mostrarn en el display que se encuentra activado y los otros permanecern 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 saldrn simplemente se definen en la mscara del cdigo del programa, ya que cada letra posee un cdigo hexadecimal, de esta forma se pone en la secuencia en que saldrn las letras.

CONCLUSIONES y y y y El PIC 16F84 posee solo dos puertos y posee una memoria de 2Kb que es relativamente poco para poder controlar tantos displays. Para el control con este PIC utilizamos un mismo bus de datos para todos los diplays adems de un DEMULTIPLEXOR para el bus de control El DEMUX es muy til en este caso para que con 4 seales del pic se pueda transformar a 16 seales, de las cuales utilizamos 15 para los displays. 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 La eficiencia en un circuito as tambin 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 La rapidez con la que se muestre el mensaje, es determinada por las caractersticas del pic, o dependiendo del tiempo de espera programado. Si se desea una mayor velocidad se puede cambiar el cristal

BIBLIOGRAFA y y y http://ww1.microchip.com/downloads/en/devicedoc/35007b.pdf http://www.datasheetcatalog.org/datasheets/70/232348_DS.pdf http://www.uhull.com/matheus/lab/08-05-08/display%207%20segmentos.png

ANEXOS
DM74LS154 4-Line to 16-Line Decoder/Demultiplexer

PIC16F84A

Display 7 segmentos

You might also like