鱼友们帮帮忙吧!!!
我要实现LED1和LED2的单亮轮亮与常亮右边为51单片机的带推挽的P0口,左边为电路原理
通过CPU控制为高阻输入模式,会自动实现翻转
那张源代码图各位大神解决。3Q3Q
下面这个和QQ截图都是参考的。。。
#include <reg51.h>
sbit led=P1^0;
void delay(unsigned int i)
{
unsigned int j;
unsigned char k;
for(j=i;j>0;j--)
for(k=125;k>0;k--);
}
void main()
{
unsigned char m;
for(m=20;m>0;m--)
{
led=~led; //没隔一段时间即对输出取反。
delay(3000); //闪烁间隔。
}
while(1); //闪烁十次后,到此不再闪烁。
}
本帖最后由 仰望天上的光 于 2014-10-15 12:33 编辑
代码没问题啊 看不到电路,这个电路根本用不到推挽模式啊,只要普通IO就可以了 不好意思不知道就图片没传上去
仰望天上的光 发表于 2014-10-15 12:31
看不到电路,这个电路根本用不到推挽模式啊,只要普通IO就可以了
抱歉,我以为图片传了上来,图片我重新传上来了。 :cry咋没人呀,,有会的渔友帮忙解决下。。。。。 非常感谢
你这问题也太不说清楚,没人能回答的,还有个这里大多数是玩win编程的,问的地方不对
看你驱动led的电路可以一根io就能驱动,也可以两根驱动,程序里只体现一线,也没定义驱动io,给你代码也没用
而且你得电路可不是那么简单的,最简单的就是一个io一个led,你这个可是和用的led又关了,不同电压点亮不同的led的 liyf 发表于 2014-10-18 07:46
你这问题也太不说清楚,没人能回答的,还有个这里大多数是玩win编程的,问的地方不对
看你驱动led的电路可 ...
哎,这也是我纠结地方了,我同学没发原图片哎。。。 本帖最后由 downloads 于 2014-10-21 10:30 编辑
电路图有点问题建议修改:1. Q1和Q2中心连接点与LED1和LED2的中心连接点连接;
2. R1和LED1相串联,R2和LED2相串联;
即可,祝你成功
说明:cpu芯片P0口能单独驱动发光二极管,不需要另外新增外部驱动电路;除非驱动另外负载;
downloads 发表于 2014-10-21 10:22
电路图有点问题建议修改:1. Q1和Q2中心连接点与LED1和LED2的中心连接点连接;
...
额 我要的是代码.......... 就是一个单片机然后接了2跟线,按一下闪烁100下之后应该是同时2个灯都熄灭的,可还有一个灯一直亮着 本帖最后由 downloads 于 2014-10-23 15:41 编辑
tpfile:///d:/1.gif
led接见下楼,程序如下:(程序已验证通过!)
#include <reg51.h>
sbit led1=P1^0;
sbit led2=P1^1;
void delay(unsigned int i)
{
// 我要实现LED1和LED2的单亮轮亮与常亮
// 右边为51单片机的P1口上;
unsigned int j;
unsigned char k;
for(j=i;j>0;j--)
for(k=125;k>0;k--);
}
void main()
{
unsigned char m;
led1=0; //led1关闭
led2=0; //led2关闭
//led1 单亮
led1=1; //led1打开
delay(30000); //led1单亮时间
led1=0;
//led2 单亮
led2=1; //led2打开
delay(30000); //led2单亮时间
//LED1和LED2轮亮
for(m=20;m>0;m--)
{
led1=~led1; //没隔一段时间即对输出取反。
led2=~led2; //没隔一段时间即对输出取反。
delay(2000); //闪烁间隔。
}
///LED1和LED2常亮
led1=1; //led1打开
led2=1; //led2打开
delay(30000); //led2单亮时间
led1=0;//led1关闭
led2=0;//led2关闭
while(1); //闪烁十次后,到此不再闪烁。
}
本帖最后由 downloads 于 2014-10-23 15:39 编辑
d:\1.gif downloads 发表于 2014-10-23 15:20
哥们抱歉, 的再麻烦你下了,我会在加50鱼币的
是为一个LED点亮俩个LED,可单亮也可全灭全亮
LED俩反并联接法,两个100欧姆电阻串联取单片机5V中点2.5V
通过IO口高低电平控制
但默认接口有上拉输出,所以需在常灭时通过软件设置为输入模式,通过IO内IO图腾三极管驱动,输出高低电平
简单说,就是设置51单片机有三个电平模式
高,低,高阻
因为C51单片机I/O口内部有上拉电阻,高阻抗输出时,作为I/O口输入用,高阻输出时,也是高电平,本身无法达到你的要求,建议用其它方法实现; downloads 发表于 2014-10-24 14:35
因为C51单片机I/O口内部有上拉电阻,高阻抗输出时,作为I/O口输入用,高阻输出时,也是高电平,本身无法达 ...
那要用什么方法才能实现呢?? C不可以?
要看你的目的是什么?看我是否可以帮你参考一下? downloads 发表于 2014-10-28 18:50
要看你的目的是什么?看我是否可以帮你参考一下?
哎 就是一个单片机上我朋友接的2个线,2个小灯泡闪烁,按下开关,一个闪烁到100此后就熄灭了,还有一个在亮着,怎么把他调关掉,就是和上面讲的一样。 根据你的描述,应该按一下开关,二个灯闪烁100下之后应该是同时2个灯都熄灭的,可是还有一个灯一直亮着,是吗?你想修复,一般CPU故障可能性很低的,你对一直亮的灯的驱动找一下,一般该部分出问题,供参考;
页:
[1]
2