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

📄 upsd_usb.src

📁 USB IAP (In Application Programming) Demo for uPSD32
💻 SRC
📖 第 1 页 / 共 4 页
字号:
; .\upsd_usb.SRC generated from: upsd_usb.c
; COMPILER INVOKED BY:
;        C:\Keil\C51\BIN\C51.EXE upsd_usb.c LARGE BROWSE DEBUG OBJECTEXTEND SRC(.\upsd_usb.SRC)

$NOMOD51

NAME	UPSD_USB

P0	DATA	080H
P1	DATA	090H
AA	BIT	0D8H.2
P2	DATA	0A0H
P3	DATA	0B0H
P4	DATA	0C0H
AC	BIT	0D0H.6
T0	BIT	0B0H.4
T1	BIT	0B0H.5
WDKEY	DATA	0AEH
EA	BIT	0A8H.7
T2	BIT	090H.0
UISTA	DATA	0E8H
ENI1	BIT	0D8H.6
IE	DATA	0A8H
P1_0	BIT	090H.0
P1_1	BIT	090H.1
P3_0	BIT	0B0H.0
P1_2	BIT	090H.2
P4_0	BIT	0C0H.0
P3_1	BIT	0B0H.1
P1_3	BIT	090H.3
P4_1	BIT	0C0H.1
P3_2	BIT	0B0H.2
P1_4	BIT	090H.4
P4_2	BIT	0C0H.2
P3_3	BIT	0B0H.3
P1_5	BIT	090H.5
WDRST	DATA	0A6H
EXF2	BIT	0C8H.6
P4_3	BIT	0C0H.3
P3_4	BIT	0B0H.4
P1_6	BIT	090H.6
P4_4	BIT	0C0H.4
P3_5	BIT	0B0H.5
P1_7	BIT	090H.7
S1SETUP	DATA	0D1H
ES	BIT	0A8H.4
P4_5	BIT	0C0H.5
P3_6	BIT	0B0H.6
S2SETUP	DATA	0D2H
IP	DATA	0B8H
P4_6	BIT	0C0H.6
P3_7	BIT	0B0H.7
P4_7	BIT	0C0H.7
ADAT	DATA	096H
RI	BIT	098H.0
UDR0	DATA	0EFH
ADDR	BIT	0D8H.3
CY	BIT	0D0H.7
INT0	BIT	0B0H.2
TI	BIT	098H.1
INT1	BIT	0B0H.3
UDT0	DATA	0E7H
UDT1	DATA	0E6H
RXD2	BIT	090H.2
ACON	DATA	097H
RCAP2H	DATA	0CBH
PS	BIT	0B8H.4
SP	DATA	081H
TXD2	BIT	090H.3
DDCADR	DATA	0D6H
ASCL	DATA	095H
T2EX	BIT	090H.1
PWM0	DATA	0A2H
DDCSDA	BIT	0C0H.0
OV	BIT	0D0H.2
DDCDAT	DATA	0D5H
PWM1	DATA	0A3H
RCAP2L	DATA	0CAH
PWM2	DATA	0A4H
PWM3	DATA	0A5H
C_T2	BIT	0C8H.1
EOPF	BIT	0E8H.1
PSCL0H	DATA	0B2H
UADR	DATA	0EEH
DDCCON	DATA	0D7H
PSCL1H	DATA	0B3H
RCLK	BIT	0C8H.5
DDCSCL	BIT	0C0H.1
TCLK	BIT	0C8H.4
PSCL0L	DATA	0B1H
PSCL1L	DATA	0B4H
PWMCH0	BIT	0C0H.3
SBUF	DATA	099H
PCON	DATA	087H
UIEN	DATA	0E9H
PWMCH1	BIT	0C0H.4
PWMCH2	BIT	0C0H.5
PWMCH3	BIT	0C0H.6
SCON	DATA	098H
PWMCH4	BIT	0C0H.7
TMOD	DATA	089H
TCON	DATA	088H
USCL	DATA	0E1H
USTA	DATA	0EDH
IE0	BIT	088H.1
RAMBUF	DATA	0D4H
IE1	BIT	088H.3
RSTF	BIT	0E8H.5
B	DATA	0F0H
CP_RL2	BIT	0C8H.0
CR0	BIT	0D8H.0
CR1	BIT	0D8H.1
CR2	BIT	0D8H.7
ACC	DATA	0E0H
ET0	BIT	0A8H.1
ET1	BIT	0A8H.3
TF0	BIT	088H.5
ET2	BIT	0A8H.5
TF1	BIT	088H.7
TF2	BIT	0C8H.7
RB8	BIT	098H.2
TH0	DATA	08CH
EX0	BIT	0A8H.0
TH1	DATA	08DH
IT0	BIT	088H.0
TH2	DATA	0CDH
TB8	BIT	098H.3
EX1	BIT	0A8H.2
IT1	BIT	088H.2
IEA	DATA	0A7H
P	BIT	0D0H.0
SM0	BIT	098H.7
TL0	DATA	08AH
SM1	BIT	098H.6
TL1	DATA	08BH
TL2	DATA	0CCH
SM2	BIT	098H.5
RESUMF	BIT	0E8H.0
PT0	BIT	0B8H.1
PT1	BIT	0B8H.3
RS0	BIT	0D0H.3
I2CSC	BIT	0B0H.7
PWMCON	DATA	0A1H
PT2	BIT	0B8H.5
TR0	BIT	088H.4
RS1	BIT	0D0H.4
I2CSD	BIT	0B0H.6
TR1	BIT	088H.6
TR2	BIT	0C8H.2
PX0	BIT	0B8H.0
PX1	BIT	0B8H.2
IPA	DATA	0B7H
S1ADR	DATA	0DBH
DPH	DATA	083H
S2ADR	DATA	0DFH
S1DAT	DATA	0DAH
SUSPND	BIT	0E8H.7
S2DAT	DATA	0DEH
DPL	DATA	082H
DDCVSYNC	BIT	0C0H.2
SBUF2	DATA	09BH
EXEN2	BIT	0C8H.3
RXD0F	BIT	0E8H.3
S1CON	DATA	0D8H
REN	BIT	098H.4
UCON0	DATA	0EAH
S2CON	DATA	0DCH
SCON2	DATA	09AH
UCON1	DATA	0EBH
TXD0F	BIT	0E8H.4
T2MOD	DATA	0C9H
T2CON	DATA	0C8H
UCON2	DATA	0ECH
TXD1F	BIT	0E8H.2
STA	BIT	0D8H.5
S1STA	DATA	0D9H
PWM4D	DATA	0ABH
S2STA	DATA	0DDH
P1SFS	DATA	091H
RXD	BIT	0B0H.0
P3SFS	DATA	093H
TXD	BIT	0B0H.1
P4SFS	DATA	094H
F0	BIT	0D0H.5
STO	BIT	0D8H.4
F1	BIT	0D0H.1
ADC0	BIT	090H.4
PWM4P	DATA	0AAH
ADC1	BIT	090H.5
PSW	DATA	0D0H
ADC2	BIT	090H.6
ADC3	BIT	090H.7
?PR?OnUSBReset?UPSD_USB                  SEGMENT CODE 
?PR?UsbInitialize?UPSD_USB               SEGMENT CODE 
?PR?STALL_EP0?UPSD_USB                   SEGMENT CODE 
?PR?TransmitBufferEP0?UPSD_USB           SEGMENT CODE 
?PR?_TransmitDataEP0?UPSD_USB            SEGMENT CODE 
?XD?_TransmitDataEP0?UPSD_USB            SEGMENT XDATA OVERLAYABLE 
?PR?_TransmitDataEPx?UPSD_USB            SEGMENT CODE 
?XD?_TransmitDataEPx?UPSD_USB            SEGMENT XDATA OVERLAYABLE 
?PR?OnGetStatus?UPSD_USB                 SEGMENT CODE 
?PR?OnClearFeature?UPSD_USB              SEGMENT CODE 
?PR?OnSetFeature?UPSD_USB                SEGMENT CODE 
?PR?OnSetAddress?UPSD_USB                SEGMENT CODE 
?PR?OnGetConfiguration?UPSD_USB          SEGMENT CODE 
?PR?OnSetConfiguration?UPSD_USB          SEGMENT CODE 
?PR?OnGetInterface?UPSD_USB              SEGMENT CODE 
?PR?OnSetInterface?UPSD_USB              SEGMENT CODE 
?PR?OnGetDescriptor?UPSD_USB             SEGMENT CODE 
?PR?OnSetDescriptor?UPSD_USB             SEGMENT CODE 
?PR?ReadSetupPacket?UPSD_USB             SEGMENT CODE 
?XD?ReadSetupPacket?UPSD_USB             SEGMENT XDATA OVERLAYABLE 
?PR?OnSetupPacket?UPSD_USB               SEGMENT CODE 
?PR?BaseEp0TxHandler?UPSD_USB            SEGMENT CODE 
?XD?UPSD_USB         SEGMENT XDATA 
?ID?UPSD_USB         SEGMENT IDATA 
?DT?TransmitBufferEP0?UPSD_USB           SEGMENT DATA OVERLAYABLE 
?DT?_TransmitDataEP0?UPSD_USB            SEGMENT DATA OVERLAYABLE 
?DT?_TransmitDataEPx?UPSD_USB            SEGMENT DATA OVERLAYABLE 
?DT?OnGetDescriptor?UPSD_USB             SEGMENT DATA OVERLAYABLE 
?DT?ReadSetupPacket?UPSD_USB             SEGMENT DATA OVERLAYABLE 
	EXTRN	CODE (stringDescTable)
	EXTRN	CODE (cUSCL_value)
	EXTRN	CODE (OnDeviceConfigured)
	EXTRN	CODE (reportDesc)
	EXTRN	CODE (hidClassDesc)
	EXTRN	CODE (reportDescSize)
	EXTRN	CODE (PhysicalReportDesc)
	EXTRN	CODE (hidClassDescSize)
	EXTRN	CODE (PhysicalReportDescSize)
	EXTRN	CODE (deviceDesc)
	EXTRN	CODE (configDesc)
	EXTRN	CODE (?C?ILDIX)
	EXTRN	CODE (?C?CLDPTR)
	EXTRN	CODE (?C?CSTPTR)
	PUBLIC	usbState
	PUBLIC	SuspendCounter
	PUBLIC	setupPacket
	PUBLIC	ep1State
	PUBLIC	BaseEp0TxHandler
	PUBLIC	OnSetupPacket
	PUBLIC	ReadSetupPacket
	PUBLIC	?_TransmitDataEPx?BYTE
	PUBLIC	_TransmitDataEPx
	PUBLIC	_TransmitDataEP0
	PUBLIC	STALL_EP0
	PUBLIC	UsbInitialize
	PUBLIC	OnUSBReset

	RSEG  ?XD?_TransmitDataEPx?UPSD_USB
