51单片机流水灯,我自己写出来的程序,可烧进单片机后只有P1的亮着,不知道哪里错了,求大神指点

#include<reg52.h>
sbit p1=P0^1;
sbit p2=P0^2;
sbit p3=P0^3;
sbit p4=P0^4;
sbit p5=P0^5;
sbit p6=P0^6;
void mdelay(unsigned int tms)
{
unsigned int n,t;
for(t=tms;t>=0;t--)
for(n=0;n<=125;n++);
}
void main ()
{
While(1)
{
p1=0;
p2=1;
mdelay(100);
p1=1;
p2=0;
mdelay(100);
p2=1;
p3=0;
mdelay(100);
p3=1;
p4=0;
mdelay(100);
p4=1;
p5=0;
mdelay(100);
p5=1;
p6=0;
mdelay(100);
p6=1;
}
}

按你程序,P0口上所接的6个LED灯,应该是负极接在P0口的各个脚上,你的板子上的LED是这样接的吗?看程序没有问题。追问

板子上没错
找到原因了,我上面写了unsigned后面还写了等于号
大概是负值了
谢谢啦

追答

在哪写的,没看到啊。

追问

前面unsigned后面t>=

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-10-13
试过单独一个灯可以闪烁吗追问

试过了,可以的
不过试的时候是延时是10000ms
可如果是延时的原因的话,
可以告诉我怎么改吗

本回答被提问者采纳
相似回答