📄 lcd1301.lst
字号:
A51 MACRO ASSEMBLER LCD1301 01/07/2007 20:42:53 PAGE 1
MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN LCD1301.OBJ
ASSEMBLER INVOKED BY: C:\KEIL7.06\C51\BIN\A51.EXE LCD1301.ASM SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ;文件名:LCD1301.ASM
2 ;程序功能:显示“OK"程序
3
00B5 4 RS bit P3.5
00B6 5 RW bit P3.6
00B7 6 E bit P3.7
0090 7 LCD EQU P1
8
0000 9 MAIN: ;主程序
0000 759001 10 MOV LCD,#00000001B ;清屏并光标复位
0003 1128 11 ACALL WR_COMM ;调用写入命令子程序
0005 1118 12 ACALL INIT_LCD ;调用初始化子程序
0007 759082 13 MOV LCD,#82H ;写入显示起始地址
000A 1128 14 ACALL WR_COMM ;调用写入命令子程序
000C 75906F 15 MOV LCD,#'o' ;显示"o"
000F 1143 16 ACALL WR_DATA ;调用写入数据子程序
0011 75906B 17 MOV LCD,#'k' ;显示"k"
0014 1143 18 ACALL WR_DATA ;调用写入数据子程序
0016 80FE 19 JMP $ ;维持当前输出状态
20
0018 21 INIT_LCD: ;LCD初始化设定
0018 759038 22 MOV LCD,#00111000B ;设置8位、2行、5x7点阵
001B 1128 23 ACALL WR_COMM ;调用写入命令子程序
001D 75900F 24 MOV LCD,#00001111B ;显示器开,光标允许闪烁
0020 1128 25 ACALL WR_COMM ;调用写入命令子程序
0022 759006 26 MOV LCD,#00000110B ;文字不动,光标自动右移
0025 1128 27 ACALL WR_COMM ;调用写入命令子程序
0027 22 28 RET
29 ;----------------------------
30
0028 31 WR_COMM: ;写入命令子程序
0028 C2B5 32 CLR RS ;RS=0,选择指令寄存器
002A C2B6 33 CLR RW ;RW=0,选择写模式
002C C2B7 34 CLR E ;E=0,禁止读/写LCM
002E 1133 35 ACALL CHECK_BF ;调用判LCM忙碌子程序
0030 D2B7 36 SETB E ;E=1,允许读/写LCM
0032 22 37 RET
38
0033 39 CHECK_BF: ;判断是否忙碌子程序
0033 7590FF 40 MOV LCD,#0FFH ;此时不接受外来指令
0036 C2B5 41 CLR RS ;RS=0,选择指令寄存器
0038 D2B6 42 SETB RW ;RW=1,选择读模式
003A C2B7 43 CLR E ;E=0,禁止读/写LCM
003C 00 44 NOP ;延时1微秒
003D D2B7 45 SETB E ;E=1,允许读/写LCM
003F 2097F1 46 JB LCD.7,CHECK_BF ;忙碌循环等待
0042 22 47 RET
48
0043 49 WR_DATA: ;写入数据子程序
0043 D2B5 50 SETB RS ;RS=1,选择数据寄存器
0045 C2B6 51 CLR RW ;RW=0,选择写模式
0047 C2B7 52 CLR E ;E=0,禁止读/写LCM
0049 1133 53 ACALL CHECK_BF ;调用判断忙碌子程序
004B D2B7 54 SETB E ;E=1,允许读/写LCM
004D 22 55 RET
56
57 END
A51 MACRO ASSEMBLER LCD1301 01/07/2007 20:42:53 PAGE 2
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
CHECK_BF . . . . . C ADDR 0033H A
E. . . . . . . . . B ADDR 00B0H.7 A
INIT_LCD . . . . . C ADDR 0018H A
LCD. . . . . . . . D ADDR 0090H A
MAIN . . . . . . . C ADDR 0000H A
P1 . . . . . . . . D ADDR 0090H A
P3 . . . . . . . . D ADDR 00B0H A
RS . . . . . . . . B ADDR 00B0H.5 A
RW . . . . . . . . B ADDR 00B0H.6 A
WR_COMM. . . . . . C ADDR 0028H A
WR_DATA. . . . . . C ADDR 0043H A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -