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

📄 mybit.h

📁 凌阳十六位单片机的串口通信例子程序
💻 H
字号:
#ifndef	__MYBIT_h__
#define	__MYBIT_h__
/*****************************************/
/*	write your header here
-------------------------------------------
	creator		:Liao-ZhiXian
	creat date	:2007/6/3
	last modify	:2007/6/26
*/
/*****************************************/
/***************************/
typedef struct
{
	unsigned bit0  : 1;
	unsigned bit1  : 1;
	unsigned bit2  : 1;
	unsigned bit3  : 1;
	unsigned bit4  : 1;
	unsigned bit5  : 1;
	unsigned bit6  : 1;
	unsigned bit7  : 1;
	unsigned bit8  : 1;
	unsigned bit9  : 1;
	unsigned bit10 : 1;
	unsigned bit11 : 1;
	unsigned bit12 : 1;
	unsigned bit13 : 1;
	unsigned bit14 : 1;
	unsigned bit15 : 1;
}Word;
/***************************/
typedef struct
{
	unsigned ByteL  : 8;
	unsigned ByteH  : 8;
}Byte;
/***************************/
typedef struct
{
	unsigned quar0  : 4;
	unsigned quar1  : 4;
	unsigned quar2  : 4;
	unsigned quar3  : 4;
}Quar;
/***************************/
typedef union
{
	Word bit;
	Byte byte;
	Quar quar;
	unsigned int Uint;
}Port;
/***************************/
/////////////////////////////////////////////////////////////////////////////////////////////////
//寄存器定义
/////////////////////////////////////////////////////////////////////////////////////////////////
#define 			A    				(*(volatile Port *)(0x7000))//portA data
#define 			A_Buf				(*(volatile Port *)(0x7001))//portA buffer
#define 			A_Dir   			(*(volatile Port *)(0x7002))//portA direction
#define 			A_Atr  				(*(volatile Port *)(0x7003))//portA attribution
#define				A_Lat   			(*(volatile Port *)(0x7004))//portA last data latch

#define				B    				(*(volatile Port *)(0x7005))//portB data
#define				B_Buf   			(*(volatile Port *)(0x7006))//portB buffer
#define				B_Dir   			(*(volatile Port *)(0x7007))//portB direction
#define				B_Atr   			(*(volatile Port *)(0x7008))//portB attribution
//////////////////////////////////////////////////////////////////////////////
//位操作
//////////////////////////////////////////////////////////////////////////////
//=====================================================
//端口位操作
//=====================================================
#define 			A0  				A.bit.bit0
#define 			A1  				A.bit.bit1
#define 			A2  				A.bit.bit2
#define 			A3  				A.bit.bit3
#define 			A4  				A.bit.bit4
#define 			A5  				A.bit.bit5
#define 			A6  				A.bit.bit6
#define 			A7  				A.bit.bit7
#define 			A8  				A.bit.bit8
#define 			A9  				A.bit.bit9
#define 			A10 				A.bit.bit10
#define 			A11 				A.bit.bit11
#define 			A12 				A.bit.bit12
#define 			A13 				A.bit.bit13
#define 			A14 				A.bit.bit14
#define 			A15 				A.bit.bit15

#define 			B0  				B.bit.bit0
#define 			B1  				B.bit.bit1
#define 			B2  				B.bit.bit2
#define 			B3  				B.bit.bit3
#define 			B4  				B.bit.bit4
#define 			B5  				B.bit.bit5
#define 			B6  				B.bit.bit6
#define 			B7  				B.bit.bit7
#define 			B8  				B.bit.bit8
#define 			B9  				B.bit.bit9
#define 			B10 				B.bit.bit10
#define 			B11 				B.bit.bit11
#define 			B12 				B.bit.bit12
#define 			B13 				B.bit.bit13
#define 			B14 				B.bit.bit14
#define 			B15 				B.bit.bit15


#define 			A0_Buf  			A_Buf.bit.bit0
#define 			A1_Buf  			A_Buf.bit.bit1
#define 			A2_Buf  			A_Buf.bit.bit2
#define 			A3_Buf  			A_Buf.bit.bit3
#define 			A4_Buf  			A_Buf.bit.bit4
#define 			A5_Buf  			A_Buf.bit.bit5
#define 			A6_Buf  			A_Buf.bit.bit6
#define 			A7_Buf  			A_Buf.bit.bit7
#define 			A8_Buf  			A_Buf.bit.bit8
#define 			A9_Buf  			A_Buf.bit.bit9
#define 			A10_Buf 			A_Buf.bit.bit10
#define 			A11_Buf 			A_Buf.bit.bit11
#define 			A12_Buf 			A_Buf.bit.bit12
#define 			A13_Buf 			A_Buf.bit.bit13
#define 			A14_Buf 			A_Buf.bit.bit14
#define 			A15_Buf 			A_Buf.bit.bit15

