📄 lcd_test.lst
字号:
A51 MACRO ASSEMBLER LCD_TEST 09/10/2003 16:49:47 PAGE 1
MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN Lcd_test.OBJ
ASSEMBLER INVOKED BY: C:\KEIL\C51\BIN\A51.EXE Lcd_test.asm SET(LARGE) DEBUG EP
LOC OBJ LINE SOURCE
1 ;******************************Copyright (c)******************************
2 ;** 广州周立功单片机发展有限公司
3 ;** 研 究 所
4 ;** 产品一部
5 ;** http://www.zlgmcu.com
6 ;**-------------------------------文件信息--------------------------------
7 ;文件名:LCD_TEST.ASM
8 ;功能 :在DP-51+实验板完成LCD点阵字符液晶显示。在第1行显示DP-51+,在第2行
9 ; 显示2003年9月10日。
10
11 ;说明 :
12 ; 1.LCD液晶显示屏数据口地址为F80xH~F80xH之间。
13 ; 2.这里只对LCD进行写操作。
14 ;最后修改时间:2003年9月10日
15 ;***************************************************************************
16
F800 17 WR_COM EQU 0F800H ;写指令地址
F802 18 RD_STA EQU 0F802H ;读状态地址
F801 19 WR_DAT EQU 0F801H ;写数据地址
F803 20 RD_DAT EQU 0F803H ;读数据地址
21
22
4000 23 ORG 4000H
4000 2100 24 AJMP MAIN
25
4100 26 ORG 4100h
4100 27 MAIN:
4100 758160 28 MOV SP,#60h ;设置SP
4103 31CD 29 ACALL DELAY ;延时
30
4105 317B 31 ACALL INIT_LCD ;初始化液晶模块
32
4107 31AA 33 ACALL WRITE_CGRAM ;设置CGRAM
34
4109 7484 35 MOV A,#84H ;从第一行第5位开始
410B 318C 36 ACALL WRITE_COM
37
410D 7E06 38 MOV R6,#06 ;显示DP-51+
410F 9041EE 39 MOV DPTR,#TABLE1 ;读取DP-51+数据表地址
4112 40 DISP1:
4112 E4 41 CLR A
4113 93 42 MOVC A,@A+DPTR
4114 319B 43 ACALL WRITE_DAT
4116 A3 44 INC DPTR
4117 DEF9 45 DJNZ R6,DISP1
46
4119 74C2 47 MOV A,#0C2H ;第二行第二位开始显示
411B 318C 48 ACALL WRITE_COM
49
411D 7E0D 50 MOV R6,#13 ;显示ZLG2003年3月26日
411F 904205 51 MOV DPTR,#TABLE2 ;读取数据表2地址
4122 52 DISP2:
4122 E4 53 CLR A
4123 93 54 MOVC A,@A+DPTR
4124 319B 55 ACALL WRITE_DAT
4126 A3 56 INC DPTR
4127 DEF9 57 DJNZ R6,DISP2
58
A51 MACRO ASSEMBLER LCD_TEST 09/10/2003 16:49:47 PAGE 2
59
4129 60 DISP_LOOP:
4129 7407 61 MOV A,#07H ;设置左移模式
412B 318C 62 ACALL WRITE_COM
412D 748F 63 MOV A,#8FH ;从第一行第16位开始
412F 318C 64 ACALL WRITE_COM
65
4131 7E10 66 MOV R6,#16 ;左移16个 空格
4133 67 DISP_LEFT:
4133 7410 68 MOV A,#10H
4135 319B 69 ACALL WRITE_DAT
4137 31CD 70 ACALL DELAY ;延时
4139 31CD 71 ACALL DELAY
413B 31CD 72 ACALL DELAY
413D 31CD 73 ACALL DELAY
413F 31CD 74 ACALL DELAY
4141 31CD 75 ACALL DELAY
4143 31CD 76 ACALL DELAY
4145 31CD 77 ACALL DELAY
4147 31CD 78 ACALL DELAY
4149 31CD 79 ACALL DELAY
414B 31CD 80 ACALL DELAY
414D 31CD 81 ACALL DELAY
414F DEE2 82 DJNZ R6,DISP_LEFT
83
4151 7405 84 MOV A,#05H ;设置右移模式
4153 318C 85 ACALL WRITE_COM
4155 7480 86 MOV A,#80H ;从第一行第1位开始
4157 318C 87 ACALL WRITE_COM
88
4159 7E10 89 MOV R6,#16
415B 90 DISP_RIGHT:
415B 7410 91 MOV A,#10H
415D 319B 92 ACALL WRITE_DAT
415F 31CD 93 ACALL DELAY ;延时
4161 31CD 94 ACALL DELAY
4163 31CD 95 ACALL DELAY
4165 31CD 96 ACALL DELAY
4167 31CD 97 ACALL DELAY
4169 31CD 98 ACALL DELAY
416B 31CD 99 ACALL DELAY
416D 31CD 100 ACALL DELAY
416F 31CD 101 ACALL DELAY
4171 31CD 102 ACALL DELAY
4173 31CD 103 ACALL DELAY
4175 31CD 104 ACALL DELAY
4177 DEE2 105 DJNZ R6,DISP_RIGHT
106
4179 80AE 107 SJMP DISP_LOOP ;循环移动
108
109
110 ;初始化液晶模块
417B 111 INIT_LCD:
417B 7438 112 MOV A,#38H ;设置为8位数据总线,16*2,5*7点阵
417D 318C 113 ACALL WRITE_COM
417F 7401 114 MOV A,#01H ;清屏幕
4181 318C 115 ACALL WRITE_COM
4183 7406 116 MOV A,#06H ;光标移动,显示区不移动,读写操作后AC加1
4185 318C 117 ACALL WRITE_COM
4187 740C 118 MOV A,#0CH ;开显示,关光标,不闪烁
4189 318C 119 ACALL WRITE_COM
418B 22 120 RET
121
122 ;写指令子程序
418C 123 WRITE_COM:
418C C083 124 PUSH DPH ;保存DPTR
A51 MACRO ASSEMBLER LCD_TEST 09/10/2003 16:49:47 PAGE 3
418E C082 125 PUSH DPL
4190 90F800 126 MOV DPTR,#WR_COM ;设置写指令地址
4193 F0 127 MOVX @DPTR,A ;输出指令
4194 31CD 128 ACALL DELAY ;延时
4196 D082 129 POP DPL ;恢复DPTR
4198 D083 130 POP DPH
419A 22 131 RET
132
133
134 ;写数据子程序
419B 135 WRITE_DAT:
419B C083 136 PUSH DPH ;保存DPTR
419D C082 137 PUSH DPL
419F 90F801 138 MOV DPTR,#WR_DAT ;设置写数据地址
41A2 F0 139 MOVX @DPTR,A ;输出数据
41A3 31CD 140 ACALL DELAY ;延时
41A5 D082 141 POP DPL ;恢复DPTR
41A7 D083 142 POP DPH
41A9 22 143 RET
144
145
146 ;设置自定义字符
41AA 147 WRITE_CGRAM:
41AA C0E0 148 PUSH ACC ;保护现场
41AC C082 149 PUSH DPL
41AE C083 150 PUSH DPH
41B0 C0D0 151 PUSH PSW
41B2 7440 152 MOV A,#40H ;设置CGRAM开始地址为00H
41B4 318C 153 ACALL WRITE_COM
41B6 7F18 154 MOV R7,#24 ;输出3个自定义字符(3×8=24)
41B8 9041D6 155 MOV DPTR,#CGRAM_TABLE
41BB 156 WRITE_CGRAM1:
41BB E4 157 CLR A
41BC 93 158 MOVC A,@A+DPTR ;读取表数据
41BD 319B 159 ACALL WRITE_DAT ;把数据写到CGRAM中
41BF A3 160 INC DPTR
41C0 DFF9 161 DJNZ R7,WRITE_CGRAM1
41C2 31CD 162 ACALL DELAY ;延时
41C4 D0D0 163 POP PSW ;现场恢复
41C6 D083 164 POP DPH
41C8 D082 165 POP DPL
41CA D0E0 166 POP ACC
41CC 22 167 RET
168
169 ;延时子程序
41CD 170 DELAY:
41CD 7D64 171 MOV R5,#100
41CF 172 DELAY1:
41CF 7C64 173 MOV R4,#100
41D1 DCFE 174 DJNZ R4,$
41D3 DDFA 175 DJNZ R5,DELAY1
41D5 22 176 RET
177
178 ;定义代码
41D6 179 CGRAM_TABLE:
41D6 080F120F 180 DB 08H,0FH,12H,0FH,0AH,1FH,02H,02H ;年
41DA 0A1F0202
41DE 0F090F09 181 DB 0FH,09H,0FH,09H,0FH,09H,11H,00H ;月
41E2 0F091100
41E6 0F09090F 182 DB 0FH,09H,09H,0FH,09H,09H,0FH,00H ;日
41EA 09090F00
41EE 183 TABLE1:
41EE 44502D35 184 DB 44H,50H,2DH,35H,31H,2BH;DP-51+
41F2 312B
41F4 185 TABLE3:
41F4 10101010 186 DB 10H,10H,10H,10H,10H,10H,10H,10H,10H,10H,10H,10H,10H,10H,10H,10H,10H;空格
A51 MACRO ASSEMBLER LCD_TEST 09/10/2003 16:49:47 PAGE 4
41F8 10101010
41FC 10101010
4200 10101010
4204 10
4205 187 TABLE2:
4205 5A4C4732 188 DB 5AH,4CH,47H,32H,30H,30H,33H,00H,39H,01H,31H,36H,02H
4209 30303300
420D 39013136
4211 02
189 ; Z l G 2 0 0 3 年 9 月 1 0 日
190
191 END
A51 MACRO ASSEMBLER LCD_TEST 09/10/2003 16:49:47 PAGE 5
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
ACC. . . . . . . . D ADDR 00E0H A
CGRAM_TABLE. . . . C ADDR 41D6H A
DELAY. . . . . . . C ADDR 41CDH A
DELAY1 . . . . . . C ADDR 41CFH A
DISP1. . . . . . . C ADDR 4112H A
DISP2. . . . . . . C ADDR 4122H A
DISP_LEFT. . . . . C ADDR 4133H A
DISP_LOOP. . . . . C ADDR 4129H A
DISP_RIGHT . . . . C ADDR 415BH A
DPH. . . . . . . . D ADDR 0083H A
DPL. . . . . . . . D ADDR 0082H A
INIT_LCD . . . . . C ADDR 417BH A
MAIN . . . . . . . C ADDR 4100H A
PSW. . . . . . . . D ADDR 00D0H A
RD_DAT . . . . . . N NUMB F803H A
RD_STA . . . . . . N NUMB F802H A
SP . . . . . . . . D ADDR 0081H A
TABLE1 . . . . . . C ADDR 41EEH A
TABLE2 . . . . . . C ADDR 4205H A
TABLE3 . . . . . . C ADDR 41F4H A
WRITE_CGRAM. . . . C ADDR 41AAH A
WRITE_CGRAM1 . . . C ADDR 41BBH A
WRITE_COM. . . . . C ADDR 418CH A
WRITE_DAT. . . . . C ADDR 419BH A
WR_COM . . . . . . N NUMB F800H A
WR_DAT . . . . . . N NUMB F801H A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -