📄 1
字号:
02C9 D0E0 362 POP ACC
02CB 32 363 RETI
364 ;
02CC 200108 365 GFLASH5: JB 01H,GFLASH6 ;调小时闪
02CF 75720F 366 MOV 72H,#0FH
02D2 75730F 367 MOV 73H,#0FH
02D5 41C4 368 AJMP GFLASHOUT
02D7 75750F 369 GFLASH6: MOV 75H,#0FH ;调分钟闪
02DA 75760F 370 MOV 76H,#0FH
02DD 41C4 371 AJMP GFLASHOUT
372 ;
373 ;*******************加一程序***************;
374 ;
02DF EF 375 ADD1: MOV A,R7
02E0 2401 376 ADD A,#01H
02E2 D4 377 DA A
02E3 22 378 RET
379 ;
380 ;*****************分离程序**********************;
381 ;
02E4 E8 382 DIVIDE: MOV A,R0
02E5 540F 383 ANL A,#0FH
02E7 F9 384 MOV R1,A
02E8 E8 385 MOV A,R0
02E9 C4 386 SWAP A
A51 MACRO ASSEMBLER 1302_12232F 08/17/2005 07:55:12 PAGE 7
02EA 540F 387 ANL A,#0FH
02EC FA 388 MOV R2,A
02ED 22 389 RET
390 ;
391 ;****************写1302程序****************;
392 ;
02EE C290 393 WRITE: CLR SCLK
02F0 00 394 NOP
02F1 D292 395 SETB RST
02F3 00 396 NOP
02F4 E532 397 MOV A,DS1302_ADDR
02F6 7C08 398 MOV R4,#8
02F8 13 399 WRITE1: RRC A ;送地址给1302
02F9 00 400 NOP
02FA 00 401 NOP
02FB C290 402 CLR SCLK
02FD 00 403 NOP
02FE 00 404 NOP
02FF 00 405 NOP
0300 9291 406 MOV IO,C
0302 00 407 NOP
0303 00 408 NOP
0304 00 409 NOP
0305 D290 410 SETB SCLK
0307 00 411 NOP
0308 00 412 NOP
0309 DCED 413 DJNZ R4,WRITE1
030B C290 414 CLR SCLK
030D 00 415 NOP
030E E531 416 MOV A,DS1302_DATA
0310 7C08 417 MOV R4,#8
0312 13 418 WRITE2: RRC A
0313 00 419 NOP ;送数据给1302
0314 C290 420 CLR SCLK
0316 00 421 NOP
0317 00 422 NOP
0318 9291 423 MOV IO,C
031A 00 424 NOP
031B 00 425 NOP
031C 00 426 NOP
031D D290 427 SETB SCLK
031F 00 428 NOP
0320 00 429 NOP
0321 DCEF 430 DJNZ R4,WRITE2
0323 C292 431 CLR RST
0325 22 432 RET
433 ;
434 ;******************读1302程序********************;
435 ;
0326 C290 436 READ: CLR SCLK
0328 00 437 NOP
0329 00 438 NOP
032A D292 439 SETB RST
032C 00 440 NOP
032D E532 441 MOV A,DS1302_ADDR
032F 7C08 442 MOV R4,#8
0331 13 443 READ1: RRC A ;送地址给1302
0332 00 444 NOP
0333 9291 445 MOV IO,C
0335 00 446 NOP
0336 00 447 NOP
0337 00 448 NOP
0338 D290 449 SETB SCLK
033A 00 450 NOP
033B 00 451 NOP
033C 00 452 NOP
A51 MACRO ASSEMBLER 1302_12232F 08/17/2005 07:55:12 PAGE 8
033D C290 453 CLR SCLK
033F 00 454 NOP
0340 00 455 NOP
0341 DCEE 456 DJNZ R4,READ1
457
0343 7C08 458 MOV R4,#8
0345 C290 459 READ2: CLR SCLK
0347 00 460 NOP ;从1302中读出数据
0348 00 461 NOP
0349 00 462 NOP
034A A291 463 MOV C,IO
034C 00 464 NOP
034D 00 465 NOP
034E 00 466 NOP
034F 00 467 NOP
0350 00 468 NOP
0351 13 469 RRC A
0352 00 470 NOP
0353 00 471 NOP
0354 00 472 NOP
0355 00 473 NOP
0356 D290 474 SETB SCLK
0358 00 475 NOP
0359 DCEA 476 DJNZ R4,READ2
035B F531 477 MOV DS1302_DATA,A
035D C292 478 CLR RST
035F 22 479 RET
480 ;
481 ;
482 ;******************时间显示子程序*******************
0360 7480 483 TIME: MOV A,#80H ;第一行左第一个字开始
0362 1203DC 484 LCALL WRITE_COM
0365 9004C4 485 MOV DPTR,#CHINESE2 ;16*16点阵“时间”
0368 120479 486 LCALL WRITE_HZ2
487 ;
036B 488 TIMEUP:
036B 7482 489 MOV A,#82H ;第一行左第5个字开始
036D 1203DC 490 LCALL WRITE_COM
0370 7970 491 MOV R1,#70H ;将70-79H时间数据查出字码写入LCD
0372 90048A 492 MOV DPTR,#TABLE1
0375 7A0A 493 MOV R2,#0AH ; 查10次
0377 7400 494 MOV A,#00H
0379 E7 495 MOVCLOP:MOV A,@R1 ;
037A 93 496 MOVC A,@A+DPTR
037B 120415 497 LCALL WRITE_DAT
037E 09 498 INC R1
037F DAF8 499 DJNZ R2,MOVCLOP ;
0381 22 500 RET
501 ;
502 ;***************开机显示画面***********************
0382 7480 503 LOGON: MOV A,#80H ;第一行左第一个字开始
0384 1203DC 504 LCALL WRITE_COM
0387 9004A4 505 MOV DPTR,#CHINESE ;WORD 16*16点阵TEST
038A 120468 506 LCALL WRITE_HZ
038D 7490 507 MOV A,#90H ;第二行左第一个字开始
038F 1203DC 508 LCALL WRITE_COM
0392 9004B4 509 MOV DPTR,#CHINESE1 ;WORD 16*16点阵TEST
0395 120468 510 LCALL WRITE_HZ
0398 C294 511 CLR LAMPBLAK ;开背光灯
039A 120460 512 LCALL DELAY5S ;显示5秒
039D D294 513 SETB LAMPBLAK ;关背光灯
039F 22 514 RET
515 ;**********初始化程序*************
03A0 120457 516 SETUP: LCALL DELAY
03A3 120457 517 LCALL DELAY
03A6 120457 518 LCALL DELAY
A51 MACRO ASSEMBLER 1302_12232F 08/17/2005 07:55:12 PAGE 9
03A9 120457 519 LCALL DELAY
03AC 7401 520 MOV A,#01H ;CLEAR DISPLAY
03AE 1203DC 521 LCALL WRITE_COM
03B1 7430 522 MOV A,#00110000B ;FUNCTION SETTING
03B3 1203DC 523 LCALL WRITE_COM
03B6 7402 524 MOV A,#00000010B ;DDRAM SET TO '00H'
03B8 1203DC 525 LCALL WRITE_COM
03BB 7404 526 MOV A,#00000100B ;
03BD 1203DC 527 LCALL WRITE_COM
03C0 740C 528 MOV A,#00001100B ;DISPLAY ON
03C2 1203DC 529 LCALL WRITE_COM
03C5 7401 530 MOV A,#00000001B ;CLEARING SCREEN
03C7 1203DC 531 LCALL WRITE_COM
03CA 7480 532 MOV A,#10000000B ;SET DDRAM ADDRESS
03CC 1203DC 533 LCALL WRITE_COM
03CF 120457 534 LCALL DELAY
03D2 120457 535 LCALL DELAY
03D5 120457 536 LCALL DELAY
03D8 120457 537 LCALL DELAY
03DB 22 538 RET
539 ;************串行命令写入子程序****************
540 ;写入命令字在A中
03DC 541 WRITE_COM:
03DC 12044E 542 LCALL DELAY1 ;
03DF D295 543 SETB CS
03E1 C0E0 544 PUSH ACC
03E3 7808 545 MOV R0,#8
03E5 74F8 546 MOV A,#11111000B
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -