;RFID декодер LZ4GV 2006 - 2022 ;Включва когато поставим ключа и изключва 2S след като го махнем. ;Ver. 07 list p=12F629 #include __CONFIG _INTRC_OSC_NOCLKOUT & _PWRTE_ON & _CP_OFF & _CPD_OFF & _BODEN_ON & _MCLRE_OFF & _WDT_OFF #define BEEP GPIO,0 ;Pin 7 Out: Buzzer #define RFID_IN GPIO,1 ;Pin 6 In : #define OUT GPIO,2 ;Pin 5 Out: #define _GP3 GPIO,3 ;Pin 4 In : #define _GP4 GPIO,4 ;Pin 3 #define LED GPIO,5 ;Pin 2 Out: Светодиод RFID_KEY_SC EQU 0x2110 ;Записва нова клиентска карта (1-3). RFID_KEY_CC EQU 0x2118 ;Изтрива всички клиентски карти (1-3). RFID_KEY_SS EQU 0x2120 ;Записва нова сервизна карта (4-10). RFID_KEY_CS EQU 0x2128 ;Изтрива всички сервизни карти (4-10). RFID_KEY_10 EQU 0x2130 ;Запазени клетки в EEPROM 0x2130 to 0x2137 (8 byte). RFID_KEY_9 EQU 0x2138 ;--//-- RFID_KEY_8 EQU 0x2140 ;--//-- RFID_KEY_7 EQU 0x2148 ;--//-- RFID_KEY_6 EQU 0x2150 ;--//-- RFID_KEY_5 EQU 0x2158 ;--//-- RFID_KEY_4 EQU 0x2160 ;--//-- RFID_KEY_3 EQU 0x2168 ;--//-- RFID_KEY_2 EQU 0x2170 ;--//-- RFID_KEY_1 EQU 0x2178 ;Запазени клетки в EEPROM 0x2178 to 0x217F (8 byte). #define WORK_OK 0x20,0 ; #define RFID_StartBit 0x20,1 ; #define RFID_DataBit 0x20,2 ; FARME EQU 0x23 ; FRAME_HL EQU 0x24 ; HEADER_BIT EQU 0x25 ; NOM_BEEP EQU 0x26 ; COUNT_BLINK_H EQU 0x27 COUNT_BLINK_L EQU 0x28 #define StartRFID 0x30 ;Регистри използвани от RFID декодера носещи резултата. #define EndRFID 0x36 ;Заети 7 byte ;********************************************************************** COUNT EQU 0x40 ;Текущи при beep. COUNT1 EQU 0x41 ;-//- COUNT2 EQU 0x42 ;-//- COUNT3 EQU 0x43 ;-//- ;********************************************************************** PCLMEM EQU 0x59 TMR0MEM EQU 0x5A TMR1LMEM EQU 0x5B TMR1HMEM EQU 0x5C OPTIONMEM EQU 0x5D REEADR EQU 0x5E REEDATA EQU 0x5F TMR0IF EQU T0IF #define Bank0_1 STATUS,RP0 ; EE_OUT EQU 0x2100 ORG RFID_KEY_SC ;Записва нова клиентска карта (1-3). DT 0x00,0x60,0x48,0xC0,0xA4,0xC7,0xA6 ORG RFID_KEY_CC ;Изтрива всички клиентски карти (1-3). DT 0x00,0x60,0x48,0xC0,0xC2,0x82,0x52 ORG RFID_KEY_SS ;Записва нова сервизна карта (4-10). DT 0x00,0x60,0x48,0xC0,0xA5,0x6C,0xB6 ORG RFID_KEY_CS ;Изтрива всички сервизни карти (4-10). DT 0x00,0x60,0x48,0xC0,0xAB,0x9B,0xAE ORG 0x0000 GOTO START ORG 0x0004 GOTO START BEGIN BCF OUT ; BCF LED ; ;***************Начало**************** MAIN decfsz COUNT_BLINK_H,F ; GOTO BLINK ; movlw .30 ;период на мигане movwf COUNT_BLINK_H BLINK movlw .4 ;период на мигване subwf COUNT_BLINK_H,W ; btfss STATUS,C ; BSF LED ; btfsc OUT ;& GOTO BLINK1 ;& Не мига. btfsc STATUS,C ; BCF LED ; BLINK1 CALL DEC_RFID ;Разчита RFID сигнал. BTFSS WORK_OK ;Out: F(StartRFID, .. .., .. .., 0x00, EndRFID) GOTO MAIN ;Out: WORK_OK = 1 - Приет RFID сигнал BSF LED ; MOVLW RFID_KEY_1 ;Проверка за правилно приет код. CALL RFID_CHECK ;In: W (start address EEPROM) BTFSC WORK_OK ;In: F(StartRFID, .. .., .. .., 0x00, EndRFID) GOTO MAIN_OK ;Out: WORK_OK = 1 - Правилно приет код MOVLW RFID_KEY_2 ;Проверка за правилно приет код. CALL RFID_CHECK ;In: W (start address EEPROM) BTFSC WORK_OK ;In: F(StartRFID, .. .., .. .., 0x00, EndRFID) GOTO MAIN_OK ;Out: WORK_OK = 1 - Правилно приет код MOVLW RFID_KEY_3 ;Проверка за правилно приет код. CALL RFID_CHECK ;In: W (start address EEPROM) BTFSC WORK_OK ;In: F(StartRFID, .. .., .. .., 0x00, EndRFID) GOTO MAIN_OK ;Out: WORK_OK = 1 - Правилно приет код MOVLW RFID_KEY_4 ;Проверка за правилно приет код. CALL RFID_CHECK ;In: W (start address EEPROM) BTFSC WORK_OK ;In: F(StartRFID, .. .., .. .., 0x00, EndRFID) GOTO MAIN_OK ;Out: WORK_OK = 1 - Правилно приет код MOVLW RFID_KEY_5 ;Проверка за правилно приет код. CALL RFID_CHECK ;In: W (start address EEPROM) BTFSC WORK_OK ;In: F(StartRFID, .. .., .. .., 0x00, EndRFID) GOTO MAIN_OK ;Out: WORK_OK = 1 - Правилно приет код MOVLW RFID_KEY_6 ;Проверка за правилно приет код. CALL RFID_CHECK ;In: W (start address EEPROM) BTFSC WORK_OK ;In: F(StartRFID, .. .., .. .., 0x00, EndRFID) GOTO MAIN_OK ;Out: WORK_OK = 1 - Правилно приет код MOVLW RFID_KEY_7 ;Проверка за правилно приет код. CALL RFID_CHECK ;In: W (start address EEPROM) BTFSC WORK_OK ;In: F(StartRFID, .. .., .. .., 0x00, EndRFID) GOTO MAIN_OK ;Out: WORK_OK = 1 - Правилно приет код MOVLW RFID_KEY_8 ;Проверка за правилно приет код. CALL RFID_CHECK ;In: W (start address EEPROM) BTFSC WORK_OK ;In: F(StartRFID, .. .., .. .., 0x00, EndRFID) GOTO MAIN_OK ;Out: WORK_OK = 1 - Правилно приет код MOVLW RFID_KEY_9 ;Проверка за правилно приет код. CALL RFID_CHECK ;In: W (start address EEPROM) BTFSC WORK_OK ;In: F(StartRFID, .. .., .. .., 0x00, EndRFID) GOTO MAIN_OK ;Out: WORK_OK = 1 - Правилно приет код MOVLW RFID_KEY_10 ;Проверка за правилно приет код. CALL RFID_CHECK ;In: W (start address EEPROM) BTFSC WORK_OK ;In: F(StartRFID, .. .., .. .., 0x00, EndRFID) GOTO MAIN_OK ;Out: WORK_OK = 1 - Правилно приет код MOVLW RFID_KEY_SC ;Проверка за правилно приет код. CALL RFID_CHECK ;In: W (start address EEPROM) BTFSC WORK_OK ;In: F(StartRFID, .. .., .. .., 0x00, EndRFID) GOTO SAVE_RFID_CLIENT;Out: WORK_OK = 1 - Правилно приет код MOVLW RFID_KEY_CC ;Проверка за правилно приет код. CALL RFID_CHECK ;In: W (start address EEPROM) BTFSC WORK_OK ;In: F(StartRFID, .. .., .. .., 0x00, EndRFID) GOTO CLEA_RFID_CLIENT;Out: WORK_OK = 1 - Правилно приет код MOVLW RFID_KEY_SS ;Проверка за правилно приет код. CALL RFID_CHECK ;In: W (start address EEPROM) BTFSC WORK_OK ;In: F(StartRFID, .. .., .. .., 0x00, EndRFID) GOTO SAVE_RFID_SERVIC;Out: WORK_OK = 1 - Правилно приет код MOVLW RFID_KEY_CS ;Проверка за правилно приет код. CALL RFID_CHECK ;In: W (start address EEPROM) BTFSC WORK_OK ;In: F(StartRFID, .. .., .. .., 0x00, EndRFID) GOTO CLEA_RFID_SERVIC;Out: WORK_OK = 1 - Правилно приет код BCF LED ; GOTO MAIN ;--^ ; MAIN_OK BSF OUT ; BSF LED ; MOVLW .40 ; CALL BEEPER ;In: W For CB-09GP 2,8KHz HI .50 - .53 LOW CALL BEEPER ; CALL REMOVE_CARD ;Изчаква примахването на картата. CALL TIMER0_5 ; CALL TIMER0_5 ; CALL TIMER0_5 ; CALL TIMER0_5 ; CALL TIMER0_5 ; CALL TIMER0_5 ; CALL TIMER0_5 ; BCF OUT ; BCF LED ; GOTO MAIN ;****************************************************************************** ;****************************************************************************** SAVE_RFID_CLIENT BSF LED ; MOVLW .40 ; CALL BEEPER ;In: W For CB-09GP 2,8KHz HI .50 - .53 LOW CALL BEEPER ; CALL BEEPER ; CALL BEEPER ; CALL BEEPER ; CALL BEEPER ; CALL BEEPER ; CALL REMOVE_CARD ;Изчаква примахването на картата. BCF LED ; S_R_CLIENT1 CALL DEC_RFID ;Разчита RFID сигнал. BTFSS WORK_OK ;Out: F(StartRFID, .. .., .. .., 0x00, EndRFID) GOTO S_R_CLIENT1 ;Out: WORK_OK = 1 - Приет RFID сигнал CALL TEST_DOUBLING ;Прверява приетият код дали се повтаря в паметта. IORLW .0 ;Out: W = 0 - повтаря се, F(NOM_BEEP) BTFSC STATUS,Z ; GOTO MAIN_PROG_END ;--> movlw .1 ; movwf NOM_BEEP ; MOVLW RFID_KEY_1 ; MOVWF REEADR ; CALL READE ;Проверява паметта ако започва с 0xFF записва приетият код. COMF REEDATA,F ;-> status,z MOVLW RFID_KEY_1 ; BTFSC STATUS,Z ; GOTO MAIN_PROG_WR ; movlw .2 ; movwf NOM_BEEP ; MOVLW RFID_KEY_2 ; MOVWF REEADR ; CALL READE ;Проверява паметта ако започва с 0xFF записва приетият код. COMF REEDATA,F ;-> status,z MOVLW RFID_KEY_2 ; BTFSC STATUS,Z ; GOTO MAIN_PROG_WR ; movlw .3 ; movwf NOM_BEEP ; MOVLW RFID_KEY_3 ;Ако липсва празно място записва като изтрива предходната. GOTO MAIN_PROG_WR ;--> ;****************************************************************************** ;****************************************************************************** SAVE_RFID_SERVIC BSF LED ; MOVLW .40 ; CALL BEEPER ;In: W For CB-09GP 2,8KHz HI .50 - .53 LOW CALL BEEPER ; CALL BEEPER ; CALL BEEPER ; CALL BEEPER ; CALL BEEPER ; CALL BEEPER ; CALL REMOVE_CARD ;Изчаква примахването на картата. BCF LED ; S_R_SERVIC1 CALL DEC_RFID ;Разчита RFID сигнал. BTFSS WORK_OK ;Out: F(StartRFID, .. .., .. .., 0x00, EndRFID) GOTO S_R_SERVIC1 ;Out: WORK_OK = 1 - Приет RFID сигнал CALL TEST_DOUBLING ;Прверява приетият код дали се повтаря в паметта. IORLW .0 ;Out: W = 0 - повтаря се, F(NOM_BEEP) BTFSC STATUS,Z ; GOTO MAIN_PROG_END ;--> movlw .4 ; movwf NOM_BEEP ; MOVLW RFID_KEY_4 ; MOVWF REEADR ; CALL READE ;Проверява паметта ако започва с 0xFF записва приетият код. COMF REEDATA,F ;-> status,z MOVLW RFID_KEY_4 ; BTFSC STATUS,Z ; GOTO MAIN_PROG_WR ; movlw .5 ; movwf NOM_BEEP ; MOVLW RFID_KEY_5 ; MOVWF REEADR ; CALL READE ;Проверява паметта ако започва с 0xFF записва приетият код. COMF REEDATA,F ;-> status,z MOVLW RFID_KEY_5 ; BTFSC STATUS,Z ; GOTO MAIN_PROG_WR ; movlw .6 ; movwf NOM_BEEP ; MOVLW RFID_KEY_6 ; MOVWF REEADR ; CALL READE ;Проверява паметта ако започва с 0xFF записва приетият код. COMF REEDATA,F ;-> status,z MOVLW RFID_KEY_6 ; BTFSC STATUS,Z ; GOTO MAIN_PROG_WR ; movlw .7 ; movwf NOM_BEEP ; MOVLW RFID_KEY_7 ; MOVWF REEADR ; CALL READE ;Проверява паметта ако започва с 0xFF записва приетият код. COMF REEDATA,F ;-> status,z MOVLW RFID_KEY_7 ; BTFSC STATUS,Z ; GOTO MAIN_PROG_WR ; movlw .8 ; movwf NOM_BEEP ; MOVLW RFID_KEY_8 ; MOVWF REEADR ; CALL READE ;Проверява паметта ако започва с 0xFF записва приетият код. COMF REEDATA,F ;-> status,z MOVLW RFID_KEY_8 ; BTFSC STATUS,Z ; GOTO MAIN_PROG_WR ; movlw .9 ; movwf NOM_BEEP ; MOVLW RFID_KEY_9 ; MOVWF REEADR ; CALL READE ;Проверява паметта ако започва с 0xFF записва приетият код. COMF REEDATA,F ;-> status,z MOVLW RFID_KEY_9 ; BTFSC STATUS,Z ; GOTO MAIN_PROG_WR ; movlw .10 ; movwf NOM_BEEP ; MOVLW RFID_KEY_10 ;Ако липсва празно място записва като изтрива предходната. GOTO MAIN_PROG_WR ;--> ;****************************************************************************** ;****************************************************************************** MAIN_PROG_WR CALL RFID_WRITE ;In: W (start address EEPROM) In: F(StartRFID, .. .., .. .., 0x00, EndRFID) MAIN_PROG_END ; BSF LED ; MOVLW .40 ; CALL BEEPER ;In: W For CB-09GP 2,8KHz HI .50 - .53 LOW CALL BEEPER ; BCF LED ; CALL TIMER0_5 ; CALL TIMER0_5 ; DECFSZ NOM_BEEP,F ; GOTO MAIN_PROG_END ; CALL REMOVE_CARD ;Изчаква примахването на картата. GOTO MAIN ; ;****************************************************************************** ;****************************************************************************** CLEA_RFID_CLIENT BSF LED ; movlw .40 ; CALL BEEPER ;In: W For CB-09GP 2,8KHz HI .50 - .53 LOW movlw .41 ; CALL BEEPER ; movlw .42 ; CALL BEEPER ; movlw .43 ; CALL BEEPER ; movlw .44 ; CALL BEEPER ; movlw .45 ; CALL BEEPER ; movlw .46 ; CALL BEEPER ; MOVLW RFID_KEY_1 ; CALL RFID_CLEAR ;In: W (start address EEPROM) MOVLW RFID_KEY_2 ; CALL RFID_CLEAR ;In: W (start address EEPROM) MOVLW RFID_KEY_3 ; CALL RFID_CLEAR ;In: W (start address EEPROM) CALL REMOVE_CARD ;Изчаква примахването на картата. BCF LED ; GOTO MAIN ; ;****************************************************************************** ;****************************************************************************** CLEA_RFID_SERVIC BSF LED ; movlw .40 ; CALL BEEPER ;In: W For CB-09GP 2,8KHz HI .50 - .53 LOW movlw .41 ; CALL BEEPER ; movlw .42 ; CALL BEEPER ; movlw .43 ; CALL BEEPER ; movlw .44 ; CALL BEEPER ; movlw .45 ; CALL BEEPER ; movlw .46 ; CALL BEEPER ; MOVLW RFID_KEY_4 ; CALL RFID_CLEAR ;In: W (start address EEPROM) MOVLW RFID_KEY_5 ; CALL RFID_CLEAR ;In: W (start address EEPROM) MOVLW RFID_KEY_6 ; CALL RFID_CLEAR ;In: W (start address EEPROM) MOVLW RFID_KEY_7 ; CALL RFID_CLEAR ;In: W (start address EEPROM) MOVLW RFID_KEY_8 ; CALL RFID_CLEAR ;In: W (start address EEPROM) MOVLW RFID_KEY_9 ; CALL RFID_CLEAR ;In: W (start address EEPROM) MOVLW RFID_KEY_10 ; CALL RFID_CLEAR ;In: W (start address EEPROM) CALL REMOVE_CARD ;Изчаква примахването на картата. BCF LED ; GOTO MAIN ; ;****************************************************************************** ;****************************************************************************** TEST_DOUBLING ;Прверява приетият код дали се повтаря в паметта. movlw .1 ;Out: W = 0 - повтаря се, F(NOM_BEEP) movwf NOM_BEEP ; MOVLW RFID_KEY_1 ; CALL RFID_CHECK ;In: W (start address EEPROM) BTFSC WORK_OK ;In: F(StartRFID, .. .., .. .., 0x00, EndRFID) RETLW .0 ;Out: WORK_OK = 1 - Правилно приет код movlw .2 ; movwf NOM_BEEP ; MOVLW RFID_KEY_2 ;Проверка за правилно приет код. CALL RFID_CHECK ;In: W (start address EEPROM) BTFSC WORK_OK ;In: F(StartRFID, .. .., .. .., 0x00, EndRFID) RETLW .0 ;Out: WORK_OK = 1 - Правилно приет код movlw .3 ; movwf NOM_BEEP ; MOVLW RFID_KEY_3 ;Проверка за правилно приет код. CALL RFID_CHECK ;In: W (start address EEPROM) BTFSC WORK_OK ;In: F(StartRFID, .. .., .. .., 0x00, EndRFID) RETLW .0 ;Out: WORK_OK = 1 - Правилно приет код movlw .4 ; movwf NOM_BEEP ; MOVLW RFID_KEY_4 ;Проверка за правилно приет код. CALL RFID_CHECK ;In: W (start address EEPROM) BTFSC WORK_OK ;In: F(StartRFID, .. .., .. .., 0x00, EndRFID) RETLW .0 ;Out: WORK_OK = 1 - Правилно приет код movlw .5 ; movwf NOM_BEEP ; MOVLW RFID_KEY_5 ;Проверка за правилно приет код. CALL RFID_CHECK ;In: W (start address EEPROM) BTFSC WORK_OK ;In: F(StartRFID, .. .., .. .., 0x00, EndRFID) RETLW .0 ;Out: WORK_OK = 1 - Правилно приет код movlw .6 ; movwf NOM_BEEP ; MOVLW RFID_KEY_6 ;Проверка за правилно приет код. CALL RFID_CHECK ;In: W (start address EEPROM) BTFSC WORK_OK ;In: F(StartRFID, .. .., .. .., 0x00, EndRFID) RETLW .0 ;Out: WORK_OK = 1 - Правилно приет код movlw .7 ; movwf NOM_BEEP ; MOVLW RFID_KEY_7 ;Проверка за правилно приет код. CALL RFID_CHECK ;In: W (start address EEPROM) BTFSC WORK_OK ;In: F(StartRFID, .. .., .. .., 0x00, EndRFID) RETLW .0 ;Out: WORK_OK = 1 - Правилно приет код movlw .8 ; movwf NOM_BEEP ; MOVLW RFID_KEY_8 ;Проверка за правилно приет код. CALL RFID_CHECK ;In: W (start address EEPROM) BTFSC WORK_OK ;In: F(StartRFID, .. .., .. .., 0x00, EndRFID) RETLW .0 ;Out: WORK_OK = 1 - Правилно приет код movlw .9 ; movwf NOM_BEEP ; MOVLW RFID_KEY_9 ;Проверка за правилно приет код. CALL RFID_CHECK ;In: W (start address EEPROM) BTFSC WORK_OK ;In: F(StartRFID, .. .., .. .., 0x00, EndRFID) RETLW .0 ;Out: WORK_OK = 1 - Правилно приет код movlw .10 ; movwf NOM_BEEP ; MOVLW RFID_KEY_10 ;Проверка за правилно приет код. CALL RFID_CHECK ;In: W (start address EEPROM) BTFSC WORK_OK ;In: F(StartRFID, .. .., .. .., 0x00, EndRFID) RETLW .0 ;Out: WORK_OK = 1 - Правилно приет код movlw .11 ; movwf NOM_BEEP ; MOVLW RFID_KEY_SC ;Проверка за правилно приет код. CALL RFID_CHECK ;In: W (start address EEPROM) BTFSC WORK_OK ;In: F(StartRFID, .. .., .. .., 0x00, EndRFID) RETLW .0 ;Out: WORK_OK = 1 - Правилно приет код movlw .11 ; movwf NOM_BEEP ; MOVLW RFID_KEY_CC ;Проверка за правилно приет код. CALL RFID_CHECK ;In: W (start address EEPROM) BTFSC WORK_OK ;In: F(StartRFID, .. .., .. .., 0x00, EndRFID) RETLW .0 ;Out: WORK_OK = 1 - Правилно приет код movlw .11 ; movwf NOM_BEEP ; MOVLW RFID_KEY_SS ;Проверка за правилно приет код. CALL RFID_CHECK ;In: W (start address EEPROM) BTFSC WORK_OK ;In: F(StartRFID, .. .., .. .., 0x00, EndRFID) RETLW .0 ;Out: WORK_OK = 1 - Правилно приет код movlw .11 ; movwf NOM_BEEP ; MOVLW RFID_KEY_CS ;Проверка за правилно приет код. CALL RFID_CHECK ;In: W (start address EEPROM) BTFSC WORK_OK ;In: F(StartRFID, .. .., .. .., 0x00, EndRFID) RETLW .0 ;Out: WORK_OK = 1 - Правилно приет код RETLW .1 ;Не се повтаря. ;****************************************************************************** ;****************************************************************************** TIMER0_5 MOVLW .190 CLRF TMR1L ;Нулира Timer1 MOVWF TMR1HMEM ; COMF TMR1HMEM,W ; MOVWF TMR1H ; BCF PIR1,TMR1IF ; BTFSS PIR1,TMR1IF ;1-overflowed GOTO $-1 RETURN ;****************************************************************************** ;****************************************************************************** WRITE ;In:F(REEADR,REEDATA) BSF STATUS,RP0 ;Page 1 MOVF REEADR,W MOVWF EEADR MOVF REEDATA,W MOVWF EEDATA BCF INTCON,GIE BSF EECON1,WREN movlw 0x55 movwf EECON2 movlw 0xAA movwf EECON2 BSF EECON1,WR ;initiate write WRITE1 BTFSC EECON1,WR ;write complete? GOTO WRITE1 ;BSF INTCON,GIE BCF EECON1,WREN ;disable write BCF STATUS,RP0 ;Page 0 RETURN ; READE ;In:F(REEADR) Out:F(REEDATA),W BSF STATUS,RP0 ;Page 1 MOVF REEADR,W MOVWF EEADR BSF EECON1,RD ;do a read READE1 ; BTFSC EECON1,RD ;rd done? GOTO READE1 ;no then loop MOVF EEDATA,W MOVWF REEDATA BCF STATUS,RP0 ;Page 0 RETURN ; SET_VREF BSF STATUS,RP0 ; MOVLW B'00001111' ; MOVWF VRCON ; BSF VRCON,VREN ;Vref Circuit Powered On BSF VRCON,VRR ;Low Range-'1' High Range-'0' BCF STATUS,RP0 ; RETURN ; SET_TMR0 BSF STATUS,RP0 ;Bank1 MOVWF OPTION_REG ; BSF OPTION_REG,NOT_GPPU ;'1' - Pull-ups Disabled BSF OPTION_REG,INTEDG ;'1' -Rising RB0 Interrupt BCF STATUS,RP0 ;Bank0 RETURN ; SET_TMR1 ;Timer1 Module: Max period 8uS * 65536 = 524,288mS BCF T1CON,TMR1GE ; BSF T1CON,T1CKPS1 ;Timer prescaler /1 - 0 /2 - 0 /4 - 1 /8 - 1 BSF T1CON,T1CKPS0 ;Timer prescaler 0 1 0 1 BCF T1CON,T1OSCEN ;Oscillator is shut off. BCF T1CON,NOT_T1SYNC ;Asinchronous Operration BCF T1CON,TMR1CS ;Internal Clock Fosc/4 4MHz = 8uS BSF T1CON,TMR1ON ;Timer1 On bit. RETURN ; START CLRF GPIO CLRF INTCON MOVLW B'00000111' ;Comparator OFF. MOVWF CMCON BSF STATUS,RP0 CALL A3FFh MOVWF OSCCAL ; CLRF WPU BCF STATUS,RP0 MOVLW B'00000111' ;Fosc/4/256 4MHz = 0,256mS CALL SET_TMR0 CALL SET_TMR1 BSF STATUS,RP0 MOVLW B'11011010' ; MOVWF TRISIO ;Port BCF STATUS,RP0 ;CALL SET_VREF GOTO BEGIN ; ;*******************************Beep*********************************** BeepOSC EQU .1 ;Fosc= 4MHz #include ;********************************************************************** ;*****************Разчита IR сигнали от дистанционни******************* #include ;Use TMR0 ;********************************************************************** ORG 0x03FF A3FFh ;Oscillator calibration. RETLW 0x80 ;x0,x4,x8,xC END