Professional Documents
Culture Documents
list p=16f873a
INCLUDE "P16F873A.INC"
bsf STATUS,5
bcf STATUS,6
movlw 8Eh
movwf ADCON1
movlw 1fh
movwf TRISA
clrf TRISB
clrf TRISC
bsf STATUS,6
bcf EECON1,EEPGD
bcf STATUS,5
bcf STATUS,6
movlw 41h
movwf ADCON0
clrf PORTA
clrf PORTB
clrf PORTC
bsf STATUS,6
clrf EEADR
bsf STATUS,5
bsf EECON1,RD
bcf STATUS,5
movf EEDATA,0
movwf MENOR
incf EEADR
bsf STATUS,5
bsf EECON1,RD
bcf STATUS,5
movf EEDATA,0
movwf MAYOR
bcf STATUS,6
movlw 38h
call CONTROL
movlw d'2'
call DEMORA
movlw 06h
call CONTROL
movlw d'2'
call DEMORA
movlw 0Ch
call CONTROL
movlw d'2'
call DEMORA
movlw 01h
call CONTROL
movlw d'2'
call DEMORA
clrf LETRA
otra
movf LETRA,0
call LINEA1
call DATO
incf LETRA,1
movf LETRA,0
sublw d'16'
btfss STATUS,2
goto otra
movlw 0xC0
call CONTROL
movlw d'1'
call DEMORA
clrf LETRA
otra2
movf LETRA,0
call LINEA2
call DATO
incf LETRA,1
movf LETRA,0
sublw d'16'
btfss STATUS,2
goto otra2
call VERINF
call VERSUP
ciclo
bsf ADCON0,2
btfsc ADCON0,2
goto $-1
bsf STATUS,5
movf ADRES,0
bcf STATUS,5
movwf BUFFER
bcf STATUS,0
btfsc ADRES,0
bsf STATUS,0
rrf BUFFER,1
movf MENOR,0
addlw d'1'
subwf BUFFER,0
btfss STATUS,0
bsf PORTC,4
movf MAYOR,0
subwf BUFFER,0
btfsc STATUS,0
bcf PORTC,4
movf BUFFER,0
call DECIMAL
movlw 8Dh
call CONTROL
movf CEN,0
call DATO
movf DEC,0
call DATO
movf UNI,0
call DATO
btfss PORTA,1
call SUBEMIN
btfss PORTA,2
call BAJAMIN
btfss PORTA,3
call SUBEMAX
btfss PORTA,4
call BAJAMAX
goto ciclo
LINEA1
addwf PCL,1
retlw "T"
retlw "E"
retlw "M"
retlw "P"
retlw "E"
retlw "R"
retlw "A"
retlw "T"
retlw "U"
retlw "R"
retlw "A"
retlw ":"
retlw " "
retlw " "
retlw " "
retlw " "
LINEA2
addwf PCL,1
retlw " "
retlw " "
retlw " "
retlw " "
retlw " "
retlw " "
retlw 7Fh
retlw "_"
retlw "_"
retlw 7Eh
retlw " "
retlw " "
retlw " "
retlw " "
retlw " "
retlw " "
SUBEMIN
incf MENOR,1
call VERINF
btfss PORTA,1
goto $-1
goto SAVEMIN
BAJAMIN
decf MENOR,1
call VERINF
btfss PORTA,2
goto $-1
SAVEMIN
bsf STATUS,6
clrf EEADR
movf MENOR,0
movwf EEDATA
call EESAVE
bcf STATUS,6
goto TIC
SUBEMAX
incf MAYOR,1
call VERSUP
btfss PORTA,3
goto $-1
goto SAVEMAX
BAJAMAX
decf MAYOR,1
call VERSUP
btfss PORTA,4
goto $-1
SAVEMAX
bsf STATUS,6
movlw d'1'
movwf EEADR
movf MAYOR,0
movwf EEDATA
call EESAVE
bcf STATUS,6
goto TIC
EESAVE
bsf STATUS,5
bsf EEDATA,2
movlw 55h
movwf EEADR
movlw 0AAh
movwf EEADR
bsf EEDATA,1
bcf EEDATA,2
btfsc EEDATA,1
goto $-1
bcf STATUS,5
return
TIC
bsf PORTC,3
movlw d'100'
call DEMORA
bcf PORTC,3
return
CONTROL
bcf PORTC,7
goto ENVIAR
DATO
bsf PORTC,7
ENVIAR
movwf PORTB
movlw d'5'
call DEMORA
bsf PORTC,6
movlw d'5'
call DEMORA
bcf PORTC,6
movlw d'5'
call DEMORA
return
DECIMAL
movwf UNI
clrf DEC
clrf CEN
movlw d'100'
CENTENA
subwf UNI,1
btfss STATUS,0
goto CIEN
incf CEN,1
goto CENTENA
CIEN
addwf UNI,1
movlw d'10'
DECENA
subwf UNI,1
btfss STATUS,0
goto DIEZ
incf DEC,1
goto DECENA
DIEZ
addwf UNI,1
movlw 30h
addwf UNI,1
addwf DEC,1
addwf CEN,1
return
DEMORA
movwf TIEMPO2
TOP2
movlw d'110'
movwf TIEMPO1
TOP1
nop
nop
nop
nop
nop
nop
decfsz TIEMPO1,1
goto TOP1
decfsz TIEMPO2,1
goto TOP2
return
VERINF
movf MENOR,0
call DECIMAL
movlw 0C2h
call CONTROL
movlw d'1'
call DEMORA
movf CEN,0
call DATO
movf DEC,0
call DATO
movf UNI,0
call DATO
return
VERSUP
movf MAYOR,0
call DECIMAL
movlw 0CBh
call CONTROL
movlw d'1'
call DEMORA
movf CEN,0
call DATO
movf DEC,0
call DATO
movf UNI,0
call DATO
return
ORG 0x2100
DATA 0x28
DATA 0x32
END