📄 ic.lst
字号:
04F7 22 624 RET
04F8 753F0A 625 DEL10MS: MOV 3FH,#10
04FB 1204F0 626 LCALL DEL1MS
04FE D53FFA 627 DJNZ 3FH,$-3
0501 22 628 RET
629 ;*******************把内存30~37写入外存30H~37H****************
0502 630 WT:
0502 7830 631 MOV R0,#30H
0504 7930 632 MOV R1,#30H
0506 633 CUN1:
0506 8820 634 MOV POINTER,R0
0508 8939 635 MOV 39H,R1
050A 8721 636 MOV NUMB,@R1
050C 12042C 637 LCALL WR_1B
050F B90602 638 CJNE R1,#06H,W13
0512 8009 639 JMP W11
0514 640 W13:
0514 A939 641 MOV R1,39H
0516 08 642 INC R0
0517 09 643 INC R1
0518 B836EB 644 CJNE R0,#36H,CUN1
051B 8003 645 JMP W21
051D 646 W11:
051D 120569 647 LCALL WRONG
0520 648 W21:
649
0520 22 650 RET
651 ;****************把内存40~47写入外存50H~57H**********************
A51 MACRO ASSEMBLER IC 07/12/2008 15:19:28 PAGE 11
0521 652 WT1:
0521 7850 653 MOV R0,#50H
0523 7940 654 MOV R1,#40H
0525 655 RCUN1:
0525 8820 656 MOV POINTER,R0
0527 8959 657 MOV 59H,R1
0529 8721 658 MOV NUMB,@R1
052B 12042C 659 LCALL WR_1B
052E B90602 660 CJNE R1,#06H,RW13
0531 8009 661 JMP RW11
0533 662 RW13:
0533 A959 663 MOV R1,59H
0535 08 664 INC R0
0536 09 665 INC R1
0537 B856EB 666 CJNE R0,#56H,RCUN1
053A 8003 667 JMP RW21
053C 668 RW11:
053C 120569 669 LCALL WRONG
053F 670 RW21:
053F 22 671 RET
672 ;***************************60TO40****************************
0540 673 STS:
0540 7C05 674 MOV R4,#05H
0542 7960 675 MOV R1,#60H
0544 676 DD1:
0544 7700 677 MOV @R1,#00H
0546 09 678 INC R1
0547 DCFB 679 DJNZ R4,DD1
0549 120368 680 LCALL NUIN
054C 7E05 681 MOV R6,#05H
054E 7860 682 MOV R0,#60H
0550 7440 683 MOV A,#40H
0552 2F 684 ADD A,R7
0553 C3 685 CLR C
0554 9402 686 SUBB A,#2H
0556 F9 687 MOV R1,A
0557 F553 688 MOV 53H,A
0559 689 DD2:
0559 E6 690 MOV A,@R0
055A F7 691 MOV @R1,A
055B 08 692 INC R0
055C 19 693 DEC R1
055D DFFA 694 DJNZ R7,DD2
055F A953 695 MOV R1,53H
0561 09 696 INC R1
0562 697 DD3:
0562 7700 698 MOV @R1,#00H
0564 09 699 INC R1
700 ;MOV A,R1
0565 B946FA 701 CJNE R1,#46H,DD3
0568 22 702 RET
703 ;*****************************错卡显示********************
0569 704 WRONG:
0569 C2A7 705 CLR WELA
056B 758000 706 MOV P0,#00H
056E D2A7 707 SETB WELA
0570 C2A7 708 CLR WELA
0572 C2A6 709 CLR DULA
0574 758008 710 MOV P0,#08H ;全选中,显示下横线
0577 D2A6 711 SETB DULA
0579 C2A6 712 CLR DULA
057B 120738 713 LCALL DELAY2
057E 7B64 714 MOV R3,#100
0580 715 WRO:
0580 120738 716 LCALL DELAY2
0583 DBFB 717 DJNZ R3,WRO
A51 MACRO ASSEMBLER IC 07/12/2008 15:19:28 PAGE 12
0585 22 718 RET
719 ;********************把外存30~37读入内存30H~37H*********************
0586 720 RT:
0586 7830 721 MOV R0,#30H
0588 7930 722 MOV R1,#30H
058A 723 QU1:
058A 8820 724 MOV POINTER,R0
058C 8939 725 MOV 39H,R1
058E 12044F 726 LCALL RD_1B
0591 EF 727 MOV A,R7
0592 A939 728 MOV R1,39H
0594 F7 729 MOV @R1,A
0595 08 730 INC R0
0596 09 731 INC R1
0597 B836F0 732 CJNE R0,#36H,QU1
059A 8003 733 JMP RT21
059C 734 RT11:
059C 120569 735 LCALL WRONG
059F 736 RT21:
059F 22 737 RET
738 ;***************************显示余额*********************
05A0 739 SHOWSUR:
05A0 740 SH0:
05A0 7F07 741 MOV R7,#07H
05A2 120730 742 LCALL KSTART ;有任意键按下则返回
05A5 7035 743 JNZ SHEND
05A7 7571FE 744 MOV 71H,#0FEH ;初始化,此时选中最左边的数码管
05AA 745 SH1:
05AA 7935 746 MOV R1,#35H ;循环显示的起始位置,数据的最高位
05AC 747 SH3:
05AC DF04 748 DJNZ R7,SH2 ;一轮是否显示完
05AE 7F07 749 MOV R7,#07h ;显示完毕则重给R2赋原值
05B0 80EE 750 JMP SH0
05B2 751 SH2:
05B2 E7 752 MOV A,@R1 ;显示的数字放入A中
05B3 1203E0 753 LCALL K2N
05B6 C2A6 754 CLR DULA
05B8 758000 755 MOV P0,#00H
05BB D2A6 756 SETB DULA
05BD C2A6 757 CLR DULA
05BF C2A7 758 CLR WELA
05C1 857180 759 MOV P0,71H
05C4 D2A7 760 SETB WELA
05C6 C2A7 761 CLR WELA
05C8 C2A6 762 CLR DULA
05CA 857280 763 MOV P0,72H ;全灭,选中71H位,显示72H内容
05CD D2A6 764 SETB DULA
05CF C2A6 765 CLR DULA
05D1 120738 766 LCALL DELAY2
05D4 E571 767 MOV A,71H
05D6 23 768 RL A
05D7 F571 769 MOV 71H,A
05D9 19 770 DEC R1
05DA 80D0 771 JMP SH3
05DC 772 SHEND:
05DC 22 773 RET
774 ;*****************把外存50~57写入内存40H~47H*************************
05DD 775 RRT1:
05DD 7850 776 MOV R0,#50H
05DF 7940 777 MOV R1,#40H
05E1 778 RQU1:
05E1 8820 779 MOV POINTER,R0
05E3 8959 780 MOV 59H,R1
05E5 12044F 781 LCALL RD_1B
05E8 EF 782 MOV A,R7
05E9 A959 783 MOV R1,59H
A51 MACRO ASSEMBLER IC 07/12/2008 15:19:28 PAGE 13
05EB F7 784 MOV @R1,A
05EC 08 785 INC R0
05ED 09 786 INC R1
05EE B856F0 787 CJNE R0,#56H,RQU1
05F1 8003 788 JMP RRT21
05F3 789 RRT11:
05F3 120569 790 LCALL WRONG
05F6 791 RRT21:
05F6 22 792 RET
793 ;***************************显示上一次的操作数*********************
05F7 794 SHOWDO:
05F7 795 DO0:
05F7 7F07 796 MOV R7,#07H
05F9 120730 797 LCALL KSTART ;有任意键按下则返回
05FC 7035 798 JNZ DOEND
05FE 7571FE 799 MOV 71H,#0FEH ;初始化,此时选中最左边的数码管
0601 800 DO1:
0601 7945 801 MOV R1,#45H ;循环显示的起始位置,数据的最高位
0603 802 DO3:
0603 DF04 803 DJNZ R7,DO2 ;一轮是否显示完
0605 7F07 804 MOV R7,#07h ;显示完毕则重给R2赋原值
0607 80EE 805 JMP DO0
0609 806 DO2:
0609 E7 807 MOV A,@R1 ;显示的数字放入A中
060A 1203E0 808 LCALL K2N
060D C2A6 809 CLR DULA
060F 758000 810 MOV P0,#00H
0612 D2A6 811 SETB DULA
0614 C2A6 812 CLR DULA
0616 C2A7 813 CLR WELA
0618 857180 814 MOV P0,71H
061B D2A7 815 SETB WELA
061D C2A7 816 CLR WELA
061F C2A6 817 CLR DULA
0621 857280 818 MOV P0,72H ;全灭,选中71H位,显示72H内容
0624 D2A6 819 SETB DULA
0626 C2A6 820 CLR DULA
0628 120738 821 LCALL DELAY2
062B E571 822 MOV A,71H
062D 23 823 RL A
062E F571 824 MOV 71H,A
0630 19 825 DEC R1
0631 80D0 826 JMP DO3
0633 827 DOEND:
0633 22 828 RET
829 ;********************选择功能键的时候进行显示************************
0634 830 SELSHOW: ;因为按键的问题,本来应该1对应1,现在改为4对应1
0634 B40C2A 831 CJNE A,#0CH,SHOW2
832 ;按下的是4,选择的是功能1,显示的也是1,按键依次判断,不是的就
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -