📄 ocm4x8c.lst
字号:
A51 MACRO ASSEMBLER OCM4X8C 12/29/2007 13:47:28 PAGE 1
MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN Ocm4x8C.OBJ
ASSEMBLER INVOKED BY: C:\tools\Keil\C51\BIN\A51.EXE Ocm4x8C.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 COUNT EQU 32H
0033 11 COUNT1 EQU 33H
0034 12 COUNT2 EQU 34H
0035 13 COUNT3 EQU 35H
0036 14 LCD_DATA EQU 36H
0037 15 LCD_DATA1 EQU 37H
0038 16 LCD_DATA2 EQU 38H
0039 17 STORE EQU 39H
18 ;***********************************************
0000 19 ORG 0000H
0000 020100 20 LJMP MAIN
0100 21 ORG 0100H
0100 00 22 MAIN: NOP
0101 00 23 NOP
0102 75815F 24 MOV SP,#5FH
0105 D2A0 25 SETB RST
0107 00 26 NOP
0108 D2A2 27 SETB PSB
28 ;********************初始化**********************
010A 7434 29 LGS0: MOV A,#34H ;34H--扩充指令操作
010C 120232 30 LCALL SEND_I
010F 7430 31 MOV A,#30H ;30H--基本指令操作
0111 120232 32 LCALL SEND_I
0114 7401 33 MOV A,#01H ;清除显示
0116 120232 34 LCALL SEND_I
0119 7406 35 MOV A,#06H ;指定在资料写入或读取时,光标的移动方向
011B 120232 36 LCALL SEND_I
011E 740C 37 MOV A,#0CH ;开显示,关光标,不闪烁
0120 120232 38 LCALL SEND_I
39 ;***********************************************
0123 900281 40 LGS1: MOV DPTR,#TAB1 ;显示汉字和字符
0126 753240 41 MOV COUNT,#40H
0129 7480 42 MOV A,#80H
012B 120232 43 LCALL SEND_I
012E E4 44 LGS11: CLR A
012F 93 45 MOVC A,@A+DPTR
0130 120222 46 LCALL SEND_D
0133 A3 47 INC DPTR
0134 D532F7 48 DJNZ COUNT,LGS11
0137 120262 49 LCALL DELAY3
50 ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
013A 7401 51 LGS2: MOV A,#01H
013C 120232 52 LCALL SEND_I
53
013F 7537CC 54 MOV LCD_DATA1,#0CCH ;显示点阵
0142 7538CC 55 MOV LCD_DATA2,#0CCH
0145 1201CE 56 LCALL LAT_DISP
0148 120262 57 LCALL DELAY3
58 ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
A51 MACRO ASSEMBLER OCM4X8C 12/29/2007 13:47:28 PAGE 2
014B 7434 59 LGS3: MOV A,#34H
014D 120232 60 LCALL SEND_I
0150 7430 61 MOV A,#30H
0152 120232 62 LCALL SEND_I
63
0155 9002C1 64 MOV DPTR,#TAB3 ;显示汉字和字符
0158 753240 65 MOV COUNT,#40H
015B 7480 66 MOV A,#80H
015D 120232 67 LCALL SEND_I
0160 E4 68 LGS31: CLR A
0161 93 69 MOVC A,@A+DPTR
0162 120222 70 LCALL SEND_D
0165 A3 71 INC DPTR
0166 D532F7 72 DJNZ COUNT,LGS31
0169 120262 73 LCALL DELAY3
74 ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
016C 7401 75 LGS4: MOV A,#01H
016E 120232 76 LCALL SEND_I
77
0171 7537FF 78 MOV LCD_DATA1,#0FFH ;显示点阵
0174 753800 79 MOV LCD_DATA2,#00H
0177 1201CE 80 LCALL LAT_DISP
017A 120262 81 LCALL DELAY3
82 ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
017D 900301 83 LGS5: MOV DPTR,#TAB5 ;显示图形
0180 120193 84 LCALL PHO_DISP
0183 120262 85 LCALL DELAY3
86 ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
0186 7434 87 MOV A,#34H
0188 120232 88 LCALL SEND_I
018B 7430 89 MOV A,#30H
018D 120232 90 LCALL SEND_I
0190 020123 91 LJMP LGS1
92 ;***********************************************
0193 753502 93 PHO_DISP: MOV COUNT3,#02H ;全屏显示图形子程序
0196 753080 94 MOV LCD_X,#80H
0199 753180 95 PHO_DISP1: MOV LCD_Y,#80H
019C 753420 96 MOV COUNT2,#20H
019F 753310 97 PHO_DISP2: MOV COUNT1,#10H
01A2 12020D 98 LCALL WR_ZB
01A5 E4 99 PHO_DISP3: CLR A
01A6 93 100 MOVC A,@A+DPTR
01A7 120222 101 LCALL SEND_D
01AA A3 102 INC DPTR
01AB D533F7 103 DJNZ COUNT1,PHO_DISP3
01AE 0531 104 INC LCD_Y
01B0 D534EC 105 DJNZ COUNT2,PHO_DISP2
01B3 753088 106 MOV LCD_X,#88H
01B6 D535E0 107 DJNZ COUNT3,PHO_DISP1
108
01B9 7436 109 MOV A,#36H
01BB 120232 110 LCALL SEND_I
01BE 7430 111 MOV A,#30H
01C0 120232 112 LCALL SEND_I
01C3 22 113 RET
114 ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
01C4 753700 115 CLRRAM: MOV LCD_DATA1,#00H ;GDRAM写0子程序
01C7 753800 116 MOV LCD_DATA2,#00H
01CA 1201CE 117 LCALL LAT_DISP
01CD 22 118 RET
119 ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
01CE 753502 120 LAT_DISP: MOV COUNT3,#02H ;显示点阵子程序
01D1 753080 121 MOV LCD_X,#80H
01D4 753180 122 LAT_DISP1: MOV LCD_Y,#80H
01D7 C2D5 123 CLR F0
01D9 753420 124 MOV COUNT2,#20H
A51 MACRO ASSEMBLER OCM4X8C 12/29/2007 13:47:28 PAGE 3
01DC 753310 125 LAT_DISP2: MOV COUNT1,#10H
01DF 12020D 126 LCALL WR_ZB
01E2 20D505 127 LAT_DISP3: JB F0,LAT_DISP32
01E5 853736 128 MOV LCD_DATA,LCD_DATA1
01E8 21ED 129 AJMP LAT_DISP31
01EA 853836 130 LAT_DISP32: MOV LCD_DATA,LCD_DATA2
01ED E536 131 LAT_DISP31: MOV A,LCD_DATA
01EF 120222 132 LCALL SEND_D
01F2 D533F8 133 DJNZ COUNT1,LAT_DISP31
01F5 0531 134 INC LCD_Y
01F7 B2D5 135 CPL F0
01F9 D534E0 136 DJNZ COUNT2,LAT_DISP2
01FC 753088 137 MOV LCD_X,#88H
01FF D535D2 138 DJNZ COUNT3,LAT_DISP1
139
0202 7436 140 MOV A,#36H
0204 120232 141 LCALL SEND_I
0207 7430 142 MOV A,#30H
0209 120232 143 LCALL SEND_I
020C 22 144 RET
145 ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
020D 7434 146 WR_ZB: MOV A,#34H
020F 120232 147 LCALL SEND_I
0212 E531 148 MOV A,LCD_Y
0214 120232 149 LCALL SEND_I
0217 E530 150 MOV A,LCD_X
0219 120232 151 LCALL SEND_I
021C 7430 152 MOV A,#30H
021E 120232 153 LCALL SEND_I
0221 22 154 RET
155 ;***********************************************
0222 120253 156 SEND_D: LCALL CHK_BUSY ;写数据子程序
0225 D2A5 157 SETB RS
0227 C2A4 158 CLR RW
0229 F580 159 MOV P0,A
022B D2A3 160 SETB E
022D 00 161 NOP
022E 00 162 NOP
022F C2A3 163 CLR E
0231 22 164 RET
165
0232 120253 166 SEND_I: LCALL CHK_BUSY ;写指令子程序
0235 C2A5 167 CLR RS
0237 C2A4 168 CLR RW
0239 F580 169 MOV P0,A
023B D2A3 170 SETB E
023D 00 171 NOP
023E 00 172 NOP
023F C2A3 173 CLR E
0241 22 174 RET
175
0242 120253 176 READ_D: LCALL CHK_BUSY ;读数据子程序
0245 D2A5 177 SETB RS
0247 D2A4 178 SETB RW
0249 D2A3 179 SETB E
024B 00 180 NOP
024C E580 181 MOV A,P0
024E C2A3 182 CLR E
0250 F539 183 MOV STORE,A
0252 22 184 RET
185
0253 7580FF 186 CHK_BUSY: MOV P0,#0FFH ;测忙碌子程序
0256 C2A5 187 CLR RS
0258 D2A4 188 SETB RW
025A D2A3 189 SETB E
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -