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

📄 sent.lst

📁 在c8051f020上实现的控制无线模块nrf401和程序
💻 LST
字号:
C51 COMPILER V7.05   SENT                                                                  06/30/2004 15:26:28 PAGE 1   


C51 COMPILER V7.05, COMPILATION OF MODULE SENT
OBJECT MODULE PLACED IN sent.OBJ
COMPILER INVOKED BY: D:\CYGNAL\IDEFILES\C51\BIN\C51.EXE sent.c DB OE

stmt level    source

   1          //-----------------------------------------------------------------------------
   2          
   3          #include <c8051f020.h>                 // SFR声明
   4          #include <stdio.h>
   5          #include <string.h>
   6          
   7          //-----------------------------------------------------------------------------
   8          // sfr定义及全局常量
   9          //-----------------------------------------------------------------------------
  10          #define SYSCLK       22118400          // 系统时钟为22118400HZ
  11          #define BAUDRATE    9600     // UART0 波特率为19200HZ
  12          //#define TX_LENGTH    16                // 接收缓冲器长度为16
  13          
  14             
  15          sfr16 DP       = 0x82;                 // 数据指针
  16          sfr16 TMR3RL   = 0x92;                 // Timer3 reload value
  17          sfr16 TMR3     = 0x94;                 // Timer3 counter               
  18          sfr16 RCAP2    = 0xca;                 // Timer2 capture/reload
  19          sfr16 T2       = 0xcc;                 // Timer2
  20          sfr16 RCAP4    = 0xe4;                 // Timer4 capture/reload
  21          sfr16 T4       = 0xf4;                 // Timer4                    
  22          sbit PWR= P0^3;                       //P0.2 =1 为工作模式;P0.2=0为待机模式
  23          sbit CS = P0^2;                        //P0.3=0为频道1,载波频率为433MHZ
  24                                                 //P0.3=1为频道2,载波频率为315HZ
  25          sbit TXEN = P0^4;                      //P0.4=0为接收模式,P0.4=1为发射模式
  26          sbit LED = P1^6 ;                       //LED显示发射状态
  27          int i=0;
  28          int m=0;
  29          int j=0;
  30          int k=0;
  31          int n=0;
  32          int p=0;
  33          xdata char sendhead[]={0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,
  34                                 0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,
  35                                                     0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa};
  36          xdata char senddata[100]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
  37                                   0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,
  38                                                           0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,
  39                                                           0x1e,0x1f,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,
  40                                                           0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,0x30,0x31,
  41                                                           
  42                                                           0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,
  43                                   0x3c,0x3d,0x3e,0x3f,0x40,0x41,0x42,0x43,0x44,0x45,
  44                                                           0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
  45                                                           0x50,0x51,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,
  46                                                           0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,0x60,0x61,0x62}; //---------------------------------------------
             ---------------------------------
  47          // 全局变量
  48          //-----------------------------------------------------------------------------
  49          //unsigned char xdata sentdata[108]={
  50                  //存储空间定义成idata使用内部RAM
  51          //unsigned char code *read;             //读FLASH
  52          //char idata TX_Buf[TX_LENGTH];         //发送缓冲区长度
  53          
  54          //-----------------------------------------------------------------------------
