请教大神,学习中
时间:10-02
整理:3721RD
点击:
我做了个小程序,逻辑是:D1,D2开始顺序点亮到D6,延时10秒,再顺序熄灭,保留D1点亮,程序板子能通过,就是感觉不合理,请各位老师帮我看下,怎样修改,谢谢!
#include<reg52.h>
sbit D1=P1^0;
sbit D2=P1^1;
sbit D3=P1^2;
sbit D4=P1^3;
sbit D5=P1^4;
sbit D6=P1^5;
unsigned int a;
unsigned int cnt;
void main()
{
while(1)
{
P1=(0xfe<<cnt);
for(a=0;a<30000;a++);
cnt++;
if(cnt>=6)
{
cnt=6;
TMOD=0x01;
TH0=0xb4;
TL0=0X05;
TR0=1;
while(1)
{
if(TF0==1)
{
TF0=0;
TH0=0xb4;
TL0=0X05;
cnt++;
if(cnt>=400)
{
while(1)
{
D1=0;
for(a=0;a<30000;a++);
D2=1;
for(a=0;a<30000;a++);
D3=1;
for(a=0;a<30000;a++);
D4=1;
for(a=0;a<30000;a++);
D5=1;
for(a=0;a<30000;a++);
D6=1;
for(a=0;a<30000;a++);
}
}
}
}
}
}
}
#include<reg52.h>
sbit D1=P1^0;
sbit D2=P1^1;
sbit D3=P1^2;
sbit D4=P1^3;
sbit D5=P1^4;
sbit D6=P1^5;
unsigned int a;
unsigned int cnt;
void main()
{
while(1)
{
P1=(0xfe<<cnt);
for(a=0;a<30000;a++);
cnt++;
if(cnt>=6)
{
cnt=6;
TMOD=0x01;
TH0=0xb4;
TL0=0X05;
TR0=1;
while(1)
{
if(TF0==1)
{
TF0=0;
TH0=0xb4;
TL0=0X05;
cnt++;
if(cnt>=400)
{
while(1)
{
D1=0;
for(a=0;a<30000;a++);
D2=1;
for(a=0;a<30000;a++);
D3=1;
for(a=0;a<30000;a++);
D4=1;
for(a=0;a<30000;a++);
D5=1;
for(a=0;a<30000;a++);
D6=1;
for(a=0;a<30000;a++);
}
}
}
}
}
}
}