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

📄 rf51.lst

📁 8051单片机用的315M射频发射及接收程序模块
💻 LST
字号:
C51 COMPILER V7.50   RF51                                                                  05/07/2008 20:04:07 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE RF51
OBJECT MODULE PLACED IN RF51.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE RF51.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg51.h>
   2          #include <intrins.h>
   3          #define uint unsigned int
   4          #define uchar unsigned char
   5          
   6          unsigned long datacap;
   7          uchar count,data_count;
   8          
   9          sfr AUXR=0x8e;
  10          sbit rfin=P2^7;
  11          sbit led=P1^0;
  12          
  13          void init();
  14          bit sync();
  15          bit getdata();
  16          
  17          void main()
  18          {
  19   1              uchar m,n,t;
  20   1              init();
  21   1              while(1)
  22   1              {
  23   2                      while(sync())
  24   2                              getdata();
  25   2      
  26   2                      if(datacap==0x98008501)
  27   2                      {
  28   3                              led=0;
  29   3                              for(m=255;m>0;m--)
  30   3                                      for(n=255;n>0;n--);
  31   3                              led=1;
  32   3                      }
  33   2                      if(datacap==0x98008502)
  34   2                      {
  35   3                                      for(t=2;t>0;t--)
  36   3                                      {       for(m=255;m>0;m--)
  37   4                                                      for(n=255;n>0;n--);
  38   4                                              for(m=255;m>0;m--)
  39   4                                                      for(n=255;n>0;n--);
  40   4                                              led=0;
  41   4                                              for(m=255;m>0;m--)
  42   4                                                      for(n=255;n>0;n--);
  43   4                                              led=1;
  44   4                                      }
  45   3                      }
  46   2                      if(datacap==0x98008504)
  47   2                      {
  48   3                                      for(t=3;t>0;t--)
  49   3                                      {       for(m=255;m>0;m--)
  50   4                                                      for(n=255;n>0;n--);
  51   4                                              for(m=255;m>0;m--)
  52   4                                                      for(n=255;n>0;n--);
  53   4                                              led=0;
  54   4                                              for(m=255;m>0;m--)
  55   4                                                      for(n=255;n>0;n--);
C51 COMPILER V7.50   RF51                                                                  05/07/2008 20:04:07 PAGE 2   

  56   4                                              led=1;
  57   4                                      }
  58   3                      }
  59   2                      datacap=0x00;      
  60   2              }
  61   1              
  62   1      }
  63          
  64          void init()
  65          {
  66   1              datacap=0x00;
  67   1              count=0;
  68   1              data_count=0;
  69   1              AUXR=0x01;
  70   1              P1=0xff;
  71   1              P3=0xff;
  72   1      //下面3行用于定义T0 工作于方式1(16位模式)
  73   1      //      TMOD=0x01;      
  74   1      //      TH0=(65536-100)/256;
  75   1      //      TL0=(65536-100)%256;
  76   1      //下面2行用于定义T0 工作于方式2(8位自动装入模式)
  77   1              TMOD=0x02;
  78   1              TH0=(65536-100)%256;
  79   1              TL0=(65536-100)%256;
  80   1              IE=0x82;  //开总中断及时钟0中断
  81   1              TR0=1;   //定时器0计时开始
  82   1      //      IE=0x83;  //开总中断及外部0和时钟0中断
  83   1      //      IT0=1;   //外部中断0为边沿(下降沿)触发
  84   1      }
  85          
  86          bit sync()
  87          {
  88   1              count=0;
  89   1              while(!rfin);
  90   1              if((count<2)||(count>6))
  91   1              {
  92   2                      return 0;//出错}
  93   2                      
  94   2              }
  95   1              count=0;
  96   1              while(rfin);
  97   1              if((count<25)||(count>35))
  98   1              {
  99   2                      return 0;//出错}
 100   2              }
 101   1              data_count=0;
 102   1              datacap=0;
 103   1              return 1;
 104   1      }
 105          
 106          bit getdata()
 107          {
 108   1              uchar Hlevel_bit,temp;
 109   1              temp=0x00;
 110   1              for(;data_count<32;data_count++)
 111   1              {
 112   2                      count=0;
 113   2                      while(!rfin);
 114   2                      if((count<2)||(count>12))
 115   2                              return 0;//出错
 116   2                      if(count<6)
 117   2                              Hlevel_bit=0;//判断到0的高电平
C51 COMPILER V7.50   RF51                                                                  05/07/2008 20:04:07 PAGE 3   

 118   2                      else //if(count<13)
 119   2                              Hlevel_bit=1;//判断到1的高电平
 120   2                      count=0;
 121   2                      while(rfin);
 122   2                      if((count<2)||(count>12))
 123   2                              return 0;//出错
 124   2                      if(!Hlevel_bit)
 125   2                      {
 126   3                              if(count>6)
 127   3                                      datacap=datacap&0xfffffffe;//得到数据0          
 128   3                      }
 129   2                      else
 130   2                      {
 131   3                              if(count<7)
 132   3                               datacap=datacap|0x01;//得到数据1
 133   3                      }
 134   2      
 135   2                      if(data_count<31)
 136   2                              datacap<<=1;
 137   2              }
 138   1      
 139   1              return 1;
 140   1      
 141   1      }
 142          
 143          void timer0() interrupt 1
 144          {
 145   1      //      TH0=(65536-100)/256;
 146   1      //      TL0=(65536-100)%256;
 147   1              count++;
 148   1              
 149   1      }
 150          
 151          /*
 152          void ext0() interrupt 0 using 1
 153          {
 154          //      uchar m,n;
 155                  EX0=0;
 156          //      led=0;
 157          //      for(m=255;m>0;m--)
 158          //              for(n=255;n>0;n--);
 159          //      while(sync())
 160          //              getdata();      
 161          //      led=1;
 162          //      for(m=255;m>0;m--)
 163          //              for(n=255;n>0;n--);
 164                  EX0=1;
 165          }  */


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    442    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      6       4
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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