黄 三,张法全,王 焱,刘艳钊
(桂林电子科技大学信息与通信学院,广西桂林 541004)
基于4位7段柔性数码管的数字编解码方案设计
黄 三,张法全,王 焱,刘艳钊
(桂林电子科技大学信息与通信学院,广西桂林 541004)
为了满足PDLC型柔性数码管显示器的动态显示需求,提出一种简便的数字编解码方案,用于对4位7段柔性数码管显示内容的控制。运用对比研究和软硬件相结合的方法,设计了以51单片机为核心、锁存器和达林顿管阵列芯片为辅助器件的硬件电路系统以及对应的数字编码、解码方案,用C语言实现了该编解码方案的算法,并完成了软硬件调试任务。实验结果表明,柔性数码管可显示4位相同数字和4位不同数字,显示的内容完整清晰,这套编解码方案简易可行。
PDLC型柔性数码管;数字编码方案;数字解码方案;51单片机;达林顿管阵列
近年来,与玻璃板具有相同阻挡性能的柔性基板材料成为显示器制造商青睐的材料,与其他显示器相比,柔性显示器具有许多潜在的优势:薄而轻、可弯曲、耐冲击、低功耗以及清洁环保等,这些优势使柔性显示器具有广阔的市场前景[1]。目前,国外的三星、LG、英特尔等公司纷纷高调亮出了各自的柔性显示产品,如三星联合微软推出的采用Youm柔性屏幕的Windows Phone8原型机,LG推出的柔性塑料电子纸显示屏等。虽然华为在2014年的MWC大会上也发布了采用1.4寸超薄柔性屏的Talk Band手环[2],但是,国内对柔性显示技术的研究仍处于实验阶段,离产品应用尚有一定的距离,而且行业内的相关技术标准和工艺流程也未统一,仍有许多研究工作要做。PDLC型柔性数码管作为柔性显示器的一种基本类型,是研究大型点阵型柔性显示器的基础。在缺乏可利用的参考文献的情况下,从工程应用的实际出发,针对应用需求和PDLC型柔性数码管的特殊性,设计了显示控制电路,并基于该电路设计和实现了具有较强实用性和较高可靠性的数字编解码方案。
与普通的数码管相比,PDLC型柔性数码管有许多不同之处,主要表现在驱动电压较高、刷新频率较快、内部结构独特以及引脚排列特殊等。因此,在设计显示驱动电路和软件程序时,必须结合柔性数码管的特殊性设计合适的解决方案。普通数码管的内部结构如图1所示,PDLC型柔性数码管的内部结构如图2所示。
图1 普通数码管的内部结构Fig.1 The internal structure of ordinary nixie tube
图2 柔性数码管的内部结构Fig.2 The internal structure of flexible nixie tube
比较图1和图2可知,普通数码管通常只有12个外接引脚、8个段选端和4个位选端,其中,4个数码位共用8个段选端引脚[3]。在显示数据时,通过控制D0、D1、D2、D3这4个位选端的电平即可达到控制各数码位亮灭的目的。然而,柔性数码管却不同,它没有位选端引脚,只有28个段选端引脚和1个公共端引脚(图中没有标出,通常将柔性数码管的基板当作公共端),并且各段选端不共用外部引脚,所以只能通过控制段选端与公共端之间的电压差控制各数码段的亮灭。对照图3所标注的数码段名称,结合图2,柔性数码管各数码位上数码段与外部引脚的对应情况如表1所示。
图3 单位7段数码管Fig.3 Single seven-segment nixie tube
表1 各数码段与外部引脚的对应关系Tab.1 The corresponding relation of each segment and external pins
比较2种数码管的显示原理可知,普通数码管动态显示采用“按位轮寻”的方式,即按数码位轮流显示,利用发光管的余辉和人眼的视觉暂留效应,使人感觉好像各位数码管同时在显示,而实际上4位数码管是轮流显示的,只是轮流的速度非常快,人眼无法分辨[4]。然而,柔性数码管因其内部结构和外部引脚的特殊性,只能采用“按端口扫描”的方式,即对需要点亮的数码段的引脚端口进行动态扫描和刷新,控制这些端口的电平翻转才能点亮这些数码段。根据柔性数码管的参数特性可知,当电平翻转的频率为4 k Hz时,显示效果最佳。
数字编解码的硬件电路主要包括单片机最小系统、锁存器和电压通断控制芯片3部分。单片机因其高性能、价格低、体积小、稳定可靠,被作为核心部件投入使用[5]。本设计它被用作主控系统,具有复位、控制数码管显示内容以及控制显示效果等功能。由于编解码所处理的数据量不大,并且对单片机的主频要求不高,采用较廉价的51单片机作为主控制器。锁存器用于解决单片机I/O口资源紧张的问题,有助于提高I/O口资源的利用率,从而扩展单片机的功能[6]。本设计采用型号为SN74HC573N的锁存器芯片,它是一款8路上升沿触发型的锁存器,工作电压为2~6 V,当锁存控制端LE为高电平时更新状态,为低电平时则进入锁存状态。由于柔性数码管要求的驱动电压较高,需借助电压通断控制芯片控制高电压,以确保逻辑电路的安全和稳定。比较继电器、光耦和达林顿管等器件,本设计采用开关速度快、稳定性好且集成度高的达林顿管阵列芯片ULN2803A,其输出电压高达50 V,输出电流高达500 m A,可满足设计的要求[7]。数码管显示控制电路的原理图如图4所示。
图4 数码管显示控制电路Fig.4 The display and control circuit
3.1 编码方案设计
柔性数码管的编码设计主要是对各位数码管上数字0~9的编码。由于柔性数码管的4个数码位不共用段选端,对于不同数码位上显示相同数字的情况均需单独编码,整个编码方案包含40次编码计算。由于本编码方案最终需利用软件程序和硬件平台实现,在设计编码方案中必须综合考虑编码方案的实用性。4位7段柔性数码管共有29个引脚需控制,且每个引脚相互独立,采用28位以上的编码方案。考虑程序设计中变量长度的问题,本设计采用32位的编码方案,编码变量的类型采用无符号长整型。编码时,编码变量的位序号与数码管的引脚序号一一对应。具体的编码步骤为:
1)定义一个32位的无符号长整型编码变量,规定从左至右依次为该变量的第1位、第2位……第32位,分别对应数码管的引脚1~28(后4位闲置不用,编码时均置0);
2)从左起第1位数码管开始编码,按照从数字0到数字9的顺序依次编码,对照图3和表1,结合要显示的数字内容找出第1位数码管中要被点亮的数码段的引脚序号,然后将编码变量中与此引脚序号相对应的数据位置0;
3)找出第1位数码管中不被点亮的数码段的引脚序号,并将编码变量中与此引脚序号相对应的数据位置1;
4)将编码变量中剩余的位全置0;
5)取编码值,对编码变量从第32位到第1位按照逆序取编码值,然后将编码值由二进制转换成十进制,生成第1位数码管显示某个数字时的编码值。
后3位数码管上的数字编码方法与第1位数码管的相同,均可仿照以上编码步骤进行编码,当完成第4位数码管上数字9的编码,即可得到一组完整的编码值。对以上编码值进行整理,得到如表2所示的数码管编码表。
表2 数码管编码表Tab.2 The code table of flexible nixie tube
以第1位数码管的数字4为例进行编码演示。1)定义一个32位的无符号长整型编码变量Duan-Ma1_4,将该变量的位号依次填入表3;2)对照图3和表1,找出在第1位数码管上显示数字4时要点亮的数码段的引脚序号,它们分别是4、6、7、10,按照编码规则将编码变量中与这些引脚序号相对应的数据位置0,即在表3中将位号为4、6、7、10的项填“0”; 3)找出第1位数码管中不被点亮的数码段的引脚序号,它们分别是5、8、9,按照编码规则将编码变量中与这些引脚序号相对应的数据位置1,即在表3中将位号为5、8、9的项填“1”;4)将表3中剩余的项全填“0”;5)逆序取编码值,从第32位开始,一直取至第1位,得到二进制数值(110010000),转换成十进制数为400,即是第1位数码管显示数字4时的编码值。
表3 第1位数码管数字4的编码表Tab.3 The code table of the first number four
3.2 解码方案设计
本设计的编码由人工手动完成,而解码则需单片机和硬件电路完成。解码方案的工作流程如图5所示。
图5 解码流程图Fig.5 The flow chart for decoding
具体的解码过程为:
1)将待显示的4位数字的编码值进行位或运算,得到一个新的32位的数值,并将它赋给变量temp。
2)截取变量temp低8位(位7至位0)上的数值,并将取得的值赋给单片机的P0口,开启第1块锁存器芯片的锁存端,将P0口的值送入锁存器中(对应数码管的1~8号引脚)。
3)关闭第1块锁存器芯片的锁存端,将变量temp右移8位后取低8位上的数值,并将取得的值赋给单片机的P0口,开启第2块锁存器芯片的锁存端,将P0口的值送入锁存器中(对应数码管的9~16号引脚)。
4)关闭第2块锁存器芯片的锁存端,将变量temp右移16位后取低8位上的数值,并将取得的值赋给单片机的P0口,开启第3块锁存器芯片的锁存端,将P0口的值送入锁存器中(对应数码管的17~ 24号引脚)。
5)关闭第3块锁存器芯片的锁存端,将变量temp右移24位后取低8位上的数值,并将取得的值赋给单片机的P0口,开启第4块锁存器芯片的锁存端,将P0口的值送入锁存器中(对应数码管的25~28号引脚)。
6)关闭第4块锁存器芯片的锁存端,延时控制和脉冲翻转。根据柔性数码管的参数特性可知,当脉冲电平的翻转频率为4 k Hz、占空比为50%时,数码管的显示效果最佳,故需延时125μs。达林顿管的逻辑功能等效于逻辑“非”,因此,延时125μs后将4块锁存器芯片的输出端口全部置为高电平,即可达到脉冲电压翻转的目的。
解码方案的C语言实现过程如下:
void Display(unsigned char a,unsigned char b, u-nsigned char c,unsigned char d)//a、b、c、d分别
//为各数码管上待显示的数字
{
unsigned long temp=0;
temp=Duan Ma1[a]|Duan Ma2[b]|Duan-Ma3[c]|Duan Ma4[d];//数组Duan Ma1[10]、Duan
//Ma2[10]、Duan Ma3[10]、Duan Ma4[10]中
//分别存放了各数码位的数字编码值
DataPort=temp;
Latch1=1;
Latch1=0;
DataPort=(temp>>8);
Latch2=1;
Latch2=0;
DataPort=(temp>>16);
Latch3=1;
Latch3=0;
DataPort=(temp>>24);
Latch4=1;
Latch4=0;
Delay Us(125);//延时125μs
DataPort=0xff;
P2=0x0f;
P2=0x00;
Delay Us(125);
}
编解码方案的验证主要包括可行性验证和正确性验证,在验证的过程中,若数码管的数码段能正常点亮,且仅有部分数字乱码,则说明本设计方案可行,只需对部分数字的编码值进行修改即可;若4位数码管能准确地显示0000~9999内的所有数,则说明本设计方案正确,所有的编码值均无错误。具体的验证工作分为以下2部分:
1)在2位数码管上依次显示0000,1111,…, 9999等10个数,验证各个编码值的正确性。由编解码方案可知,Display函数的实参值应分别为(64, 1024,16384,262144),(496,7174,201441280, 27000832),…,(128,2048,32768,524288),将这些编码值分别写入程序,通过Keil软件编译后下载到单片机芯片中,上电后观察实验效果,数码管被成功点亮,并且完整地显示了上述10个数,说明各个编码值均正确无误。图6(a)为数码管显示了2222四个数。
2)在数码管上显示4位不同的数字,验证柔性数码管的实用性。以显示数字4567为例,根据编解码方案可知,Display函数的实参值应为(400,2049, 33554432,18612224),将其写入程序中,编译下载后观察显示效果。图6(b)为数码管显示了数字4567,说明柔性数码管能显示4位不同的数字。
图6 编解码方案实现效果Fig.6 The experimental results of coding and decoding scheme
针对PDLC型柔性数码管的特殊性,设计了相应的显示控制电路,并基于该硬件平台给出了数字编解码方案和实现方法。实验结果表明,基于4位7段柔性数码管的数字编解码方案具有较强的实用性,可应用于汽车仪表盘、数字腕表等电子产品。
[1] 田学敏.基于单片机控制的柔性显示系统设计[D].武汉:武汉大学,2014:1-5.
[2] 李波.柔性显示市场迎来大爆发[N].中国证券报,2014-02-25.
[3] 杨果仁,蔡顺燕.从“视觉暂留”看LED数码管动态显示[J].数字技术与应用,2013(12):79-81.
[4] 郭天祥.新概念51单片机C语言教程:入门、提高、开发、拓展全攻略[M].北京:电子工业出版社,2012:64-65.
[5] 陈旦花.单片机最小系统的设计与应用[J].无线互联科技,2012(10):103-104.
[6] 谢华燕,潘丽.单片机系统与控制中锁存器的应用[J].甘肃高师学报,2014,19(2):63-65.
[7] 万天才.高压大电流达林顿管阵列系列产品及其应用[J].国外电子元器件,2001(2):19-21.
编辑:翁史振
Design of digital coding and decoding scheme based on flexible nixie tube with twenty-eight segments
Huang San,Zhang Faquan,Wang Yan,Liu Yanzhao
(School of Information and Communication Engineering,Guilin University of Electronic Technology,Guilin 541004,China)
To satisfy the need for dynamic display of PDLC flexible nixie tube,a simple scheme for digital coding and decoding is proposed to control the seven-segment flexible nixie tube display figures.With the methods of comparison and combining software with hardware,a control system based on 51 MCU is designed,which is combined with latches and Darlington transistor arrays,etc.The corresponding digital coding and decoding scheme based on this hardware platform is designed. Finally,the algorithm of this digital coding and decoding scheme is implemented by using C language,and the task for debugging software and hardware is completed.The results indicate that the flexible digital tube can display figures clearly. This coding and decoding scheme is simple and feasible.
PDLC flexible nixie tube;digital coding scheme;digital decoding scheme;51 MCU;Darlington transistor arrays
TP391.8
:A
:1673-808X(2015)04-0284-06
2014-11-12
桂林电子科技大学研究生教育创新计划(GDYCSZ201461)
张法全(1969―),男,河南林州人,副教授,博士,研究方向为机器视觉、信息处理与模式识别。E-mail:zhangfq@guet.edu.cn
黄三,张法全,王焱,等.基于4位7段柔性数码管的数字编解码方案设计[J].桂林电子科技大学学报,2015,35(4):284-289.