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

📄 iosfr86.h

📁 一款C语言编写的小家电程序
💻 H
📖 第 1 页 / 共 3 页
字号:
/************************************************/
/*	I/O管脚定义及特别寄存器定义		*/
/************************************************/

//io_field	__io(0x0000)	;		// R/W	reserved
//io_field	__io(0x0001)	P1DR;		// R/W	P1 Port output latch
//io_field	__io(0x0002)	P2DR;		// R/W	P2 Port output latch
//io_field	__io(0x0003)	P3DR;		// R/W	P3 Port output latch
//io_field	__io(0x0004)	P3OUTCR;	// R	P3 Port output circuit control
//io_field	__io(0x0005)	P5DR;		// R/W	P5 Port output latch
//io_field	__io(0x0006)	P6DR;		// R/W	P6 Port output latch
//io_field	__io(0x0007)	P7DR;		// R/W	P7 Port output latch
//io_field	__io(0x0008)	P1PRD;		// R	P1 Terminal input
//io_field	__io(0x0009)	P2PRD;		// R	P2 Terminal input
//io_field	__io(0x000A)	P3PRD;		// R	P3 Terminal input
//io_field	__io(0x000B)	P5PRD;		// R	P5 Terminal input
//io_field	__io(0x000C)	P6CR;		// R/W	P6 Port input/output control
//io_field	__io(0x000D)	P7PRD;		// R	P7 Terminal input

//unsigned char	__io(0x000E)	ADCCR1;		// R/W	AD control register 1
//unsigned char	__io(0x000F)	ADCCR2;		// R/W	AD control register 2


//unsigned char	__io(0x0010)	TREG1AL;	// R/W	Timer register 1A
//unsigned char	__io(0x0011)	TREG1AM;	// R/W	Timer register 1A
//unsigned char	__io(0x0012)	TREG1AH;	// R/W	Timer register 1A
//unsigned char	__io(0x0013)	TREG1B;		// R/W	Timer register 1B
//unsigned char	__io(0x0014)	TC1CR1;		// R/W	Timer Counter control 1
//unsigned char	__io(0x0015)	TC1CR2;		// R/W	Timer Counter control 2
//unsigned char	__io(0x0016)	TC1SR;		// R	TC1 Status
//unsigned char	__io(0x0017)	;		// R/W	reserved
//unsigned char	__io(0x0018)	TC3CR;		// R/W	Timer Counter 3 control
//unsigned char	__io(0x0019)	TC4CR;		// R/W	Timer Counter 4 control
//unsigned char	__io(0x001A)	TC5CR;		// R/W	Timer Counter 5 control
//unsigned char	__io(0x001B)	TC6CR;		// R/W	Timer Counter 6 control
//unsigned char	__io(0x001C)	TTREG3;		// R/W	Timer register 3
//unsigned char	__io(0x001D)	TTREG4;		// R/W	Timer register 4
//unsigned char	__io(0x001E)	TTREG5;		// R/W	Timer register 5
//unsigned char	__io(0x001F)	TTREG6;		// R/W	Timer register 6


//unsigned char	__io(0x0020)	ADCDR1;		// R	AD converter register 1
//unsigned char	__io(0x0021)	ADCDR2;		// R	AD converter register 2
//unsigned char	__io(0x0022)	;		// R/W	reserved
//unsigned char	__io(0x0023)	;		// R/W	reserved
//unsigned char	__io(0x0024)	;		// R/W	reserved
//unsigned char	__io(0x0025)	UARTSR;		// R	UART Status register
//unsigned char	__io(0x0025)	UARTCR1;	// W	UART control register 1
//unsigned char	__io(0x0026)	UARTCR2;	// W	UART control register 2
//unsigned char	__io(0x0027)	;		// R/W	reserved
//unsigned char	__io(0x0028)	LCDCR;		// R/W	LCD Control register
//unsigned char	__io(0x0029)	P1LCR;		// R/W	P1 segment output control
//unsigned char	__io(0x002A)	P5LCR;		// R/W	P5 segment output control
//unsigned char	__io(0x002B)	P7LCR;		// R/W	P7 segment output control
//unsigned char	__io(0x002C)	PWREG3;		// R/W	Timer register 3
//unsigned char	__io(0x002D)	PWREG4;		// R/W	Timer register 4
//unsigned char	__io(0x002E)	PWREG5;		// R/W	Timer register 5
//unsigned char	__io(0x002F)	PWREG6;		// R/W	Timer register 6


