📄 rfid.lst
字号:
0780: MOVWF 03
0782: MOVF 01,W
0784: MOVWF FE9
0786: MOVFF 03,FEA
078A: MOVF FEF,W
078C: ANDLW 1F
078E: MOVWF 4E
.................... *(PData1+ByteCounter)=temp1;
0790: MOVF 51,W
0792: ADDWF 54,W
0794: MOVWF 01
0796: MOVLW 00
0798: ADDWFC 55,W
079A: MOVWF 03
079C: MOVF 01,W
079E: MOVWF FE9
07A0: MOVFF 03,FEA
07A4: MOVFF 4E,FEF
....................
.................... }
.................... else
.................... {
07A8: GOTO 0834
.................... if((temp&0x01)==((*(PData+ByteCounter))&0x01))//效验高4位
.................... {
07AC: MOVF 4D,W
07AE: ANDLW 01
07B0: MOVWF 61
07B2: MOVF 51,W
07B4: ADDWF 52,W
07B6: MOVWF 01
07B8: MOVLW 00
07BA: ADDWFC 53,W
07BC: MOVWF 03
07BE: MOVF 01,W
07C0: MOVWF FE9
07C2: MOVFF 03,FEA
07C6: MOVF FEF,W
07C8: ANDLW 01
07CA: SUBWF 61,W
07CC: BTFSS FD8.2
07CE: GOTO 082C
.................... temp1=*(PData+ByteCounter)&0x1f;
07D2: MOVF 51,W
07D4: ADDWF 52,W
07D6: MOVWF 01
07D8: MOVLW 00
07DA: ADDWFC 53,W
07DC: MOVWF 03
07DE: MOVF 01,W
07E0: MOVWF FE9
07E2: MOVFF 03,FEA
07E6: MOVF FEF,W
07E8: ANDLW 1F
07EA: MOVWF 4E
.................... *(PData1+ByteCounter)=temp1;
07EC: MOVF 51,W
07EE: ADDWF 54,W
07F0: MOVWF 01
07F2: MOVLW 00
07F4: ADDWFC 55,W
07F6: MOVWF 03
07F8: MOVF 01,W
07FA: MOVWF FE9
07FC: MOVFF 03,FEA
0800: MOVFF 4E,FEF
.................... temp1=(temp1&0x1e)>>1;
0804: MOVF 4E,W
0806: ANDLW 1E
0808: MOVWF 00
080A: BCF FD8.0
080C: RRCF 00,W
080E: MOVWF 4E
.................... *(PData+ByteCounter)=temp1;
0810: MOVF 51,W
0812: ADDWF 52,W
0814: MOVWF 01
0816: MOVLW 00
0818: ADDWFC 53,W
081A: MOVWF 03
081C: MOVF 01,W
081E: MOVWF FE9
0820: MOVFF 03,FEA
0824: MOVFF 4E,FEF
.................... }
.................... else
.................... {
0828: GOTO 0834
.................... moniter_Clern_Number();//并清所有数据
082C: CALL 04DE
.................... goto str;
0830: GOTO 04FC
.................... }
.................... }
.................... }
0834: INCF 51,F
0836: GOTO 06CA
.................... output_high(PIN_C5);
083A: BSF F8B.5
.................... delay_ms(1000);
083C: MOVLW 04
083E: MOVWF 61
0840: MOVLW FA
0842: MOVWF 62
0844: CALL 02B6
0848: DECFSZ 61,F
084A: BRA 0840
.................... output_low(PIN_C5);
084C: BCF F8B.5
.................... Check_Data_bit=1;
084E: BSF 3A.0
.................... disable_interrupts(GLOBAL);
0850: BCF FF2.6
0852: BCF FF2.7
0854: BTFSC FF2.7
0856: GOTO 0852
.................... disable_interrupts(INT_CCP1);
085A: BCF F9D.2
.................... disable_interrupts(INT_CCP2);
085C: BCF FA0.0
.................... SendCmd(0xc0);
085E: MOVLW C0
0860: MOVWF 61
0862: CALL 0342
.................... putcLCD(' ');
0866: MOVLW 20
0868: MOVWF 61
086A: CALL 03D4
.................... putcLCD(' ');
086E: MOVLW 20
0870: MOVWF 61
0872: CALL 03D4
.................... putcLCD(' ');
0876: MOVLW 20
0878: MOVWF 61
087A: CALL 03D4
.................... putcLCD(' ');
087E: MOVLW 20
0880: MOVWF 61
0882: CALL 03D4
.................... putcLCD(' ');
0886: MOVLW 20
0888: MOVWF 61
088A: CALL 03D4
.................... putcLCD('s');
088E: MOVLW 73
0890: MOVWF 61
0892: CALL 03D4
.................... putcLCD('u');
0896: MOVLW 75
0898: MOVWF 61
089A: CALL 03D4
.................... putcLCD('c');
089E: MOVLW 63
08A0: MOVWF 61
08A2: CALL 03D4
.................... putcLCD('c');
08A6: MOVLW 63
08A8: MOVWF 61
08AA: CALL 03D4
.................... putcLCD('e');
08AE: MOVLW 65
08B0: MOVWF 61
08B2: CALL 03D4
.................... putcLCD('s');
08B6: MOVLW 73
08B8: MOVWF 61
08BA: CALL 03D4
.................... putcLCD('s');
08BE: MOVLW 73
08C0: MOVWF 61
08C2: CALL 03D4
.................... }
.................... else
.................... {
08C6: GOTO 08D2
.................... moniter_Clern_Number();
08CA: CALL 04DE
.................... goto str;
08CE: GOTO 04FC
.................... }
.................... }
.................... }
.................... }
08D2: GOTO 09D6 (RETURN)
08D6: NOP(FFFF)
.................... //***************************************************************
.................... void moniter(void)
.................... {
*
09C4: NOP(FFFF)
.................... int8 temp;
....................
.................... delay_ms(100);
09C6: MOVLW 64
09C8: MOVWF 62
09CA: CALL 02B6
.................... moniter_Inti();
09CE: GOTO 04A8
.................... wo:
.................... moniter_Recive();
09D2: GOTO 04FA
.................... if(Check_Data_bit==0)
.................... goto wo;
09D6: MOVLW 00
09D8: BTFSC 3A.0
09DA: MOVLW 01
09DC: XORLW 00
09DE: BTFSS FD8.2
09E0: GOTO 09EC
09E4: GOTO 09D2
.................... else
.................... {
09E8: GOTO 09FA
.................... Check_Data_bit=0;
09EC: BCF 3A.0
.................... simulation_Inti();
09EE: CALL 08D8
.................... while(1)
.................... {
.................... simulation();
09F2: CALL 08F8
.................... }
09F6: GOTO 09F2
.................... }
.................... }
09FA: GOTO 1244 (RETURN)
09FE: NOP(FFFF)
.................... //******************************************************************************************
.................... // 读卡模块
.................... //******************************************************************************************
.................... void normal_Inti(void)
.................... {
0A00: NOP(FFFF)
.................... setup_ccp1(CCP_CAPTURE_RE); // Configure CCP1 to capture rise
0A02: MOVLW B7
0A04: ANDWF FB1,F
0A06: CLRF FBD
0A08: MOVLW 05
0A0A: MOVWF FBD
.................... setup_ccp2(CCP_CAPTURE_FE); // Configure CCP2 to capture fall
0A0C: MOVLW B7
0A0E: ANDWF FB1,F
0A10: CLRF FBA
0A12: MOVLW 04
0A14: MOVWF FBA
.................... setup_timer_1(T1_INTERNAL|T1_DIV_BY_1); // Start timer 1
0A16: MOVLW 85
0A18: MOVWF FCD
.................... setup_timer_0(RTCC_INTERNAL|RTCC_OFF|RTCC_8_BIT|RTCC_DIV_1);
0A1A: MOVLW 48
0A1C: MOVWF FD5
.................... set_tris_c(0x86);
0A1E: MOVLW 86
0A20: MOVWF F94
.................... }
0A22: GOTO 0FDE (RETURN)
0A26: NOP(FFFF)
.................... //************************************************************
.................... void normal_Clern_Number(void)
.................... {
0A28: NOP(FFFF)
.................... normal_Data[0]=0;
0A2A: CLRF 24
.................... normal_Data[1]=0;
0A2C: CLRF 25
.................... normal_Data[2]=0;
0A2E: CLRF 26
.................... normal_Data[3]=0;
0A30: CLRF 27
.................... normal_Data[4]=0;
0A32: CLRF 28
.................... normal_Data[5]=0;
0A34: CLRF 29
.................... normal_Data[6]=0;
0A36: CLRF 2A
.................... normal_Data[7]=0;
0A38: CLRF 2B
.................... normal_Data[8]=0;
0A3A: CLRF 2C
.................... normal_Data[9]=0;
0A3C: CLRF 2D
.................... normal_Data[10]=0;
0A3E: CLRF 2E
.................... }
0A40: RETLW 00
0A42: NOP(FFFF)
.................... //************************************************************
.................... void normal_Recive(void)
.................... {
0A44: NOP(FFFF)
.................... int8 header,pc;
.................... int8 temp,temp1;
.................... int16 temp2;
.................... int8 ByteCounter;
.................... int8 *PData,*PData1;
.................... int8 BitCounter;
.................... int16 fall,rise;
.................... str:
.................... if(input(RF_DATA_IN)==0)
.................... if(input(RF_DATA_IN)==0)
0A46: MOVLW 00
0A48: BTFSC F82.2
0A4A: MOVLW 01
0A4C: XORLW 00
0A4E: BTFSS FD8.2
0A50: GOTO 0FCA
.................... if(input(RF_DATA_IN)==0)
0A54: MOVLW 00
0A56: BTFSC F82.2
0A58: MOVLW 01
0A5A: XORLW 00
0A5C: BTFSS FD8.2
0A5E: GOTO 0FCA
.................... if(input(RF_DATA_IN)==0)
0A62: MOVLW 00
0A64: BTFSC F82.2
0A66: MOVLW 01
0A68: XORLW 00
0A6A: BTFSS FD8.2
0A6C: GOTO 0FCA
.................... if(input(RF_DATA_IN)==0)
0A70: MOVLW 00
0A72: BTFSC F82.2
0A74: MOVLW 01
0A76: XORLW 00
0A78: BTFSS FD8.2
0A7A: GOTO 0FCA
.................... {
0A7E: MOVLW 00
0A80: BTFSC F82.2
0A82: MOVLW 01
0A84: XORLW 00
0A86: BTFSS FD8.2
0A88: GOTO 0FCA
.................... while(input(RF_DATA_IN)==0);
0A8C: MOVLW 00
0A8E: BTFSC F82.2
0A90: MOVLW 01
0A92: XORLW 00
0A94: BTFSC FD8.2
0A96: GOTO 0A8C
.................... rise=CCP_1;
0A9A: MOVFF FBF,5A
0A9E: MOVFF FBE,59
.................... delay_us(10);
0AA2: MOVLW 03
0AA4: MOVWF 00
0AA6: DECFSZ 00,F
0AA8: BRA 0AA6
.................... while(input(RF_DATA_IN)==1);
0AAA: MOVLW 00
0AAC: BTFSC F82.2
0AAE: MOVLW 01
0AB0: SUBLW 01
0AB2: BTFSC FD8.2
0AB4: GOTO 0AAA
.................... fall=CCP_2;
0AB8: MOVFF FBC,58
0ABC: MOVFF FBB,57
.................... TIMER_1=fall-rise;
0AC0: MOVF 59,W
0AC2: SUBWF 57,W
0AC4: MOVWF 17
0AC6: MOVF 5A,W
0AC8: SUBWFB 58,W
0ACA: MOVWF 18
.................... if(fall<rise)
.................... TIMER_1=TIMER_1+65536;
0ACC: MOVF 58,W
0ACE: SUBWF 5A,W
0AD0: BTFSS FD8.0
0AD2: GOTO 0AE6
0AD6: BTFSS FD8.2
0AD8: GOTO 0AE6
0ADC: MOVF 59,W
0ADE: SUBWF 57,W
0AE0: BTFSC FD8.0
0AE2: GOTO 0AE6
.................... temp2=560;
0AE6: MOVLW 02
0AE8: MOVWF 50
0AEA: MOVLW 30
0AEC: MOVWF 4F
.................... if(TIMER_1>temp2)
.................... {
0AEE: MOVF 50,W
0AF0: SUBWF 18,W
0AF2: BTFSS FD8.0
0AF4: GOTO 0B0C
0AF8: BTFSS FD8.2
0AFA: GOTO 0B08
0AFE: MOVF 17,W
0B00: SUBWF 4F,W
0B02: BTFSC FD8.0
0B04: GOTO 0B0C
.................... goto str;
0B08: GOTO 0A46
.................... }
.................... temp2=540;
0B0C: MOVLW 02
0B0E: MOVWF 50
0B10: MOVLW 1C
0B12: MOVWF 4F
.................... if(TIMER_1<temp2)
.................... {
0B14: MOVF 18,W
0B16: SUBWF 50,W
0B18: BTFSS FD8.0
0B1A: GOTO 0B32
0B1E: BTFSS FD8.2
0B20: GOTO 0B2E
0B24: MOVF 4F,W
0B26: SUBWF 17,W
0B28: BTFSC FD8.0
0B2A: GOTO 0B32
.................... goto str;
0B2E: GOTO 0A46
.................... }
.................... header=0;
0B32: CLRF 4B
.................... do
.................... {
.................... TIMER_1=0;
0B34: CLRF 18
0B36: CLRF 17
.................... while(input(RF_DATA_IN)==0);
0B38: MOVLW 00
0B3A: BTFSC F82.2
0B3C: MOVLW 01
0B3E: XORLW 00
0B40: BTFSC FD8.2
0B42: GOTO 0B38
.................... rise=CCP_1;
0B46: MOVFF FBF,5A
0B4A: MOVFF FBE,59
.................... delay_us(10);
0B4E: MOVLW 03
0B50: MOVWF 00
0B52: DECFSZ 00,F
0B54: BRA 0B52
.................... while(input(RF_DATA_IN)==1);
0B56: MOVLW 00
0B58: BTFSC F82.2
0B5A: MOVLW 01
0B5C: SUBLW 01
0B5E: BTFSC FD8.2
0B60: GOTO 0B56
.................... fall=CCP_2;
0B64: MOVFF FBC,58
0B68: MOVFF FBB,57
.................... TIMER_1=fall-rise;
0B6C: MOVF 59,W
0B6E: SUBWF 57,W
0B70: MOVWF 17
0B72: MOVF 5A,W
0B74: SUBWFB 58,W
0B76: MOVWF 18
.................... if(fall<rise)
.................... TIMER_1=TIMER_1+65536;
0B78: MOVF 58,W
0B7A: SUBWF 5A,W
0B7C: BTFSS FD8.0
0B7E: GOTO 0B92
0B82: BTFSS FD8.2
0B84: GOTO 0B92
0B88: MOVF 59,W
0B8A: SUBWF 57,W
0B8C: BTFSC FD8.0
0B8E: GOTO 0B92
.................... temp2=280;
0B92: MOVLW 01
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -