关于单片机流水灯 为什么我的灯都不亮啊??与proteus联调时还说代码没有加进去

#include<reg51.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int void DelayMS(uint x) { uchar i; while(x--) { for(i=0;i<120;i++); } } void main() { P0=0xfe; while(1) {P0=_crol_(P0,1); DelayMS(150);
} }
这是改过的 但问题跟刚刚一样 还是不亮

P0=_crol_(P0,1);
这个函数=_crol_在哪里 很明显你的HEX文件没有生成,而且你的二极管负端全部都接的高电平,按照你这种接法 必须让你二极管的正端的电压高于VCC,那是不可能的。所以你重新看哈hex文件是否生成,再把二极管换过来追问

可是确实有生成的hex文件啊 程序应该怎么改呢??

追答

你是想做成流水灯 led电亮是从左至右依次点亮对不对

追问

恩恩 对 帮帮忙

追答

给你说一个思路吧,第一次点亮第一led灯,然后延时,在点亮第二个led灯,在延时,再点亮第3个led灯 就这样依次循环

追问

可是具体我应该怎么改呢 能不能帮我改一下 谢谢了

追答

你先定义一个数组 把点亮led的值放进去,然后再来一个for循环,每循环一次就把数组里面的值送一个进去,,再把电阻改小一点 10k,太大了,

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-06-05
有没有搞错呀,你的LED全部接反了,LED是单向导电的,这是二极管的最重要的特性,学单片机的我们软件要可以,硬件知识也得过得去呀 ,

二极管正确后关键问题应该是:电阻阻值太大,改成470欧姆
第2个回答  2013-06-05
如果与proteus联调的时候,说代码没有加进去的原因是你keil软件没有生成hex文件。
确实如楼上所说,你led确实接反了。
第3个回答  2013-06-05
你的led全部都接反了追问

我把led改过来了  还是不亮

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

用proteus做的流水灯,很简单的,怎么不亮呀?
3、应该将电阻接地端改为接电源,LED负极接P0口,这样,输出低电平时,LED正常发光。检查一下单片机的晶振和复位电路,看看单片机是否工作了。用Proteus仿真时,单片机的RST复位引脚是不起作用的,即在RST引脚加高电平,单片机也不会复位的,要实现相当于复位的功能,可以在某个I\/O引脚加一个按钮,当这个...

大家好,我现在用proteus作at89c51的“从左到右的流水灯实验”,但不知...
1、P0口如果不加上拉电阻的话是高阻态,这是没办法识别高低电平的,也就是无论你对P0赋什么值,它都不会出现0或1的结果。解决办法:加一个10K的上拉排阻到P0口。2、图中你的P0口和LED并没有真正连接上吧,你用了总线的接法,但是没有用网络连接的方式将LED连接到对应的IO。解决方法:点击Prot...

单片机proteus 的8位流水灯,LED灯不亮,只是旁边的小点亮,怎么回事啊...
1.二极管支路中的电阻,阻值太大了,应改成 470欧姆~1K左右。2.二极管,你画的方向,是向右的,那么,左边就不应该接地了,应该接上+5V。

学习单片机是用成品的开发板好还是用面包板自己安装好?
这时你需要额外学习电路设计方面的知识,比如新手很容易忘记使用下拉电阻之类的事……然后,当你制作一些小设备去使用时,面包板也是无法满足需要的,你可能需要打孔板,就是那种一小块电路板,上面密密麻麻的都是铜“中文句号”的那种电路板,它让你能制作一个“凑合”的电路,你在一面旋转电子元件,另...

...Led的流水灯的单片机程序 希望是能够仿真运行的啊!急求
你的LED用错模型了,要用LED-RED 那几个后面带颜色的。include<reg51.h> include<intrins.h> define uint unsigned int define uchar unsigned char uchar i,j;void delay(uint ms){ uchar k;while(ms--)for(k=0;k<123;k++);} void main(){ while(1){ i=0xfe;for(j=0;j<7;j++...

相似回答