想实现:用P0口驱动一排“红外发光二极管”(需要一个IO口驱动30个,P0.0~P0.4总共驱动150个)

P0口用定时器每0.4毫秒发送一个下降沿,外部中断1的SM0038红外接收头接收。 P0口发送的信号,其载波为38KHZ的占空比是1/4的方波。 电路中P0口的灌电流会很大,那三级管要如何选择,比如放大倍数的选择,如特征频率能否达到38KHZ的要求?

这样子是3路。一个IO口要做到30路。。。 这里P0.0是不是还要加一个1K的电阻?
每一路红外发光二极管电流8mA,,算10mA的话,30路就是300mA,在PNP的集电极。三极管放大倍数算30倍的话,PNP的基极就是10mA。

三极管这样子接,如果是用的普通的AT89C5x,或者Intel的标准51片子的话,这个Q1应该是不能导通的.

在P0口和电源之间,应该接一个上拉电阻,因为P0口是不自带上拉的,它无法主动输出高电平,更无法主动向外输出电流,而是需要通过外接的上拉电阻来给外围电路(例如这个Q1的B极)提供驱动电流.

此外,如果是有30个红外LED的话,三极管的容量应该要满足要求,主要是电流容量.

如果换用功率较大的三极管,那么单片机IO通过外上拉来驱动的话,可能会有一些问题,这个时候就可以将驱动的三极管改成两个,一个PNP的作为主驱动,而单片机通过驱动另外一个NPN的来驱动那个主PNP,这样会比较完善和可靠,也能较好地保护单片机.

 

你补充的图接法不对的.

上面这两个都是正确的接法,左边的是用NPN三极管的接法,右边的是用于较大功率的PNP管的接法.

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-05-18
你应该把你所用红外管的工作电压,工作电流,以及你外部驱动电路打算要配接的电源电压给出来,否则,别人怎么给你确定具体电路?
第2个回答  2013-05-18
你这三极管应该是在 开关状态 按照开关频率和 电流选三极管 P0口要加上拉电阻,三极管基极要加电阻的

用五一单片机c语言编程,p1口控制八个发光二极管,实现每隔一秒,两两点亮...
具体步骤如下:1. 全部LED初始状态:P0 = 0x00 2. 点亮P0.0和P0.1:P0 = 0xc0,延时1000毫秒 3. 点亮P0.2和P0.3:P0 = 0x30,延时1000毫秒 4. 点亮P0.4和P0.5:P0 = 0x0c,延时1000毫秒 5. 点亮P0.6和P0.7:P0 = 0x03,延时1000毫秒 文章还提到了另一种方法,使用定时...

高分求课程设计:利用D\/A芯片实现电机转速控制
电机变速一般都是直流电机,所以电压是改变电机速度的办法,只能一步一步的实验才行,仅仅靠理论是不行的

相似回答
大家正在搜