main.lst

来自「菜鸟,详细NRF24E1运用,程序,电路」· LST 代码 · 共 217 行

LST
217
字号
C51 COMPILER V9.00   MAIN                                                                  11/02/2010 21:45:08 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 "reg51.h"
   3          #include "intrins.h"
   4          /*************************************/
   5          #define uint     unsigned int
   6          #define uchar    unsigned char
   7          #define Dat        0x00
   8          #define Cmd        0x01
   9          /*************************************
  10          #define DIO        P00
  11          #define SCLK       P01
  12          #define CS         P02
  13          #define RESET      P03    
  14          *************************************/
  15          
  16          sbit DIO   =     P0^0 ;
  17          sbit SCLK  =     P0^1 ;
  18          sbit CS    =     P0^2 ;
  19          sbit RESET =     P0^3 ;
  20          
  21          
  22          #define Enableint  do{EA=1;}while(0)
  23          #define Disableint do{EA=1;}while(0)
  24          /**************************************/
  25          typedef enum  YON{false,true}bool;
  26          /**************************************/
  27          uchar code tab[]={
  28          "这是一个液晶测试"
  29          "小江编写,仅供简"
  30          "程序,由南华大学"
  31          "当测试,谢谢支持"
  32          };                                                      
  33          /***************************************
  34          /
  35          /延时函数delay()
  36          /
  37          ****************************************/
  38          void delay (uint us)      
  39          {
  40   1           while(us--);
  41   1      }
  42          /**************************************
  43          /
  44          /delayms()延迟指定的ms数
  45          /
  46          **************************************/
  47          void delayms (uint ms)
  48          {
  49   1           uint i,j;
  50   1           for(i=0;i<ms;i++)
  51   1           for(j=0;j<15;j++)
  52   1           delay(1);
  53   1      }
  54          /***************************************
C51 COMPILER V9.00   MAIN                                                                  11/02/2010 21:45:08 PAGE 2   

  55          /
  56          /nRF24LE1的I/O口初始化
  57          /
  58          ***************************************/
  59          void IOCNFG()
  60          {
  61   1      // P0DIR&=0XF0;    /*设置P0.0~P0.3为输出*/
  62   1      }
  63          /***************************************
  64          /
  65          /nRF24LE1工作时钟设置
  66          /
  67          ***************************************/
  68          void WorkClkSet()
  69          {                         
  70   1      // CLKCTRL = 0x28;                              
  71   1      // CLKLFCTRL = 0x01;
  72   1      }        
  73          /**************************************
  74          /
  75          /ResetLcd()复位液晶显示
  76          /
  77          ***************************************/
  78          void ResetLcd(void)
  79          {
  80   1         RESET=0;
  81   1         delayms(10);
  82   1         RESET=1;
  83   1      }
  84          /**************************************
  85          /
  86          /串行写一个字节
  87          /
  88          **************************************/
  89          void  SendByte(uchar dat)   
  90           {   
  91   1        uchar i;   
  92   1           for(i=0;i<8;i++)   
  93   1           {   
  94   2             SCLK=0;   
  95   2             if(dat&0x80)
  96   2                 DIO=1;
  97   2                 else     
  98   2                 DIO=0;   
  99   2             SCLK=1;   
 100   2             dat=dat<<1;   
 101   2            }   
 102   1       } 
 103                  
 104          /**************************************
 105          /
 106          /通过串行方式往LCD里写数据或者指令
 107          /
 108          ***************************************/
 109          void WLcd( uchar Dat_Cmd,uchar dat)
 110          {
 111   1          uchar tmp;     
 112   1              if(Cmd==Dat_Cmd)
 113   1              {
 114   2              tmp=0xf8;
 115   2              }
 116   1              else if(Dat==Dat_Cmd)
C51 COMPILER V9.00   MAIN                                                                  11/02/2010 21:45:08 PAGE 3   

 117   1              {
 118   2              tmp=0xfa;
 119   2              }
 120   1              SendByte(tmp);
 121   1              SendByte((dat&0xF0));
 122   1              SendByte((dat&0x0F));     
 123   1      }
 124          /*****************************************
 125          /
 126          /LCD初始化函数
 127          /
 128          ******************************************/
 129          void init_lcd (void)
 130          {        delay(100);
 131   1           WLcd(Cmd,0x30); /*使用基本指令集*/      
 132   1           WLcd(Cmd,0x0c); /*开显示,关游标*/
 133   1               WLcd(Cmd,0x01); /*清屏,地址指针指向00H*/
 134   1           WLcd(Cmd,0x02); 
 135   1               WLcd(Cmd,0x80); /*光标的移动方向*/
 136   1           delay(100);
 137   1      }
 138          /******************************************
 139          /
 140          /显示汉字或字符
 141          /
 142          *******************************************/
 143          void chn_disp (uchar code *chn)
 144          {
 145   1           uchar i,j;
 146   1               WLcd(Cmd,0x80);
 147   1           for (j=0;j<4;j++)
 148   1            {
 149   2             for (i=0;i<16;i++)
 150   2              {
 151   3                   WLcd(Dat,chn[j*16+i]);
 152   3              }       
 153   2                }
 154   1      }
 155          /*****************************************
 156          /
 157          /清DDRAM
 158          /
 159          ******************************************/
 160          void clrram(void)
 161          {
 162   1         WLcd(Cmd,0x30);  /*功能设定    */
 163   1         WLcd(Cmd,0x01);  /*清除显示指令*/
 164   1         delay(180);
 165   1      }
 166          
 167          /******************************************
 168          /
 169          /主函数部分
 170          /
 171          *******************************************/
 172          void main ()
 173          {
 174   1       //    Disableint;      /*中断关闭          */
 175   1      //       WorkClkSet();    /*设置nRF24LE1的时钟*/
 176   1      //       IOCNFG();                /*I/O口初始设置     */          
 177   1           init_lcd();          /*液晶初始化        */
 178   1      //       Enableint;               /*使能中断          */
C51 COMPILER V9.00   MAIN                                                                  11/02/2010 21:45:08 PAGE 4   

 179   1           {
 180   2            chn_disp(tab);
 181   2           // delayms(500);
 182   2           }  
 183   1              while (1);
 184   1               
 185   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    253    ----
   CONSTANT SIZE    =     65    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       4
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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