通用型智能LED显示面板设计

分享到:

引言


    目前,控制仪表经常使用的显示面板主要有LCD和LED两种类型,其中LCD比较美观,省电,显示方式灵活,但是价格比较昂贵,最重要的是它的醒目程度较低,可视角度也比较小;而LED数码管虽然功耗较大,但它亮度高,用作工业现场指示时更醒目,而且价格低。因此,用LED作为工业现场的指示器,具有更好的性价比。


    本文介绍一种采用LED数码管作为显示元件的通用型智能数字显示面板的设计方法。该面板根据80×160 ×160标准仪表机箱设计,采用AT98C5X单片机作为控制器。它既可作为其他仪表的显示单元,也可作为独立的现场显示器使用。



1 LED显示面板的功能


   
本文的LED通用智能型显示面板如图l所示。该面板中央为两排LED数码管,每排4位。上排为红色,下排为绿色。面板左边为四个发光二极管,右边为四个按键开关。其显示和开关可根据不同应用定义。

 

 


    该面板作为调节仪表的显示器时,上排LED可显示测量值,下排LED可显示阀位反馈值。左边的发光二极管用做工作状态指示,从上到下,依次为高报警、低报警、自动(亮)/手动、以及仪表通信状态指示。右边的按键用于参数设定与查询等操作。为方便描述,其按键从上到下分别称为按键1~4。


    在调节仪表正常工作状态下,按键1按下时,报警上限值显示;按键2按下时,报警下限值显示;按键3为阀门开度手动/自动切换。当设为手动状态时,按键1和按键2用于遥调阀门开度,每按一次,阀位反馈值(绿色LED最后一位)±1。按键4为功能切换按键。


    在仪表参数设定状态下,按键1为循环方式选择参数,红色LED显示当前设定值,绿色LED显示被设置参数的序号;按键2为设置位参数值


加1;按键3可以右循环方式选择设置参数的当前位,当前设置的数据位用闪烁表示;按键4为确认参数设置,连按两次按键4可进行功能切换。


    作为独立的显示器单元时,本显示面板可作为多路巡回显示报警器。正常巡检时,上排LED显示测量值,下排LED显示巡检回路号。左边的发光二极管显示回路工作状态,从上到下依次为高报警、低报警、回路中断、巡检(亮)/停止状态。当某回路参数越限时,对应的报警指示二极管发亮。


    右边的按键可用于设定参数与查询等操作。正常工作(巡检)时,按键2为功能切换,按键4为显示方式切换。按键4按下一次,停止巡检,保持当前显示状态。在此状态下,按下按键1和按键2,可分别显示该回路上、下限报警设定值。按键3用于循环选择显示回路号,每按一次,回路号加一。按下按键4一次。系统又将进入正常巡检状态。



2 硬件部分设计


2.1 LED数码管显示电路


    LED数码管是由若干个发光二极管按一定的规律排列而成的,当某个发光二极管导通时,相应的段就会被点亮。根据内部发光二极管连接方式的不同,LED数码管可以分为共阳极和共阴极两类。本文采用共阳极显示方式,段码值从0到9依次为:Ox0C0、OxF9、Ox0A4、Ox0BO、0x9 9、0x92、0x82、0x0F8、Ox80、0x90。


    数码管显示驱动方式可以分为动态(扫描)驱动和静态驱动,以下是三种设计方案:


    (1)静态驱动方式


    该方式中,各个LED数码管同时显示各自的字符,并维持不变,直到显示下一个字符为止。这种方式下,每一个数码管要对应一个8位驱动存储器,8个数码管共需64根驱动线,因而需要较多芯片,显示面板面积较大。


    (2)采用8根位选线的动态驱动显示


    这是将所有数码管相同的段选线并联,各数码管位选线轮流选通,分时多路复用。这种方案在任一时刻只有一位数码管被选中发光,然后利用人眼的视觉暂留特点实现同时显示的效果。本显示面板有8个数码管,只需要8个位驱动线和8个段驱动线。但8位循环显示时,每一位数码管的发光时间只占1/8循环时间,可能导致数码管显示闪烁。
 

    (3)采用4位分组动态驱动显示


    这是将两个LED数码管共用一根位选线。这种方案相对于方案2少用一个8位驱动器,每一位发光时间有1/4循环,因而比较容易保证数码管显示不闪烁。
 

    本设计选用4位分组动态驱动显示方式。显示面板采用AT89C5X单片机作为LED控制驱动器。单片机的P1和P2口分别与两个LED数码管的段选线相连,P0口的P0.0、PO.1、P0.2、P0.3分别是两个LED数码管的位选线,主要用来控制两个数码管的相同位。


2.2 发光二极管电路


   
发光二极管电路的设计比较简单。可将单片机P3口的P3.0、P3.1、P3.6、P3.7分别与四个发光二极管的阳极相连,以便控制四个发光二极管的工作。

 

2.3 通信接口电路


   
此显示面板既可作为智能调节仪表的显示器使用,也可作为独立显示器使用。但是,无论何种应用,都需数字通信。


    AT89C5X单片机有一个内置的串行通信接口。在作为智能调节仪表的显示器使用时,考虑到智能调节仪表与上位机通信要占用仪表的串行通信接口,因此,显示面板与调节仪表的通信就不能使用此接口。为此,本显示面板自定义了与调节仪表的通信接口电路,即将单片机的P3. 2、P3.3、P3.4、P3.5作为与调节仪表的数字通信接口。通信时,可将两个单片机的P3.2、P3.3交叉相连作为握手信号,P3.4、P3.5互联作为数据传输线。P3.2、P3.3具有外部中断功能,故可设计采用外部中断方式来进行通信,以提高数据的传输速度。


    若作为独立显示器使用时,可使用显示面板内部的串行通信接口。该方式只需要对连接串口引脚的发光二极管进行调整即可。


