You are on page 1of 12

__config 02f01h

list p=16f873a
INCLUDE "P16F873A.INC"

ADRES EQU 0x1E

UNI EQU 0x20


DEC EQU 0x21
CEN EQU 0x22
TIEMPO1 EQU 0x23
TIEMPO2 EQU 0x24
LETRA EQU 0x25
MENOR EQU 0x26
MAYOR EQU 0x27
BUFFER EQU 0x28

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

You might also like