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

📄 main.lst

📁 菜鸟,详细NRF24E1运用,程序,电路
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V9.00   MAIN                                                                  11/13/2010 14:57:23 PAGE 1   


C51 COMPILER V9.00, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: D:\Program Files\KEIL C  V4\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND

line level    source

*** WARNING C500 IN LINE 1 OF MAIN.C: LICENSE ERROR (R208: RENEW LICENSE ID CODE (LIC))

   1          
   2          #include "reg24le1.h"
   3          /*****************************************
   4          /nRF24LE1和ZLG7289键盘管理和数码显示芯片
   5          ******************************************/
   6          #define DIO               P07
   7          #define SCLK              P02
   8          #define INT                       P06 /*一定接上拉电阻*/
   9          #define CS            P00
  10          #define Disableint    do{EA=0;}while(0)
  11          #define Enableint     do{EA=1;}while(0)
  12          #define BAUD_2400     2400
  13          #define BAUD_4800     4800
  14          #define BAUD_9600     9600
  15          #define BAUD_14400    14400
  16          #define BAUD_19200    19200
  17          #define BAUD_38400    38400
  18          typedef unsigned int  uint;
  19          typedef unsigned char uchar;
  20          /*****************************************
  21          /延时函数
  22          *****************************************/
  23          void Delay(uint x)
  24          {
  25   1      uchar l;
  26   1         for(;x>0;x--)
  27   1           for(l=12;l>0;l--)
  28   1                 {}
  29   1      }
  30          /*****************************************
  31          /nRF24LE1时钟设置
  32          ******************************************/
  33          void SetMcuClk()
  34          {
  35   1       CLKCTRL   = 0x28;                          /*使用 XCOSC16M */  
  36   1       CLKLFCTRL = 0x01;
  37   1      }
  38          /*****************************************
  39          /nRF24LE1的串口初始化
  40          ******************************************/
  41          void Uartinit(uint baud)
  42          {
  43   1              P0DIR &= 0xF7;                          /* 设置P0.3(TxD)为输出 */
  44   1              P0DIR |= 0x10;                          /* 设置P0.4(RxD)为输入 */       
  45   1              S0CON  = 0x50;              /* 串口模式选择允许接收*/  
  46   1              PCON  |= 0x80;                          /* 波特率倍增              */
  47   1              WDCON |= 0x80;                          /* 选用内部波特率发生器*/
  48   1       switch(baud)
  49   1        {
  50   2              case 38400:
  51   2                                 {
  52   3                                      S0RELL = 0xF3;  
  53   3                      S0RELH = 0x03;   
  54   3                                 }
C51 COMPILER V9.00   MAIN                                                                  11/13/2010 14:57:23 PAGE 2   

  55   2                                 break;
  56   2              case 19200:
  57   2                         {
  58   3                                      S0RELL =0xE6;   
  59   3                      S0RELH =0x03;                     
  60   3                                 }
  61   2                                 break;
  62   2              case 14400:
  63   2                     {
  64   3                                      S0RELL =0xDE;   
  65   3                      S0RELH =0x03;    
  66   3                                 }
  67   2                                 break;
  68   2              case 9600 :
  69   2                         {
  70   3                                      S0RELL =0xCC;   
  71   3                      S0RELH =0x03;    
  72   3                                 }
  73   2                                 break;
  74   2              case 4800 :
  75   2                         {
  76   3                                      S0RELL =0x98;   
  77   3                      S0RELH =0x03;    
  78   3                                 }
  79   2                                 break;
  80   2              case 2400 :
  81   2                         {
  82   3                                      S0RELL =0x30;   
  83   3                      S0RELH =0x03;    
  84   3                                 }
  85   2                                 break;
  86   2          default   :
  87   2                         {
  88   3                                      S0RELL =0xCC;   
  89   3                      S0RELH =0x03;    
  90   3                                 }
  91   2                                 break;
  92   2                }
  93   1              return ;
  94   1      }
  95          /****************************************
  96          /nRF24LE1串口发送一个字符
  97          *****************************************/
  98          void putch(uchar ch)
  99          {
 100   1      S0BUF=ch;
 101   1      while(!TI0);
 102   1      TI0=0;
 103   1      }
 104          /****************************************
 105          /nRF24LE1串口发送一个字符串
 106          *****************************************/
 107          void puts(char *str)
 108          {
 109   1      while(*str!='\0')
 110   1      {
 111   2      putch(*str++);
 112   2      }
 113   1      Delay(10);
 114   1      }
 115          /****************************************
 116          /nRF24LE1的I/O口初始化函数
C51 COMPILER V9.00   MAIN                                                                  11/13/2010 14:57:23 PAGE 3   

 117          *****************************************/
 118          void ZLG7289init()
 119          {
 120   1      P0DIR=(BIT_6|BIT_7);/*初始化INT1和DIO为输入*/
 121   1      CS=1;
 122   1      SCLK=1;
 123   1      DIO=1;
 124   1      INT=1;
 125   1      /*开启外部中断接上拉电阻,输入端口选择INT*/
 126   1      INTEXP|=BIT_4; /*INT1使能  */
 127   1      IT0=1;         /*下降沿触发*/
 128   1      EX0=1;             /*开启外部中断*/
 129   1      }
 130          /****************************************
 131          /模拟spi接口传输一个字节
 132          *****************************************/
 133          void WriteSPI(uchar Dat)
 134          {
 135   1          uchar cT = 8;
 136   1          P0DIR &=(~(BIT_7));
 137   1          /*
 138   1           *  循环写一个字节的数据
 139   1           */
 140   1          do {
 141   2              if((Dat & 0x80) == 0x80) {
 142   3                  DIO=1;
 143   3              } else {
 144   3                  DIO=0;
 145   3              }
 146   2              Dat <<= 1;
 147   2              SCLK=1;
 148   2              Delay(5);
 149   2              SCLK=0;
 150   2              Delay(5);
 151   2          } while (--cT != 0);
 152   1      
 153   1      }
 154          /***************************************
 155          /从模拟的SPI读取一个字节
 156          ****************************************/
 157          uchar ReadSPI(void)
 158          {
 159   1          uchar cDat = 0;
 160   1          uchar cT   = 8;
 161   1          P0DIR|=BIT_7; /*设置为输入,需要接上拉电阻*/
 162   1          /*
 163   1           *  循环读一个字节的数据
 164   1           */
 165   1          do {
 166   2              SCLK=1;
 167   2              Delay(5);
 168   2              cDat <<= 1;
 169   2              if (DIO) {
 170   3                  cDat++;
 171   3              }
 172   2              SCLK=0;
 173   2              Delay(5);
 174   2            } while (--cT != 0);
 175   1          return cDat;
 176   1      }
 177          /****************************************
 178          /给7289写指令
C51 COMPILER V9.00   MAIN                                                                  11/13/2010 14:57:23 PAGE 4   

 179          *****************************************/
 180          void WriteCmd(uchar Cmd)

⌨️ 快捷键说明

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