那个跑马灯怎么弄出来的.有谁会呢,详细说下

发布网友

我来回答

1个回答

热心网友

#include"reg51.h"
sfr WDTRST = 0xA6; //定义看门狗;

void Delay(unsigned int x)
{unsigned char s;
while(x--)
{for(s=0;s<125;s++);}//延时程序,等于12MHZ的晶振,此函数延时为1毫秒
}
void main()
{
unsigned char sw=0;
char cf=1;
WDTRST=0x1E;
WDTRST=0xE1;//初始化看门狗。
P0=0xFE;
for(;;)
{
if(cf>0)
{
P0<<=1;//p0左移一位
P0|=0x01;//P0最低位置一
Delay(200);
if(P0==0xFF)
{cf=cf*(-1); P0=0x7F;}
}

else
{

P0>>=1;//P0右移一位
P0=P0|0x80;//P0最高位置一
Delay(200);
if(P0==0xFF)
{cf=cf*(-1); P0=0xFE;}
}

WDTRST=0x1E;
WDTRST=0xE1;//喂狗指令
}

}

每次一个灯亮,先左移,再右移。每200毫秒移位一次。假设晶振是12MHZ。
在Proteus上仿真通过。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com