📄 main.lst
字号:
032D E500 F 691 MOV A,TOTALM
032F C4 692 SWAP A
0330 540F 693 ANL A,#0FH
0332 FA 694 MOV R2,A
0333 E500 F 695 MOV A,TOTALH
0335 C4 696 SWAP A
0336 4A 697 ORL A,R2
0337 FA 698 MOV R2,A
0338 F500 F 699 MOV VIHT,A
700
033A E4 701 CLR A ;清零累加器,为下一次检测作准备
033B F500 F 702 MOV TOTALH,A
033D F500 F 703 MOV TOTALM,A
033F F500 F 704 MOV TOTALL,A
705
0341 200026 F 706 JB TestCon , DINSQ11
0344 D200 F 707 SETB TestCon
0346 C3 708 CLR C
0347 E500 F 709 MOV A , VILT
0349 945F 710 SUBB A , #LOW(2911)
A51 MACRO ASSEMBLER MAIN DATE 28/01/02 PAGE 13
LOC OBJ LINE SOURCE
034B F500 F 711 MOV TempOffsetL , A
034D E500 F 712 MOV A , VIHT
034F 940B 713 SUBB A , #HIGH(2911)
0351 4007 714 JC DINSW11
0353 4480 715 ORL A , #10000000B
0355 F500 F 716 MOV TempOffsetH , A
0357 020313 717 LJMP DINSE
718
035A 719 DINSW11:
035A C3 720 CLR C
035B 745F 721 MOV A , #LOW(2911)
035D 9500 F 722 SUBB A , VILT
035F F500 F 723 MOV TempOffsetL , A
0361 740B 724 MOV A , #HIGH(2911)
0363 9500 F 725 SUBB A , VIHT
0365 F500 F 726 MOV TempOffsetH , A ;基准测量时求测量误差,并判断误差方向
0367 020313 727 LJMP DINSE
036A 728 DINSQ11:
036A 850000 F 729 MOV VIL , VILT
036D 850000 F 730 MOV VIH , VIHT
0370 C200 F 731 CLR TestCon
0372 D200 F 732 SETB ReadTempOK
733
0374 020313 734 LJMP DINSE
735 ;******************************************************
736 ;*******************************************************
0377 737 CloseDisplay:
0377 75B0FF 738 MOV P3,#0FFH
037A D295 739 SETB XM0
037C D294 740 SETB XM1
037E D293 741 SETB XM2
0380 75B0FF 742 MOV P3,#0FFH
0383 D295 743 SETB XM0
0385 D294 744 SETB XM1
0387 D293 745 SETB XM2
0389 22 746 RET
747
748
749 ;显示数码
038A 750 Display:
038A C0D0 751 PUSH PSW
752
038C D2D4 753 SETB RS1
038E E500 F 754 MOV A,DisPort
0390 B40305 755 CJNE A,#SetDisplayBit,Display1
0393 750000 F 756 MOV DisPort,#00H
0396 7400 757 MOV A,#00H
0398 758 Display1:
0398 1203A0 759 LCALL DisplayMumber ;每循环一次显示1位数码管
039B 0500 F 760 INC DisPort
761
039D D0D0 762 POP PSW
039F 22 763 RET
764 ;-------------------------------------------
765
766 ;显示一位数码
767 ;输入: A 数码管端口号
768 ; Mumber0 -- Mumber2
769 ;输出 A 键值
A51 MACRO ASSEMBLER MAIN DATE 28/01/02 PAGE 14
LOC OBJ LINE SOURCE
03A0 770 DisplayMumber:
03A0 120377 771 LCALL CloseDisplay
772
03A3 30002F F 773 JNB XSBJ,DisplayMumber3
774
03A6 F5F0 775 MOV B,A
03A8 7800 F 776 MOV R0,#Mumber0
03AA 28 777 ADD A,R0
03AB F8 778 MOV R0,A
03AC E6 779 MOV A,@R0
03AD 9003D6 780 MOV DPTR,#MumberTemp
03B0 93 781 MOVC A,@A+DPTR
03B1 F5B0 782 MOV P3,A
03B3 E5F0 783 MOV A,B
784
03B5 B40007 785 CJNE A,#00H,DisplayMumber1
03B8 D295 786 SETB XM0
03BA D294 787 SETB XM1
03BC C293 788 CLR XM2
789
03BE 22 790 RET
03BF 791 DisplayMumber1:
03BF B40107 792 CJNE A,#01H,DisplayMumber2
03C2 D295 793 SETB XM0
03C4 C294 794 CLR XM1
03C6 D293 795 SETB XM2
796
03C8 22 797 RET
03C9 798 DisplayMumber2:
03C9 B40209 799 CJNE A,#02H,DisplayMumber3
03CC C295 800 CLR XM0
03CE D294 801 SETB XM1
03D0 D293 802 SETB XM2
03D2 E500 F 803 MOV A,KeyCodeTemp
03D4 22 804 RET
03D5 805 DisplayMumber3:
03D5 22 806 RET
03D6 807 MumberTemp:
03D6 C0F96470 808 DB 0C0H,0F9H,064H,070H,059H
03DA 59
03DB 5242F840 809 DB 052H,042H,0F8H,040H,050H
03DF 50
03E0 4846 810 DB 048H,046H ;A,E
811 ;*************************************************************
812 ;二进制整数转换为十进制数
813 ;输入二进在R2R3中
814 ;输出在Mumber0--Mumber4中
03E2 815 IBTD2:
816
03E2 E4 817 CLR A
03E3 FC 818 MOV R4,A
03E4 FD 819 MOV R5,A
03E5 FE 820 MOV R6,A
03E6 7F10 821 MOV R7,#16
03E8 822 IBTD21:
03E8 C3 823 CLR C
03E9 EB 824 MOV A,R3
03EA 33 825 RLC A
03EB FB 826 MOV R3,A
A51 MACRO ASSEMBLER MAIN DATE 28/01/02 PAGE 15
LOC OBJ LINE SOURCE
03EC EA 827 MOV A,R2
03ED 33 828 RLC A
03EE FA 829 MOV R2,A
03EF EE 830 MOV A,R6
03F0 3E 831 ADDC A,R6
03F1 D4 832 DA A
03F2 FE 833 MOV R6,A
03F3 ED 834 MOV A,R5
03F4 3D 835 ADDC A,R5
03F5 D4 836 DA A
03F6 FD 837 MOV R5,A
03F7 EC 838 MOV A,R4
03F8 3C 839 ADDC A,R4
03F9 D4 840 DA A
03FA FC 841 MOV R4,A
03FB 00 842 NOP
03FC 00 843 NOP
03FD DFE9 844 DJNZ R7,IBTD21
845
846
03FF 7800 F 847 MOV R0,#Mumber0
0401 EE 848 MOV A,R6
0402 D6 849 XCHD A,@R0
0403 08 850 INC R0
0404 C4 851 SWAP A
0405 D6 852 XCHD A,@R0
0406 08 853 INC R0
854
0407 ED 855 MOV A,R5
0408 D6 856 XCHD A,@R0
857
0409 22 858 RET
859 ;*************************************************************
860 ;设置显示模式
861 ;输入 A 0 不闪烁
862 ; 1 闪烁
040A 863 SetDisplayMode:
040A C28E 864 CLR TR1
040C C2AB 865 CLR ET1
040E D200 F 866 SETB XSBJ ;数码管显示
0410 6011 867 JZ SetDisplayMode1
0412 D200 F 868 SETB DisplayStatu ;闪烁显示
0414 D200 F 869 SETB DisplayStatu ;闪烁显示
0416 758D00 870 MOV TH1,#00H
0419 758B00 871 MOV TL1,#00H
041C D28E 872 SETB TR1
041E D2AB 873 SETB ET1
0420 D2AF 874 SETB EA
875
0422 22 876 RET
0423 877 SetDisplayMode1:
0423 C200 F 878 CLR DisplayStatu ;正常显示
0425 C200 F 879 CLR DisplayStatu ;正常显示
0427 758DF0 880 MOV TH1,#0F0H
042A 758BBF 881 MOV TL1,#0BFH ;8ms中断一次
042D D28E 882 SETB TR1
042F D2AB 883 SETB ET1
0431 D2AF 884 SETB EA
885
A51 MACRO ASSEMBLER MAIN DATE 28/01/02 PAGE 16
LOC OBJ LINE SOURCE
886
0433 22 887 RET
888
889 ;*************************************************************
890 ;读键盘
891 ;键值在KeyCode中
0434 892 ReadKey:
0434 D292 893 SETB KeyPort
0436 D292 894 SETB KeyPort
895
0438 75B0FF 896 MOV P3,#0FFH
043B D295 897 SETB XM0
043D D294 898 SETB XM1
043F C293 899 CLR XM2
900
0441 20921D 901 JB KeyPort,ReadKey1
0444 E500 F 902 MOV A,KeyCodeTemp
0446 B41011 903 CJNE A,#UpKey,ReadKey01 ;上一次按键为上键吗
0449 0500 F 904 INC KeyCount ;为上键则相同按键次数加1
044B E500 F 905 MOV A,KeyCount
044D B40509 906 CJNE A,#SetCompKey,ReadKey00
0450 750000 F 907 MOV KeyCount,#00H
0453 750000 F 908 MOV Timer1,#00H ;有键按下时清等待返回计数器
0456 750010 F 909 MOV KeyCode,#UpKey
0459 910 ReadKey00:
0459 22 911 RET
045A 912 ReadKey01:
045A 750010 F 913 MOV KeyCodeTemp,#UpKey
045D 750000 F 914 MOV KeyCount,#00H
0460 22 915 RET
916 ;---------------------------------------------------------------
0461 917 ReadKey1:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -