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

📄 1602lcd_yd.lst

📁 1602液晶显示可以移动显示文字的程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.05a   1602LCD_YD                                                           11/23/2006 15:18:20 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE 1602LCD_YD
OBJECT MODULE PLACED IN 1602LCD_YD.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 1602LCD_YD.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*******************************************************************      
   2          /*                                                                         
   3          /*ME300B单片机开发系统演示程序 - LCD1602 移动显示C                         
   4          /*                                                                         
   5          /* 显示内容:   CHINESE                                                    
   6          /*             NEW  YEAR                                              
   7          /*                                                                         
   8          /* 显示方式:                                                              
   9          /* 1、LCD第一行显示: CHINESE                                              
  10          /*   LCD第二行显示: NEW YEAR                                           
  11          /* 2、先将两行字符写入DDRAM中,然后从右至左逐字移出显示。                  
  12          /* 3、在指定位置停留1.6秒后,闪烁2次,清屏。                               
  13          /* 4、反复循环上述显示方式。                                               
  14          /*                                                                         
  15          /* 版本: V1.0 (2006/11/20)                                                
  16          /* 作者: gguoqing (Email: gguoqing@willar.com)                            
  17          /* 网站: www.willar.com(伟纳电子)   www.mcusj.com(伟纳单片机世界)         
  18          /* 时间: 2006/01/23                                                       
  19          /*                                                                         
  20          /*【版权】COPYRIGHT(C)伟纳电子 www.willar.com ALL RIGHTS RESERVED          
  21          /*【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!               
  22          /*                                                                         
  23          /*******************************************************************/      
  24                                                                                     
  25          #include <reg51.h>
  26          #include <intrins.h>                                                                  
  27                                                                                     
  28          #define uchar unsigned char                                                
  29          #define uint unsigned int                                                  
  30                                                                                     
  31          sbit LCD_RS = P2^0;                                                        
  32          sbit LCD_RW = P2^1;                                                        
  33          sbit LCD_EN = P2^2;                                                        
  34                                                                                     
  35          uchar code dis1[] = {"    CHINESE     "};                                  
  36          uchar code dis2[] = {"    NEW YEAR    "};                                  
  37                                                                                     
  38                                                                                     
  39          /*******************************************************************/      
  40          /*                                                                         
  41          /* 延时子程序                                                              
  42          /*                                                                         
  43          /*******************************************************************/      
  44                                                                                     
  45          void delay(int ms)                                                         
  46          {                                                                          
  47   1         int i;                                                                  
  48   1         while(ms--)                                                             
  49   1         {                                                                       
  50   2           for(i = 0; i< 250; i++)                                               
  51   2           {                                                                     
  52   3            _nop_();                                                             
  53   3            _nop_();                                                             
  54   3            _nop_();                                                             
  55   3            _nop_();                                                             
C51 COMPILER V8.05a   1602LCD_YD                                                           11/23/2006 15:18:20 PAGE 2   

  56   3           }                                                                     
  57   2         }                                                                       
  58   1      }                                                                          
  59                                                                                     
  60          /*******************************************************************/      
  61          /*                                                                         
  62          /*检查LCD忙状态                                                            
  63          /*lcd_busy为1时,忙,等待。lcd-busy为0时,闲,可写指令与数据。              
  64          /*                                                                         
  65          /*******************************************************************/      
  66                                                                                     
  67          bit lcd_busy()                                                             
  68          {                                                                          
  69   1          bit result;                                                            
  70   1          LCD_RS = 0;                                                            
  71   1          LCD_RW = 1;                                                            
  72   1          LCD_EN = 1;                                                            
  73   1          _nop_();                                                               
  74   1          _nop_();                                                               
  75   1          _nop_();                                                               
  76   1          _nop_();                                                               
  77   1           result = (bit)(P0&0x80);                                              
  78   1          LCD_EN = 0;                                                            
  79   1          return result;                                                         
  80   1      }                                                                          
  81                                                                                     
  82          /*******************************************************************/      
  83          /*                                                                         
  84          /*写指令数据到LCD                                                          
  85          /*RS=L,RW=L,E=高脉冲,D0-D7=指令码。                                     
  86          /*                                                                         
  87          /*******************************************************************/      
  88                                                                                     
  89          void lcd_wcmd(uchar cmd)                                                   
  90          {                                                                          
  91   1         while(lcd_busy());                                                      
  92   1          LCD_RS = 0;                                                            
  93   1          LCD_RW = 0;                                                            
  94   1          LCD_EN = 0;                                                            
  95   1          _nop_();                                                               
  96   1          _nop_();                                                               
  97   1          P0 = cmd;                                                              
  98   1          _nop_();                                                               
  99   1          _nop_();                                                               
 100   1          _nop_();                                                               
 101   1          _nop_();                                                               
 102   1          LCD_EN = 1;                                                            
 103   1          _nop_();                                                               
 104   1          _nop_();                                                               
 105   1          _nop_();                                                               
 106   1          _nop_();                                                               
 107   1          LCD_EN = 0;                                                            
 108   1      }                                                                          
 109                                                                                     
 110          /*******************************************************************/      
 111          /*                                                                         
 112          /*写显示数据到LCD                                                          
 113          /*RS=H,RW=L,E=高脉冲,D0-D7=数据。                                       
 114          /*                                                                         
 115          /*******************************************************************/      
 116                                                                                     
 117          void lcd_wdat(uchar dat)                                                   
C51 COMPILER V8.05a   1602LCD_YD                                                           11/23/2006 15:18:20 PAGE 3   

 118          {                                                                          
 119   1         while(lcd_busy());                                                      
 120   1          LCD_RS = 1;                                                            
 121   1          LCD_RW = 0;                                                            
 122   1          LCD_EN = 0;                                                            
 123   1          P0 = dat;                                                              
 124   1          _nop_();                                                               
 125   1          _nop_();                                                               
 126   1          _nop_();                                                               
 127   1          _nop_();                                                               
 128   1          LCD_EN = 1;                                                            

⌨️ 快捷键说明

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