//unsigned char	__io(0x0030)	;		// R/W	reserved
//unsigned char	__io(0x0031)	;		// R/W	reserved
//unsigned char	__io(0x0032)	;		// R/W	reserved
//unsigned char	__io(0x0033)	;		// R/W	reserved
//unsigned char	__io(0x0034)	WDTCR1;		// W	Watchdog timer control 1
//unsigned char	__io(0x0035)	WDTCR2;		// W	Watchdog timer control 2
//unsigned char	__io(0x0036)	TBTCR;		// R/W	TBT/TG/DVO control
//unsigned char	__io(0x0037)	EINTCR;		// R/W	External interrupt control
//unsigned char	__io(0x0038)	SYSCR1;		// R/W	System control 1
//unsigned char	__io(0x0039)	SYSCR2;		// R/W	System control 2
//unsigned char	__io(0x003A)	EIRL;		// R/W	Interrupt enable register L
//unsigned char	__io(0x003B)	EIRH;		// R/W	Interrupt enable register H
//unsigned char	__io(0x003C)	ILL;		// R/W	Interrupt latch L
//unsigned char	__io(0x003D)	ILH;		// R/W	Interrupt latch H
//unsigned char	__io(0x003E)	INTSEL;		// R/W	Interrupt source selector
//unsigned char	__io(0x003F)	PSW;		// R/W	Program Status word



typedef	struct	byte_format
{
	unsigned char	bit0:1;
	unsigned char	bit1:1;
	unsigned char	bit2:1;
	unsigned char	bit3:1;
	unsigned char	bit4:1;
	unsigned char	bit5:1;
	unsigned char	bit6:1;
	unsigned char	bit7:1;
} byte_field;

typedef	union	io_format
{
	unsigned char	io_byte;
	byte_field	io_bit;
} io_field;


io_field	__io(0x0001)	P1DR;		// R/W	P1 Port output latch
//	=====================			// P1
#define	OP1	P1DR.io_byte			// 可用作:I/O,外部中断输入,SIO输入/输出,UART输入/输出,LCD SEG管脚
#define	OP10	P1DR.io_bit.bit0		// P10,SEG31
#define	OP11	P1DR.io_bit.bit1		// P11,SEG30
#define	OP12	P1DR.io_bit.bit2		// P12,SEG29,INT1
#define	OP13	P1DR.io_bit.bit3		// P13,SEG28,INT2
#define	OP14	P1DR.io_bit.bit4		// P14,SEG27,INT3
#define	OP15	P1DR.io_bit.bit5		// P15,SEG26,RXD,SI
#define	OP16	P1DR.io_bit.bit6		// P16,SEG25,TXD,SO
#define	OP17	P1DR.io_bit.bit7		// P17,SEG24,/SCK


io_field	__io(0x0002)	P2DR;		// R/W	P2 Port output latch
//	=====================			// P2
#define	OP2	P2DR.io_byte			// I/O,低频晶振,外部中断输入,STOP模式唤醒信号输入
#define	OP20	P2DR.io_bit.bit0		// P20,/STOP,/INT5
#define	OP21	P2DR.io_bit.bit1		// P21,XTIN
#define	OP22	P2DR.io_bit.bit2		// P22,XTOUT


