;
;Mediante los cuatro interruptores conectador a RA0-RA3 se aplica el código BCD de los números
;DEL 0 AL 15 . El programa obtiene el código de 7 segmentos para representar dicho
;número sobre un display de CATODO COMUN común, en el que cada segmento particular se activa mediante
;nivel lógico "0"
List p=16F877A ;Tipo de procesador
include "P16F877A.INC" ;Definiciones de registros internos
org 0x00 ;Vector de Reset
goto Inicio
org 0x05 ;Salva el vector de interrupción
Inicio clrf PORTB ;Borra los latch de salida
bsf STATUS,RP0 ;Selecciona banco 1
movlw b'00000110'
movwf ADCON1 ;Puerta A digital
clrf TRISB ;Puerta B se configura como salida
movlw b'00001111'
movwf TRISA ;Puerta A se configura como entrada
bcf STATUS,RP0 ;Selecciona banco 0
Loop:
movf PORTA,W
andlw b'00001111' ;Lee las entradas RA0-RA3
call Tabla_7_seg ;Convierte el valor a código de 7 segmentos
movwf PORTB ;Lo deposita en la puerta de salida para visualizarlo
goto Loop
Tabla_7_seg addwf PCL,F ;Desplaza al PC tantas posiciones como indique el valor
;del registro W
retlw 3Fh ;Código 7 seg. del dígito 0
retlw 06h ;Código del 1
retlw 5Bh ;2
retlw 4Fh ;3
retlw 66h ;4
retlw 6Dh ;5
retlw 7Dh ;6
retlw 07h ;7
retlw 7Fh ;8
retlw 67h ;9
retlw 77h ;10(a)
retlw 7Ch ;11(b)
retlw 39h ;12(c)
retlw 5Eh ;13(d)
retlw 79h ;14(e)
retlw 71h ;15(f)
END