?? ps2_bin.ls1
字號:
00A3 120000 F 655 LCALL ReadPS2
656 ; Delay(5);
657 ; SOURCE LINE # 186
00A6 7F05 658 MOV R7,#05H
00A8 120000 F 659 LCALL _Delay
660 ;
661 ; Order(COMMAND_SETSTATUS);//設置狀態燈CapsLock,NumLock,ScrollLock
662 ; SOURCE LINE # 188
00AB 7FED 663 MOV R7,#0EDH
00AD 120000 F 664 LCALL _Order
665 ; ReadPS2(); //等待鍵盤應答
666 ; SOURCE LINE # 189
00B0 120000 F 667 LCALL ReadPS2
668 ; LedStatus = DISALL;
669 ; SOURCE LINE # 190
00B3 E4 670 CLR A
00B4 F500 F 671 MOV LedStatus,A
672 ; Order(LedStatus); //關閉所有燈
673 ; SOURCE LINE # 191
00B6 AF00 F 674 MOV R7,LedStatus
00B8 120000 F 675 LCALL _Order
676 ; ReadPS2(); //等待鍵盤應答
677 ; SOURCE LINE # 192
00BB 120000 F 678 LCALL ReadPS2
679 ; /*
680 ; Order(COMMAND_READID); //讀鍵盤ID
681 ; ReadPS2(); //等待鍵盤應答
682 ; KeyIDLo = ReadPS2(); //獲得鍵盤ID低字節
683 ; KeyIDHi = ReadPS2(); //獲得鍵盤ID高字節
684 ; */
685 ; LedStatus = NUMLOCK_EN; //開NumLock燈
686 ; SOURCE LINE # 199
00BE 750002 F 687 MOV LedStatus,#02H
688 ; Order(COMMAND_SETSTATUS);
689 ; SOURCE LINE # 200
00C1 7FED 690 MOV R7,#0EDH
00C3 120000 F 691 LCALL _Order
692 ; ReadPS2(); //等待應答
693 ; SOURCE LINE # 201
00C6 120000 F 694 LCALL ReadPS2
695 ; Order(LedStatus); //
696 ; SOURCE LINE # 202
00C9 AF00 F 697 MOV R7,LedStatus
00CB 120000 F 698 LCALL _Order
699 ; ReadPS2(); //等待應答
700 ; SOURCE LINE # 203
00CE 120000 F 701 LCALL ReadPS2
702 ; Order(COMMAND_SETRATE); //設置速率延時
703 ; SOURCE LINE # 204
00D1 7FF3 704 MOV R7,#0F3H
00D3 120000 F 705 LCALL _Order
706 ; ReadPS2(); //等待應答
707 ; SOURCE LINE # 205
00D6 120000 F 708 LCALL ReadPS2
709 ; Order(0x20); //500ms/30
710 ; SOURCE LINE # 206
00D9 7F20 711 MOV R7,#020H
00DB 120000 F 712 LCALL _Order
713 ; ReadPS2();
714 ; SOURCE LINE # 207
00DE 120000 F 715 LCALL ReadPS2
716 ; Order(COMMAND_ENABLE); //使能鍵盤
717 ; SOURCE LINE # 208
A51 MACRO ASSEMBLER PS2_BIN 05/26/2005 15:31:26 PAGE 12
00E1 7FF4 718 MOV R7,#0F4H
00E3 120000 F 719 LCALL _Order
720 ; ReadPS2();
721 ; SOURCE LINE # 209
00E6 120000 F 722 LCALL ReadPS2
723 ; Order(COMMAND_SETRATE); //設置速率延時
724 ; SOURCE LINE # 210
00E9 7FF3 725 MOV R7,#0F3H
00EB 120000 F 726 LCALL _Order
727 ; ReadPS2();
728 ; SOURCE LINE # 211
00EE 120000 F 729 LCALL ReadPS2
730 ; Order(0x20); //
731 ; SOURCE LINE # 212
00F1 7F20 732 MOV R7,#020H
00F3 120000 F 733 LCALL _Order
734 ; ReadPS2();
735 ; SOURCE LINE # 213
00F6 120000 F 736 LCALL ReadPS2
737 ;
738 ; Delay(200); //延時
739 ; SOURCE LINE # 215
00F9 7FC8 740 MOV R7,#0C8H
00FB 120000 F 741 LCALL _Delay
742 ;
743 ; EINT; //開總中斷
744 ; SOURCE LINE # 217
00FE D2AF 745 SETB EA
0100 746 ?C0012:
747 ;
748 ; while(1)
749 ; SOURCE LINE # 219
750 ; {
751 ; SOURCE LINE # 220
752 ; // KeyScan();//掃描鍵盤
753 ; if(KeyFlag == 1)
754 ; SOURCE LINE # 222
0100 300005 F 755 JNB KeyFlag,?C0014
756 ; {
757 ; SOURCE LINE # 223
758 ; KeyFlag = 0;
759 ; SOURCE LINE # 224
0103 C200 F 760 CLR KeyFlag
761 ; KeyTransmit();//
762 ; SOURCE LINE # 225
0105 120000 F 763 LCALL KeyTransmit
764 ;
765 ; }
766 ; SOURCE LINE # 227
0108 767 ?C0014:
768 ;
769 ; KickDog();
770 ; SOURCE LINE # 229
0108 120000 F 771 LCALL KickDog
772 ;
773 ; }
774 ; SOURCE LINE # 231
010B 80F3 775 SJMP ?C0012
776 ; END OF main
777
---- 778 CSEG AT 00023H
0023 020000 F 779 LJMP uart
780
781 ; }
782 ;
783 ; /*********************************************************/
A51 MACRO ASSEMBLER PS2_BIN 05/26/2005 15:31:26 PAGE 13
784 ; //函數:uart
785 ; //功能:串口中斷
786 ; //輸入:無
787 ; //輸出:無
788 ; //描述:
789 ; /*********************************************************/
790 ; void uart() interrupt 4 using 2
791
---- 792 RSEG ?PR?uart?PS2_BIN
793 USING 2
0000 794 uart:
0000 C0E0 795 PUSH ACC
0002 C0D0 796 PUSH PSW
797 ; SOURCE LINE # 241
798 ; {
799 ; ES=0;
800 ; SOURCE LINE # 243
0004 C2AC 801 CLR ES
802 ; TH1=0xfa; //裝入初值,22.1184MHZ 的晶振,9600 的波特率
803 ; SOURCE LINE # 244
0006 758DFA 804 MOV TH1,#0FAH
805 ; TL1=0xfa;
806 ; SOURCE LINE # 245
0009 758BFA 807 MOV TL1,#0FAH
808 ;
809 ; if(RI == 1) //接收中斷
810 ; SOURCE LINE # 247
000C 309804 811 JNB RI,?C0016
812 ; {
813 ; SOURCE LINE # 248
814 ; RI= 0;
815 ; SOURCE LINE # 249
000F C298 816 CLR RI
817 ;
818 ; }
819 ; SOURCE LINE # 251
0011 800F 820 SJMP ?C0017
0013 821 ?C0016:
822 ; else if(TI == 1) //發送中斷
823 ; SOURCE LINE # 252
0013 30990C 824 JNB TI,?C0017
825 ; {
826 ; SOURCE LINE # 253
827 ; if(KeyCodeSum >1)
828 ; SOURCE LINE # 254
0016 E500 F 829 MOV A,KeyCodeSum
0018 D3 830 SETB C
0019 9401 831 SUBB A,#01H
001B 5003 832 JNC ?C0020
833 ; {
834 ; SOURCE LINE # 255
835 ; // SBUF = KeyCodeBuff[--KeyCodeSum];
836 ; // SBUF = 0x00;
837 ; }
838 ; SOURCE LINE # 258
001D 839 ?C0019:
840 ; else
841 ; {
842 ; SOURCE LINE # 260
843 ; KeyCodeSum = 0;
844 ; SOURCE LINE # 261
001D 750000 F 845 MOV KeyCodeSum,#00H
846 ; }
847 ; SOURCE LINE # 262
0020 848 ?C0020:
849 ; TI = 0;
A51 MACRO ASSEMBLER PS2_BIN 05/26/2005 15:31:26 PAGE 14
850 ; SOURCE LINE # 263
0020 C299 851 CLR TI
852 ; }
853 ; SOURCE LINE # 264
0022 854 ?C0017:
855 ; ES=1;
856 ; SOURCE LINE # 265
0022 D2AC 857 SETB ES
858 ; }
859 ; SOURCE LINE # 266
0024 D0D0 860 POP PSW
0026 D0E0 861 POP ACC
0028 32 862 RETI
863 ; END OF uart
864
865 ;
866 ; unsigned char findcode(unsigned char dat,unsigned char sort)
867
---- 868 RSEG ?PR?_findcode?PS2_BIN
0000 869 _findcode:
870 USING 0
871 ; SOURCE LINE # 268
872 ;---- Variable 'dat?240' assigned to Register 'R7' ----
873 ;---- Variable 'sort?241' assigned to Register 'R5' ----
874 ; {
875 ; SOURCE LINE # 269
876 ; unsigned char conter=0x00;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -