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 @   放氮气的蜗牛  阅读(88)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示