processor PIC16F873A #include __CONFIG _XT_OSC & _WDT_OFF & _PWRTE_OFF & _BOREN_OFF & _LVP_OFF & _CP_OFF & _CPD_OFF cblock 0x20 ;definir variaveis aux unidade dezena centena endc org 0x0 ;errorlevel -302 ;desabilitar mensagens de avisos na compilacao goto INICIO ;;;;;;;;INICIO DO TIMER;;;;;;;;;;;;;;;; org 0x004 retfie INICIO: movlw d'222' call BASE10 LOOP: goto LOOP BASE10: movwf aux clrf centena clrf dezena clrf unidade movf aux, w addlw d'0' btfsc STATUS, Z ; aux = 0 goto RETURN10 INC_UNI: incf unidade, F ; nao, unidade ++; movf unidade, W ; W = unidade xorlw d'10' ; unidade = 10 btfsc STATUS, Z goto INC_DEZ ; sim goto SUB_AUX ; nao INC_DEZ: clrf unidade ; unidade = 0 incf dezena, F ; dezena += 1; movf dezena, W ; W = dezena xorlw d'10' ; dezena = 10 btfsc STATUS, Z goto INC_CEN ; sim goto SUB_AUX ; nao INC_CEN: clrf dezena incf centena SUB_AUX: decfsz aux, F ; aux-- goto INC_UNI RETURN10: retlw d'0' end