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

📄 1602lcd_yd.lst

📁 1602液晶显示可以移动显示文字的程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
A51 MACRO ASSEMBLER  1602LCD_YD                                                           12/20/2006 22:12:32 PAGE     1


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

LOC  OBJ            LINE     SOURCE

                       1     ;*******************************************************************    
                       2     ;*                                                                 *      
                       3     ;* ME500单片机开发系统演示程序 - 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                                                                             
  00A0                25               LCD_RS  EQU P2.0                                              
  00A1                26               LCD_RW  EQU P2.1                                              
  00A2                27               LCD_EN  EQU P2.2                                              
                      28                                                                             
                      29     ;*******************************************************************    
0000                  30                  ORG  0000H                                                 
0000 0130             31                  AJMP  MAIN                                                 
0030                  32                  ORG  0030H                                                 
                      33     ;*******************************************************************    
0030                  34     MAIN:                                                                   
0030 758160           35                  MOV SP,#60H                                                
0033 1181             36                  ACALL LCD_INIT           ;LCD初始化                        
0035                  37     MAIN1:                                                                  
0035 11A6             38                  ACALL CLR_LCD           ;清LCD                             
0037 7490             39                  MOV A,#90H                ;在第一行第17列的位置            
0039 11AB             40                  ACALL LCD_CMD                                              
003B 90005F           41                  MOV DPTR,#LINE1       ;第一行字符串的起始地址送入DPTR。    
003E 11E1             42                  ACALL WRITE                                                
0040 74D0             43                  MOV A,#0D0H              ;在第二行第17列的位置             
0042 11AB             44                  ACALL LCD_CMD                                              
0044 900070           45                  MOV DPTR,#LINE2       ;第二行字符串的起始地址送入DPTR。    
0047 11E1             46                  ACALL WRITE                                                
                      47                                                                             
0049 7B10             48                  MOV  R3,#10H             ;向左移动16格                     
004B                  49     LOOPA:                                                                  
004B 7418             50                  MOV  A,#18H               ;字符同时左移一格                
004D 11AB             51                  ACALL LCD_CMD                                              
004F 7D03             52                  MOV  R5,#03H             ;延时375MS                        
0051 3107             53                  ACALL  DELAY125MS                                          
0053 DBF6             54                  DJNZ  R3,LOOPA                                             
                      55                                                                             
0055 3112             56                  ACALL  DELAY4            ;延时1.6s                         
0057 3112             57                  ACALL  DELAY4                                              
0059 7C02             58                  MOV  R4,#02H            ;设置闪烁次数                      
A51 MACRO ASSEMBLER  1602LCD_YD                                                           12/20/2006 22:12:32 PAGE     2

005B 11EF             59                  ACALL  FLASH              ;开始闪烁                        
005D 0135             60                  AJMP  MAIN1                                                
                      61                                                                             
005F                  62     LINE1:                                                                  
005F 20202020         63             DB "    CHINESE     ",00H                                       
0063 4348494E                
0067 45534520                
006B 20202020                
006F 00                      
0070                  64     LINE2:                                                                  
0070 20202020         65             DB "    NEW YEAR    ",00H                                       
0074 4E455720                
0078 59454152                
007C 20202020                
0080 00                      
                      66                                                                             
                      67     ;***************************************************************        
                      68     ;LCD初始化设定子程序                                                    
                      69     ;***************************************************************        
0081                  70     LCD_INIT:                                                               
0081 11FE             71               ACALL DELAY5MS            ;延时15MS                           
0083 11FE             72               ACALL DELAY5MS            ;等待LCD电源稳定                    
0085 11FE             73               ACALL DELAY5MS                                                
                      74                                                                             
0087 7438             75               MOV A,#38H                   ;16*2显示,5*7点阵,8位数据      
0089 11AD             76               ACALL LCD_CMD_NC      ;不进行LCD忙检测                        
008B 11FE             77               ACALL DELAY5MS                                                
                      78                                                                             
008D 7438             79               MOV A,#38H                   ;16*2显示,5*7点阵,8位数据      
008F 11AD             80               ACALL LCD_CMD_NC      ;不进行LCD忙检测                        
0091 11FE             81               ACALL DELAY5MS                                                
                      82                                                                             
0093 7438             83               MOV A,#38H                   ;16*2显示,5*7点阵,8位数据      
0095 11AD             84               ACALL LCD_CMD_NC      ;不进行LCD忙检测                        
0097 11FE             85               ACALL DELAY5MS                                                
                      86                                                                             
0099 7408             87               MOV  A,#08H                 ;显示关                           
009B 11AB             88               ACALL LCD_CMD            ;进行LCD忙检测                       
                      89                                                                             
009D 7401             90               MOV A,#01H                  ;清除屏幕                         
009F 11AB             91               ACALL LCD_CMD            ;进行LCD忙检测                       
                      92                                                                             
00A1 740C             93               MOV  A,#0CH                ;显示开,关光标                    
00A3 11AB             94               ACALL LCD_CMD           ;进行LCD忙检测                        
                      95                                                                             
00A5 22               96               RET                                                           
                      97     ;***************************************************************        
                      98     ;清LCD子程序                                                            
                      99     ;***************************************************************        
00A6                 100     CLR_LCD:                                                                
00A6 7401            101                MOV A,#01H                ;清除屏幕                          
00A8 11AB            102                ACALL LCD_CMD         ;进行LCD忙检测                         
00AA 22              103                RET                                                          
                     104                                                                             
                     105     ;***************************************************************        
                     106     ;写指令数据到LCD                                                        
                     107     ;RS=L,RW=L,D0-D7=指令码,E=高脉冲                                       
                     108     ;***************************************************************        
00AB                 109     LCD_CMD:                                                                
00AB 11CD            110               CALL  CHECKBUSY                                               
00AD                 111     LCD_CMD_NC:                                                             
00AD C2A0            112               CLR LCD_RS                                                    
00AF C2A1            113               CLR LCD_RW                                                    
00B1 F580            114               MOV  P0,A                                                     
00B3 D2A2            115               SETB LCD_EN                                                   
00B5 00              116               NOP                                                           
A51 MACRO ASSEMBLER  1602LCD_YD                                                           12/20/2006 22:12:32 PAGE     3

00B6 00              117               NOP                                                           
00B7 00              118               NOP                                                           
00B8 00              119               NOP                                                           
00B9 C2A2            120               CLR  LCD_EN                                                   
00BB 22              121               RET                                                           
                     122     ;***************************************************************        
                     123     ;写显示数据到LCD                                                        
                     124     ;RS=H,RW=L,D0-D7=数据,E=高脉冲                                         
                     125     ;***************************************************************        
00BC                 126     LCD_WDATA:                                                              
00BC 11CD            127               ACALL  CHECKBUSY                                              
00BE D2A0            128               SETB  LCD_RS                                                  

⌨️ 快捷键说明

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