Vous êtes sur la page 1sur 2

LIST P=16F877A

#INCLUDE <P16F877A.INC>
ORG 0X05
digito EQU 0x00
CBLOCK 0X20
ENDC
Main: bsf STATUS,RP0 ;
clrf TRISD ;
movlw 0xFF;
movwf TRISB;
bcf STATUS,RP0 ;.
clrf PORTD ;
clrw ;
; ************************* Cuerpo Principal *******
Reseto: clrf digito
Inicio:
btfss PORTB,0
goto Siguiente
goto Anterior
Siguiente:
movlw 0x00 ;
movf digito,W ;
call Tabla ;
movwf PORTD
call Delay_1s
incf digito,F ;
movf digito,W ;
xorlw 0x10 ;
btfsc STATUS,Z ;
goto Reseto ;
goto Inicio
Anterior:
movf digito,W ;
call Tabla ;
movwf PORTD
call Delay_1s
decf digito,F ;
movf digito,W ;
xorlw 0xFF;
btfsc STATUS,Z ;
goto Reseto2
goto Inicio
Reseto2:
movlw 0x0F
movwf digito
goto Inicio
;***************************************

CBLOCK
Conta1
Conta2
Conta3
ENDC
Delay_1s:
movlw d'5'
movwf Conta1
bucle1:
movlw d'255'
movwf Conta2
bucle2:
movlw d'255'
movwf Conta3
bucle3:
decfsz Conta3,F
goto bucle3
decfsz Conta2,F
goto bucle2
decfsz Conta1,F
goto bucle1
return
Tabla:
ADDWF PCL,F ;
RETLW 0xFC ; 0 en
cdigo 7 segmentos
RETLW 0x60 ; 1 en
cdigo 7 segmentos
RETLW 0xDA ; 2 en
cdigo 7 segmentos
RETLW 0xF2 ; 3 en
cdigo 7 segmentos
RETLW 0x66 ; 4 en
cdigo 7 segmentos
RETLW 0xB6 ; 5 en
cdigo 7 segmentos
RETLW 0xBE ; 6 en
cdigo 7 segmentos
RETLW 0xE0 ; 7 en
cdigo 7 segmentos
RETLW 0xFE ; 8 en
cdigo 7 segmentos
RETLW 0xF6 ; 9 en
cdigo 7 segmentos
RETLW 0xFD ; 0 en
cdigo 7 segmentos
RETLW 0x61 ; 1 en
cdigo 7 segmentos
RETLW 0xDB ; 2 en
cdigo 7 segmentos
RETLW 0xF3 ; 3 en
cdigo 7 segmentos
RETLW 0x67 ; 4 en
cdigo 7 segmentos
RETLW 0xB7 ; 5 en
cdigo 7 segmentos
END

Vous aimerez peut-être aussi