专注行业ERP管理软件二十年,成就发展梦想
 
 站内搜索
 
EDC系列软件   EDC系列软件
   
 
 
 
 
 
 
dg
 
解决方案   解决方案
   
 
 
 
 
 
 
dg
 
联系方式
 
电话:0755-29165342
传真:0755-29183559
咨询热线:13544129397
联系人:刘先生
dg
 
关于EDC
 
联系我们
 
解决方案
 
新闻中心
您当前所在位置:首页 > 新闻中心
 
d
 
驱动20个对数/线性点/柱状LED的微控制器

    作者:宏拓新软件
    发布日期:2008-12-02         
阅读:58     
 
 

  自做模拟电路到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)。

电路以20个LED连续显示输入电压

  固件用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输入电压为对数显示。

 

查找表值的对数转换曲线

 

[打印本页]  [关闭窗口] 

 
 
 
深圳市宏拓新软件有限公司   电话:0755-29165342 29165247  传真:0755-29183559   24小时咨询热线:13544129397   联系人:刘先生    网站地图
地址:深圳市龙华区民治街道东边商业大厦6楼  Copyright © 2004 - 2025 EDC Corporation, All Rights Reserved 粤ICP备06070166号
 
手机:13544129397