#define 			B0_Buf  			B_Buf.bit.bit0
#define 			B1_Buf  			B_Buf.bit.bit1
#define 			B2_Buf  			B_Buf.bit.bit2
#define 			B3_Buf  			B_Buf.bit.bit3
#define 			B4_Buf  			B_Buf.bit.bit4
#define 			B5_Buf  			B_Buf.bit.bit5
#define 			B6_Buf  			B_Buf.bit.bit6
#define 			B7_Buf  			B_Buf.bit.bit7
#define 			B8_Buf  			B_Buf.bit.bit8
#define 			B9_Buf  			B_Buf.bit.bit9
#define 			B10_Buf 			B_Buf.bit.bit10
#define 			B11_Buf 			B_Buf.bit.bit11
#define 			B12_Buf 			B_Buf.bit.bit12
#define 			B13_Buf 			B_Buf.bit.bit13
#define 			B14_Buf 			B_Buf.bit.bit14
#define 			B15_Buf 			B_Buf.bit.bit15


#define 			A0_Dir  			A_Dir.bit.bit0
#define 			A1_Dir  			A_Dir.bit.bit1
#define 			A2_Dir  			A_Dir.bit.bit2
#define 			A3_Dir  			A_Dir.bit.bit3
#define 			A4_Dir  			A_Dir.bit.bit4
#define 			A5_Dir  			A_Dir.bit.bit5
#define 			A6_Dir  			A_Dir.bit.bit6
#define 			A7_Dir 	 			A_Dir.bit.bit7
#define 			A8_Dir  			A_Dir.bit.bit8
#define 			A9_Dir  			A_Dir.bit.bit9
#define 			A10_Dir 			A_Dir.bit.bit10
#define 			A11_Dir 			A_Dir.bit.bit11
#define 			A12_Dir 			A_Dir.bit.bit12
#define 			A13_Dir 			A_Dir.bit.bit13
#define 			A14_Dir 			A_Dir.bit.bit14
#define 			A15_Dir 			A_Dir.bit.bit15

#define 			B0_Dir  			B_Dir.bit.bit0
#define 			B1_Dir  			B_Dir.bit.bit1
#define 			B2_Dir  			B_Dir.bit.bit2
#define 			B3_Dir  			B_Dir.bit.bit3
#define 			B4_Dir  			B_Dir.bit.bit4
#define 			B5_Dir  			B_Dir.bit.bit5
#define 			B6_Dir  			B_Dir.bit.bit6
#define 			B7_Dir  			B_Dir.bit.bit7
#define 			B8_Dir  			B_Dir.bit.bit8
#define 			B9_Dir  			B_Dir.bit.bit9
#define 			B10_Dir 			B_Dir.bit.bit10
#define 			B11_Dir 			B_Dir.bit.bit11
#define 			B12_Dir 			B_Dir.bit.bit12
#define 			B13_Dir 			B_Dir.bit.bit13
#define 			B14_Dir 			B_Dir.bit.bit14
#define 			B15_Dir 			B_Dir.bit.bit15


#define 			A0_Atr  			A_Atr.bit.bit0
#define 			A1_Atr  			A_Atr.bit.bit1
#define 			A2_Atr  			A_Atr.bit.bit2
#define 			A3_Atr  			A_Atr.bit.bit3
#define 			A4_Atr  			A_Atr.bit.bit4
#define 			A5_Atr  			A_Atr.bit.bit5
#define 			A6_Atr  			A_Atr.bit.bit6
#define 			A7_Atr  			A_Atr.bit.bit7
#define 			A8_Atr  			A_Atr.bit.bit8
#define 			A9_Atr  			A_Atr.bit.bit9
#define 			A10_Atr 			A_Atr.bit.bit10
#define 			A11_Atr 			A_Atr.bit.bit11
#define 			A12_Atr 			A_Atr.bit.bit12
#define 			A13_Atr 			A_Atr.bit.bit13
#define 			A14_Atr 			A_Atr.bit.bit14
#define 			A15_Atr 			A_Atr.bit.bit15

#define 			B0_Atr  			B_Atr.bit.bit0
#define 			B1_Atr  			B_Atr.bit.bit1
#define 			B2_Atr  			B_Atr.bit.bit2
#define 			B3_Atr  			B_Atr.bit.bit3
#define 			B4_Atr  			B_Atr.bit.bit4
#define 			B5_Atr  			B_Atr.bit.bit5
#define 			B6_Atr  			B_Atr.bit.bit6
#define 			B7_Atr  			B_Atr.bit.bit7
#define 			B8_Atr  			B_Atr.bit.bit8
#define 			B9_Atr  			B_Atr.bit.bit9
#define 			B10_Atr 			B_Atr.bit.bit10
#define 			B11_Atr 			B_Atr.bit.bit11
#define 			B12_Atr 			B_Atr.bit.bit12
#define 			B13_Atr 			B_Atr.bit.bit13
#define 			B14_Atr 			B_Atr.bit.bit14
#define 			B15_Atr 			B_Atr.bit.bit15

//=============================================================
//端口位域操作
//=============================================================
#define				PA					A.Uint
#define				PA_Buf				A_Buf.Uint
#define				PA_Dir				A_Dir.Uint
#define				PA_Atr				A_Atr.Uint
#define				PA_Lat				A_Lat.Uint

#define				PB					B.Uint
#define				PB_Buf				B_Buf.Uint
#define				PB_Dir				B_Dir.Uint
#define				PB_Atr				B_Atr.Uint

#define 			AH 					A.byte.ByteH
#define 			AL 					A.byte.ByteL
#define 			BH 					B.byte.ByteH
#define 			BL 					B.byte.ByteL

#define 			AH_Buf 				A_Buf.byte.ByteH
#define 			AL_Buf 				A_Buf.byte.ByteL
#define 			BH_Buf 				B_Buf.byte.ByteH
#define 			BL_Buf 				B_Buf.byte.ByteL

#define 			AH_Dir 				A_Dir.byte.ByteH
#define 			AL_Dir 				A_Dir.byte.ByteL
#define 			BH_Dir 				B_Dir.byte.ByteH
#define 			BL_Dir 				B_Dir.byte.ByteL

#define 			AH_Atr 				A_Atr.byte.ByteH
#define 			AL_Atr 				A_Atr.byte.ByteL
#define 			BH_Atr 				B_Atr.byte.ByteH
#define 			BL_Atr 				B_Atr.byte.ByteL

#define 			AQ0 				A.quar.quar0
#define 			AQ1 				A.quar.quar1
#define 			AQ2 				A.quar.quar2
#define 			AQ3 				A.quar.quar3
#define 			BQ0 				B.quar.quar0
#define 			BQ1 				B.quar.quar1
#define 			BQ2 				B.quar.quar2
#define 			BQ3 				B.quar.quar3

#define 			AQ0_Buf 			A_Buf.quar.quar0
#define 			AQ1_Buf 			A_Buf.quar.quar1
#define 			AQ2_Buf 			A_Buf.quar.quar2
#define 			AQ3_Buf 			A_Buf.quar.quar3
#define 			BQ0_Buf 			B_Buf.quar.quar0
#define 			BQ1_Buf 			B_Buf.quar.quar1
#define 			BQ2_Buf 			B_Buf.quar.quar2
#define 			BQ3_Buf 			B_Buf.quar.quar3

#define 			AQ0_Dir 			A_Dir.quar.quar0
#define 			AQ1_Dir 			A_Dir.quar.quar1
#define 			AQ2_Dir 			A_Dir.quar.quar2
#define 			AQ3_Dir 			A_Dir.quar.quar3
#define 			BQ0_Dir 			B_Dir.quar.quar0
#define 			BQ1_Dir 			B_Dir.quar.quar1
#define 			BQ2_Dir 			B_Dir.quar.quar2
#define 			BQ3_Dir 			B_Dir.quar.quar3

#define 			AQ0_Atr 			A_Atr.quar.quar0
#define 			AQ1_Atr 			A_Atr.quar.quar1
#define 			AQ2_Atr 			A_Atr.quar.quar2
#define 			AQ3_Atr 			A_Atr.quar.quar3
#define 			BQ0_Atr 			B_Atr.quar.quar0
#define 			BQ1_Atr 			B_Atr.quar.quar1
#define 			BQ2_Atr 			B_Atr.quar.quar2
#define 			BQ3_Atr 			B_Atr.quar.quar3


#endif

⌨️ 快捷键说明

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