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

📄 upsd3200.h

📁 DK3200 USB DEMO for KEIL C
💻 H
📖 第 1 页 / 共 2 页
字号:


sfr TMOD  = 0x89;                            // Timer / Counter Mode

sfr TL0   = 0x8A;                            // Timer 0 low byte

sfr TL1   = 0x8B;                            // Timer 1 low byte

sfr TH0   = 0x8C;                            // Timer 0 high byte

sfr TH1   = 0x8D;                            // Timer 1 high byte

/*  IE  */
sfr IE    = 0xA8;                            // Interrupt Enable (main)
sbit EA    = IE^7;                           // Enable All interrupts
sbit ET2   = IE^5;                           // Timer 2
sbit ES    = IE^4;                           // Usart 0
sbit ET1   = IE^3;                           // Timer 1
sbit EX1   = IE^2;                           // External Int1
sbit ET0   = IE^1;                           // Timer 0
sbit EX0   = IE^0;                           // External Int0

/*  IP  */
sfr IP    = 0xB8;                            // Interrupt Priority (main)
sbit PT2   = IP^5;                           // Timer 2
sbit PS    = IP^4;                           // Usart 0
sbit PT1   = IP^3;                           // Timer 1
sbit PX1   = IP^2;                           // Ext Int1
sbit PT0   = IP^1;                           // Timer 0
sbit PX0   = IP^0;                           // Ext Int 0

/*  SCON  */
sfr SCON  = 0x98;                            // UART0 Serial Control
sbit SM0   = SCON^7;                         // Standard 8051 Uart Control
sbit SM1   = SCON^6;
sbit SM2   = SCON^5;
sbit REN   = SCON^4;
sbit TB8   = SCON^3;
sbit RB8   = SCON^2;
sbit TI    = SCON^1;
sbit RI    = SCON^0;

sfr SBUF  = 0x99;                            // UART0 Serial Buffer



   /*========================================================================

                             Common 8052 Extensions

   ========================================================================*/
/*  T2CON  */
sfr T2CON  = 0xC8;                           // Timer 2 Control
sbit TF2    = T2CON^7;
sbit EXF2   = T2CON^6;
sbit RCLK   = T2CON^5;
sbit TCLK   = T2CON^4;
sbit EXEN2  = T2CON^3;
sbit TR2    = T2CON^2;
sbit C_T2   = T2CON^1;
sbit CP_RL2 = T2CON^0;


sfr T2MOD  = 0xC9;                           // Timer 2 Mode

sfr RCAP2L = 0xCA;                           // Timer 2 Reload low byte

sfr RCAP2H = 0xCB;                           // Timer 2 Reload high byte

sfr TL2    = 0xCC;                           // Timer 2 low byte

sfr TH2    = 0xCD;                           // Timer 2 high byte



   /*========================================================================

                              uPSD 3200 Extensions

   ========================================================================*/
/*    P4   */
sfr P4       = 0xC0;                         // New port 4
sbit PWMCH4   = P4^7;                        // PWM3
sbit PWMCH3   = P4^6;                        // PWM3
sbit PWMCH2   = P4^5;                        // PMW2
sbit PWMCH1   = P4^4;                        // PMW1
sbit PWMCH0   = P4^3;                        // PMW0 (8-bit)
sbit DDCVSYNC = P4^2;                        // DDC Vsync input
sbit DDCSCL   = P4^1;                        // DDC SCL
sbit DDCSDA   = P4^0;                        // DDC SDA

sfr P1SFS    = 0x91;                         // Port 1 I/O select

sfr P3SFS    = 0x93;                         // Port 3 I/O select

sfr P4SFS    = 0x94;                         // Port 4 I/O select

// --- ADC SFRs ---
sfr ASCL   = 0x95;                           // ADC Clock Prescaler 8-bit

sfr ADAT   = 0x96;                           // ADC Data Value

sfr ACON   = 0x97;                           // ADC Control Register


// --- UART2 SFRS ----
sfr SCON2     = 0x9A;                        // UART2 Serial Control

sfr SBUF2     = 0x9B;                        // UART2 Serial Buffer

// --- PWM SFRs -----
sfr PWMCON   = 0xA1;                         // PWM Polarity Control

sfr PWM0  = 0xA2;                            // PWM0 Duty Cycle

sfr PWM1  = 0xA3;                            // PWM1 Duty Cycle

sfr PWM2  = 0xA4;                            // PWM2 Duty Cycle

sfr PWM3  = 0xA5;                            // PWM3 Duty Cycle

sfr PWM4D = 0xAB;                            // PWM4 Duty Cycle

sfr PWM4P = 0xAA;                            // PWM4 Period Value

sfr PSCL0L    = 0xB1;                        // PWM0..3 8-bit PWM Prescaler low

sfr PSCL0H    = 0xB2;                        // PWM0..3 8-bit PWM Prescaler high

