怎样用单片机驱动LED数码管显示
发布时间:2007/9/10 0:00:00 访问次数:2533
用单片机驱动LED数码管有很多方法,按显示方式分,有静态显示和
动态(扫描)显示,按译码方式可分硬件译码和软件译码之分。
静态显示就是显示驱动电路具有输出锁存功能,单片机将所要显示的
数据送出后就不再管,直到下一次显示数据需要更新时再传送一次新
数据,显示数据稳定,占用很少的CPU时间。动态显示需要CPU时刻
对显示器件进行数据刷新,显示数据有闪烁感,占用的CPU时间多。
这两种显示方式各有利弊;静态显示虽然数据稳定,占用很少的CPU
时间,但每个显示单元都需要单独的显示驱动电路,使用的硬件较多;
动态显示虽然有闪烁感,占用的CPU时间多,但使用的硬件少,能节
省线路板空间。
硬件译码就是显示的段码完全由硬件完成,CPU只要送出标准的BCD
码即可,硬件接线有一定标准。软件译码是用软件来完成硬件的功能,
硬件简单,接线灵活,显示段码完全由软件来处理,是目前常用的显
示驱动方式。
比较常用的显示驱动芯片有: 74LS164 , CD4094+ULN2003(2803) ,
74HC595+ULN2003(2803) , TPIC6B595,AMT9095B, AMT9595等许多。
另外,市场上还有一些专用的LED扫描驱动显示模块如MAX7219等,
功能很强,价格稍高一些。下面是一个用74LS164驱动显示的例子
和一个用4094扫描驱动显示的例子:
上例图中加了一个PNP型的三极管来控制数码管的电源,是因为164没有数据锁存端,
数据在传送过程中,对输出端来说是透明的,这样,数据在传送过程中,数码管上有
闪动现象,驱动的位数越多,闪动现象越明显。为了消除这种现象,在数据传送过程
中,关闭三极管使数码管没电不显示,数据传送完后立刻使三极管导通,这样就实现
锁存功能。这种办法可驱动十几个164显示而没有闪动现象。
这个例子是用4094做位选,用89C2051的P1口线做段驱动来扫描驱动9位数码管的显示。 由于4094只有8个输出口线,其中第九位是用CPU口线直接进行位选的。9个LED的所有
相同位置的段口线都接到一起,然后接到单片机的一个口线上,供八段,使用8条CPU
口线。其软件的工作过程是这样的:要在LED上显示1--9位数,首先将1的段码送到P1
口线上,然后向4094送位选数据01,使4094的Q1口线输出高电平,选中第一位数码管,
使阳极得电,在第一位上就显示出1,重复上述过程,一直到第九位,然后不断重复
这一过程,就实现了扫描显示。
-----------------------------------
作者:不详
来源:不详
-----
用单片机驱动LED数码管有很多方法,按显示方式分,有静态显示和
动态(扫描)显示,按译码方式可分硬件译码和软件译码之分。
静态显示就是显示驱动电路具有输出锁存功能,单片机将所要显示的
数据送出后就不再管,直到下一次显示数据需要更新时再传送一次新
数据,显示数据稳定,占用很少的CPU时间。动态显示需要CPU时刻
对显示器件进行数据刷新,显示数据有闪烁感,占用的CPU时间多。
这两种显示方式各有利弊;静态显示虽然数据稳定,占用很少的CPU
时间,但每个显示单元都需要单独的显示驱动电路,使用的硬件较多;
动态显示虽然有闪烁感,占用的CPU时间多,但使用的硬件少,能节
省线路板空间。
硬件译码就是显示的段码完全由硬件完成,CPU只要送出标准的BCD
码即可,硬件接线有一定标准。软件译码是用软件来完成硬件的功能,
硬件简单,接线灵活,显示段码完全由软件来处理,是目前常用的显
示驱动方式。
比较常用的显示驱动芯片有: 74LS164 , CD4094+ULN2003(2803) ,
74HC595+ULN2003(2803) , TPIC6B595,AMT9095B, AMT9595等许多。
另外,市场上还有一些专用的LED扫描驱动显示模块如MAX7219等,
功能很强,价格稍高一些。下面是一个用74LS164驱动显示的例子
和一个用4094扫描驱动显示的例子:
上例图中加了一个PNP型的三极管来控制数码管的电源,是因为164没有数据锁存端,
数据在传送过程中,对输出端来说是透明的,这样,数据在传送过程中,数码管上有
闪动现象,驱动的位数越多,闪动现象越明显。为了消除这种现象,在数据传送过程
中,关闭三极管使数码管没电不显示,数据传送完后立刻使三极管导通,这样就实现
锁存功能。这种办法可驱动十几个164显示而没有闪动现象。
这个例子是用4094做位选,用89C2051的P1口线做段驱动来扫描驱动9位数码管的显示。 由于4094只有8个输出口线,其中第九位是用CPU口线直接进行位选的。9个LED的所有
相同位置的段口线都接到一起,然后接到单片机的一个口线上,供八段,使用8条CPU
口线。其软件的工作过程是这样的:要在LED上显示1--9位数,首先将1的段码送到P1
口线上,然后向4094送位选数据01,使4094的Q1口线输出高电平,选中第一位数码管,
使阳极得电,在第一位上就显示出1,重复上述过程,一直到第九位,然后不断重复
这一过程,就实现了扫描显示。
-----------------------------------
作者:不详
来源:不详
-----
上一篇:基于Atmega8的数字功放设计
上一篇:C语言在单片机开发中的应用