CODIFICACIÓN 7 SEGMENTOS. CONTADOR Se propone la realización de unas prácticas un poco más complicadas: la realización de un decodificador a 7 segmentos y la realización de un contador de 4 bits con precarga en paralelo. Objetivos Se busca el aprendizaje de las herramientas de trabajo y del ciclo de diseño, al tiempo que se emplean más instrucciones y se diseñan diagramas de flujo más complicados. Especificaciones. Decodificador a 7 segmentos El segundo programa consiste en la realización de un decodificador a 7 segmentos empleando el microcontrolador citado. La entrada en binario se realiza a través de los pines RA0..RA3 y la salida decodificada se genera a través de RB0..RB6 para los segmentos A,B,C,D,E,F,G (ver Figura 2) y RB7 para el punto decimal (DP). Figura 2. Display de 7 segmentos. Además de las señales mostradas tiene un cátodo común. Pin Diagrams PDIP, SOIC 1 2 3 4 VSS RB0/INT RB1 RB2 5 6 7 8 RB3 9 PIC16F84A RA2 RA3 RA4/T0CKI MCLR 18 17 16 15 RA1 RA0 OSC1/CLKIN OSC2/CLKOUT 14 13 12 11 VDD RB7 RB6 RB5 10 RB4 Figura 3. Patillaje del microcontrolador PIC 16F84A. 3 La codificación de tablas en los PIC se hace de una forma muy diferente a como se realiza en otros micros. Ahí va un ejemplo: ; El acceso a un elemento de la tabla va a consistir en ; llamar a una subrutina (TABLA) metiendo en el registro de ; trabajo (W) el índice de la misma. TABLA ADDWF RETLW RETLW RETLW RETLW PCL,F 40 41 42 43 ; ; ; ; ; PCL=PCL+W Valor devuelto Valor devuelto Valor devuelto Valor devuelto 40 41 42 43 (W=0) (W=1) (W=2) (W=3) ; Hay que tener mucho cuidado en que el valor de W este ; dentro del rango definido y que la posición de la tabla ; se encuentre dentro de una página de 256 bytes dado ; que si hay un acarreo del byte inferior (PCL) al byte ; superior del contador de programa, no se accederá ; correctamente a la tabla Especificaciones: contador de 4 bits con carga en paralelo El tercer programa consiste en diseñar un contador UP/DOWN de 4 bits utilizando el mismo microcontrolador. Los pines RA0..RA3 son la entrada en paralelo del contador; RA4 indica el fin de cuenta; RB0 es la entrada de la señal de reloj (para incrementar o decrementar el contador); RB1 es la patilla de carga en paralelo; RB2 es el indicador del sentido del contaje (1, incrementa, 0, decrementa); RB3 es la señal de borrado o puesta a cero del contador y RB4..RB7 es la salida del contador. Para sacar nota Se recomienda el uso de la funcionalidad doble de la patilla RB0/INT que es capaz de responder por interrupciones a un flanco (de subida o bajada). 4