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

📄 ydlcd.lst

📁 51单片机实验例程
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.10   YDLCD                                                                 03/29/2009 20:15:57 PAGE 1   


C51 COMPILER V7.10, COMPILATION OF MODULE YDLCD
OBJECT MODULE PLACED IN ydLCD.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ydLCD.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          
   2          /********************************************************************************
   3          
   4          *  描述:                LCD1602 移动显示                                       *
   5          * 显示方式:                                                                   *
   6          * 1、LCD第一行显示: BIG BIG WORLD                                             *
   7          *      LCD第二行显示:I LOVE PUZHONG                                           *
   8          * 2、先将两行字符写入DDRAM中,然后从右至左逐字移出显示。                       *
   9          * 3、在指定位置停留1.6秒后,闪烁2次,清屏。                                    *
  10          * 4、反复循环上述显示方式。                                                    *                          
             -  
  11          ********************************************************************************/
  12          
  13          #include <reg51.h>
  14          #include <intrins.h>                                                                  
  15                                                                                     
  16          #define uchar unsigned char                                                
  17          #define uint unsigned int                                                  
  18                                                                                     
  19          sbit LCD_RS = P2^6;                                                        
  20          sbit LCD_RW = P2^5;                                                        
  21          sbit LCD_EN = P2^7;                                                        
  22                                                                                     
  23          uchar code dis1[] = {"BIG BIG WORLD"};                                  
  24          uchar code dis2[] = {"I LOVE PUZHONG"};                                  
  25                                                                                     
  26                                                                                     
  27          /*******************************************************************/      
  28          /*                                                                         
  29          /* 延时子程序                                                              
  30          /*                                                                         
  31          /*******************************************************************/      
  32                                                                                     
  33          void delay(int ms)                                                         
  34          {                                                                          
  35   1         int i;                                                                  
  36   1         while(ms--)                                                             
  37   1         {                                                                       
  38   2           for(i = 0; i< 250; i++)                                               
  39   2           {                                                                     
  40   3            _nop_();                                                             
  41   3            _nop_();                                                             
  42   3            _nop_();                                                             
  43   3            _nop_();                                                             
  44   3           }                                                                     
  45   2         }                                                                       
  46   1      }                                                                          
  47                                                                                     
  48          /*******************************************************************/      
  49          /*                                                                         
  50          /*检查LCD忙状态                                                            
  51          /*lcd_busy为1时,忙,等待。lcd-busy为0时,闲,可写指令与数据。              
  52          /*                                                                         
  53          /*******************************************************************/      
  54                                                                                     
C51 COMPILER V7.10   YDLCD                                                                 03/29/2009 20:15:57 PAGE 2   

  55          bit lcd_busy()                                                             
  56          {                                                                          
  57   1          bit result;                                                            
  58   1          LCD_RS = 0;                                                            
  59   1          LCD_RW = 1;                                                            
  60   1          LCD_EN = 1;                                                            
  61   1          _nop_();                                                               
  62   1          _nop_();                                                               
  63   1          _nop_();                                                               
  64   1          _nop_();                                                               
  65   1           result = (bit)(P0&0x80);                                              
  66   1          LCD_EN = 0;                                                            
  67   1          return result;                                                         
  68   1      }                                                                          
  69                                                                                     
  70          /*******************************************************************/      
  71          /*                                                                         
  72          /*写指令数据到LCD                                                          
  73          /*RS=L,RW=L,E=高脉冲,D0-D7=指令码。                                     
  74          /*                                                                         
  75          /*******************************************************************/      
  76                                                                                     
  77          void lcd_wcmd(uchar cmd)                                                   
  78          {                                                                          
  79   1         while(lcd_busy());                                                      
  80   1          LCD_RS = 0;                                                            
  81   1          LCD_RW = 0;                                                            
  82   1          LCD_EN = 0;                                                            
  83   1          _nop_();                                                               
  84   1          _nop_();                                                               
  85   1          P0 = cmd;                                                              
  86   1          _nop_();                                                               
  87   1          _nop_();                                                               
  88   1          _nop_();                                                               
  89   1          _nop_();                                                               
  90   1          LCD_EN = 1;                                                            
  91   1          _nop_();                                                               
  92   1          _nop_();                                                               
  93   1          _nop_();                                                               
  94   1          _nop_();                                                               
  95   1          LCD_EN = 0;                                                            
  96   1      }                                                                          
  97                                                                                     
  98          /*******************************************************************/      
  99          /*                                                                         
 100          /*写显示数据到LCD                                                          
 101          /*RS=H,RW=L,E=高脉冲,D0-D7=数据。                                       
 102          /*                                                                         
 103          /*******************************************************************/      
 104                                                                                     
 105          void lcd_wdat(uchar dat)                                                   
 106          {                                                                          
 107   1         while(lcd_busy());                                                      
 108   1          LCD_RS = 1;                                                            
 109   1          LCD_RW = 0;                                                            
 110   1          LCD_EN = 0;                                                            
 111   1          P0 = dat;                                                              
 112   1          _nop_();                                                               
 113   1          _nop_();                                                               
 114   1          _nop_();                                                               
 115   1          _nop_();                                                               
 116   1          LCD_EN = 1;                                                            
C51 COMPILER V7.10   YDLCD                                                                 03/29/2009 20:15:57 PAGE 3   

 117   1          _nop_();                                                               
 118   1          _nop_();                                                               
 119   1          _nop_();                                                               
 120   1          _nop_();                                                               
 121   1          LCD_EN = 0;                                                            

⌨️ 快捷键说明

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