图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.
关键字:驱动 LED 微控制器
引用地址:
驱动12个LED的3端口微控制器
推荐阅读最新更新时间:2024-03-16 13:40
u-boot-2009.08在mini2440上的移植(四)---增加DM9000驱动和命令自动补全功能
移植环境 1,主机环境:VMare下CentOS 5.5 ,1G内存。 2,集成开发环境:Elipse IDE 3,编译编译环境:arm-linux-gcc v4.4.3,arm-none-eabi-gcc v4.5.1。 4,开发板:mini2440,2M nor flash,128M nand flash。 5,u-boot版本:u-boot-2009.08 6,参考文章: http://blogold.chinaunix.net/u3/101649/showart.php?id=2105215 http://blog.chinaunix.net/space.php?uid=23787856&do=blog&id=115382
[单片机]
基于PIC单片机设计的高精度酒精检测仪
一 、项目背景及可行性分析 1.项目名称,背景,项目的主要内容及目前的进展情况 项目名称:基于PIC32控制的酒精检测仪及通过RFID记录违规驾驶员身份的系统; 项目背景:动车驾驶人员 酒后驾车 以及 醉酒驾车 极易发生道路交通事故,严重危害了道路交通安全和人民生命财产安全。为了减少或杜绝这种现象,对于交警如何准确检测司机是否酒后驾驶和酒精浓度等已成为一种必然的趋势。故随着科技的发展,精度和准确度越来越高的酒精测量仪相继出现。虽然各种各样的酒精测量仪精确度越来越高,功能也越来越多样化,但未曾出现可以在测量司机酒精浓度的基础上同时输入司机驾驶证号和利用身份证芯片本身所带的信息的方法记录违法司机的个人信息,以便为司法提供确切证据。
[单片机]
单片机实验——4X4矩阵键盘识别技术
用AT89S51 的并行口P1 接4×4 矩阵键盘,以P3.0-P3.3 作输入线,以P3.4-P3.7 作输出线;在数码管上显示数字按键的“0-9”序号,其它按键显示0。 原理分析:4X4矩阵键盘每个按键都有它的行值和列值,当每个按键的行值为低电平,列值为高电平时,按键为未按下状态。判断是否有按钮按下时,先让这一行通低电平,再通过扫描每一列来判断是否被按下(逐列使列值通高电平),如果被按下,那么这一列的电平此时会成为低电平;如果这一列在扫描时为低电平,说明这一列有按键被按下,而行值是每次在判断列值前就确定的,这样就能知道到底是哪一个按键被按下了。 基本流程: 设置第一行为低电平—— 扫描每一列(设置为高电平),判断是否为
[单片机]
DSP/MCU会给未来手机带来怎样的惊喜?
1.DSP/MCU给未来手机带来憧憬 如今,智能手机的普及率越来越高,人们对手机的需求量也越来越大。但对于手机厂商来说,竞争却越来越激烈。制造一款同质化的产品并不难,但想要自己的产品能长久地在市场中存活并不是一件简单的事情。对于理智的消费者来说,价格和硬件配置已经不再是决定他们购买手机的最主要的因素,同等价格能够获得更好的使用体验的产品才是真正能在市场中站住脚的产品。 DSP/MCU会给未来手机带来怎样的惊喜? 在前面的几篇文章中,我们从原理以及实际应用角度和大家聊了智能手机DSP(数字信号处理器)和MCU(微型控制单元)的话题,相信大家对自己手机中的硬件应该有了一个新的认识。 通过DSP和MCU的
[单片机]
LED路灯光衰问题引关注
LED路灯严峻光衰的题目,必要从LED散热技能的根原来办理。下面就随电源管理小编一起来了解一下相关内容吧。 LED路灯光衰问题引关注 现在中国LED路灯发展率高于列国,据统计预测2013年仍将雄踞环球市场第一。客岁中国科技部定案的“十城万盏”半导体照明应用工程试点政策,虽说是透过中间政策创造出市场需求的经济生长范例,但是就厂商现实接案的第一线相应却不如预期。 政策与市场的落差,除了LED尺度尚未全然范例可供厂商遵照外,另一个埋伏的技能题目便是“LED路灯严峻光衰”,导致安置不到一年的LED路灯无法通过利用单元认证验收。前述的LED尺度范例同一订定题目,已有大概在近期内订定定案,至于“LED路灯严峻光衰”就必要从LED散热技
[电源管理]
LED日光灯相关基础知识点详解
LED日光灯 LED日光灯LED日光灯是采用超高亮LED白光作为发光光源,外壳为亚克力/铝合金。外罩可用PC管制作,耐高温达135度。LED日光灯与传统的日光灯在外型尺寸口径上都一样,长度有60cm和120cm、150cm三种,其功率分别为10W、16W和20W,而20W传统日光灯(电感镇流器)实际耗电约为53W,40W传统日光灯(电感镇流器)实际耗电约为68W. LED日光灯T8 定义: 10WLED日光灯亮度要比传统40W日光灯还要亮,16WLED日光灯要比传统64W日光灯还要亮,LED日光灯亮度尤其显得更柔和更使人们容易接授。使用寿命在5万-8万小时供电电压为为AC85V-260V(交流),无需
[电源管理]
用单片机(AVR)比较准确地读出PS2鼠标位移(X,Y轴位移)
之前为了用鼠标对小车的移动坐标进行测量,所以找了很多资料用做```但后来发现网上的资料或者程序基本上都是让鼠标工作在默认模式(Stream模式)而去读鼠标的X,Y轴的位移.后来我经过试验,发现这样很难实现,因为鼠标轻轻一动(状态有任何变化)就立即发送数据,所以,这样的话,单片机的速度是跟不上的,移动速度过快的话误差会非常的大.接着仔细看了关于PS2鼠标的资料就决定让鼠标工作在Remote模式,果然测量的误差大大的减少了(呵呵呵)!!!!!] 工作模式如下 鼠标的工作模式: 1、Reset模式:鼠标上电或受到复位命令(0xFF)时进入次模式。(一般电脑才用吧) 设置缺省的Sample rate:100samples/s;
[单片机]
适合单片机裸机的开源软件框架:Zorb
很多时候,做单片机项目,会因为性能和内存资源的限制,没办法运行一些“大型”的通用框架,这个时候,一些轻量级的软件框架有显得尤为重要了。 这里就给大家分享一款一款适合单片机裸机的开源软件框架:Zorb Zorb简介 Zorb Framework是一个基于面向对象的思想来搭建一个轻量级的嵌入式框架。 搭建Zorb Framework的目的是为在不能运行Linux的芯片上快速开发应用,不用反复造轮子。 Zorb Framework的初步设计功能有: 1、时间系统功能zf_time 2、环形缓冲区功能zf_buffer 3、列表功能zf_list 4、状态机功能zf_fsm 5、事件功能zf_event 6、定时器功能zf_time
[单片机]