📄 1602book.lst
字号:
A51 MACRO ASSEMBLER 1602BOOK 06/27/2007 19:43:34 PAGE 1
MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN 1602BOOK.OBJ
ASSEMBLER INVOKED BY: C:\Program Files\keil\C51\BIN\A51.EXE 1602BOOK.ASM SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
0091 1 RS EQU P1.1 ;RS和硬件的P1.1脚相连
0093 2 RW EQU P1.3 ;RW和硬件的P1.3脚相连
0092 3 E EQU P1.2 ;E和硬件的P1.2脚相连
0041 4 XPOS EQU 41H ;行号
0042 5 YPOS EQU 42H ;列号
6
0000 7 ORG 0000H ;复位的地址,跳转到主程序。
0000 020030 8 LJMP MAIN
0030 9 ORG 0030H ;主程序入口。
0030 10 MAIN:
0030 75815F 11 MOV SP,#5FH
0033 120097 12 LCALL RSTLCD ;调用LCD初始化函数。
13
0036 754100 14 MOV XPOS,#0D ;屏幕上显示的起始位置。
0039 754200 15 MOV YPOS,#0D
16
003C 12005B 17 LCALL STARTADDRESS ;调用显示的其始地址。
18
003F 9000F6 19 MOV DPTR,#TABLE
0042 7400 20 MOV A,#0D
0044 7900 21 MOV R1,#0
0046 93 22 WRITESTRING:MOVC A,@A+DPTR
0047 B91002 23 CJNE R1,#16D,SHOW
004A 80FE 24 SJMP $
004C 1200E9 25 SHOW: LCALL BUSYCHECK
004F 12008B 26 LCALL WRITECHAR
0052 7400 27 MOV A,#0D
0054 A3 28 INC DPTR
0055 09 29 INC R1
0056 120046 30 LCALL WRITESTRING
0059 80FE 31 SJMP $
32
005B E541 33 STARTADDRESS:MOV A,XPOS ;此处的三个函数是求出显示字符的函数的屏幕位置。
005D 540F 34 ANL A,#0FH ;求出X轴的值。范围是0-15
005F F541 35 MOV XPOS,A
0061 E542 36 MOV A,YPOS
0063 5401 37 ANL A,#01H ;求出行值。0或者1
0065 F542 38 MOV YPOS,A
0067 B40004 39 CJNE A,#0D,LPSLAY ;如果是第1行
006A E541 40 MOV A,XPOS
006C 8004 41 JMP LPSLAX
42
006E E541 43 LPSLAY: MOV A,XPOS
0070 2440 44 ADD A,#40H
45
0072 4480 46 LPSLAX: ORL A,#80H ;利用逻辑或命令,和写命令结合起来。
0074 C0E0 47 PUSH ACC
0076 1200E9 48 LCALL BUSYCHECK ;确定显示的其始地址。
0079 D0E0 49 POP ACC
007B 12007F 50 LCALL LCDWC
007E 22 51 RET
52
53
007F F580 54 LCDWC: MOV P0,A ;首先这是初始化的需要,不是真正的写入命令。命令写
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -