📄 3100_2interface.dat
字号:
adrs 0
00 31 |0000 goto Start
adrs 1
A0 00 |0001 movwf StateTemp0
03 08 |0002 movfw Psw
A1 00 |0003 movwf StateTemp1
D1 14 |0004 btfsc 11h,3
24 30 |0005 goto RstiTask
D1 15 |0006 btfsc 11h,7
17 30 |0007 goto Rc0iTask
91 15 |0008 btfsc 11h,6
1C 30 |0009 goto Tx0iTask
51 15 |000A btfsc 11h,5
20 30 |000B goto Tx1iTask
11 15 |000C btfsc 11h,4
22 30 |000D goto Tx2iTask
92 14 |000E btfsc 12h,2
36 30 |000F goto KbdiTask
52 14 |0010 btfsc 12h,1
38 30 |0011 goto Pb0iTask
D2 14 |0012 btfsc 12h,3
2B 30 |0013 goto RsmiTask
91 14 |0014 btfsc 11h,2
28 30 |0015 goto SuspiTask
39 30 |0016 goto EndInt
D1 11 |0017 bcf 11h,7
55 11 |0018 bcf 15h,5
D5 11 |0019 bcf 15h,7
CE 12 |001A bsf 0eh,3
39 30 |001B goto EndInt
91 11 |001C bcf 11h,6
D5 11 |001D bcf 15h,7
8E 12 |001E bsf 0eh,2
39 30 |001F goto EndInt
51 11 |0020 bcf 11h,5
39 30 |0021 goto EndInt
11 11 |0022 bcf 11h,4
39 30 |0023 goto EndInt
D1 10 |0024 bcf 11h,3
30 21 |0025 call UsbReset
13 12 |0026 bsf 13h,0
39 30 |0027 goto EndInt
91 10 |0028 bcf 11h,2
0E 13 |0029 bsf 0eh,4
39 30 |002A goto EndInt
D2 10 |002B bcf 12h,3
D3 11 |002C bcf 13h,7
0E 11 |002D bcf 0eh,4
EC 19 |002E movlw ech
11 00 |002F movwr IntEn0
00 19 |0030 movlw 00h
12 00 |0031 movwr IntEn1
0E 12 |0032 bsf 0eh,0
81 01 |0033 clrf Timer0
13 12 |0034 bsf 13h,0
39 30 |0035 goto EndInt
92 10 |0036 bcf 12h,2
39 30 |0037 goto EndInt
52 10 |0038 bcf 12h,1
21 08 |0039 movfw StateTemp1
83 00 |003A movwf Psw
20 08 |003B movfw StateTemp0
60 00 |003C reti
adrs 256
09 21 |0100 call SystemReset
42 21 |0101 call Ep0IntCheck
0E 15 |0102 btfsc 0eh,4
47 21 |0103 call SuspendTask
0E 16 |0104 btfss 0eh,0
01 31 |0105 goto UsbStart
F8 23 |0106 call DataInTask
23 24 |0107 call ReportTask
01 31 |0108 goto UsbStart
8E 01 |0109 clrf Gpr0
8F 01 |010A clrf Gpr1
90 01 |010B clrf UsbFun
91 01 |010C clrf Int0
92 01 |010D clrf Int1
93 01 |010E clrf Int2
93 01 |010F clrf UsbCtr
95 01 |0110 clrf Tx0Reg
96 01 |0111 clrf Tx1Reg
97 01 |0112 clrf Tx2Reg
00 19 |0113 movlw 00h
01 00 |0114 movwr Tm0Reload
02 00 |0115 movwr Tm0Pscl
11 00 |0116 movwr IntEn0
12 00 |0117 movwr IntEn1
03 13 |0118 bsf 03h,4
20 19 |0119 movlw 20h
84 00 |011A movwf Fsr
00 19 |011B movlw 00h
80 00 |011C movwf Indf
84 0A |011D incf Fsr,F
80 19 |011E movlw 80h
04 02 |011F subwf Fsr,W
83 16 |0120 btfss 03h,2
1B 31 |0121 goto ClearLoop0
03 11 |0122 bcf 03h,4
20 19 |0123 movlw 20h
84 00 |0124 movwf Fsr
00 19 |0125 movlw 00h
80 00 |0126 movwf Indf
84 0A |0127 incf Fsr,F
80 19 |0128 movlw 80h
04 02 |0129 subwf Fsr,W
83 16 |012A btfss 03h,2
25 31 |012B goto ClearLoop1
D0 13 |012C bsf 10h,7
CC 19 |012D movlw cch
11 00 |012E movwr IntEn0
40 00 |012F ret
8E 01 |0130 clrf Gpr0
8F 01 |0131 clrf Gpr1
90 01 |0132 clrf UsbFun
91 01 |0133 clrf Int0
92 01 |0134 clrf Int1
93 01 |0135 clrf Int2
93 01 |0136 clrf UsbCtr
95 01 |0137 clrf Tx0Reg
96 01 |0138 clrf Tx1Reg
97 01 |0139 clrf Tx2Reg
D0 13 |013A bsf 10h,7
CC 19 |013B movlw cch
11 00 |013C movwr IntEn0
00 19 |013D movlw 00h
12 00 |013E movwr IntEn1
07 19 |013F movlw 07h
02 00 |0140 movwr Tm0Pscl
40 00 |0141 ret
CE 14 |0142 btfsc 0eh,3
E8 31 |0143 goto Rc0Task
8E 14 |0144 btfsc 0eh,2
D5 31 |0145 goto Tx0Task
40 00 |0146 ret
00 19 |0147 movlw 00h
11 00 |0148 movwr IntEn0 ;Disable all interrupts
08 19 |0149 movlw 08h
12 00 |014A movwr IntEn1 ;Only Enable Rsmie
D3 13 |014B bsf 13h,7
00 00 |014C nop
00 00 |014D nop
00 00 |014E nop
03 00 |014F sleep
00 00 |0150 nop
40 00 |0151 ret
26 08 |0152 movfw DataLength
A3 00 |0153 movwf WLengthTemp
9F 08 |0154 testz WLengthHi
83 16 |0155 btfss 03h,2
40 00 |0156 ret
03 10 |0157 bcf 03h,0
26 08 |0158 movfw DataLength
1E 02 |0159 subwf WLength,W
03 14 |015A btfsc 03h,0
40 00 |015B ret
1E 08 |015C movfw WLength
A3 00 |015D movwf WLengthTemp
40 00 |015E ret
A4 01 |015F clrf LengthCnt
A3 08 |0160 testz WLengthTemp
83 14 |0161 btfsc 03h,2
C8 31 |0162 goto SetTgl
25 08 |0163 movfw TableCnt
00 2E |0164 call DeviceInfoTable
8E 17 |0165 btfss 0eh,6
69 31 |0166 goto Sendbyte0
25 08 |0167 movfw TableCnt
00 2F |0168 call DeviceReportTable
18 00 |0169 movwr Tx0Fifo0
A5 0A |016A incf TableCnt,F
A4 0A |016B incf LengthCnt,F
A3 03 |016C decf WLengthTemp,F
A3 08 |016D testz WLengthTemp
83 14 |016E btfsc 03h,2
C8 31 |016F goto SetTgl
25 08 |0170 movfw TableCnt
00 2E |0171 call DeviceInfoTable
8E 17 |0172 btfss 0eh,6
76 31 |0173 goto Sendbyte1
25 08 |0174 movfw TableCnt
00 2F |0175 call DeviceReportTable
19 00 |0176 movwr Tx0Fifo1
A5 0A |0177 incf TableCnt,F
A4 0A |0178 incf LengthCnt,F
A3 03 |0179 decf WLengthTemp,F
A3 08 |017A testz WLengthTemp
83 14 |017B btfsc 03h,2
C8 31 |017C goto SetTgl
25 08 |017D movfw TableCnt
00 2E |017E call DeviceInfoTable
8E 17 |017F btfss 0eh,6
83 31 |0180 goto Sendbyte2
25 08 |0181 movfw TableCnt
00 2F |0182 call DeviceReportTable
1A 00 |0183 movwr Tx0Fifo2
A5 0A |0184 incf TableCnt,F
A4 0A |0185 incf LengthCnt,F
A3 03 |0186 decf WLengthTemp,F
A3 08 |0187 testz WLengthTemp
83 14 |0188 btfsc 03h,2
C8 31 |0189 goto SetTgl
25 08 |018A movfw TableCnt
00 2E |018B call DeviceInfoTable
8E 17 |018C btfss 0eh,6
90 31 |018D goto Sendbyte3
25 08 |018E movfw TableCnt
00 2F |018F call DeviceReportTable
1B 00 |0190 movwr Tx0Fifo3
A5 0A |0191 incf TableCnt,F
A4 0A |0192 incf LengthCnt,F
A3 03 |0193 decf WLengthTemp,F
A3 08 |0194 testz WLengthTemp
83 14 |0195 btfsc 03h,2
C8 31 |0196 goto SetTgl
25 08 |0197 movfw TableCnt
00 2E |0198 call DeviceInfoTable
8E 17 |0199 btfss 0eh,6
9D 31 |019A goto Sendbyte4
25 08 |019B movfw TableCnt
00 2F |019C call DeviceReportTable
1C 00 |019D movwr Tx0Fifo4
A5 0A |019E incf TableCnt,F
A4 0A |019F incf LengthCnt,F
A3 03 |01A0 decf WLengthTemp,F
A3 08 |01A1 testz WLengthTemp
83 14 |01A2 btfsc 03h,2
C8 31 |01A3 goto SetTgl
25 08 |01A4 movfw TableCnt
00 2E |01A5 call DeviceInfoTable
8E 17 |01A6 btfss 0eh,6
AA 31 |01A7 goto Sendbyte5
25 08 |01A8 movfw TableCnt
00 2F |01A9 call DeviceReportTable
1D 00 |01AA movwr Tx0Fifo5
A5 0A |01AB incf TableCnt,F
A4 0A |01AC incf LengthCnt,F
A3 03 |01AD decf WLengthTemp,F
A3 08 |01AE testz WLengthTemp
83 14 |01AF btfsc 03h,2
C8 31 |01B0 goto SetTgl
25 08 |01B1 movfw TableCnt
00 2E |01B2 call DeviceInfoTable
8E 17 |01B3 btfss 0eh,6
B7 31 |01B4 goto Sendbyte6
25 08 |01B5 movfw TableCnt
00 2F |01B6 call DeviceReportTable
1E 00 |01B7 movwr Tx0Fifo6
A5 0A |01B8 incf TableCnt,F
A4 0A |01B9 incf LengthCnt,F
A3 03 |01BA decf WLengthTemp,F
A3 08 |01BB testz WLengthTemp
83 14 |01BC btfsc 03h,2
C8 31 |01BD goto SetTgl
25 08 |01BE movfw TableCnt
00 2E |01BF call DeviceInfoTable
8E 17 |01C0 btfss 0eh,6
C4 31 |01C1 goto Sendbyte7
25 08 |01C2 movfw TableCnt
00 2F |01C3 call DeviceReportTable
1F 00 |01C4 movwr Tx0Fifo7
A5 0A |01C5 incf TableCnt,F
A4 0A |01C6 incf LengthCnt,F
A3 03 |01C7 decf WLengthTemp,F
40 19 |01C8 movlw 40h
95 06 |01C9 xorwf Tx0Reg,F
F0 19 |01CA movlw f0h
95 05 |01CB andwf Tx0Reg,F
24 08 |01CC movfw LengthCnt
95 04 |01CD iorwf Tx0Reg,F
D5 13 |01CE bsf 15h,7
13 12 |01CF bsf 13h,0
40 00 |01D0 ret
C0 19 |01D1 movlw c0h
95 00 |01D2 movwf Tx0Reg
13 12 |01D3 bsf 13h,0
40 00 |01D4 ret
8E 10 |01D5 bcf 0eh,2
CE 17 |01D6 btfss 0eh,7
DB 31 |01D7 goto Tx0TransCheck
1A 08 |01D8 movfw WValue
90 04 |01D9 iorwf UsbFun,F
CE 11 |01DA bcf 0eh,7
A3 08 |01DB testz WLengthTemp
83 16 |01DC btfss 03h,2
E6 31 |01DD goto NormalTrans
8E 11 |01DE bcf 0eh,6
40 19 |01DF movlw 40h
95 06 |01E0 xorwf Tx0Reg,F
F0 19 |01E1 movlw f0h
95 05 |01E2 andwf Tx0Reg,F
D5 13 |01E3 bsf 15h,7
13 12 |01E4 bsf 13h,0
40 00 |01E5 ret
5F 21 |01E6 call Tx0Transfer
40 00 |01E7 ret
CE 10 |01E8 bcf 0eh,3
94 15 |01E9 btfsc 14h,6
43 32 |01EA goto Rc0TaskError
54 15 |01EB btfsc 14h,5
43 32 |01EC goto Rc0TaskError
14 17 |01ED btfss 14h,4
26 32 |01EE goto Ep0Out
D4 15 |01EF btfsc 14h,7
43 32 |01F0 goto Rc0TaskError
0F 19 |01F1 movlw 0fh
14 05 |01F2 andwf Rc0Cnt,W
B3 00 |01F3 movwf AnyCountTemp
08 19 |01F4 movlw 08h
B3 02 |01F5 subwf AnyCountTemp,F
83 16 |01F6 btfss 03h,2
43 32 |01F7 goto Rc0TaskError
95 11 |01F8 bcf 15h,6
21 19 |01F9 movlw HidSetRequest ;(21h)
18 02 |01FA subwf BmRequestType,W
83 14 |01FB btfsc 03h,2
82 32 |01FC goto HidSetRequestTask
A1 19 |01FD movlw HidGetRequest ;(a1h)
18 02 |01FE subwf BmRequestType,W
83 14 |01FF btfsc 03h,2
C5 33 |0200 goto HidGetRequestTask
05 19 |0201 movlw SetAddress ;(05h)
19 02 |0202 subwf BRequest,W
83 14 |0203 btfsc 03h,2
A7 32 |0204 goto SetAddressTask
08 19 |0205 movlw GetConfiguration ;(08h)
19 02 |0206 subwf BRequest,W
83 14 |0207 btfsc 03h,2
20 33 |0208 goto GetConfigurationTask
09 19 |0209 movlw SetConfiguration ;(09h)
19 02 |020A subwf BRequest,W
83 14 |020B btfsc 03h,2
AA 32 |020C goto SetConfigurationTask
00 19 |020D movlw GetStatus ;(00h)
19 02 |020E subwf BRequest,W
83 14 |020F btfsc 03h,2
74 33 |0210 goto GetStatusTask
0A 19 |0211 movlw GetInterface ;(0ah)
19 02 |0212 subwf BRequest,W
83 14 |0213 btfsc 03h,2
AB 33 |0214 goto GetInterfaceTask
0B 19 |0215 movlw SetInterface ;(0bh)
19 02 |0216 subwf BRequest,W
83 14 |0217 btfsc 03h,2
B7 33 |0218 goto SetInterfaceTask
01 19 |0219 movlw ClearFeature ;(01h)
19 02 |021A subwf BRequest,W
83 14 |021B btfsc 03h,2
2C 33 |021C goto ClearFeatureTask
03 19 |021D movlw SetFeature ;(03h)
19 02 |021E subwf BRequest,W
83 14 |021F btfsc 03h,2
4F 33 |0220 goto SetFeatureTask
06 19 |0221 movlw GetDescriptor ;(06h)
19 02 |0222 subwf BRequest,W
83 14 |0223 btfsc 03h,2
C6 32 |0224 goto GetDescriptorTask
43 32 |0225 goto Rc0TaskError
14 08 |0226 movfw Rc0Cnt
B3 00 |0227 movwf AnyCountTemp
0F 19 |0228 movlw 0fh
B3 05 |0229 andwf AnyCountTemp,F
B3 08 |022A testz AnyCountTemp
83 14 |022B btfsc 03h,2
41 32 |022C goto NoDataControlWrite
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -