‘壹’ PIC单片机驱动LED灯
ZLG7290是I2C通信,你可以一个I2C接口接多个ZLG7290。或者用我下面说的方案(很巧的一种方案,这是MICROCHIP公司推崇的)
你用的是PIC24HJ12GP202,有28引脚的那个单片机么?这个有21个IO引脚,其中有10个可以复用为AD输入引脚,还有两个引脚可配置为I2C接口。
根据你的描述,首先你需要有四个IO引脚做输入,不管是模拟输入还是数字输入,用23、24、25、26这四个引脚做输入应该可以把。然后2、3引脚可以用来做在线编程的数字输入口。
剩下的15个IO引脚,有两个17、18引脚可以做跟ZLG7290的I2C接口,I2C总线允许挂接多个I2C芯片。你可以用N个ZLG7290接LED和数码管(这是方案1)。
或者(这是我提议的方案2)用一个ZLG7290管理数码管。而剩下的13个引脚中用5个IO引脚就能控制了20个LED灯。具体看下面链接中这个文档的第三页的窍门2。
这文档是PIC的生产商MICROCHIP公司推出的。适用于PIC这种需要控制输入输出的单片机。它的原理是,PIC单片机的某个IO引脚配置为输入的时候,这个IO引脚其实等于高阻输入状态,等于是和VDD和VSS都是断开的;
而当IO引脚配置为输出状态时,输出高电平为1的时候,它等于是短接到了VDD。而输出低电平为0时,它等于是短接到了VSS。
那么,可以看到图的接法,其中三个IO引脚接了六个灯,这六个灯在同一时间点里只有一个灯会亮。比如的当你让GP0作为输入,那么它对于外面的灯来说,就等于是没有电气输出而断开的,而GP1、GP2都作为输出,GP1=1;GP2=0;这样GP1在等效电路上等于是短接Vdd,GP2等于是短接了VSS,这样电流从4号灯正端那里流入,负端留回GP2,3号灯因为是反向戒指,所以不会亮。其他如1号、2号灯都因GP0在等效电路上是断开的,所以也不会亮。
这样,根据程序的不同,可以随意让这六个灯点亮。要全亮也可以,在很短时间内轮流让这几个灯循环点亮,那在人眼看来就等于全亮了。
而根据公式LED灯的数量=IO口数量*(IO口数量-1)那么你的20个LED等只需要5个IO口就能搞定,只是编程序的时候复杂点而已。
‘贰’ PIC16F630单片机驱动led指示灯电路
没错啊,pic单片机可以直接输出20ma的橘如肢电流,led串接圆世100到400的电阻就可以使电橡埋流钳到10ma左右。
‘叁’ 单片机P1.0控制点亮一个发光二极管的电路怎么接
电路如图接即可(去掉右边的按键和左边的电容):
一般单片机对LED灯的接法都是如此,因为单片机IO口的电流输出能力很弱,一般不使用单片机输出高电平驱动LED灯,一般使用灌电流的方法驱动,即,单片机输出低电平,吸收电流的方法。
‘肆’ 单片机的IO驱动LED灯电路,需要用到三极管,求原理图,并说明
搞不明白单片机I/O口驱动LED为什么要用到那么复杂的电路,是单纯的为了复杂而复杂吗?很晕!如果一个I/O口驱动一个LED,只要I/O口低电平有效LED串一个470Ω的电阻即可,如果驱动多个LED只要按下图即可:
如果Vcc=5v;则R0=1KΩ-5.1KΩ;Rn=470Ω。如果晶体管用S8550,那么同时点亮5个LED是没问题的。
‘伍’ 单片机驱动LED
如果是NPN三极管的话,把LED的正极接到三极管的发射极,如果是PNP的话,把LED的负极接到三极管的发射极这种导通方式电流最大,注意电流方向,PNP的电流是从发射极流动到基极和集电极,NPN的是集电极和基极的电流通过发射极流出。
‘陆’ 单片机 8×8点阵LED 驱动电路
我看了你写的,感到秋收的关键问题是不理解8×8点阵LED驱动电路是如何工作的。
这个8×8点阵LED驱动电路是“行”和“列”的扫描方式工作的,这64个发光管,在每个瞬间只有一个亮。我画了一个简图,图中,红色的仅在1高,A低时工作,同样绿色的仅在2高,D低时工作,黄色的仅在6高,E低时工作,不是同时都亮。
只要64个发光管在1/25秒内扫描一次(或是说整个64只管子,每秒扫描35次以上)视觉上是看不出是扫描的。
行和列的扫描频率是1比8,这样就能有序的工作了。
你的R1,R2电阻也好确定了,你只要按一个发光管的工作来考虑。这里也用不上什么3态,你将OE接0电平就行了。
好好想想吧,搞不清可以HI我,我一般晚上都在。
‘柒’ 怎么利用单片机控制八个led灯
1:首先设定一个变量i,可以是从0到3循环的变源樱化,
2:再检测一个经过消抖处理的按键,按一下,即i+1
3:当i值为各个值时,执行相应的变换花样。
流水灯参考程序
#include
#include
#define uchar unsigned char
uchar j,tmp;
void deay(unsigned int ms)
{
uchar t;
while(ms--)
for(t=0;t<12;t++);
}
void main()
{
P1=0xff;
delay(50);
temp=0xfe; //(led接在P2.3~P2.6)
for(j=0;j<4;j++)
{
P1=temp;
delay(50);
temp=_crol_(tmp,1);
}
P1=0xff;
while(1);
}
‘捌’ 我用单片机控制LED灯的亮度,应该怎样设计控制电路为什么要用到三极管
用单片机输出pwm,改变占空比就可以控制led的亮度,单片机的输出电流有限,所以要用三极管作为驱动,三极管在这里作为一个电子开关,三极管型号太多,例如:8050是NPN型的,基极高电平导通,8550是PNP型,要低电平导通。
‘玖’ 单片机控制LED灯。
嘿嘿
这两种方法
都是可以的
都可以驱动LED指示灯。
1
关于你的LED怎么都不亮:
原因可能是连接的方法不太对,你可以参考下述连接方式,检查一下你的电路。
方法1:
用8050的三极管做开关电路,三极管的基极接P2.0,然后用集电极通过LED接5v电源,发射极通过220欧姆电阻接地。执行SETB
P2.0
指令可以点亮led。
方法2:
是用P1.0直接驱动led,应该让led另一端通过220欧姆电阻接5v电源,执行CLR
P1.0
指令
会点亮led。
呵呵
赶快再试试吧
满意后要选满意回答啊
‘拾’ 单片机驱动一个led的工作原理是什么
对于小功率LED,单片机IO驱动能力可以直接驱动。当LED的阳极接电源正时,单片机IO口如果为低电平将形成电流通路,所以可以使LED发光。