第12卷第4期
2010年12月
辽宁师专学报
JournalofLiaoningTeachersCollege
V01.12Nn4
Dec.201O
【学术研究】
一种高亮度超多位LED数码显示驱动算法的实现
王云平
(东北财经大学数量经济学院,辽宁大连116023)
摘要:介绍一种高亮度超多位LED数码显示驱动算法——按段扫描算法,该算法既具有成本低的优点,
又弥补了亮度受限的缺点.利用该算法,理论上可以达到2500多个数码管的高亮度显示,彻底解决在显示多
位LED数码管时亮度低的问题.
关键词:按段扫描;多位LED}高亮度显示
中图分类号:TNl41.6 文献标识码:A 文章编号:1008—5688(2010)04—0020—03
LED数码显示器是目前电子产品一种常见的显示装置,一般采用锁存式或扫描式两种方式实现其显
示原理.其中,锁存式具有亮度高的优点,但其硬件成本也较高,一般应用在显示位数较少的装置中;而
扫描显示方式多应用在LED数码管位数较多的设计中,其特点是亮度适中,硬件成本相对于锁存式较低,
但随着位数的增多,其显示的亮度下降,因此受位数的限制,一般系统在小于十几个数码管内采用‘11。本
文研究如何在保留扫描方式低成本的前提下,解决显示多位LED数码管时亮度低的问题.
1锁存式和按位扫描式的基本原理及相应算法
锁存式的显示原理和算法比较简单,其基本原理是:按照所要显示的数字,通过查
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
得到其对应段
码,并将段码送到锁存器中即可实现数字显示,此时需要一个硬件电路完成显示驱动,在不更新数字时,
相应的段一直是处于亮的状态,因此具有高亮度的特点.但每一位必须有一个独立的驱动电路,这也就是
成本过高的原因.
常规的按位扫描方式的基本原理是:当扫描显
示一位数字时,该位选中,对应该数的段同时亮 。。
起,亮一段时间后熄灭,再以同样的方法显示下一——
位,依次类推.在某一时刻只有一个数码管发光, :
其他管处于熄灭状态,在所有数码管的显示周期一 ,
定的情况下,一个管所占用的时间相对缩短,所以 3
显示的亮度因数码管数量的多少而不同,当小于一 4
定数量时,其亮度在视觉上察觉不出来,当达到一
3
定数量时,亮度开始下降.所对应算法是,先建立 :
一个与数字对应的段码表,此段码表与锁存式显示8
中的表是一致的,该表是个一维线性表,如表1所 9
示,表中各位有效值为高有效.羔茎
表1数字与段码对照表
数码段十六进制值
十六进制值
在C语言中对该数组的定义为:unsignedcharseg[-11]={0x3f,0x06,0x5b,0x4f,0x66,0x6b,
0xTd,0x07,0x7f,0x6f,0x00).依照常规扫描显示方式,当显示一位不带小数点的数字N,以该数(其
值域为o~9)为seg数组的下标,对应的元素为seg[-N],得到的元素即为段码,将其送到段驱动接I=l,然
后选中该位,达到一位数字的显示,其他位以同样的方式按一定时间间隔进行轮回,即可实现多位数码管
的显示需求.
下面分析亮度下降的机理.假定一个系统有N个数码管,一位的显示时间为一个周期时间的1/N,
按照人的视觉要求,整个显示装置的所有数码管的显示周期时间一般不能超过20ms,也就是50Hz的扫
描频率,每个数码管在1S内轮流显示50次,才能在视觉上达到不闪烁的效果,在此扫描频率不变的情
况下,一位的显示时间为20ms/N,随着N值的增加,一位所占用的显示时间将逐步缩短,其亮度不断
收稿日期:2010—06—20
作者简介:王云平(1953一),女,吉林长春市人,教授,主要从事应用
数学
数学高考答题卡模板高考数学答题卡模板三年级数学混合运算测试卷数学作业设计案例新人教版八年级上数学教学计划
方面研究.
H
H
H
H
H
H
H
H
H
H
H强㈣昭蛆蚓铝加盯住盯∞
A—1
0
1
1
0
1
1
1
1
1
O
l
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
O
l
O
1
0
O
0
1
0
1
0
O
l
0
0
O
1
1
1
O
1
1
O~一一~一一一一一~一一~
万方数据
王云平 一种高亮度超多位LED数码显示驱动算法的实现 21
下降,所以N值不能过大,这就是导致亮度较低现象的根本原因.因此采用此种方法,其数码管的数量
不能过多,在仅需少量数码管的场合还是可以采用的.当数码管数量超过一定值时,此种方法的弊端暴露
无疑,甚至根本就不能采用.
2按段扫描方式及算法
本文提出的按段扫描方式及算法的基本模式也是采用轮扫原理,不过不是以逐位轮流显示的方式进
行,而是所有数码管按段依次同时进行显示.由于一个数码管只有8段(包括小数点在内),其每段显示的
时间是固定的,即占整个周期时间的118.为了实现此种扫描方式显示,这里须构造一个2维矩阵表,其
结构见表2所示,表中的行为段码的序列值(o~7),共8行,列的数量依据数码管的数量而定,此表的列
值在系统运行过程中因数字的变化而不断更新[2].
表2按段扫描方式矩阵表
A 0
B 1
C 2
D 3
E 4
F 5
G 6
DP 7
显示的数字
十六进列值
观察表2可以看出,实际上显示某一个数,对应的段码按列看,仍然是其按位扫描时所用的段码,只
不过不是一次输出列段码,而足分成8次顺序进行的.例如,如果本位要显示的数是“2”,当扫描到A
段时,本位的列为“1”选中数码管,当扫描到B段时,本位的列为“1”选中数码管,当扫描到C段时,
本位的列为“0”不选中数码管,本段熄灭,依次扫描到DP段,从而实现按段扫描.要说明的是,表2
中的第15位数码管所显示的是带小数点的9,其段码为十六进制的EF.
表2是本文所给出按段扫描算法的依据,如何构造此表也是该算法核心,为了能够产生每一位显示数
字的列值,先构造出三个表:段码表,位屏蔽表,位选中表.
unsignedcharseg[11]={Ox3f,0x06,0x5b,Ox4f,0x66,0x6b,Ox7d,0x07,Ox7f,Ox6f,Ox00);
unsignedcharcodedibit[-8]={Oxfe,Oxfd,Oxfb,Oxf7,Oxef,Oxdf,Oxbf,0x7f);
unsignedcharcodedispbit[8]={1,2,4,8,16,32,64,128).
根据三个表生成的按段扫描方式矩阵表与表2相同,此表是一个2维数组unsignedcharsioout[8-][M].因
一个无符号字符型数组元素在计算机内部占8位二进制数,其中,数组的右下标M实际是列,每列控制8
个数码管,因此M值由实际系统中采用的数码管个数N/8得到.为了实现矩阵的转换,得到如表2所示
的矩阵,在软件设计中,采用函数形式来实现2维数组的各元素值的计算,其调用的形参有2个,第一个
为要显示的数字,第2个为该数字在LED数码管位置值.
其算法是:
(1)按照给定的位置值,计算出该位置所在的字节序号bytebum和在字节中的位bitnum(因每一位
控制一个数码管);
(2)连续循环8次,每次先清除当前段对应的位选(清零);
(3)按照给定的数字查找段码表seg[num];
(4)将查找出的段码与当前指定的段进行核查,如果本位数需要当前段亮,则位选置为1;
(5)直到所有段(A,B,C,D,E,F,G,DP)比对完,则循环结束,对应显示该数的各段设置完毕.·形成
如表2所示的矩阵形式矩阵转换函数的源代码如下:
voidnumseg(unsignedcharnum,unsignedcharledbit) bytebum—ledbit/8;/*得到了字节序号*/
{hitnum=ledbit%8;/*得到了位序号*/
unsignedchari,bytehum,bitnuITI} for(i一0;i<8}i++)/*从A段到DP段循环*/
。。。。o。。。吼盯
l
1
1
l
o
1
1
o
9盯
1
1
1
l
1
1
1
o
8仆
。o。。。。。o
6巾
1
o●1
o
1。o
5∞
O
1
1
0
O
1
l
O
4∞
1
1
l
1
o
o
1
o
3循
l
1
o
l
l
o
1
o
2睇
O
1
1
O
O
0
o
O
l∞
1
l
1
l
1
1
o
o
o嬉
万方数据
22 辽宁师专学报 2010年第4期
{
sioout[i][bytebuml—sioout[i][bytebum]&dibit
[bitnum-];/*清除指定的位选,清0*/
siooutI-i1[bytebum]ldispbit[-bitnuml;
) /*如果当前指定的段需要显示,则置1*/
)
if(seg[num]&-dispbit[-il)sioout[fl[bytebum]=
本函数的形参7lure为要显示的数字,ledbit为该数显示位置值,如果实际系统中的数码管数量超过
256个,则可以改变其数据类型,如无符号INT型,可以支持多达65536个数码管.
3相应的硬件扫描电路的基本原理
本系统硬件搭建采用INTEL8052单片机和有关驱动器件实现,其中段码用P,口外加复合大功率
PNP三极管TLPl27驱动,该三极管最大的驱动电流可达7A,按照每个数码管一段的电流值10mA计
算,理论上可以驱动约700个数码管.位驱动采用单片机的串行口外接74HC5958D移位锁存器和
ULN2803器件实现.此时串行接口工作在移位寄存器模式,如果系统时钟工作频率为12MHz,则移出
位速率可达lMbps.每段的显示时间如先前所述为2.5ms,因此可以计算出在2.5ms内移出字节数
为2500/8=312.5字节.不考虑软件运行时所占用的时间,理论上可以支持2500个数码管.
4 系统的软件结构
实验系统的软件结构由主函数、定时中断服务函数以及矩阵转换函数构成.其中主函数负责数据处
理,根据所更新的数在LED数码管显示的位置,调用矩阵转换函数.因篇幅限制,在此不做展开介绍,
读者可以根据自己的应用进行设计.这里着重介绍中断函数的设计
思想
教师资格思想品德鉴定表下载浅论红楼梦的主题思想员工思想动态调查问卷论语教育思想学生思想教育讲话稿
,给出完整的源代码.
定时中断服务函数完成LED数码管分段扫描显示的功能,其中断周期时间定义为20ms,即每20ms
产生一次中断,在中断服务程序中完成两项工作.
(1)实现段的切换.
(2)通过串行接口输出当前段的所有位选信息.其中断服务程序如下:
voidti()interrupt3using1/*T1定时2.5ms中断 )
服务程序*/P1=~dispbitInure];/*读取当前段(a,⋯,dp)
{unsignedchari; 送段控制器*/
THI=248; stb=0’
TLl一o: stb=I;/*给出选通信号,位选信息打入74HC595
if(disp)/*如果是显示状态*/ 中*/
{ stb=OI
for(i=0;i
7)nHm0; /*如果超过”dp”,从”a”
f 段开始*/
SBUF=sioout[numl[i];/*从后面的位开始传输, )
传输magnum字节位选择*/ )
在本源程序中,数码管为8*maxnum个,通过实验得知,在除去软件运行的时间后,实际可以在
2.5ms内输出80个字节,也就是说多达640个数码管的位选信息由串行接口输出.显示的亮度没有任何
影响.除i变量为局部变量外,还使用全局变量咒乱m、mo.xnum和数组siooutE8lEM].其中T/Urn用于
记录
混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载
段值,maxnum为实际应用系统所使用的LED数码管数量除8,该变量值实际与M值相同.全局变量数
组sioout[-8][-M-J结构与矩阵转换表(表2)相同.
5 结论
采用分段扫描方式实现超多位LED数码管显示方法,不但能够支持超多位的LED数码管显示,并且
保持其高亮度显示、成本低的特点,是一个切实可行的既经济又不失简单的方案.
参考文献:
[1]孙涵芳,徐爱卿.MCS51/96系列单片机原理及应用[M].北京:北京航空航天大学出版社,1988.
[2]章兼源.多位数、大尺寸、高亮度、低成本LED数码管驱动电路的设计[J].电子工程师,2005,31(12):23--25.
(审稿人胡 坤,责任编辑王巍)
万方数据
一种高亮度超多位LED数码显示驱动算法的实现
作者: 王云平, WANG Yun-ping
作者单位: 东北财经大学数量经济学院,辽宁,大连,116023
刊名: 辽宁师专学报(自然科学版)
英文刊名: JOURNAL OF LIAONING TEACHERS COLLEGE(NATURAL SCIENCE EDITION)
年,卷(期): 2010,12(4)
被引用次数: 0次
参考文献(4条)
1.章兼源 多位数、大尺寸、高亮度、低成本LED数码管驱动电路的设计[期刊
论文
政研论文下载论文大学下载论文大学下载关于长拳的论文浙大论文封面下载
]-电子工程师 2005(12)
2.孙涵芳.徐爱卿 MCS51/96系列单片机原理及应用 1988
3.孙涵芳;徐爱卿 MCS51/96系列单片机原理及应用 1988
4.章兼源 多位数、大尺寸、高亮度、低成本LED数码管驱动电路的设计 2005(12)
本文链接:http://d.wanfangdata.com.cn/Periodical_lnszxb201004012.aspx
授权使用:长沙学院(csxy),授权号:4860e9c9-9dc1-4557-8fa8-9efd0179dd96
下载时间:2011年6月9日