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

📄 lsd.c

📁 流水灯 1.P1口所有LED间隔1000ms闪烁 2.P1口所有LED呈交替流水状 3.P1口流水灯-左移
💻 C
字号:
/******************************************************************************************************************/
/*罗列快乐*/
/*网站地址:http://2099.5d6d.com*/
/*模块名:流水灯模块	流水灯型号:红光LED*/
/*创建人:张东	日期:2009-3-23*/
/*修改人:张东	日期:2009-4-1*/
/*功能描述:1.P1口所有LED间隔1000ms闪烁
			2.P1口所有LED呈交替流水状
			3.P1口流水灯-左移,循环3次
			4.P1口流水灯-右移,循环3次
			5.P1口由两边向中间流水,循环3次
			6.P1口由中间向两边流水,循环3次*/
/*其他说明:*/
/*版本:*/
#include"reg51.h"									//包含头文件
#include <intrins.h> 								//包含有左右循环移位子函数的库
#define uchar unsigned char
#define uint unsigned int
void delay(uint);
void main()
{
	while(1)
	{
		uchar i,j,k;
		for(i=3;i>0;i--)								
		{
			P1=0x00;   								//点亮P1口所有LED,延时1000ms
			delay(1000);
			P1=0xff;			   					//熄灭P1口所有LED,延时1000ms
			delay(1000);
		}
		for(i=3;i>0;i--)							//奇偶交替成流水灯状态
		{
			P1=0x55;       
			delay(1000); 
			P1=0xaa;
			delay(1000);
		}	
		P1=0xff;
		delay(300);
		for(i=3;i>0;i--)							//P1口单灯左移流水,循环3次
		{
			k=0xfe;
			for(j=0;j<8;j++)
			{
				P1=k;       
				delay(200); 
				k=_crol_(k,1);
			}
		}
		P1=0xff;
		delay(300);
		for(i=3;i>0;i--)							//P1口单灯右移流水,循环3次
		{
			k=0xfe;
			for(j=0;j<8;j++)
			{
				P1=k;       
				delay(300); 
				k=_cror_(k,1);
			}
		}
		P1=0xff;
		delay(300);
		for(j=0;j<3;j++)     						//P1口由两边向中间流水,循环3次
		{
			P1=0x7e;       
			delay(300); 
			P1=0xbd;
			delay(300); 
			P1=0xdb;       
			delay(300); 
			P1=0xe7;
			delay(300); 
		}
		P1=0xff;
		delay(300);
		for(j=0;j<3;j++)    						//P1口由中间向两边流水,循环3次
		{
			P1=0xe7;       
			delay(300); 
			P1=0xdb;
			delay(300); 
			P1=0xbd;       
			delay(300); 
			P1=0x7e;
			delay(300); 
		}
		P1=0xff;
		delay(300);
		k=0xfe;     								//赋初值
		for(j=0;j<8;j++)
		{
			for(i=0;i<8-j;i++)   					//左移
			{
				P1=k;       						//点亮小灯
				delay(200); 						//延时200毫秒
				k=_crol_(k,1); 						//将a变量循环左移一位
			}
			k=_crol_(k,j);   						//补齐,方便下面的左移一位
			P1=0xff; 								//全部关闭
			k=k<<1;									//左移一位让多一个灯点亮
		}
	}
}

void delay(uint xms)								//延时函数
{
	uint i,j;
	for(i=xms;i>0;i--)								//外层for中变量为多少,就延时约多少ms
		for(j=110;j>0;j--);							//当内层for语句中变量恒定值为110时
}

⌨️ 快捷键说明

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