由CH452L代替单片机完成译码和数码管的动态扫描
发布时间:2018-11-20 22:15

  。大尺寸数码管虽然不能显示汉字等复杂字符,但数字显示效果好,可视距离远,成本低,符合人的视觉习惯,有着广泛的用途。其结构特性要求驱动电路提供较高的电压和电流,可用动态和静态方式驱动。笔者设计的“广电播控机房大尺寸综合显示器”就是用

  图1是深圳佳美公司JMS40011D4英寸共阳高亮红色数码管各字段的组成。A~G7个段都是由8只发光二极管串、并联而成;DP是小数点,由2只发光二极管串联而成。单个发光二极管的极限和光电参数如表1所列。

  正向电流If(20mA)是长时间静态驱动时的电流最大值,如果超过此值,将导致数码管寿命下降,甚至损坏。峰值电流Ipeak(100mA)是动态驱动时的脉冲电流最大值。JMS40011D的A~G字段的导通电压为7.2~8V,单管脉冲电流一般选50mA,超过50mA后其亮度就不与电流成比例增加了。

  动态扫描驱动利用人眼的特性,分时进行LED数码管驱动,人眼感受的是有效亮度的平均值。其优点是驱动芯片少,电路简单,成本低。

  扩充电压、电流的驱动电路形式很多。图2、图3是“广电播控机房大尺寸综合显示器”显示部分的主要电路,由6只4英寸高亮红色共阳数码管(N1~N6)组成,主控单片机为美国Atmel公司的AVR系列ATmega16。主控单片机通过数码管驱动电路在大尺寸数码管上以一定时长分时显示“时、分、秒”、“年”、“月、日”、“温度”、“湿度”等信息。

  图2电路中,单片机ATmega16完成译码、动态扫描等功能。74LS07是6同相电平转换电路,输出级是集电极开路的晶体管,耐压30V,驱动电流30mA,在ATmega16PA0~PA5口电平控制下驱动Q1~Q6PNP达林顿功率管TIP127,实现6只共阳数码管的字驱动。ULN2803是8位NPN达林顿阵列,耐压50V,驱动电流500mA,这里用于ATmega16PC0~PC7口数码管段驱动的扩充。任一时刻,只有1个数码管得电,数码管的阳极接SA1~SA6,用于驱动电压取样。

  R1~R8是大尺寸数码管A~G字段的限流电阻,电阻值和功率根据以下因素计算:

  本设计中,单个发光二极管的驱动电流为45mA,供电电压12V,限流电阻选用33Ω,0.5W规格。

  本电路占用单片机的I/O口较多,单片机要完成数码管的译码、扫描等任务,负担较重,但对一些小应用来说是不错的选择。

  后续设计中,系统增加了很多功能,单片机负担加重,大尺寸数码管显示时出现闪烁现象。增加专用芯片完成数码管的扫描驱动、按键检测等功能,以减轻单片机的资源占用,简化程序设计,效果很好,如图3所示。

  数码管显示驱动和键盘扫描控制芯片很多,作者选用的是南京沁恒电子有限公司生产的CH452L,其性价比较高。CH452L内置时钟振荡电路,可以动态驱动1英寸以下的8位共阴数码管或者64只LED,具有BCD译码、闪烁、移位、段位寻址、光柱译码等功能;同时还可以进行64键的键盘扫描。CH452L通过可以级联的4线线串行接口与单片机等交换数据。这里使用4线串行接口与ATmega16连接,具有编程简单、稳定可靠的特点。CH452L的第17脚(H3L2)是接口模式选择,接高电平为4线英寸数码管,必须进行扩充,扩充电路就是图1。单片机将显示的数据送给CH452L即可,由CH452L代替单片机完成译码和数码管的动态扫描等任务。

  3英寸以上的数码管,单块价格已超过单片机芯片。由于动态扫描驱动电路的特点,为了达到需要的亮度,每个LED所加的脉冲电流远大于静态驱动时的极限电流值。如果驱动电路有故障,长时间将大电流加在数码管上,将导致数码管烧伤、亮度严重衰减、寿命缩短、甚至损坏,因此要加必要的保护电路,如图4所示。

  在上述驱动扩充电路中,如果段驱动电路ULN2803损坏,只会出现显示混乱现象,对大尺寸数码管不造成伤害;如果字驱动达林顿管TIP127断路,只是相应位的数码管不显示,也无伤害;如果74LS07某位断路,TIP127不会导通,数码管也不会长时间过流。

  如果字驱动达林顿管TIP127短路或者74LS07的某位对地短路,相应位的大尺寸数码管将一直得电,造成数码管长时间过流损伤,因此必须避免这种情况发生。在扫描空隙时,检测数码管的阳极电压,就能发现这种故障。

  如图4所示,在每个大尺寸数码管的阳极进行驱动电压取样,任一时刻只有1个数码管的字驱动被扫描选中,即TIP127导通。取样电压约为数码管的供电电压(这里是12V),未选中的为0V(TIP127截止后的漏电流极小,相当于完全关断)。通过ULN2803进行电平转换,送入单片机的PB口检测。所有大尺寸数码管通过继电器K1的常闭触点供电,K1受控于单片机的PA0口。

  对于图3电路,由于CH452L的第8个数码管字选位DIG7未用,因此用DIG7作为取样触发信号(SSTART)触发ATmega16的中断INT0,在中断程序中加入上述监测和保护代码,即可完成采样和保护功能。

  ①如果不具备图2、图3电路的取样时机条件,可采取随机读取的方式。需要明确,任何时刻只有1个数码管得电工作,多于1个即可认为驱动电路有致命故障发生。

  ②抗干扰:在取样电路并接小容量电容,滤除杂波干扰;软件采取多次采样、表决方式,防止保护电路误动作。

  ④如果单片机I/O口数量不足,可以用74LS165(并行输入转串行输出)等电路进行取样电路扩展。

  ⑤对于由单片机完成扫描的动态驱动电路,要注意防止因程序设计不合理或者死机对大尺寸数码管造成的长时间过流损伤。专用数码管显示驱动和键盘扫描控制芯片多由纯硬件逻辑实现,不会出现死机现象。

  本文提及的大尺寸数码管动态驱动和保护电路,笔者经过产品实际验证过,价格低廉、性能可靠。其他类型的大尺寸数码管驱动、保护电路可参照此思路设计。在此抛砖引玉,希望对大家有所帮助。