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

📄 1602lcd_gd.lst

📁 1602LCD滚动显示程序,方便大家开发lcd显示程序.
💻 LST
字号:
C51 COMPILER V7.06   1602LCD_GD                                                            07/29/2007 23:17:47 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE 1602LCD_GD
OBJECT MODULE PLACED IN 1602LCD_GD.OBJ
COMPILER INVOKED BY: D:\keil\C51\BIN\C51.EXE 1602LCD_GD.C BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1                  /*******************************************************************
   2                  *                                                                                                        
             -                           *
   3                  *ME300B单片机开发系统演示程序 - LCD1602 滚动显示                                                       *
   4                  *                                                                                                        
             -                           *
   5                  * 显示内容:WLCOME TO WWW.WILLAR.COM                                                                *
   6                  *                                                                                                        
             -                           *
   7                  * 显示方式:                                                                                             
             -                      *
   8                  * 1、从左到右逐字显示,闪动二次,清屏。                                                                  
             -        *
   9                  * 2、再从右到左逐字显示,闪动二次,清屏。                                                                
             -       *
  10                  * 3、周期性地重复上述显示方式。                                                                          
             -            *
  11                  *                                                                                                        
             -                           *
  12                  * 邮箱: gguoqing@willar.com                                                                             
             -         *
  13                  * 网站: http://www.willar.com                                                                           
             -         *
  14                  * 作者: gguoqing                                                                                        
             -                *
  15                  * 创作时间:2005/06/20                                                                                   
             -             *
  16                  * 修改时间:2006/01/20                                                                                   
             -             *
  17                  *                                                                                                        
             -                          *
  18                  *【版权】Copyright(C)伟纳电子 www.willar.com All Rights Reserved                             *
  19                  *【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!                                           *
  20                  *                                                                                                        
             -                          *
  21                  *******************************************************************/
  22                  
  23                  
  24                  
  25                  #include <reg51.h>
  26                  #include <intrins.h>
  27                  
  28                  typedef unsigned char BYTE;
  29                  typedef bit BOOL;  
  30                  
  31                  sbit LCD_RS = P2^0;             
  32                  sbit LCD_RW = P2^1;
  33                  sbit LCD_EP = P2^2;
  34                  
  35                  BYTE code dis1[] = {"   WLCOME  TO   "};//原来空格也算进去了,如此
  36                  BYTE code dis2[] = {" WWW.WILLAR.COM "};
  37                  BYTE code dis3[] = {"   OT  EMOCLW   "};
  38                  BYTE code dis4[] = {" MOC.RALLIW.WWW "};
  39                  
  40                  delay(int ms)
C51 COMPILER V7.06   1602LCD_GD                                                            07/29/2007 23:17:47 PAGE 2   

  41                  {                           // 延时子程序
  42   1              int i;
  43   1              while(ms--)
  44   1              {
  45   2                for(i = 0; i< 250; i++)
  46   2                {
  47   3                 _nop_();
  48   3                 _nop_();
  49   3                 _nop_();
  50   3                 _nop_();
  51   3                }
  52   2              }
  53   1              }
  54                  
  55                  BOOL lcd_bz()
  56                  {                          // 测试LCD忙碌状态
  57   1              BOOL result;
  58   1              LCD_RS = 0;
  59   1              LCD_RW = 1;
  60   1              LCD_EP = 1;
  61   1              _nop_();
  62   1              _nop_();
  63   1              _nop_();
  64   1              _nop_();
  65   1              result = (BOOL)(P0 & 0x80);
  66   1              LCD_EP = 0;
  67   1              return result; 
  68   1              }
  69                  
  70                  lcd_wcmd(BYTE cmd)
  71                  {                          // 写入指令数据到LCD
  72   1              while(lcd_bz());
  73   1              LCD_RS = 0;
  74   1              LCD_RW = 0;
  75   1              LCD_EP = 0;
  76   1              _nop_();
  77   1              _nop_(); 
  78   1              P0 = cmd;
  79   1              _nop_();
  80   1              _nop_();
  81   1              _nop_();
  82   1              _nop_();
  83   1              LCD_EP = 1;
  84   1              _nop_();
  85   1              _nop_();
  86   1              _nop_();
  87   1              _nop_();
  88   1              LCD_EP = 0;  
  89   1              }
  90                  
  91                  lcd_pos(BYTE pos)
  92                  {                          //设定显示位置
  93   1              lcd_wcmd(pos | 0x80);
  94   1              }
  95                  
  96                  lcd_wdat(BYTE dat) 
  97                  {                          //写入字符显示数据到LCD
  98   1              while(lcd_bz());
  99   1              LCD_RS = 1;
 100   1              LCD_RW = 0;
 101   1              LCD_EP = 0;
 102   1              P0 = dat;
C51 COMPILER V7.06   1602LCD_GD                                                            07/29/2007 23:17:47 PAGE 3   

 103   1              _nop_();
 104   1              _nop_();
 105   1              _nop_();
 106   1              _nop_();
 107   1              LCD_EP = 1;
 108   1              _nop_();
 109   1              _nop_();
 110   1              _nop_();
 111   1              _nop_();
 112   1              LCD_EP = 0; 
 113   1              }
 114                  
 115                  lcd_init()
 116                  {                        //LCD初始化设定
 117   1              lcd_wcmd(0x38);          //16*2显示,5*7点阵,8位数据
 118   1              delay(1);
 119   1              lcd_wcmd(0x0c);          //显示开,关光标
 120   1              delay(1);
 121   1              lcd_wcmd(0x06);          //移动光标
 122   1              delay(1);
 123   1              lcd_wcmd(0x01);          //清除LCD的显示内容
 124   1              delay(1);
 125   1              }
 126                  
 127                  main()
 128                  {
 129   1                    BYTE i;
 130   1                    lcd_init();               // 初始化LCD
 131   1                    delay(10);
 132   1              
 133   1                  while(1)              
 134   1                 { 
 135   2                    lcd_wcmd(0x06);            //向右移动光标
 136   2                    lcd_pos(0);                //设置显示位置为第一行的第1个字符
 137   2                    i = 0;
 138   2                   while(dis1[ i ] != '\0')
 139   2                   {                           //显示字符"Welcome TO"
 140   3                     lcd_wdat(dis1[ i ]);
 141   3                     i++;
 142   3                     delay(30);                //控制两字之间显示速度
 143   3                   }
 144   2                    lcd_pos(0x40);             //设置显示位置为第二行第1个字符
 145   2                    i = 0;
 146   2                   while(dis2[ i ] != '\0')
 147   2                   {
 148   3                     lcd_wdat(dis2[ i ]);      //显示字符" WWW.WILLAR.COM "
 149   3                     i++;
 150   3                     delay(30);                //控制两字之间显示速度
 151   3                   }
 152   2                    delay(800);                //控制停留时间
 153   2              
 154   2                    lcd_wcmd(0x01);            //清除LCD的显示内容
 155   2                    delay(1);
 156   2                    lcd_wcmd(0x04);            //向左移动光标    AC自动减1(光标左移)
 157   2                   
 158   2                    lcd_pos(15);               //设置显示位置为第一行的第16个字符
 159   2                    i = 0;
 160   2                   while(dis3[ i ] != '\0')
 161   2                   {                           //显示字符"Welcome TO"
 162   3                     lcd_wdat(dis3[ i ]);
 163   3                     i++;
 164   3                     delay(30);                //控制两字之间显示速度
C51 COMPILER V7.06   1602LCD_GD                                                            07/29/2007 23:17:47 PAGE 4   

 165   3                   }
 166   2                    lcd_pos(0x4F);             //设置显示位置为第二行的第16个字符
 167   2                    i = 0;
 168   2                   while(dis4[ i ] != '\0')
 169   2                   {
 170   3                     lcd_wdat(dis4[ i ]);      //显示字符" WWW.WILLAR.COM "
 171   3                     i++;
 172   3                     delay(30);                //控制两字之间显示速度
 173   3                   }
 174   2                    delay(800);                //控制停留时间
 175   2              
 176   2                    lcd_wcmd(0x01);            //清除LCD的显示内容
 177   2                    delay(200);                //控制两屏转换时间
 178   2                        
 179   2                 }
 180   1              }
 181                   
 182           


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    305    ----
   CONSTANT SIZE    =     68    ----
   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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -