Este es un contador de 0 a 9 incrementa con un pulso por RA0 la salida es por el puertob . bebes dejar de presionar el pulsador y luego presionar de nuevo para que siga incrementando. incrementa de uno en uno.
;no necesita decodificador display de cátodo
es.........................................................*
list p=16f84A
include"p16f84A.INC"
con1 equ 0x0c
con2 equ 0x0d
con3 equ 0x0e
unidades equ 0x0f
temp equ 0x11
porta equ 0x05
portb equ 0x06
status equ 0x03
pcl equ 0x02
intcon equ 0x0b
z equ 0x02
trisa equ 85h
trisb equ 86h
org 0
goto inicio
org 5
retardo movlw .1 ;30
movwf con3
c_con2 movlw .1 ;100
movwf con2
repeat decfsz con2,f
goto repeat
decfsz con3,f
goto c_con2
return ;termino subrutina de retardo
display addwf pcl,f
retlw b'00111111';0
retlw b'00000110';1
retlw b'01011011';2
retlw b'01001111';3
. retlw b'01100110';4
retlw b'01101101';5
retlw b'01111100';6
retlw b'00000111';7
retlw b'01111111';8
retlw b'01100111';9
visu movf unidades,w
call tabla
movwf portb
call retardo
return
inicio bsf status,5
movlw 0x01 ;ra0 pulsador
movwf porta
movlw b'00000000' portb salida para segmentos del display
movwf portb
bcf status,5
clrf unidades
ciclo call visu
btfss porta,0
goto ciclo ;comprobación de pulsador
call retardo ;antirrebote
btfss porta,0
goto ciclo
incf unidades,1
movlw .10
xorwf unidades,w
btfss status,z
goto soltar
clrf unidades
soltar call visu
btfsc porta,0
goto soltar
call retardo
btfsc porta,0
goto soltar
goto ciclo
end
salud