;*********************************************************** ; LCD DB7`DB4 pin => PIC's RB4`RB7 ; LCD DB3`DB0 pin => GND ; LCD RS,R/W,E pin => PIC's RA2,RA1,RA0 ;*********************************************************** LIST P=PIC12F683 INCLUDE P12F683.INC __CONFIG _INTOSCIO & _MCLRE_OFF & _WDT_OFF ;*********************************************************** ; Definition of valuables ;*********************************************************** COUNT EQU 20H COUNT1 EQU 21H COUNT2 EQU 22H COUNT3 EQU 23H COUNT4 EQU 24H DPDT EQU 25H ORG 0 ;*********************************************************** ; I/O pins Initialize ;*********************************************************** INIT clrf ADCON0 clrf CMCON0 BSF STATUS,RP0 clrf TRISIO movlw 0ffh movwf PR2 bcf STATUS,RP0 movlw 04h movwf T2CON movlw 3fh ;PWM mode movwf CCP1CON goto DOWN ;*********************************************************** ; MAIN program ;*********************************************************** MAIN CALL TIME10M INCF CCPR1L,W BTFSC STATUS,Z GOTO DOWN movwf CCPR1L goto MAIN DOWN movlw 0ffh movwf CCPR1L CALL TIME10M LP CALL TIME10M decfsz CCPR1L,F goto LP goto MAIN ;*********************************************************** ; Timer Sub routines ;*********************************************************** TIME100 MOVLW 0AH MOVWF COUNT NOP NOP LOOP DECFSZ COUNT,F GOTO LOOP RETURN TIME10M MOVLW 0F4H MOVWF COUNT1 NOP NOP LOOP1 CALL TIME100 DECFSZ COUNT1,F GOTO LOOP1 RETURN TIME1S MOVLW 0FFH MOVWF COUNT2 MOVLW 24H MOVWF COUNT3 MOVLW 03H MOVWF COUNT4 NOP LOOP2 CALL TIME10M DECFSZ COUNT2,F GOTO LOOP2 LOOP3 CALL TIME100 DECFSZ COUNT3,F GOTO LOOP3 LOOP4 DECFSZ COUNT4,F GOTO LOOP4 RETURN end