侵权投诉
当前位置:

OFweek电子工程网

功率设计

正文

用双色LED指示10种状态

导读: 大多数采用微控制器的设备都会有几种工作状态。通常是用按键开关来控制这些状态。为尽量降低成本,很多设计都使用一只开关;通过按压次数来决定微控制器的状态。本文的电路用一只发光LED来指示所选择的状态。

  大多数采用微控制器的设备都会有几种工作状态。通常是用按键开关来控制这些状态。为尽量降低成本,很多设计都使用一只开关;通过按压次数来决定微控制器的状态。本文的电路用一只发光LED来指示所选择的状态。

 

  

 

  市场上有大量可选用的双色LED,有各种形状和颜色,厂家如Kingbright、Optosupply等。这些LED提供了新的机会,仅用一只LED就能指示10种状态。按压一个连接到微控制器外接中断脚的按键开关,就能设定状态(图1)。每次按下时,中断例程都会将设备设定到下一个状态(图2)。

 

  

 

  State 0是待机模式,LED熄灭。此时设备在等待按下开关。LED颜色指示出以下的三个状态。例如,Kingbright公司的WP5A9EGW12.3SF LED可发出红、绿、橙颜色。加上闪烁就可指示其余的状态。红色与绿色LED可以分别独立地控制,从而获得六种指示组合(表1)。

 

  

 

  微控制器的内部振荡器作为时钟源,简化了电路,因为振荡器不需要外接元件,其5%的公差足够用于此应用。固件为外部中断输入端设定了内置的上拉电阻。

  时钟速度与预定标器值以及时钟计数器模寄存器共同决定了LED闪烁的速率。内部振荡器产生一个12.8 MHz的时钟,获得3.2 MHz的总线频率,每个循环等于0.3125 μs。将预定标器值选为64,则时间计数器模寄存器就可以计算出一个循环为50倍定时器周期(以毫秒为单位)。例如,要获得1s的闪烁速率,应将时间计数器模设为50000,或十六进制的$C350。

  使用列表而不采用程序轮询的方法,可以大大减少固件的大小(参考文献1)。此处可以下载到固件的汇编码。这种方法适用于任何微控制器。甚至可以采用不同的闪烁速率,增加所指示状态的数量。

  参考文献

  1.Raynus, Abel, “Tables ease microcontroller programming,” EDN, April 22, 2010, pg 76.

声明: 本文由入驻OFweek公众平台的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。

我来说两句

(共0条评论,0人参与)

请输入评论

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

文章纠错
x
*文字标题:
*纠错内容:
联系邮箱:
*验 证 码: