细说多位数码管的驱动方法

  • 格式:doc
  • 大小:245.50 KB
  • 文档页数:4

下载文档原格式

  / 4
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

细说多位数码管的驱动方法

我们在制作项目时,会遇到多位数码管的显示问题.如何尽量减少硬件的使用数量和加快全部显示一轮的时间,是需要精心规划与安排的. 例如:

做万年历,就有年月日,时分,星期等内容需要显示,数码管数量多达 13 位以上.如果再带上秒,温度,农历什么的,位数就更多了.

例如:

做多功能电力仪表,显示位数也往往多达十几位以上.

尽管有专门用于这种多位显示的专门芯片可供选择,但是,往往一只这种芯片成本可能比使用的单片机本身还要高!例如市场上的 CH451 等

,高达 6~8 元呢!

于是,可以考虑串行到并行的一些芯片,例如 HC164,HC595 等等,驱动也仅仅就二线制,但是,这么一来,外挂芯片也不少.

还有,可以使用一些 4 线到 7 线的驱动芯片,例如:CD4511,74LS247,CD4543 等等,它们除了节省一些源驱动引脚之外,使用数量恐怕也让人头痛!

类似于 HC373,HC374,HC573,HC574 的芯片,可以减少很多源驱动引脚,但是,芯片使用数量仍然太多!

还有一个附带问题,许多仪器仪表,往往是主印刷版与前面的显示/按键板是分离的,有些商品仪表,主板到前面板的引线就多达几十根,无论

如何,都会让人感觉又乱有多又不可靠,生产调试等都增加了困难.

说了那么多,我们就是希望:使用尽量少的硬件芯片,尽量少的过渡引线,尽量短的显示周期时间,尽量低的元器件费用!----当然,需要保证可靠性不能降低!

我们举例说明:

一个 2 * 4 位的仪器显示电路,有 8 位数码管,完全依靠单片机本身的端口来驱动,就有 2 种方案考虑:

图 1 的方法需要使用 22 个单片机端口.

图 2 方法需要使用 16 个单片机端口.

图 2 全部数码管显示一次的时间比图 1 长一半时间.

从仪器 2 个板子分离的情况来看,图 1 从主板到前面显示板的引线就相当多了!图 2 虽然少了一些,但是,加上供电,按键等,数量也不算少,很可能还会有发光管指示灯什么的,需要考虑的麻烦事就更多了!

从单片机端口的使用数量来看,它也大大影响到单片机的封装选择,引脚不是越大越好的,对焊接,成本,调试等都会有影响.

如果芯片带有 RS232 硬件功能,当然可以考虑使用串行驱动,虽然不过分影响单片机分时工作的速率,但是,上面提到过,串行芯片的数量也

是相当可观的.

数码管这种显示还要保证每秒不能少于 50 次以上,否则会有显示闪烁的感觉!

针对上面提及的问题,这里推荐一种比较好的方法:就是增加一只廉价的单片机,专门负责显示,主功能单片机与显示用途单片机仅仅 2 根引线就可以正常传送信号,这么一来,带来的后果是利大于弊!

我们这么做,还会最大限度地节省 2 个分离印刷板的引线,节省印刷板的布线难度,减少主单片机的引脚数量,加快系统的运行速率.对显示

用途的单片机的内部资源没有什么要求,完全可以使用最普通功能的单片机来担任显示任务!

这样就需要解决 2 个单片机之间的通信问题,这完全可以借鉴现成的一些 2 线制串行通信方式方法.也可以根据自己的情况自定义自己的

通信方法.

通常,主单片机只要保证每秒时间给显示单片机送入 4 次以上的数据,那么,对数码管显示的实时性来说就已经足够了!----当然,你就是增

加一倍二倍的传送次数,对主单片机来说,也是可以非常轻易做到了!因为,它犯不上去操心每秒显示 50 次以上的工作量了!

而对于显示单片机来说,则要求保证每秒时间内,完成全部数码管的 50 次以上的分时扫描显示.....

而对于显示单片机来说,则要求保证每秒时间内,完成全部数码管的 50 次以上的分时扫描显示.....

下面通过一个具体例子来说明.

图3 电路使用 SN8P2624 芯片,它与 EM78P447,PIC16C57 等芯片引脚排列兼容!而且价格低廉.

图3 电路除了预留 2 个端口作为数据通信之外,其余全部端口都用于数码管的显示.可以驱动 2*6 位数码管.笔段使用并行方式驱动,速度是最快的!

图4 电路除了预留 2 个端口作为数据通信之外,还预留一个端口用于检测 5V 掉电,其余全部端口都用于数码管的显示.可以驱动 2*5 位数码管.笔段使用并行方式驱动,速度是最快的!

如果仅仅驱动 2*4 位数码管,那么,其中一次驱动就可以成为 16 个状态指示灯的发光管驱动.非常适合大部分仪器仪表电路使用.

预留的通信接口都具有外部中断功能,可以很方便地使用中断方式来响应主单片机的数据传送.

由于这种单片机为 OTP 类型,一旦烧写后就不能更改了,因此,需要很好的考虑需要显示的各种各样的内容.同时,还要考虑主单片机传送数据时,到底是传送原始数据还是传送笔段数据.

如果传送原始数据,那么,可以减少数据的传送量.原始数据由显示芯片自行分解到笔段数据.但是有可能出现显示数据没有考虑到的显示内容而无法显示.

如果是传送笔段数据,则由主单片机预先进行 HEX 到 BIN 的转换,然后再进行传送.这种方案会增加数据的传送量.但是不用担心显示数据没有考虑到的显示内容无法显示.

因此,采用哪一种数据进行传送,需要精心考虑和预先安排好!

当然,一个 7 段数码管,能够显示的字符样式毕竟有限,只要把所有可能的字符都考虑周到,就无需担心会有不能显示的内容了.

因此,推荐传送数据直接使用原始数据,由显示单片机自行进行 HEX 到 BIN 的转换,因为显示用途的单片机实际没有什么更多的事情可

做.

如此一来,对于那些具有前后板结构的仪器仪表来说,2 个分离的板子的连接线就一律减少到仅仅剩下 2 条线路了.这个改进对许多厂家来说是具有实际意义的!

那么,增加一只单片机是否会对硬件成本有较大的影响呢? 没有的.它仅仅是把一个多引脚的单片机变成 2 个少引脚的单片机而已.而且,担任显示用途的单片机由于无需特殊功能,可以选择比主单片机更加廉价的型号.虽然不能说是完完全全划等号.可是,对于批量使用的企业来说,它又变成了一个通用部件,完完全全可以仅仅更换一个主板就获得另外一款品种.这是不是也很划算呢?

这是实际项目使用的面板,驱动 4*3位数码管和 5 个工作状态发光管指示灯.