欢迎来到天天文库
浏览记录
ID:33564877
大小:536.50 KB
页数:8页
时间:2019-02-27
《基于某单片机地数码管驱动》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实用标准基于单片机的数码管驱动【摘要】介绍了两种基于单片机的数码管驱动方式,并且介绍了一款比较实用的数码管驱动芯片,重点在于数码管驱动电路的原理及芯片的应用。 【关键词】数码管驱;动态驱动;驱动芯片 【中图分类号】TP211 【文献标识码】A 【文章编号】1671-5969(2007)05-128-02 数码管显示是一个系统工程中必不可少的人机交互环节,因此关于数码管的驱动也就是系统工程中的一个重要的环节。主要的驱动方式有动态驱动和静态驱动两种。下文中将对这两种方式以及应用做介绍。 一、数码管驱动原理 8段数码管如图1所示由8个LED(Lite Emit Diod
2、e)组成。分为共阴和共阳两种接法。左图为共阴接法,将8个LED的阴极共同接地,当单片机的I/O口给出高电平的时候,LED点亮。右图为共阳接法,将8个LED的阳极共同接高,当单片机的I/O口给出低电平的时候,LED点亮。当然,数码管不只有8段,还有3段、7段以及16段。本文主要就8段数码管驱动进行说明。 精彩文档实用标准 数码管的驱动分为动态驱动和静态驱动两种。所谓静态驱动,就是将数码管每个LED灯对应一个I/O口,如图1所示。通过单片机的P口来控制LED灯的亮和灭。I/O口之间互相独立。这样的优点是驱动很简单,只需要用I/O口直接控制LED(LED功率较大时需要加三极管等驱动电路)。一般
3、来说,静态驱动比动态驱动占用的I/O口多。 与静态显示方法不同,动态显示驱动的设计方法是将数码管的驱动端一对一连接在一起接单片机的数据口,而将各个数码管的公共端单独送至单片机的I/O口进行片选。通过片选信号依次点亮各个数码管,由于人眼有视觉暂留的特性,因此如果第一个数码管灭和第二个数码管亮之间的时间足够短,人眼是感觉不出数码管的变化的。 静态驱动方式简单不容易出错,如果电路设计合适,也能够用较少的线完成多个数码管的驱动。动态驱动方式省单片机的资源,如今已经有很多这样成熟的基于动态扫描的芯片。 二、基于74LS273的数码管驱动 如果说动态扫描比较省资源但是程序复杂,静态扫描简
4、单却费资源,那么有没有什么方式能够结合两者的优点呢?事实上74LS273锁存器可以实现。 如图2所示,4个数码管分别与4片74LS273锁存器相连,锁存器的另一端接单片机的一个P口,作为数据总线。单片机的I/O口作为片选信号,即图中的P2.4、P2.5、P2.6和P2.7。片选信号与单片机的WR经过一个或门接到锁存器的时钟端。这样,如果希望最左边的数码管亮,只需要先将数据送至单片机的数据总线,也就是图中的P0口,同时给出片选信号,最后在WR上产生一个脉冲即可,时序图如图3所示。在片选信号以及数据准备完成的时候,通过WR给出一个负脉冲即可点亮数码管。由于74LS273的锁存效果,在数据
5、总线上数据消失后数码管仍能保持不灭。这样就避免了往数码管中循环送数,很大程度上简化了程序,同时又节约了I/O口。 精彩文档实用标准 三、基于CH452的数码管驱动 CH452是数码管显示驱动和键盘扫描控制芯片。CH452内置时钟振荡电路,可以动态驱动8位数码管或者64位LED。CH452的最大优势在于节省单片机的资源,从前面的介绍可以看出,如果不用专用芯片,直接用单片机驱动数码管至少需要8个I/O口作为数据总线,另外根据数码管的数量分配片选信号,因此至少需要1个到2个单片机的P口,而CH452最多只需要4个I/O口。 CH452有4线制和2线制两种,2线制适用于单片机资源相当紧
6、缺的情况,在单片机资源还比较够用的情况下推荐使用4线制。 CH452对数码管和发光管采用动态扫描驱动,顺序为DIG0至DIG7,如图4所示,当其中一个引脚吸入电流时,其它引脚则不吸入电流。CH452内部具有电流驱动级,可以直接驱动0.5英寸至1英寸的共阴数码管,段驱动引脚SEG6~SEG0分别对应数码管的段G~段A,段驱动引脚SEG7对应数码管的小数点,字驱动引脚DIG7~DIG0分别连接8个数码管的阴极。如图4所示,CH452与单片机的接口只有4个,因此数据是以串行的方式进行传输的,数据传输时序图如图5所示。首先将数据位送入DIN,然后通过程序在DCLK上作出一个时序脉冲,在传完12位数
7、据后,通过程序在LOAD上做出一个时序脉冲即可完成传送过程。对数码管的驱动是通过CH452的内部操作命令完成的,操作命令字可以参考CH452的手册。对于CH452的算法如下。 #defineDIG00x0800//数码管位0显示 #defineDIG10x0900//数码管位1显示 #defineDIG20x0a00//数码管位2显示 #defineDIG30x0b00//数码管位3显示 //本程序
此文档下载收益归作者所有