STC11F04直接驱动数码管的问题

作者&投稿:错娄 (若有异议请与网页底部的电邮联系)
数码管的驱动方式~

概述数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。静态显示驱动静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。动态显示驱动数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是哪个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。

你直接用245驱动段,然后阴极像你这样接就可以,你不接三极管都行了,加上限流电阻直接接到单片机IO口就好了!~

按这个图,段码驱动和位码驱动都由I/O输出,估计不行。因为一般单片机输出电流很小,很难驱动LED数码管(即使能驱动,电流较小,亮度很低)。
一般单片机输出电流(高电平输出)很小,但灌入电流(低电平输出---如OC输出)可以较大。
如果数码管是共阴极的,段码驱动应该用三极管或达林顿芯片驱动,电流由电源经过三极管导通后提供,不由单片机输出,位码驱动可以直接用I/O口。
如果数码管是共阳极的,段码驱动可以直接用I/O口,位码驱动应该用三极管或达林顿芯片驱动,电流由电源经过三极管导通后提供,不由单片机输出。
单片机都使用低电平输出。
另外,位公共端COM中不需要再串电阻了,因为每段都有限流电阻了。

STC11F04可以通过配置PXM1、PXM0把相应IO口配置为推挽输出时可获得强上拉输出,拉电流高达20ma,所以该电路可以实现,请注意阅读数据手册。这是STC单片机与标准51单片机的不同之一。

0.36寸的数码管 按你这个电路是没有问题的,就是亮度稍暗,因为你是动态扫描,打开STC特有的推挽功能,电流基本可以满足要求。COM1...COM4的电阻可省略。

首先,共阴极接电阻会有问题:当只有一个灯亮时电流是5ma,而当8个灯全亮时每个灯电流只有1ma,这样会有亮度不均匀问题。
所以去掉共阴电阻,因为stc io最大灌电流是20ma,所以当8个灯全亮时,每个灯最大电流2.5ma。所以每个灯的阳极电阻Rmin=5v/2.5ms=2k。


华容县15237263641: stc 11f04e 单片机,读取单脚电平信号. -
成王柔华畅: 数码管最好是安排在定时器中断里面来扫描, 读取引脚电平就可以在主函数中进行, 这样就不会出现在读引脚时延时, 而引起数码管扫描的停顿跟晶振无关, 主要你的任务没有划分好

华容县15237263641: 用单片机能否同时驱动LCD1602和数码管?或者单片机能否不用附加其他驱动电路而直接驱动LCD1602和数码管? -
成王柔华畅: 可以,不过有限制,数码管最好不超过8位. 具体如下: P0、P2口驱动数码管,采用共阳的数码管比较好. P1、P3口连接LCD1602;D0~D7接P1.0~P1.7,P3接控制脚. 数码管用中断处理显示,其它的字符处理在正常的循环中处理.控制LCD时,要处理好时间关系.如果出现中断处理,中断时间不能过长,否则可能会导致LCD显示不正常. 如果你可以理解的话,把LCD处理当作是第9位的数码管处理,在中断中一并处理的话,就比较好了.

华容县15237263641: 单片机51芯片能不能直接驱动LED数码管?如果不能应加个什么,,是六位的数码管 -
成王柔华畅: 驱动数码管不就是给数码管的位选和段选引脚给高低电平吗,51单片机当然可以的,但是那样的话会占用很多io口的,本来51的io口就那么几个,你要都占用了,别的东西就没法做了.所以,数码管驱动你需要加驱动芯片,比如74hc595等,也可以是译码器,反正最后是需要点亮数码管就行,上网查查驱动数码管的芯片和电路,应该不少.

华容县15237263641: 请问单片机接数码管什么情况下需要有驱动什么情况下不需要驱动? -
成王柔华畅: 一般单片机端口通过高电平或者低电平点亮共阴或者共阳极接法的数码管这一过程就是驱动数码管了.也就是说数码管接了单片机就是为了被驱动的...你这个驱动是给数码管供电的意思么?当单片机的驱动能力足够(驱动数码管需要一个电流流出)时,那么可以以高电平驱动数码管,此时不用再给数码管一个供电电压,反之如果你想用低电平驱动数码管时,那么你就要在数码管阳极加个VCC供电上拉.

华容县15237263641: STC11F01单片机IO口的驱动电流有20MA的话 可以直接驱动 共阳二位数码管吗 呵呵 -
成王柔华畅: 静态显示应该可以,动态显示不能保证亮度.如果一个管子连续最大工作电流是8段*3ma(显示8),如果是动态显示,每个管子只能显示1/2的时间,如果想继续保持工作时3ma的亮度,必须以2倍的电流.即6ma工作1/2的时间才能使得亮度看起来相当...

华容县15237263641: STC单片机AD值怎样显示在4位数码管上?(汇编的) -
成王柔华畅: 这个看主要看你的 硬件接法有 直接关心,. 如果是直接驱动, 把采集来的AD值(如果是8位精度,并且参考是5)那个步进是5/256= 0.01953125, 显示4为就是 0.020 ,做一个把每个为分离出来的算法, 建立一个0---9和7段4位数码管对应 的表,查表后直接送的每个LED对应的位的P口上

华容县15237263641: stc11f04需要加上拉电阻吗 -
成王柔华畅: 12系列单片机P0可以不用接上拉电阻,内部已经集成有,普通老款51单片机就要;现在市面上很多基于51内核的芯片,例如大家非常熟悉的STC等型号,自身的P0口都有上拉电阻.当然为了保险起见,工程师在进行运行之前最好还是手动加上5-10K的上拉电阻,这样可以最大限度的保障电流和驱动程序的整体安全性能,防止出现短路等突发性问题.

华容县15237263641: 怎样编写一个六位数码管计数器,要求带清零,暂停键.用STC单片机控制, -
成王柔华畅: P0口不能直接接段码,需要驱动器件,如2803,三极管9013等.而且P0口需要加10k左右的上拉电阻.数码管需要动态显示.推荐你一个直接驱动数码管的芯片1668,省去很多事情.程序上应该很简单.

华容县15237263641: 单片机接数码管必须用驱动吗 -
成王柔华畅: 数码管使用驱动的根本原因是要保证其亮度,所以实验室的实验中可以不用,一般采用共阴数码管就行,但正式产品必须用. 普通数字电路的IO口所能提供的驱动电流很有限,既便采用共阴数码管,分配到每一个显示段也就2~4个毫安而已,而数码管的亮度与流过的工作电流关系很大,标称值范围内电流越大,亮度越高.正常情况下,每一段的工作电流在10~20mA比较理想,所以正式产品必须使用驱动.

华容县15237263641: 单片机驱动数码管 -
成王柔华畅: 哈哈哈哈 刚才回答了你一个关于单片机驱动二极管的.现在看来,你问那个问题的原因是想用单片机驱动数码管.共阳极的数码管需要在阳极上接一个PNP的三极管.每一位用一个.数码管的段全部接到单片机的P0口.限流电阻取470欧至560欧之间.使用的时候,用CLR语句打开响应的三极管,这时,此位选通.然后送出段码.延时一毫秒后,用SETB语句关闭这个三极管.然后转到下一位实施相同动作就好了.图中只是一位的.多位的也很简单.就是多占用几个IO口,多用几个三极管和电阻而已.数码管的限流为470-560 三极管的限流为4.7K就很好

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网