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

📄 receive.lst

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


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

stmt level    source

   1          #include <c8051f020.h>                 // SFR声明
   2          #include <stdio.h>
   3          #include <string.h>
   4          //-----------------------------------------------------------------------------
   5          // sfr定义及全局常量
   6          //-----------------------------------------------------------------------------
   7          #define SYSCLK    22118400          // 系统时钟为22118400HZ
   8          #define BAUDRATE 9600  // UART0 波特率为19200HZ
   9          //#define TX_LENGTH    16                // 接收缓冲器长度为16
  10          
  11             
  12          sfr16 DP       = 0x82;                 // 数据指针
  13          sfr16 TMR3RL   = 0x92;                 // Timer3 reload value
  14          sfr16 TMR3     = 0x94;                 // Timer3 counter               
  15          sfr16 RCAP2    = 0xca;                 // Timer2 capture/reload
  16          sfr16 T2       = 0xcc;                 // Timer2
  17          sfr16 RCAP4    = 0xe4;                 // Timer4 capture/reload
  18          sfr16 T4       = 0xf4;                 // Timer4                    
  19          sbit PWR= P0^2;                       //P0.2 =1 为工作模式;P0.2=0为待机模式
  20          sbit CS = P0^3;                        //P0.3=0为频道1,载波频率为433.92MHZ
  21                                                 //P0.3=1为频道2,载波频率为434.32HZ
  22          sbit TXEN = P0^4;                      //P0.4=0为接收模式,P0.4=1为发射模式
  23          sbit LED = P1^6 ;  
  24          int i;                     //LED显示发射状态
  25          int k;
  26          int j;
  27          int m;
  28          int l;
  29          int q;
  30          
  31          unsigned char xdata re[100];
  32          //-----------------------------------------------------------------------------
  33          // 函数声明
  34          //-----------------------------------------------------------------------------
  35          
  36          void SYSCLK_Init (void);            //系统时钟初始化函数声明
  37          void PORT_Init (void);              //端口初始化函数声明
  38          void UART0_Init (void);             //UART初始化函数声明
  39          //----------------------------------------------------------------------------
  40          //系统时钟初始化
  41          //-----------------------------------------------------------------------------
  42          void SYSCLK_Init (void)
  43          {
  44   1         int i;                              // 延时计数
  45   1      
  46   1         OSCXCN = 0x67;                      // 使用外部时钟22.1184MHz                                   
  47   1      
  48   1         for (i=0; i < 256; i++) ;           // 等侍晶振起振
  49   1      
  50   1         while (!(OSCXCN & 0x80)) ;          // 等待晶振稳定
  51   1         OSCICN = 0x88;                      // 选择外部晶振作为系统时钟
  52   1                                
  53   1         //CKCON  = 0x20;                      //定时器2使用系统时钟  
  54   1      }                                                   
  55          
C51 COMPILER V7.05   RECEIVE                                                               06/30/2004 15:51:23 PAGE 2   

  56          //-----------------------------------------------------------------------------
  57          // 交叉开关配置
  58          //-----------------------------------------------------------------------------
  59          //
  60          
  61          void PORT_Init(void)
  62          {  
  63   1         XBR0    = 0x04;    //使能UART0
  64   1         XBR1    = 0x00;    
  65   1         XBR2    = 0x40; 
  66   1         P0MDOUT |= 0xFD;   //RX,即P0.1为漏极开路方式,其它为推挽方式 
  67   1         P1MDOUT |= 0x40;   //p1.6为推挽方式       
  68   1      
  69   1              
  70   1      }
  71          //--------------------------------------------------------------------------------------
  72          //UART初始化
  73          //--------------------------------------------------------------------------------------
  74          void UART0_Init (void)
  75          {
  76   1              
  77   1              SCON0=0x50;
  78   1              TMOD=0x20;
  79   1              TH1=-(SYSCLK/BAUDRATE/16);
  80   1              TR1=1;
  81   1              CKCON |=0x10;
  82   1              PCON  |=0x80;
  83   1              //TI0=1;
  84   1       
  85   1       }
  86           
  87           
  88          void main(void)
  89          {  
  90   1         WDTCN = 0xde;        //禁止看门狗定时器           
  91   1         WDTCN = 0xad; 
  92   1         
  93   1                     
  94   1         SYSCLK_Init ();
  95   1         PORT_Init ();
  96   1         UART0_Init ();
  97   1         PWR = 1;                  //置nRF401为工作模式
  98   1         CS = 0;   
  99   1         for(l=0;l<1000;l++)
 100   1         for(q=0;q<100;q++);                //选择载波频率为433MHZ
 101   1         TXEN = 0;                 //接收模式
 102   1         for(j=0;j<1000;j++)
 103   1         for(k=0;k<100;k++);
 104   1         EA=1;
 105   1         ES0=1;
 106   1         //TI0=0;
 107   1         //RI0=0;
 108   1         while(1)
 109   1         {
 110   2              while(RI0==0);
 111   2              RI0=0; 
 112   2      
 113   2         }
 114   1      }
 115          //UART中断服务程序,中断向量4
 116          //------------------------------------------------------------------------------------
 117          void UART0_ISR (void) interrupt 4 using 3
C51 COMPILER V7.05   RECEIVE                                                               06/30/2004 15:51:23 PAGE 3   

 118          {  
 119   1         if(m==100)
 120   1         m=0;
 121   1         //while(m<100)
 122   1            //if(SBUF0==0xaa)
 123   1            //{
 124   1                 re[m]=SBUF0;
 125   1                
 126   1                 m++;
 127   1                 RI0=0;
 128   1      
 129   1                // }
 130   1          
 131   1                       
 132   1      }
 133                                  
 134             
 135          
 136          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    227    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =    100    ----
   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 + -