C语言编程实现51单片机,流水灯:八只指示灯中,从左至右依次熄灭至全灭;再从右至左依次点亮至全亮,如此循环。

#include "reg52.h"			 //此文件中定义了单片机的一些特殊功能寄存器
typedef unsigned int u16;	  //对数据类型进行声明定义
typedef unsigned char u8;


//为每个LED灯命名
sbit leda=P0;		 
sbit led1=P0^0;		
sbit led2=P0^1;
sbit led3=P0^2;
sbit led4=P0^3;
sbit led5=P0^4;
sbit led6=P0^5;
sbit led7=P0^6;
sbit led8=P0^7;
/*******************************************************************************
* 函 数 名         : delay
* 函数功能		   : 延时函数,i=1时,大约延时10us
*******************************************************************************/
void delay(u16 i)
{
	while(i--);	
}

/*******************************************************************************
* 函 数 名       : main
* 函数功能		 : 主函数
* 输    入       : 无
* 输    出    	 : 无
*******************************************************************************/
void main()
{
   
	while(1)
	{
               	      leda=1;     //全部灯亮

               //从左到右依次熄灭
	 			      led1=0;   
			   	delay(50000); //大约延时450ms
					  led2=0;
			   	delay(50000); //大约延时450ms
					  led3=0;
			   	delay(50000); //大约延时450ms
					  led4=0;
			   	delay(50000); //大约延时450ms
					  led5=0;
			   	delay(50000); //大约延时450ms
					  led6=0;
			   	delay(50000); //大约延时450ms
					  led7=0;
			   	delay(50000); //大约延时450ms
					  led8=0;
			   	delay(100000); //大约延时900ms
	
                 //从右到左依次点亮
				 	  led8=1; 
			   	delay(50000); //大约延时450ms
					  led7=1;
			   	delay(50000); //大约延时450ms
				      led6=1;
			   	delay(50000); //大约延时450ms
					  led5=1;
			   	delay(50000); //大约延时450ms
				      led4=1;
			   	delay(50000); //大约延时450ms
			     	  led3=1;
			   	delay(50000); //大约延时450ms
				      led2=1;
			   	delay(50000); //大约延时450ms
				      led1=1;
			   	delay(50000); //大约延时450ms

				      leda=1; //全部灯亮
				
				}		
}	

 

你可能感兴趣的:(单片机)