led灯实现跑马灯效果,达到设定时间(2秒)两LED灯全部亮起,持续时间1秒,而后重新恢复跑马灯效果;

#include "reg52.h"			 //此文件中定义了单片机的一些特殊功能寄存器

typedef unsigned int u16;	  //对数据类型进行声明定义
typedef unsigned char u8;

void delay(u16 i)	   //延时函数
{
	 u16 x,y;
	 for(x=i;x>0;x--)
	  for(y=110;y>0;y--);
}


void Timer0Init()	 //定时器0初始化
{
	TMOD|=0X01;//选择为定时器0模式,工作方式1,仅用TR0打开启动。

	TH0=0XFC;	//给定时器赋初值,定时1ms
	TL0=0X18;	
	ET0=1;//打开定时器0中断允许
	EA=1;//打开总中断
	TR0=1;//打开定时器			
}


void main()
{
	u16 i;	
	Timer0Init();  //定时器0初始化
	while(1)
	{
		P0=0x00;			   //流水灯
	  	for(i=0;i<8;i++)
	  	{
		   P2=~(0x01<<i); 
		   delay(200); 
		}		
	}
}

void Timer0() interrupt 1
{
	static u16 i;
	TH0=0XFC;	//给定时器赋初值,定时1ms
	TL0=0X18;
	i++;
	if(i>=2000 && i<=3000)
		P2=0x00;	
}

 

posted @ 2023-01-29 23:32  放氮气的蜗牛  阅读(37)  评论(0编辑  收藏  举报  来源