📄 t6620.lst
字号:
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 + -