栏目搜索
 
 
 
 

中断在LED大屏幕显示系统中的应用

更新日期:2006-09-10  作者:佚名  来源:本站整理

1 引言
  随着信息时代的到来,信息的显示方式越来越多.在很多公共场合采用LED发光二极管进行显示是一种发布信息、显示广告的很好的方式.在这种显示系统中,把发光二极管按行、列的方式以点阵排列,输出电压控制对应点阵上的发光二极管发光就可显示出所需的画面.
  这种显示系统主要有两种显示方式:静态显示和动态扫描显示.对静态显示来说,每一个发光二极管都需要一套驱动电路,一帧画面输入以后便可一劳永逸地显示,除非我们改变了画面,需要重新输出新的点阵数据.这种方式系统原理相对简单一些,但所需的译码驱动装量很多,引线多而繁杂,不便于大屏幕的制造,成本高,其可靠性也较低.
  另一种动态扫描显示是把整个LED屏幕分成若干部分,每一幅画面的显示显示完一部分后,又显示第二部分……直到显示完最后一部分又重新开始显示第一部分,重复循环进行.在重复扫描速度足够快的情况下,我们看到的就是一幅稳定的画面.也就是说采用动态扫描显示需要不断进行画面的刷新.在这种方式下其显示驱动电路可重复利用,引线也大大减少,从而使硬件成本降低,且屏幕上的发光二极管轮流发光,使用时的耗电量大大降低.大屏幕的制造、维护要容易许多,可靠性也增加了.
  鉴于上述原因,我们采用多路复用技术的动态扫描显示方式,但是复用的程度不是无限增加的,因为利用动态扫描显示使我们看到一幅稳定画面的实质是利用了人眼的暂留效应和发光二极管发光时间的长短,发光的亮度等因素.我们通过实验发现,当扫描刷新频率(发光二极管的停闪频率)为50Hz,发光二极管导通时间≥1ms时,显示亮度较好,无闪烁感.在考虑复用路数时,除了要考虑刷新频率外,还要考虑一帧画面的大小,即数据量的多少、微机运行的速度等因素.也就是,在说刷新周期内能否完成一幅画面数据的输出.
  微机与外设间的数据可采用程序传送、中断传送和DMA传送.在动态扫描显示系统中,我们不仅要显示静止画面,而且还要显示一些变化的画面,如向左移动,向上移动等,甚至进行动画显示,微机不可能为得到一幅稳定的画面不断地进行输出而不做其它工作,因而必须留出一定时间作相应的变换,所以不能采用程序控制的输出传送.当然用DMA方式定时输出数据也可以,但每次送出数据的内存地址不同,且硬件复杂,所以我们选用了中断传送方式输出要显示的数据,使微机既能进行所需的交换操作,又能保证数据的定时输出.
  一帧图象由128行×256列点阵组成,综合考虑以上因素,我们采用了16路复用的动态扫描显示方式.即20ms/16=1.25ms内输出显示116帧图象,共128×256/(8×16)=256字节的数据.每1.25ms产生一次中断,在中断响应时向显示端口输出数据.

2 系统中断显示原理
  如图1所示,该大屏幕显示系统可根据需要选择显示的字型、字体和大小,对显示的图象进行文字或图形的编辑形成一显示文件,预先设置要显示的模式,可以是静止显示或上下左右移动显示等,可按要求设定显示时间的长短和移动的速度,然后把若干显示文件组合在一块进行显示.这些操作可通过主菜单进行.

 
