设计一个银行利率屏的资料和源代码说明

电子说

1.3w人已加入

描述

  银行利率屏多采用单片机控制的LED显示,尽管单片机控制LED显示已不是什么新技术,但由于利率屏所用LED数量多(达到数百到上千),每个LED的驱动电流大(达数百毫安时),压降大(达2-3伏)时,依然有一些实际问题要解决。

  一、LED的驱动形式

  一般而言,当系统中LED数量较多时,采用动态扫描的方法较为经济,但当系统中LED的数量达到数百只,且每只LED的驱动电流达到数百毫安时,如仍采用动态扫描的方法,会使系统变得较为复杂,可靠性降低,且成本下降有限。为此选用静态法,为每一只LED配一只CD4094和MC1413七达林顿驱动器,见图1(A)。由于利率屏显示时小数点固定,所以可以不用驱动小数点,直接用一个限流电阻将需点亮的小数点接到地即可。

  二、单片机驱动CD4094的方式

  CD4094是串/并转换器,显然单片机应用串行口驱动,但如果将系统中所有的CD4094全部串接,然后接到串行口上,不仅串行口难以驱动,就算扩展驱动能力后能够驱动,在编写程序时也会很麻烦。为此采用扩展并行口,然后将并行口模拟成串行口的方法来解决,电路参考图1(B),假设将数据端接到P1.2,而脉冲输入端接到P3.3则输出一个数的完整程序如下:

  ORG 0000H

  LJMP START

  START:

  SETB P3.3 ;将P3.3置为高电平为后面作准备

  MOV 30H,#01H ; 30H为显示缓冲区

  S_1:

  LCALL DISP

  SJMP $

  ;以上主程序

  DISP:

  MOV A,30H

  MOV DPTR,#ZX_TAB ;字形表首地址

  MOVC A,@A+DPTR ;查字形

  MOV R7,#2 ;R7用于控制循环次数

  DISP_LOOP:

  RL A

  DJNZ R7,DISP_LOOP

  ;由于用P1.2作为数据输出端,所以必须先把待送出的数左移二次将数据的第0位

  ;移到第2位,例要送的数为05H即00000101,移位二次变成00010100

  MOV P1,A ;将移位后的数据送到P1口

  CLR P3.3

  SETB P3.3 ;形成一次脉冲的上升沿,将第一位数据

  ;送到CD4094去,以刚才例,即P1.2为;高电被送到CD4094中

  MOV R7,#7

  DISP_LOOP1:

  RR A ;数据右移

  MOV P1,A ;数据送P1口

  CLR P3.3

  SETB P3.3 ;形成一次脉冲上升沿,送入一位数据

  DJNZ R7,DISP_LOOP1 ;循环7次,送入7位数据

  RET

  ;以刚才的例子,移位7次分别是00001010、00000101、;10000010、01000001、10100000、01010000、00101000请注意粗、斜体的数字,它位加上第一次送出

  ;的1,正好就是10100000,与串行口发送是相同

  ZX_TAB:

  DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

  END

  以上例子是发送一个数据,稍作修改,即可一次发送多个数据。如果用其它的并行口位作数据输出端或脉冲输出端,也只要对程序稍作改动即可。

单片机

  采用这一方法后,我们将LED分组,一般利率屏中一行的LED数量为18到20多只不等,将两行或三行为一个单元为其配一个驱动单元(即并行口的两位),这样一个由300到500个左右的LED构成的屏约需30个左右的并行口位,这只需要扩展一片8255加上P1口和P3口的一些位就够了。串行口可以留作键盘扩展或作远距遥控等用。

  三、电平转换及驱动能扩展

  由于大尺寸LED的压降较高,因此需要较高的驱动电压,这样在CD4094和单片机电路中就要有一个电平转换,选用集电极开路同相器7406就可以完成这一工作(见图3),同时它还兼有扩展驱动能力的作用,实践证明,当7406的上拉电阻取2.2K,8031的晶振为6MHZ时,即便给电路加上0.047UF的电容负载,电路仍能正常工作,可靠性很高。

单片机

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分