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

📄 wxjm.lst

📁 自己调试通过的无线解码程序!支持各种无线传感器
💻 LST
字号:
C51 COMPILER V7.09   WXJM                                                                  12/02/2008 21:16:16 PAGE 1   


C51 COMPILER V7.09, COMPILATION OF MODULE WXJM
OBJECT MODULE PLACED IN wxjm.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE wxjm.c BROWSE DEBUG OBJECTEXTEND SRC(.\wxjm.SRC)

line level    source

   1          #include <stc89c51rc.h> 
   2          #include <rs232_def.h>
   3          #include <intrins.h>
   4          
   5          sbit RFBIT = P3^2;
   6          
   7          void delay_ms(void)                         //毫秒延时  
   8           {     
   9   1           unsigned int i; 
  10   1           for (i=0;i<140;i++)  
  11   1                { 
  12   2                } 
  13   1       } 
  14          
  15          void delay_nms(unsigned int n)              //延时周期 
  16           { 
  17   1           unsigned int i; 
  18   1           for (i=0;i<n;i++) 
  19   1                { 
  20   2                 delay_ms(); 
  21   2                } 
  22   1       } 
  23              
  24           unsigned long decode(void)                 //无线解码 
  25           { 
  26   1           unsigned long DATA;                    //记录数据 
  27   1           unsigned char count,i;                 //暂时计数 
  28   1                
  29   1      /*一共接收三字节*/         
  30   1           
  31   1           DATA=0;                                //   
  32   1           for (count=0;count<24;count++)         //开始收集 
  33   1                { 
  34   2                  
  35   2      /*测量高电平宽度*/         
  36   2      
  37   2             i=0;                                 //宽度计数 
  38   2                 while (RFBIT)           //高位计数 
  39   2                  {        
  40   3                      #pragma asm
  41   3                      nop;
  42   3                     #pragma endasm
  43   3      
  44   3                  
  45   3                       i++;                  //计数增加  
  46   3                                              
  47   3                       if (i>192) goto end;  //限时解码 
  48   3                      }                                    
  49   2                       
  50   2      /*分辨出电平高低*/                 
  51   2              
  52   2                DATA*=2;                       //数据左移 
  53   2                        
  54   2            if (i<64)                             //分辨高低  
  55   2                 {     
C51 COMPILER V7.09   WXJM                                                                  12/02/2008 21:16:16 PAGE 2   

  56   3                  if (!((56>i)&(i>24))) goto end;     //电平合法                                 
  57   3                  DATA+=0;                            //记低电平 
  58   3                 } 
  59   2                  
  60   2                else 
  61   2                 {      
  62   3                  if (!((168>i)&(i>72))) goto end;    //电平合法                                 
  63   3                  DATA+=1;                            //记高电平 
  64   3                 } 
  65   2                  
  66   2      /*测量低电平宽度*/         
  67   2          
  68   2                 while (!(RFBIT))               //低位计数 
  69   2                  {        
  70   3                     #pragma asm
  71   3                      nop;
  72   3                     #pragma endasm
  73   3      
  74   3      
  75   3                       i++;                        //计数增加  
  76   3                                              
  77   3                       if (i>224) goto end;        //限时解码 
  78   3                      }           
  79   2                       
  80   2      /*低电平是否过窄*/                 
  81   2                        
  82   2                 if (i<96) goto end;                  //对比宽度                                  
  83   2            } 
  84   1                
  85   1      /*解码成功返结果*/         
  86   1                                             
  87   1               return  DATA;                          //成功返回  
  88   1                
  89   1      /*有误码结束解码*/          
  90   1                
  91   1           end:          
  92   1               return 0;                              //误码结束 
  93   1       }   
  94            
  95          void main(void) 
  96          { 
  97   1              
  98   1           
  99   1               
 100   1               while (1) 
 101   1                { 
 102   2                 //DATA =decode();                      //解码程序 
 103   2                  
 104   2                     P3 = 0xff;
 105   2                             _nop_();
 106   2                     P3 = 0;
 107   2                             _nop_();
 108   2      
 109   2                } 
 110   1      } 
 111          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    249    ----
   CONSTANT SIZE    =     11    ----
   XDATA SIZE       =   ----    ----
C51 COMPILER V7.09   WXJM                                                                  12/02/2008 21:16:16 PAGE 3   

   PDATA SIZE       =   ----    ----
   DATA SIZE        =      4       6
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      2    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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