You are on page 1of 2

Display

Departamento de Fsica, Universidad de Santiago de Chile (USACH), Av. Vctor Jara 3493, Santiago.

A los pines del puerto C se les asignan los


1. Introduccin valores de la maskd correspondientes a los
Se cre un programa para configurar el micro decimales. Si el nmero de la decena es cero,
controlador PIC16F873A, como un contador, el pin 1 del puesto A se baja, para que el
con el cual es posible crear un display nmero cero no se muestre en el display.
controlable mediante un botn (interrupcin). Si no, se eleva el pin 1 y se muestra el dgito.
El programa utilizado se muestra en la figura Los pines del puerto C asumen los valores de
1. Se utiliz el comando LookUp mediante el masku, y se sube y baja el pin 2 del puesto A,
cual es posible encender los distintos led de un para mostrar las unidades. Se vuelve al loop y
panel digital. Para tal propsito se deben por ltimo se coloca end para finalizar el loop.
convertir los nmeros decimales al sistema On interrupt muestra que hacer si ocurre una
hexadecimal. interrupcin. A la variable digit se le suma 1
unidad, se bajan los pines 1 y 2 del puesto A,
2. Mtodo Experimental se coloca un retardo para evitar rebotes y se
utiliza la variable Intcon.intf para bajar la
Se instal el programa en el micro bandera de interrupcin, se vuelven a habilitar
controlador, que luego se coloc en el mdulo todas las interrupciones, y por ltimo se vuelve
maestro dotado 3 display, como el que se al loop previamente definido.
muestra a continuacin, en la fig.2.
3. Conclusin
Se observ el encendido del primer display,
el cual cambiaba de dgito a un nmero
superior cada vez que se accion el botn.
Se activ el display de los decimales una vez
llegado al nmero 10.

TRISC = 0
TRISA = 0
TRISB = %00000001
Figura 2. Dislpay Dim decenas As Byte
Dim unidades As Byte
Se observa en la figura 1 el programa
Dim masku As Byte
utilizado. Mediante el comando TRIS se hace Dim maskd As Byte
que el puerto A y el C sean salida. Para el Dim digit As Byte
puerto B, en cambio, la nica entrada es el pin
0 y el resto son salida. Se definieron las INTCON.INTE = 1
variables decenas, unidades, maskd y INTCON.GIE = 1
masku como Byte y digit como variable
tipo Word. Loop1:
El comando INTCON.INTE = 1 habilita la PORTC = 0
interrupcin externa en RB0, el siguiente decenas = digit / 10
unidades =digit 10 * decenas
comando INTCON.GIE = 1 habilita todas las
maskd=LookUp(0x3f, 0x06, 0x5b, 0x4f, 0x66,
interrupciones. 0x6d, 0x7d, 0x07, 0x7f, 0x6f), decenas
A continuacin, se crea un loop. Se utiliza el masku=LookUp(0x3f, 0x06, 0x5b, 0x4f, 0x66,
comando PORTC=0 para bajar todos los 0x6d, 0x7d, 0x07, 0x7f, 0x6f), unidades
spines. Se definen las variables decenas y PORTC = maskd
unidades tal como sus nombres lo indican. Las If decenas = 0 Then
variables maskd y masku asumen los valores Low PORTA.1
de 0 al 9. WaitMs 10
Else
High PORTA.1
waitMs 10
Low PORTA.1
ENDIF
PORTC = masku
High PORTA.2
WaitMs 10
Low PORTA:2
Goto Loop1
End

On Interrupt
digit = digit + 1
Low PORTA:1
Low PORTA.2
WaitMas 500
INTCON.INTF = 0
INTCON.GIE = 1
Goto Loop1
Resume

Figura 1. Programa creado para el display.

You might also like