单片机点亮一个二极管 led=0以后 加不加while(1) 二极管都是一直亮 有区别么

如题所述

有区别,加上无限循环,程序一直在无限循环里面运行,否则程序会跑飞,跑到没有代区还好,要是跑到代码区就造成代码混乱了!代码运行不按照你理想的那样运行了,这在程序设计中是不允许出现的情况!追问

while(1)要是后面没有程序 那会如何运行

追答

它会继续扫描剩下的存储器的空白区,这要根据编译环境不同,会有不同的结果。有的编译器会让单片机复位,有的会让程序一直读到最后一个字节!
其实,无限循环并不是一直让它这样运行。从功耗上来说,它太浪费了!所以,主要是理解原理,而不是单纯的看现象一样就行了!

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-06-02
单片机点亮一个二极管,led=0以后,加不加while(1) 二极管都是一直亮,直到执行led=1,这是没有区别的。追问

led=0 后面是while(1){里面为空} 程序是怎么样运行的

追答

由于常量1是不可改变的,所以while(1)一直成立,{里面为空} 就一直执行空操作。

本回答被网友采纳

单片机点亮一个二极管 led=0以后 加不加while(1) 二极管都是一直亮...
有区别,加上无限循环,程序一直在无限循环里面运行,否则程序会跑飞,跑到没有代区还好,要是跑到代码区就造成代码混乱了!代码运行不按照你理想的那样运行了,这在程序设计中是不允许出现的情况!

单片机编程里“while(1);”不是表示终止嘛,那么下面程序执完第一个...
第一个while(1),这是一个无条件循环,因为条件永远为真,即永远循环下去,就是无条件循环了,这是单片机主程序必须的主循环结构。而循环执行的程序是下面{ }内的所有程序。这个程序的主循环有3条语句,i=2000;是给i赋初值,led1=1;是点亮发光二极管,而while(i--);是一个小循环语句,用来延时...

为什么最简单的点亮一个二极管程序烧进51单片机里面,没有反应,确定烧进...
很简单啊,用万用表量单片机对应输出端,先确认是否有电压输出变化.如果有电压变化,说明程序运行正常,看看二极管电路是不是有问题.否则,就看程序是否有问题,可以把程序和电路贴上来,具体看看.

单片机一个按键控制一个发光二极管
while(1) \/\/不断循环 { if(KEY==0) \/\/判断键盘是否被按下 { delay(); \/\/调用延时函数,作用消抖 if(KEY==0) \/\/再次读键盘,以判断刚才判断到的是否为抖动 LED=~LED; \/\/取反P1.1电平状态,也就是改变发光管的状态 } } } void delay(){ unsigned int i=50000;while...

使用51单片机点亮一个LED
使用51单片机点亮LED的步骤首先理解其基本原理,LED作为发光二极管,有正负极,需将其正极接VCC(5V电源正极),通过一个1k电阻(限流保护)串联,负极连接单片机引脚。当单片机引脚置低电平,电路导通,LED就会亮起,如图所示。在实际操作中,我们需要在Keil4环境中建立项目。首先在系统目录创建一个工程文件...

为什么给单片机一个引脚“1”发光二极管就会亮?这是为什么?
如图,P1.0为“1”,LED就会点亮,这里,工作电压为5V,加了一个510欧的限流电阻,P1.0为高时,工作电流大概为8毫安左右,足够点亮LED了。

单片机做LED做了共阴极怎么会出现灯有点亮(意思说没按电源开关都亮)
你可以查看一下几点原因:1.超大电容储能,断电后放电引起;2.时钟芯片等的小型待机电池电路设计不当;3.看单片机是否和其他外设相连接,例如串口,且串口正在发送数据;4.人体静电可以瞬间点亮LED。没有按电源,灯亮:说明一定有电流通过,自己慢慢寻找根源吧,如上几点只是猜测,希望可以帮到你,谢谢 补...

为什么单片机的接口0为亮 1为灭
因为单片机一上电,p口的特殊功能寄存器为1.那么io口引脚为高电平,这是复位反应,当你一个灯外接一个电源正极,另一边接IO口引脚,一上电两端没有点位差,就是灭,当给P1复制为00H,那么有了电势差,灯就亮。总之,弄懂了单片机复位各个功能,在看你电路,就知道怎么是亮,怎么是灭了 ...

怎么样用51单片机点亮一个二极管,让它以0.1秒的频率连续闪烁之后停顿1秒...
程序如下仅供参考 闪烁的LED include<reg51.h> define uchar unsigned char define uint unsigned int sbit LED=P1^0;\/\/延时 void DelayMS(uint t){ int x,y;for(x=110;x>0;x--)for(y=z;z>0;z--);} \/\/主程序 void main(){ while(1){ LED=~LED;DelayMS(100);} } ...

请问各位,我要用单片机驱动一个发光二极管,(如图)
楼主这种电路,是在输出高电平的时候点亮二极管,就是给单片机加上了“拉电流”负载。而一般的单片机,输出高电平时,并无输出电流的能力,所以需要外接“上拉电阻”来辅助。发光二极管发光的电压较高,可以按照2V来计算,1K的上拉电阻,可以出现3mA的电流。所以说,这个电路是正确的。但是,输出低电平...

相似回答