?_TransmitDataEPx?BYTE:
          x?545:   DS   2
      pData?546:   DS   3
     nBytes?547:   DS   2

	RSEG  ?XD?ReadSetupPacket?UPSD_USB
?ReadSetupPacket?BYTE:
         p?1651:   DS   3

	RSEG  ?XD?_TransmitDataEP0?UPSD_USB
?_TransmitDataEP0?BYTE:
      pData?442:   DS   3

	RSEG  ?XD?UPSD_USB
  shortTransfer:   DS   1
bytesToTransmitEP0:   DS   2
    setupPacket:   DS   8
pTransmitBufferEP0:   DS   3

	RSEG  ?ID?UPSD_USB
       ep1State:   DS   1
 SuspendCounter:   DS   1
       usbState:   DS   1

	RSEG  ?DT?TransmitBufferEP0?UPSD_USB
          i?340:   DS   2

	RSEG  ?DT?TransmitBufferEP0?UPSD_USB
     nBytes?341:   DS   2

	RSEG  ?DT?_TransmitDataEP0?UPSD_USB
     xBytes?444:   DS   1

	RSEG  ?DT?_TransmitDataEPx?UPSD_USB
     xBytes?548:   DS   1

	RSEG  ?DT?OnGetDescriptor?UPSD_USB
