📄 upsd.h
字号:
/*--------------------------------------------------------------------------UPSD.HHeader file for STM 3200 MicroPSD (uPSD) microcontroller.Copyright (c) 1988-2001 Keil Elektronik GmbH and Keil Software, Inc.All rights reserved.--------------------------------------------------------------------------*/#ifndef _UPSD_H_#define _UPSD_H_/* ------------------------------ *//* Standard 8051 MCU Registers *//* ------------------------------ */// sfr P0 = 0x80; // Port 0 - Always used for External Memory Accesssfr P1 = 0x90; // Port 1// sfr P2 = 0xA0; // Port 2 - Always used for External Memory Accesssfr P3 = 0xB0; // Port 3sfr PSW = 0xD0; // Program Status Wordsfr ACC = 0xE0; // Accumulatorsfr B = 0xF0; // Register Bsfr SP = 0x81; // Stack Pointersfr DPL = 0x82; // Data Pointer low bytesfr DPH = 0x83; // Data Pointer high bytsfr PCON = 0x87; // MCU Power Control Registersfr TCON = 0x88; // Timer / Counter Controlsfr TMOD = 0x89; // Timer / Counter Modesfr TL0 = 0x8A; // Timer 0 low bytesfr TL1 = 0x8B; // Timer 1 low bytesfr TH0 = 0x8C; // Timer 0 high bytesfr TH1 = 0x8D; // Timer 1 high bytesfr IE = 0xA8; // Interrupt Enable (main)sfr IP = 0xB8; // Interrupt Priority (main) sfr SCON = 0x98; // UART0 Serial Controlsfr SBUF = 0x99; // UART0 Serial Buffer/* ------------------------ *//* Common 8052 Extensions *//* ------------------------ */sfr T2CON = 0xC8; // Timer 2 Controlsfr T2MOD = 0xC9; // Timer 2 Mode sfr RCAP2L = 0xCA; // Timer 2 Reload low bytesfr RCAP2H = 0xCB; // Timer 2 Reload high bytesfr TL2 = 0xCC; // Timer 2 low bytesfr TH2 = 0xCD; // Timer 2 high byte/* ------------------------ *//* UPSD 3200 Extensions *//* ------------------------ */sfr P4 =0xC0; // New port 4sfr P1SFS = 0x91; // Port 1 I/O selectsfr P3SFS = 0x93; // Port 3 I/O selectsfr P4SFS = 0x94; // Port 4 I/O select// --- ADC SFRs ---sfr ASCL = 0x95; // ADC Clock Prescaler 8-bitsfr ADAT = 0x96; // ADC Data Valuesfr ACON = 0x97; // ADC Control Register// --- UART2 SFRS ----sfr SCON2 = 0x9A; // UART2 Serial Controlsfr SBUF2 = 0x9B; // UART2 Serial Buffer// --- PWM SFRs -----sfr PWMCON = 0xA1; // PWM Polarity Controlsfr PWM0 = 0xA2; // PWM0 Duty Cyclesfr PWM1 = 0xA3; // PWM1 Duty Cyclesfr PWM2 = 0xA4; // PWM2 Duty Cyclesfr PWM3 = 0xA5; // PWM3 Duty Cyclesfr PWM4H = 0xAA; // PWM4 High Duty Cyclesfr PWM4L = 0xAB; // PWM4 Low Duty Cyclesfr PSCL0L = 0xB1; // 8bit PWM Prescaler lowsfr PSCL0H = 0xB2; // 8bit PWM Prescaler highsfr PSCL1L = 0xB3; // 16bit PWM Prescaler lowsfr PSCL1H = 0xB4; // 16bit PWM Prescaler high// --- WDT SFRs ---sfr WDRST = 0xA6; // Watch Dog Resetsfr WDKEY = 0xAE; // Watch Dog Key Enable// --- 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 Controlsfr S2SETUP = 0xD2; // I2C S2 Setup Controlsfr RAMBUF = 0xD4; // DDC Ram Buffer Accesssfr DDCDAT = 0xD5; // DDC I2C Xmit registersfr DDCADR = 0xD6; // DDC Memory Address Pointersfr DDCCON = 0xD7; // DDC Control Registersfr S1CON = 0xD8; // DDC I2C S1 Controlsfr S1STA = 0xD9; // DDC I2C Statussfr S1DAT = 0xDA; // DDC I2C Data Hold Registersfr S1ADR = 0xDB; // DDC I2C Bus Addresssfr S2CON = 0xDC; // I2C S2 Controlsfr S2STA = 0xDD; // I2C S2 Statussfr S2DAT = 0xDE; // I2C S2 Data Hold Registersfr S2ADR = 0xDF; // I2C S2 Bus Address// --- USB SFRs ---sfr USCL = 0xE1; // USB Clock 8bit prescaler registersfr UDT1 = 0xE6; // USB End Point 1 Data Registersfr UDT0 = 0xE7; // USB End Point 0 Data registersfr UISTA = 0xE8; // USB Interrupt Statussfr UIEN = 0xE9; // USB Interrupt Enablesfr UCON0 = 0xEA; // USB End Point 0 Controlsfr UCON1 = 0xEB; // USB End Point 1 Controlsfr UCON2 = 0xEC; // USB End Point 2 Controlsfr USTA = 0xED; // USB End Point 0 Statussfr UADR = 0xEE; // USB Address Registersfr UDR0 = 0xEF; // USB Endpoint 0 Data Receive/* --------------------------- *//* Common 8051 BIT Registers *//* --------------------------- *//* PSW */sbit CY = PSW^7; // Carrysbit AC = PSW^6; // sbit F0 = PSW^5;sbit RS1 = PSW^4;sbit RS0 = PSW^3;sbit OV = PSW^2; // Overflowsbit P = PSW^0; //8052 only/* TCON */sbit TF1 = TCON^7;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 interruptssbit ET2 = IE^5; // Timer 2sbit ES = IE^4; // Usart 0 sbit ET1 = IE^3; // Timer 1sbit EX1 = IE^2; // External Int1sbit ET0 = IE^1; // Timer 0sbit EX0 = IE^0; // External Int0/* IP */sbit PT2 = IP^5; // Timer 2sbit PS = IP^4; // Usart 0sbit PT1 = IP^3; // Timer 1sbit PX1 = IP^2; // Ext Int1sbit PT0 = IP^1; // Timer 0sbit PX0 = IP^0; // Ext Int 0/* P4 */sbit PWMCH4 = P4^7; // PWM4 (16-bit)sbit PWMCH3 = P4^6; // PWM3sbit PWMCH2 = P4^5; // PMW2sbit PWMCH1 = P4^4; // PMW1sbit PWMCH0 = P4^3; // PMW0 (8-bit)sbit DDCVSYNC = P4^2; // DDC Vsync inputsbit DDCSCL = P4^1; // DDC SCLsbit DDCSDA = P4^0; // DDC SDA/* P3 */sbit I2CSC = P3^7; // I2C Serial Clocksbit I2CSD = P3^6; // I2C Serial Datasbit T1 = P3^5; // Timer 1 Inputsbit T0 = P3^4; // Timer 0 Inputsbit INT1 = P3^3; // Ext Int 1 / Timer 1 Gate sbit INT0 = P3^2; // Ext Int 0 / Timer 0 Gatesbit TXD = P3^1; // USART0sbit RXD = P3^0; // USART0/* SCON */sbit SM0 = SCON^7;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;/* P1 */sbit ADC3 = P1^7; // ADC Input 3sbit ADC2 = P1^6; // ADC Input 2sbit ADC1 = P1^5; // ADC Input 1sbit ADC0 = P1^4; // ADC Input 0sbit TXD2 = P1^3; // USART2sbit RXD2 = P1^2; // USART2sbit T2EX = P1^1; // Timer2 Trigersbit T2 = P1^0; // Timer2 Input /* 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 SMOD = PCON^7; // Baud Rate bit for USART //sbit SMOD2 = PCON^6; // Baud Rate bit for USART2//sbit LVREN = PCON^5; // Low voltage Reset enable//sbit UCLK = PCON^4; // Reserved//sbit GF1 = PCON^3; // General Flag1//sbit GF0 = PCON^2; // General Flag0//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;/* -------------------- *//* BIT REGISTERS FOR UPSD *//* -------------------- *//* P1SFS - controls I/O features on P1 *///sbit P1S7 = P1SFS^7; // ADC3//sbit P1S6 = P1SFS^6; // ADC2//sbit P1S5 = P1SFS^5; // ADC1//sbit P1S4 = P1SFS^4; // ADC0//sbit P1S3 = P1SFS^3; // UART2 TX//sbit P1S2 = P1SFS^2; // UART2 RX//sbit P1S1 = P1SFS^1; // Timer2 Triger//sbit P1S0 = P1SFS^0; // Timer2/* P3SFS *///sbit P3S7 = P3SFS^7; // I2C Clock//sbit P3S6 = P3SFS^6; // I2C Data// Remaining bits set using standard 8051 method when IP is enabled./* P4SFS *///sbit P4S7 = P4SFS^7; // PWM4 (16-bit)//sbit P4S6 = P4SFS^6; // PWM3//sbit P4S5 = P4SFS^5; // PMW2//sbit P4S4 = P4SFS^4; // PMW1//sbit P4S3 = P4SFS^3; // PMW0 (8-bit)//sbit P4S2 = P4SFS^2; // DDC Vsync input//sbit P4S1 = P4SFS^1; // DDC SCL//sbit P4S0 = P4SFS^0; // DDC SDA/* P3 GIO */sbit P3_7 = P3^7; // bit 7 of P3sbit P3_6 = P3^6; // bit 6 of P3sbit P3_5 = P3^5; // bit 5 of P3sbit P3_4 = P3^4; // bit 4 of P3sbit P3_3 = P3^3; // bit 3 of P3sbit P3_2 = P3^2; // bit 2 of P3sbit P3_1 = P3^1; // bit 1 of P3sbit P3_0 = P3^0; // bit 0 of P3/* P4 GIO */sbit P4_7 = P4^7; // bit 7 of P4sbit P4_6 = P4^6; // bit 6 of P4sbit P4_5 = P4^5; // bit 5 of P4sbit P4_4 = P4^4; // bit 4 of P4sbit P4_3 = P4^3; // bit 3 of P4sbit P4_2 = P4^2; // bit 2 of P4sbit P4_1 = P4^1; // bit 1 of P4sbit P4_0 = P4^0; // bit 0 of P4/* ACON *///sbit P1S7 = ACON^7;//sbit P1S6 = ACON^6;//sbit ADEN = ACON^5;//sbit P1S4 = ACON^4;//sbit ADS1 = ACON^3;//sbit ADS0 = ACON^2;//sbit ADST = ACON^1;//sbit ADSF = ACON^0;/* SCON 2 *///sbit SM02 = SCON2^7;//sbit SM12 = SCON2^6;//sbit SM22 = SCON2^5;//sbit REN2 = SCON2^4;//sbit TB82 = SCON2^3;//sbit RB82 = SCON2^2;//sbit TI2 = SCON2^1;//sbit RI2 = SCON2^0;/* PWMCON *///sbit PWML = PWMCON^7;//sbit PWMP = PWMCON^6;//sbit PWME = PWMCON^5;//sbit CFG4 = PWMCON^4;//sbit CFG3 = PWMCON^3;//sbit CFG2 = PWMCON^2;//sbit CFG1 = PWMCON^1;//sbit CFG0 = PWMCON^0; /* IEA *///sbit EDDC = IEA^7;//sbit ET2 = IEA^5; //sbit ES2 = IEA^4;//sbit ES2 = IEA^3;//sbit EX1 = IEA^2;//sbit EI2C = IEA^1;//sbit EUSB = IEA^0;/* IPA *///sbit PDDC = IPA^7;//sbit PS2 = IPA^5;//sbit PT1 = IPA^3;//sbit PX1 = IPA^2;//sbit PI2C = IPA^1;//sbit PUSB = IPA^0;/* DDCCON *///sbit EDDC = DDCCON^7;//sbit EX_DAT = DDCCON^6; //sbit SWENB = DDCCON^5; //sbit DDC_AX = DDCCON^4;//sbit DDC_INT = DDCCON^3;//sbit DDC1EN = DDCCON^2;//sbit SWHINT = DDCCON^1;//sbit M0 = DDCCON^0;/* S1SETUP *///sbit SETUP1 = S1SETUP^7;/* S2SETUP *///sbit SETUP2 = S2SETUP^7;/* 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;/* S2CON *///sbit CR2 = S2CON^7;//sbit EN1 = S2CON^6; //sbit STA = S2CON^5; //sbit STO = S2CON^4;//sbit ADDR = S2CON^3;//sbit AA = S2CON^2;//sbit CR1 = S2CON^1;//sbit CR0 = S2CON^0;/* S2STA *///sbit GC = S2STA^7;//sbit STOP = S2STA^6; //sbit INTR = S2STA^5; //sbit TX_MD = S2STA^4;//sbit BBUSY = S2STA^3;//sbit BLOST = S2STA^2;//sbit ACK_R = S2STA^1;//sbit SLV = S2STA^0;/* UISTA */sbit SUSPND = UISTA^7;//sbit STOP = UISTA^6; sbit RSTF = UISTA^5; sbit TXD0F = UISTA^4;sbit RXD0F = UISTA^3;sbit RXD1F = UISTA^2;sbit EOPF = UISTA^1;sbit RESUMF = UISTA^0;/* UIEN *///sbit SUSPNDIE = UIEN^7;//sbit STOP = UIEN^6; //sbit RSTF = UIEN^5; //sbit TXD0IE = UIEN^4;//sbit RXD0IE = UIEN^3;//sbit RXD1IE = UIEN^2;//sbit EOPIE = UIEN^1;//sbit RESUMIE = UIEN^0;/* UCON0 *///sbit TSEQ0 = UCON0^7;//sbit STALL0 = UCON0^6; //sbit TX0E = UCON0^5; //sbit RX0E = UCON0^4;//sbit TP0SIZ3 = UCON0^3;//sbit TP0SIZ2 = UCON0^2;//sbit TP0SIZ1 = UCON0^1;//sbit TP0SIZ0 = UCON0^0;/* UCON1 *///sbit TSEQ1 = UCON1^7;//sbit EP12SEL = UCON1^6; //sbit TX0E = UCON1^5; //sbit FRESUM = UCON1^4;//sbit TP1SIZ3 = UCON1^3;//sbit TP1SIZ2 = UCON1^2;//sbit TP1SIZ1 = UCON1^1;//sbit TP1SIZ0 = UCON1^0;/* UCON2 *///sbit TSEQ1 = UCON2^7;//sbit EP12SEL = UCON2^6; //sbit TX0E = UCON2^5; //sbit SOUT = UCON2^4;//sbit EP2E = UCON2^3;//sbit EP1E = UCON2^2;//sbit STALL2 = UCON2^1;//sbit STALL1 = UCON2^0;/* USTA *///sbit RSEQ = USTA^7;//sbit SETUP = USTA^6; //sbit IN = USTA^5; //sbit OUT = USTA^4;//sbit RP0SIZ3 = USTA^3;//sbit RP0SIZ2 = USTA^2;//sbit RP0SIZ1 = USTA^1;//sbit RP0SIZ0 = USTA^0;/* UADR *///sbit USBEN = UADR^7;//sbit UADDR6 = UADR^6; //sbit UADDR5 = UADR^5; //sbit UADDR4 = UADR^4;//sbit UADDR3 = UADR^3;//sbit UADDR2 = UADR^2;//sbit UADDR1 = UADR^1;//sbit UADDR0 = UADR^0;/* -----------------------------------Interrupt Vectors:Interrupt Address = (Number * 8) + 3------------------------------------ */ #define IE0_VECTOR 0 // 0x03 External Interrupt 0#define TF0_VECTOR 1 //0x0B Timer 0#define IE1_VECTOR 2 //0x13 External Interrupt 1#define TF1_VECTOR 3 //0x1B Timer 1#define SIO_VECTOR 4 //0x23 Serial Port 0#define TF2_VECTOR 5 //0x2B Timer 2#define USB_VECTOR 6 //0x33 USB#define DDC_VECTOR 7 //0x3B DDC#define I2C_VECTOR 8 //0x43 I2C#define SIO1_VECTOR 9 //0x4B Serial Port 1/* ---------------------------------- */#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -