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

📄 upsd.h

📁 本程序可以支持SLE4442、SLE4428、FALSH、CPU卡
💻 H
字号:
/*****************************************************
	硬件定义:外部IO偏移地址
	Copyright 2003-2004 by CDY
******************************************************/
#define CSIO_ADDR	0xfe00

#define PA_IN	XBYTE[CSIO_ADDR+0x00]	//输入寄存器
#define PA_CON	XBYTE[CSIO_ADDR+0x02]	//控制寄存器
#define PA_OUT	XBYTE[CSIO_ADDR+0x04]	//输出寄存器
#define PA_DIR	XBYTE[CSIO_ADDR+0x06]	//方向寄存器
#define PA_DRI	XBYTE[CSIO_ADDR+0x08]	//驱动寄存器
#define PA_MAC	XBYTE[CSIO_ADDR+0x0A]	//输入宏单元
#define PA_EN	XBYTE[CSIO_ADDR+0x0C]	//使能寄存器

#define PB_IN	XBYTE[CSIO_ADDR+0x01]
#define PB_CON	XBYTE[CSIO_ADDR+0x03]
#define PB_OUT	XBYTE[CSIO_ADDR+0x05]
#define PB_DIR	XBYTE[CSIO_ADDR+0x07]
#define PB_DRI	XBYTE[CSIO_ADDR+0x09]
#define PB_MAC	XBYTE[CSIO_ADDR+0x0B]
#define PB_EN	XBYTE[CSIO_ADDR+0x0D]

#define PC_IN	XBYTE[CSIO_ADDR+0x10]
#define PC_OUT	XBYTE[CSIO_ADDR+0x12]
#define PC_DIR	XBYTE[CSIO_ADDR+0x14]
#define PC_DRI	XBYTE[CSIO_ADDR+0x16]
#define PC_MAC	XBYTE[CSIO_ADDR+0x18]
#define PC_EN	XBYTE[CSIO_ADDR+0x1A]

#define PD_IN	XBYTE[CSIO_ADDR+0x11]
#define PD_OUT	XBYTE[CSIO_ADDR+0x13]
#define PD_DIR	XBYTE[CSIO_ADDR+0x15]
#define PD_DRI	XBYTE[CSIO_ADDR+0x17]
#define PD_EN	XBYTE[CSIO_ADDR+0x1B]

#define OUT_MAC_AB	XBYTE[CSIO_ADDR+0x20]	//输出宏单元AB
#define OUT_MAC_BC	XBYTE[CSIO_ADDR+0x21]	//输出宏单元BC
#define OMC_MAC_AB	XBYTE[CSIO_ADDR+0x22]	//屏蔽寄存器AB
#define OMC_MAC_BC	XBYTE[CSIO_ADDR+0x23]	//屏蔽寄存器BC

#define M_PRO	XBYTE[CSIO_ADDR+0xC0]	//主FLASH保护位寄存器
#define S_PRO	XBYTE[CSIO_ADDR+0xC2]	//次FLASH保护位寄存器
#define JTAG_EN	XBYTE[CSIO_ADDR+0xC7]	//JATG使能寄存器
#define PMMR0	XBYTE[CSIO_ADDR+0xB0]	//PLD电源功耗管理寄存器
#define PMMR2	XBYTE[CSIO_ADDR+0xB4]
#define PAGE	XBYTE[CSIO_ADDR+0xE0]	//页寄存器
#define VM		XBYTE[CSIO_ADDR+0xE2]	//程序、数据切换控制寄存器

sbit PSW1   = PSW^1;	
/*    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
/* ------------------------ */
/*  UPSD 3200 Extensions    */
/* ------------------------ */
sfr P4 =0xC0;		// New port 4
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 PSCL0L   = 0xB1;	// 8bit PWM Prescaler low
sfr PSCL0H   = 0xB2;	// 8bit PWM Prescaler high

// --- WDT SFRs ---
sfr WDRST   = 0xA6;	// Watch Dog Reset
sfr WDKEY   = 0xAE;	// Watch Dog Key Enable

// --- INTERRUPT 2 SFRs ---
sfr IEA   = 0xA7;		// Interrupt Enable (2nd)
	//sbit EDDC    = IEA^7; 
	//sbit ES2   = IEA^4; 
	//sbit EI2C   = IEA^1;
	//sbit EUSB   = IEA^0;
sfr IPA    = 0xB7;	// Interrupt Priority (2nd)
	//sbit PDDC   = IPA^7;
	//sbit PS2    = IPA^5;
	//sbit PT1   = IPA^3;
	//sbit PX1   = IPA^2;
	//sbit PI2C   = IPA^1;
	//sbit PUSB   = IPA^0;

// --- 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
sfr S1CON  = 0xD8;	// DDC I2C S1 Control
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
	//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;

sfr S2STA  = 0xDD;	// I2C S2 Status
	//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;
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
sfr UISTA = 0xE8;	// USB Interrupt Status
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

/* -----------------------------------
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	

⌨️ 快捷键说明

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