鱼C论坛

 找回密码
 立即注册
查看: 3237|回复: 24

鱼友们帮帮忙吧!!!

[复制链接]
发表于 2014-10-15 08:55:24 | 显示全部楼层 |阅读模式
50鱼币
我要实现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); //闪烁十次后,到此不再闪烁。
}


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-10-15 12:30:32 | 显示全部楼层
本帖最后由 仰望天上的光 于 2014-10-15 12:33 编辑

代码没问题啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-10-15 12:31:30 | 显示全部楼层
看不到电路,这个电路根本用不到推挽模式啊,只要普通IO就可以了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-10-15 13:09:06 | 显示全部楼层
不好意思不知道就图片没传上去
QQ图片20141015084636.jpg
QQ图片20141015084645.png
QQ图片20141015084729.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-10-15 13:09:57 | 显示全部楼层
仰望天上的光 发表于 2014-10-15 12:31
看不到电路,这个电路根本用不到推挽模式啊,只要普通IO就可以了

抱歉,我以为图片传了上来,图片我重新传上来了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-10-16 08:30:20 | 显示全部楼层
:cry咋没人呀,,有会的渔友帮忙解决下。。。。。 非常感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-10-18 07:46:07 | 显示全部楼层
你这问题也太不说清楚,没人能回答的,还有个这里大多数是玩win编程的,问的地方不对
看你驱动led的电路可以一根io就能驱动,也可以两根驱动,程序里只体现一线,也没定义驱动io,给你代码也没用
而且你得电路可不是那么简单的,最简单的就是一个io一个led,你这个可是和用的led又关了,不同电压点亮不同的led的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-10-18 11:50:48 | 显示全部楼层
liyf 发表于 2014-10-18 07:46
你这问题也太不说清楚,没人能回答的,还有个这里大多数是玩win编程的,问的地方不对
看你驱动led的电路可 ...

哎,这也是我纠结地方了,我同学没发原图片哎。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-10-21 10:22:49 | 显示全部楼层
本帖最后由 downloads 于 2014-10-21 10:30 编辑

电路图有点问题建议修改:1.    Q1和Q2中心连接点与LED1和LED2的中心连接点连接;
                                          2.    R1和LED1相串联,R2和LED2相串联;
即可,祝你成功
说明:cpu芯片P0口能单独驱动发光二极管,不需要另外新增外部驱动电路;除非驱动另外负载;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-10-23 08:55:56 | 显示全部楼层
downloads 发表于 2014-10-21 10:22
电路图有点问题建议修改:1.    Q1和Q2中心连接点与LED1和LED2的中心连接点连接;
                       ...

额 我要的是代码..........
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-10-23 08:57:22 | 显示全部楼层
就是一个单片机然后接了2跟线,按一下闪烁100下之后应该是同时2个灯都熄灭的,可还有一个灯一直亮着
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-10-23 15:04:01 | 显示全部楼层
本帖最后由 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); //闪烁十次后,到此不再闪烁。
}


评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
破灬王 + 5 + 5 + 3 热爱鱼C^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-10-23 15:20:20 | 显示全部楼层
本帖最后由 downloads 于 2014-10-23 15:39 编辑

d:\1.gif

led1与led2连接图

led1与led2连接图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-10-24 13:16:25 | 显示全部楼层

哥们抱歉, 的再麻烦你下了,我会在加50鱼币的
是为一个LED点亮俩个LED,可单亮也可全灭全亮
LED俩反并联接法,两个100欧姆电阻串联取单片机5V中点2.5V
通过IO口高低电平控制
但默认接口有上拉输出,所以需在常灭时通过软件设置为输入模式,通过IO内IO图腾三极管驱动,输出高低电平
简单说,就是设置51单片机有三个电平模式
高,低,高阻
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-10-24 14:35:18 | 显示全部楼层
因为C51单片机I/O口内部有上拉电阻,高阻抗输出时,作为I/O口输入用,高阻输出时,也是高电平,本身无法达到你的要求,建议用其它方法实现;

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
破灬王 + 5 + 5 + 3 热爱鱼C^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-10-25 14:17:58 | 显示全部楼层
downloads 发表于 2014-10-24 14:35
因为C51单片机I/O口内部有上拉电阻,高阻抗输出时,作为I/O口输入用,高阻输出时,也是高电平,本身无法达 ...

那要用什么方法才能实现呢?? C不可以?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-10-28 18:50:41 | 显示全部楼层
要看你的目的是什么?看我是否可以帮你参考一下?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-10-28 21:41:31 | 显示全部楼层
downloads 发表于 2014-10-28 18:50
要看你的目的是什么?看我是否可以帮你参考一下?

哎 就是一个单片机上我朋友接的2个线,2个小灯泡闪烁,按下开关,一个闪烁到100此后就熄灭了,还有一个在亮着,怎么把他调关掉,就是和上面讲的一样。         
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-10-31 13:46:56 | 显示全部楼层
根据你的描述,应该按一下开关,二个灯闪烁100下之后应该是同时2个灯都熄灭的,可是还有一个灯一直亮着,是吗?你想修复,一般CPU故障可能性很低的,你对一直亮的灯的驱动找一下,一般该部分出问题,供参考;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

头像被屏蔽
发表于 2014-11-1 02:47:12 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-18 13:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表