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

📄 ydlcd.asm

📁 51单片机实验例程
💻 ASM
📖 第 1 页 / 共 2 页
字号:
          CLR  LCD_EN                                                   
          RET                                                           
;***************************************************************        
;写显示数据到LCD                                                        
;RS=H,RW=L,D0-D7=数据,E=高脉冲                                         
;***************************************************************        
LCD_WDATA:                                                              
          ACALL  CHECKBUSY                                              
          SETB  LCD_RS                                                  
          CLR   LCD_RW                                                  
          MOV   P0,A                                                    
          SETB  LCD_EN                                                  
          NOP                                                           
          NOP                                                           
          NOP                                                           
          NOP                                                           
          CLR   LCD_EN                                                  
          RET                                                           
;***************************************************************        
;检测LCD控制器忙状态                                                    
;读数据                                                                 
;RS=L,RW=H,E=H,输出:D0-D7=数据                                         
;P0.7=1,LCD忙,等待。P0.7=0,LCD闲,可以进行读写操作。                 
;***************************************************************        
CHECKBUSY:                                                              
          PUSH  ACC                                                     
          MOV  P0,#0FFH                                                 
          CLR   LCD_RS                                                  
          SETB  LCD_RW                                                  
          SETB  LCD_EN                                                  
BUSYLOOP:                                                               
          NOP                                                           
          JB P0.7,BUSYLOOP                                              
          CLR  LCD_EN                                                   
          POP  ACC                                                      
          RET                                                           
;***************************************************************        
; 发送字符串子程序                                                      
;***************************************************************        
WRITE:                                                                  
          PUSH ACC                                                      
WRITE1:                                                                 
          CLR  A                                                        
          MOVC  A,@A+DPTR                                               
          JZ  WRITE2                                                    
          INC  DPTR                                                     
          ACALL LCD_WDATA                                               
          JMP  WRITE1                                                   
WRITE2:                                                                 
          POP  ACC                                                      
          RET                                                           
;***************************************************************        
;闪烁子程序                                                             
;***************************************************************        
FLASH:                                                                  
          MOV A,#08H                ;关闭显示                           
          ACALL LCD_CMD                                                 
          ACALL DELAY4                                                  
          MOV A,#0CH                ;开显示,关闭光标                   
          ACALL LCD_CMD                                                 
          ACALL DELAY4                                                  
          DJNZ R4,FLASH                                                 
          RET                                                           
;***************************************************************        
;延时5MS子程序                                                          
;LCD初始化使用                                                          
;***************************************************************        
DELAY5MS:                                                               
          MOV  R6,#10                                                   
 DL1:                                                                   
          MOV  R7,#249                                                  
 DL2:                                                                   
          DJNZ R7,DL2                                                   
          DJNZ R6,DL1                                                   
          RET                                                           
;***************************************************************        
;延时125MS子程序                                                        
;字符串移动时使用                                                       
;***************************************************************        
DELAY125MS:                                                             
 DL3:                                                                   
          MOV  R6,#250                                                  
 DL4:                                                                   
          MOV  R7,#249                                                  
 DL5:                                                                   
          DJNZ R7,DL5                                                   
          DJNZ R6,DL4                                                   
          DJNZ R5,DL3                                                   
          RET                                                           
;***************************************************************        
;延时800MS子程序                                                        
;闪烁时使用                                                             
;***************************************************************        
DELAY4:                                                                 
          MOV R5,#40                                                    
 DL6:                                                                   
          MOV R6,#100                                                   
 DL7:                                                                   
          MOV R7,#100                                                   
 DL8:                                                                   
          DJNZ R7,DL8                                                   
          DJNZ R6,DL7                                                   
          DJNZ R5,DL6                                                   
          RET                                                           
;***************************************************************        
          END                                                

⌨️ 快捷键说明

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