单片机高手请进(C51)。

2025-03-02 00:32:59
推荐回答(4个)
回答1:

#include
sbit D0=P0^0;
sbit D1=P0^1;
sbit D2=P0^2;
//用户函数yanshi()放在main()函数前面就不用在进行函数声明
void yanshi()
{
unsigned int i; // 这里用unsigned int 型就可以了,范围在0-65535
for(i=50000;i>0;i--); //这里修改50000的值,即改变延时时间
}
void main()
{
while(1)
{
D0=0; //0为亮,1为灭
D1=1;
D2=1;
yanshi();
D0=1;
D1=0;
D2=1;
yanshi();
D0=1;
D1=1;
D2=0;
yanshi();
}
}

回答2:

有一个习惯不好,程序开始没有对要用到的I/O口初始化,定时器工作方式没有指定,也没有写中断允许指令。
另外P0口接上拉电阻没?LED另一端接的地?

回答3:

有电路图吗
延时短点看看先

回答4:

你这个是3个灯依次变亮后再依次熄灭,可能延时应该不太对