⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wxjm.ls1

📁 自己调试通过的无线解码程序!支持各种无线传感器
💻 LS1
📖 第 1 页 / 共 3 页
字号:
0005 FB              225             MOV     R3,A
0006 FA              226             MOV     R2,A
0007                 227     ?C0005:
0007 C3              228             CLR     C
0008 EB              229             MOV     A,R3
0009 9D              230             SUBB    A,R5
000A EA              231             MOV     A,R2
000B 9C              232             SUBB    A,R4
000C 500A            233             JNC     ?C0008
                     234     ;           { 
                     235                             ; SOURCE LINE # 19
                     236     ;            delay_ms(); 
                     237                             ; SOURCE LINE # 20
000E 120000   F      238             LCALL   delay_ms
                     239     ;           } 
                     240                             ; SOURCE LINE # 21
0011 0B              241             INC     R3
0012 BB0001          242             CJNE    R3,#00H,?C0037
0015 0A              243             INC     R2
0016                 244     ?C0037:
0016 80EF            245             SJMP    ?C0005
                     246     ;  } 
                     247                             ; SOURCE LINE # 22
0018                 248     ?C0008:
0018 22              249             RET     
                     250     ; END OF _delay_nms
                     251     
                     252     ;     
                     253     ;  unsigned long decode(void)                 //无线解码 
                     254     
