📄 24cxx.lst
字号:
026D 12029E 163 LCALL WRITE_CMD
0270 E51F 164 MOV A,READ_DATA
0272 54F0 165 ANL A,#0F0H
0274 C4 166 SWAP A
0275 B40A00 167 CJNE A,#0AH,DPEEPMO_1
0278 5006 168 DPEEPMO_1: JNC DPEEPMO_2
027A 2430 169 ADD A,#30H
027C F531 170 MOV DAT_BYTE,A
027E 4184 171 AJMP DPEEPMO_3
0280 2437 172 DPEEPMO_2: ADD A,#37H
0282 F531 173 MOV DAT_BYTE,A
0284 1202B0 174 DPEEPMO_3: LCALL WRITE_DAT
175
0287 E51F 176 MOV A,READ_DATA
0289 540F 177 ANL A,#0FH
028B B40A00 178 CJNE A,#0AH,DPEEPMO_4
028E 5006 179 DPEEPMO_4: JNC DPEEPMO_5
0290 2430 180 ADD A,#30H
0292 F531 181 MOV DAT_BYTE,A
0294 8004 182 SJMP DPEEPMO_6
0296 2437 183 DPEEPMO_5: ADD A,#37H
0298 F531 184 MOV DAT_BYTE,A
A51 MACRO ASSEMBLER 24CXX 11/13/2005 20:06:13 PAGE 4
029A 1202B0 185 DPEEPMO_6: LCALL WRITE_DAT
029D 22 186 RET
187
188 ;LCD1602要用到的一些子程序
189 ;写命令(入口参数CMD_BYTE)
029E C2B7 190 WRITE_CMD: CLR RS
02A0 C2B6 191 CLR RW
02A2 E530 192 MOV A,CMD_BYTE
02A4 F580 193 MOV LCDPORT,A
02A6 D2B5 194 SETB E
02A8 00 195 NOP
02A9 00 196 NOP
02AA C2B5 197 CLR E
02AC 1202ED 198 LCALL DELAY0
02AF 22 199 RET
200
201 ;写显示数据(入口参数DAT_BYTE)
02B0 D2B7 202 WRITE_DAT: SETB RS
02B2 C2B6 203 CLR RW
02B4 E531 204 MOV A,DAT_BYTE
02B6 F580 205 MOV LCDPORT,A
02B8 D2B5 206 SETB E
02BA 00 207 NOP
02BB 00 208 NOP
02BC C2B5 209 CLR E
02BE 1202ED 210 LCALL DELAY0
02C1 22 211 RET
212
213 ;LCD显示初始化
02C2 753030 214 INITLCD: MOV CMD_BYTE,#30H
02C5 12029E 215 LCALL WRITE_CMD
02C8 753030 216 MOV CMD_BYTE,#30H
02CB 12029E 217 LCALL WRITE_CMD
02CE 753030 218 MOV CMD_BYTE,#30H
02D1 12029E 219 LCALL WRITE_CMD
02D4 753038 220 MOV CMD_BYTE,#38H ;设定工作方式
02D7 12029E 221 LCALL WRITE_CMD
02DA 75300C 222 MOV CMD_BYTE,#0CH ;显示状态设置
02DD 12029E 223 LCALL WRITE_CMD
02E0 753001 224 MOV CMD_BYTE,#01H ;清屏
02E3 12029E 225 LCALL WRITE_CMD
02E6 753006 226 MOV CMD_BYTE,#06H ;输入方式设置
02E9 12029E 227 LCALL WRITE_CMD
02EC 22 228 RET
229 ;延时子程序
02ED 7DA0 230 DELAY0: MOV R5,#0A0H
02EF 00 231 DELAY1: NOP
02F0 DDFD 232 DJNZ R5,DELAY1
02F2 22 233 RET
234
235 ;延时子程序
02F3 E51B 236 DELAY: MOV A,DELAYCOUNT
02F5 600C 237 JZ DELAY_RE
02F7 151B 238 DEC DELAYCOUNT
02F9 7FC8 239 MOV R7,#0C8H
02FB 00 240 DELAY_1: NOP
02FC 00 241 NOP
02FD 00 242 NOP
02FE DFFB 243 DJNZ R7,DELAY_1
0300 0202F3 244 LJMP DELAY
0303 22 245 DELAY_RE: RET
246 ;---------------读写8563要用到的子程序----------------
247 ;写8563(ADDRELO,WRITE_DATA)
0304 1203AF 248 WRITE_8563: LCALL STARTI2C
0307 200023 249 JB ERRFLAG,WRITE_8_RE
030A 74A2 250 MOV A,#0A2H
A51 MACRO ASSEMBLER 24CXX 11/13/2005 20:06:13 PAGE 5
030C 120378 251 LCALL SHOUT_DATA
030F 200012 252 JB ERRFLAG,WRITE_8_STOP
0312 E51D 253 MOV A,ADDRELO
0314 120378 254 LCALL SHOUT_DATA
0317 20000A 255 JB ERRFLAG,WRITE_8_STOP
031A E51E 256 MOV A,WRITE_DATA
031C 120378 257 LCALL SHOUT_DATA
031F 200002 258 JB ERRFLAG,WRITE_8_STOP
0322 C200 259 CLR ERRFLAG
0324 1203CB 260 WRITE_8_STOP: LCALL STOPI2C
0327 751B0A 261 MOV DELAYCOUNT,#0AH
032A 1202F3 262 LCALL DELAY
032D 22 263 WRITE_8_RE: RET
264
265 ;读8563(ADDRELO,出口为READ_DATA
032E 1203AF 266 READ_8563: LCALL STARTI2C
0331 200019 267 JB ERRFLAG,READ_8_RE
0334 74A2 268 MOV A,#0A2H
0336 120378 269 LCALL SHOUT_DATA
0339 20000E 270 JB ERRFLAG,READ_8_STOP
033C E51D 271 MOV A,ADDRELO
033E 120378 272 LCALL SHOUT_DATA
0341 200006 273 JB ERRFLAG,READ_8_STOP
0344 12034E 274 LCALL READ_8_CUR
0347 02034D 275 LJMP READ_8_RE
034A 1203CB 276 READ_8_STOP: LCALL STOPI2C
034D 22 277 READ_8_RE: RET
278
034E 1203AF 279 READ_8_CUR: LCALL STARTI2C
0351 200013 280 JB ERRFLAG,RE_8_CUR_RE
0354 74A3 281 MOV A,#0A3H
0356 120378 282 LCALL SHOUT_DATA
0359 200008 283 JB ERRFLAG,RE_8_CUR_ST
035C 120399 284 LCALL SHIN_DATA
035F 1203E5 285 LCALL NAK
0362 C200 286 CLR ERRFLAG
0364 1203CB 287 RE_8_CUR_ST: LCALL STOPI2C
0367 22 288 RE_8_CUR_RE: RET
289
290 ;****读出的内容依次为“秒,分钟,小时,日,星期,月/世纪,年********************
0368 1203AF 291 GET8583: LCALL STARTI2C
036B 292 JB ERRFLAG,GET_8_RE
*** _________________________________________________________^
*** ERROR #A45 IN 292 (D:\实验板\实验例程\8583读写\ASM\24CXX.ASM, LINE 292): UNDEFINED SYMBOL (PASS-2)
036E 74A2 293 MOV A,#0A2H
0370 120378 294 LCALL SHOUT_DATA
0373 295 JB ERRFLAG,GET_8_STOP
*** _________________________________________________________^
*** ERROR #A45 IN 295 (D:\实验板\实验例程\8583读写\ASM\24CXX.ASM, LINE 295): UNDEFINED SYMBOL (PASS-2)
0376 7402 296 MOV A,#02H
0378 297 LCALL
*** _________________________________________^
*** ERROR #A38 IN 297 (D:\实验板\实验例程\8583读写\ASM\24CXX.ASM, LINE 297): NUMBER OF OPERANDS DOES NOT MATCH INSTRUCTI
ON
298
299
300
0378 7E08 301 SHOUT_DATA: MOV R6,#08H
037A 33 302 SHOUT_DATA1: RLC A
037B 92A7 303 MOV SDA,C
037D 00 304 NOP
037E D2A6 305 SETB SCK
0380 00 306 NOP
0381 00 307 NOP
0382 00 308 NOP
0383 00 309 NOP
A51 MACRO ASSEMBLER 24CXX 11/13/2005 20:06:13 PAGE 6
0384 C2A6 310 CLR SCK
0386 DEF2 311 DJNZ R6,SHOUT_DATA1
0388 D2A7 312 SETB SDA
038A 00 313 NOP
038B 00 314 NOP
038C D2A6 315 SETB SCK
038E 00 316 NOP
038F 00 317 NOP
0390 00 318 NOP
0391 00 319 NOP
0392 A2A7 320 MOV C,SDA
0394 9200 321 MOV ERRFLAG,C
0396 C2A6 322 CLR SCK
0398 22 323 RET
324
325
0399 D2A7 326 SHIN_DATA: SETB SDA
039B 7E08 327 MOV R6,#08H
039D 00 328 SHIN_DATA1: NOP
039E 00 329 NOP
039F 00 330 NOP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -