您现在的位置:机电论文网>> 电子技术>> 正文内容

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

作者: 来源: 发布时间:2011/3/1 12:29:44  点击数:1665

  图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个。

  该电路使用了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引脚。

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

  转速计可表示高达120 转/秒的转速。伴随的软件列表包含C语言文件 (led12.c.pdf) 和汇编语言文件 (led12.asm.pdf)。ZIP源文件包含完整的 MPLab 项。图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.


更多
字体:【】-【】-【】【关闭此页

上一篇:目标跟踪算法在红外热成像跟踪技术上的'   下一篇:低功耗MCU系统软硬件设计考虑'


特别声明:机电之家(http://www.jdzj.com )所共享的机电类资料,机电论文、机电类文章、机电企业类管理制度、机电类软件都来自网上收集,其版权归作者本人所有,如果有任何侵犯您权益的地方,请联系我们,我们将马上进行处理。购买的论文都出自原创,保证作者的原创的版权的转让,任何纠纷由法律解决。