这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » LED基础程序(C)例29

共2条 1/1 1 跳转至

LED基础程序(C)例29

助工
2014-09-25 15:39:18     打赏

8个发光管间隔200ms由上至下,再由下至上,再重复一次,然后全部熄灭再以300ms间隔全部闪烁5次。重复此过程

/#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
void delay(z)				//延时函数,有返回值型
{uint x,y;
 for(x=100;x>0;x--)
  for(y=z;y>0;y--);
}
void xyz()					//8个LED闪烁五次  函数
{
 uint i;
 for(i=0;i<5;i++)
 	{
		P1=0xff;
 		delay(600);
 		P1=0x00;
 		delay(600);
	}
}
void main()
{
	uint a,b,c,d;
	while(1)
{
	a=0x7f;						//最高位亮
	b=a;
	a=_crol_(a,1);				//左移,最低位到最高位
	while(a!=b)					//A不等于B跳出函数,也就是流水到最高位的时候跳出函数
		{
			P1=a;
			delay(200);
			a=_crol_(a,1);
			P1=a;
		}
	c=0xfe;						//最低位亮
	d=c;
	c=_cror_(c,1);				//右移,最高位到最低位
	while(c!=d)					//C不等于D跳出函数,也就是流水到最低位的时候跳出函数
		{
			P1=c;
			delay(200);
			c=_cror_(c,1);
			P1=c;
		}
	P1=0xff;				   //LED全部熄灭
	delay(300);
	xyz();
}
}

 


菜鸟
2014-10-02 10:45:44     打赏
2楼
可以在程序后面加上说明吗?我是新手,,请多多指教。。。

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]