📄 subprogram.lst
字号:
A51 MACRO ASSEMBLER SUBPROGRAM 03/11/2005 13:48:51 PAGE 1
MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN SUBPROGRAM.OBJ
ASSEMBLER INVOKED BY: D:\PROGRAM FILES\KEIL\C51\BIN\A51.EXE SUBPROGRAM.ASM SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ;SUBPROGRAM FOR LCD DISPLAY
2 ;ASM FILE FOR LCD DISPLAY
3
4 ;;;;.asm
5 ; 直接访问方式地址定义,根据用户平台接口修改
6 ;;WE MUST SHUOMING THAT THE CHINESECU AND THE CHARACTO CU MUST BUILD IN ASM FILES
7 ;;必须说明中文字库埠?/和西文字库都要在汇编和文件中建立
D000 8 CWADD1 EQU 0D000H ; 写指令代码地址
D001 9 DWADD1 EQU 0D001H ; 写参数及显示数据地址
D001 10 DRADD1 EQU 0D001H ; 读参数及显示数据地址
11 ; 间接控制方式信号定义,根据用户平台接口修改
12 ;//RS EQU P3.0 ; RS
13 ;//RD EQU P3.1 ; /RD
14 ;//WR EQU P3.2 ; /WR
15 ;//DATBUS EQU P1 ; 数据总线
16 ; 程序参数定义,根据用户选择的LCM型号修改
00A0 17 PARA1 EQU 0A0H ; 显示区域宽度
18 ; 程序变量定义,根据用户平台提供的内部资源修改
0050 19 COM EQU 50H ; 指令寄存器
0051 20 DAT1 EQU 51H ; 参数及显示数据寄存器
0052 21 COUNT1 EQU 52H ; 计数器1
0053 22 COUNT2 EQU 53H ; 计数器2
0054 23 O_XL EQU 54H ; X坐标低8位寄存器(字节)
24 ; X坐标低8位寄存器(点列)
0055 25 O_XH EQU 55H ; X坐标高8位寄存器(点列)
26 ; D7位为绘点(D7=1)和消点(D7=0)标志位
0056 27 O_YL EQU 56H ; Y坐标寄存器低8位(点行)
0057 28 O_YH EQU 57H ; Y坐标寄存器高8位(点行)
0058 29 CODEE EQU 58H ; 字符代码
30
0059 31 GRAYB EQU 59H
32 ; 00H-暗;01H-淡;
33 ; 10H-深;11H-亮
005A 34 GRAYH EQU 5AH ; 灰度数据寄存器高字节
005B 35 GRAYL EQU 5BH ; 灰度数据寄存器低?
36 PUBLIC GRAYB
37 PUBLIC CLEAR,_ONEBYTE_PR,_CLCW_PR,_CL_DOT
38 PUBLIC _W_DOT,_CCW_PR,_CC24PR,_CW_PR,_CW_PRR,_CLCW_PRR
39 mypro segment code
---- 40 rseg mypro ; 允许编译器重新定位
41
42
43
44
45
46
47
48
49 ;=====汉字(16x16点阵)库===============================
50 ; 根据北京清华蓬远科贸公司提供的软件PICKHZ.EXE建立字库
51
0000 00403710 52 CCTAB: DB 000H,040H,037H,010H,083H,060H,02FH,008H;清
0004 83602F08
0008 1322E322 53 DB 013H,022H,0E3H,022H,023H,022H,022H,022H
000C 23222222
0010 4048FC40 54 DB 040H,048H,0FCH,040H,0F8H,040H,0FEH,008H
0014 F840FE08
0018 FC08F808 55 DB 0FCH,008H,0F8H,008H,0F8H,008H,028H,010H
A51 MACRO ASSEMBLER SUBPROGRAM 03/11/2005 13:48:51 PAGE 2
001C F8082810
0020 04040808 56 DB 004H,004H,008H,008H,018H,029H,04AH,008H;华
0024 18294A08
0028 0901FF01 57 DB 009H,001H,0FFH,001H,001H,001H,001H,001H
002C 01010101
0030 40485860 58 DB 040H,048H,058H,060H,0C0H,040H,044H,044H
0034 C0404444
0038 3C00FE00 59 DB 03CH,000H,0FEH,000H,000H,000H,000H,000H
003C 00000000
60
61
62 ; 汉字(24x24点阵)写入子程序
63 ;=====汉字(24x24点阵)库===============================
64 ; 根据北京清华蓬远科贸公司提供的软件PICKHZ.EXE建立字库
65
0040 0000007F 66 CCTAB24:DB 000H,000H,000H,07FH,000H,020H,018H,00CH;蓬
0044 0020180C
0048 0C08010C 67 DB 00CH,008H,001H,00CH,07EH,00CH,00CH,00CH
004C 7E0C0C0C
0050 0C0D0C0C 68 DB 00CH,00DH,00CH,00CH,032H,061H,020H,000H
0054 32612000
0058 82E3C3FF 69 DB 082H,0E3H,0C3H,0FFH,0D3H,09AH,03FH,030H
005C D39A3F30
0060 49871964 70 DB 049H,087H,019H,064H,086H,07FH,006H,07FH
0064 867F067F
0068 06FF0606 71 DB 006H,0FFH,006H,006H,004H,0FFH,0FFH,000H
006C 04FFFF00
0070 00800CFE 72 DB 000H,080H,00CH,0FEH,000H,040H,0E0H,0C0H
0074 0040E0C0
0078 8000FE78 73 DB 080H,000H,0FEH,078H,000H,0F0H,000H,0E0H
007C 00F000E0
0080 00F80000 74 DB 000H,0F8H,000H,000H,000H,0FEH,0F8H,000H
0084 00FEF800
0088 00180C06 75 DB 000H,018H,00CH,006H,006H,004H,000H,000H;远
008C 06040000
0090 067F0606 76 DB 006H,07FH,006H,006H,006H,006H,006H,006H
0094 06060606
0098 06060606 77 DB 006H,006H,006H,006H,009H,030H,010H,000H
009C 09301000
00A0 00003F00 78 DB 000H,000H,03FH,000H,000H,000H,000H,0FFH
00A4 000000FF
00A8 19191919 79 DB 019H,019H,019H,019H,019H,019H,019H,011H
00AC 19191911
00B0 312160C0 80 DB 031H,021H,060H,0C0H,000H,0FFH,07FH,000H
00B4 00FF7F00
00B8 0060F000 81 DB 000H,060H,0F0H,000H,000H,000H,018H,0FCH
00BC 000018FC
00C0 80808080 82 DB 080H,080H,080H,080H,080H,088H,088H,088H
00C4 80888888
00C8 8CFCF800 83 DB 08CH,0FCH,0F8H,000H,000H,0FFH,0FCH,000H
00CC 00FFFC00
84 ; 汉字(24x24点阵)演示程序 callby
85 ;DISCH24:MOV GRAYB,#4CH ;灰度值设置: 正向显示
86 ; MOV O_XL,#0CH
87 ; MOV O_YL,#20H
88 ; MOV O_YH,#00H
89 ; MOV CODEE,#00H
90 ; LCALL _CC24PR
91 ;;; MOV GRAYB,#0C4H ;灰度值设置: 负向显示
92 ; MOV O_XL,#15H
93 ; MOV O_YL,#38H
94 ; MOV O_YH,#01H
95 ; MOV CODEE,#01H
96 ; LCALL _CC24PR
97 ; SJMP $
98 ; 绘图演示程序段 callby
A51 MACRO ASSEMBLER SUBPROGRAM 03/11/2005 13:48:51 PAGE 3
99 ;DRAW: MOV GRAYB,#0C0H ;有灰度的显示将把所有显示都分成相应的灰度等级
100 ; MOV R2,#00H
101 ; MOV R3,#00H
102 ; MOV R4,#00H
103 ; MOV R5,#00H
104 ; LOOP1: MOV O_XL,R2
105 ; MOV O_XH,R3
106 ; MOV O_YL,R4
107 ; MOV O_YH,R5
108 ; LCALL _W_DOT
109 ; MOV A,R2
110 ; MOV R2,A
111 ; MOV A,R3
112 ; ADDC A,#00H
113 ; MOV R3,A
114 ; MOV A,R4
115 ; ADD A,#01H
116 ; MOV R4,A
117 ; MOV A,R5
118 ; ADDC A,#00H
119 ; MOV R5,A
120 ; CJNE A,#01H,LOOP1
121 ; SJMP $
122 ;----------------------------------callby----------------
123 ;WIPE: MOV GRAYB,#00H
124 ; MOV R2,#00H
125 ; MOV R3,#80H
126 ; MOV R4,#00H
127 ; MOV R5,#00H
128 ; LOOP2: MOV O_XL,R2
129 ; MOV O_XH,R3
130 ; MOV O_YL,R4
131 ; MOV O_YH,R5
132 ; LCALL _W_DOT
133 ; MOV A,R2
134 ; ADD A,#01H
135 ; MOV R2,A
136 ; MOV A,R3
137 ; ADDC A,#00H
138 ; MOV R3,A
139 ; MOV A,R4
140 ; ADD A,#01H
141 ; MOV R4,A
142 ; MOV A,R5
143 ; ADDC A,#00H
144 ; MOV R5,A
145 ; CJNE A,#01H,LOOP2
146 ; SJMP $
147 ;;;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
148 ; 直接访问方式的驱动子程序
149 ; 程序口地址设置CWADD1,DWADD1,DRADD1
150 ; 占用内部资源DAT1,A,COM
151 ; 程序输入变量: DAT1,,COM
152 ;===============直接访问方式驱动子程序==================
153 ; 写指令子程序 ////childprogram(7)
00D0 C082 154 PR1: PUSH DPL
00D2 C083 155 PUSH DPH
00D4 90D000 156 MOV DPTR,#CWADD1
00D7 E550 157 MOV A,COM
00D9 F0 158 MOVX @DPTR,A
00DA D083 159 POP DPH
00DC D082 160 POP DPL
00DE 22 161 RET
162 ; 写数据子程序 childprogram(8)
00DF C082 163 PR2: PUSH DPL
00E1 C083 164 PUSH DPH
A51 MACRO ASSEMBLER SUBPROGRAM 03/11/2005 13:48:51 PAGE 4
00E3 90D001 165 MOV DPTR,#DWADD1
00E6 E551 166 MOV A,DAT1
00E8 F0 167 MOVX @DPTR,A
00E9 D083 168 POP DPH
00EB D082 169 POP DPL
00ED 22 170 RET
171 ; 读数据子程序 childprogram(9)
00EE C082 172 PR3: PUSH DPL
00F0 C083 173 PUSH DPH
00F2 90D001 174 MOV DPTR,#DRADD1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -