搜索
bottom↓
回复: 18

AT89S52驱动LED灯闪烁失败,求解????

[复制链接]

出0入0汤圆

发表于 2012-4-6 22:13:17 | 显示全部楼层 |阅读模式
,这是我是用的LED驱动电路。
以下是我使用的LED灯1S闪烁的程序:
#include<reg52.h>  
#define uchar unsigned char
#define uint unsigned int
sbit led1=P1^0;
uchar num;
void main()
{
        TMOD=0x01;       
        TH0=(65536-45872)/256;
        TL0=(65536-45872)%256;
        EA=1;       
        ET0=1;       
        TR0=1;       
        while(1);
}
void T0_time() interrupt 1
{
        TH0=(65536-45872)/256;       
        TL0=(65536-45872)%256;
        num++;          
        if(num==20)       
        {
                num=0;         
                led1=~led1;       
        }
}
但是真正工作的时候,LED灯只是亮了,但没有闪烁,求解????????????????

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2012-4-6 22:27:22 | 显示全部楼层
将 if(num==20) 改成 if(num==100)或者更大试试...

出0入0汤圆

发表于 2012-4-6 22:28:29 | 显示全部楼层
本帖最后由 arndei 于 2012-4-6 22:30 编辑

楼主图上是P0口,程序里是P1口;P0口是开漏输出,要加上拉电阻的

出0入0汤圆

发表于 2012-4-6 22:29:03 | 显示全部楼层
三极管用的不好

出0入0汤圆

发表于 2012-4-6 22:33:57 | 显示全部楼层
看你接的是哪个接口了,P0口要接上拉电阻的。

出0入0汤圆

发表于 2012-4-7 08:18:44 来自手机 | 显示全部楼层
电路的问题。这是射随,虽说射随输入阻抗高也没高到这个份上。
1,P0是否上拉,1K左右强上拉或直接用推挽端口。
2,10K电阻去掉,射随不需要Rb

出0入0汤圆

发表于 2012-4-7 08:43:21 | 显示全部楼层
void T0_time() interrupt 1
{
        TH0=(65536-45872)/256;        
        TL0=(65536-45872)%256;
        num++;         
        if(num==1)        
        {      
                led1=0;         
        }
     if(num==20)
     {
      led1=1;
    }
  if(num==40)
  {
    num=0;   
  }
}

出0入0汤圆

发表于 2012-4-7 08:49:47 | 显示全部楼层
arndei 正解!

出0入0汤圆

发表于 2012-4-7 12:07:55 | 显示全部楼层
turf456 发表于 2012-4-6 22:29
三极管用的不好

同意。。。

出0入0汤圆

发表于 2012-4-7 12:30:47 | 显示全部楼层
三极管不是这样用吧?这样是射极跟随器.

出0入98汤圆

发表于 2012-4-7 12:34:58 | 显示全部楼层
NPN也好 PNP也好 把负载串接在集电极上

出0入0汤圆

发表于 2012-4-7 13:40:07 | 显示全部楼层
rclong 发表于 2012-4-7 12:34
NPN也好 PNP也好 把负载串接在集电极上

为什么?求解

出0入98汤圆

发表于 2012-4-7 15:37:13 | 显示全部楼层
wszyjsw2 发表于 2012-4-7 13:40
为什么?求解

单电源系统(0~5V,0~3.3V)里
如果三极管基集接IO口
要让三极管做电流放大作用 或者饱和导通作用
这样接才能保证

出0入0汤圆

发表于 2012-4-7 15:42:21 | 显示全部楼层
wszyjsw2 发表于 2012-4-7 13:40
为什么?求解

这个三极管的基本用法,共射接法才能放大饱和,你用射随接法输出电压为基极电压-0.7.                                                                  

出0入0汤圆

发表于 2012-4-7 15:43:23 | 显示全部楼层
rclong 发表于 2012-4-7 15:37
单电源系统(0~5V,0~3.3V)里
如果三极管基集接IO口
要让三极管做电流放大作用 或者饱和导通作用

就是把D?和R?串在VCC与C,把三极管看成一个受控的开关。

出0入0汤圆

发表于 2012-4-7 15:43:31 | 显示全部楼层
先看硬件再看软件

出0入98汤圆

发表于 2012-4-7 15:52:39 | 显示全部楼层
surelost2013 发表于 2012-4-7 15:43
就是把D?和R?串在VCC与C,把三极管看成一个受控的开关。

NPN管就是串在VCC与C之间
驱动继电器 小型直流电机 都可以用这个办法

我个人偏向于使用PNP管 负载串在C与GND间
这样做能是IO为低电平时导通 上电复位阶段不容易误动作 而且低电平驱动能力较强

出0入0汤圆

发表于 2012-4-8 20:22:47 来自手机 | 显示全部楼层
这个图其实是可以工作的。至于不闪要检查程序和实际接的io口是不是弄错了。

出0入0汤圆

发表于 2012-4-8 21:08:12 | 显示全部楼层
比较楼上的接法跟楼主位的接法,各有好处.
楼主的接法是三极管关闭延迟比较小,基极电流也小,但输出电压为基极电压减0.7V,这个要考虑上去,而P0口主要是没有接上接电阻.
楼上的三极管处于开关状态,所以延迟相对大了一点,一般场合都没什么问题的.
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-20 03:28

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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