步遥情感网
您的当前位置:首页51单片机实现跑马灯

51单片机实现跑马灯

来源:步遥情感网

今天准备重新把课设时自己焊的51单片机班子拿出来玩一玩。我的板子晶振是12MHZ的,LED灯只有两个,分别接了P0.0和P0.1
下面是跑马灯的实现,P0是一个8位的数,每个位就代表了它对应的IO口的电平输出,当然因为我的板子设计时LED另一端接的VCC而不是GND,所以另一端,也就是单片机端需要给出一个低电平才可以让LED灯亮。

#include<reg52.h>

//延时函数,我的是12M晶振
void delay_ms(unsigned int n)
{
    unsigned int i=0,j=0;
    for(i=0;i<n;++i)
        for(j=0;j<123;++j);
}

void delay_s(unsigned int n)
{
    unsigned int i=0;
    for(i=0;i<1000;++i)
        delay_ms(1);
}

void all_up(void)		 //两个灯一起常亮
{
	P0=0x0;
}

void all_down(void)		 //两个灯一起常灭
{
	P0=0x0;
}

void flash_together(void)  //两个灯一起闪烁
{
	unsigned int i = 0;
	 while(1)
	{
		P0=0x00;
		delay_s(1);
		P0=0xff;
		delay_s(1);	
	}
}

void flash_swap(void)  //两个灯交替闪烁
{
	unsigned int i = 0;
	 while(1)
	{
		P0=0x01;
		delay_s(1);
		P0=0x2;
		delay_s(1);	
	}
}

void main(void)
{  
	flash_swap();
}

完整项目文件见,有任何问题欢迎评论或者邮箱联系我。?

因篇幅问题不能全部显示,请点此查看更多更全内容