C51 COMPILER V7.05   SENT                                                                  06/30/2004 15:26:28 PAGE 2   

  55          // 函数声明
  56          //-----------------------------------------------------------------------------
  57          
  58          void SYSCLK_Init (void);            //系统时钟初始化函数声明
  59          void PORT_Init (void);              //端口初始化函数声明
  60          void UART0_Init (void);             //UART初始化函数声明
  61          void UART0_ISR (void);              //UART中断服务程序声明
  62          //void SENT_Head (void);
  63          void SENT_Datapacket (void);
  64          
  65          //---------------------------------------------------------------------------
  66          //发送函数
  67          //---------------------------------------------------------------------------
  68          
  69          //----------------------------------------------------------------------------
  70          //主函数
  71          //----------------------------------------------------------------------------
  72          void main(void)
  73          {  
  74   1         WDTCN = 0xde;        //禁止看门狗定时器           
  75   1         WDTCN = 0xad; 
  76   1         
  77   1                     
  78   1         SYSCLK_Init ();
  79   1         PORT_Init ();
  80   1         UART0_Init ();
  81   1         PWR = 1;                  //置nRF401为工作模式
  82   1         CS = 0;  
  83   1          for(k=0;k<1000;k++)
  84   1          {for(i=0;i<100;i++);}                 //选择载波频率为433MHZ
  85   1         TXEN = 1; 
  86   1         i=0;
  87   1         k=0;
  88   1         for(k=0;k<1000;k++)
  89   1          {for(i=0;i<100;i++);}              
  90   1         EA = 1 ; 
  91   1         ES0=1;
  92   1         LED=1;   
  93   1                           //绿灯亮表示开始发送数据                    //允许全局中断
  94   1          
  95   1         RI0=0 ;
  96   1         TI0=0;
  97   1         //SBUF0=0xaa;
  98   1        // TI0=1 ;  
  99   1         while (1) //TI0=1; 
 100   1      
 101   1       {
 102   2               for(p=0;p<30;p++)
 103   2               {
 104   3                SBUF0=sendhead[p];
 105   3                while(TI0==0);
 106   3                TI0=0;
 107   3                }
 108   2                      for(m=0;m<100;m++)
 109   2                {
 110   3            SBUF0=senddata[m];
 111   3                while(TI0==0);
 112   3             
 113   3                 TI0=0;
 114   3                //for(n=0;n<50000;n++);  
 115   3                      } 
 116   2                                 //开始发送
C51 COMPILER V7.05   SENT                                                                  06/30/2004 15:26:28 PAGE 3   

 117   2            // if(m==20)
 118   2              //      m=0;                //死循环,等待中断防止程序逻辑执行到此跳出,
 119   2           }                              //接收不到中断,中断到来时根据中断向量表直
 120   1                                                                         //接跳到中断服务程序来执行,执行完再返回到
 121   1      //-----------------------------------------------------------------------------
 122   1      //时钟初始化
 123   1      //-----------------------------------------------------------------------------                   
 124   1                                                                         //while(1);这条语句上来继续等待下一个中断。
 125   1      }
 126          void SYSCLK_Init (void)
 127          {
 128   1         int i;                              // 延时计数
 129   1      
 130   1         OSCXCN = 0x67;                      // 使用外部时钟22.1184MHz                                   
 131   1      
 132   1         for (i=0; i < 256; i++) ;           // 等侍晶振起振
 133   1      
 134   1         while (!(OSCXCN & 0x80)) ;          // 等待晶振稳定
 135   1         OSCICN = 0x88;                      // 选择外部晶振作为系统时钟
 136   1                                
 137   1         //CKCON  = 0x20;                      //定时器2使用系统时钟  
 138   1      }                                                   
 139          //-----------------------------------------------------------------------------
 140          // 交叉开关配置
 141          //-----------------------------------------------------------------------------
 142          //
 143          
 144          void PORT_Init(void)
 145          {  
 146   1         XBR0    = 0x04;    //使能UART0
 147   1         XBR1    = 0x00;    
 148   1         XBR2    = 0x40; 
 149   1         P0MDOUT |= 0xFD;   //RX,即P0.1为漏极开路方式,其它为推挽方式 
 150   1         P1MDOUT |= 0x40;   //p1.6为推挽方式       
 151   1      
 152   1              
 153   1      }
 154          //--------------------------------------------------------------------------------------
 155          //UART初始化
 156          //--------------------------------------------------------------------------------------
 157          //--------------------------------------------------------------------------------------
 158          //UART初始化
 159          //--------------------------------------------------------------------------------------
 160          void UART0_Init (void)
 161          {
 162   1              
 163   1              SCON0=0x50;
 164   1              TMOD=0x20;
 165   1              TH1=-(SYSCLK/BAUDRATE/16);
 166   1              TR1=1;
 167   1              CKCON |=0x10;
 168   1              PCON  |=0x80;
 169   1              //TI0=1;
 170   1       
 171   1       }
 172           
 173           
 174          
 175          //------------------------------------------------------------------------------------
 176          //UART中断服务程序,中断向量4
 177          //------------------------------------------------------------------------------------
 178          //void UART0_ISR (void) interrupt 4 using 3
C51 COMPILER V7.05   SENT                                                                  06/30/2004 15:26:28 PAGE 4   

 179          //{  
 180            //    if(j==20)
 181                  //       {
 182                              //for(m=0;m<1000;m++);
 183                  //              j=0;
 184                //   }
 185               
 186                  
 187                   //    SBUF0=senddata[m];
 188                  //       m++;
 189                           
 190                   
 191          //}
 192          
 193          
 194                                 
 195             
 196          
 197          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    266    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =    127    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     12    ----
   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 + -