📄 upsd3200.h
字号:
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 + -