sfr PSCL1H    = 0xB3;                        // PWM4 8-bit PWM Prescaler high

sfr PSCL1L    = 0xB4;                        // PWM4 8-bit PWM Prescaler low


         /*======================== WDT SFRs ========================*/
sfr WDRST     = 0xA6;                        // Watch Dog Reset register
sfr WDKEY     = 0xAE;                  // Watch Dog Key Enable/Disable (write 55h)

     /*======================== INTERRUPT 2 SFRs ========================*/
sfr IEA       = 0xA7;                        // Interrupt Enable (2nd)
sfr IPA       = 0xB7;                        // Interrupt Priority (2nd)


   /*======================== I2C S1/S2 & DDC SFRs ========================*/
sfr S1SETUP   = 0xD1;                        // DDC-I2C S1 Setup Control
sfr S2SETUP   = 0xD2;                        // I2C S2 Setup Control
sfr RAMBUF    = 0xD4;                        // DDC Ram Buffer Access
sfr DDCDAT    = 0xD5;                        // DDC I2C Xmit register
sfr DDCADR    = 0xD6;                        // DDC Memory Address Pointer
sfr DDCCON    = 0xD7;                        // DDC Control Register

/*  S1CON  */
sfr S1CON     = 0xD8;                        // DDC I2C S1 Control
sbit CR2      = S1CON^7;
sbit ENI1     = S1CON^6;
sbit STA      = S1CON^5;
sbit STO      = S1CON^4;
sbit ADDR     = S1CON^3;
sbit AA       = S1CON^2;
sbit CR1      = S1CON^1;
sbit CR0      = S1CON^0;

sfr S1STA     = 0xD9;                        // DDC I2C Status
sfr S1DAT     = 0xDA;                        // DDC I2C Data Hold Register
sfr S1ADR     = 0xDB;                        // DDC I2C Bus Address
sfr S2CON     = 0xDC;                        // I2C S2 Control
sfr S2STA     = 0xDD;                        // I2C S2 Status
sfr S2DAT     = 0xDE;                        // I2C S2 Data Hold Register
sfr S2ADR     = 0xDF;                        // I2C S2 Bus Address

         /*======================== USB SFRs ========================*/
sfr USCL     = 0xE1;                         // USB Clock 8bit prescaler register
sfr UDT1     = 0xE6;                         // USB End Point 1 Data Register
sfr UDT0     = 0xE7;                         // USB End Point 0 Data register

/*  UISTA  */
sfr UISTA    = 0xE8;                         // USB Interrupt Status
sbit SUSPND  = UISTA^7;
//sbit STOP   = UISTA^6;
sbit RSTF    = UISTA^5;
sbit TXD0F   = UISTA^4;
sbit RXD0F   = UISTA^3;
sbit TXD1F   = UISTA^2;
sbit EOPF    = UISTA^1;
sbit RESUMF  = UISTA^0;

sfr UIEN     = 0xE9;                         // USB Interrupt Enable
sfr UCON0    = 0xEA;                         // USB End Point 0 Control
sfr UCON1    = 0xEB;                         // USB End Point 1 Control
sfr UCON2    = 0xEC;                         // USB End Point 2 Control
sfr USTA     = 0xED;                         // USB End Point 0 Status
sfr UADR     = 0xEE;                         // USB Address Register
sfr UDR0     = 0xEF;                         // USB Endpoint 0 Data Receive


/*    P1 GPIO   */
sbit P1_7   = P1^7;                          // bit 7 of P1
sbit P1_6   = P1^6;                          // bit 6 of P1
sbit P1_5   = P1^5;                          // bit 5 of P1
sbit P1_4   = P1^4;                          // bit 4 of P1
sbit P1_3   = P1^3;                          // bit 3 of P1
sbit P1_2   = P1^2;                          // bit 2 of P1
sbit P1_1   = P1^1;                          // bit 1 of P1
sbit P1_0   = P1^0;                          // bit 0 of P1

/*    P3 GPIO   */
sbit P3_7   = P3^7;                          // bit 7 of P3
sbit P3_6   = P3^6;                          // bit 6 of P3
sbit P3_5   = P3^5;                          // bit 5 of P3
sbit P3_4   = P3^4;                          // bit 4 of P3
sbit P3_3   = P3^3;                          // bit 3 of P3
sbit P3_2   = P3^2;                          // bit 2 of P3
sbit P3_1   = P3^1;                          // bit 1 of P3
sbit P3_0   = P3^0;                          // bit 0 of P3

