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

📄 easyio.h

📁 这里有很多我自己做的凌阳单片机源程序
💻 H
📖 第 1 页 / 共 2 页
字号:
#ifndef	__EASY_h__
#define	__EASY_h__


//**********************************************************************
//IO单独操作函数库
//可以对每一个端口单独进行操作,不影响其他端口
//此库调用系统库里关于IO的API函数编写,所以调用此库前,必须保证系统IO端口
//API函数已加载
//Written by Fantasy_Ma
//************************************************************************


unsigned int A=1;
unsigned int B=2;

//**********单独设置I/O的Direction信息***********
void	Set_IO_Dir(unsigned int x,unsigned int y,unsigned int z)
{
	if(x==1)
	{
		switch(y)
		{
			case 0:	if(z==1)	*P_IOA_Dir	|=	0x0001;
					if(z==0)	*P_IOA_Dir	&=	0xfffe;
					break;
			case 1:	if(z==1)	*P_IOA_Dir	|=	0x0002;
					if(z==0)	*P_IOA_Dir	&=	0xfffd;
					break;
			case 2: if(z==1)	*P_IOA_Dir	|=	0x0004;
				    if(z==0)	*P_IOA_Dir	&=	0xfffb;
				    break;
			case 3: if(z==1)	*P_IOA_Dir	|=	0x0008;
				    if(z==0)	*P_IOA_Dir	&=	0xfff7;
				    break;
			case 4:	if(z==1)	*P_IOA_Dir	|=	0x0010;
					if(z==0)	*P_IOA_Dir	&=	0xffef;
					break;
			case 5:	if(z==1)	*P_IOA_Dir	|=	0x0020;
					if(z==0)	*P_IOA_Dir	&=	0xffdf;
					break;
			case 6:	if(z==1)	*P_IOA_Dir	|=	0x0040;
					if(z==0)	*P_IOA_Dir	&=	0xffbf;
					break;
			case 7:	if(z==1)	*P_IOA_Dir	|=	0x0080;
					if(z==0)	*P_IOA_Dir	&=	0xff7f;
					break;
			case 8:	if(z==1)	*P_IOA_Dir	|=	0x0100;
					if(z==0)	*P_IOA_Dir	&=	0xfeff;
					break;
			case 9:	if(z==1)	*P_IOA_Dir	|=	0x0200;
					if(z==0)	*P_IOA_Dir	&=	0xfdff;
					break;
			case 10:if(z==1)	*P_IOA_Dir	|=	0x0400;
					if(z==0)	*P_IOA_Dir	&=	0xfbff;
					break;
			case 11:if(z==1)	*P_IOA_Dir	|=	0x0800;
					if(z==0)	*P_IOA_Dir	&=	0xf7ff;
					break;
			case 12:if(z==1)	*P_IOA_Dir	|=	0x1000;
					if(z==0)	*P_IOA_Dir	&=	0xefff;
					break;
			case 13:if(z==1)	*P_IOA_Dir	|=	0x2000;
					if(z==0)	*P_IOA_Dir	&=	0xdfff;
					break;
			case 14:if(z==1)	*P_IOA_Dir	|=	0x4000;
					if(z==0)	*P_IOA_Dir	&=	0xbfff;
					break;
			case 15:if(z==1)	*P_IOA_Dir	|=	0x8000;
					if(z==0)	*P_IOA_Dir	&=	0x7fff;
					break;
		}
	}
	if(x==2)
	{
		switch(y)
		{
			case 0:	if(z==1)	*P_IOB_Dir	|=	0x0001;
					if(z==0)	*P_IOB_Dir	&=	0xfffe;
					break;
			case 1:	if(z==1)	*P_IOB_Dir	|=	0x0002;
					if(z==0)	*P_IOB_Dir	&=	0xfffd;
					break;
			case 2: if(z==1)	*P_IOB_Dir	|=	0x0004;
				    if(z==0)	*P_IOB_Dir	&=	0xfffb;
				    break;
			case 3: if(z==1)	*P_IOB_Dir	|=	0x0008;
				    if(z==0)	*P_IOB_Dir	&=	0xfff7;
				    break;
			case 4:	if(z==1)	*P_IOB_Dir	|=	0x0010;
					if(z==0)	*P_IOB_Dir	&=	0xffef;
					break;
			case 5:	if(z==1)	*P_IOB_Dir	|=	0x0020;
					if(z==0)	*P_IOB_Dir	&=	0xffdf;
					break;
			case 6:	if(z==1)	*P_IOB_Dir	|=	0x0040;
					if(z==0)	*P_IOB_Dir	&=	0xffbf;
					break;
			case 7:	if(z==1)	*P_IOB_Dir	|=	0x0080;
					if(z==0)	*P_IOB_Dir	&=	0xff7f;
					break;
			case 8:	if(z==1)	*P_IOB_Dir	|=	0x0100;
					if(z==0)	*P_IOB_Dir	&=	0xfeff;
					break;
			case 9:	if(z==1)	*P_IOB_Dir	|=	0x0200;
					if(z==0)	*P_IOB_Dir	&=	0xfdff;
					break;
			case 10:if(z==1)	*P_IOB_Dir	|=	0x0400;
					if(z==0)	*P_IOB_Dir	&=	0xfbff;
					break;
			case 11:if(z==1)	*P_IOB_Dir	|=	0x0800;
					if(z==0)	*P_IOB_Dir	&=	0xf7ff;
					break;
			case 12:if(z==1)	*P_IOB_Dir	|=	0x1000;
					if(z==0)	*P_IOB_Dir	&=	0xefff;
					break;
			case 13:if(z==1)	*P_IOB_Dir	|=	0x2000;
					if(z==0)	*P_IOB_Dir	&=	0xdfff;
					break;
			case 14:if(z==1)	*P_IOB_Dir	|=	0x4000;
					if(z==0)	*P_IOB_Dir	&=	0xbfff;
					break;
			case 15:if(z==1)	*P_IOB_Dir	|=	0x8000;
					if(z==0)	*P_IOB_Dir	&=	0x7fff;
					break;
		}
	}
}


//**********单独获取I/O的Direction信息***********
unsigned int Get_IO_Dir(unsigned int x,unsigned int y)
{
	unsigned int a;
	if(x==1)
	{
		switch(y)
		{
			case 0:	a=*P_IOA_Dir&0x0001;
					if(a==0)	return a;
					else		return 1;
			case 1:	a=*P_IOA_Dir&0x0002;
					if(a==0)	return a;
					else		return 1;
			case 2:	a=*P_IOA_Dir&0x0004;
					if(a==0)	return a;
					else		return 1;
			case 3:	a=*P_IOA_Dir&0x0008;
					if(a==0)	return a;
					else		return 1;
			case 4:	a=*P_IOA_Dir&0x0010;
					if(a==0)	return a;
					else		return 1;
			case 5:	a=*P_IOA_Dir&0x0020;
					if(a==0)	return a;
					else		return 1;
			case 6:	a=*P_IOA_Dir&0x0040;
					if(a==0)	return a;
					else		return 1;
			case 7:	a=*P_IOA_Dir&0x0080;
					if(a==0)	return a;
					else		return 1;
			case 8:	a=*P_IOA_Dir&0x0100;
					if(a==0)	return a;
					else		return 1;
			case 9:	a=*P_IOA_Dir&0x0200;
					if(a==0)	return a;
					else		return 1;
			case 10:a=*P_IOA_Dir&0x0400;
					if(a==0)	return a;
					else		return 1;
			case 11:a=*P_IOA_Dir&0x0800;
					if(a==0)	return a;
					else		return 1;
			case 12:a=*P_IOA_Dir&0x1000;
					if(a==0)	return a;
					else		return 1;
			case 13:a=*P_IOA_Dir&0x2000;
					if(a==0)	return a;
					else		return 1;
			case 14:a=*P_IOA_Dir&0x4000;
					if(a==0)	return a;
					else		return 1;
			case 15:a=*P_IOA_Dir&0x8000;
					if(a==0)	return a;
					else		return 1;
			
		}
	}
	if(x==2)
	{
		switch(y)
		{
			case 0:	a=*P_IOB_Dir&0x0001;
					if(a==0)	return a;
					else		return 1;
			case 1:	a=*P_IOB_Dir&0x0002;
					if(a==0)	return a;
					else		return 1;
			case 2:	a=*P_IOB_Dir&0x0004;
					if(a==0)	return a;
					else		return 1;
			case 3:	a=*P_IOB_Dir&0x0008;
					if(a==0)	return a;
					else		return 1;
			case 4:	a=*P_IOB_Dir&0x0010;
					if(a==0)	return a;
					else		return 1;
			case 5:	a=*P_IOB_Dir&0x0020;
					if(a==0)	return a;
					else		return 1;
			case 6:	a=*P_IOB_Dir&0x0040;
					if(a==0)	return a;
					else		return 1;
			case 7:	a=*P_IOB_Dir&0x0080;
					if(a==0)	return a;
					else		return 1;
			case 8:	a=*P_IOB_Dir&0x0100;
					if(a==0)	return a;
					else		return 1;
			case 9:	a=*P_IOB_Dir&0x0200;
					if(a==0)	return a;
					else		return 1;
			case 10:a=*P_IOB_Dir&0x0400;
					if(a==0)	return a;
					else		return 1;
			case 11:a=*P_IOB_Dir&0x0800;
					if(a==0)	return a;
					else		return 1;
			case 12:a=*P_IOB_Dir&0x1000;
					if(a==0)	return a;
					else		return 1;
			case 13:a=*P_IOB_Dir&0x2000;
					if(a==0)	return a;
					else		return 1;
			case 14:a=*P_IOB_Dir&0x4000;
					if(a==0)	return a;
					else		return 1;
			case 15:a=*P_IOB_Dir&0x8000;
					if(a==0)	return a;
					else		return 1;
			
		}
	}
}


//**********单独设置I/O的Attribution信息***********
void	Set_IO_Attrib(unsigned int x,unsigned int y,unsigned int z)
{
	if(x==1)
	{
		switch(y)
		{
			case 0:	if(z==1)	*P_IOA_Attrib	|=	0x0001;
					if(z==0)	*P_IOA_Attrib	&=	0xfffe;
					break;
			case 1:	if(z==1)	*P_IOA_Attrib	|=	0x0002;
					if(z==0)	*P_IOA_Attrib	&=	0xfffd;
					break;
			case 2: if(z==1)	*P_IOA_Attrib	|=	0x0004;
				    if(z==0)	*P_IOA_Attrib	&=	0xfffb;
				    break;
			case 3: if(z==1)	*P_IOA_Attrib	|=	0x0008;
				    if(z==0)	*P_IOA_Attrib	&=	0xfff7;
				    break;
			case 4:	if(z==1)	*P_IOA_Attrib	|=	0x0010;
					if(z==0)	*P_IOA_Attrib	&=	0xffef;
					break;
			case 5:	if(z==1)	*P_IOA_Attrib	|=	0x0020;
					if(z==0)	*P_IOA_Attrib	&=	0xffdf;
					break;
			case 6:	if(z==1)	*P_IOA_Attrib	|=	0x0040;
					if(z==0)	*P_IOA_Attrib	&=	0xffbf;
					break;
			case 7:	if(z==1)	*P_IOA_Attrib	|=	0x0080;
					if(z==0)	*P_IOA_Attrib	&=	0xff7f;
					break;
			case 8:	if(z==1)	*P_IOA_Attrib	|=	0x0100;
					if(z==0)	*P_IOA_Attrib	&=	0xfeff;
					break;
			case 9:	if(z==1)	*P_IOA_Attrib	|=	0x0200;
					if(z==0)	*P_IOA_Attrib	&=	0xfdff;
					break;
			case 10:if(z==1)	*P_IOA_Attrib	|=	0x0400;
					if(z==0)	*P_IOA_Attrib	&=	0xfbff;
					break;
			case 11:if(z==1)	*P_IOA_Attrib	|=	0x0800;
					if(z==0)	*P_IOA_Attrib	&=	0xf7ff;
					break;
			case 12:if(z==1)	*P_IOA_Attrib	|=	0x1000;
					if(z==0)	*P_IOA_Attrib	&=	0xefff;
					break;
			case 13:if(z==1)	*P_IOA_Attrib	|=	0x2000;
					if(z==0)	*P_IOA_Attrib	&=	0xdfff;
					break;
			case 14:if(z==1)	*P_IOA_Attrib	|=	0x4000;
					if(z==0)	*P_IOA_Attrib	&=	0xbfff;
					break;
			case 15:if(z==1)	*P_IOA_Attrib	|=	0x8000;
					if(z==0)	*P_IOA_Attrib	&=	0x7fff;
					break;
		}
	}
	if(x==2)
	{
		switch(y)
		{
			case 0:	if(z==1)	*P_IOB_Attrib	|=	0x0001;
					if(z==0)	*P_IOB_Attrib	&=	0xfffe;
					break;
			case 1:	if(z==1)	*P_IOB_Attrib	|=	0x0002;
					if(z==0)	*P_IOB_Attrib	&=	0xfffd;
					break;
			case 2: if(z==1)	*P_IOB_Attrib	|=	0x0004;
				    if(z==0)	*P_IOB_Attrib	&=	0xfffb;
				    break;
			case 3: if(z==1)	*P_IOB_Attrib	|=	0x0008;
				    if(z==0)	*P_IOB_Attrib	&=	0xfff7;
				    break;
			case 4:	if(z==1)	*P_IOB_Attrib	|=	0x0010;
					if(z==0)	*P_IOB_Attrib	&=	0xffef;
					break;
			case 5:	if(z==1)	*P_IOB_Attrib	|=	0x0020;
					if(z==0)	*P_IOB_Attrib	&=	0xffdf;
					break;
			case 6:	if(z==1)	*P_IOB_Attrib	|=	0x0040;
					if(z==0)	*P_IOB_Attrib	&=	0xffbf;
					break;
			case 7:	if(z==1)	*P_IOB_Attrib	|=	0x0080;
					if(z==0)	*P_IOB_Attrib	&=	0xff7f;
					break;
			case 8:	if(z==1)	*P_IOB_Attrib	|=	0x0100;
					if(z==0)	*P_IOB_Attrib	&=	0xfeff;
					break;
			case 9:	if(z==1)	*P_IOB_Attrib	|=	0x0200;
					if(z==0)	*P_IOB_Attrib	&=	0xfdff;
					break;
			case 10:if(z==1)	*P_IOB_Attrib	|=	0x0400;
					if(z==0)	*P_IOB_Attrib	&=	0xfbff;
					break;
			case 11:if(z==1)	*P_IOB_Attrib	|=	0x0800;
					if(z==0)	*P_IOB_Attrib	&=	0xf7ff;
					break;
			case 12:if(z==1)	*P_IOB_Attrib	|=	0x1000;
					if(z==0)	*P_IOB_Attrib	&=	0xefff;
					break;
			case 13:if(z==1)	*P_IOB_Attrib	|=	0x2000;
					if(z==0)	*P_IOB_Attrib	&=	0xdfff;
					break;
			case 14:if(z==1)	*P_IOB_Attrib	|=	0x4000;
					if(z==0)	*P_IOB_Attrib	&=	0xbfff;
					break;
			case 15:if(z==1)	*P_IOB_Attrib	|=	0x8000;
					if(z==0)	*P_IOB_Attrib	&=	0x7fff;
					break;
		}
	}
}

//**********单独获取I/O的Attribution信息***********
unsigned int Get_IO_Attrib(unsigned int x,unsigned int y)
{
	unsigned int a;
	if(x==1)
	{
		switch(y)
		{
			case 0:	a=*P_IOA_Attrib&0x0001;
					if(a==0)	return a;
					else		return 1;
			case 1:	a=*P_IOA_Attrib&0x0002;
					if(a==0)	return a;
					else		return 1;
			case 2:	a=*P_IOA_Attrib&0x0004;
					if(a==0)	return a;
					else		return 1;
			case 3:	a=*P_IOA_Attrib&0x0008;
					if(a==0)	return a;
					else		return 1;
			case 4:	a=*P_IOA_Attrib&0x0010;
					if(a==0)	return a;
					else		return 1;
			case 5:	a=*P_IOA_Attrib&0x0020;
					if(a==0)	return a;
					else		return 1;
			case 6:	a=*P_IOA_Attrib&0x0040;
					if(a==0)	return a;
					else		return 1;
			case 7:	a=*P_IOA_Attrib&0x0080;
					if(a==0)	return a;
					else		return 1;
			case 8:	a=*P_IOA_Attrib&0x0100;
					if(a==0)	return a;
					else		return 1;
			case 9:	a=*P_IOA_Attrib&0x0200;
					if(a==0)	return a;
					else		return 1;
			case 10:a=*P_IOA_Attrib&0x0400;
					if(a==0)	return a;
					else		return 1;
			case 11:a=*P_IOA_Attrib&0x0800;
					if(a==0)	return a;
					else		return 1;
			case 12:a=*P_IOA_Attrib&0x1000;
					if(a==0)	return a;
					else		return 1;
			case 13:a=*P_IOA_Attrib&0x2000;
					if(a==0)	return a;
					else		return 1;
			case 14:a=*P_IOA_Attrib&0x4000;
					if(a==0)	return a;
					else		return 1;
			case 15:a=*P_IOA_Attrib&0x8000;
					if(a==0)	return a;
					else		return 1;
			
		}
	}
	if(x==2)
	{
		switch(y)
		{
			case 0:	a=*P_IOB_Attrib&0x0001;
					if(a==0)	return a;
					else		return 1;
			case 1:	a=*P_IOB_Attrib&0x0002;
					if(a==0)	return a;
					else		return 1;
			case 2:	a=*P_IOB_Attrib&0x0004;
					if(a==0)	return a;
					else		return 1;
			case 3:	a=*P_IOB_Attrib&0x0008;
					if(a==0)	return a;
					else		return 1;
			case 4:	a=*P_IOB_Attrib&0x0010;
					if(a==0)	return a;
					else		return 1;
			case 5:	a=*P_IOB_Attrib&0x0020;
					if(a==0)	return a;
					else		return 1;
			case 6:	a=*P_IOB_Attrib&0x0040;
					if(a==0)	return a;
					else		return 1;
			case 7:	a=*P_IOB_Attrib&0x0080;
					if(a==0)	return a;
					else		return 1;
			case 8:	a=*P_IOB_Attrib&0x0100;
					if(a==0)	return a;
					else		return 1;
			case 9:	a=*P_IOB_Attrib&0x0200;
					if(a==0)	return a;
					else		return 1;
			case 10:a=*P_IOB_Attrib&0x0400;
					if(a==0)	return a;
					else		return 1;
			case 11:a=*P_IOB_Attrib&0x0800;
					if(a==0)	return a;
					else		return 1;
			case 12:a=*P_IOB_Attrib&0x1000;
					if(a==0)	return a;
					else		return 1;
			case 13:a=*P_IOB_Attrib&0x2000;
					if(a==0)	return a;
					else		return 1;
			case 14:a=*P_IOB_Attrib&0x4000;
					if(a==0)	return a;
					else		return 1;
			case 15:a=*P_IOB_Attrib&0x8000;
					if(a==0)	return a;
					else		return 1;

⌨️ 快捷键说明

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