LIST P=PIC16F877 INCLUDE P16F877.INC __CONFIG _HS_OSC & _WDT_OFF & _LVP_OFF ;*********************************************************** ; Definition of valuables ;*********************************************************** COUNT EQU 20H MES1 EQU 21H MES2 EQU 22H MES3 EQU 23H TEMP EQU 24H COUNT1 EQU 25H COUNT2 EQU 25H COUNT3 EQU 26H COUNT4 EQU 27H INDEX EQU 28H ORG 0 ;*********************************************************** ; I/O pins Initialize ;*********************************************************** BSF STATUS,RP0 CLRF TRISA CLRF TRISB CLRF TRISC CLRF TRISD CLRF TRISE movlw 0ffh BCF STATUS,RP0 movwf 1fh movlw b'00001111' movwf PORTA CLRF PORTB ;*********************************************************** ; MAIN program ;*********************************************************** MAIN clrf INDEX MAIN_LOOP CALL SL1 MOVWF MES1 CALL SL2 MOVWF MES2 CALL SL3 MOVWF MES3 MOVFW MES1 MOVWF PORTB MOVFW MES2 MOVWF PORTC MOVFW MES3 MOVWF PORTD CALL INTERVAL INCF INDEX,F MOVFW INDEX ANDLW 7Fh MOVWF INDEX GOTO MAIN_LOOP INTERVAL MOVLW 02h MOVWF COUNT4 LOOP_LOOP CALL TIME10M DECFSZ COUNT4,F GOTO LOOP_LOOP RETURN ;---------------------------------------------LED DATA PATTERN---------------------------------- SL1 movf INDEX,0 movwf TEMP movlw low(T_SL1) addwf TEMP,F movlw high(T_SL1) movwf PCLATH addcf PCLATH,1 movf TEMP,0 movwf PCL T_SL1 retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111110' retlw b'11111110' retlw b'11111110' retlw b'11111110' retlw b'11111101' retlw b'11111101' retlw b'10011101' retlw b'10000001' retlw b'11001101' retlw b'11111001' retlw b'11111001' retlw b'11111011' retlw b'11111011' retlw b'11110011' retlw b'11111001' retlw b'11111001' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111011' retlw b'11111011' retlw b'11111001' retlw b'11111101' retlw b'11111111' retlw b'11111111' retlw b'11101111' retlw b'11101111' retlw b'11101111' retlw b'11101101' retlw b'11101101' retlw b'11011100' retlw b'11010010' retlw b'11000111' retlw b'10001110' retlw b'10001110' retlw b'11011110' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111110' retlw b'11111000' retlw b'11111101' retlw b'11111101' retlw b'11111011' retlw b'11111011' retlw b'10111001' retlw b'10000010' retlw b'11000011' retlw b'11111011' retlw b'11110111' retlw b'11110111' retlw b'11110110' retlw b'11110001' retlw b'11110001' retlw b'11110011' retlw b'11111011' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111110' retlw b'11111100' retlw b'11110001' retlw b'00000011' retlw b'10000111' retlw b'11001111' retlw b'11110011' retlw b'11111001' retlw b'11111100' retlw b'11111110' retlw b'11111110' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11110000' retlw b'10000000' retlw b'11110000' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' SL2 movf INDEX,0 movwf TEMP movlw low(T_SL2) addwf TEMP,F movlw high(T_SL2) movwf PCLATH addcf PCLATH,1 movf TEMP,0 movwf PCL T_SL2 retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11110111' retlw b'01110000' retlw b'00111001' retlw b'10011101' retlw b'11001111' retlw b'11101111' retlw b'11010111' retlw b'00011110' retlw b'00111101' retlw b'01111001' retlw b'01110001' retlw b'11110111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'00100111' retlw b'10000111' retlw b'11110111' retlw b'11111111' retlw b'11111111' retlw b'11011111' retlw b'10000001' retlw b'11111101' retlw b'11111101' retlw b'11110110' retlw b'10000000' retlw b'11100000' retlw b'10110010' retlw b'01111011' retlw b'01111111' retlw b'00000000' retlw b'11111110' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111110' retlw b'11111110' retlw b'11111111' retlw b'11001111' retlw b'11011111' retlw b'01010111' retlw b'00110000' retlw b'00011000' retlw b'00001110' retlw b'01101111' retlw b'01110011' retlw b'01110111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11110111' retlw b'11110111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11110111' retlw b'11111011' retlw b'11111101' retlw b'11101100' retlw b'11101111' retlw b'11100111' retlw b'11100111' retlw b'00000111' retlw b'11000111' retlw b'11110011' retlw b'11110011' retlw b'11111011' retlw b'11111110' retlw b'11111100' retlw b'11111000' retlw b'11110001' retlw b'11110001' retlw b'11110011' retlw b'11110111' retlw b'11110111' retlw b'11110111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111011' retlw b'11111011' retlw b'11110011' retlw b'11110011' retlw b'01110011' retlw b'00010011' retlw b'00000011' retlw b'00000011' retlw b'10000000' retlw b'10000000' retlw b'11000000' retlw b'10000000' retlw b'10000000' retlw b'00000011' retlw b'00000011' retlw b'00000011' retlw b'01110011' retlw b'11110011' retlw b'11110011' retlw b'11111011' retlw b'11111011' retlw b'11111111' retlw b'11111111' SL3 movf INDEX,0 movwf TEMP movlw low(T_SL3) addwf TEMP,F movlw high(T_SL3) movwf PCLATH addcf PCLATH,1 movf TEMP,0 movwf PCL T_SL3 retlw b'11111111' retlw b'11111111' retlw b'10111111' retlw b'10111111' retlw b'11011101' retlw b'11011110' retlw b'11101101' retlw b'11111101' retlw b'11111011' retlw b'11111011' retlw b'11110111' retlw b'11110011' retlw b'11110000' retlw b'11111100' retlw b'11101111' retlw b'11001111' retlw b'10001111' retlw b'00001111' retlw b'00011111' retlw b'00011111' retlw b'10111111' retlw b'10111111' retlw b'10111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11101111' retlw b'11101111' retlw b'11101110' retlw b'11101110' retlw b'11100011' retlw b'11101100' retlw b'11101110' retlw b'11101111' retlw b'11101111' retlw b'11101111' retlw b'11000000' retlw b'11011111' retlw b'11011111' retlw b'10011011' retlw b'10010000' retlw b'10010000' retlw b'00111001' retlw b'00111101' retlw b'00111111' retlw b'00100000' retlw b'00111111' retlw b'00111111' retlw b'10111111' retlw b'10111111' retlw b'11111111' retlw b'11111111' retlw b'11111011' retlw b'11111011' retlw b'11111011' retlw b'11111011' retlw b'01111011' retlw b'10111101' retlw b'10111101' retlw b'11010101' retlw b'11100001' retlw b'11101100' retlw b'11111100' retlw b'11111101' retlw b'11111110' retlw b'11110010' retlw b'11100000' retlw b'11001100' retlw b'11001110' retlw b'10011110' retlw b'00111110' retlw b'11111110' retlw b'11111110' retlw b'11111110' retlw b'11111110' retlw b'11111110' retlw b'11111111' retlw b'11111111' retlw b'11111011' retlw b'11111101' retlw b'10111110' retlw b'10111111' retlw b'10111111' retlw b'10111111' retlw b'10111110' retlw b'10011110' retlw b'11011111' retlw b'11011111' retlw b'11000000' retlw b'11010000' retlw b'11010111' retlw b'11010111' retlw b'11010111' retlw b'11000111' retlw b'11001111' retlw b'11001111' retlw b'11001111' retlw b'11001110' retlw b'11011110' retlw b'11111110' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'10111110' retlw b'11001100' retlw b'11101100' retlw b'11100000' retlw b'11110000' retlw b'11110000' retlw b'11110000' retlw b'11110000' retlw b'11110000' retlw b'11110000' retlw b'11110000' retlw b'11100000' retlw b'11101100' retlw b'11001100' retlw b'10111110' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' retlw b'11111111' ;*********************************************************** ; Timer Sub routines ;*********************************************************** TIME100 MOVLW 010H MOVWF COUNT NOP LOOP DECFSZ COUNT,F GOTO LOOP RETURN TIME10M MOVLW 04H MOVWF COUNT1 NOP NOP LOOP1 CALL TIME100 DECFSZ COUNT1,F GOTO LOOP1 RETURN TIME1S MOVLW 13H MOVWF COUNT2 MOVLW 12H MOVWF COUNT3 MOVLW 03H MOVWF COUNT4 NOP LOOP2 CALL TIME10M DECFSZ COUNT2,F GOTO LOOP2 LOOP3 CALL TIME100 DECFSZ COUNT3,F GOTO LOOP2 LOOP4 DECFSZ COUNT4,F GOTO LOOP4 RETURN end