/*    P4 GPIO   */
sbit P4_7   = P4^7;                          // bit 7 of P4
sbit P4_6   = P4^6;                          // bit 6 of P4
sbit P4_5   = P4^5;                          // bit 5 of P4
sbit P4_4   = P4^4;                          // bit 4 of P4
sbit P4_3   = P4^3;                          // bit 3 of P4
sbit P4_2   = P4^2;                          // bit 2 of P4
sbit P4_1   = P4^1;                          // bit 1 of P4
sbit P4_0   = P4^0;                          // bit 0 of P4




       /*===============================================================

                               Interrupt Vectors:
                      Interrupt Address = (Number * 8) + 3

       =============================================================== */
#define RESET_VECTOR_ADDR  0                 // Reset Address = 0

#define IE0_VECTOR       0                   // 0x03 External Interrupt 0
#define IEO_VECTOR_ADDR   0x03

#define TF0_VECTOR       1                   //0x0B Timer 0
#define TF0_VECTOR_ADDR   0x0B

#define IE1_VECTOR       2                   //0x13 External Interrupt 1
#define IE1_VECTOR_ADDR   0x13

#define TF1_VECTOR       3                   //0x1B Timer 1
#define TF1_VECTOR_ADDR   0x1B

#define SIO_VECTOR       4                   //0x23 Serial Port 0
#define SIO_VECTOR_ADDR   0x23

#define TF2_VECTOR       5                   //0x2B Timer 2
#define TF2_VECTOR_ADDR   0x2B

#define USB_VECTOR       6                   //0x33 USB
#define USB_VECTOR_ADDR   0x33

#define DDC_VECTOR       7                   //0x3B DDC
#define DDC_VECTOR_ADDR   0x3B

#define I2C_VECTOR       8                   //0x43 I2C
#define I2C_VECTOR_ADDR   0x43

#define SIO1_VECTOR      9                   //0x4B Serial Port 1
#define SIO1_VECTOR_ADDR  0x4B

#endif










   /*========================================================================

                           DEFINEs for uPSD registers

   ========================================================================*/

#ifndef _UPSD_XREG_
#define _UPSD_XREG_

//sfr P1SFS = 0x91;
 #define bADC0   0x10
 #define bADC1   0x20
 #define bADC2   0x40
 #define bADC3   0x80

//sfr ACON = 0x97;
 #define bADEN   0x20
 #define bADS1   0x08
 #define bADS0   0x04 
 #define bADST   0x02
 #define bADSF   0x01

//sfr IEA = 0xa7;
 #define bEDDC   0x80
 #define bES2    0x10
 #define bEI2C   0x02
 #define bEUSB   0x01

//sfr UDT1 = 0xe6;

//sfr UDT0 = 0xe7;

//sfr UISTA = 0xe8;
 #define uSUSPENDF 0x80
 #define uRSTF   0x20
 #define uTXD0F  0x10
 #define uRXD0F  0x08
 #define uTXD1F  0x04
 #define uEOPF   0x02
 #define uRESUMEF 0x01

//sfr UIEN = 0xe9;
 #define uSUSPNDIE 0x80
 #define uMCUR    0x40
 #define uRSTF    0x20
 #define uTXD0IE  0x10
 #define uRXD0IE  0x08
 #define uTXD1IE  0x04
 #define uEOPIE   0x02
 #define uRESUMIE 0x01

//sfr UCON0 = 0xea;
 #define uTSEQ0   0x80
 #define uSTALL0  0x40
 #define uTX0E    0x20
 #define uRX0E    0x10
 #define uTP0SIZ3 0x08
 #define uTP0SIZ2 0x04
 #define uTP0SIZ1 0x02
 #define uTP0SIZ0 0x01

//sfr UCON1 = 0xeb;
 #define uTSEQ1   0x80
 #define uEP12SEL 0x40
 #define uTX1E    0x20
 #define uFRESUM  0x10
 #define uTP1SIZ3 0x08
 #define uTP1SIZ2 0x04
 #define uTP1SIZ1 0x02
 #define uTP1SIZ0 0x01

//sfr UCON2 = 0xec;
 #define uSOUT    0x10
 #define uEP2E    0x08
 #define uEP1E    0x04
 #define uSTALL2  0x02
 #define uSTALL1  0x01

//sfr USTA = 0xed;
 #define uRSEQ    0x80
 #define uSETUP   0x40
 #define uIN      0x20
 #define uOUT     0x10
 #define uRP0SIZ3 0x08
 #define uRP0SIZ2 0x04
 #define uRP0SIZ1 0x02
 #define uPR0SIZ0 0x01

//sfr UADR = 0xee;
 #define uUSBEN   0x80

//sfr UDR0 = 0xef;

//sfr SCON2 = 0x9a;
 #define b_TI     0x02
 #define b_RI     0x01
 #define b_REN    0x10

//sfr SBUF2 = 0x9b;

//sfr WDKEY = 0xae;
 #define WD_OFF   0x55

#endif

/* *************************************************************************
  ***                                                                      ***
  **                         *** End of File ***                            **
  ***                                                                      ***
   *************************************************************************  */

⌨️ 快捷键说明

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