图1 主程序流程

  显示时依次取出要显示的文件一个一个地进行显示显示完一轮后若没有按键,则重新取出该组合文件重复显示,若有按键,则终止显示,回到主菜单(见图2).
  当某一文件进行显示时,首先将该文件调入显示缓冲区,再按其显示模式的要求静止显示或向左、向上移动显示.这时我们要根据预置的参数控制其静止的时间.若是左移或上移还要根据其移动速度每隔一定时间改变显示缓冲区里的数据,控制画面向左或向上移动.中断就在这个过程中出现,每隔1.25ms一次.LED大屏幕上的画面是由中断服务程序执行时从显示缓冲区中取出来实现显示的.
 
 图2 显示运行流程

  由硬件接口的振荡分频电路产生周期为1.25ms的脉冲作为显示中断请求信号(图3).
  由于我们采用16路复用技术,微机接收到中断请求后在中断响应子程序中从显示缓冲区取出第一组1/16帧数据共256字节,送第一段LED显示;第二次中断时输出第二组1/16帧数据送第二段LED显示……第16次中断时输出第16组1/16帧数据送第十六段LED显示,由此形成一帧画面.第17次中断又开始新的一帧输出.为保证同步,每16次中断输出一同步脉冲.在每次中断输出256字节数据后,算出下次从显示缓冲区取数据的地址,应在这次的基础上加256. 16次中断后该取数据的地址恢复成显示缓冲区的首址.中断服务程序的流程如图4所示.
  由于LED大屏幕上的数据是由内存显示缓冲区取出的,所以我们通过改变显示文件和显示模式来改变显示缓冲区的内容,从而控制大屏幕上的显示,得到丰富多彩图文并茂的画面.

图3 中断时及输出数据与大屏幕的对应关系

3 中断的实现
  利用IBM微机中已有的中断控制器8259实现对中断的管理控制,可减少硬件的开销.在8259管理的8级外部中断源中有5级中断源已用.我们选取剩下的IRQ3接入周期1.25ms的显示中断请求信号,这时中断类型号为0Bh.在主程序中向002ch送中断向量.在运行显示时允许8259IRQ3的中断请求.当中断被响应时,首先保护现场,若是16次中断则送出帧同步信号,然后在中断服务程序中从显示缓冲区向LED的显示数据端口送出256字节的一组数据进行扫描显示,算出下次中断响应时应从显示缓冲区取值的地址,若是16次中断则取数地址复位成显示缓冲区的首址.最后向8259送EOI命令,结束一次中断,恢复现场,返回.当一个文件显示完毕时,屏蔽8259IRQ3的中断请求,使系统恢复初始的中断状况,接收键盘的中断,停止显示或继续显示下一个文件.

 
 图4 中断服务子程序流程图

  在这个过程中,我们需要考虑1.25ms的时间能否完成256字节数据的输出.实际上用16MHz主频的微机,每个字节输出周期约3μs,256字节共256×3μs=0.768ms,剩余时间1.25ms-0.768ms=0.482ms可做向左、向上移动等其它处理.这样就实现了用中断方式输出数据控制显示的目的.
  从系统运行效果来看,整个系统性能稳定画面无闪烁,显示内容修改增删容易.由于采用多路复用技术,原来静态显示需要128×256=32768套驱动电路减少为128×256/16=2048套,连线大大减少,

从而使制作成本大大降低,制作维护容易.动态扫描显示,发光二极管轮流点亮,耗电量也大大减少(仅为静态显示的1/16).随着微机主频的增加,采用中断方式传送输出一个字节的时间大大降低,可在1.25ms内输出的数据量大大增加,这样可扩大显示屏的尺寸.当微机主频提高3倍,输出一字节约需1μs的时间,仍采用中断方式1.25ms内可输出1024个字节,即在接口电路不改变的情况下,软件只需作很少的修改,将中断服务程序中输出的字节数增加,屏幕可扩大为现在的4倍!一般能够满足用户的要求.

作者单位:梁采 高胜东 张宏富 (成都气象学院, 成都 610041)

参考文献
[1] 白素怀.硬件软件及接口技术[M].西安:陕西科学技术出版社,1986.
[2] 唐先余.实用DOS技术[M].成都:四川大学出版社,1993.
[3] 赵保经.中国集成电路大全、TTL集成电路[M].北京:国防工业出版社,1990.
[4] 陈青山.日本美国最新发光和受光半导体器件手册[M].湖南:中南工业大学出版社,1985.
[5] 周明德.微型计算机硬件软件及其应用[M].北京:清华大学出版社,1988

 etyjtykjuy