用双色LED指示10种状态的电路

用双色LED指示10种状态的电路,第1张

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

用双色LED指示10种状态的电路,第2张
图1 只需用一只双色LED和一个按键开关,就可以设定并指示一个微控制器的状态

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

用双色LED指示10种状态的电路,第3张

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

表1 10中状态的颜色与闪烁模式
用双色LED指示10种状态的电路,第4张

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

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

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2468920.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-04
下一篇 2022-08-04

发表评论

登录后才能评论

评论列表(0条)

保存