io_field	__io(0x0003)	P3DR;		// R/W	P3 Port output latch
//	=====================			// P3
#define	OP3	P3DR.io_byte			// I/O,计时/计数,I/O,分频输出
#define	OP30	P3DR.io_bit.bit0		// P30,/DVO
#define	OP31	P3DR.io_bit.bit1		// P31,/PWM3,/PDO3,TC3
#define	OP32	P3DR.io_bit.bit2		// P32,/PWM4,/PDO4,/PPG4,TC4
#define	OP33	P3DR.io_bit.bit3		// P33,/PWM6,/PDO6,/PPG6,TC6


io_field	__io(0x0004)	P3OUTCR;	// R	P3 Port output circuit control
 /*** P3OUTCR	Port P3 Output circuit Control Register	(0x0004	初始**** 0000	R)
	0:Sink open-drain output	1:C-MOS output	***/


io_field	__io(0x0005)	P5DR;		// R/W	P5 Port output latch
//	=====================			// P5
#define	OP5	P5DR.io_byte			// I/O,LCD SEG管脚
#define	OP50	P5DR.io_bit.bit0		// P50,SEG23
#define	OP51	P5DR.io_bit.bit1		// P51,SEG22
#define	OP52	P5DR.io_bit.bit2		// P52,SEG21
#define	OP53	P5DR.io_bit.bit3		// P53,SEG20
#define	OP54	P5DR.io_bit.bit4		// P54,SEG19
#define	OP55	P5DR.io_bit.bit5		// P55,SEG18
#define	OP56	P5DR.io_bit.bit6		// P56,SEG17
#define	OP57	P5DR.io_bit.bit7		// P57,SEG16


io_field	__io(0x0006)	P6DR;		// R/W	P6 Port output latch
//	=====================			// P6
#define	P6	P6DR.io_byte			// I/O,A/D输入,外部中断输入,计时/计数输入,STOP模式唤醒信号输入
#define	P60	P6DR.io_bit.bit0		// P60,AIN0
#define	P61	P6DR.io_bit.bit1		// P61,AIN1,ECIN
#define	P62	P6DR.io_bit.bit2		// P62,AIN2,ECNT
#define	P63	P6DR.io_bit.bit3		// P63,AIN3,INT0
#define	P64	P6DR.io_bit.bit4		// P64,AIN4,STOP2
#define	P65	P6DR.io_bit.bit5		// P65,AIN5,STOP3
#define	P66	P6DR.io_bit.bit6		// P66,AIN6,STOP4
#define	P67	P6DR.io_bit.bit7		// P67,AIN7,STOP5


io_field	__io(0x0007)	P7DR;		// R/W	P7 Port output latch
//	=====================			// P7
#define	OP7	P7DR.io_byte			// I/O,LCD SEG管脚
#define	OP70	P7DR.io_bit.bit0		// P70,SEG15
#define	OP71	P7DR.io_bit.bit1		// P71,SEG14
#define	OP72	P7DR.io_bit.bit2		// P72,SEG13
#define	OP73	P7DR.io_bit.bit3		// P73,SEG12
#define	OP74	P7DR.io_bit.bit4		// P74,SEG11
#define	OP75	P7DR.io_bit.bit5		// P75,SEG10
#define	OP76	P7DR.io_bit.bit6		// P76,SEG9
#define	OP77	P7DR.io_bit.bit7		// P77,SEG8


io_field	__io(0x0008)	P1PRD;		// R	P1 Terminal input
//	=====================			// P1
#define	IP1	P1PRD.io_byte			// 可用作:I/O,外部中断输入,SIO输入/输出,UART输入/输出,LCD SEG管脚
#define	IP10	P1PRD.io_bit.bit0		// P10,SEG31
#define	IP11	P1PRD.io_bit.bit1		// P11,SEG30
#define	IP12	P1PRD.io_bit.bit2		// P12,SEG29,INT1
#define	IP13	P1PRD.io_bit.bit3		// P13,SEG28,INT2
#define	IP14	P1PRD.io_bit.bit4		// P14,SEG27,INT3
#define	IP15	P1PRD.io_bit.bit5		// P15,SEG26,RXD,SI
#define	IP16	P1PRD.io_bit.bit6		// P16,SEG25,TXD,SO
#define	IP17	P1PRD.io_bit.bit7		// P17,SEG24,/SCK


io_field	__io(0x0009)	P2PRD;		// R	P2 Terminal input
//	=====================			// P2
#define	IP2	P2PRD.io_byte			// I/O,低频晶振,外部中断输入,STOP模式唤醒信号输入
#define	IP20	P2PRD.io_bit.bit0		// P20,/STOP,/INT5
#define	IP21	P2PRD.io_bit.bit1		// P21,XTIN
#define	IP22	P2PRD.io_bit.bit2		// P22,XTOUT


io_field	__io(0x000A)	P3PRD;		// R	P3 Terminal input
//	=====================			// P3
#define	IP3	P3PRD.io_byte			// I/O,计时/计数,I/O,分频输出
#define	IP30	P3PRD.io_bit.bit0		// P30,/DVO
#define	IP31	P3PRD.io_bit.bit1		// P31,/PWM3,/PDO3,TC3
#define	IP32	P3PRD.io_bit.bit2		// P32,/PWM4,/PDO4,/PPG4,TC4
#define	IP33	P3PRD.io_bit.bit3		// P33,/PWM6,/PDO6,/PPG6,TC6


io_field	__io(0x000B)	P5PRD;		// R	P5 Terminal input
//	=====================			// P5
#define	IP5	P5PRD.io_byte			// I/O,LCD SEG管脚
#define	IP50	P5PRD.io_bit.bit0		// P50,SEG23
#define	IP51	P5PRD.io_bit.bit1		// P51,SEG22
#define	IP52	P5PRD.io_bit.bit2		// P52,SEG21
#define	IP53	P5PRD.io_bit.bit3		// P53,SEG20
#define	IP54	P5PRD.io_bit.bit4		// P54,SEG19
#define	IP55	P5PRD.io_bit.bit5		// P55,SEG18
#define	IP56	P5PRD.io_bit.bit6		// P56,SEG17
#define	IP57	P5PRD.io_bit.bit7		// P57,SEG16


io_field	__io(0x000C)	P6CR;		// R/W	P6 Port input/output control
 /*** P6CR	I/O Control for P6	(0x000C 初始为0000 0000	R/W) ***/


io_field	__io(0x000D)	P7PRD;		// R	P7 Terminal input
//	=====================			// P7
#define	IP7	P7DR.io_byte			// I/O,LCD SEG管脚
#define	IP70	P7DR.io_bit.bit0		// P70,SEG15
#define	IP71	P7DR.io_bit.bit1		// P71,SEG14
#define	IP72	P7DR.io_bit.bit2		// P72,SEG13
#define	IP73	P7DR.io_bit.bit3		// P73,SEG12
#define	IP74	P7DR.io_bit.bit4		// P74,SEG11
#define	IP75	P7DR.io_bit.bit5		// P75,SEG10
#define	IP76	P7DR.io_bit.bit6		// P76,SEG9
#define	IP77	P7DR.io_bit.bit7		// P77,SEG8



/**** 关于管脚在前面已定义,这里管脚就不再需要定义 ****/
 /*** 如果SFR需要定义的话,我想也一样的处理 ***/
 /*** Format	!!! Control Register	(0x00xx	初始**** ****	R/W)
	7 6 5 4 3 2 1 0
	| | | |	| | | +-- :
	| | | | | | +---- :
	| | | | | +------ :
	| | | |	+-------- :
	| | | +---------- :
	| | +------------ :
	| +-------------- :
	+---------------- :	***/


unsigned char	__io(0x000E)	ADCCR1;		// R/W	AD control register 1
 /*** ADCCR1	AD Converter Control Register 1	(0x000E	初始0001 0000	R/W)

⌨️ 快捷键说明

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