bytesRequested?1449:   DS   2

	RSEG  ?DT?ReadSetupPacket?UPSD_USB
         i?1650:   DS   2
;  /* `=========================================================================`
; 
;                     ***************************************
;                   ****   *                           *   ****
;                                 Title: UPSD_USB
;                              File name: upsd_usb.c
;                              Project name: USB Demo
;                   ***                                    ****
;                     ****************** * ******************
;                   ****                                   ****
;                               Author: Petr PFEIFER
;                            MPG Prague, Czech Republic
;                   ****   *                           *   ****
;                     ***************************************
; 
;                  $Version:  0.107a  Build: April 30, 2004
; 
;                  $Version:  0.107   Build: 2004-04-29,17:55:46
; 
;  
;  
;  
;                                   Description:
;                                   ============
; 
;                       USB driver module for uPSD3200 chip.
;                         Improved version of USB demo v7
;                         Version 0.105 - GetStatus added
; 
; 
;                                      Notes:
;                                      ======
;                       - do not change EPx service routines
;                          and the order of commands ...
; 
; 
;                            ..........................
;                           .                          .
;                           .      ******************  .
;                           .     **PPPPPPPPPPPPPPPP   .
;                           .     *PPPP*******PP****   .
;                           .    **PPP********PP***    .
;                           .    ***PPP******PP****    .
;                           .   *****PPP****PP****     .
;                           .   *****PPP****PP****     .
;                           .  PPPPPPPP****PP****  (R) .
;                           .                          .
;                            ..........................
; 
; 
;                                   =-=-=-=-=-=
;                            =-=-=-=-=-=-=-=-=-=-=-=-=
;                 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
; 
;                        Copyright 2004 ST Microelectronics
; 
;              This code/file is provided as is and has no warranty,
;      implied or otherwise.  You are free to use/modify any of the provided
;     code at your own risk in your applications with the expressed limitation
;         of liability (see below) so long as your product using the code
;                  contains at least one uPSD products (device).
; 
;                             LIMITATION OF LIABILITY:
;                             ========================
;               NEITHER STMicroelectronics NOR ITS VENDORS OR AGENTS
;       SHALL BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF USE, LOSS OF DATA,
;        INTERRUPTION OF BUSINESS, NOR FOR INDIRECT, SPECIAL, INCIDENTAL OR
;        CONSEQUENTIAL DAMAGES OF ANY KIND WHETHER UNDER THIS AGREEMENT OR
;          OTHERWISE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
; 
;                 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
;                            =-=-=-=-=-=-=-=-=-=-=-=-=
;                                   =-=-=-=-=-=
; 
;                    For current information on uPSD products,
;                 please consult our pages on the World Wide Web:
; 
;                                  www.st.com/psm
; 
;                             - - - - - - - - - - - -
; 
;                      STMicroelectronics GROUP OF COMPANIES
;     Australia - Brazil - China - Czech Republic - Finland - France - Germany
;    Hong Kong - India - Italy - Japan - Malaysia - Malta - Morocco - Singapore
;              Spain - Sweden - Switzerland - United Kingdom - U.S.A.
; 
;                                http://www.st.com
; 
; 
;  `========================================================================` */
; 
; #pragma NOAREGS
; 
; #include "upsd3200.h"
; #include "upsd_usb.h"
; 
; //-- Variables ---------------------------------------------------------------
; 
; #define HID_DEVICE 1
; 
; // Constant Variables for USB configuration
; extern const uchar code cUSCL_value;
; 
; // Constant Variables for USB Descriptors
; extern const device_descriptor code deviceDesc;
; extern const configuration_descriptor code configDesc;
; extern const uchar code string0Desc[];
; extern const uchar code string1Desc[];
; extern const uchar code string2Desc[];
; extern const uchar * const code stringDescTable[];
; 
; #if HID_DEVICE
; extern const uchar code hidClassDesc[];
; extern const uchar code hidClassDescSize;
; extern const uchar code reportDesc[];
; extern const uchar code reportDescSize;
; extern const uchar code PhysicalReportDesc;
; extern const uchar code PhysicalReportDescSize;
; #endif
; 
; volatile uchar idata usbState;
; volatile uchar idata ep1State;			//added April 30, 2004
; 
; 
; volatile uchar idata SuspendCounter;
; 
; setup_buffer setupPacket;
; 
; static uchar* pTransmitBufferEP0;
; static int    bytesToTransmitEP0;
; static BOOL   shortTransfer;
; 
; extern void OnDeviceConfigured();
; 
; 
; 
; 
; 
; 
; 
; void OnUSBReset()

	RSEG  ?PR?OnUSBReset?UPSD_USB
OnUSBReset:
			; SOURCE LINE # 141
; /******************************************************************************
;  Function   : void OnUSBReset()
;  Parameters : none
;  Description: USB driver module initialization routine, in USR ISR only !!!.
;  ******************************************************************************/
;  {
			; SOURCE LINE # 147
;   pTransmitBufferEP0 = NULL;
			; SOURCE LINE # 148
	MOV  	DPTR,#pTransmitBufferEP0
	CLR  	A
	MOVX 	@DPTR,A
	INC  	DPTR
	MOVX 	@DPTR,A
	INC  	DPTR
	MOVX 	@DPTR,A
;   bytesToTransmitEP0 = 0;
			; SOURCE LINE # 149
	MOV  	DPTR,#bytesToTransmitEP0
	MOVX 	@DPTR,A
	INC  	DPTR
	MOVX 	@DPTR,A
; 
;   UADR  = 0;                                 // Disable USB hardware
			; SOURCE LINE # 151
	MOV  	UADR,A
;   UCON0 = uRX0E;                             // Enable EP0 for receiving only
			; SOURCE LINE # 152
	MOV  	UCON0,#010H
;   UCON1 = 0;                                 // Disable Endpoint 1
			; SOURCE LINE # 153
	MOV  	UCON1,A
;   UCON2 = uEP1E;                             // Enable EP1
			; SOURCE LINE # 154
	MOV  	UCON2,#04H
;   UADR  = uUSBEN + 0;                        // Enable USB with default address 0
			; SOURCE LINE # 155
	MOV  	UADR,#080H
;   UIEN  = ~(uMCUR+uEOPF+uRESUMIE);
			; SOURCE LINE # 156
	MOV  	UIEN,#0BCH
;    // Enable all USB interrupts except uMCUR (MCU reset on USB reset) and EOP, ...
;   USTA  = 0;
			; SOURCE LINE # 158
	MOV  	USTA,A
;   UISTA = 0;                                 // Clear USB interrupts
			; SOURCE LINE # 159
	MOV  	UISTA,A
;   IEA  |= bEUSB;
			; SOURCE LINE # 160
	ORL  	IEA,#01H
;  }
			; SOURCE LINE # 161
	RET  	
