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

📄 sent.lst

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


C51 COMPILER V7.50, COMPILATION OF MODULE SENT
OBJECT MODULE PLACED IN Sent.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Sent.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          uchar keyval;
   9          
  10          sfr AUXR=0x8e;
  11          sbit rfin=P2^7;
  12          sbit rfout=P2^6;
  13          sbit led=P1^0;
  14          sbit key1=P1^7;
  15          sbit key2=P1^6;
  16          sbit key3=P1^5;
  17          bit jsing;
  18          
  19          void init();
  20          uchar keyscan();
  21          void getdata();
  22          void send(uchar);
  23          bit sync();
  24          void delay(uint z)               ;
  25          
  26          void main()
  27          {
  28   1              uchar m,n,t;
  29   1              init();
  30   1              while(1)
  31   1              {
  32   2              /*
  33   2                      while(keyval)
  34   2                      {       
  35   2                              send(keyval);
  36   2                              keyval=0;
  37   2      
  38   2                      } */
  39   2                      while(sync())
  40   2                      {
  41   3                              jsing=1;
  42   3                              getdata();
  43   3                              jsing=0;
  44   3                              if(datacap==0x98008501)
  45   3                              {
  46   4                                      led=0;
  47   4                                      for(m=255;m>0;m--)
  48   4                                              for(n=255;n>0;n--);
  49   4                                      led=1;
  50   4                              }
  51   3                              if(datacap==0x98008502)
  52   3                              {
  53   4                                              for(t=2;t>0;t--)
  54   4                                              {       for(m=255;m>0;m--)
  55   5                                                              for(n=255;n>0;n--);
C51 COMPILER V7.50   SENT                                                                  05/10/2008 08:15:05 PAGE 2   

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

 118   2              }
 119   1              count=0;
 120   1              while(rfin);
 121   1              if((count<25)||(count>35))
 122   1              {
 123   2                      return 0;//出错}
 124   2              }
 125   1              data_count=0;
 126   1              datacap=0;
 127   1              return 1;
 128   1      }
 129          
 130          void getdata()
 131          {
 132   1              uchar Hlevel_bit,temp;
 133   1              temp=0x00;
 134   1              for(;data_count<32;data_count++)
 135   1              {
 136   2                      count=0;
 137   2                      while(!rfin);
 138   2                      if((count<2)||(count>12))
 139   2                              return ;//出错
 140   2                      if(count<6)
 141   2                              Hlevel_bit=0;//判断到0的高电平
 142   2                      else //if(count<13)
 143   2                              Hlevel_bit=1;//判断到1的高电平
 144   2                      count=0;
 145   2                      while(rfin);
 146   2                      if((count<2)||(count>12))
 147   2                              return ;//出错
 148   2                      if(!Hlevel_bit)
 149   2                      {
 150   3                              if(count>6)
 151   3                                      datacap=datacap&0xfffffffe;//得到数据0          
 152   3                      }
 153   2                      else
 154   2                      {
 155   3                              if(count<7)
 156   3                               datacap=datacap|0x01;//得到数据1
 157   3                      }
 158   2      
 159   2                      if(data_count<31)
 160   2                              datacap<<=1;
 161   2              }
 162   1      
 163   1              return;
 164   1      
 165   1      }
 166          
 167          
 168          
 169          
 170           void send(uchar k)
 171           {
 172   1              uchar temp;
 173   1              bit firstd,Cbit;
 174   1              count=0;
 175   1              rfout=1;
 176   1              while(count!=3);
 177   1              rfout=0;
 178   1              switch(k)
 179   1              {
C51 COMPILER V7.50   SENT                                                                  05/10/2008 08:15:05 PAGE 4   

 180   2                      case 1:datacap=0x98008501;               break;
 181   2                      case 2:datacap=0x98008502;        break;
 182   2                      case 3:datacap=0x98008504;break;
 183   2              }
 184   1      
 185   1              firstd=1;
 186   1              for(temp=32;temp>0;temp--)
 187   1              {
 188   2                      Cbit=0x80000000&datacap;
 189   2                      datacap<<=1;
 190   2                      if(firstd)        
 191   2                      {
 192   3                              while(count!=0x21);
 193   3                              rfout=1;
 194   3                              count=0x00;
 195   3                              firstd=0;
 196   3                      }
 197   2                      if(Cbit)
 198   2                      {
 199   3                              while(count!=0x09);
 200   3                              rfout=0;
 201   3                              while(count!=0x0c);
 202   3                              rfout=1;
 203   3                              count=0;
 204   3                      }
 205   2                      if(!Cbit)
 206   2                      {
 207   3                              while(count!=0x03);
 208   3                              rfout=0;
 209   3                              while(count!=0x0c);
 210   3                              rfout=1;
 211   3                              count=0;
 212   3                      }
 213   2              }
 214   1              count=0;
 215   1      
 216   1       }
 217          
 218          uchar keyscan()
 219          {
 220   1              if(key1==0)
 221   1              {
 222   2                      //delay(5);
 223   2                      if(key1==0);
 224   2                      while(!key1);
 225   2                      //delay(5);
 226   2                      while(!key1);
 227   2                      return 1;
 228   2              }
 229   1      
 230   1              if(key2==0)
 231   1              {
 232   2                      //delay(5);
 233   2                      if(key2==0);
 234   2                      while(!key2);
 235   2                      //delay(5);
 236   2                      while(!key2);
 237   2                      return 2;
 238   2              }
 239   1      
 240   1              if(key3==0)
 241   1              {
C51 COMPILER V7.50   SENT                                                                  05/10/2008 08:15:05 PAGE 5   

 242   2                      //delay(5);
 243   2                      if(key3==0);
 244   2                      while(!key3);
 245   2                      //delay(5);
 246   2                      while(!key3);
 247   2                      return 3;
 248   2              }
 249   1              return 0;
 250   1      }
 251          
 252          void delay(uint z)
 253          {
 254   1              uint x,y;
 255   1              for(x=z;x>0;x--)
 256   1                      for(y=110;y>0;y--);
 257   1      }
 258          
 259           void timer0() interrupt 1
 260          {
 261   1      //      TH0=(65536-100)/256;
 262   1      //      TL0=(65536-100)%256;
 263   1              count++;        
 264   1      }
 265          
 266          void ext0() interrupt 0 using 1
 267          {
 268   1              EX0=0;
 269   1              if(!jsing)
 270   1              {       
 271   2                      while(keyval=keyscan())
 272   2                              send(keyval)  ;
 273   2                      keyval=0;
 274   2               }
 275   1               EX0=1;
 276   1      
 277   1      }  


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    693    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      7       4
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1       2
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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