Sie sind auf Seite 1von 2

;---------CONTADOR BCD DE 0-99 CON LAS UNIDADES EN LOS 4 BITS BAJOS DEL PUERTO B

;---------Y LAS DECENAS EN LOS 4 BITS ALTOS DEL PUERTO C.


;---------MI IDEA ERA QUE SOLO SE MUESTRE EL CONTEO EN UN SOLO PUERTO PERO NO LO LOGRE
;---------SOY NOVATO EN ESTO DE LA PROGRAMACION, CUALQUIER SUGERENCIA SE ACEPTA:
BRUCE59302984@GMAIL.COM
LIST P=16F877A
INCLUDE
<P16F877A.INC>
__CONFIG _WDT_OFF&_PWRTE_ON&_XT_OSC&_LVP_OFF&_CP_OFF&_DEBUG_OFF&_BODEN_OFF
CBLOCK
0x20
PDel0,PDel1,AUX,AUX2,CONT,CONT2
ENDC
ORG 0X00
GOTO BANCOS
RETARDO
movlw
.239
; 1 set numero de repeticion (B)
movwf
PDel0
;1|
PLoop1 movlw
.232
; 1 set numero de repeticion (A)
movwf
PDel1
;1|
PLoop2 clrwdt
; 1 clear watchdog
PDelL1 goto PDelL2
; 2 ciclos delay
PDelL2 goto PDelL3
; 2 ciclos delay
PDelL3 clrwdt
; 1 ciclo delay
decfsz PDel1, 1 ; 1 + (1) es el tiempo 0 ? (A)
goto
PLoop2 ; 2 no, loop
decfsz PDel0, 1 ; 1 + (1) es el tiempo 0 ? (B)
goto
PLoop1 ; 2 no, loop
PDelL4 goto PDelL5
; 2 ciclos delay
PDelL5 goto PDelL6
; 2 ciclos delay
PDelL6 goto PDelL7
; 2 ciclos delay
PDelL7 clrwdt
; 1 ciclo delay
return
; 2+2 Fin.
BANCOS
BSF
BCF
CLRF TRISC
CLRF TRISB
BCF
BCF

STATUS,RP0
STATUS,RP1
STATUS,RP0
STATUS,RP1

RESETEAR
CLRF PORTC
CLRF AUX2
CLRF CONT2
;********************************************************************
INICIO
CLRF CONT
CLRF PORTB
UNI
CALL RETARDO
MOVLW
D'1'
ADDWF
PORTB,F
MOVF AUX2,W
IORWF PORTB,F
INCF CONT,F

MOVLW
D'09'
XORWF
CONT,W
BTFSC STATUS,Z
GOTO DEC
GOTO UNI
DEC
CALL RETARDO
MOVLW
D'1'
MOVWF

END

AUX2

RRF
AUX2,F
RRF
AUX2,F
RRF
AUX2,F
RRF
AUX2,F
RRF
AUX2,F
MOVF AUX2,W
ADDWF
PORTC,F
INCF CONT2,F
MOVLW
D'10'
XORWF
CONT2,W
BTFSC STATUS,Z
GOTO RESETEAR
GOTO INICIO

Das könnte Ihnen auch gefallen