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

📄 main.lst

📁 在KEILC51中NRF2401项目开发成功
💻 LST
字号:
C51 COMPILER V8.08   MAIN                                                                  11/13/2008 00:17:47 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <string.h>
   2          #include <AT89X52.h>
   3          #include <intrins.h>
   4          #include "nRF2401.H"
   5          
   6          #define         INT8U           unsigned char 
   7          #define         INT16U          unsigned int
   8          
   9          #define         FOSC            24000000        
  10          #define         BAUD            9600
  11          #define         TIMER1          0XFD    //256-(110592/(12*32*96))
  12          #define         TIMER0H         (65535-3*FOSC/12/1000)/256
  13          #define         TIMER0L         (65535-3*FOSC/12/1000)%256                      //定时3MSVR
  14          
  15          #define time0h (65535-3000)/256
  16          #define time0l (65535-3000)%256                 //定时3MS
  17          
  18          
  19          
  20          
  21          sbit    LED1    =       P1^4;
  22          sbit    LED2    =       P1^5;
  23          sbit    key1    =       P1^6;
  24          sbit    key2    =       P1^7;
  25          sbit    key3    =       P3^2;
  26          sbit    key4    =       P3^3;
  27          sbit    key5    =       P3^4;
  28          sbit    key6    =       P3^5;
  29          sbit    key7    =       P3^6;
  30          sbit    key8    =       P3^7;
  31          bit     ledcon  ;
  32          INT16U delay=0;                                                 
  33          INT16U timer[2];                                                                //超时计数器
  34          unsigned char RxBuf[25];                                                                        // 接收缓冲,保存接收到的数据
  35          
  36          
  37          /*****************************************************************************************
  38          //函数名:UartInit()
  39          //输入:无
  40          //输出:无
  41          //功能描述:串口初始化程序
  42          /*****************************************************************************************/
  43          void UartInit(void)
  44          {
  45   1              SCON = 0x50;            //串口方式1,允许接收
  46   1              TMOD = 0x21;            //定时器1工作方式2,定时器0工作方式1
  47   1              TH1 = 0xf3;
  48   1              TL1 = 0xf3;
  49   1              PCON=PCON|0x80;
  50   1              TR1 = 1;                //启动定时器1
  51   1      }
  52          
  53          
  54          /*****************************************************************************************
  55          //函数名:SendCh(ch)
C51 COMPILER V8.08   MAIN                                                                  11/13/2008 00:17:47 PAGE 2   

  56          //输入:无
  57          //输出:无
  58          //功能描述:串口发送一个字符
  59          /*****************************************************************************************/
  60          void SendCh(INT8U ch)
  61          {
  62   1              SBUF = ch;
  63   1              while(!TI);
  64   1              TI = 0;
  65   1      }
  66          
  67          
  68          /*****************************************************************************************
  69          //函数名:void SendStr(INT8U *arr)
  70          //输入:发送的字符串
  71          //输出:无
  72          //功能描述:发送一个字符串
  73          /*****************************************************************************************/
  74          void SendStr(INT8U *arr)
  75          {
  76   1              INT8U i;
  77   1              
  78   1              i = 0;
  79   1              while(arr[i] != '\0')
  80   1              {
  81   2                      SendCh(arr[i]);
  82   2                      i++;
  83   2              }
  84   1      }       
  85          /********************************************************************************/      
  86          /*                 含回车换行的字符串输出函数    */     
  87          int Puts(char *s)
  88                  {
  89   1                
  90   1              while (*s)
  91   1                      {
  92   2                      SendCh(*s);
  93   2                      s++;
  94   2                      }       
  95   1         SendCh(0x0a);//回车换行
  96   1         SendCh(0x0d);
  97   1        // Putstr("\n");
  98   1              
  99   1              return 1;
 100   1              }
 101                void hexASCII(unsigned char *dat,unsigned char len)
 102          {
 103   1        const unsigned char tabel[]="0123456789ABCDEF";
 104   1        unsigned char i,temp;
 105   1       // SendStr("HEX->ASCII字符串输出len=");
 106   1       
 107   1          for (i=len;i>0;i--)
 108   1        {  
 109   2        SendCh(0x20);
 110   2        SendCh(0x30);
 111   2        SendCh(0x78);
 112   2        temp=dat[len-i]&0xf0;
 113   2        temp=temp>>4;
 114   2        SendCh(tabel[temp]);
 115   2        temp=dat[len-i]&0x0f;
 116   2        SendCh(tabel[temp]);
 117   2      
C51 COMPILER V8.08   MAIN                                                                  11/13/2008 00:17:47 PAGE 3   

 118   2        }
 119   1         SendCh(0x0a);//回车换行
 120   1         SendCh(0x0d);
 121   1      }
 122          
 123          /*****************************************************************************************
 124          //函数名:void TimerInit(void)
 125          //输入:无
 126          //输出:无
 127          //功能描述:定时器0初始化程序
 128          /*****************************************************************************************/
 129          void TimerInit(void)
 130          {
 131   1              TH0 = TIMER0H;
 132   1              TL0 = TIMER0L;
 133   1              ET0 = 1;                        //定时器0中断允许
 134   1              TF0 = 0;
 135   1              TR0 = 1;                        //启动定时器0
 136   1              EA = 1;                         //开全局中断
 137   1      }
 138          
 139          
 140          
 141                  
 142          
 143          /*****************************************************************************************
 144          //函数名:ResetTimer(INT8U n)
 145          //输入:要复位的计时器
 146          //输出:无
 147          //功能描述:复位计时器
 148          /*****************************************************************************************/
 149          void ResetTimer(INT8U n)
 150          {
 151   1              ET0 = 0;                                    // Disable Timer0 interrupt
 152   1              timer[n & 0x01] = 0;                        // Clear timer[n]
 153   1              ET0 = 1;                                    // Enable Timer0 interrupt
 154   1      }
 155          
 156          
 157          /*****************************************************************************************
 158          //函数名:INT16U ReadTimer(INT8U n)
 159          //输入:要读的计时器
 160          //输出:读出值
 161          //功能描述:读计时器
 162          /*****************************************************************************************/
 163          INT16U ReadTimer(INT8U n)
 164          {
 165   1              INT16U tmp;
 166   1              ET0 = 0;                                    // Disable Timer0 interrupt
 167   1              tmp = timer[n];                             // Clear timer[n]
 168   1              ET0 = 1;                                    // Enable Timer0 interrupt
 169   1              return tmp;
 170   1      }
 171          
 172          
 173          
 174          
 175          
 176          /******************************************************************************************
 177          *******************************************************************************************
 178          ************************************中断服务程序*******************************************
 179          *******************************************************************************************
C51 COMPILER V8.08   MAIN                                                                  11/13/2008 00:17:47 PAGE 4   

 180          ******************************************************************************************/
 181          void Timer0ISR(void) interrupt 1
 182          {
 183   1              EA = 0;
 184   1              //TH0+=TIMER0H;
 185   1              //TL0+=TIMER0L;
 186   1              //timer[0]++;
 187   1              //timer[1]++;
 188   1              TH0=0xff;
 189   1              TL0=0xff;
 190   1              delay++;
 191   1              if(delay>10000)
 192   1              {
 193   2              delay=0;
 194   2               if(ledcon)
 195   2               {
 196   3               LED1=0;
 197   3              LED2=1;
 198   3              ledcon=0;
 199   3              }
 200   2              else
 201   2              {
 202   3      
 203   3              LED1=1;
 204   3              LED2=0;
 205   3              ledcon=1;
 206   3          }
 207   2              }
 208   1              EA = 1;
 209   1      }
 210          
 211          
 212          main()
 213          {
 214   1      
 215   1              UartInit();
 216   1      
 217   1              TimerInit();
 218   1      
 219   1              nRF2401_Initial();                                                                      // nRF2401A初始化
 220   1              nRF2401_Mode(0);                                                                        // 设置nRF2401A工作方式:接收
 221   1      //      nRF2401_SetAddress(Address,5);          // 设置接收端地址 00 00 00 00 01
 222   1      
 223   1      ;
 224   1                Puts(" 设置nRF2401A工作方式:接收");
 225   1              while(1)
 226   1              {
 227   2                              if((nRF2401_RxStatus()) == 1)                                   // nRF2401A有数据请求
 228   2                      {
 229   3                              
 230   3                                              LED1=0;
 231   3                              LED2=1;   
 232   3                              nRF2401_ReceiveByte(RxBuf);                                     // 接收数据
 233   3                               // SendStr(RxBuf);
 234   3      
 235   3                               hexASCII(RxBuf,26);
 236   3                      
 237   3                      /*      switch(RxBuf[2])
 238   3                              {
 239   3                                      case 1:
 240   3                                              Puts("Key1");                                                   
 241   3                                              break;
C51 COMPILER V8.08   MAIN                                                                  11/13/2008 00:17:47 PAGE 5   

 242   3                                      case 2:
 243   3                                              Puts("Key2");                                                   
 244   3                                              break;
 245   3                                      case 3:
 246   3                                              Puts("Key3");                                           
 247   3                                              break;
 248   3                                      case 4:
 249   3                                              Puts("Key4");                                                   
 250   3                                              break;
 251   3                                      case 5:
 252   3                                              Puts("Key5");                                                   
 253   3                                              break;
 254   3                                      case 6:
 255   3                                              Puts("Key6");                                           
 256   3                                              break;
 257   3                                      case 7:
 258   3                                              Puts("Key7");                                                   
 259   3                                              break;
 260   3                                      case 8:
 261   3                                              Puts("Key8");                                                   
 262   3                                              break;
 263   3                                      default:
 264   3                                              break;
 265   3                              } */
 266   3                      }
 267   2      
 268   2              }
 269   1      }
 270          
 271          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    379    ----
   CONSTANT SIZE    =     44    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     31      25
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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