📄 rfid.lst
字号:
.................... }
.................... else
.................... {
0EAE: GOTO 0F3A
.................... if((temp&0x01)==((*(PData+ByteCounter))&0x01))//效验高4位
.................... {
0EB2: MOVF 4D,W
0EB4: ANDLW 01
0EB6: MOVWF 5B
0EB8: MOVF 51,W
0EBA: ADDWF 52,W
0EBC: MOVWF 01
0EBE: MOVLW 00
0EC0: ADDWFC 53,W
0EC2: MOVWF 03
0EC4: MOVF 01,W
0EC6: MOVWF FE9
0EC8: MOVFF 03,FEA
0ECC: MOVF FEF,W
0ECE: ANDLW 01
0ED0: SUBWF 5B,W
0ED2: BTFSS FD8.2
0ED4: GOTO 0F32
.................... temp1=*(PData+ByteCounter)&0x1f;
0ED8: MOVF 51,W
0EDA: ADDWF 52,W
0EDC: MOVWF 01
0EDE: MOVLW 00
0EE0: ADDWFC 53,W
0EE2: MOVWF 03
0EE4: MOVF 01,W
0EE6: MOVWF FE9
0EE8: MOVFF 03,FEA
0EEC: MOVF FEF,W
0EEE: ANDLW 1F
0EF0: MOVWF 4E
.................... *(PData1+ByteCounter)=temp1;
0EF2: MOVF 51,W
0EF4: ADDWF 54,W
0EF6: MOVWF 01
0EF8: MOVLW 00
0EFA: ADDWFC 55,W
0EFC: MOVWF 03
0EFE: MOVF 01,W
0F00: MOVWF FE9
0F02: MOVFF 03,FEA
0F06: MOVFF 4E,FEF
.................... temp1=(temp1&0x1e)>>1;
0F0A: MOVF 4E,W
0F0C: ANDLW 1E
0F0E: MOVWF 00
0F10: BCF FD8.0
0F12: RRCF 00,W
0F14: MOVWF 4E
.................... *(PData+ByteCounter)=temp1;
0F16: MOVF 51,W
0F18: ADDWF 52,W
0F1A: MOVWF 01
0F1C: MOVLW 00
0F1E: ADDWFC 53,W
0F20: MOVWF 03
0F22: MOVF 01,W
0F24: MOVWF FE9
0F26: MOVFF 03,FEA
0F2A: MOVFF 4E,FEF
.................... }
.................... else
.................... {
0F2E: GOTO 0F3A
.................... normal_Clern_Number();//并清所有数据
0F32: CALL 0A28
.................... goto str;
0F36: GOTO 0A46
.................... }
.................... }
.................... }
0F3A: INCF 51,F
0F3C: GOTO 0DD0
.................... output_high(PIN_C5);
0F40: BSF F8B.5
.................... delay_ms(1000);
0F42: MOVLW 04
0F44: MOVWF 5B
0F46: MOVLW FA
0F48: MOVWF 62
0F4A: CALL 02B6
0F4E: DECFSZ 5B,F
0F50: BRA 0F46
.................... output_low(PIN_C5);
0F52: BCF F8B.5
.................... Check_Data_bit=1;
0F54: BSF 3A.0
.................... SendCmd(0xc0);
0F56: MOVLW C0
0F58: MOVWF 61
0F5A: CALL 0342
.................... putcLCD(' ');
0F5E: MOVLW 20
0F60: MOVWF 61
0F62: CALL 03D4
.................... putcLCD(' ');
0F66: MOVLW 20
0F68: MOVWF 61
0F6A: CALL 03D4
.................... putcLCD(' ');
0F6E: MOVLW 20
0F70: MOVWF 61
0F72: CALL 03D4
.................... putcLCD(' ');
0F76: MOVLW 20
0F78: MOVWF 61
0F7A: CALL 03D4
.................... putcLCD(' ');
0F7E: MOVLW 20
0F80: MOVWF 61
0F82: CALL 03D4
.................... putcLCD('s');
0F86: MOVLW 73
0F88: MOVWF 61
0F8A: CALL 03D4
.................... putcLCD('u');
0F8E: MOVLW 75
0F90: MOVWF 61
0F92: CALL 03D4
.................... putcLCD('c');
0F96: MOVLW 63
0F98: MOVWF 61
0F9A: CALL 03D4
.................... putcLCD('c');
0F9E: MOVLW 63
0FA0: MOVWF 61
0FA2: CALL 03D4
.................... putcLCD('e');
0FA6: MOVLW 65
0FA8: MOVWF 61
0FAA: CALL 03D4
.................... putcLCD('s');
0FAE: MOVLW 73
0FB0: MOVWF 61
0FB2: CALL 03D4
.................... putcLCD('s');
0FB6: MOVLW 73
0FB8: MOVWF 61
0FBA: CALL 03D4
.................... }
.................... else
.................... {
0FBE: GOTO 0FCA
.................... normal_Clern_Number();
0FC2: CALL 0A28
.................... goto str;
0FC6: GOTO 0A46
.................... }
.................... }
.................... }
.................... }
0FCA: GOTO 0FE2 (RETURN)
0FCE: NOP(FFFF)
.................... //***************************************************************
.................... void normal(void)
.................... {
0FD0: NOP(FFFF)
.................... int8 temp;
.................... delay_ms(100);
0FD2: MOVLW 64
0FD4: MOVWF 62
0FD6: CALL 02B6
.................... normal_Inti();
0FDA: GOTO 0A00
.................... ni:
.................... normal_Recive();
0FDE: GOTO 0A44
.................... if(Check_Data_bit==0)
.................... goto ni;
0FE2: MOVLW 00
0FE4: BTFSC 3A.0
0FE6: MOVLW 01
0FE8: XORLW 00
0FEA: BTFSS FD8.2
0FEC: GOTO 0FF8
0FF0: GOTO 0FDE
.................... else
.................... {
0FF4: GOTO 1006
.................... Check_Data_bit=0;
0FF8: BCF 3A.0
.................... simulation_Inti();
0FFA: CALL 08D8
.................... while(1)
.................... {
.................... simulation();
0FFE: CALL 08F8
.................... }
1002: GOTO 0FFE
.................... }
.................... }
1006: GOTO 12C2 (RETURN)
100A: NOP(FFFF)
.................... //******************************************************************************************
.................... // 模拟卡片模块
.................... //******************************************************************************************
.................... #INT_TIMER3
.................... void TIMER3_isr(void)
.................... {
*
0292: NOP(FFFF)
.................... over=1;
0294: BSF 3C.0
.................... set_timer3(65082);
0296: MOVLW FE
0298: MOVWF FB3
029A: MOVLW 3A
029C: MOVWF FB2
.................... }
029E: BCF FA1.1
02A0: GOTO 006E
.................... void simulation_Inti(void)
.................... {
*
08D8: NOP(FFFF)
.................... setup_timer_3(T3_INTERNAL|0x00);
08DA: MOVF FB1,W
08DC: ANDLW 48
08DE: IORLW 85
08E0: MOVWF FB1
.................... set_timer3(65082);
08E2: MOVLW FE
08E4: MOVWF FB3
08E6: MOVLW 3A
08E8: MOVWF FB2
.................... over=0;
08EA: BCF 3C.0
.................... enable_interrupts(INT_TIMER3);
08EC: BSF FA0.1
.................... enable_interrupts(global);
08EE: MOVLW C0
08F0: IORWF FF2,F
.................... CFE_DIR=0;
08F2: BCF F92.2
.................... }
08F4: RETLW 00
08F6: NOP(FFFF)
.................... void simulation(void)
.................... {
08F8: NOP(FFFF)
.................... int8 header,*PData,count,i,run;
.................... tim3Str=1;
08FA: BSF FB1.0
.................... for(header=0;header<9;header++)
08FC: CLRF 4B
08FE: MOVF 4B,W
0900: SUBLW 08
0902: BTFSS FD8.0
0904: GOTO 0930
.................... {
.................... tim3Str=1;
0908: BSF FB1.0
.................... CFE=1;
090A: BSF F80.2
.................... delay_us(251);
090C: MOVLW 53
090E: MOVWF 00
0910: DECFSZ 00,F
0912: BRA 0910
0914: NOP
.................... CFE=0;
0916: BCF F80.2
.................... while(over==0);
0918: MOVLW 00
091A: BTFSC 3C.0
091C: MOVLW 01
091E: XORLW 00
0920: BTFSC FD8.2
0922: GOTO 0918
.................... over=0;
0926: BCF 3C.0
.................... tim3Str=0;
0928: BCF FB1.0
.................... }
092A: INCF 4B,F
092C: GOTO 08FE
.................... PData=sendData;
0930: CLRF 4D
0932: MOVLW 2F
0934: MOVWF 4C
.................... for(count=0;count<11;count++)
0936: CLRF 4E
0938: MOVF 4E,W
093A: SUBLW 0A
093C: BTFSS FD8.0
093E: GOTO 09C0
.................... {
.................... temp=*(PData+count);
0942: MOVF 4E,W
0944: ADDWF 4C,W
0946: MOVWF 01
0948: MOVLW 00
094A: ADDWFC 4D,W
094C: MOVWF 03
094E: MOVF 01,W
0950: MOVWF FE9
0952: MOVFF 03,FEA
0956: MOVF FEF,W
0958: MOVWF 3B
.................... temp=temp<<3;
095A: RLCF 3B,F
095C: RLCF 3B,F
095E: RLCF 3B,F
0960: MOVLW F8
0962: ANDWF 3B,F
.................... // delay_us(1);
.................... for(i=0;i<5;i++)
0964: CLRF 4F
0966: MOVF 4F,W
0968: SUBLW 04
096A: BTFSS FD8.0
096C: GOTO 09BA
.................... {
.................... run=temp&0x80;
0970: MOVF 3B,W
0972: ANDLW 80
0974: MOVWF 50
.................... if(run==0)
.................... {
0976: MOVF 50,F
0978: BTFSS FD8.2
097A: GOTO 0990
.................... tim3Str=1;
097E: BSF FB1.0
.................... CFE=0;
0980: BCF F80.2
.................... delay_us(256);
0982: MOVLW 55
0984: MOVWF 00
0986: DECFSZ 00,F
0988: BRA 0986
.................... CFE=1;
098A: BSF F80.2
.................... }
.................... else
.................... {
098C: GOTO 099E
.................... tim3Str=1;
0990: BSF FB1.0
.................... CFE=1;
0992: BSF F80.2
.................... delay_us(256);
0994: MOVLW 55
0996: MOVWF 00
0998: DECFSZ 00,F
099A: BRA 0998
.................... CFE=0;
099C: BCF F80.2
.................... }
.................... temp=temp<<1;
099E: BCF FD8.0
09A0: RLCF 3B,F
.................... while(over==0);
09A2: MOVLW 00
09A4: BTFSC 3C.0
09A6: MOVLW 01
09A8: XORLW 00
09AA: BTFSC FD8.2
09AC: GOTO 09A2
.................... over=0;
09B0: BCF 3C.0
.................... tim3Str=0;
09B2: BCF FB1.0
.................... }
09B4: INCF 4F,F
09B6: GOTO 0966
.................... }
09BA: INCF 4E,F
09BC: GOTO 0938
.................... }
09C0: RETLW 00
09C2: NOP(FFFF)
.................... //******************************************************************************************
.................... // 主函数模块
.................... //******************************************************************************************
.................... void InitADKEY(void)
.................... {
*
02A4: NOP(FFFF)
.................... #asm
.................... movlw 0x41
02A6: MOVLW 41
.................... movwf ADCON0
02A8: MOVWF FC2
.................... movlw 0x02
02AA: MOVLW 02
.................... movwf ADCON1
02AC: MOVWF FC1
.................... bsf TRISA,0
02AE: BSF F92.0
.................... #endasm
.................... }
02B0: GOTO 103E (RETURN)
02B4: NOP(FFFF)
.................... int8 GetADKEY(void)
.................... {
*
03FA: NOP(FFFF)
.................... int8 ADKEYH;
.................... int8 KEYRES;
.................... #asm
.................... bsf ADCON0,GO
03FC: BSF FC2.2
.................... IsOver:
.................... btfsc ADCON0,GO
03FE: BTFSC FC2.2
.................... goto IsOver
0400: GOTO 03FE
.................... movf ADRESH,W
0404: MOVF FC4,W
.................... movwf ADKEYH
0406: MOVWF 4A
.................... movlw 0x31
0408: MOVLW 31
.................... movwf KEYRES
040A: MOVWF 4B
.................... KEY1:
.................... movlw 0xcb
040C: MOVLW CB
.................... subwf ADKEYH,W
040E: SUBWF 4A,W
.................... btfss STATUS,C
0410: BTFSS FD8.0
.................... goto KEY2
0412: GOTO 041A
.................... goto KEYOUT
0416: GOTO 049E
.................... KEY2:
.................... incf KEYRES,F
041A: INCF 4B,F
.................... movlw 0xa8
041C: MOVLW A8
.................... subwf ADKEYH,W
041E: SUBWF 4A,W
.................... btfss STATUS,C
0420: BTFSS FD8.0
.................... goto KEY3
0422: GOTO 042A
.................... goto KEYOUT
0426: GOTO 049E
.................... KEY3:
.................... incf KEYRES,F
042A: INCF 4B,F
.................... movlw 0x8f
042C: MOVLW 8F
.................... subwf ADKEYH,W
042E: SUBWF 4A,W
.................... btfss STATUS,C
0430: BTFSS FD8.0
.................... goto KEY4
0432: GOTO 043A
.................... goto KEYOUT
0436: GOTO 049E
.................... KEY4:
.................... incf KEYRES,F
043A: INCF 4B,F
.................... movlw 0x7c
043C: MOVLW 7C
.................... subwf ADKEYH,W
043E: SUBWF 4A,W
.................... btfss STATUS,C
0440: BTFSS FD8.0
.................... goto KEY5
0442: GOTO 044A
.................... goto
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -