📄 rfid.lst
字号:
0260: BTFSS FD8.0
0262: GOTO 0288
0266: BTFSS FD8.2
0268: GOTO 0276
026C: MOVF 40,W
026E: SUBLW 1F
0270: BTFSS FD8.0
0272: GOTO 0288
.................... bitdata=0;
0276: CLRF 46
.................... bit_over=1;
0278: MOVLW 01
027A: MOVWF 45
.................... last_timer=CCP_2;
027C: MOVFF FBC,3F
0280: MOVFF FBB,3E
.................... }
.................... else
.................... {
0284: GOTO 028C
.................... timeout=1;
0288: MOVLW 01
028A: MOVWF 44
.................... }
.................... }
.................... }
028C: BCF FA1.0
028E: GOTO 006E
.................... void moniter_Inti(void)
.................... {
*
04A8: NOP(FFFF)
.................... setup_ccp1(CCP_CAPTURE_RE); // Configure CCP1 to capture rise
04AA: MOVLW B7
04AC: ANDWF FB1,F
04AE: CLRF FBD
04B0: MOVLW 05
04B2: MOVWF FBD
.................... setup_ccp2(CCP_CAPTURE_FE); // Configure CCP2 to capture fall
04B4: MOVLW B7
04B6: ANDWF FB1,F
04B8: CLRF FBA
04BA: MOVLW 04
04BC: MOVWF FBA
.................... setup_timer_1(T1_INTERNAL|T1_DIV_BY_1); // Start timer 1
04BE: MOVLW 85
04C0: MOVWF FCD
.................... setup_timer_0(RTCC_INTERNAL|RTCC_OFF|RTCC_8_BIT|RTCC_DIV_1);
04C2: MOVLW 48
04C4: MOVWF FD5
.................... set_tris_c(0x86);
04C6: MOVLW 86
04C8: MOVWF F94
.................... disable_interrupts(GLOBAL);
04CA: BCF FF2.6
04CC: BCF FF2.7
04CE: BTFSC FF2.7
04D0: GOTO 04CC
.................... enable_interrupts(INT_CCP1);
04D4: BSF F9D.2
.................... enable_interrupts(INT_CCP2);
04D6: BSF FA0.0
.................... }
04D8: GOTO 09D2 (RETURN)
04DC: NOP(FFFF)
.................... //************************************************************
.................... void moniter_Clern_Number(void)
.................... {
04DE: NOP(FFFF)
.................... moniter_Data[0]=0;
04E0: CLRF 19
.................... moniter_Data[1]=0;
04E2: CLRF 1A
.................... moniter_Data[2]=0;
04E4: CLRF 1B
.................... moniter_Data[3]=0;
04E6: CLRF 1C
.................... moniter_Data[4]=0;
04E8: CLRF 1D
.................... moniter_Data[5]=0;
04EA: CLRF 1E
.................... moniter_Data[6]=0;
04EC: CLRF 1F
.................... moniter_Data[7]=0;
04EE: CLRF 20
.................... moniter_Data[8]=0;
04F0: CLRF 21
.................... moniter_Data[9]=0;
04F2: CLRF 22
.................... moniter_Data[10]=0;
04F4: CLRF 23
.................... }
04F6: RETLW 00
04F8: NOP(FFFF)
.................... //************************************************************
.................... void moniter_Recive(void)
.................... {
04FA: NOP(FFFF)
.................... int8 header,pc;
.................... int8 temp,temp1;
.................... int16 temp2;
.................... int8 ByteCounter;
.................... int8 *PData,*PData1;
.................... int8 BitCounter;
.................... int16 fall,rise,num;
.................... int16 value,delay_time;
.................... str:
.................... disable_interrupts(GLOBAL);
04FC: BCF FF2.6
04FE: BCF FF2.7
0500: BTFSC FF2.7
0502: GOTO 04FE
.................... if(input(RF_DATA_IN)==1)
.................... if(input(RF_DATA_IN)==1)
0506: MOVLW 00
0508: BTFSC F82.2
050A: MOVLW 01
050C: SUBLW 01
050E: BTFSS FD8.2
0510: GOTO 08D2
.................... if(input(RF_DATA_IN)==1)
0514: MOVLW 00
0516: BTFSC F82.2
0518: MOVLW 01
051A: SUBLW 01
051C: BTFSS FD8.2
051E: GOTO 08D2
.................... if(input(RF_DATA_IN)==1)
0522: MOVLW 00
0524: BTFSC F82.2
0526: MOVLW 01
0528: SUBLW 01
052A: BTFSS FD8.2
052C: GOTO 08D2
.................... if(input(RF_DATA_IN)==1)
0530: MOVLW 00
0532: BTFSC F82.2
0534: MOVLW 01
0536: SUBLW 01
0538: BTFSS FD8.2
053A: GOTO 08D2
.................... {
053E: MOVLW 00
0540: BTFSC F82.2
0542: MOVLW 01
0544: SUBLW 01
0546: BTFSS FD8.2
0548: GOTO 08D2
.................... enable_interrupts(GLOBAL);
054C: MOVLW C0
054E: IORWF FF2,F
.................... while(b==0);
0550: MOVF 48,F
0552: BTFSC FD8.2
0554: GOTO 0550
.................... a=0;b=0;
0558: CLRF 47
055A: CLRF 48
.................... delay_us(1);
055C: NOP
.................... if(haha<430||haha>550)
.................... {
055E: MOVF 43,W
0560: SUBLW 01
0562: BTFSS FD8.0
0564: GOTO 0578
0568: BTFSS FD8.2
056A: GOTO 0594
056E: MOVF 42,W
0570: SUBLW AD
0572: BTFSC FD8.0
0574: GOTO 0594
0578: MOVF 43,W
057A: SUBLW 01
057C: BTFSC FD8.0
057E: GOTO 0598
0582: XORLW FF
0584: BTFSS FD8.2
0586: GOTO 0594
058A: MOVF 42,W
058C: SUBLW 26
058E: BTFSC FD8.0
0590: GOTO 0598
....................
.................... goto str;
0594: GOTO 04FC
.................... }
.................... last_timer=CCP_1;
0598: MOVFF FBF,3F
059C: MOVFF FBE,3E
.................... header=0;
05A0: CLRF 4B
.................... value=0;
05A2: CLRF 5E
05A4: CLRF 5D
.................... do
.................... {
.................... jing=header;
05A6: MOVFF 4B,3D
.................... bit_over=0;
05AA: CLRF 45
.................... timeout=0;
05AC: CLRF 44
.................... num=0;
05AE: CLRF 5C
05B0: CLRF 5B
.................... while(!bit_over)
.................... {
05B2: MOVF 45,F
05B4: BTFSS FD8.2
05B6: GOTO 05EA
.................... delay_us(1);
05BA: NOP
.................... num++;
05BC: INCF 5B,F
05BE: BTFSC FD8.2
05C0: INCF 5C,F
.................... if(num>600)
.................... {
05C2: MOVF 5C,W
05C4: SUBLW 01
05C6: BTFSC FD8.0
05C8: GOTO 05E6
05CC: XORLW FF
05CE: BTFSS FD8.2
05D0: GOTO 05DE
05D4: MOVF 5B,W
05D6: SUBLW 58
05D8: BTFSC FD8.0
05DA: GOTO 05E6
.................... timeout=1;
05DE: MOVLW 01
05E0: MOVWF 44
.................... break;
05E2: GOTO 05EA
.................... }
.................... }
05E6: GOTO 05B2
.................... bit_over=0;
05EA: CLRF 45
.................... if(!(timeout==0&&bitdata==1))
.................... {
05EC: MOVF 44,F
05EE: BTFSS FD8.2
05F0: GOTO 05FE
05F4: DECFSZ 46,W
05F6: GOTO 05FE
05FA: GOTO 0604
.................... timeout=0;
05FE: CLRF 44
.................... goto str;
0600: GOTO 04FC
.................... }
.................... // value+=TIMER_1;
.................... header=header+1;
0604: MOVLW 01
0606: ADDWF 4B,F
.................... }while(header<8);
.................... // delay_time=value*0.2;
.................... if(header==8)
0608: MOVF 4B,W
060A: SUBLW 07
060C: BTFSC FD8.0
060E: GOTO 05A6
.................... {
0612: MOVF 4B,W
0614: SUBLW 08
0616: BTFSS FD8.2
0618: GOTO 08D2
.................... ByteCounter=0;
061C: CLRF 51
.................... PData=moniter_Data;
061E: CLRF 53
0620: MOVLW 19
0622: MOVWF 52
.................... do
.................... {
.................... BitCounter=5;
0624: MOVLW 05
0626: MOVWF 56
.................... temp1=0;
0628: CLRF 4E
.................... do
.................... {
.................... bit_over=0;
062A: CLRF 45
.................... timeout=0;
062C: CLRF 44
.................... num=0;
062E: CLRF 5C
0630: CLRF 5B
.................... while(!bit_over)
.................... {
0632: MOVF 45,F
0634: BTFSS FD8.2
0636: GOTO 066A
.................... delay_us(1);
063A: NOP
.................... num++;
063C: INCF 5B,F
063E: BTFSC FD8.2
0640: INCF 5C,F
.................... if(num>600)
.................... {
0642: MOVF 5C,W
0644: SUBLW 01
0646: BTFSC FD8.0
0648: GOTO 0666
064C: XORLW FF
064E: BTFSS FD8.2
0650: GOTO 065E
0654: MOVF 5B,W
0656: SUBLW 58
0658: BTFSC FD8.0
065A: GOTO 0666
.................... timeout=1;
065E: MOVLW 01
0660: MOVWF 44
.................... break;
0662: GOTO 066A
.................... }
.................... }
0666: GOTO 0632
.................... bit_over=0;
066A: CLRF 45
.................... if(timeout==1)
.................... {
066C: DECFSZ 44,W
066E: GOTO 0678
.................... timeout=0;
0672: CLRF 44
.................... goto str;
0674: GOTO 04FC
.................... }
.................... temp=bitdata;
0678: MOVFF 46,4D
.................... temp1=(temp1<<1)|temp;
067C: BCF FD8.0
067E: RLCF 4E,W
0680: IORWF 4D,W
0682: MOVWF 4E
.................... BitCounter--;
0684: DECF 56,F
.................... }while(BitCounter);
.................... *(PData+ByteCounter)=temp1;
0686: MOVF 56,F
0688: BTFSS FD8.2
068A: GOTO 062A
068E: MOVF 51,W
0690: ADDWF 52,W
0692: MOVWF 01
0694: MOVLW 00
0696: ADDWFC 53,W
0698: MOVWF 03
069A: MOVF 01,W
069C: MOVWF FE9
069E: MOVFF 03,FEA
06A2: MOVFF 4E,FEF
.................... ByteCounter=ByteCounter+1;
06A6: MOVLW 01
06A8: ADDWF 51,F
.................... }while(ByteCounter<11);
.................... if(temp==0)
06AA: MOVF 51,W
06AC: SUBLW 0A
06AE: BTFSC FD8.0
06B0: GOTO 0624
.................... {
06B4: MOVF 4D,F
06B6: BTFSS FD8.2
06B8: GOTO 08CA
....................
.................... PData=moniter_Data;
06BC: CLRF 53
06BE: MOVLW 19
06C0: MOVWF 52
.................... PData1=sendData;
06C2: CLRF 55
06C4: MOVLW 2F
06C6: MOVWF 54
.................... for(ByteCounter=0;ByteCounter<11;ByteCounter++)//有5个字节数据
06C8: CLRF 51
06CA: MOVF 51,W
06CC: SUBLW 0A
06CE: BTFSS FD8.0
06D0: GOTO 083A
.................... {
.................... temp=(((*(PData+ByteCounter))&0x10)>>4)+(((*(PData+ByteCounter))&0x08)>>3)+(((*(PData+ByteCounter))&0x04)>>2)+(((*(PData+ByteCounter))&0x02)>>1);
06D4: MOVF 51,W
06D6: ADDWF 52,W
06D8: MOVWF 01
06DA: MOVLW 00
06DC: ADDWFC 53,W
06DE: MOVWF 03
06E0: MOVF 01,W
06E2: MOVWF FE9
06E4: MOVFF 03,FEA
06E8: MOVF FEF,W
06EA: ANDLW 10
06EC: MOVWF 00
06EE: SWAPF 00,W
06F0: MOVWF 63
06F2: MOVLW 0F
06F4: ANDWF 63,F
06F6: MOVF 51,W
06F8: ADDWF 52,W
06FA: MOVWF 01
06FC: MOVLW 00
06FE: ADDWFC 53,W
0700: MOVWF 03
0702: MOVF 01,W
0704: MOVWF FE9
0706: MOVFF 03,FEA
070A: MOVF FEF,W
070C: ANDLW 08
070E: MOVWF 00
0710: RRCF 00,F
0712: RRCF 00,F
0714: RRCF 00,F
0716: MOVLW 1F
0718: ANDWF 00,F
071A: MOVF 00,W
071C: ADDWF 63,W
071E: MOVWF 66
0720: MOVF 51,W
0722: ADDWF 52,W
0724: MOVWF 01
0726: MOVLW 00
0728: ADDWFC 53,W
072A: MOVWF 03
072C: MOVF 01,W
072E: MOVWF FE9
0730: MOVFF 03,FEA
0734: MOVF FEF,W
0736: ANDLW 04
0738: MOVWF 00
073A: RRCF 00,F
073C: RRCF 00,F
073E: MOVLW 3F
0740: ANDWF 00,F
0742: MOVF 00,W
0744: ADDWF 66,W
0746: MOVWF 69
0748: MOVF 51,W
074A: ADDWF 52,W
074C: MOVWF 01
074E: MOVLW 00
0750: ADDWFC 53,W
0752: MOVWF 03
0754: MOVF 01,W
0756: MOVWF FE9
0758: MOVFF 03,FEA
075C: MOVF FEF,W
075E: ANDLW 02
0760: MOVWF 00
0762: BCF FD8.0
0764: RRCF 00,F
0766: MOVF 00,W
0768: ADDWF 69,W
076A: MOVWF 4D
.................... if(ByteCounter==10)
.................... {
076C: MOVF 51,W
076E: SUBLW 0A
0770: BTFSS FD8.2
0772: GOTO 07AC
.................... temp1=*(PData+ByteCounter)&0x1f;
0776: MOVF 51,W
0778: ADDWF 52,W
077A: MOVWF 01
077C: MOVLW 00
077E: ADDWFC 53,W
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -