;*********************************************************** ; 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 LOCK SET 2 UNLOCK SET 1 BUZZER SET 4 ORG 0 ;*********************************************************** ; I/O pins Initialize ;*********************************************************** INIT clrf ADCON0 clrf CMCON0 BSF STATUS,RP0 clrf TRISIO BSF TRISIO,LOCK BSF TRISIO,UNLOCK CLRF ANSEL CLRF VRCON movlw b'00000111' movwf OSCCON bcf STATUS,RP0 CLRF CCP1CON movlw 07h movwf CMCON0 ;*********************************************************** ; MAIN program ;*********************************************************** MAIN btfss GPIO,LOCK call LOCKED_SOUND nop btfss GPIO,UNLOCK call OPEN_SOUND nop goto MAIN goto MAIN goto MAIN goto MAIN goto MAIN OPEN_SOUND CALL LONG CALL LONG CALL LONG CALL TIME1L CALL SHORT CALL LONG CALL LONG CALL SHORT ; CALL TIME1L ; CALL SHORT ; CALL TIME1L ; CALL LONG ; CALL SHORT CALL TIME1L CALL TIME1L CALL TIME1S return LOCKED_SOUND CALL SHORT CALL LONG CALL LONG CALL LONG CALL TIME1L ; CALL LONG ; CALL LONG ; CALL LONG ; CALL TIME1L ; CALL LONG ; CALL SHORT ; CALL LONG ; CALL SHORT ; CALL TIME1L CALL LONG CALL SHORT CALL LONG CALL TIME1L ; CALL SHORT ; CALL TIME1L CALL LONG CALL SHORT CALL SHORT CALL TIME1L CALL TIME1L CALL TIME1S return LONG BSF GPIO,BUZZER CALL TIME1L BCF GPIO,BUZZER CALL TIME1S return SHORT BSF GPIO,BUZZER CALL TIME1S BCF GPIO,BUZZER CALL TIME1S return ;*********************************************************** ; Timer Sub routines ;*********************************************************** TIME100 MOVLW 020H MOVWF COUNT NOP NOP LOOP DECFSZ COUNT,F GOTO LOOP RETURN TIME1S MOVLW 05H MOVWF COUNT2 LOOP2 CALL TIME100 DECFSZ COUNT2,F GOTO LOOP2 RETURN TIME1L MOVLW 0fH MOVWF COUNT2 LOOP5 CALL TIME100 DECFSZ COUNT2,F GOTO LOOP5 RETURN end