Professional Documents
Culture Documents
Prctica 5 Microcontroladores PIC: Manejo de displays de 7 segmentos Fechas: 30 de Abril y 7 de Mayo de 2002 Se trata de una aplicacin sobre la placa de demostracin PICDEM-2 a la que se aade una placa adicional que dispone de una matriz de led de 7 filas x 5 columnas y 2 displays de 7 segmentos de ctodo comn, aunque en esta prctica se van a utilizar nicamente los 2 displays de 7 segmentos (figura 1). Todo ello segn esquema que se muestra en la figura 2. Se utiliza adems el pulsador conectado a la entrada 2 del PORTC en la PICDEM-2. Se trata de contar y sacar por los 2 displays de 7 segmentos, el nmero de veces que se acta sobre el pulsador. Si las decenas son nulas, el display de la derecha aparecer en blanco. En la PICDEM-2 se emplea un oscilador RC que proporciona una frecuencia de 2,8MHz (aprox.)
OSC +5V
Figura 1
11=4
F1 F2 F3 F4 F5 F6 F7
9 14 12=5 8 5 1 7 2
7 6 4 2 1 9 10 abcdefg
7 6 4 2 1 9 10 abcdefg
a f g e c d
3 8 12 11 dp 5 3 8 10 dp 5
39
16
13 3
c1 c2 c3 c4 c5
4 10 6 15 14 13
ULN2003A
d/F4
dp
Figura 2 Se va a proceder a un barrido secuencial de los 2 displays para la representacin de los 2 dgitos, se retiene cada display durante 5ms, temporizacin que se realiza con el temporizador TMR0: 5ms = (4/2,8MHz)*PRESCALER*(256-Precarga) Si tomamos PRESCALER=256, entonces Precarga=242 (0xF2) ALGORITMO DEL PROGRAMA: Inicializacin: PORTB como salida PORTD como salida TMR0 con prescaler de 256 Variables auxiliares: DISPLAYS=0x00 (Lo que hay que sacar a los displays) LIBRE=0x01 (Estado anterior de la tecla)
g/F7
f/F6 e/F5
b/F2
a/F1
c/F3
Bucle de barrido de los displays: Activacin de display de unidades (RD0=1) resto a 0 Extraemos unidades de la variable DISPLAYS Bsqueda de los segmentos a iluminar para representar ese dgito (Subprograma SACALED) Espera de 5ms (aprox.) (Subprograma ESPERA) Activacin de display de decenas (RD1=1) resto a 0 Extraemos decenas de la variable DISPLAYS Bsqueda de los segmentos a iluminar para representar ese dgito (Subprograma SACALED) Espera de 5ms (aprox.) (Subprograma ESPERA) Exploracin del estado de la tecla: SI la tecla RC2 est pulsada ENTONCES SI antes estaba suelta (LIBRE==1) ENTONCES Llamamos a subprograma de SUMA (de DISPLAYS) Marcamos la tecla como pulsada (LIBRE=0) SI NO Marcamos la tecla como suelta (LIBRE=1) Volvemos a iniciar el Bucle de Barrido de Displays Subprograma SACALED Toma el valor que hay en los 4 bits ms bajos de W y activa los segmentos a iluminar para representarlo en PORTB Se emplea una tabla con 11 valores, del 0 al 9 ms A que corresponde al carcter blanco Subprograma SUMA (Incrementa DISPLAYS en una unidad, haciendo el ajuste BCD) Incrementa DISPLAYS Extrae los 4 bits ms bajos SI el resultado es igual a 10 (0x0A) ENTONCES Corregimos a BCD sumando 06 Extrae los 4 bits ms altos SI el resultado es igual a 10 (0x0A) ENTONCES
Subprograma ESPERA: (Realiza una espera de 5ms mediante el TMR0) Precargamos TMR0 Ponemos a cero el flag T0IF Esperamos a que desborde TMR0 (T0IF=1) Retornamos de subprograma
Se realizan los pasos necesarios para verificar el ejemplo con las correspondientes herramientas: 1. 2. 3. 4. ENSAMBLADO SIMULACIN EMULACIN PROGRAMACIN (MPASM) (MPSIM) (ICEPIC integrado en el entorno MPLAB) (PICSTART-PLUS)