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

📄 gdlcd.asm

📁 51单片机实验例程
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;/********************************************************************************

;*  描述:                LCD1602 滚动显示                                       *
;* 显示方式:                                                                   *
;* 1、从左到右逐字显示,闪动二次,清屏。                                        *
;* 2、再从右到左逐字显示,闪动二次,清屏。                                      *
;* 3、周期性地重复上述显示方式。                                                *                            
;********************************************************************************/
                                                                         
          LCD_RS   EQU  P2.6    //控制端接口                                         
          LCD_RW   EQU  P2.5                                              
          LCD_EN   EQU  P2.7                                             
                                                                         
;*******************************************************************     
                                                                         
          ORG  0000H                                                     
          AJMP MAIN                                                      
          ORG  0030H                                                     
                                                                         
;*******************************************************************     
MAIN:                                                                    
          MOV  SP,#60H                                                   
          MOV  R4,#02H               ;设置闪烁次数                       
          ACALL  LCD_INIT                                                
MAIN1:                                                                   
          ACALL LCDSET1                                                  
          MOV  DPTR,#CHAR1                                               
          ACALL WRITE1              ;显示“WELCOME TO”                  
          MOV  A,#0C0H              ;显示第二行左边第一位位置            
          ACALL  LCD_CMD                                                 
          MOV  DPTR,#CHAR2      ;显示             
          ACALL  WRITE1                                                  
          ACALL DELAY4              ;延时                                
          ACALL DELAY4                                                   
          ACALL SHAN                  ;闪烁两次                          
                                                                         
          ACALL LCDSET2                                                  
          MOV  DPTR,#CHAR3      ;显示“WELCOME TO”                      
          ACALL WRITE1                                                   
          MOV  A,#0CFH              ;显示第二行右边第一位位置            
          ACALL  LCD_CMD                                                 
          MOV  DPTR,#CHAR4      ;显示WWW.PRECHIN.COM 
          ACALL  WRITE1                                                  
          ACALL DELAY4              ;延时                                
          ACALL DELAY4                                                   
          ACALL SHAN                 ;闪烁两次                           
          ACALL  MAIN1                                                   
                                                                         
;***************************************************************         
;LCD初始化设定子程序                                                     
;***************************************************************         
 LCD_INIT:                                                               
          ACALL DELAY5MS            ;延时15MS                            
          ACALL DELAY5MS            ;等待LCD电源稳定                     
          ACALL DELAY5MS                                                 
                                                                         
          MOV A,#38H                   ;16*2显示,5*7点阵,8位数据       
          ACALL LCD_CMD_NC      ;不进行LCD忙检测                         
          ACALL DELAY5MS                                                 
                                                                         
          MOV A,#38H                   ;16*2显示,5*7点阵,8位数据       
          ACALL LCD_CMD_NC      ;不进行LCD忙检测                         
          ACALL DELAY5MS                                                 
                                                                         
          MOV A,#38H                   ;16*2显示,5*7点阵,8位数据       
          ACALL LCD_CMD_NC      ;不进行LCD忙检测                         
          ACALL DELAY5MS                                                 
                                                                         
          MOV  A,#08H                  ;显示关                           
          ACALL LCD_CMD             ;进行LCD忙检测                       
                                                                         
          MOV A,#01H                   ;清除屏幕                         
          ACALL LCD_CMD            ;进行LCD忙检测                        
                                                                         
          MOV A,#06H                  ;移动光标                          
          ACALL LCD_CMD           ;进行LCD忙检测                         
                                                                         
          MOV A,#0CH                 ;显示开,关光标                     
          ACALL LCD_CMD           ;进行LCD忙检测                         
          RET                                                            
;***************************************************************         
;显示位置与移动光标设定                                                  
;***************************************************************         
LCDSET1:                                                                 
          MOV A,#01H                 ;清除屏幕                           
          ACALL LCD_CMD                                                  
          ACALL DELAY5MS                                                 
          MOV A,#06H                ;移动光标(光标加1)                 
          ACALL LCD_CMD                                                  
          ACALL DELAY5MS                                                 
          MOV A,#80H                ;显示第一行左边第一位位置            
          ACALL LCD_CMD                                                  
          ACALL DELAY5MS                                                 
          RET                                                            
LCDSET2:                                                                 
          MOV A,#01H                ;清除屏幕                            
          ACALL LCD_CMD                                                  
          ACALL DELAY5MS                                                 
          MOV A,#04H               ;移动光标(光标减1)                  
          ACALL LCD_CMD                                                  
          ACALL DELAY5MS                                                 
          MOV A,#8FH               ;显示第一行右边第一位位置             
          ACALL LCD_CMD                                                  
          ACALL DELAY5MS                                                 
          RET                                                            
;***************************************************************         
;写指令数据到LCD                                                         
;RS=L,RW=L,D0-D7=指令码,E=高脉冲                                        
;***************************************************************         
LCD_CMD:                                                                 
          ACALL  CHECKBUSY                                               
LCD_CMD_NC:                                                              
          CLR LCD_RS                                                     
          CLR LCD_RW                                                     
          MOV  P0,A                                                      
          SETB LCD_EN                                                    
          NOP                                                            
          NOP                                                            
          NOP                                                            
          NOP                                                            
          CLR  LCD_EN                                                    

⌨️ 快捷键说明

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