📄 t6620.lst
字号:
0877 0230 F000 SHR
0878 0231 3C49 STA PS2BUF
0879 0232 9A3D BC PS2OUTB_S1_1
0880
0881 0233 PS2OUTB_S1_0:
0882 0233 7689 ANDIM PORTB,1101B;DATA->0
0883 0234 7AA4 LDI PARM,5
0884 0235 C163 CALL DELAY_N_10uS;延时100微秒
0885 0236 7589 ANDIM PORTB,1011B;CLK->0
0886 0237 7D24 LDI PARM,10
0887 0238 C163 CALL DELAY_N_10uS;延时130微秒
0888 0239 6A09 ORIM PORTB,0100B;CLK->1
0889 023A 7AA4 LDI PARM,5
0890 023B C163 CALL DELAY_N_10uS;延时20微秒
0891 023C E247 JMP PS2OUTB_S1_E
0892
0893 023D PS2OUTB_S1_1:
0894 023D 6909 ORIM PORTB,0010B;DATA->1
0895 023E 7AA4 LDI PARM,5
0896 023F C163 CALL DELAY_N_10uS;延时100微秒
0897 0240 7589 ANDIM PORTB,1011B;CLK->0
0898 0241 7D24 LDI PARM,10
0899 0242 C163 CALL DELAY_N_10uS;延时130微秒
0900 0243 6A09 ORIM PORTB,0100B;CLK->1
0901 0244 7AA4 LDI PARM,5
0902 0245 C163 CALL DELAY_N_10uS;延时20微秒
0903 0246 48C8 ADIM PS2TEMP,01H
0904
0905 0247 PS2OUTB_S1_E:
0906 0247 58C2 SBIM PS2CNTL,01H
0907 0248 9A2F BC PS2OUTB_4
0908
0909 0249 PS2OUTB_5:
0910 0249 3848 LDA PS2TEMP
0911 024A FFFF NOP
0912 ;比较PS2TEMP是否为1,若是校检位为0
0913 024B A24E BA0 PS2OUTB_5_1
0914 024C 6909 ORIM PORTB,0010B;DATA->1
0915 024D E24F JMP PS2OUTB_5_2
0916 024E PS2OUTB_5_1:
0917 024E 7689 ANDIM PORTB,1101B;DATA->0
0918 024F PS2OUTB_5_2:
0919 024F 7AA4 LDI PARM,5
0920 0250 C163 CALL DELAY_N_10uS;延时100微秒
0921 0251 7589 ANDIM PORTB,1011B;CLK->0
0922 0252 7D24 LDI PARM,10
0923 0253 C163 CALL DELAY_N_10uS;延时130微秒
0924 0254 6A09 ORIM PORTB,0100B;CLK->1
0925 0255 7AA4 LDI PARM,5
0926 0256 C163 CALL DELAY_N_10uS;延时20微秒
0927
0928
0929 0257 PS2OUTB_6: ;发送停止位
0930 0257 6909 ORIM PORTB,0010B;DATA->1
0931 0258 7AA4 LDI PARM,5
0932 0259 C163 CALL DELAY_N_10uS;延时100微秒
0933 025A 7589 ANDIM PORTB,1011B;CLK->0
0934 025B 7AA4 LDI PARM,5
0935 025C C163 CALL DELAY_N_10uS
0936 025D 7AA4 LDI PARM,5
0937 025E C163 CALL DELAY_N_10uS;延时200微秒
0938 025F 6A09 ORIM PORTB,0100B;CLK->1
0939 0260 7AA4 LDI PARM,5
0940 0261 C163 CALL DELAY_N_10uS;延时20微秒
0941
0942 0262 7847 LDI PS2RET,00H
0943 0263 E265 JMP PS2OUTB_E
0944
0945 0264 PS2OUTB_ERR:
0946 0264 78C7 LDI PS2RET,01H
0947 0265 PS2OUTB_E: ;返回值为0-正确发送,1-发送失败
0948 0265 7497 ANDIM PBOUT,1001B
0949 0266 7F89 LDI PORTB,0FH
0950 ;LDI IRQ,0000B
0951 0267 7880 LDI IE,0001B
0952 0268 D400 RTNI
0953
0954
0955 0269 PS2INB:
0956 0269 7800 LDI IE,00H
0957 026A 7847 LDI PS2RET,00H
0958 026B 7848 LDI PS2TEMP,00H
0959 026C 7841 LDI PS2INL,00H
0960 026D 7840 LDI PS2INH,00H
0961 026E 7817 LDI PBOUT,0000B
0962 026F PS2INB_0:
0963 026F 3809 LDA PORTB
0964 0270 FFFF NOP
0965 0271 3809 LDA PORTB
0966 0272 FFFF NOP
0967 ;BA1 PS2INB_2_ERR
0968 ;LDI PARM,03H
0969 ;CALL DELAY_N_mS
0970 ;LDA PORTB
0971 ;NOP
0972 0273 3809 LDA PORTB
0973 0274 AA81 BA1 PS2INB_2_ERR
0974 0275 PS2INB_1:
0975 0275 3809 LDA PORTB
0976 0276 FFFF NOP
0977 0277 3809 LDA PORTB
0978 0278 FFFF NOP
0979 0279 AA7B BA1 PS2INB_2
0980 027A E275 JMP PS2INB_1;检查CLK是否为低
0981
0982 027B PS2INB_2:
0983 027B 3809 LDA PORTB
0984 027C FFFF NOP
0985 027D 3809 LDA PORTB
0986 027E FFFF NOP
0987 027F B281 BA2 PS2INB_2_ERR;检查DATA是否为低,事实上是检查Host的起始位
0988 0280 E283 JMP PS2INB_S0_S
0989 0281 PS2INB_2_ERR
0990 0281 78C7 LDI PS2RET,01H
0991 0282 E2E2 JMP PS2INB_ERR
0992
0993 0283 PS2INB_S0_S:
0994 ;LDI PARM,03H
0995 ;CALL DELAY_N_mS
0996 0283 7917 LDI PBOUT,0010B
0997 0284 79C2 LDI PS2CNTL,03H
0998 0285 PS2INB_S0:
0999 0285 3841 LDA PS2INL
1000 0286 F000 SHR
1001 0287 3C41 STA PS2INL
1002 0288 7924 LDI PARM,2
1003 0289 C163 CALL DELAY_N_10uS;延时50微秒
1004 028A 7689 ANDIM PORTB,1101B;CLK -> 0
1005 028B 7A24 LDI PARM,4
1006 028C C163 CALL DELAY_N_10uS;延时130微秒
1007 028D 6909 ORIM PORTB,0010B;CLK -> 1
1008 028E 7924 LDI PARM,2
1009 028F C163 CALL DELAY_N_10uS;延时50微秒
1010 0290 3809 LDA PORTB
1011 0291 FFFF NOP
1012 0292 3809 LDA PORTB
1013 0293 FFFF NOP
1014 0294 B296 BA2 PS2INB_S0_1
1015 0295 PS2INB_S0_0:
1016 0295 E298 JMP PS2INB_S0_E
1017 0296 PS2INB_S0_1:
1018 0296 6C41 ORIM PS2INL,1000B
1019 0297 48C8 ADIM PS2TEMP,01H
1020 0298 PS2INB_S0_E:
1021 0298 58C2 SBIM PS2CNTL,01H
1022 0299 9A85 BC PS2INB_S0
1023
1024
1025 029A 79C2 LDI PS2CNTL,03H
1026 029B PS2INB_S1:
1027 029B 3840 LDA PS2INH
1028 029C F000 SHR
1029 029D 3C40 STA PS2INH
1030 029E 7924 LDI PARM,2
1031 029F C163 CALL DELAY_N_10uS;延时50微秒
1032 02A0 7689 ANDIM PORTB,1101B;CLK -> 0
1033 02A1 7A24 LDI PARM,4
1034 02A2 C163 CALL DELAY_N_10uS;延时130微秒
1035 02A3 6909 ORIM PORTB,0010B;CLK -> 1
1036 02A4 7924 LDI PARM,2
1037 02A5 C163 CALL DELAY_N_10uS;延时50微秒
1038 02A6 3809 LDA PORTB
1039 02A7 FFFF NOP
1040 02A8 3809 LDA PORTB
1041 02A9 FFFF NOP
1042 02AA B2AC BA2 PS2INB_S1_1
1043 02AB PS2INB_S1_0:
1044 02AB E2AE JMP PS2INB_S1_E
1045 02AC PS2INB_S1_1:
1046 02AC 6C40 ORIM PS2INH,1000B
1047 02AD 48C8 ADIM PS2TEMP,01H
1048 02AE PS2INB_S1_E:
1049 02AE 58C2 SBIM PS2CNTL,01H
1050 02AF 9A9B BC PS2INB_S1
1051
1052 02B0 PS2INB_P: ;读取校验位
1053 02B0 7924 LDI PARM,2
1054 02B1 C163 CALL DELAY_N_10uS;延时50微秒
1055 02B2 7689 ANDIM PORTB,1101B;CLK -> 0
1056 02B3 7A24 LDI PARM,4
1057 02B4 C163 CALL DELAY_N_10uS;延时130微秒
1058 02B5 6909 ORIM PORTB,0010B;CLK -> 1
1059 02B6 7924 LDI PARM,2
1060 02B7 C163 CALL DELAY_N_10uS;延时50微秒
1061 02B8 3809 LDA PORTB
1062 02B9 FFFF NOP
1063 02BA 3809 LDA PORTB
1064 02BB FFFF NOP
1065 02BC B2BE BA2 PS2INB_P_1
1066 02BD E2BF JMP PS2INB_3
1067 02BE PS2INB_P_1:
1068 02BE 48C8 ADIM PS2TEMP,01H
1069
1070 02BF PS2INB_3: ;读取停止位
1071 02BF 7924 LDI PARM,2
1072 02C0 C163 CALL DELAY_N_10uS;延时50微秒
1073 02C1 7689 ANDIM PORTB,1101B;CLK -> 0
1074 02C2 7A24 LDI PARM,4
1075 02C3 C163 CALL DELAY_N_10uS;延时130微秒
1076 02C4 6909 ORIM PORTB,0010B;CLK -> 1
1077 02C5 7924 LDI PARM,2
1078 02C6 C163 CALL DELAY_N_10uS;延时50微秒
1079 02C7 3809 LDA PORTB
1080 02C8 FFFF NOP
1081 02C9 3809 LDA PORTB
1082 02CA FFFF NOP
1083 02CB B2CE BA2 PS2INB_4
1084
1085 02CC PS2INB_3_ERR: ;停止位接收出错,退出并生成出错信息
1086 ;LDA PORTB
1087 ;NOP
1088 ;LDA PORTB
1089 ;NOP
1090 ;BA1 PS2INB_3_ERR
1091 02CC 7947 LDI PS2RET,02H
1092 02CD E2E2 JMP PS2INB_ERR
1093
1094 02CE PS2INB_4: ;发送应答位
1095 02CE 7B17 LDI PBOUT,0110B
1096 02CF FFFF NOP
1097 02D0 FFFF NOP
1098 02D1 7924 LDI PARM,2
1099 02D2 C163 CALL DELAY_N_10uS;延时20微秒
1100 02D3 7589 ANDIM PORTB,1011B;Bring Data Line Low
1101
1102 02D4 78A4 LDI PARM,1
1103 02D5 C163 CALL DELAY_N_10uS;延时10微秒
1104 02D6 7689 ANDIM PORTB,1101B;Bring CLK Low
1105
1106 02D7 7A24 LDI PARM,4
1107 02D8 C163 CALL DELAY_N_10uS;
1108 02D9 6909 ORIM PORTB,0010B;Release CLK
1109
1110 02DA 78A4 LDI PARM,1
1111 02DB C163 CALL DELAY_N_10uS;延时10微秒
1112 02DC 6A09 ORIM PORTB,0100B;释放Data线
1113
1114 02DD 7A24 LDI PARM,4
1115 02DE C163 CALL DELAY_N_10uS;额外延时40微秒,供主机进行处理
1116
1117 02DF PS2INB_CHK: ;处理校验位
1118 02DF 3848 LDA PS2TEMP
1119 02E0 A2E2 BA0 PS2INB_E
1120 02E1 7A47 LDI PS2RET,04H;PS2TEMP.0=0校验出错
1121 02E2 PS2INB_ERR:
1122 ;LDI PS2RET,0FH
1123 02E2 PS2INB_E:
1124 02E2 7817 LDI PBOUT,0000B
1125 02E3 7F89 LDI PORTB,0FH
1126 02E4 7800 LDI IE,00H
1127 02E5 D400 RTNI
1128 02FF ORG TABCH-1
1129 02FF F7FF TJMP
1130 0300 D041 RTNW 04H,01H ;00
1131 0301 D05B RTNW 05H,0BH ;01
1132 0302 D05D RTNW 05H,0DH ;02
1133 0303 D049 RTNW 04H,09H ;03
1134 0304 D04C RTNW 04H,0CH ;04
1135 0305 D000 RTNW 00H,00H ;05
1136 0306 D005 RTNW 00H,05H ;06
1137 0307 D000 RTNW 00H,00H ;07
1138 0308 D0E0 RTNW 0EH,00H ;08
1139 0309 D016 RTNW 01H,06H ;09
1140 030A D0E0 RTNW 0EH,00H ;0A
1141 030B D000 RTNW 00H,00H ;0B
1142 030C D000 RTNW 00H,00H ;0C
1143 030D D025 RTNW 02H,05H ;0D
1144 030E D0E0 RTNW 0EH,00H ;0E
1145 030F D03A RTNW 03H,0AH ;0F
1146
1147 0310 D01B RTNW 01H,0BH ;10
1148 0311 D03D RTNW 03H,0DH ;11
1149 0312 D000 RTNW 00H,00H ;12
1150 0313 D000 RTNW 00H,00H ;13
1151 0314 D021 RTNW 02H,01H ;14
1152 0315 D03E RTNW 03H,0EH ;15
1153 0316 D045 RTNW 04H,05H ;16
1154 0317 D046 RTNW 04H,06H ;17
1155 0318 D000 RTNW 00H,00H ;18
1156 0319 D02E RTNW 02H,0EH ;19
1157 031A D0E0 RTNW 0EH,00H ;1A
1158 031B D036 RTNW 03H,06H ;1B
1159 031C D000 RTNW 00H,00H ;1C
1160 031D D01E RTNW 01H,0EH ;1D
1161 031E D04B RTNW 04H,0BH ;1E
1162 031F D026 RTNW 02H,06H ;1F
1163
1164 0320 D000 RTNW 00H,00H ;20
1165 0321 D000 RTNW 00H,00H
1166 0322 D000 RTNW 00H,00H
1167 0323 D000 RTNW 00H,00H
1168 0324 D000 RTNW 00H,00H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -