51单片机 定时器0中断实现LED流水灯

使用51单片机定时器0 方式1实现LED流水灯

代码:

#include <reg52.h>
typedef unsigned int u16;

void timer0init()
{
	TMOD=0x01;
	ET0=1;
	EA=1;
	TR0=1;
	TH0=64736/256;
	TL0=64736%256;
}

void main()
{	
	timer0init();
	while(1);
}

void timer0() interrupt 1
{
	u16 i;
  TH0=64736/256;
	TL0=64736%256;
	i++;
	switch(i)
	{
		case(100):P2=0xfe;break;
		case(200):P2=0xfd;break;
		case(300):P2=0xfb;break;
		case(400):P2=0xf7;break;
		case(500):P2=0xef;break;
		case(600):P2=0xdf;break;
		case(700):P2=0xbf;break;
		case(800):P2=0x7f;break;
	}
	if(i==800)
	{
		i=0;
	}
}

使用51单片机定时器0 方式1实现LED流水灯往返

代码:

#include <reg52.h>
typedef unsigned int u16;

void timer0init()
{
	TMOD=0x01;
	ET0=1;
	EA=1;
	TR0=1;
	TH0=63936/256;
	TL0=63936%256;
}

void main()
{	
	timer0init();
	while(1);
}

void timer0() interrupt 1
{
	u16 i;
  TH0=63936/256;
	TL0=63936%256;
	i++;
	switch(i)
	{
		case(100):P2=0xfe;break;
		case(200):P2=0xfd;break;
		case(300):P2=0xfb;break;
		case(400):P2=0xf7;break;
		case(500):P2=0xef;break;
		case(600):P2=0xdf;break;
		case(700):P2=0xbf;break;
		case(800):P2=0x7f;break;
		case(900):P2=0x7f;break;
		case(1000):P2=0xbf;break;
		case(1100):P2=0xdf;break;
		case(1200):P2=0xef;break;
		case(1300):P2=0xf7;break;
		case(1400):P2=0xfb;break;
		case(1500):P2=0xfd;break;
		case(1600):P2=0xfe;break;
	}
	if(i==1600)
	{
		i=0;
	}
}

Guess you like

Origin blog.csdn.net/qq_56894255/article/details/119796909