wl009.lst

来自「周立功的51单片机试验例程,我当年就是靠这个学会单片机的」· LST 代码 · 共 167 行

LST
167
字号
C51 COMPILER V7.08   WL009                                                                 02/12/2004 11:57:21 PAGE 1   


C51 COMPILER V7.08, COMPILATION OF MODULE WL009
OBJECT MODULE PLACED IN wl009.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE wl009.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*******************************************************************************
   2          *                                                                              *
   3          *    File       : wl009.c                                                      *
   4          *    Date       : 2004-1-5                                                     *
   5          *    Version    : 1.0                                                          *
   6          *                                                                              *
   7          *    Author     : Freeman          freeman@willar.com                          *
   8          *    Company    : Willar           www.willar.com                              *
   9          *                                                                              *
  10          ********************************************************************************
  11          *    Description:                                                              *
  12          *                字符LCD显示演示程序                                           *
  13          *                在第一行显示  welcome                                         *
  14          *                在第一行显示  www.willar.com                                  *
  15          *                                                                              *
  16          *******************************************************************************/
  17          #include <reg51.h>
  18          #include <intrins.h>
  19          
  20          typedef unsigned char BYTE;
  21          typedef unsigned int WORD;
  22          typedef bit BOOL ; 
  23          
  24          sbit rs = P2^0;         //
  25          sbit rw = P2^1;
  26          sbit ep = P2^2;
  27          
  28          BYTE code dis1[] = {"welcome!"};
  29          BYTE code dis2[] = {"www.willar.com"};
  30          
  31          delay(BYTE ms)
  32          {                                                       // 延时子程序
  33   1              BYTE i;
  34   1              while(ms--)
  35   1              {
  36   2                      for(i = 0; i< 250; i++)
  37   2                      {
  38   3                              _nop_();
  39   3                              _nop_();
  40   3                              _nop_();
  41   3                              _nop_();
  42   3                      }
  43   2              }
  44   1      }
  45          
  46          BOOL lcd_bz()
  47          {                                                       // 测试LCD忙碌状态
  48   1              BOOL result;
  49   1              rs = 0;
  50   1              rw = 1;
  51   1              ep = 1;
  52   1              _nop_();
  53   1              _nop_();
  54   1              _nop_();
  55   1              _nop_();
C51 COMPILER V7.08   WL009                                                                 02/12/2004 11:57:21 PAGE 2   

  56   1              result = (BOOL)(P0 & 0x80);
  57   1              ep = 0;
  58   1              return result;  
  59   1      }
  60          
  61          lcd_wcmd(BYTE cmd)
  62          {                                                       // 写入指令数据到LCD
  63   1              while(lcd_bz());
  64   1              rs = 0;
  65   1              rw = 0;
  66   1              ep = 0;
  67   1              _nop_();
  68   1              _nop_();        
  69   1              P0 = cmd;
  70   1              _nop_();
  71   1              _nop_();
  72   1              _nop_();
  73   1              _nop_();
  74   1              ep = 1;
  75   1              _nop_();
  76   1              _nop_();
  77   1              _nop_();
  78   1              _nop_();
  79   1              ep = 0;         
  80   1      }
  81          
  82          lcd_pos(BYTE pos)
  83          {                                                       //设定显示位置
  84   1              lcd_wcmd(pos | 0x80);
  85   1      }
  86          
  87          lcd_wdat(BYTE dat)      
  88          {                                                       //写入字符显示数据到LCD
  89   1              while(lcd_bz());
  90   1              rs = 1;
  91   1              rw = 0;
  92   1              ep = 0;
  93   1              P0 = dat;
  94   1              _nop_();
  95   1              _nop_();
  96   1              _nop_();
  97   1              _nop_();
  98   1              ep = 1;
  99   1              _nop_();
 100   1              _nop_();
 101   1              _nop_();
 102   1              _nop_();
 103   1              ep = 0; 
 104   1      }
 105          
 106          lcd_init()
 107          {                                                       //LCD初始化设定
 108   1              lcd_wcmd(0x38);                 //
 109   1              delay(1);
 110   1              lcd_wcmd(0x0c);                 //
 111   1              delay(1);
 112   1              lcd_wcmd(0x06);                 //
 113   1              delay(1);
 114   1              lcd_wcmd(0x01);                 //清除LCD的显示内容
 115   1              delay(1);
 116   1      }
 117          
C51 COMPILER V7.08   WL009                                                                 02/12/2004 11:57:21 PAGE 3   

 118          main()
 119          {
 120   1              BYTE i;
 121   1              lcd_init();                             // 初始化LCD                    
 122   1              delay(10);
 123   1              lcd_pos(4);                             // 设置显示位置为第一行的第5个字符
 124   1              i = 0;
 125   1              while(dis1[i] != '\0')
 126   1              {                                               // 显示字符"welcome!"
 127   2                      lcd_wdat(dis1[i]);
 128   2                      i++;
 129   2              }
 130   1              lcd_pos(0x41);                  // 设置显示位置为第二行第二个字符
 131   1              i = 0;
 132   1              while(dis2[i] != '\0')
 133   1              {
 134   2                      lcd_wdat(dis2[i]);      // 显示字符"  www.willar.com  "
 135   2                      i++;
 136   2              }
 137   1              while(1);                               // 
 138   1      }
 139          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    193    ----
   CONSTANT SIZE    =     24    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       1
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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