首页 » 业界动态 » 可驱动20个LED对数/点状/条状的微控制器

可驱动20个LED对数/点状/条状的微控制器

作者:  时间:2009-02-18 07:06  来源:
美国国家半导体公司的LM3914点状/条状显示驱动器已经面市20多年了,但仍然在设计者中广泛流行。LM3914可以检测模拟电压,并使10个LED显示,方法是以点状模式点亮10个LED中的一个,或以条形图模式逐个点亮LED。最近,一种模拟输入电压显示器的一项应用,要求能够以线性或对数级格式实现10个以上LED的显示。根据 LM3914的数据资料,可以将多支3914级联起来,获得10个以上LED的显示(参考文献1),但即使这么做,LM3914也只能线性地显示输入电压。(编辑注:美国国家半导体还提供 LM3915,这是一款对数型3dB步长版,而LM3916则适合音频应用,以音量单位显示输入。)

图1这个点状条状LED驱动器采用一个低成本微控制器可工作在线性或对数模式


  本文应用要求超出了LM3914提供的灵活性,它使用了一个基于Atmel AVR系列ATTiny13微控制器的电路,有1kB程序内存、一个四通道10位ADC,以及6个通用I/O 脚。调整电路的固件就可以实现0 V ~ 5V输入电压范围内的线性或对数型缩放。

 

  图1中的电路以20个连续显示输入电压。当开关S1关闭时,即将显示冻结在当时的电流水平读数。微控制器6个I/O脚中的5个控制着所有20个LE

D和开关。剩下的I/O脚配置为一个 ADC 输入通道,负责接收模拟输入电压。微控制器采用 Charlieplexing,这是一种用I/O线驱动多达N×(N-1)个LED的方法,这样只用5个I/O脚就可以驱动20个 LED(参考文献2 ~ 4)。

  固件以C语言编写,并用AVR-GCC编译,这是一个以Windows和Linux版提供的免费C编译器和汇编器。它使用运行在中断驱动自由模式的Tiny13内部 10 位 ADC,将模拟输入电压转换为一个数字值。每次转换完成时,ADC 产生一个由子程序读出的中断,中断将 ADC 转换输出保存在一个共享变量中。

图2线性至对数转换曲线定义了显示某只LED所需的输入电压


  为了产生无闪烁的显示,一个内部定时器从一个9.6MHz系统时钟产生一个1875Hz中断,以大于90Hz的速率驱动多路输出的LED。将ADC计数除以一个常数即得到输入电压的一个线性显示。用一个查找表缩放ADC计数就产生一个对数显示。图2表示确定该查找表值的对数转换曲线。用于线性和对数缩放的 ATTiny13控制程序版本都可以从本设计实例处下载。可以对这些源码作修改,而只显示0V ~ 5V输入电压中的某个子区间。例如,可以设定1V ~ 3V的线性显示范围,或2V ~ 3V输入电压的对数缩放。

相关推荐

LED产业整体迎来加速成长期

LED  照明  2014-01-17

普及也有致命缺点 LED背光显示器的秘密揭示

LED  背光显示器  2014-01-08

盘点LED行业那些没能躲过“倒闭潮”的“倒霉儿”

LED  光电  2014-01-07

芯片级拆解:全面剖析新型LED灯泡设计的艺术

LED  芯片  2014-01-07

台韩产品质量佳 陆LED封装面临“出去难”

LED  封装  2013-12-31

市场分析:2014年将出现LED照明换灯潮

LED  照明  2013-12-31
在线研讨会
焦点