📄 液晶timeend555555.lst
字号:
0434 B55C07 455 CJNE A,DAY,AD7
0437 755C00 456 MOV DAY,#0
043A 914C 457 ACALL ADMON
043C 8140 458 AJMP OUT6
043E 055C 459 AD7: INC DAY
0440 E55C 460 OUT6: MOV A,DAY
0442 75F00A 461 MOV B,#10
0445 84 462 DIV AB
0446 F553 463 MOV DAY1,A
0448 85F054 464 MOV DAY2,B
044B 22 465 RET
466
044C E55D 467 ADMON: MOV A,MON
044E B40C07 468 CJNE A ,#12,AD8
0451 755D00 469 MOV MON,#0
0454 9166 470 ACALL ADYEAR
0456 815A 471 AJMP OUT7
0458 055D 472 AD8: INC MON
045A E55D 473 OUT7: MOV A,MON
045C 75F00A 474 MOV B,#10
045F 84 475 DIV AB
0460 F551 476 MOV MON1,A
0462 85F052 477 MOV MON2,B
0465 22 478 RET
479
0466 E550 480 ADYEAR: MOV A,YEAR
0468 B40905 481 CJNE A,#9,AD9
046B 755007 482 MOV YEAR ,#7
046E 8172 483 AJMP OUT8
0470 0550 484 AD9: INC YEAR
0472 22 485 OUT8: RET
486
0473 E550 487 RUNNIAN: MOV A,YEAR
0475 B4080C 488 CJNE A,#8,RUN
0478 E55C 489 MOV A,DAY
047A B41D13 490 CJNE A,#29,AD10
047D 755C00 491 MOV DAY,#0
0480 914C 492 ACALL ADMON
0482 8192 493 AJMP OUT9
0484 E55C 494 RUN: MOV A,DAY
0486 B41C07 495 CJNE A,#28,AD10
0489 755C00 496 MOV DAY,#0
048C 914C 497 ACALL ADMON
048E 8192 498 AJMP OUT9
0490 055C 499 AD10: INC DAY
0492 22 500 OUT9: RET
501
502
503
504
505
506
507
508
509
510
0493 1F1C1F1E 511 TABLE1:DB 31,28,31,30,31,30,31,31,30,31,30,31
0497 1F1E1F1F
049B 1E1F1E1F
049F 32303037 512 TABLE2:DB 32H,30H,30H,37H,00H," ",32H,01H,32H,38H,02H," "
04A3 00203201
A51 MACRO ASSEMBLER 液綺TIMEEND555555 09/23/2007 15:17:42 PAGE 9
04A7 32380220
04AB 20202020
04AF 20203A20 513 TABLE3:DB " : : . C"
04B3 203A2020
04B7 20202020
04BB 2E202043
04BF 83858688 514 TABLE4:DB 83H,85H,86H,88H,89H,0C0H,0C1H,0C3H,0C4H,0C6H,0C7H
04C3 89C0C1C3
04C7 C4C6C7
04CA 838689C1 515 TABLE5:DB 83H,86H,89H,0C1H,0C4H
04CE C4
516
517 ;------------------------------------------------------------------------------------------
--------------------
518
04CF C0E0 519 INT_X1: PUSH ACC
04D1 C0D0 520 PUSH PSW
04D3 43D018 521 ORL PSW,#18H ;取3#区寄存器
04D6 C28E 522 CLR TR1 ;T1停止计数
04D8 AA8D 523 MOV R2,TH1 ;取T1计数次数
04DA AB8B 524 MOV R3,TL1
04DC 7C03 525 MOV R4,#03H ;0320H~0400H为数据窗口0
04DE 7D80 526 MOV R5,#80H ;窗口0的下限
04E0 120593 527 LCALL SUB0 ;计数值小于320H吗?
04E3 4040 528 JC X0_OUT ;<320H,作废
04E5 7C04 529 MOV R4,#04H ;窗口0的上限
04E7 7DB0 530 MOV R5,#0B0H
04E9 AA8D 531 MOV R2,TH1 ;取T1计数次数
04EB AB8B 532 MOV R3,TL1
04ED 120593 533 LCALL SUB0 ;计数值大于400H吗?
04F0 5004 534 JNC X0_01 ;>400,去看是否在1的窗口
04F2 C3 535 CLR C ;在窗口0中,清C,移位时移入0
04F3 020511 536 LJMP X0_02 ;去移位处理
04F6 7C07 537 X0_01: MOV R4,#07H ;窗口1的下限
04F8 7DB0 538 MOV R5,#0B0H ;0720H~0800H为窗口1
04FA AA8D 539 MOV R2,TH1 ;取T1计数次数
04FC AB8B 540 MOV R3,TL1
04FE 120593 541 LCALL SUB0 ;计数值小于720H吗?
0501 4022 542 JC X0_OUT ;<0720,作废
0503 7C09 543 MOV R4,#09H ;窗口1的上限
0505 7D40 544 MOV R5,#40H ;#0800
0507 AA8D 545 MOV R2,TH1 ;取T1计数次数
0509 AB8B 546 MOV R3,TL1
050B 120593 547 LCALL SUB0 ;计数值大于#800H吗?
050E 5015 548 JNC X0_OUT ;>800H,作废
0510 D3 549 SETB C ;在窗口1中,将C置1
0511 E540 550 X0_02: MOV A,U0_x1 ;临时存放单元送A
0513 33 551 RLC A ;左移,0或1进入D0
0514 F540 552 MOV U0_x1,A ;新输入的一位数据移入U0_X1单元(40H)
0516 D5260C 553 DJNZ Ch_num,X0_OUT ;不到8位转走
0519 752608 554 MOV Ch_num,#08H ;下一个数据还是8位
051C A640 555 MOV @R0,U0_x1 ;数据存入@R0===============================================
051E 08 556 INC R0 ;下一个数据存入下一字节
051F D52503 557 DJNZ Da_num,X0_OUT ;不够6个数中断返回
0522 020534 558 LJMP X0_10 ;已存满6个数,转去处理
559
0525 758D00 560 X0_OUT: MOV TH1,#00H ;送T1时间常数
0528 758B00 561 MOV TL1,#00H
052B D28E 562 SETB TR1 ;启动T1
052D D0D0 563 POP PSW
052F D0E0 564 POP ACC
0531 D2AF 565 SETB EA ;开中断,中断返回
0533 32 566 RETI
567
568 ;以下为数据处理程序
569
A51 MACRO ASSEMBLER 液綺TIMEEND555555 09/23/2007 15:17:42 PAGE 10
0534 752710 570 X0_10: MOV Mo_num,#10H ;最多移位10H次
0537 E52A 571 MOV A,X1_n1 ;第一个字节送A
0539 B4E20C 572 X0_11: CJNE A,#0E2H,X0_12 ;E2H为识别码,(A)不等于#E2H转去移位
053C E52C 573 MOV A,X1_n3 ;(A)=#E2H,第三个字节也等于#E2H吗
053E B4E207 574 X0_13: CJNE A,#0E2H,X0_12 ;不等,转去移位
0541 E52D 575 MOV A,X1_n4 ;等,再看第二个字节和第四个字节相等吗?
0543 B52B02 576 CJNE A,X1_n2,X0_12 ;不等,转去移位
0546 802F 577 SJMP X0_16 ;识别码,数据全部正确
0548 C3 578 X0_12: CLR C ;以下为六个字节依次移位
0549 E52F 579 MOV A,X1_n6
054B 33 580 RLC A
054C F52F 581 MOV X1_n6,A
054E E52E 582 MOV A,X1_n5
0550 33 583 RLC A
0551 F52E 584 MOV X1_n5,A
0553 E52D 585 MOV A,X1_n4
0555 33 586 RLC A
0556 F52D 587 MOV X1_n4,A
0558 E52C 588 MOV A,X1_n3
055A 33 589 RLC A
055B F52C 590 MOV X1_n3,A
055D E52B 591 MOV A,X1_n2
055F 33 592 RLC A
0560 F52B 593 MOV X1_n2,A
0562 E52A 594 MOV A,X1_n1
0564 33 595 RLC A
0565 F52A 596 MOV X1_n1,A ;移完
0567 D527CF 597 DJNZ Mo_num,X0_11 ;没移够10H次再去判断
056A E52C 598 X0_14: MOV A,X1_n3 ;已移够10H次,再判断一次
056C B52A1C 599 CJNE A,X1_n1,X0_15 ;(2AH)不等于(2CH)或不等于#E2H,数据作废
056F B4E219 600 CJNE A,#0E2H,X0_15
0572 E52B 601 MOV A,X1_n2 ;(2AH)=(2CH)=#E2H,再看(2BH)=(2DH)吗
0574 B52D14 602 CJNE A,X1_n4,X0_15 ;不等,转走
0577 852A1F 603 X0_16: MOV N0_shb,X1_n1 ;识别码送N0_shb
057A 852B1E 604 MOV N0_jzh,X1_n2 ;数据送N0_jzh
057D 12059F 605 LCALL DEL10MS
0580 752608 606 X0_17: MOV Ch_num,#08H ;准备接收下一个数据,一个字节8位
0583 782A 607 MOV R0,#2AH ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!下一个数据首地址
0585 752506 608 MOV Da_num,#06H ;6个字节
0588 020525 609 LJMP X0_OUT ;转走
058B 751EFF 610 X0_15: MOV N0_jzh,#0FFH ;数据单元送#FFH
058E 751F00 611 MOV N0_shb,#00H ;识别存储单元送#00
0591 80ED 612 SJMP X0_17 ;去准备接收下一个数据
613
0593 C2D7 614 SUB0: CLR CY ;减法子程序
0595 EB 615 MOV A,R3 ;被减数低位送A
0596 9D 616 SUBB A,R5 ;低位减
0597 5001 617 JNC X0_S1 ;没进位,去处理高位减法
0599 1A 618 DEC R2 ;有进位,被减数高位减1
059A C2D7 619 X0_S1: CLR CY ;清C
059C EA 620 MOV A,R2 ;被减数高位
059D 9C 621 SUBB A,R4 ;减被减数高位
059E 22 622 RET ;返回
059F 7A0A 623 DEL10MS: MOV R2,#0AH ;延时子程序
05A1 7BFF 624 DEL_01: MOV R3,#0FFH
05A3 00 625 DEL_02: NOP
05A4 00 626 NOP
05A5 DBFC 627 DJNZ R3,DEL_02
05A7 DAF8 628 DJNZ R2,DEL_01
05A9 22 629 RET
630
05AA 7AFF 631 DEL500US: MOV R2,#0FFH ;延时子程序
05AC DAFE 632 DEL_03: DJNZ R2,DEL_03
05AE 22 633 RET
634
635 ;------------------------------------------------------------------------------------------
A51 MACRO ASSEMBLER 液綺TIMEEND555555 09/23/2007 15:17:42 PAGE 11
-----------------
636 ;==========================================================================================
=================
05AF 754200 637 CHANGETIME: MOV JHM,#0
05B2 7543FF 638 MOV TIMER1,#0FFH
05B5 754150 639 MOV N0_JZH1,#50H
05B8 120608 640 LCALL JZH_SEE
05BB BF112B 641 CJNE R7,#11H,CHANGEOUT
05BE C28C 642 CLR TR0
05C0 1205EA 643 LCALL JHUO
05C3 120620 644 LCALL JZH_STOP0
05C6 1205EA 645 CHANGE0: LCALL JHUO
05C9 120648 646 LCALL JZH_44H
05CC 12076F 647 LCALL JZH_54H
05CF 120876 648 LCALL JZH_C4H
05D2 120892 649 LCALL JZH_D4H
05D5 754150 650 MOV N0_JZH1,#50H
05D8 120608 651 LCALL JZH_SEE
05DB BF11E8 652 CJNE R7,#11H,CHANGE0
05DE D28C 653 SETB TR0
05E0 120620 654 LCALL JZH_STOP0
05E3 755900 655 MOV SEC1,#0
05E6 755A00 656 MOV SEC2,#0
05E9 22 657 CHANGEOUT: RET
658
659
05EA 12028A 660 JHUO: LCALL JUDGE
05ED D54306 661 DJNZ TIMER1,JHUO1
05F0 7543FF 662 MOV TIMER1,#0FFH
05F3 120172 663 LCALL DISPTIME
05F6 75A00E 664 JHUO1: MOV P2,#0EH
05F9 12027F 665 LCALL ENABLE
05FC 9004CA 666 MOV DPTR ,#TABLE5
05FF E542 667 MOV A,JHM
0601 93 668 MOVC A,@A+DPTR
0602 F5A0 669 MOV P2,A
0604 12027F 670 LCALL ENABLE
0607 22 671 RET
672
0608 E51E 673 JZH_SEE: MOV A,N0_jzh
060A B54110 674 CJNE A,N0_JZH1,JZH_SEENO
060D 1205AA 675 LCALL DEL500US
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -