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

📄 ex3-8.lst

📁 《51单片机应用开发桉例精选》源代码及图片下载
💻 LST
字号:
A51 MACRO ASSEMBLER  EX3_8                                                                06/23/2007 17:11:40 PAGE     1


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

LOC  OBJ            LINE     SOURCE

                       1     ;--------------程序信息-----------------
                       2     ;文件名   : ex3-8.asm
                       3     ;版本     : 1.0
                       4     ;作者     :
                       5     ;修改时间 :
                       6     
                       7     ;--------------程序说明------------------
                       8     ;CHAP 3.8  简单液晶显示实例
                       9     
                      10     ;-----------常量和变量声明---------------
                      11     
  00B0                12              RS     EQU P3.0;                       控制位宏定义,数据地址选择位
  00B1                13              RW     EQU P3.1;               数据命令选择位
  00B2                14              E      EQU P3.2;                       LCD使能端
  0090                15              LCDP   EQU P1;                 LCD数据端口
  0097                16              BF     EQU LCDP.7;             LCD忙标志位
  0000                17              LINEF  BIT 00H;                        换行标志位
                      18     
                      19     
                      20     ;--------------预定义--------------------
                      21     
0000                  22                    ORG 0000H
0000 020003           23                    LJMP START
                      24     
                      25     ;------------中断入口地址分配------------
                      26                    ;ORG 0003H
                      27                    ;LJMP INT0PRG
                      28                    ;ORG 000BH
                      29                    ;LJMP INT1PRG
                      30                    ;ORG 0013H;
                      31                    ;LJMP
                      32                    ;ORG 0030H
                      33     
0003                  34     START:
0003 1126             35            INIT:  CALL LCDINIT;LCD INIT     液晶显示器初始化
                      36     ;--------------初始化子程序--------------
0005 856081           37          MOV SP,60H;
                      38     ;--------------主程序--------------------
0008                  39     MAIN:
0008 759001           40             MOV LCDP,#01H;          开屏幕
000B 1152             41             CALL WINSTR;
000D 7800             42             MOV R0,#00H;                    初始化寄存器
000F 7900             43             MOV R1,#00H;
0011 8890             44      MAIN1: MOV LCDP,R0;                    写入数据
0013 115D             45             CALL WDATA;                     时序使能
0015 11BB             46             CALL DELAY600MS;                显示延时
                      47             ;CALL NEXTC;                    显示下一个字符
0017 09               48             INC R1;
0018 08               49             INC R0;
0019 B90F04           50             CJNE R1,#0FH,MAIN2;     判断是否行尾
001C 7900             51             MOV R1,#00H;
001E 1177             52             CALL CHGLINE;           换行
0020                  53      MAIN2:
0020 B800EE           54             CJNE R0,#00H,MAIN1;     判断是否LCD结尾
                      55     
                      56     
0023 020008           57     LJMP MAIN
                      58     
A51 MACRO ASSEMBLER  EX3_8                                                                06/23/2007 17:11:40 PAGE     2

                      59     
                      60     ;----------------子程序------------------
                      61     ;---------------------------------
                      62     ;  LCM显示初始化程序
                      63     ;---------------------------------
0026                  64     LCDINIT:
0026 759001           65             MOV  LCDP,#01H;                 液晶开显示
0029 1152             66             CALL  WINSTR;           
002B 759006           67             MOV  LCDP,#06H;         清屏
002E 1152             68             CALL  WINSTR;           
0030 759038           69             MOV  LCDP,#38H;                 设置行地址
0033 1152             70             CALL  WINSTR;           
0035 759080           71             MOV  LCDP,#80H;                 
0038 1152             72             CALL  WINSTR;           
003A 75900F           73             MOV  LCDP,#0FH;         设置光标格式
003D 1152             74             CALL  WINSTR;           
003F D200             75             SETB  LINEF;                    
0041 22               76     RET;                    
                      77     
                      78     
                      79     
                      80     ;---------------------------------
                      81     ;  命令数据写入时序等子程序部分
                      82     ;---------------------------------
0042                  83       ISBF:                                 ;LCD内部DDRAM读写忙判断子程序
0042 C2B0             84       ISBF1:CLR RS;                         设定RS,RW读写和数据命令方式
0044 D2B1             85             SETB RW;
0046 C2B2             86             CLR E;
0048 11B2             87             CALL DELAYLCD;          时序等待延时
004A D2B2             88             SETB E;                         LCD使能
004C 2097F3           89             JB BF,ISBF1;                    忙标志位判断
004F C2B1             90             CLR RW;                         
0051 22               91             RET;
                      92                                             ;写入命令时序子程序
0052 C2B0             93      WINSTR:CLR RS                          ;设定RS,RW读写和数据命令方式
0054 C2B1             94             CLR RW
0056 C2B2             95             CLR E
0058 11B2             96             ACALL DELAYLCD                  ;时序等待延时
005A D2B2             97             SETB E                          ;LCD使能
005C 22               98             RET
                      99     
005D C2B1            100      WDATA:CLR RW                           ;写入数据令时序子程序
005F D2B0            101            SETB RS;                         设定RS,RW读写和数据命令方式
0061 C2B2            102            CLR E;
0063 11B2            103            CALL DELAYLCD;                    时序等待延时
0065 D2B2            104            SETB E;                          LCD使能
0067 C2B0            105            CLR RS;
0069 22              106            RET;
                     107     
006A C2B0            108      RADDR: CLR RS;                         读数据时序子程序
006C D2B1            109             SETB RW;                                设定RS,RW读写和数据命令方式
006E C2B2            110             CLR E;
0070 11B2            111             CALL DELAYLCD;                  时序延时
0072 D2B2            112             SETB E;                         LCD使能
0074 C2B1            113             CLR RW;
0076 22              114             RET;
                     115     
0077 200002          116      CHGLINE: JB LINEF,CHG1;                LCD行末换行子程序
007A 8009            117               JMP CHG2;                     如果是第二行末尾,则跳到第一行首,否则,跳到第一行

⌨️ 快捷键说明

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