新手求助:单片机程序下载成功,但流水灯不亮是怎么回...
所写的程序如下:
#include <stc89.h>
typedef unsigned int u16;
sbit D1=P0^0;
sbit D2=P0^1;
sbit D3=P0^2;
sbit D4=P0^3;
void delay(u16 n)
{
u16 i,j,k;
for(i=n;i>0;i--)
for(j=200;j>0;j--)
for(k=250;k>0;k--);
}
void main()
{
while(1)
{
D1=0;
delay(10);
D1=1;
delay(10);
D2=0;
delay(10);
D2=1;
delay(10);
D3=0;
delay(10);
D3=1;
delay(10);
D4=0;
delay(10);
D4=1;
delay(10);
}
}
所用的板子的电路图:
CPU电路和电源电路:
![](../imgqa/ele/mcu/mcu-3721rd.com-280450ze1fixvmnc.png)
程序下载成功提示:
![](../imgqa/ele/mcu/mcu-3721rd.com-28046oxxivfilzil.png)
求教高手,问题会是出在哪里?会是电路的问题吗?应该怎样检查和排除问题。
另外,在尝试通过P0口单独控制流水灯的几个LED时候,要控制的LED也没有亮,希望高手多多指教
延时函数不对。
延时函数最好不要这样写,因为for函数后不加{},作用域只是下一句,写的时候最好加作用域,把他改下,如果还是没反应,那就是硬件问题了。我现在还没焊过板子,所以也不知道。
已经搞定了,是少接了一个跳线帽
我就觉的这程序没错啊 我怎么也没有找到问题
延时函数好像有问题。
试试这个延时函数
void delay(uint k)
{
uchar i,j;
for(i=k;k>0;k--);
for(j=110;j>0;j--);
}
他这么写也没错吧 ,只是不是怎么好看 倒是你写这个
for(i=k;k>0;k--);
for(j=110;j>0;j--);
第一个for分号不应该有哦
这个撑血感觉怪怪的、。
这个程序感觉怪怪的。
我是刚学的,程序是照教程里模板写的最简单的程序,可能只有初学的才会写这样菜鸟级的入门程序,熟练的可能写的程序就要简洁一些吧,还要多多跟各位高手交流学习
我是菜鸟
看教程上说的,延时函数for()后面加分号和不加分号的意思好像是不一样的,貌似加分号程序就停止在分号这里了......
总之希望和大家多学习交流共同进步
都连接哪几个跳帽呢?
请大神告诉我一下单片机STC12C52AD,一个实验板,一个led灯下载程序后灯不亮是怎么回事?程序是这样的#include <reg52.h>
#define int unsigned int
sbit led1 = P1^0;
int i,j;
void main()
{
while(1)
{
led1=0;
for(i=1000;i>0;i--)
for(j=110;j>0;j--);
led1=1;
for(i=1000;i>0;i--)
for(j=110;j>0;j--);
}
}