----                 255             RSEG  ?PR?decode?WXJM
0000                 256     decode:
A51 MACRO ASSEMBLER  WXJM                                                                 12/02/2008 21:16:16 PAGE     5

                     257             USING   0
                     258                             ; SOURCE LINE # 24
                     259     ;  { 
                     260                             ; SOURCE LINE # 25
                     261     ;      unsigned long DATA;                    //记录数据 
                     262     ;      unsigned char count,i;                 //暂时计数 
                     263     ;           
                     264     ; /*一共接收三字节*/         
                     265     ;      
                     266     ;      DATA=0;                                //   
                     267                             ; SOURCE LINE # 31
0000 E4              268             CLR     A
0001 F500     F      269             MOV     DATA?243+03H,A
0003 F500     F      270             MOV     DATA?243+02H,A
0005 F500     F      271             MOV     DATA?243+01H,A
0007 F500     F      272             MOV     DATA?243,A
                     273     ;      for (count=0;count<24;count++)         //开始收集 
                     274                             ; SOURCE LINE # 32
0009 F500     F      275             MOV     count?244,A
000B                 276     ?C0009:
                     277     ;           { 
                     278                             ; SOURCE LINE # 33
                     279     ;             
                     280     ; /*测量高电平宽度*/         
                     281     ; 
                     282     ;        i=0;                                 //宽度计数 
                     283                             ; SOURCE LINE # 37
000B E4              284             CLR     A
000C F500     F      285             MOV     i?245,A
000E                 286     ?C0012:
                     287     ;            while (RFBIT)           //高位计数 
                     288                             ; SOURCE LINE # 38
000E 30B20D          289             JNB     RFBIT,?C0013
                     290     ;             {        
                     291                             ; SOURCE LINE # 39
                     292     ;                 #pragma asm
                     293     ;                 nop;
0011 00              294               nop;
                     295     ;                #pragma endasm
                     296     ; 
                     297     ;             
                     298     ;                  i++;                  //计数增加  
                     299                             ; SOURCE LINE # 45
0012 0500     F      300             INC     i?245
                     301     ;                                         
                     302     ;                  if (i>192) goto end;  //限时解码 
                     303                             ; SOURCE LINE # 47
0014 E500     F      304             MOV     A,i?245
0016 D3              305             SETB    C
0017 94C0            306             SUBB    A,#0C0H
0019 40F3            307             JC      ?C0012
001B 020000   F      308             LJMP    ?decode?end
                     309     ;                 }                                    
                     310                             ; SOURCE LINE # 48
001E                 311     ?C0013:
                     312     ;                  
                     313     ; /*分辨出电平高低*/                 
                     314     ;         
                     315     ;           DATA*=2;                       //数据左移 
                     316                             ; SOURCE LINE # 52
001E AF00     F      317             MOV     R7,DATA?243+03H
0020 AE00     F      318             MOV     R6,DATA?243+02H
0022 AD00     F      319             MOV     R5,DATA?243+01H
0024 AC00     F      320             MOV     R4,DATA?243
0026 E4              321             CLR     A
0027 7B02            322             MOV     R3,#02H
A51 MACRO ASSEMBLER  WXJM                                                                 12/02/2008 21:16:16 PAGE     6

0029 FA              323             MOV     R2,A
002A F9              324             MOV     R1,A
002B F8              325             MOV     R0,A
002C 120000   F      326             LCALL   ?C?LMUL
002F 8F00     F      327             MOV     DATA?243+03H,R7
0031 8E00     F      328             MOV     DATA?243+02H,R6
0033 8D00     F      329             MOV     DATA?243+01H,R5
0035 8C00     F      330             MOV     DATA?243,R4
                     331     ;                   
                     332     ;       if (i<64)                             //分辨高低  
                     333                             ; SOURCE LINE # 54
0037 E500     F      334             MOV     A,i?245
0039 C3              335             CLR     C
003A 9440            336             SUBB    A,#040H
003C 5022            337             JNC     ?C0016
                     338     ;            {     
                     339                             ; SOURCE LINE # 55
                     340     ;             if (!((56>i)&(i>24))) goto end;     //电平合法                               
                               
                     341                             ; SOURCE LINE # 56
003E E500     F      342             MOV     A,i?245
0040 9418            343             SUBB    A,#018H
0042 4004            344             JC      ?C0018
0044 7F01            345             MOV     R7,#01H
0046 8002            346             SJMP    ?C0019
0048                 347     ?C0018:
0048 7F00            348             MOV     R7,#00H
004A                 349     ?C0019:
004A 7438            350             MOV     A,#038H
004C D3              351             SETB    C
004D 9500     F      352             SUBB    A,i?245
004F 4004            353             JC      ?C0020
0051 7E01            354             MOV     R6,#01H
0053 8002            355             SJMP    ?C0021
0055                 356     ?C0020:
0055 7E00            357             MOV     R6,#00H
0057                 358     ?C0021:
0057 EE              359             MOV     A,R6
0058 5F              360             ANL     A,R7
0059 6062            361             JZ      ?decode?end
005B                 362     ?C0017:
                     363     ;             DATA+=0;                            //记低电平 
                     364                             ; SOURCE LINE # 57
005B E4              365             CLR     A
005C 2500     F      366             ADD     A,DATA?243+03H
                     367     ;            } 
                     368                             ; SOURCE LINE # 58
005E 8022            369             SJMP    ?C0038
0060                 370     ?C0016:
                     371     ;             
                     372     ;           else 
                     373     ;            {      
                     374                             ; SOURCE LINE # 61
                     375     ;             if (!((168>i)&(i>72))) goto end;    //电平合法                               
                               
                     376                             ; SOURCE LINE # 62
0060 E500     F      377             MOV     A,i?245
0062 D3              378             SETB    C
0063 9448            379             SUBB    A,#048H
0065 4004            380             JC      ?C0024
0067 7F01            381             MOV     R7,#01H
0069 8002            382             SJMP    ?C0025
006B                 383     ?C0024:
006B 7F00            384             MOV     R7,#00H
006D                 385     ?C0025:
006D 74A8            386             MOV     A,#0A8H
A51 MACRO ASSEMBLER  WXJM                                                                 12/02/2008 21:16:16 PAGE     7

006F D3              387             SETB    C
0070 9500     F      388             SUBB    A,i?245
0072 4004            389             JC      ?C0026
0074 7E01            390             MOV     R6,#01H
0076 8002            391             SJMP    ?C0027
0078                 392     ?C0026:
0078 7E00            393             MOV     R6,#00H
007A                 394     ?C0027:
007A EE              395             MOV     A,R6
007B 5F              396             ANL     A,R7
007C 603F            397             JZ      ?decode?end
007E                 398     ?C0023:
                     399     ;             DATA+=1;                            //记高电平 
                     400                             ; SOURCE LINE # 63
007E E500     F      401             MOV     A,DATA?243+03H
0080 2401            402             ADD     A,#01H
0082                 403     ?C0038:
0082 F500     F      404             MOV     DATA?243+03H,A
0084 E4              405             CLR     A
0085 3500     F      406             ADDC    A,DATA?243+02H
0087 F500     F      407             MOV     DATA?243+02H,A
0089 E4              408             CLR     A
008A 3500     F      409             ADDC    A,DATA?243+01H
008C F500     F      410             MOV     DATA?243+01H,A
008E E4              411             CLR     A
008F 3500     F      412             ADDC    A,DATA?243
0091 F500     F      413             MOV     DATA?243,A
                     414     ;            } 
                     415                             ; SOURCE LINE # 64
0093                 416     ?C0028:
                     417     ;             
                     418     ; /*测量低电平宽度*/         
                     419     ;     
                     420     ;            while (!(RFBIT))               //低位计数 
                     421                             ; SOURCE LINE # 68
0093 20B20C          422             JB      RFBIT,?C0029
                     423     ;             {        
                     424                             ; SOURCE LINE # 69
                     425     ;                #pragma asm
                     426     ;                 nop;
0096 00              427               nop;
                     428     ;                #pragma endasm
                     429     ; 
                     430     ; 
                     431     ;                  i++;                        //计数增加  
                     432                             ; SOURCE LINE # 75
0097 0500     F      433             INC     i?245
                     434     ;                                         
                     435     ;                  if (i>224) goto end;        //限时解码 
                     436                             ; SOURCE LINE # 77
0099 E500     F      437             MOV     A,i?245
009B D3              438             SETB    C
009C 94E0            439             SUBB    A,#0E0H
009E 40F3            440             JC      ?C0028
00A0 801B            441             SJMP    ?decode?end
                     442     ;                 }           
                     443                             ; SOURCE LINE # 78
00A2                 444     ?C0029:
                     445     ;                  
                     446     ; /*低电平是否过窄*/                 
                     447     ;                   
                     448     ;            if (i<96) goto end;                  //对比宽度                               
                                
                     449                             ; SOURCE LINE # 82
00A2 E500     F      450             MOV     A,i?245
00A4 C3              451             CLR     C
A51 MACRO ASSEMBLER  WXJM                                                                 12/02/2008 21:16:16 PAGE     8

00A5 9460            452             SUBB    A,#060H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -