单片机LED延时闪烁代码如下,为什么proteus里LED灯不闪烁?

#include <reg52.h>
#define uint unsigned int
sbit led1=P1^0;
void delay1s();
void main()
{
//P1=0xfe;
while(1);
{
led1=0;
delay1s();
led1=1;
delay1s();
}

}
void delay1s()
{
uint i,j;
for(i=1000;i>0;i--)
for(j=110;j>0;j--);
}
不延时只亮灯led1=0,proteus里的led1可以点亮。

main中的 while(1); 后面有分号,程序不断停留在while(1); 导致以后的大括号中语句都是废的.

去掉这个分号立即搞定。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-12-24
你的delay1s()是空的啊,里面都没延时怎么闪烁?还有如果要1秒的话最好使用定时器中断,时间太短在protues中好像看不出来

一个单片机流水灯程序,但用Proteus仿真时所有灯都不亮,程序如下
没有任何问题 如果你是第一次用proteus,那么我有理由怀疑你是LED用错了 那个带箭头的发光LED是不会发光的,要用RGB那三种LED 如图:用你的程序仿真的,能跑

proteus仿真 LED灯不亮
“原来的LED是接电源的,我改成了接地”,就是因为这么改了,就改错了,不能只改接地呀,那8个LED的正负也要颠倒一下才对,这样的8个LED的正负就接反了,肯定是不亮的。这样改,一方面8个LED正负要颠倒,P1输出电平也要改为0有效,就是P1口输出0,那8个LED才能亮。

proteus 仿真闪烁灯程序为什么无法闪烁
2.LED的方向对否? 也就是电流的方向。。。否则也不会亮的!

用单片机做个万年历为什么led不亮,用proteus做的。c语言的编程_百度知 ...
然后数码管用7SEG-MPX8-CC-BLUE,因为这个是共阴极数码管适合你的程序。然后就能显示了,仅仅是能够显示哈,因为你程序还有其他问题(其中之一是位码应该取反才对,扫描反向或扫描口的高低位交换一下)。需帮助加QQ:1055590241(狼牙)

在proteus中的单片机最小系统LED灯不亮
图画错了。1.二极管支路中的电阻,阻值太大了,应改成470欧姆~1K左右。2.二极管,你画的方向,是向右的,那么,左边就不应该接地了,应该接上+5V。

关于单片机流水灯 为什么我的灯都不亮啊??与proteus联调时还说代码没...
P0=_crol_(P0,1);这个函数=_crol_在哪里 很明显你的HEX文件没有生成,而且你的二极管负端全部都接的高电平,按照你这种接法 必须让你二极管的正端的电压高于VCC,那是不可能的。所以你重新看哈hex文件是否生成,再把二极管换过来

proteus仿真灯不亮,求解
在画仿真图时,LED,电阻,单片机,这三者的引脚之间要留有一段距离,而这段距离必须用一段导线连上才行,而不能将元件的引脚直接接在一起。

51单片机流水灯延时的问题,仿真软件proteus。
你程序就是这样的 temp=0xfe;P1=temp; 第一个灯亮 delay(840); 灯亮的时间 while(1)循环里 P1=0xff;灯全灭 delay(840); 灭的时间 temp=_crol_(temp,1); 循环移位 P1=temp;delay(840); 灯亮的时间

51单片机C程序实验LED灯:[1]单个灯闪烁
proteus电路图 所需元件清单:(分别是) 51单片机 电容 瓷片电容(也可用普通电容) 晶振 红色二极管 电阻 (tip:没有给高电平与接地,不在元件列表)电路图 连接方法如图,注意接口 程序清单 说明: 先写的延时子程序,放在了前面 然后是闪烁的主程序 includereg51.h sbit led=P1^0; \/\/延时子...

AT89C51单片机,Proteus仿真的时候LED不亮,显示missing(如下图...
你的仿真图中的LED是连接到P1口的,可是用了总线的画法,这样,LED并没 有直接连到P1口上,这就需要在P1口的8条线上,和8个LED灯连线上加网络示号。

相似回答