; END OF OnUSBReset

; 
; 
; 
; 
; 
; 
; void UsbInitialize()

	RSEG  ?PR?UsbInitialize?UPSD_USB
UsbInitialize:
			; SOURCE LINE # 168
; /******************************************************************************
;  Function   : void UsbInitialize()
;  Parameters : none
;  Description: USB driver module initialization routine after MCU startup.
;  ******************************************************************************/
;  {
			; SOURCE LINE # 174
;   USCL = cUSCL_value;                        // Set USB clock prescaler
			; SOURCE LINE # 175
	MOV  	DPTR,#cUSCL_value
	CLR  	A
	MOVC 	A,@A+DPTR
	MOV  	USCL,A
;   UIEN  = 0;                                 // Disable all USB interrupts
			; SOURCE LINE # 176
	CLR  	A
	MOV  	UIEN,A
;   UADR  = 0;                                 // Disable USB hardware
			; SOURCE LINE # 177
	MOV  	UADR,A
;   OnUSBReset();
			; SOURCE LINE # 178
	LJMP 	OnUSBReset
; END OF UsbInitialize

;  }
; 
; 
; 
; 
; 
; 
; 
; 
; extern data char usr_cnt;
; 
; 
; 
; void STALL_EP0()

⌨️ 快捷键说明

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