位置:51电子网 » 技术资料 » 控制技术

驱动20个对数/线性点/柱状LED的微控制器

发布时间:2008/6/2 0:00:00 访问次数:426

  自做模拟电路到lm3914显示驱动为用户提供可编程性。

  美国国家半导体公司的老产品lm3914点/柱状显示驱动器已面市20多年了,但仍被广泛应用。lm3914可以感知模拟电压,并通过点状模式点亮10个led中的一个,或以柱形图模式逐个点亮led的方法,显示电压大小。最近,有个应用需要显示模拟输入电压,要求具有线性或对数刻度格式下10个以上等级的led显示。根据 lm3914的数据手册,可以将多个3914级联,从而获得10个以上led的显示(参考文献1),但即使这么做,lm3914也只能线性显示输入电压。(编辑注:美国国家半导体还提供 lm3915,这是一款对数型3db步长版,而lm3916适于音频应用,以音量单位显示输入。)

  本应用的要求超出lm3914提供的灵活性,使用一个基于atmel avr系列attiny13微控制器电路,其具有1kb程序存储器、一个四通道10位adc,以及6个通用i/o 口。调整电路固件就可以实现0~5v输入电压范围内的线性或对数型转换。

  图1中电路以20个led连续显示输入电压。当开关s1关闭时,将显示冻结在其后电流水平的读数上。微控制器6个i/o口中的5个控制着所有20个led和开关。剩下的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转换输出结果保存在一个共享变量中。

  为产生无闪烁的显示,一个内部定时器由9.6mhz系统时钟产生一个1875hz的中断,以大于90hz的速率驱动多路led。将adc计数值除以一个常数得到输入电压的线性显示。用查找表衡量adc计数产生对数显示。图2表示确定该查找表值的对数转换曲线。用于线性和对数显示的 attiny13控制程序版本都可从本设计实例处下载。可对源代码做修改,而只显示0v~5v输入电压中的某个子区间。例如,可以设定1v~3v为线性显示范围,或2v ~ 3v输入电压为对数显示。



  自做模拟电路到lm3914显示驱动为用户提供可编程性。

  美国国家半导体公司的老产品lm3914点/柱状显示驱动器已面市20多年了,但仍被广泛应用。lm3914可以感知模拟电压,并通过点状模式点亮10个led中的一个,或以柱形图模式逐个点亮led的方法,显示电压大小。最近,有个应用需要显示模拟输入电压,要求具有线性或对数刻度格式下10个以上等级的led显示。根据 lm3914的数据手册,可以将多个3914级联,从而获得10个以上led的显示(参考文献1),但即使这么做,lm3914也只能线性显示输入电压。(编辑注:美国国家半导体还提供 lm3915,这是一款对数型3db步长版,而lm3916适于音频应用,以音量单位显示输入。)

  本应用的要求超出lm3914提供的灵活性,使用一个基于atmel avr系列attiny13微控制器电路,其具有1kb程序存储器、一个四通道10位adc,以及6个通用i/o 口。调整电路固件就可以实现0~5v输入电压范围内的线性或对数型转换。

  图1中电路以20个led连续显示输入电压。当开关s1关闭时,将显示冻结在其后电流水平的读数上。微控制器6个i/o口中的5个控制着所有20个led和开关。剩下的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转换输出结果保存在一个共享变量中。

  为产生无闪烁的显示,一个内部定时器由9.6mhz系统时钟产生一个1875hz的中断,以大于90hz的速率驱动多路led。将adc计数值除以一个常数得到输入电压的线性显示。用查找表衡量adc计数产生对数显示。图2表示确定该查找表值的对数转换曲线。用于线性和对数显示的 attiny13控制程序版本都可从本设计实例处下载。可对源代码做修改,而只显示0v~5v输入电压中的某个子区间。例如,可以设定1v~3v为线性显示范围,或2v ~ 3v输入电压为对数显示。



相关IC型号
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!