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

2020-02-04 09:16发布

单片机驱动发光二级管.jpg (72.61 KB, 下载次数: 0) 下载附件 LED驱动电路 2012-4-6 22:03 上传 ,这是我是用的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灯只是亮了,但没有闪烁,求解????????????????
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
.titrwh
1楼-- · 2020-02-05 21:14
wszyjsw2 发表于 2012-4-7 13:40
为什么?求解

这个三极管的基本用法,共射接法才能放大饱和,你用射随接法输出电压为基极电压-0.7.                                                                  
surelost2013
2楼-- · 2020-02-06 03:05
rclong 发表于 2012-4-7 15:37
单电源系统(0~5V,0~3.3V)里
如果三极管基集接IO口
要让三极管做电流放大作用 或者饱和导通作用

就是把D?和R?串在VCC与C,把三极管看成一个受控的开关。
w843387990
3楼-- · 2020-02-06 08:39
先看硬件再看软件
rclong
4楼-- · 2020-02-06 10:53
surelost2013 发表于 2012-4-7 15:43
就是把D?和R?串在VCC与C,把三极管看成一个受控的开关。

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

我个人偏向于使用PNP管 负载串在C与GND间
这样做能是IO为低电平时导通 上电复位阶段不容易误动作 而且低电平驱动能力较强
zbn2010
5楼-- · 2020-02-06 11:14
 精彩回答 2  元偷偷看……
linjpxt
6楼-- · 2020-02-06 14:29
比较楼上的接法跟楼主位的接法,各有好处.
楼主的接法是三极管关闭延迟比较小,基极电流也小,但输出电压为基极电压减0.7V,这个要考虑上去,而P0口主要是没有接上接电阻.
楼上的三极管处于开关状态,所以延迟相对大了一点,一般场合都没什么问题的.

一周热门 更多>