⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 t6620.lst

📁 基于NT69P20的遥控PS2键盘处理程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
0865  0226  7AA4            LDI     PARM,5
0866  0227  C167            CALL    DELAY_N_10uS;延时20微秒
0867  0228  E233            JMP     PS2OUTB_S0_E
0868                                
0869  0229          PS2OUTB_S0_1:                ;SEND  1
0870  0229  6909            ORIM    PORTB,0010B;DATA->1
0871  022A  7AA4            LDI     PARM,5
0872  022B  C167            CALL    DELAY_N_10uS;延时100微秒
0873  022C  7589            ANDIM   PORTB,1011B;CLK->0
0874  022D  7D24            LDI     PARM,10
0875  022E  C167            CALL    DELAY_N_10uS;延时130微秒
0876  022F  6A09            ORIM    PORTB,0100B;CLK->1
0877  0230  7AA4            LDI     PARM,5
0878  0231  C167            CALL    DELAY_N_10uS;延时20微秒
0879  0232  48C8            ADIM    PS2TEMP,01H
0880                        
0881  0233          PS2OUTB_S0_E:
0882  0233  58C2            SBIM    PS2CNTL,01H
0883  0234  9A1B            BC      PS2OUTB_3
0884                        
0885  0235  79C2            LDI     PS2CNTL,03H
0886  0236  3843            LDA     PS2SNDH
0887  0237  3C49            STA     PS2BUF
0888  0238          PS2OUTB_4:
0889  0238  3849            LDA     PS2BUF
0890  0239  F000            SHR
0891  023A  3C49            STA     PS2BUF
0892  023B  9A46            BC      PS2OUTB_S1_1
0893                
0894  023C          PS2OUTB_S1_0:                ;SEND   0
0895  023C  7689            ANDIM   PORTB,1101B;DATA->0
0896  023D  7AA4            LDI     PARM,5
0897  023E  C167            CALL    DELAY_N_10uS;延时100微秒
0898  023F  7589            ANDIM   PORTB,1011B;CLK->0
0899  0240  7D24            LDI     PARM,10
0900  0241  C167            CALL    DELAY_N_10uS;延时130微秒
0901  0242  6A09            ORIM    PORTB,0100B;CLK->1
0902  0243  7AA4            LDI     PARM,5
0903  0244  C167            CALL    DELAY_N_10uS;延时20微秒
0904  0245  E250            JMP     PS2OUTB_S1_E
0905                                
0906  0246          PS2OUTB_S1_1:                ;SEND   1
0907  0246  6909            ORIM    PORTB,0010B;DATA->1
0908  0247  7AA4            LDI     PARM,5
0909  0248  C167            CALL    DELAY_N_10uS;延时100微秒
0910  0249  7589            ANDIM   PORTB,1011B;CLK->0
0911  024A  7D24            LDI     PARM,10
0912  024B  C167            CALL    DELAY_N_10uS;延时130微秒
0913  024C  6A09            ORIM    PORTB,0100B;CLK->1
0914  024D  7AA4            LDI     PARM,5
0915  024E  C167            CALL    DELAY_N_10uS;延时20微秒
0916  024F  48C8            ADIM    PS2TEMP,01H
0917                        
0918  0250          PS2OUTB_S1_E:
0919  0250  58C2            SBIM    PS2CNTL,01H
0920  0251  9A38            BC      PS2OUTB_4
0921                
0922  0252          PS2OUTB_5:
0923  0252  3848            LDA     PS2TEMP
0924  0253  FFFF            NOP
0925                        ;比较PS2TEMP是否为1,若是校检位为0
0926  0254  A257            BA0     PS2OUTB_5_1
0927  0255  6909            ORIM    PORTB,0010B;DATA->1
0928  0256  E258            JMP     PS2OUTB_5_2
0929  0257          PS2OUTB_5_1:
0930  0257  7689            ANDIM   PORTB,1101B;DATA->0
0931  0258          PS2OUTB_5_2:
0932  0258  7AA4            LDI     PARM,5
0933  0259  C167            CALL    DELAY_N_10uS;延时100微秒
0934  025A  7589            ANDIM   PORTB,1011B;CLK->0
0935  025B  7D24            LDI     PARM,10
0936  025C  C167            CALL    DELAY_N_10uS;延时130微秒
0937  025D  6A09            ORIM    PORTB,0100B;CLK->1
0938  025E  7AA4            LDI     PARM,5
0939  025F  C167            CALL    DELAY_N_10uS;延时20微秒
0940                        
0941                                                
0942  0260          PS2OUTB_6:                ;发送停止位
0943  0260  6909            ORIM    PORTB,0010B;DATA->1
0944  0261  7AA4            LDI     PARM,5
0945  0262  C167            CALL    DELAY_N_10uS;延时50微秒
0946  0263  7589            ANDIM   PORTB,1011B;CLK->0
0947  0264  7AA4            LDI     PARM,5
0948  0265  C167            CALL    DELAY_N_10uS
0949  0266  6A09            ORIM    PORTB,0100B;CLK->1
0950  0267  7AA4            LDI     PARM,5
0951  0268  C167            CALL    DELAY_N_10uS;延时50微秒
0952                        
0953  0269  7847            LDI     PS2RET,00H
0954  026A  E26C            JMP     PS2OUTB_E
0955                                
0956  026B          PS2OUTB_ERR:
0957  026B  78C7            LDI     PS2RET,01H
0958  026C          PS2OUTB_E:                ;返回值为0-正确发送,1-发送失败
0959                
0960  026C  6B09            ORIM    PORTB,0110B
0961  026D  7497            ANDIM   PBOUT,1001B
0962                        ;LDI    IRQ,0000B
0963  026E  7880            LDI     IE,0001B
0964  026F  D400            RTNI
0965                        
0966                
0967                ;PortB bit1 = Data  bit2 = CLK
0968  0270          PS2INB:
0969  0270  7800            LDI     IE,00H
0970  0271  7847            LDI     PS2RET,00H
0971  0272  7848            LDI     PS2TEMP,00H
0972  0273  7841            LDI     PS2INL,00H
0973  0274  7840            LDI     PS2INH,00H
0974  0275  7817            LDI     PBOUT,0000B
0975  0276          PS2INB_0:
0976  0276  7F89            LDI     PORTB,1111B
0977  0277  FFFF            NOP
0978  0278  3809            LDA     PORTB
0979  0279  AA86            BA1     PS2INB_2_ERR
0980  027A          PS2INB_1:
0981  027A  7F89            LDI     PORTB,1111B
0982  027B  FFFF            NOP     
0983  027C  3809            LDA     PORTB
0984  027D  FFFF            NOP
0985  027E  B280            BA2     PS2INB_2
0986  027F  E27A            JMP     PS2INB_1;检查CLK是否为低
0987                
0988  0280          PS2INB_2:
0989  0280  7F89            LDI     PORTB,1111B
0990  0281  FFFF            NOP
0991  0282  3809            LDA     PORTB
0992  0283  FFFF            NOP
0993  0284  AA86            BA1     PS2INB_2_ERR;检查DATA是否为低,事实上是检查Host的起始位
0994  0285  E288            JMP     PS2INB_S0_S
0995  0286          PS2INB_2_ERR
0996  0286  78C7            LDI     PS2RET,01H
0997  0287  E2E7            JMP     PS2INB_ERR
0998                        
0999  0288          PS2INB_S0_S:
1000  0288  7A17            LDI     PBOUT,0100B
1001  0289  79C2            LDI     PS2CNTL,03H
1002  028A          PS2INB_S0:
1003  028A  3841            LDA     PS2INL          
1004  028B  F000            SHR
1005  028C  3C41            STA     PS2INL
1006  028D  7AA4            LDI     PARM,5
1007  028E  C167            CALL    DELAY_N_10uS;延时50微秒
1008  028F  7589            ANDIM   PORTB,1011B;CLK -> 0
1009  0290  7D24            LDI     PARM,10
1010  0291  C167            CALL    DELAY_N_10uS;延时130微秒
1011  0292  6A09            ORIM    PORTB,0100B;CLK -> 1
1012  0293  7AA4            LDI     PARM,5
1013  0294  C167            CALL    DELAY_N_10uS;延时50微秒
1014  0295  7F89            LDI     PORTB,1111B
1015  0296  FFFF            NOP
1016  0297  3809            LDA     PORTB
1017  0298  FFFF            NOP
1018  0299  AA9B            BA1     PS2INB_S0_1;Check Data Line
1019  029A          PS2INB_S0_0:        
1020  029A  E29D            JMP     PS2INB_S0_E
1021  029B          PS2INB_S0_1:
1022  029B  6C41            ORIM    PS2INL,1000B
1023  029C  48C8            ADIM    PS2TEMP,01H
1024  029D          PS2INB_S0_E:
1025  029D  58C2            SBIM    PS2CNTL,01H
1026  029E  9A8A            BC      PS2INB_S0
1027                                        
1028                
1029  029F  79C2            LDI     PS2CNTL,03H
1030  02A0          PS2INB_S1:
1031  02A0  3840            LDA     PS2INH          
1032  02A1  F000            SHR
1033  02A2  3C40            STA     PS2INH
1034  02A3  7AA4            LDI     PARM,5
1035  02A4  C167            CALL    DELAY_N_10uS;延时50微秒
1036  02A5  7589            ANDIM   PORTB,1011B;CLK -> 0
1037  02A6  7D24            LDI     PARM,10
1038  02A7  C167            CALL    DELAY_N_10uS;延时130微秒
1039  02A8  6A09            ORIM    PORTB,0100B;CLK -> 1
1040  02A9  7AA4            LDI     PARM,5
1041  02AA  C167            CALL    DELAY_N_10uS;延时50微秒
1042  02AB  7F89            LDI     PORTB,1111B
1043  02AC  FFFF            NOP
1044  02AD  3809            LDA     PORTB
1045  02AE  FFFF            NOP
1046  02AF  AAB1            BA1     PS2INB_S1_1
1047  02B0          PS2INB_S1_0:        
1048  02B0  E2B3            JMP     PS2INB_S1_E
1049  02B1          PS2INB_S1_1:
1050  02B1  6C40            ORIM    PS2INH,1000B
1051  02B2  48C8            ADIM    PS2TEMP,01H
1052  02B3          PS2INB_S1_E:
1053  02B3  58C2            SBIM    PS2CNTL,01H
1054  02B4  9AA0            BC      PS2INB_S1        
1055                
1056  02B5          PS2INB_P:                ;读取校验位
1057  02B5  7AA4            LDI     PARM,5
1058  02B6  C167            CALL    DELAY_N_10uS;延时50微秒
1059  02B7  7589            ANDIM   PORTB,1011B;CLK -> 0
1060  02B8  7D24            LDI     PARM,10
1061  02B9  C167            CALL    DELAY_N_10uS;延时130微秒
1062  02BA  6A09            ORIM    PORTB,0100B;CLK -> 1
1063  02BB  7AA4            LDI     PARM,5
1064  02BC  C167            CALL    DELAY_N_10uS;延时50微秒
1065  02BD  7F89            LDI     PORTB,1111B
1066  02BE  FFFF            NOP
1067  02BF  3809            LDA     PORTB
1068  02C0  FFFF            NOP
1069  02C1  B2C3            BA2     PS2INB_P_1
1070  02C2  E2C4            JMP     PS2INB_3
1071  02C3          PS2INB_P_1:
1072  02C3  48C8            ADIM    PS2TEMP,01H
1073                        
1074  02C4          PS2INB_3:                ;读取停止位
1075  02C4  7AA4            LDI     PARM,5
1076  02C5  C167            CALL    DELAY_N_10uS;延时50微秒
1077  02C6  7589            ANDIM   PORTB,1011B;CLK -> 0
1078  02C7  7D24            LDI     PARM,10
1079  02C8  C167            CALL    DELAY_N_10uS;延时130微秒
1080  02C9  6A09            ORIM    PORTB,0100B;CLK -> 1
1081  02CA  7AA4            LDI     PARM,5
1082  02CB  C167            CALL    DELAY_N_10uS;延时50微秒
1083  02CC  7F89            LDI     PORTB,1111B
1084  02CD  FFFF            NOP
1085  02CE  3809            LDA     PORTB
1086  02CF  FFFF            NOP
1087  02D0  B2D3            BA2     PS2INB_4
1088                        
1089  02D1          PS2INB_3_ERR:                ;停止位接收出错,退出并生成出错信息
1090  02D1  7947            LDI     PS2RET,02H
1091  02D2  E2E7            JMP     PS2INB_ERR
1092                                        
1093  02D3          PS2INB_4:                ;发送应答位
1094  02D3  7B17            LDI     PBOUT,0110B
1095  02D4  FFFF            NOP
1096  02D5  FFFF            NOP
1097  02D6  7924            LDI     PARM,2
1098  02D7  C167            CALL    DELAY_N_10uS;延时20微秒
1099  02D8  7689            ANDIM   PORTB,1101B;Bring Data Line Low
1100                        
1101  02D9  7924            LDI     PARM,2
1102  02DA  C167            CALL    DELAY_N_10uS;延时10微秒
1103  02DB  7589            ANDIM   PORTB,1011B;Bring CLK  Low
1104                        
1105  02DC  7A24            LDI     PARM,4
1106  02DD  C167            CALL    DELAY_N_10uS;
1107  02DE  6A09            ORIM    PORTB,0100B;Release CLK
1108                        
1109  02DF  78A4            LDI     PARM,1
1110  02E0  C167            CALL    DELAY_N_10uS;延时10微秒                
1111  02E1  6909            ORIM    PORTB,0010B;释放Data线
1112                        
1113  02E2  7A24            LDI     PARM,4
1114  02E3  C167            CALL    DELAY_N_10uS;额外延时40微秒,供主机进行处理
1115                        
1116  02E4          PS2INB_CHK:                ;处理校验位
1117  02E4  3848            LDA     PS2TEMP
1118  02E5  A2E7            BA0     PS2INB_E
1119  02E6  7A47            LDI     PS2RET,04H;PS2TEMP.0=0校验出错
1120  02E7          PS2INB_ERR:
1121                        ;LDI    PS2RET,0FH
1122  02E7          PS2INB_E:
1123  02E7  7F89            LDI     PORTB,1111B
1124  02E8  7817            LDI     PBOUT,0000B
1125  02E9  7800            LDI     IE,00H          
1126  02EA  D400            RTNI    
1127                        
1128                        
1129  02FF                  ORG     TABCH-1
1130  02FF  F7FF            TJMP
1131  0300  D041            RTNW    04H,01H         ;00     ;音乐音量+
1132  0301  D05B            RTNW    05H,0BH         ;01     ;话筒音量-
1133  0302  D04A            RTNW    04H,0AH         ;02     ;中断
1134  0303  D049            RTNW    04H,09H         ;03     ;音乐音量-
1135  0304  D04C            RTNW    04H,0CH         ;04     ;音调+
1136  0305  D000            RTNW    00H,00H         ;05     
1137  0306  D005            RTNW    00H,05H         ;06     ;TV
1138  0307  D000            RTNW    00H,00H         ;07
1139  0308  D0E0            RTNW    0EH,00H         ;08     ;上页 
1140  0309  D016            RTNW    01H,06H         ;09     ;1
1141  030A  D0E0            RTNW    0EH,00H         ;0A     ;取消   
1142  030B  D000            RTNW    00H,00H         ;0B     
1143  030C  D000            RTNW    00H,00H         ;0C
1144  030D  D025            RTNW    02H,05H         ;0D     ;4
1145  030E  D0E0            RTNW    0EH,00H         ;0E     ;左
1146  030F  D03A            RTNW    03H,0AH         ;0F     ;主目录
1147                        
1148  0310  D01B            RTNW    01H,0BH         ;10     ;侍应
1149  0311  D03D            RTNW    03H,0DH         ;11     ;7
1150  0312  D000            RTNW    00H,00H         ;12     
1151  0313  D000            RTNW    00H,00H         ;13
1152  0314  D021            RTNW    02H,01H         ;14     ;查已点歌

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -