EDN China > 其它文章 > 嵌入式系统 > 开发工具 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

驱动12个LED的3端口微控制器

Nedjeljko Lekic和Zoran Mijanovic?? University of Montenegro?? Department of Electrical Engineering?? Podgorica?? Montenegro?? 2007年04月09日 ?? 收藏0

  图 1 中的电路基于以前出版的设计实例(参考文献1),仅用3条I/O线路来驱动12个LED。在本应用中,电路充当电动车引擎的转速计,并在一组排列成直线或圆弧形LED上显示引擎相对速度。三对反向并联LED(D2和D3、D4和D5、D6和D7)通过限流电阻器R5、R6、R7从IC1的端口获得驱动电流。每组三个的两组LED(D8、D9、D10以及D11、D12、D13)在IC1的端口和两个分压器之间(供应参考电压VREF1和VREF2)连接。如果改变电阻器R5、R6、R7的值,就能调节中间6个LED的亮度,而R1、R2、R4则控制其它6个LED 的亮度。一般而言,该电路能用主机微处理器的N 条I/O线路来驱动多达N(N-1)+2N个LED,或比最初的设计实例中的电路能驱动的LED多2N个。

图1


  该电路使用了Microchip公司的PIC10F200微控制器,即IC1,这是一种小尺寸廉价的6引脚器件,只提供3根I/O引脚和1根单纯输入引脚。I/O引脚GP0、GP1、GP2驱动由 12 个 LED 组成的条形图,包括多路复用模式驱动的4个黄色LED、4 个绿色LED、4个红色LED( 图2)。


  微处理器的单纯输入引脚GP3用于输入来自点火线圈初级端子的脉冲。电阻器R3和二极管D1提供输入信号调节,而软件反跳例程则消除来自脉冲的振铃效应。由于R3的额定值高达390 kΩ,因此该电路能承受高压输入尖峰,并防止PIC10F200闭锁。端口GP3充当处理器的编程端口,之所以不同于处理器的其它端口,是因为它包含内部保护二极管。这只20mA二极管防止GP3受到负向瞬间电压的损害。该电路工作可靠,但可以添加外部保护二极管来加强针对瞬态引发闭锁的保护。把二极管的阳极接地,阴极连到IC1的GP3引脚。

图2


  可以配置条形图按接通的LED数量(条状)来表示引擎速度,或只照亮一两只LED(点状)来表示。图2中的颜色方案用黄色LED来表示速度太低、绿色LED表示标称速度、红色LED表示速度过快。图3为表示指示软件的流程图。处理器的内部时钟驱动Timer0每512ms溢出一次,这表示一个时隙,即一个多路传送阶段。在8个时隙当中,其中1个驱动3只上方的LED,第二个则驱动3只下方的LED。为了简化软件,最后6个时隙逐个驱动中间的LED。在主循环开始时,微处理器计算时钟脉冲数量,并等待Timer0溢出。发生溢出后,输出端口按照分配的时隙驱动LED。在经过8个时隙后,处理器把端口设定到相同状态。在200个时隙后,处理器计算进入测速仪脉冲数量,并按照进入脉冲数量(即按照输入频率)设置LED图案。

图3为表示指示软件的流程图


  转速计可表示高达120 转/秒的转速。伴随的软件列表包含C语言文件 (led12.c.pdf) 和汇编语言文件 (led12.asm.pdf)。ZIP源文件包含完整的 MPLab 项。图4显示了波形,是由数字示波器在GP0、GP1、GP2 端口捕获的。

图4显示了波形,是由数字示波器在GP0、GP1、GP2 端口捕获的


参考文献
1.Benabadji, Noureddine, "PIC microprocessor drives 20-LED dot- or bar-graph display," EDN, Sept 1, 2006, pg 71,
www.edn.com/article/CA6363904.


?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

LED? 微控制器?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