📄 upsd3300.h
字号:
sfr SPITDR = 0xD4; // SPI Transmit Reg.
sfr SPIRDR = 0xD5; // SPI Receive Reg.
sfr SPICON0 = 0xD6; // SPI Control0 Reg.
sfr SPICON1 = 0xD7; // SPI Control1 Reg.
// --- IrDA SFRs ----
sfr IRDACON = 0xCE; // IrDA Configuration Register
// --- MCU Debug ---
sfr DSTAT = 0xCF; // Debug MCU Status
sfr DIR = 0x9E; // Debug Index Register
sfr DVR = 0x9F; // Debug Value Register
// --- Clock Control SFRs ----
sfr CCON0 = 0xF9; // PLL, Debugber, CPU Clock Control
sfr CCON1 = 0xFA; // PLL Divider Input
sfr CCON2 = 0xFB; // PCA0 Clock Control
sfr CCON3 = 0xFC; // PCA1 Clock Control
// --- XDATA Pointer SFRs ----
sfr DPTC = 0x85; // XData Pointer Control
sfr DPTM = 0x86; // XData Pointer Mode
// --- Program Counter -----
sfr PCL = 0x9A; // Program Counter Low
sfr PCH = 0x9B; // Program Counter High
// --- Temporary SFRs -----
sfr TSFR0 = 0XB5; // Temporary SFR0
sfr TSFR1 = 0XB6; // Temporary SFR1
// --- Bus control SFRs -----
sfr BUSCON = 0X9D; // Bus control
/* --------------------------- */
/* Common 8051 BIT Registers */
/* --------------------------- */
/* PSW */
sbit CY = PSW^7; // Carry
sbit AC = PSW^6; //
sbit F0 = PSW^5;
sbit RS1 = PSW^4;
sbit RS0 = PSW^3;
sbit OV = PSW^2; // Overflow
sbit P = PSW^0; //
/* SCON */
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;
/* TCON */
sbit TF1 = TCON^7; // Standard 8051 timer control
sbit TR1 = TCON^6;
sbit TF0 = TCON^5;
sbit TR0 = TCON^4;
sbit IE1 = TCON^3;
sbit IT1 = TCON^2;
sbit IE0 = TCON^1;
sbit IT0 = TCON^0;
/* IE */
sbit EA = IE^7; // Enable All interrupts
sbit EDB = IE^6; // Enable Debug
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 */
sbit PDB = IP^6; // Debug
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
/* P4 Alternate 1 */
sbit PCA1_XCLK = P4^7; // PCA1
sbit TCM5 = P4^6; // TCM5
sbit TCM4 = P4^5; // TCM4
sbit TCM3 = P4^4; // TCM3
sbit PCA0_XCLK = P4^3; // PCA0
sbit TCM2 = P4^2; // TCM2
sbit TCM1 = P4^1; // TCM1
sbit TCM0 = P4^0; // TCM0
/* P4 Alternate 2 */
sbit SPI_SSEL_P4 = P4^7; // SPI SSEL
sbit SPI_TxD_P4 = P4^6; // SPI TxD
sbit SPI_RxD_P4 = P4^5; // SPI RxD
sbit SPI_SCLK_P4 = P4^4; // SPI SCLK
sbit UART1_TxD_P4 = P4^3; // UART1 TxD
sbit UART1_RxD_P4 = P4^2; // UART1 RxD
sbit TMR2_TRG_P4 = P4^1; // Timer 2 Trigger Input
sbit TMR2_CNT_P4 = P4^0; // Timer 2 Count Input
/* P3 */
sbit I2CSC = P3^7; // I2C Serial Clock
sbit I2CSD = P3^6; // I2C Serial Data
sbit CNTR1 = P3^5; // Counter 1 Input
sbit CNTR0 = P3^4; // Counter 0 Input
sbit INT1 = P3^3; // Ext Int 1 / Timer 1 Gate
sbit INT0 = P3^2; // Ext Int 0 / Timer 0 Gate
sbit UART0_TxD = P3^1; // UART0 TxD
sbit UART0_RxD = P3^0; // UART0 RxD
/* P1 Alternate 1 */
sbit SPI_SSEL = P1^7; // SPI SSEL
sbit SPI_TxD = P1^6; // SPI TxD
sbit SPI_RxD = P1^5; // SPI RxD
sbit SPI_SCLK = P1^4; // SPI SCLK
sbit UART1_TxD = P1^3; // UART1 TxD
sbit UART1_RxD = P1^2; // UART1 RxD
sbit TMR2_TRG = P1^1; // Timer 2 Trigger Input
sbit TMR2_CNT = P1^0; // Timer 2 Count Input
/* P1 Alternate 2 */
sbit ADC7 = P1^7; // ADC Channel 7
sbit ADC6 = P1^6; // ADC Channel 6
sbit ADC5 = P1^5; // ADC Channel 5
sbit ADC4 = P1^4; // ADC Channel 4
sbit ADC3 = P1^3; // ADC Channel 3
sbit ADC2 = P1^2; // ADC Channel 2
sbit ADC1 = P1^1; // ADC Channel 1
sbit ADC0 = P1^0; // ADC Channel 0
/* T2CON */
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;
/* PCON */
/*
sbit SMOD0 = PCON^7; // Baud Rate bit for UART0
sbit SMOD1 = PCON^6; // Baud Rate bit for UART1
sbit LVD = PCON^5; // Low voltage Reset enable
sbit POR = PCON^4; // Power On Reset
sbit PD = PCON^1; // Power Down Mode
sbit IDLE = PCON^0; // Idle Mode
*/
/* TMOD */
/*
sbit GATE1 = TMOD^7;
sbit C_T1 = TMOD^6;
sbit M11 = TMOD^5;
sbit M10 = TMOD^4;
sbit GATE0 = TMOD^3;
sbit C_T0 = TMOD^2;
sbit M01 = TMOD^1;
sbit M00 = TMOD^0;
*/
/* 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
/* ACON */
//sbit AINTF = ACON^7;
//sbit AINTEN = ACON^6;
//sbit ADEN = ACON^5;
//sbit ADS2 = ACON^4;
//sbit ADS1 = ACON^3;
//sbit ADS0 = ACON^2;
//sbit ADST = ACON^1;
//sbit ADSF = ACON^0;
/* SCON1 */
sbit SM01 = SCON1^7;
sbit SM11 = SCON1^6;
sbit SM21 = SCON1^5;
sbit REN1 = SCON1^4;
sbit TB81 = SCON1^3;
sbit RB81 = SCON1^2;
sbit TI1 = SCON1^1;
sbit RI1 = SCON1^0;
/* IEA */
//sbit ADC = IEA^7;
//sbit SPI = IEA^6;
//sbit PCA = IEA^5;
//sbit ES2 = IEA^4;
//sbit EI2C = IEA^1;
//sbit EUSB = IEA^0;
/* IPA */
//sbit PADC = IPA^7;
//sbit PSPI = IPA^6;
//sbit PPCA = IPA^5;
//sbit PS2 = IPA^4;
//sbit PI2C = IPA^1;
//sbit PUSB = IPA^0;
/* S1CON */
//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;
/* S1STA */
//sbit GC = S1STA^7;
//sbit STOP = S1STA^6;
//sbit INTR = S1STA^5;
//sbit TX_MD = S1STA^4;
//sbit BBUSY = S1STA^3;
//sbit BLOST = S1STA^2;
//sbit ACK_R = S1STA^1;
//sbit SLV = S1STA^0;
/* IRDACON */
//sbit IRDAEN = IRDACON^6;
//sbit BIT_PULSE = IRDACON^5;
//sbit CDIV4 = IRDACON^4;
//sbit CDIV3 = IRDACON^3;
//sbit CDIV2 = IRDACON^2;
//sbit CDIV1 = IRDACON^1;
//sbit CDIV0 = IRDACON^0;
/* -----------------------------------
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 UART0_VECTOR 4 //0x23 Serial Port 0
#define UART0_VECTOR_ADDR 0x23
#define TF2_VECTOR 5 //0x2B Timer 2
#define TF2_VECTOR_ADDR 0x2B
#define ADC_VECTOR 7 //0x3B ADC
#define ADC_VECTOR_ADDR 0x3B
#define I2C_VECTOR 8 //0x43 I2C
#define I2C_VECTOR_ADDR 0x43
#define UART1_VECTOR 9 //0x4B Serial Port 1
#define UART1_VECTOR_ADDR 0x4B
#define SPI_VECTOR 10 //0x53 SPI
#define SPI_VECTOR_ADDR 0x53
#define PCA_VECTOR 11 //0x5B PCA
#define PCA_VECTOR_ADDR 0x5B
#define DBG_VECTOR 12 //0x63 DEBUG (Highest Priority)
#define DBG_VECTOR_ADDR 0x63
/* ---------------------------------- */
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -