📄 ex3-9.lst
字号:
045F F8 762 MOV R0,A; ;KEYVALUE;
0460 75A0FF 763 MOV KEYIN,#0FFH;
0463 764 KEYBOARDEND:
0463 22 765 RET;
766 ;;;;;;;;;;READKEY;;;;;;;;;;;;;;;
0464 900608 767 READKEY: MOV DPTR,#KEYVA;
0467 E8 768 MOV A,R0;
0468 93 769 MOVC A,@A+DPTR;
0469 F8 770 MOV R0,A;
046A 22 771 RET;
772 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
773 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
046B 9164 774 KEYEXE: CALL READKEY;
046D B80104 775 KEY1: CJNE R0,#01H,KEY2;
0470 91DE 776 CALL KEYE1;
0472 8069 777 JMP KEYEND;
0474 B80204 778 KEY2: CJNE R0,#02H,KEY3;
0477 91E9 779 CALL KEYE2;
0479 8062 780 JMP KEYEND;
047B B80304 781 KEY3: CJNE R0,#03H,KEY4;
047E 91F4 782 CALL KEYE3;
0480 805B 783 JMP KEYEND;
0482 B80404 784 KEY4: CJNE R0,#04H,KEY5;
A51 MACRO ASSEMBLER EX3_9 06/23/2007 17:15:17 PAGE 13
0485 91FF 785 CALL KEYE4;
0487 8054 786 JMP KEYEND;
0489 B80504 787 KEY5: CJNE R0,#05H,KEY6;
048C B102 788 CALL KEYE5;
048E 804D 789 JMP KEYEND;
0490 B80604 790 KEY6: CJNE R0,#06H,KEY7;
0493 B105 791 CALL KEYE6;
0495 8046 792 JMP KEYEND;
0497 B80704 793 KEY7: CJNE R0,#07H,KEY8;
049A B110 794 CALL KEYE7;
049C 803F 795 JMP KEYEND;
049E B80804 796 KEY8: CJNE R0,#08H,KEY9;
04A1 B113 797 CALL KEYE8;
04A3 8038 798 JMP KEYEND;
04A5 B80904 799 KEY9: CJNE R0,#09H,KEY0;
04A8 B116 800 CALL KEYE9;
04AA 8031 801 JMP KEYEND;
04AC B80004 802 KEY0: CJNE R0,#00H,KEYA;
04AF B119 803 CALL KEYE0;
04B1 802A 804 JMP KEYEND;
04B3 B80A04 805 KEYA: CJNE R0,#0AH,KEYB;
04B6 B11A 806 CALL KEYEA;
04B8 8023 807 JMP KEYEND;
04BA B80B04 808 KEYB: CJNE R0,#0BH,KEYC;
04BD B11B 809 CALL KEYEB;
04BF 801C 810 JMP KEYEND;
04C1 B80C04 811 KEYC: CJNE R0,#0CH,KEYD;
04C4 B11C 812 CALL KEYEC;
04C6 8015 813 JMP KEYEND;
04C8 B80D04 814 KEYD: CJNE R0,#0DH,KEYE;
04CB B11D 815 CALL KEYED;
04CD 800E 816 JMP KEYEND;
04CF B80E04 817 KEYE: CJNE R0,#0EH,KEYF;
04D2 B11E 818 CALL KEYEE;
04D4 8007 819 JMP KEYEND;
04D6 B80F04 820 KEYF: CJNE R0,#0FH,KEYEND;
04D9 B11F 821 CALL KEYEF;
04DB 8000 822 JMP KEYEND;
04DD 823 KEYEND:
04DD 22 824 RET;
825 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
04DE 826 KEYE1:
827 ;MOV R0,#01H;
04DE E53E 828 MOV A,DIR;
04E0 C4 829 SWAP A;
04E1 440F 830 ORL A,#00001111B;
04E3 78F2 831 MOV R0,#11110010B;
832
04E5 58 833 ANL A,R0;
04E6 F53E 834 MOV DIR,A;
04E8 22 835 RET;
836 ;;;;;;;;;;;;KEYE2;;;;;;;;;;;;
04E9 E53E 837 KEYE2: MOV A,DIR;
04EB C4 838 SWAP A;
04EC 440F 839 ORL A,#00001111B;
04EE 78F8 840 MOV R0,#11111000B;
841
04F0 58 842 ANL A,R0;
04F1 F53E 843 MOV DIR,A;
844 ;MOV R0,#02H;
845 ;LCALL KEYINPUT;
04F3 22 846 RET;
847 ;;;;;;;;;;;;KEYE3;;;;;;;;;;;;;
04F4 E53E 848 KEYE3: MOV A,DIR;
04F6 C4 849 SWAP A;
04F7 440F 850 ORL A,#00001111B;
A51 MACRO ASSEMBLER EX3_9 06/23/2007 17:15:17 PAGE 14
04F9 78F1 851 MOV R0,#11110001B;
852
04FB 58 853 ANL A,R0;
04FC F53E 854 MOV DIR,A;
855 ;MOV R0,#03H;
856 ;LCALL KEYINPUT;
04FE 22 857 RET;
858 ;;;;;;;;;;;;KEYE4;;;;;;;;;;;;;
04FF 7804 859 KEYE4: MOV R0,#04H;
0501 22 860 RET;
861 ;;;;;;;;;;;;KEYE5;;;;;;;;;;;;;
0502 7805 862 KEYE5: MOV R0,#05H;
863 ;LCALL KEYINPUT;
0504 22 864 RET;
865 ;;;;;;;;;;;;KEYE6;;;;;;;;;;;;;
0505 E53E 866 KEYE6: MOV A,DIR;
0507 C4 867 SWAP A;
0508 440F 868 ORL A,#00001111B;
050A 78F4 869 MOV R0,#11110100B;
870
050C 58 871 ANL A,R0;
050D F53E 872 MOV DIR,A;
873 ; MOV R0,#06H;
050F 22 874 RET;
875 ;;;;;;;;;;;;KEYE7;;;;;;;;;;;;;
0510 7807 876 KEYE7: MOV R0,#07H;
0512 22 877 RET;
878 ;;;;;;;;;;;;KEYE8;;;;;;;;;;;;;
0513 7808 879 KEYE8: MOV R0,#08H;
0515 22 880 RET;
881 ;;;;;;;;;;;;KEYE9;;;;;;;;;;;;;
0516 7809 882 KEYE9: MOV R0,#09H;
0518 22 883 RET;
884 ;;;;;;;;;;;;KEYE0;;;;;;;;;;;;;
0519 885 KEYE0:
0519 22 886 RET;
887 ;;;;;;;;;;;;KEYEA TO STORE CIRCLE;;;;;;
051A 888 KEYEA:
051A 22 889 RET;
890 ;;;;;;;;;;;;KEYEB TO STORE ANGLE;;;;;;;;;;;;;
051B 891 KEYEB:
051B 22 892 RET;
893 ;;;;;;;;;;;;;TO STORE POS OR NEG;;;;;;;;;;;;;;;;
051C 894 KEYEC:
051C 22 895 RET;
896 ;;;;;;;;;;;;KEYED TO STORE SPEED;;;;;;;;;;;;;
051D 897 KEYED:
051D 22 898 RET;
899 ;;;;;;;;;;;;KEYEE TO START MOTOR;;;;;;;;;;;;;
051E 900 KEYEE:
051E 22 901 RET;
902 ;;;;;;;;;;;;KEYEF ;;;;;;;;;;;;;
051F 903 KEYEF:
904 ; TO CLEAR ALL THE DATA AND TO THE START STATE;
905 ; FROM TAILXA TO HEADXA
051F A842 906 MOV R0,TAILXA;
0521 A943 907 MOV R1,TAILYA;
0523 AA41 908 MOV R2,SNAGLNG;
0525 909 KEYEF1:
0525 8638 910 MOV PX,@R0;
0527 8739 911 MOV PY,@R1;
912
0529 E8 913 MOV A,R0;
052A C0E0 914 PUSH ACC;
052C E9 915 MOV A,R1;
052D C0E0 916 PUSH ACC;
A51 MACRO ASSEMBLER EX3_9 06/23/2007 17:15:17 PAGE 15
052F EA 917 MOV A,R2;
0530 C0E0 918 PUSH ACC;
919
0532 1201A6 920 LCALL UNDISPXY;
921
0535 D0E0 922 POP ACC
0537 FA 923 MOV R2,A;
0538 D0E0 924 POP ACC
053A F9 925 MOV R1,A;
053B D0E0 926 POP ACC
053D F8 927 MOV R0,A;
928
053E 08 929 INC R0;
053F 09 930 INC R1;
931
0540 DAE3 932 DJNZ R2,KEYEF1;
933
0542 12009E 934 LCALL RIGHTSIDE;
0545 120040 935 LCALL INITLCM;
0548 1200A3 936 LCALL CLS;
937
054B 120099 938 LCALL LEFTSIDE;
054E 1200EC 939 LCALL INITSNAG;
0551 C200 940 CLR ERR;
0553 C202 941 CLR ALL;
0555 22 942 RET;
943 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
0556 944 KEYEEE:
0556 853290 945 MOV LCMP,PAGEADD;
0559 120067 946 LCALL WI;
055C 853390 947 MOV LCMP,YNUM;
055F 120067 948 LCALL WI;
949
0562 90063A 950 MOV DPTR,#KEYDB;
0565 7900 951 MOV R1,#00H;
0567 952 KEYEEE0:
0567 E8 953 MOV A,R0;
0568 75F005 954 MOV B,#05H;
056B A4 955 MUL AB;
056C 93 956 MOVC A,@A+DPTR;
056D F590 957 MOV LCMP,A;
056F 120076 958 LCALL WD;
0572 A3 959 INC DPTR;
0573 09 960 INC R1;
0574 B905F0 961 CJNE R1,#05H,KEYEEE0;
962
0577 22 963 RET;
964 ;---------------BMP SUB--------------------
0578 753608 965 INITBMP:MOV LNGTH,#08H;
057B 753740 966 MOV WIDTH,#40H;
057E 753400 967 MOV STPAGE,#00H;
0581 753500 968 MOV STY,#00H;
969
0584 120099 970 LCALL LEFTSIDE;
0587 120040 971 LCALL INITLCM;
058A 900694 972 MOV DPTR,#BMPDB
058D 22 973 RET
974 ;------------------------------------------
975 ;;TO DISPLAY BITMAP
976 ;;STARTPAGE STPAGE;
977 ;;STARTY STY;
978 ;;LNGTH WIDTH;
979 ;;
058E 980 BMP:
058E 7A00 981 MOV R2,#00H; CURRENT PAGE;
0590 7900 982 MOV R1,#00H; CURRENT Y;
A51 MACRO ASSEMBLER EX3_9 06/23/2007 17:15:17 PAGE 16
0592 AB37 983 MOV R3,WIDTH;
0594 AC36 984 MOV R4,LNGTH;
0596 985 BMP0:
0596 EA 986 MOV A,R2; SET PAGE;
0597 2534 987 ADD A,STPAGE;
0599 24B8 988 ADD A,#0B8H;
059B F532 989 MOV PAGEADD,A;
059D 853290 990 MOV LCMP,PAGEADD;
05A0 120067 991 LCALL WI;
992
05A3 E9 993 MOV A,R1; SET Y;
05A4 2535 994 ADD A,STY;
05A6 2440 995 ADD A,#40H;
05A8 F533 996 MOV YNUM,A;
05AA B48008 997 CJNE A,#80H,BMP1;
05AD 12009E 998 LCALL RIGHTSIDE;
05B0 753340 999 MOV YNUM,#40H;
05B3 7900 1000 MOV R1,#00H;
1001
05B5 1002 BMP1:
05B5 853390 1003 MOV LCMP,YNUM;
05B8 120067 1004 LCALL WI;
05BB 7400 1005 MOV A,#00H;
05BD 93 1006 MOVC A,@A+DPTR;
05BE F590 1007 MOV LCMP,A;
05C0 120076 1008 LCALL WD;
1009
05C3 A3 1010 INC DPTR;
05C4 0A 1011 INC R2;
05C5 DCCF 1012 DJNZ R4,BMP0;
05C7 09 1013 INC R1;
05C8 7A00 1014 MOV R2,#00H;
05CA AC36 1015 MOV R4,LNGTH;
05CC DBC8 1016 DJNZ R3,BMP0;
05CE 1017 BMPEND:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -