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

📄 gdlcd.lst

📁 51单片机实验例程
💻 LST
📖 第 1 页 / 共 2 页
字号:
A51 MACRO ASSEMBLER  GDLCD                                                                03/29/2009 20:14:38 PAGE     1


MACRO ASSEMBLER A51 V7.09
OBJECT MODULE PLACED IN gdLCD.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE gdLCD.asm SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

                       1     ;/********************************************************************************
                       2     
                       3     ;*  描述:                LCD1602 滚动显示                                       *
                       4     ;* 显示方式:                                                                   *
                       5     ;* 1、从左到右逐字显示,闪动二次,清屏。                                        *
                       6     ;* 2、再从右到左逐字显示,闪动二次,清屏。                                      *
                       7     ;* 3、周期性地重复上述显示方式。                                                *          
                                               
                       8     ;********************************************************************************/
                       9                                                                              
  00A6                10               LCD_RS   EQU  P2.6     
  00A5                11               LCD_RW   EQU  P2.5                                              
  00A7                12               LCD_EN   EQU  P2.7                                             
                      13                                                                              
                      14     ;*******************************************************************     
                      15                                                                              
0000                  16               ORG  0000H                                                     
0000 0130             17               AJMP MAIN                                                      
0030                  18               ORG  0030H                                                     
                      19                                                                              
                      20     ;*******************************************************************     
0030                  21     MAIN:                                                                    
0030 758160           22               MOV  SP,#60H                                                   
0033 7C02             23               MOV  R4,#02H               ;设置闪烁次数                       
0035 1165             24               ACALL  LCD_INIT                                                
0037                  25     MAIN1:                                                                   
0037 118E             26               ACALL LCDSET1                                                  
0039 90012F           27               MOV  DPTR,#CHAR1                                               
003C 11C5             28               ACALL WRITE1              ;显示“WELCOME TO”                  
003E 74C0             29               MOV  A,#0C0H              ;显示第二行左边第一位位置            
0040 11B4             30               ACALL  LCD_CMD                                                 
0042 90013F           31               MOV  DPTR,#CHAR2      ;显示             
0045 11C5             32               ACALL  WRITE1                                                  
0047 3110             33               ACALL DELAY4              ;延时                                
0049 3110             34               ACALL DELAY4                                                   
004B 11F6             35               ACALL SHAN                  ;闪烁两次                          
                      36                                                                              
004D 11A1             37               ACALL LCDSET2                                                  
004F 900150           38               MOV  DPTR,#CHAR3      ;显示“WELCOME TO”                      
0052 11C5             39               ACALL WRITE1                                                   
0054 74CF             40               MOV  A,#0CFH              ;显示第二行右边第一位位置            
0056 11B4             41               ACALL  LCD_CMD                                                 
0058 900160           42               MOV  DPTR,#CHAR4      ;显示WWW.PRECHIN.COM 
005B 11C5             43               ACALL  WRITE1                                                  
005D 3110             44               ACALL DELAY4              ;延时                                
005F 3110             45               ACALL DELAY4                                                   
0061 11F6             46               ACALL SHAN                 ;闪烁两次                           
0063 1137             47               ACALL  MAIN1                                                   
                      48                                                                              
                      49     ;***************************************************************         
                      50     ;LCD初始化设定子程序                                                     
                      51     ;***************************************************************         
0065                  52      LCD_INIT:                                                               
0065 311D             53               ACALL DELAY5MS            ;延时15MS                            
0067 311D             54               ACALL DELAY5MS            ;等待LCD电源稳定                     
0069 311D             55               ACALL DELAY5MS                                                 
                      56                                                                              
006B 7438             57               MOV A,#38H                   ;16*2显示,5*7点阵,8位数据       
A51 MACRO ASSEMBLER  GDLCD                                                                03/29/2009 20:14:38 PAGE     2

006D 11B6             58               ACALL LCD_CMD_NC      ;不进行LCD忙检测                         
006F 311D             59               ACALL DELAY5MS                                                 
                      60                                                                              
0071 7438             61               MOV A,#38H                   ;16*2显示,5*7点阵,8位数据       
0073 11B6             62               ACALL LCD_CMD_NC      ;不进行LCD忙检测                         
0075 311D             63               ACALL DELAY5MS                                                 
                      64                                                                              
0077 7438             65               MOV A,#38H                   ;16*2显示,5*7点阵,8位数据       
0079 11B6             66               ACALL LCD_CMD_NC      ;不进行LCD忙检测                         
007B 311D             67               ACALL DELAY5MS                                                 
                      68                                                                              
007D 7408             69               MOV  A,#08H                  ;显示关                           
007F 11B4             70               ACALL LCD_CMD             ;进行LCD忙检测                       
                      71                                                                              
0081 7401             72               MOV A,#01H                   ;清除屏幕                         
0083 11B4             73               ACALL LCD_CMD            ;进行LCD忙检测                        
                      74                                                                              
0085 7406             75               MOV A,#06H                  ;移动光标                          
0087 11B4             76               ACALL LCD_CMD           ;进行LCD忙检测                         
                      77                                                                              
0089 740C             78               MOV A,#0CH                 ;显示开,关光标                     
008B 11B4             79               ACALL LCD_CMD           ;进行LCD忙检测                         
008D 22               80               RET                                                            
                      81     ;***************************************************************         
                      82     ;显示位置与移动光标设定                                                  
                      83     ;***************************************************************         
008E                  84     LCDSET1:                                                                 
008E 7401             85               MOV A,#01H                 ;清除屏幕                           
0090 11B4             86               ACALL LCD_CMD                                                  
0092 311D             87               ACALL DELAY5MS                                                 
0094 7406             88               MOV A,#06H                ;移动光标(光标加1)                 
0096 11B4             89               ACALL LCD_CMD                                                  
0098 311D             90               ACALL DELAY5MS                                                 
009A 7480             91               MOV A,#80H                ;显示第一行左边第一位位置            
009C 11B4             92               ACALL LCD_CMD                                                  
009E 311D             93               ACALL DELAY5MS                                                 
00A0 22               94               RET                                                            
00A1                  95     LCDSET2:                                                                 
00A1 7401             96               MOV A,#01H                ;清除屏幕                            
00A3 11B4             97               ACALL LCD_CMD                                                  
00A5 311D             98               ACALL DELAY5MS                                                 
00A7 7404             99               MOV A,#04H               ;移动光标(光标减1)                  
00A9 11B4            100               ACALL LCD_CMD                                                  
00AB 311D            101               ACALL DELAY5MS                                                 
00AD 748F            102               MOV A,#8FH               ;显示第一行右边第一位位置             
00AF 11B4            103               ACALL LCD_CMD                                                  
00B1 311D            104               ACALL DELAY5MS                                                 
00B3 22              105               RET                                                            
                     106     ;***************************************************************         
                     107     ;写指令数据到LCD                                                         
                     108     ;RS=L,RW=L,D0-D7=指令码,E=高脉冲                                        
                     109     ;***************************************************************         
00B4                 110     LCD_CMD:                                                                 
00B4 11E2            111               ACALL  CHECKBUSY                                               
00B6                 112     LCD_CMD_NC:                                                              
00B6 C2A6            113               CLR LCD_RS                                                     
00B8 C2A5            114               CLR LCD_RW                                                     
00BA F580            115               MOV  P0,A                                                      
00BC D2A7            116               SETB LCD_EN                                                    
00BE 00              117               NOP                                                            
00BF 00              118               NOP                                                            
00C0 00              119               NOP                                                            
00C1 00              120               NOP                                                            
00C2 C2A7            121               CLR  LCD_EN                                                    
00C4 22              122               RET                                                            
                     123     ;***************************************************************         
A51 MACRO ASSEMBLER  GDLCD                                                                03/29/2009 20:14:38 PAGE     3

                     124     ; 发送字符串子程序                                                       
                     125     ;***************************************************************         
00C5                 126     WRITE1:                                                                  
00C5 7810            127               MOV  R0,#16                                                    
00C7                 128     WRITE0:                                                                  
00C7 E4              129               CLR  A                                                         
00C8 93              130               MOVC  A,@A+DPTR                                                
00C9 A3              131               INC  DPTR                                                      
00CA 11D1            132               ACALL LCD_WDATA                                                
00CC 3107            133               CALL  DELAY                    ;加延时形成滚动效果             
00CE D8F7            134               DJNZ  R0,WRITE0                                                
00D0 22              135               RET                                                            
                     136     ;***************************************************************         
                     137     ;写显示数据到LCD                                                         
                     138     ;RS=H,RW=L,D0-D7=数据,E=高脉冲                                          
                     139     ;***************************************************************         
00D1                 140     LCD_WDATA:                                                               
00D1 11E2            141               ACALL  CHECKBUSY                                               
00D3 D2A6            142               SETB  LCD_RS                                                   
00D5 C2A5            143               CLR   LCD_RW                                                   
00D7 F580            144               MOV   P0,A                                                     
00D9 D2A7            145               SETB  LCD_EN                                                   
00DB 00              146               NOP                                                            
00DC 00              147               NOP                                                            
00DD 00              148               NOP                                                            

⌨️ 快捷键说明

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