📄 sz617.lst
字号:
0226 417B 230 AJMP KEYRET
231
0228 232 HOURADD1: ; 小时加1
0228 B4090E 233 CJNE A,#9,MINADD1
022B AD33 234 MOV R5,HOURBUF
022D BD1705 235 CJNE R5,#23,HOURADD
0230 753300 236 MOV HOURBUF,#0
0233 417B 237 AJMP KEYRET
0235 238 HOURADD:
0235 0533 239 INC HOURBUF
0237 417B 240 AJMP KEYRET
241
0239 242 MINADD1: ; 分钟加1
0239 B40C0E 243 CJNE A,#0CH,HOUR1ADD1
023C AD32 244 MOV R5,MINUTEBUF
023E BD3B05 245 CJNE R5,#59,MINADD
0241 753200 246 MOV MINUTEBUF,#0
0244 417B 247 AJMP KEYRET
0246 248 MINADD:
0246 0532 249 INC MINUTEBUF
0248 417B 250 AJMP KEYRET
251
024A 252 HOUR1ADD1: ; 定时小时加1
024A B40F0F 253 CJNE A,#0FH,MIN1ADD1
024D AD37 254 MOV R5,HOURBUF1
024F BD1705 255 CJNE R5,#23,HOUR1ADD
0252 753700 256 MOV HOURBUF1,#0
A51 MACRO ASSEMBLER SZ617 06/18/2008 13:18:12 PAGE 5
0255 417B 257 AJMP KEYRET
0257 258 HOUR1ADD:
0257 0537 259 INC HOURBUF1
0259 02027B 260 LJMP KEYRET
261
025C 262 MIN1ADD1: ; 定时分钟加1
025C B4121C 263 CJNE A,#12H,KEYRET
025F AD36 264 MOV R5,MINUTEBUF1
0261 BD3B05 265 CJNE R5,#59,MIN1ADD
0264 753600 266 MOV MINUTEBUF1,#0
0267 417B 267 AJMP KEYRET
0269 268 MIN1ADD:
0269 0536 269 INC MINUTEBUF1
026B 417B 270 AJMP KEYRET
026D 271 IFKEY2UP: ; KEY2 是否松开
026D 30B70B 272 JNB KEY2,KEYRET
0270 120475 273 LCALL DELAY10US
0273 30B705 274 JNB KEY2,KEYRET
0276 120475 275 LCALL DELAY10US
0279 C2B3 276 CLR KEY2FLAG
027B 277 KEYRET:
027B 22 278 RET
279
280 ; **********************************************************************
281 ; ; 74LS164芯片工作原理子程序
282 ; **********************************************************************
027C 283 Send74LS164:
027C 7908 284 MOV R1,#8
027E 285 Send2LS164_Loop:
027E 33 286 RLC A
027F 92B0 287 MOV LS164_AB,C
0281 D2B1 288 SETB LS164_CLK
0283 C2B1 289 CLR LS164_CLK
0285 D9F7 290 DJNZ r1,Send2LS164_Loop
0287 22 291 RET
292
293 ; **********************************************************************
294 ; 显示缓冲更新子程序
295 ; **********************************************************************
0288 296 UPDATEDISPBUF:
0288 E531 297 MOV A, SECONDBUF
028A 75F00A 298 MOV B, #10
028D 84 299 DIV AB
028E 85F029 300 MOV DISPBUF+9, B
0291 F52A 301 MOV DISPBUF+0AH, A
302
0293 E532 303 MOV A, MINUTEBUF
0295 75F00A 304 MOV B, #10
0298 84 305 DIV AB
0299 85F021 306 MOV DISPBUF+1, B
029C F522 307 MOV DISPBUF+2, A
308
029E E533 309 MOV A, HOURBUF
02A0 75F00A 310 MOV B, #10
02A3 84 311 DIV AB
02A4 85F023 312 MOV DISPBUF+3, B
02A7 F524 313 MOV DISPBUF+4, A
314
02A9 E534 315 MOV A, MONTHBUF
02AB 75F00A 316 MOV B, #10
02AE 84 317 DIV AB
02AF 85F027 318 MOV DISPBUF+7, B
02B2 F528 319 MOV DISPBUF+8, A
320
02B4 E535 321 MOV A, DAYBUF
02B6 75F00A 322 MOV B, #10
A51 MACRO ASSEMBLER SZ617 06/18/2008 13:18:12 PAGE 6
02B9 84 323 DIV AB
02BA 85F025 324 MOV DISPBUF+5, B
02BD F526 325 MOV DISPBUF+6, A
326
327 ; 更新定时缓冲
02BF E537 328 MOV A, HOURBUF1
02C1 75F00A 329 MOV B, #10
02C4 84 330 DIV AB
02C5 85F051 331 MOV DISPBUF1+1, B
02C8 F552 332 MOV DISPBUF1+2, A
333
02CA E536 334 MOV A, MINUTEBUF1
02CC 75F00A 335 MOV B, #10
02CF 84 336 DIV AB
02D0 85F053 337 MOV DISPBUF1+3, B
02D3 F554 338 MOV DISPBUF1+4, A
339
02D5 22 340 RET
341
02D6 342 SELECT_LED1:;选通数码管1
02D6 C293 343 CLR LED1
02D8 D294 344 SETB LED2
02DA D296 345 SETB LED3
02DC D297 346 SETB LED4
02DE 22 347 RET
348
02DF 349 SELECT_LED2:;选通数码管2
02DF C294 350 CLR LED2
02E1 D293 351 SETB LED1
02E3 D296 352 SETB LED3
02E5 D297 353 SETB LED4
02E7 22 354 RET
355
02E8 356 SELECT_LED3:;选通数码管3
02E8 C296 357 CLR LED3
02EA D293 358 SETB LED1
02EC D294 359 SETB LED2
02EE D297 360 SETB LED4
02F0 22 361 RET
362
02F1 363 SELECT_LED4:;选通数码管4
02F1 C297 364 CLR LED4
02F3 D293 365 SETB LED1
02F5 D294 366 SETB LED2
02F7 D296 367 SETB LED3
02F9 22 368 RET
369
02FA 370 GET_LED234: ;查表数码管234
02FA 900485 371 MOV DPTR,#SAG_LED234
02FD E6 372 MOV A,@R0
02FE 93 373 MOVC A,@A+DPTR
02FF 22 374 RET
0300 375 GET_LED1: ;查表数码管1
0300 90047A 376 MOV DPTR,#SAG_LED1
0303 E6 377 MOV A,@R0
0304 93 378 MOVC A,@A+DPTR
0305 22 379 RET
380
381 ; **********************************************************************
382 ; 四位数码管显示子程序
383 ; DISPFLAG -- 显示选择标识
384 ; **********************************************************************
0306 385 DISP:
0306 7940 386 MOV R1,#DISPFLAG
0308 120288 387 LCALL UPDATEDISPBUF
388 ;显示 "时间"
A51 MACRO ASSEMBLER SZ617 06/18/2008 13:18:12 PAGE 7
030B B7003A 389 KF0: CJNE @R1,#0,KF1
390
030E 7821 391 MOV R0,#DISPBUF+1
0310 1202FA 392 LCALL GET_LED234
0313 12027C 393 LCALL Send74LS164
0316 1202F1 394 LCALL SELECT_LED4
0319 120467 395 LCALL DELAY10MS
396
031C 7822 397 MOV R0,#DISPBUF+2
031E 1202FA 398 LCALL GET_LED234
0321 12027C 399 LCALL Send74LS164
0324 1202E8 400 LCALL SELECT_LED3
0327 120467 401 LCALL DELAY10MS
402
032A 7823 403 MOV R0,#DISPBUF+3
032C 1202FA 404 LCALL GET_LED234
032F 12027C 405 LCALL Send74LS164
0332 1202DF 406 LCALL SELECT_LED2
0335 120467 407 LCALL DELAY10MS
408
0338 7824 409 MOV R0,#DISPBUF+4
033A 120300 410 LCALL GET_LED1
033D 12027C 411 LCALL Send74LS164
0340 1202D6 412 LCALL SELECT_LED1
0343 120467 413 LCALL DELAY10MS
0346 8166 414 AJMP KFRET
415 ;显示 "日期"
0348 B7013A 416 KF1: CJNE @R1,#1,KF2
417
034B 7825 418 MOV R0,#DISPBUF+5
034D 1202FA 419 LCALL GET_LED234
0350 12027C 420 LCALL Send74LS164
0353 1202F1 421 LCALL SELECT_LED4
0356 120467 422 LCALL DELAY10MS
423
0359 7826 424 MOV R0,#DISPBUF+6
035B 1202FA 425 LCALL GET_LED234
035E 12027C 426 LCALL Send74LS164
0361 1202E8 427 LCALL SELECT_LED3
0364 120467 428 LCALL DELAY10MS
429
0367 7827 430 MOV R0,#DISPBUF+7
0369 1202FA 431 LCALL GET_LED234
036C 12027C 432 LCALL Send74LS164
036F 1202DF 433 LCALL SELECT_LED2
0372 120467 434 LCALL DELAY10MS
435
0375 7828 436 MOV R0,#DISPBUF+8
0377 120300 437 LCALL GET_LED1
037A 12027C 438 LCALL Send74LS164
037D 1202D6 439 LCALL SELECT_LED1
0380 120467 440 LCALL DELAY10MS
0383 8166 441 AJMP KFRET
442 ;显示 "秒"
0385 B7021E 443 KF2: CJNE @R1,#2,KF3
444
0388 7829 445 MOV R0,#DISPBUF+9
038A 1202FA 446 LCALL GET_LED234
038D 12027C 447 LCALL Send74LS164
0390 1202F1 448 LCALL SELECT_LED4
0393 120467 449 LCALL DELAY10MS
450
0396 782A 451 MOV R0,#DISPBUF+0AH
0398 1202FA 452 LCALL GET_LED234
039B 12027C 453 LCALL Send74LS164
039E 1202E8 454 LCALL SELECT_LED3
A51 MACRO ASSEMBLER SZ617 06/18/2008 13:18:12 PAGE 8
03A1 120467 455 LCALL DELAY10MS
03A4 8166 456 AJMP KFRET
457 ;显示 "月"
03A6 B7031E 458 KF3: CJNE @R1,#3,KF6
459
03A9 7827 460 MOV R0,#DISPBUF+7
03AB 1202FA 461 LCALL GET_LED234
03AE 12027C 462 LCALL Send74LS164
03B1 1202DF 463 LCALL SELECT_LED2
03B4 120467 464 LCALL DELAY10MS
465
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -