Programa Del Pic en Asm

12
__confg 0201h list p=16873a INCLUDE " 16!873 #INC" D$E% E&U 0'1E UNI E&U 0'20 DEC E&U 0'21 CEN E&U 0'22 (IE) *1 E&U 0'23 (IE) *2 E&U 0'2+ LE($ E&U 0'2, )EN*$ E&U 0'26 ) -*$ E&U 0'27 .U!!E$ E&U 0'28 /s %( (U% , /c %( (U% 6 o l 8Eh o DC*N1 o l 1h o ($I% cl4 ($I%. cl4 ($I%C /s %( (U% 6 /c EEC*N1 EE 5D /c %( (U% , /c %( (U% 6 o l +1h o DC*N0 cl4 *$(

description

programa pic

Transcript of Programa Del Pic en Asm

__config 02f01h list p=16f873a INCLUDE "P16F873A.INC"

ADRES EQU 0x1E

UNI EQU 0x20DEC EQU 0x21CEN EQU 0x22TIEMPO1 EQU 0x23TIEMPO2 EQU 0x24LETRA EQU 0x25MENOR EQU 0x26MAYOR EQU 0x27BUFFER EQU 0x28

bsf STATUS,5bcf STATUS,6movlw 8Ehmovwf ADCON1movlw 1fhmovwf TRISAclrf TRISBclrf TRISCbsf STATUS,6bcf EECON1,EEPGDbcf STATUS,5bcf STATUS,6movlw 41hmovwf ADCON0

clrf PORTAclrf PORTBclrf PORTC bsf STATUS,6clrf EEADRbsf STATUS,5bsf EECON1,RDbcf STATUS,5movf EEDATA,0movwf MENORincf EEADRbsf STATUS,5bsf EECON1,RDbcf STATUS,5movf EEDATA,0movwf MAYORbcf STATUS,6movlw 38hcall CONTROLmovlw d'2'call DEMORAmovlw 06hcall CONTROLmovlw d'2'call DEMORAmovlw 0Chcall CONTROLmovlw d'2'call DEMORAmovlw 01hcall CONTROLmovlw 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 otra2movf LETRA,0 call LINEA2 call DATO incf LETRA,1 movf LETRA,0 sublw d'16' btfss STATUS,2 goto otra2

call VERINFcall VERSUP

ciclobsf ADCON0,2 btfsc ADCON0,2 goto $-1 bsf STATUS,5movf ADRES,0 bcf STATUS,5movwf 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 DATObtfss PORTA,1 call SUBEMIN btfss PORTA,2 call BAJAMIN btfss PORTA,3 call SUBEMAX btfss PORTA,4 call BAJAMAX goto ciclo

LINEA1addwf 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 " "

LINEA2addwf PCL,1 retlw " " retlw " "retlw " "retlw " "retlw " "retlw " "retlw 7Fh retlw "_" retlw "_" retlw 7Eh retlw " "retlw " "retlw " " retlw " "retlw " "retlw " "

SUBEMINincf MENOR,1 call VERINF btfss PORTA,1 goto $-1 goto SAVEMIN

BAJAMINdecf MENOR,1 call VERINF btfss PORTA,2 goto $-1 SAVEMIN bsf STATUS,6 clrf EEADRmovf MENOR,0movwf EEDATA call EESAVE bcf STATUS,6 goto TIC

SUBEMAXincf MAYOR,1 call VERSUP btfss PORTA,3 goto $-1 goto SAVEMAX

BAJAMAXdecf MAYOR,1 call VERSUP btfss PORTA,4 goto $-1 SAVEMAX bsf STATUS,6 movlw d'1'movwf EEADRmovf MAYOR,0movwf EEDATAcall EESAVE bcf STATUS,6goto TICEESAVEbsf STATUS,5bsf EEDATA,2movlw 55h movwf EEADR movlw 0AAh movwf EEADRbsf EEDATA,1 bcf EEDATA,2 btfsc EEDATA,1 goto $-1bcf STATUS,5 return

TICbsf PORTC,3movlw d'100'call DEMORAbcf PORTC,3 return

CONTROLbcf PORTC,7goto ENVIAR

DATObsf PORTC,7

ENVIARmovwf PORTBmovlw d'5' call DEMORAbsf PORTC,6movlw d'5'call DEMORAbcf PORTC,6 movlw d'5'call DEMORAreturn

DECIMALmovwf UNIclrf DECclrf CENmovlw d'100'CENTENAsubwf UNI,1btfss STATUS,0 goto CIENincf CEN,1goto CENTENA

CIENaddwf UNI,1movlw d'10'DECENAsubwf UNI,1btfss STATUS,0goto DIEZincf DEC,1goto DECENA

DIEZaddwf UNI,1movlw 30haddwf UNI,1addwf DEC,1addwf CEN,1return

DEMORAmovwf TIEMPO2

TOP2movlw d'110'movwf TIEMPO1

TOP1nopnopnopnopnopnopdecfsz TIEMPO1,1goto TOP1decfsz TIEMPO2,1goto TOP2return

VERINFmovf MENOR,0call DECIMALmovlw 0C2hcall CONTROL movlw d'1'call DEMORAmovf CEN,0call DATO movf DEC,0call DATOmovf UNI,0call DATO return

VERSUPmovf MAYOR,0call DECIMALmovlw 0CBhcall CONTROLmovlw d'1'call DEMORAmovf CEN,0call DATOmovf DEC,0call DATOmovf UNI,0call DATO return ORG 0x2100DATA 0x28DATA 0x32END