2.4 按键


   
通常根据按键数量的多少,可将按键的设计分为矩阵式键盘和独立式键盘。
 

    矩阵式键盘常用在按键数量较多的系统中,这种键盘由行线和列线组成,按键设置在行、列结构的交叉点上。行列线分别连在按键开关的两端。


    独立式键盘通常用在按键较少的系统中,每个按键单独占有一根I/O口线,各键的工作状态相互独立,互不影响。由于本文的显示面板的调节按键只有4个,因此,设计使用独立式按键接法。其键盘接口电路如图2所示。

 

 

 


    图2中,单片机P0口的P0.4、P0.5、P0.6、P0.7分别与按键1、2、3、4相连,以对按键操作进行控制。在按键处理时,通常要考虑按键去抖问题,经常使用的硬件去抖方法有滤波消抖电路和双稳态消抖电路,也可以采用软件去抖。本文在设计时,考虑到LED显示面板大小的限制,故采用软件去抖方法。



3 软件设计


   
本LED显示面板的功能可用C51语言实现。软件功能包括正常运行和仪表参数设定。


3.1 主程序


    本设计的主程序主要完成显示面板功能的确定、系统初始化、定时器初始化、按键功能的实现以及二极管的功能实现等。


    (1)显示面板功能的确定


    这里采用组合键操作来进行显示面板的功能切换。


    初始状态下,若作为调节仪表的显示器使用,则其正常工作状态,为状态1。
    在状态1情况下,按下按键4不释放,再将按键1按下,此时仍可作为调节仪表的显示器使用,但系统会进入参数设定状态,此为状态2。为了提醒进入状态2,红色发光二极管会闪烁三次以提示参数设定完毕,连按两次按键4,即可返回状态1。
 

    在状态1下,按下按键4不释放,再将按键2按下,此时将为独立的显示单元使用状态,该状态为状态3。同样,为了提醒是进入状态3,绿色发光二极管会闪烁三次予以提示。若需状态3返回状态1,只要在正常巡检情况下,将按键2按下即可。


    (2)系统初始化


    系统初始化主要包括按键、LED数码管以及发光二极管的初始状态设定。本面板右边四个按键对应P0口初始状态值为0xf0;LED数码管对应的P1、P2口的初始状态值可先设置为0x00、0x00,经过一段时间延迟后再设置为0xff,0xff,这样,在程序开始执行时就可以检查数码管是否能正常工作;发光二极管对应的P3口的P3.0、P3.1、P3.6、P3.7的初始状态设置与LED数码管相同。


    (3)定时器初始化


    定时器的初始化包括定时器工作方式的设定和定时初值的设置。


    本文的LED数码管采用动态(扫描)驱动显示方法,设计时要注意扫描时间的设置。该时间要既能保证LED数码管的亮度,又不会使人眼感觉到闪烁。


    定时器的工作模式为方式1。此模式下的计数脉冲频率为fcont=fosc/12,计数初值x可以通过公式设定:
    X=M-计数值=M-t/T=M-fosct/12


    其中,fosc为振荡器的振荡频率,t为要定时的时间。M为定时器的最大定时时间。


    根据视觉暂留特性。人眼睛对动态频次的分辨率一般为1/16~1/24s,因此,可以将LED数码管轮流显示的时间设定为小于这个分辨率的任何一个时间。本文在设计时,经过多次试验发现,将定时器的初值设定为EC00H(2.78ms)比较合适,此时,在状态1、3下,对于LED数码管的闪烁,人眼几乎不可识别。
 

    (4)按键功能的实现


    在状态1及状态3下,按键的功能比较容易理解,这里来对状态2下的按键功能进行说明,图3所示依次为1、2、3、4键。其中按键1可进入设定状态,上面一行显示参数的值,下面一行显示当前是第几个参数;按键2用于对当前闪烁数据位进行加1操作,可依次从0增加到9,当增加到10时,又自动变为0;按键3用于改变设定的位,每按下一次,闪烁数据位向后移动一位,当移动到第四位再按下此键时,闪烁位变为第一位;按键4用于确认参数的设定和保存。

 

 

    (5)发光二极管功能的实现


    当测量值到达测量上下限、或者按键进行操作时,将相应单片机引脚置1,即可使发光二极管点亮,从而实现报警提示功能。


    图4所示是本系统的主程序流程图。

 

 


3.2 中断程序


   
在状态1及状态3下,中断程序功能是在定时时间到时,将段码值赋给相应的数码管,并将时间初值装入相应的寄存器。


    在状态2下,参数设定时,设定位要实现闪烁,以确定正在被设置的数据位。实现闪烁的基本思想是每隔500 ms,当前闪烁数据位的段码值就由数据状态变为空码状态,下一个500 ms再由空码状态变为数据状态,并不断循环执行此操作(共阳极显示方式下空码值为0XFF)。这样,从用户角度看,当前被设定的数据位就是闪烁的。这里可通过设定一个计数器来确定转换时间,当计数值达到500/2.78(约为180)时,当前闪烁数据位就进行段码值转换。本系统的中断程序流程图如图5所示。

 



4 结束语


   
本文是配合智能调节仪表设计的一种智能LED显示面板。为了扩大其应用范围,在该面板硬件电路不变的情况下,通过软件调整可使其成为巡检报警器。目前,该显示面板在功能性和灵活性方面都有了很大提高。