您的位置: 嵌入式在线 > 解决方案 > 消费电子 > 用8引脚的微控制器控制带多个LED的两位数字显示

用8引脚的微控制器控制带多个LED的两位数字显示

2007-12-24      嵌入式在线      收藏 | 打印

        8引脚微控制器能支持丰富的外设功能。不过,由于芯片电源需要占用两个引脚,所以,最多可用I/O引脚数目常常只有6个。这样以来,采用这些器件设计系统的难度就可能比较大,特别是如果这些系统所包含的显示要求很高时。

       一般地,Charlieplexing方法可使N个I/O引脚控制N*(N1)倍的LED。例如,图1示出了微控制器的5个引脚接了20个LED。在上述Charlieplexed表示中,其中一个引脚被设置为逻辑“1”输出引脚,另一个脚被设置为逻辑“0”输出引脚。其余引脚设置为高阻态输入。

       因此,在任何给定的时间内,只有一个LED导通。在适当的延迟后,通过改变引脚配置,使该LED截止,下一个LED导通。每个LED导通的速率必须大于50Hz,以避免出现看得见的闪烁。所以,对20个LED,总显示刷新率应该至少为1,000Hz。

图1:微控制器的5个引脚接了20个LED。

图1:微控制器的5个引脚接了20个LED。

       我们的应用需要一个最大计数为200的计数器。本来可简单地使用一个相称的复杂微控制器,但是我们最后还是决定尝试采用最廉价而现成的8引脚微控制器,最终选择了AtmelAVRATtiny15。计数器的输入来自一个按扭开关,因此6个I/O引脚中只有5个可用于显示。因为计数器是面向对十六进制熟悉的工程师,所以,我们决定采用两位数字显示,显示范围为00~FF(Hex),即便如此,装好两位数字显示似乎也很难。

        我们采用Charlieplexed显示,按需要的两位数字,7段格式排列LED,以实现设计目的(图2)。我们选择了3mm的高亮度LED,7段显示的每一段都由3个LED组并联而成。

图2:采用Charlieplexed显示,按需要的两位数字,7段格式排列LED。


            图2:采用Charlieplexed显示,按需要的两位数字,7段格式排列LED。

        所有电阻都是100Ω、1/4WCFR。通过LED的峰值电流大约是30mA(5V电源),而系统能在3V~6V电源电压范围任意电压下工作。刷新率设置为1,000Hz,由ATtiny15的1.6MHz内部系统时钟产生。该电路也适合与许多ATtiny器件或者8引脚PIC微控制器结合使用。

        虽然我们的方案是针对一个简单计数器,但系统是可扩展的,可将显示增加到2-1/2位格式。此外,很多8引脚微控制器都内置有一个模-数转换器通道,该通道可与2-1/2位显示一起使用,构成电压表。同样地,利用该技术也能实现具有自动量程修正功能的频率计数器。

        Charlieplexing的不足之处是流过每个LED的电流占空周期低。由于在任意给定的时间内只有一个LED导通,所以占空周期是1/[N*(N1)]。对于20个LED,流过每个LED电流的占空周期将只有5%。随着LED数目的增加,占空周期缩短。因此,要保持流过LED的平均电流一定,峰值电流必须按比例增大。在某些点上,峰值电流将超过LED的额定值,不能再用Charlieplexing。

       另一个需要考虑的是,只能使用那些每个引脚都能配置为输出及高阻输入的微控制器。因此,典型的8051不适合控制CharlieplexedLED显示。


 

 

 
 
 

本文来源:Toubro公司    作者:Toubro公司 AnuragChugh DhananjayV.Gadr

隐藏原文↑


查看原文↓

验证码:  看不清?换一张

 

快乐大本营

    无线时代来临,移动产业生态系统将发生一些根本变化。今日头条推荐“芯片是嵌入式4G技术的关键 产业生态系统将发生变化”。

    想了解嵌入式开发工具的市场情况吗?先来体验下我们的在线调查吧!填写调查问卷

工程师之星
朱礼昆
电子信息工程专业,擅长硬件编程
  • 胡菲菲  技术专长:嵌入式系统linux
  • 柳如峰  技术专长:模电,电源
热门招聘
论坛热贴