📄 main.src
字号:
; .\main.SRC generated from: main.c
; COMPILER INVOKED BY:
; C:\Keil\C51\BIN\C51.EXE main.c LARGE BROWSE DEBUG OBJECTEXTEND SRC(.\main.SRC)
$NOMOD51
NAME MAIN
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?initXREG?MAIN SEGMENT CODE
?PR?_WriteBufferToFlash?MAIN SEGMENT CODE
?XD?_WriteBufferToFlash?MAIN SEGMENT XDATA OVERLAYABLE
?PR?_ReadBufferFromFlash?MAIN SEGMENT CODE
?XD?_ReadBufferFromFlash?MAIN SEGMENT XDATA OVERLAYABLE
?PR?OnDeviceConfigured?MAIN SEGMENT CODE
?PR?_PrepareTransmitSegment?MAIN SEGMENT CODE
?XD?_PrepareTransmitSegment?MAIN SEGMENT XDATA OVERLAYABLE
?PR?OnReportTransmitted?MAIN SEGMENT CODE
?PR?_OnReportSegmentReceived?MAIN SEGMENT CODE
?PR?OnReportReceived?MAIN SEGMENT CODE
?PR?HandleReport?MAIN SEGMENT CODE
?PR?OnUSBSuspend?MAIN SEGMENT CODE
?PR?main?MAIN SEGMENT CODE
?PR?UsbIsr?MAIN SEGMENT CODE
?PR?OnTransmitEP1?MAIN SEGMENT CODE
?PR?DDC_isr?MAIN SEGMENT CODE
?CO?MAIN SEGMENT CODE
?C_INITSEG SEGMENT CODE
?DT?MAIN SEGMENT DATA
?BA?MAIN SEGMENT DATA BITADDRESSABLE
?XD?MAIN SEGMENT XDATA
?DT?_PrepareTransmitSegment?MAIN SEGMENT DATA OVERLAYABLE
?DT?_OnReportSegmentReceived?MAIN SEGMENT DATA OVERLAYABLE
?DT?OnUSBSuspend?MAIN SEGMENT DATA OVERLAYABLE
?DT?main?MAIN SEGMENT DATA OVERLAYABLE
?DT?UsbIsr?MAIN SEGMENT DATA OVERLAYABLE
?DT?OnTransmitEP1?MAIN SEGMENT DATA OVERLAYABLE
?DT?DDC_isr?MAIN SEGMENT DATA OVERLAYABLE
EXTRN CODE (initLCD)
EXTRN XDATA (setupPacket)
EXTRN CODE (flash_reset)
EXTRN CODE (flash_boot_reset)
EXTRN CODE (OnSetupPacket)
EXTRN CODE (OnUSBReset)
EXTRN DATA (LCD_buffer)
EXTRN CODE (_flash_write_with_poll)
EXTRN CODE (_TransmitDataEPx)
EXTRN XDATA (?_TransmitDataEPx?BYTE)
EXTRN CODE (UsbInitialize)
EXTRN CODE (_printfLCD)
EXTRN XDATA (?_printfLCD?BYTE)
EXTRN CODE (_flash_boot_write_with_poll)
EXTRN XDATA (UPSD_xreg)
EXTRN CODE (_flash_erase_sector)
EXTRN CODE (_LCD_delay_ms)
EXTRN CODE (ReadSetupPacket)
EXTRN CODE (_flash_boot_erase_sector)
EXTRN CODE (BaseEp0TxHandler)
EXTRN CODE (_TransmitDataEP0)
EXTRN CODE (?C?ILDIX)
EXTRN CODE (?C?CLDPTR)
EXTRN CODE (?C?CSTPTR)
EXTRN CODE (?C?COPY)
EXTRN CODE (?C?MEMSET)
EXTRN CODE (?C_STARTUP)
PUBLIC AuxTXBuf
PUBLIC txReport
PUBLIC GoOnResume
PUBLIC txIndex
PUBLIC DDCCONintc
PUBLIC GoOnSuspend
PUBLIC g_debugUSB_INT_CNT
PUBLIC rcvReport
PUBLIC rcvIndex
PUBLIC returnStatus
PUBLIC status
PUBLIC currentCmd
PUBLIC LCDBufTXIndex
PUBLIC g_debugTimer2_INT_CNT
PUBLIC USB_ISR_FLAGS
PUBLIC counter
PUBLIC main
PUBLIC OnDeviceConfigured
PUBLIC initXREG
RSEG ?XD?_WriteBufferToFlash?MAIN
?_WriteBufferToFlash?BYTE:
flash?140: DS 1
address?141: DS 2
buf?142: DS 3
cb?143: DS 2
ORG 8
p?144: DS 2
RSEG ?XD?_ReadBufferFromFlash?MAIN
?_ReadBufferFromFlash?BYTE:
address?245: DS 2
buf?246: DS 3
cb?247: DS 2
RSEG ?XD?_PrepareTransmitSegment?MAIN
?_PrepareTransmitSegment?BYTE:
index?449: DS 1
RSEG ?DT?MAIN
counter: DS 2
txBuf: DS 8
g_debugTimer2_INT_CNT: DS 1
LCDBufTXIndex: DS 1
returnStatus: DS 1
bufIndex: DS 1
rcvIndex: DS 1
g_debugUSB_INT_CNT: DS 2
txIndex: DS 1
RSEG ?BA?MAIN
USB_ISR_FLAGS: DS 1
GoOnSuspend EQU (USB_ISR_FLAGS+0).7
GoOnResume EQU (USB_ISR_FLAGS+0).0
RSEG ?XD?MAIN
currentCmd: DS 64
status: DS 64
rcvReport: DS 64
DDCCONintc: DS 1
txReport: DS 64
AuxTXBuf: DS 8
RSEG ?DT?_PrepareTransmitSegment?MAIN
cbData?450: DS 1
RSEG ?DT?_PrepareTransmitSegment?MAIN
i?451: DS 1
RSEG ?DT?_OnReportSegmentReceived?MAIN
cbData?653: DS 1
RSEG ?DT?_OnReportSegmentReceived?MAIN
index?654: DS 1
RSEG ?DT?OnUSBSuspend?MAIN
bie?955: DS 1
RSEG ?DT?OnUSBSuspend?MAIN
biea?956: DS 1
RSEG ?DT?main?MAIN
c?1057: DS 1
RSEG ?DT?UsbIsr?MAIN
cb?1158: DS 1
RSEG ?DT?UsbIsr?MAIN
i?1159: DS 1
RSEG ?DT?OnTransmitEP1?MAIN
i?1260: DS 1
RSEG ?DT?OnTransmitEP1?MAIN
nBytes?1261: DS 1
RSEG ?DT?DDC_isr?MAIN
ddcint?1362: DS 1
RSEG ?CO?MAIN
?SC_0:
DB 00AH,'*' ,' ' ,'S' ,'U' ,'S' ,'P' ,'E' ,'N' ,'D'
DB ' ' ,'M' ,'O' ,'D' ,'E' ,' ' ,'*' ,00AH,000H
?SC_19:
DB 00DH,'C' ,'P' ,'U' ,' ' ,'i' ,'n' ,' ' ,'I' ,'d'
DB 'l' ,'e' ,' ' ,'m' ,'o' ,'d' ,'e' ,000H
?SC_37:
DB 00DH,' ' ,' ' ,' ' ,' ' ,' ' ,' ' ,' ' ,' ' ,' '
DB ' ' ,' ' ,' ' ,' ' ,' ' ,' ' ,' ' ,00AH,000H
?SC_56:
DB 00DH,' ' ,' ' ,' ' ,' ' ,' ' ,' ' ,' ' ,' ' ,' '
DB ' ' ,' ' ,' ' ,' ' ,' ' ,' ' ,' ' ,00DH,000H
?SC_75:
DB 00DH,'*' ,'U' ,'S' ,'B' ,' ' ,'D' ,'E' ,'M' ,'O'
DB ' ' ,'V' ,'.' ,'2' ,'.' ,'1' ,'*' ,00AH,000H
?SC_94:
DB 00DH,'%' ,'B' ,' ' ,'%' ,'x' ,' ' ,'%' ,'x' ,'%'
DB 'c' ,' ' ,'%' ,'W' ,00DH,000H
RSEG ?C_INITSEG
DB 041H
DW DDCCONintc
DB 000H
DB 002H
DB g_debugUSB_INT_CNT
DW 00000H
DB 001H
DB g_debugTimer2_INT_CNT
DB 000H
DB 001H
DB USB_ISR_FLAGS
DB 000H
DB 001H
DB bufIndex
DB 000H
; /* `=========================================================================`
; main.c
;
; USB IAP (In Application Programming) Demo for uPSD32xx
;
; Version:
; April 30, 2004 - Beta Version 1.0
;
; Description:
; The demo code provided is considered beta. It provides a good example of the
; uPSD32xx operating as a low speed, HID class device performing IAP features.
; The firmware is for the uPSD32xx device on a DK3200 for IAP communicating
; over USB to a Windows application.
;
; USB Compliance:
; This beta code passes the Chapter 9 and HID tests provided by the USB Command
; Verifier program (USBCV R1.2.1). USBCV is available from the USB IF website at:
; http://www.usb.org/developers/developers/tools/
;
; The Passing test result reports for the Chapter 9 and HID tests run on this
; firmware in the DK3200 are included in the "..\USBCV Test Reports" subdirectory.
; Regarding the warnings in the test reports, see the known limitations listed
; below.
;
; Known Limitations:
; 1. The uPSD32xx hardware does not support remote wakeup but does support host
; resume.
;
; 2. This version of the demo code doesn't support the GetIdle and SetIdle
; commands.
;
; 3. This version of the demo code passes the Chapter 9 EnumerateTest the majority
; of the time but on occasion fails.
;
;
;
;
; Important !!!
; =============
; If you have a previous beta version, please replace all parts
; of your SW with this new version, there are many small but
; important changes that are not
; obvious for the first look.
;
;
;
; Notes:
; ======
; supports USB SUSPEND and RESUME features
; supports USB DisconnectOndemand feature
;
;
; - Version >= Beta 1.0 - DDC int only
;
; - this version of USB demo was designed for uPSD3234A. Check your type of uPSD.
;
; - be sure you have jumpers PB0-PB3 present on your DK3200 kit
; to avoid some false detect of button press.
; This version supports DisconnectOnDemand feature and tests PB port.
;
; - We recommend to design your USB-isr to be as shortest as possible,
; make your USB ISR part as short as possible if you add something
;
; - set the USB priority to the max.level (bit 0 of IPA, see uPSD323X datasheet).
;
; - This version uses relative register addressing,
; use #pragma NOAREGS directive in your applications ...
;
; - Use data directive or place your variables to data area directly
; (data variables are executed faster than xdata, but their amount is more limited.)
;
; - use 36MHz xtal (or 24MHz if not posssible) oscillator freq.only
;
; - be careful of using <string.h> and other routines in USB ISRs
;
; Tested on DK3200 board. Rev.0.1.
;
;
;
;
;
;
; ..........................
; . .
; . ****************** .
; . **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 //this source must use relative registers !!!
;
; #include <string.h>
; #include "upsd3200.h"
; #include "upsd_usb.h"
; #include "lcd_3200.h"
; #include "app_intr.h"
;
;
; /*========= Prototypes =========*/
;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -