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

📄 myio.h

📁 霹雳灯实验程序
💻 H
字号:
/*myio.h-自己写的链接库*/
//====声明区=============================================================
#define LED P0		//定义LED接至P0口
void debouncer(void);	//声明防抖动函数
void delay10ms(int);	//声明10ms延时函数
void alter(int);	//声明高地位交互闪烁函数
void left(int);		//声明单灯左移函数
void right(int);	//声明单灯右移函数
void pili(int);		//声明霹雳灯函数
void fiash(int);	//声明闪烁函数
//====自己写的子程序======================================================
/*防抖动函数,延时约20ms*/
void debouncer(void)	//防抖动函数开始
{
	int i;			//声明整数变量i
	for(i=0;i<2400;i++);	//计数2400次,延时约20ms
}
/*延时函数,延时约x乘以10ms*/
void delay10ms(int x)
{
	int i,j;		//声明整数变量i,j
	for(i=0;i<x;i++)	//计数x次,延时约x乘以10ms
	   for(j=0;j<=1200;j++);//计数1200次,延时约10ms
}
/*高地位交互闪烁函数,执行x次*/
void alter(int x)
{
	int i;			//声明整数变量i
	LED=0xof;		//初始状态(高位亮,低位灭)
	for(i=0;i<2*x-i;i++)	//i变量for循环执行2x-1次
	{	delay10ms(50);	//延时50*10ms=0.5s
		LED=~LED;	//LED反相输出
	}
	delay10ms(50);		//延时50*10ms=0.5s
}
/*全灯闪烁函数,执行x次*/
void fiash(int x)
{
	int i;			//声明整数变量i
	LED=0x00;		//初始状态全亮
	for(i=0;i<2*x-i;i++)	//i变量for循环执行2x-1次
	{	delay10ms(50);	//延时50*10ms=0.5s
		LED=~LED;	//LED反相输出
	}
	delay10ms(50);		//延时50*10ms=0.5s
}
/*单灯左移函数,执行x圈*/
void left(int x)
{
	int i,j;			//声明整数变量i,j
	for(i=0;i<x;i++)		//i循环,执行x次
	{	LED=0xfe;		//初始状态=1111 1110
		for(j=0;j<7;j++)	//j循环,左移7次
		{	delay10ms(25);	//延时25*10ms=0.25s
			LED=(LED<<1)|0x01;//左移一位后,LSB设为1
		}
		delay10ms(25);		//延时25*10ms=0.25s
	}
}
/*单灯右移函数,执行x圈*/
void right(int x)
{
	int i,j;			//声明整数变量i,j
	for(i=0;i<x;i++)		//i循环,执行x次
	{	LED=0x7f;		//初始状态=0111 1111
		for(j=0;j<7;j++)	//j循环,右移7次
		{	delay10ms(25);	//延时25*10ms=0.25s
			LED=(LED>>1)|0x08;//右移一位后,MSB设为1
		}
		delay10ms(25);		//延时25*10ms=0.25s
	}
}

/*霹雳灯函数,执行x圈*/
void pili(int x)
{
	int i;			//声明整数变量i
	for(i=0;i<x;i++)	//i循环,执行x次
	{	left(1);	//单灯左移一圈
		right(1);	//单灯右移一圈
	}
}

⌨️ 快捷键说明

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