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

📄 usbctrltrf.lst

📁 USB的开发例子,用PIC18F4550实现.可以和电脑用USB控制连接.
💻 LST
📖 第 1 页 / 共 3 页
字号:
   232  000966                     _USBCtrlTrfInHandler:
   233  000000                     
   234                           ;usbctrltrf.c: 222: if(usb_device_state==4) { UA
      +                          DDR = SetupPkt.f.bDevADR._byte; if(UADDR > 0) us
      +                          b_device_state=5; else usb_device_state=3; };
   235  000966  C37B  FFE8         	movff	_usb_device_state,wreg
   236  00096A  0A04               	xorlw	4
   237  00096C  A4D8               	btfss	status,2,c
   238  00096E  D00A               	goto	l95
   239  000970  C482 FF6E          	movff	1154,3950
   240  000974  506E               	movf	3950,w,c
   241  000976  B4D8               	btfsc	status,2,c
   242  000978  D002               	goto	l96
   243  00097A  0E05               	movlw	5
   244  00097C  D001               	goto	L2
   245  00097E                     l96:
   246  00097E  0E03               	movlw	3
   247  000980                     L2:
   248  000980  CFE8 F37B          	movff	wreg,_usb_device_state
   249  000984                     l95:
   250                           ;usbctrltrf.c: 224: if(ctrl_trf_state == 1)
   251  000984  C378  F000         	movff	_ctrl_trf_state,btemp
   252  000988  0400               	decf	btemp,w
   253  00098A  A4D8               	btfss	status,2,c
   254  00098C  D0F5               	goto	_USBPrepareForNextSetupTrf
   255                           ;usbctrltrf.c: 225: {
   256  00098E  D80B               	call	_USBCtrlTrfTxService	;wreg free
   257                           ;usbctrltrf.c: 228: if(ep[0].in.a.Stat.a.DTS == 
      +                          0)
   258  000990  0104               	movlb	4
   259  000992  BD04               	btfsc	4,6,b
   260  000994  D004               	goto	l99
   261                           ;usbctrltrf.c: 229: ep[0].in.a.Stat._byte = 0x80
      +                          |0x40|0x08;
   262  000996  0EC8               	movlw	-56
   263  000998  CFE8 F404          	movff	wreg,1028
   264                           ;usbctrltrf.c: 230: else
   265  00099C  0012               	return	
   266  00099E                     l99:
   267                           ;usbctrltrf.c: 231: ep[0].in.a.Stat._byte = 0x80
      +                          |0x00|0x08;
   268  00099E  0E88               	movlw	-120
   269  0009A0  CFE8 F404          	movff	wreg,1028
   270                           ;usbctrltrf.c: 232: }
   271  0009A4  0012               	return	
   272                           ;usbctrltrf.c: 234: USBPrepareForNextSetupTrf();
   273                           ;usbctrltrf.c: 236: }
   274                           ;usbctrltrf.c: 259: void USBCtrlTrfTxService(voi
      +                          d)
   275                           ;usbctrltrf.c: 260: {
   276  0009A6                     _USBCtrlTrfTxService:
   277  000000                     
   278                           ;usbctrltrf.c: 261: WORD byte_to_send;
   279  0009A6  0100               	movlb	_wCount shr (0+8)
   280  0009A8  0E00               	movlw	0
   281  0009AA  5DE6               	subwf	(_wCount+1)& (0+255),w,b
   282  0009AC  0E08               	movlw	8
   283  0009AE  B4D8               	btfsc	status,2,c
   284  0009B0  5DE5               	subwf	_wCount& (0+255),w,b
   285  0009B2  B0D8               	btfsc	status,0,c
   286  0009B4  D005               	goto	l103
   287                           ;usbctrltrf.c: 267: byte_to_send._word = wCount.
      +                          _word;
   288  0009B6  C0E5  F0FD         	movff	_wCount,?a_USBCtrlTrfTxService
   289  0009BA  C0E6  F0FE         	movff	_wCount+1,?a_USBCtrlTrfTxService+1
   290                           ;usbctrltrf.c: 268: else
   291  0009BE  D004               	goto	l104
   292  0009C0                     l103:
   293                           ;usbctrltrf.c: 269: byte_to_send._word = 8;
   294  0009C0  0E08               	movlw	8
   295  0009C2  0100               	movlb	__Lparam shr (0+8)
   296  0009C4  6FFD               	movwf	?a_USBCtrlTrfTxService^(__Lparam& (0+6528
      +                          0))
   297  0009C6  6BFE               	clrf	(?a_USBCtrlTrfTxService+1)^(__Lparam& (0+6
      +                          5280))
   298  0009C8                     l104:
   299                           ;usbctrltrf.c: 275: ep[0].in.a.Stat.a.BC9 = 0;
   300  0009C8  0104               	movlb	4
   301  0009CA  9204               	bcf	4,1
   302                           ;usbctrltrf.c: 276: ep[0].in.a.Stat.a.BC8 = 0;
   303  0009CC  9004               	bcf	4,0
   304                           ;usbctrltrf.c: 277: ep[0].in.a.Stat._byte |= ((b
      +                          yte_to_send).d.v[1]);
   305  0009CE  0100               	movlb	__Lparam shr (0+8)
   306  0009D0  51FE               	movf	(?a_USBCtrlTrfTxService+1)^(__Lparam& (0+6
      +                          5280)),w
   307  0009D2  0104               	movlb	4
   308  0009D4  1304               	iorwf	4,f,b
   309                           ;usbctrltrf.c: 278: ep[0].in._byte[1] = ((byte_t
      +                          o_send).d.v[0]);
   310  0009D6  EE04 F005          	lfsr	0,1029
   311  0009DA  C0FD  FFEF         	movff	?a_USBCtrlTrfTxService,indf0
   312                           ;usbctrltrf.c: 283: wCount._word = wCount._word 
      +                          - byte_to_send._word;
   313  0009DE  EE00  F0E5         	lfsr	0,_wCount
   314  0009E2  0100               	movlb	__Lparam shr (0+8)
   315  0009E4  51FD               	movf	?a_USBCtrlTrfTxService^(__Lparam& (0+65280
      +                          )),w
   316  0009E6  5EEE               	subwf	postinc0,f,c
   317  0009E8  51FE               	movf	(?a_USBCtrlTrfTxService+1)^(__Lparam& (0+6
      +                          5280)),w
   318  0009EA  5AED               	subwfb	postdec0,f,c
   319                           ;usbctrltrf.c: 285: pDst.bRam = (byte*)&CtrlTrfD
      +                          ata;
   320  0009EC  0100               	movlb	_pDst shr (0+8)
   321  0009EE  0EC0               	movlw	192
   322  0009F0  6FE1               	movwf	_pDst& (0+255),b
   323  0009F2  0E04               	movlw	4
   324  0009F4  6FE2               	movwf	(_pDst+1)& (0+255),b
   325                           ;usbctrltrf.c: 287: if(usb_stat.a.ctrl_trf_mem =
      +                          = 1)
   326  0009F6  0103               	movlb	_usb_stat shr (0+8)
   327  0009F8  B37C               	btfsc	_usb_stat& (0+255),1,b
   328  0009FA  D01F               	goto	l106
   329  0009FC  D038               	goto	l110
   330                           ;usbctrltrf.c: 288: {
   331  0009FE                     l107:
   332                           ;usbctrltrf.c: 290: {
   333  0009FE  C0E3  FFF6         	movff	_pSrc,tblptrl
   334  000A02  C0E4  FFF7         	movff	_pSrc+1,tblptrh
   335  000A06  C0E1  FFE9         	movff	_pDst,fsr0l
   336  000A0A  C0E2  FFEA         	movff	_pDst+1,fsr0h
   337  000A0E  0E03               	movlw	(high __ramtop+-1)
   338  000A10  64F7               	cpfsgt	tblptrh,c
   339  000A12  D003               	bra	u147
   340  000A14  0008               	tblrd		*
   341  000A16  50F5               	movf	tablat,w,c
   342  000A18  D005               	bra	u140
   343  000A1A                     u147:
   344  000A1A  CFF6 FFE1          	movff	tblptrl,fsr1l
   345  000A1E  CFF7 FFE2          	movff	tblptrh,fsr1h
   346  000A22  50E7               	movf	indf1,w,c
   347  000A24                     u140:
   348  000A24  6EEF               	movwf	indf0,c
   349                           ;usbctrltrf.c: 292: pDst.bRam++;
   350  000A26  0100               	movlb	_pDst shr (0+8)
   351  000A28  2BE1               	incf	_pDst& (0+255),f,b
   352  000A2A  0E00               	movlw	0
   353  000A2C  23E2               	addwfc	(_pDst+1)& (0+255),f,b
   354                           ;usbctrltrf.c: 293: pSrc.bRom++;
   355  000A2E  2BE3               	incf	_pSrc& (0+255),f,b
   356  000A30  23E4               	addwfc	(_pSrc+1)& (0+255),f,b
   357                           ;usbctrltrf.c: 294: byte_to_send._word--;
   358  000A32  0100               	movlb	__Lparam shr (0+8)
   359  000A34  07FD               	decf	?a_USBCtrlTrfTxService^(__Lparam& (0+65280
      +                          )),f
   360  000A36  A0D8               	btfss	status,0,c
   361  000A38  07FE               	decf	(?a_USBCtrlTrfTxService+1)^(__Lparam& (0+6
      +                          5280)),f
   362  000A3A                     l106:
   363                           ;usbctrltrf.c: 295: }
   364  000A3A  0100               	movlb	__Lparam shr (0+8)
   365  000A3C  51FE               	movf	(?a_USBCtrlTrfTxService+1)^(__Lparam& (0+6
      +                          5280)),w
   366  000A3E  11FD               	iorwf	?a_USBCtrlTrfTxService^(__Lparam& (0+6528
      +                          0)),w
   367  000A40  B4D8               	btfsc	status,2,c
   368  000A42  0012               	return	
   369  000A44  D7DC               	goto	l107
   370                           ;usbctrltrf.c: 296: }
   371                           ;usbctrltrf.c: 298: {
   372  000A46                     l111:
   373                           ;usbctrltrf.c: 300: {
   374  000A46  C0E3  FFE1         	movff	_pSrc,fsr1l
   375  000A4A  C0E4  FFE2         	movff	_pSrc+1,fsr1h
   376  000A4E  C0E1  FFE9         	movff	_pDst,fsr0l
   377  000A52  C0E2  FFEA         	movff	_pDst+1,fsr0h
   378  000A56  CFE7 FFEF          	movff	indf1,indf0
   379                           ;usbctrltrf.c: 302: pDst.bRam++;
   380  000A5A  0100               	movlb	_pDst shr (0+8)
   381  000A5C  2BE1               	incf	_pDst& (0+255),f,b
   382  000A5E  0E00               	movlw	0
   383  000A60  23E2               	addwfc	(_pDst+1)& (0+255),f,b
   384                           ;usbctrltrf.c: 303: pSrc.bRam++;
   385  000A62  2BE3               	incf	_pSrc& (0+255),f,b
   386  000A64  23E4               	addwfc	(_pSrc+1)& (0+255),f,b
   387                           ;usbctrltrf.c: 304: byte_to_send._word--;
   388  000A66  0100               	movlb	__Lparam shr (0+8)
   389  000A68  07FD               	decf	?a_USBCtrlTrfTxService^(__Lparam& (0+65280
      +                          )),f
   390  000A6A  A0D8               	btfss	status,0,c
   391  000A6C  07FE               	decf	(?a_USBCtrlTrfTxService+1)^(__Lparam& (0+6
      +                          5280)),f
   392  000A6E                     l110:
   393                           ;usbctrltrf.c: 305: }
   394  000A6E  0100               	movlb	__Lparam shr (0+8)
   395  000A70  51FE               	movf	(?a_USBCtrlTrfTxService+1)^(__Lparam& (0+6
      +                          5280)),w
   396  000A72  11FD               	iorwf	?a_USBCtrlTrfTxService^(__Lparam& (0+6528
      +                          0)),w
   397  000A74  B4D8               	btfsc	status,2,c
   398  000A76  0012               	return	
   399  000A78  D7E6               	goto	l111
   400                           ;usbctrltrf.c: 306: }
   401                           ;usbctrltrf.c: 308: }
   402                           ;usbctrltrf.c: 330: void USBCtrlTrfRxService(voi
      +                          d)
   403                           ;usbctrltrf.c: 331: {
   404  000A7A                     _USBCtrlTrfRxService:
   405  000000                     
   406                           ;usbctrltrf.c: 332: WORD byte_to_read;
   407  000A7A  C400 FFE8          	movff	1024,wreg
   408  000A7E  0B03               	andlw	3
   409  000A80  0100               	movlb	__Lparam shr (0+8)
   410  000A82  6FFD               	movwf	(?a_USBCtrlTrfRxService+1)^(__Lparam& (0+
      +                          65280))
   411                           ;usbctrltrf.c: 335: ((byte_to_read).d.v[0]) = ep
      +                          [0].out.a.Cnt;
   412  000A84  C401 F0FC          	movff	1025,?a_USBCtrlTrfRxService
   413                           ;usbctrltrf.c: 340: wCount._word = wCount._word 
      +                          + byte_to_read._word;
   414  000A88  EE00  F0E5         	lfsr	0,_wCount
   415  000A8C  51FC               	movf	?a_USBCtrlTrfRxService^(__Lparam& (0+65280
      +                          )),w
   416  000A8E  26EE               	addwf	postinc0,f,c
   417  000A90  51FD               	movf	(?a_USBCtrlTrfRxService+1)^(__Lparam& (0+6
      +                          5280)),w
   418  000A92  22ED               	addwfc	postdec0,f,c
   419                           ;usbctrltrf.c: 342: pSrc.bRam = (byte*)&CtrlTrfD
      +                          ata;
   420  000A94  0100               	movlb	_pSrc shr (0+8)
   421  000A96  0EC0               	movlw	192
   422  000A98  6FE3               	movwf	_pSrc& (0+255),b
   423  000A9A  0E04               	movlw	4
   424  000A9C  6FE4               	movwf	(_pSrc+1)& (0+255),b
   425                           ;usbctrltrf.c: 344: while(byte_to_read._word)
   426  000A9E                     l114:
   427                           ;usbctrltrf.c: 350: }
   428  000A9E  0100               	movlb	__Lparam shr (0+8)
   429  000AA0  51FD               	movf	(?a_USBCtrlTrfRxService+1)^(__Lparam& (0+6
      +                          5280)),w
   430  000AA2  11FC               	iorwf	?a_USBCtrlTrfRxService^(__Lparam& (0+6528
      +                          0)),w
   431  000AA4  B4D8               	btfsc	status,2,c
   432  000AA6  0012               	return	
   433                           ;usbctrltrf.c: 345: {
   434  000AA8  C0E3  FFE1         	movff	_pSrc,fsr1l
   435  000AAC  C0E4  FFE2         	movff	_pSrc+1,fsr1h
   436  000AB0  C0E1  FFE9         	movff	_pDst,fsr0l
   437  000AB4  C0E2  FFEA         	movff	_pDst+1,fsr0h
   438  000AB8  CFE7 FFEF          	movff	indf1,indf0
   439                           ;usbctrltrf.c: 347: pDst.bRam++;
   440  000ABC  0100               	movlb	_pDst shr (0+8)
   441  000ABE  2BE1               	incf	_pDst& (0+255),f,b
   442  000AC0  0E00               	movlw	0
   443  000AC2  23E2               	addwfc	(_pDst+1)& (0+255),f,b
   444                           ;usbctrltrf.c: 348: pSrc.bRam++;
   445  000AC4  2BE3               	incf	_pSrc& (0+255),f,b
   446  000AC6  23E4               	addwfc	(_pSrc+1)& (0+255),f,b
   447                           ;usbctrltrf.c: 349: byte_to_read._word--;
   448  000AC8  0100               	movlb	__Lparam shr (0+8)
   449  000ACA  07FC               	decf	?a_USBCtrlTrfRxService^(__Lparam& (0+65280
      +                          )),f
   450  000ACC  A0D8               	btfss	status,0,c
   451  000ACE  07FD               	decf	(?a_USBCtrlTrfRxService+1)^(__Lparam& (0+6
      +                          5280)),f
   452  000AD0  D7E6               	goto	l114

⌨️ 快捷键说明

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