📄 lcd1302.lst
字号:
A51 MACRO ASSEMBLER LCD1302 01/07/2007 20:55:09 PAGE 1
MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN LCD1302.OBJ
ASSEMBLER INVOKED BY: C:\Keil7.06\C51\BIN\A51.EXE LCD1302.ASM SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1
2 ;文件名:LCD1302.ASM
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 112D 11 ACALL WR_COMM ;调用写指令子程序
0005 111D 12 ACALL INIT_LCD ;调用初始化子程序
13
0007 759081 14 MOV LCD,#81H ;写入第1行第2个位置
000A 112D 15 ACALL WR_COMM ;调用写指令子程序
000C 759041 16 MOV LCD,#'A' ;显示"A"
000F 1148 17 ACALL WR_DATA ;调用写数据子程序
18
0011 7590C6 19 MOV LCD,#0c6H ;写入第2行第7个位置
0014 112D 20 ACALL WR_COMM ;调用写指令子程序
0016 759042 21 MOV LCD,#'B' ;显示"B"
0019 1148 22 ACALL WR_DATA ;调用写数据子程序
001B 80FE 23 JMP $ ;维持当前输出状态
24
001D 25 INIT_LCD: ;LCM初始化设定
001D 759038 26 MOV LCD,#00111000B ;设置8位、2行、5x7点阵
0020 112D 27 ACALL WR_COMM ;调用写指令子程序
0022 75900F 28 MOV LCD,#00001111B ;显示器开,光标允许闪烁
0025 112D 29 ACALL WR_COMM ;调用写指令子程序
0027 759006 30 MOV LCD,#00000110B ;文字不动,光标自动右移
002A 112D 31 ACALL WR_COMM ;调用写指令子程序
002C 22 32 RET
33
002D 34 WR_COMM: ;写指令子程序
002D C2B5 35 CLR RS ;RS=0,选择指令寄存器
002F C2B6 36 CLR RW ;RW=0,选择写模式
0031 C2B7 37 CLR E ;E=0,禁止读/写LCM
0033 1138 38 ACALL CHECK_BF ;调用判LCM忙碌子程序
0035 D2B7 39 SETB E ;E=1,允许读/写LCM;
0037 22 40 RET
41
0038 42 CHECK_BF: ;判断是否忙碌子程序
0038 7590FF 43 MOV LCD,#0FFH ;此时不接受外来指令
003B C2B5 44 CLR RS ;RS=0,选择指令寄存器
003D D2B6 45 SETB RW ;RW=1,选择读模式
003F C2B7 46 CLR E ;E=0,禁止读/写LCM
0041 00 47 NOP ;延时1微秒
0042 D2B7 48 SETB E ;E=1,允许读/写LCM
0044 2097F1 49 JB LCD.7,CHECK_BF ;忙碌循环等待
0047 22 50 RET
51
0048 52 WR_DATA: ;写数据子程序
0048 D2B5 53 SETB RS ;RS=1,选择数据寄存器
004A C2B6 54 CLR RW ;RW=0,选择写模式
004C C2B7 55 CLR E ;E=0,禁止读/写LCM
004E 1138 56 ACALL CHECK_BF ;调用判断忙碌子程序
0050 D2B7 57 SETB E ;E=1,允许读/写LCM
0052 22 58 RET
A51 MACRO ASSEMBLER LCD1302 01/07/2007 20:55:09 PAGE 2
59
60 END ;程序结束
A51 MACRO ASSEMBLER LCD1302 01/07/2007 20:55:09 PAGE 3
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
CHECK_BF . . . . . C ADDR 0038H A
E. . . . . . . . . B ADDR 00B0H.7 A
INIT_LCD . . . . . C ADDR 001DH 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 002DH A
WR_DATA. . . . . . C ADDR 0048H A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -