📄 4x8c.lst
字号:
A51 MACRO ASSEMBLER 4X8C 12/29/2007 12:42:27 PAGE 1
MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN 4x8C.OBJ
ASSEMBLER INVOKED BY: C:\tools\Keil\C51\BIN\A51.EXE 4x8C.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ;******************OCM4x8C并口******************
00A5 2 RS EQU P2.5
00A4 3 RW EQU P2.4
00A3 4 E EQU P2.3
00A2 5 PSB EQU P2.2
00A0 6 RST EQU P2.0
7
0030 8 LCD_X EQU 30H
0031 9 LCD_Y EQU 31H
0032 10 LCD_X1 EQU 32H
0033 11 LCD_Y1 EQU 33H
0034 12 COUNT EQU 34H
0035 13 COUNT1 EQU 35H
0036 14 COUNT2 EQU 36H
0037 15 COUNT3 EQU 37H
0038 16 LCD_DATA EQU 38H
0039 17 LCD_DATA1 EQU 39H
003A 18 LCD_DATA2 EQU 3AH
19 ;***********************************************
0000 20 ORG 0000H
0000 020100 21 LJMP MAIN
0100 22 ORG 0100H
0100 75815F 23 MAIN: MOV SP,#5FH
0103 120262 24 LCALL DELAY2
0106 D2A2 25 SETB PSB
0108 D2A0 26 SETB RST
27 ;********************初始化**********************
010A 7434 28 LGS0: MOV A,#34H ;34H--扩充指令操作
010C 120235 29 LCALL SEND_I
010F 7430 30 MOV A,#30H ;30H--基本指令操作
0111 120235 31 LCALL SEND_I
0114 7401 32 MOV A,#01H ;清除显示
0116 120235 33 LCALL SEND_I
34 ; LCALL DELAY2
35 ; LCALL DELAY2
0119 7406 36 MOV A,#06H ;指定在资料写入或读取时,光标的移动方向
011B 120235 37 LCALL SEND_I
011E 740C 38 MOV A,#0CH ;开显示,关光标,不闪烁
0120 120235 39 LCALL SEND_I
40 ;***********************************************
0123 900274 41 LGS1: MOV DPTR,#TAB1 ;显示汉字和字符
0126 753440 42 MOV COUNT,#40H
0129 7480 43 MOV A,#80H
012B 120235 44 LCALL SEND_I
012E E4 45 LGS11: CLR A
012F 93 46 MOVC A,@A+DPTR
0130 120221 47 LCALL SEND_D
0133 A3 48 INC DPTR
0134 D534F7 49 DJNZ COUNT,LGS11
0137 120255 50 LCALL DELAY3
51 ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
013A 7401 52 LGS2: MOV A,#01H
013C 120235 53 LCALL SEND_I
54 ; LCALL DELAY2
55 ; LCALL DELAY2
56
57 ; MOV LCD_DATA1,#0AAH ;显示点阵
58 ; MOV LCD_DATA2,#0AAH
A51 MACRO ASSEMBLER 4X8C 12/29/2007 12:42:27 PAGE 2
59 ; LCALL WRLATTICE
60 ; LCALL DELAY3
61 ; MOV LCD_DATA1,#55H ;显示点阵
62 ; MOV LCD_DATA2,#55H
63 ; LCALL WRLATTICE
64 ; LCALL DELAY3
65 ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
013F 66 LGS3: ;MOV A,#34H
67 ;LCALL SEND_I
68 ;MOV A,#30H
69 ;LCALL SEND_I
70
013F 9002B4 71 MOV DPTR,#TAB3 ;显示汉字和字符
0142 753440 72 MOV COUNT,#40H
0145 7480 73 MOV A,#80H
0147 120235 74 LCALL SEND_I
014A E4 75 LGS31: CLR A
014B 93 76 MOVC A,@A+DPTR
014C 120221 77 LCALL SEND_D
014F A3 78 INC DPTR
0150 D534F7 79 DJNZ COUNT,LGS31
0153 120255 80 LCALL DELAY3
81 ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
0156 7401 82 LGS4: MOV A,#01H
0158 120235 83 LCALL SEND_I
84 ; LCALL DELAY2
85 ; LCALL DELAY2
86
87 ; MOV LCD_DATA1,#0FFH ;显示点阵
88 ; MOV LCD_DATA2,#00H
89 ; LCALL WRLATTICE
90 ; LCALL DELAY3
91 ; MOV LCD_DATA1,#00H ;显示点阵
92 ; MOV LCD_DATA2,#0FFH
93 ; LCALL WRLATTICE
94 ; LCALL DELAY3
95 ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
015B 9002F4 96 LGS5: MOV DPTR,#TAB5 ;显示图形
015E 120171 97 LCALL PHO_DISP
0161 120255 98 LCALL DELAY3
99 ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
0164 7434 100 MOV A,#34H
0166 120235 101 LCALL SEND_I
0169 7430 102 MOV A,#30H
016B 120235 103 LCALL SEND_I
016E 020123 104 LJMP LGS1
105 ;***********************************************
0171 753080 106 PHO_DISP: MOV LCD_X,#80H ;全屏显示图形子程序
0174 753380 107 MOV LCD_Y1,#80H
0177 753702 108 MOV COUNT3,#02H
017A 853032 109 PHO_DISP1: MOV LCD_X1,LCD_X
017D 753620 110 MOV COUNT2,#20H
0180 753508 111 PHO_DISP2: MOV COUNT1,#08H
0183 12020C 112 PHO_DISP3: LCALL WR_ZB
0186 E4 113 CLR A
0187 93 114 MOVC A,@A+DPTR
0188 120221 115 LCALL SEND_D
018B A3 116 INC DPTR
018C E4 117 CLR A
018D 93 118 MOVC A,@A+DPTR
018E 120221 119 LCALL SEND_D
0191 A3 120 INC DPTR
0192 0532 121 INC LCD_X1
0194 D535EC 122 DJNZ COUNT1,PHO_DISP3
0197 853032 123 MOV LCD_X1,LCD_X
019A 0533 124 INC LCD_Y1
A51 MACRO ASSEMBLER 4X8C 12/29/2007 12:42:27 PAGE 3
019C D536E1 125 DJNZ COUNT2,PHO_DISP2
019F 753088 126 MOV LCD_X,#88H
01A2 753380 127 MOV LCD_Y1,#80H
01A5 D537D2 128 DJNZ COUNT3,PHO_DISP1
129
01A8 7436 130 MOV A,#36H
01AA 120235 131 LCALL SEND_I
132 ; LCALL DELAY1
01AD 7430 133 MOV A,#30H
01AF 120235 134 LCALL SEND_I
01B2 22 135 RET
136 ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
01B3 753900 137 CLRRAM: MOV LCD_DATA1,#00H ;GDRAM写0子程序
01B6 753A00 138 MOV LCD_DATA2,#00H
01B9 1201BD 139 LCALL WRLATTICE
01BC 22 140 RET
141 ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
01BD 753080 142 WRLATTICE: MOV LCD_X,#80H ;显示点阵子程序
01C0 753380 143 MOV LCD_Y1,#80H
01C3 753702 144 MOV COUNT3,#02H
01C6 C2D5 145 WRLAT1: CLR F0
01C8 853032 146 MOV LCD_X1,LCD_X
01CB 753620 147 MOV COUNT2,#20H
01CE 753508 148 WRLAT2: MOV COUNT1,#08H
01D1 20D505 149 WRLAT3: JB F0,WRLAT32
01D4 853938 150 MOV LCD_DATA,LCD_DATA1
01D7 21DC 151 AJMP WRLAT31
01D9 853A38 152 WRLAT32: MOV LCD_DATA,LCD_DATA2
01DC 12020C 153 WRLAT31: LCALL WR_ZB
01DF E538 154 MOV A,LCD_DATA
01E1 120221 155 LCALL SEND_D
01E4 E538 156 MOV A,LCD_DATA
01E6 120221 157 LCALL SEND_D
01E9 0532 158 INC LCD_X1
01EB D535E3 159 DJNZ COUNT1,WRLAT3
01EE 853032 160 MOV LCD_X1,LCD_X
01F1 0533 161 INC LCD_Y1
01F3 B2D5 162 CPL F0
01F5 D536D6 163 DJNZ COUNT2,WRLAT2
01F8 753088 164 MOV LCD_X,#88H
01FB 753380 165 MOV LCD_Y1,#80H
01FE D537C5 166 DJNZ COUNT3,WRLAT1
167
0201 7436 168 MOV A,#36H
0203 120235 169 LCALL SEND_I
170 ; LCALL DELAY1
0206 7430 171 MOV A,#30H
0208 120235 172 LCALL SEND_I
020B 22 173 RET
174 ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
020C 7434 175 WR_ZB: MOV A,#34H
020E 120235 176 LCALL SEND_I
177 ; LCALL DELAY1
0211 E533 178 MOV A,LCD_Y1
0213 120235 179 LCALL SEND_I
0216 E532 180 MOV A,LCD_X1
0218 120235 181 LCALL SEND_I
021B 7430 182 MOV A,#30H
021D 120235 183 LCALL SEND_I
0220 22 184 RET
185 ;***********************************************
0221 120249 186 SEND_D: LCALL CHK_BUSY ;写数据子程序
0224 D2A5 187 SETB RS
0226 C2A4 188 CLR RW
0228 F580 189 MOV P0,A
022A D2A3 190 SETB E
A51 MACRO ASSEMBLER 4X8C 12/29/2007 12:42:27 PAGE 4
022C 00 191 NOP
022D 00 192 NOP
022E C2A3 193 CLR E
0230 00 194 NOP
0231 7580FF 195 MOV P0,#0FFH
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -