LIST P=PIC16F887 INCLUDE P16F887.INC __CONFIG _CONFIG1, _DEBUG_OFF & _LVP_OFF & _FCMEN_OFF & _IESO_OFF & _BOR_OFF & _CPD_OFF & _CP_OFF & _MCLRE_OFF & _PWRTE_OFF & _WDT_OFF & _XT_OSC T_S EQU 0x20 OUT EQU 0x21 O89 EQU 0x22 BUF EQU 0x23 SUB EQU 0x24 ORG 0x00 GOTO MAIN ORG 0x04 GOTO TIMER0 MAIN BANKSEL ANSEL CLRF ANSEL MOVLW 0x84 MOVWF OPTION_REG MOVLW 0xA0 MOVWF INTCON BANKSEL TRISA CLRF TRISA CLRF TRISB CLRF TRISE BANKSEL PORTA CLRF PORTA CLRF PORTB CLRF PORTE MOVLW D'00' MOVWF T_S MAIN_LOOP GOTO MAIN_LOOP TIMER0 BCF INTCON,T0IF SEC_H MOVLW 0x01 MOVWF OUT MOVLW D'09' MOVWF SUB SEC_H_LOOP MOVF T_S,W SUBWF SUB,W MOVWF BUF BTFSC STATUS,C GOTO SEC_H_OUT MOVF SUB,W ADDLW D'10' MOVWF SUB RLF OUT,F GOTO SEC_H_LOOP SEC_H_OUT MOVF OUT,W MOVWF PORTA SEC_L MOVLW 0x00 MOVWF OUT MOVLW 0x02 MOVWF O89 SEC_L_O89 MOVF BUF,W SUBLW D'00' BTFSC STATUS,Z GOTO SEC_L_OUT RRF O89,F MOVF BUF,W SUBLW D'01' BTFSC STATUS,Z GOTO SEC_L_OUT SEC_L_O07 MOVLW 0x80 MOVWF OUT MOVLW 0x00 MOVWF O89 MOVLW D'02' MOVWF SUB SEC_L_LOOP MOVF BUF,W SUBWF SUB,W BTFSC STATUS,Z GOTO SEC_L_OUT INCF SUB,F RRF OUT,F GOTO SEC_L_LOOP SEC_L_OUT MOVF OUT,W MOVWF PORTB MOVF O89,W MOVWF PORTE INCF T_S,F MOVF T_S,W SUBLW D'60' MOVLW 0x00 BTFSC STATUS,Z MOVWF T_S RETFIE END