I/O输出——实例1:LED点亮-入门版

I/O输出—— 实例1:LED点亮-入门版


一、实例目的
      通过本实例,我们应:
      1. 了解发光二极管(LED)驱动电路的原理;
      2. 掌握单片机I/O控制LED的程序设计;
      3. 掌握C51程序的结构;
      4. 会编写软件延时函数。 
      提示:本实例属于入门级,初学者应该熟练掌握,即在学完本课程后,不看资料就能画出电路图和编写出程序并验证。

二、LED驱动原理
      点亮LED通常是单片机初学者的第一个程序,如同学习C语言的第一个程序永远是打印“Hello World”一样,亘古不变。
      要点亮一个LED,需要用到单片机的IO输出口,输出一个高电平(数字1)或低电平(数字0),至于是高电平还是低电平,这取决于LED驱动电路。LED驱动电路通常有两种,如图1所示。图中,R为限流电阻。
     
图1 LED驱动电路

  • 方式1: LED的负极接MCU的输出I/O,正极通过一个限流电阻接到电源VCC。LED驱动电流Id由电源VCC提供,流向MCU内部,称为灌电流。 控制I/O输出低电平时,LED正向导通,LED点亮;控制I/O输出高电平时,LED反向截止,LED熄灭。方式1对MCU的I/O电流驱动能力要求低。
  • 方式2: LED的正极接MCU的输出/O,负极通过一个限流电阻接到地GND。LED驱动电流由MCU提供。 控制I/O输出高电平时,LED正向导通,LED点亮;控制I/O输出低电平时,LED截止,LED熄灭。方式2要求MCU的I/O具有mA级的电流输出能力。 
 
       发光LED的正向导通电压一般在2.0V上下,不同材质和颜色的导通电压不同。LED的工作电流一般为mA级别(10~20mA),电流越大LED越亮。限流电阻R计算公式如下:
       R = (VCC-Ud)/Id
       取Ud=2.0V, VCC=5V, Id=10mA,代入公式得:R=300Ω。通常限流电阻为几百欧,过大则可能达不到导通电压,无法点亮LED,过小LED工作电流大,可能烧掉LED,或影响寿命。
       注意,51单片机的I/O驱动能力只有几百uA,采用方式2是无法直接点亮一个LED的。因此只能采取方式1来驱动LED。
三、LED驱动电路设计
     假设通过8051单片机P1口驱动8只LED,P2.1管脚驱动一只LED。电路图如图2所示。
   
图2 LED驱动电路实例

参考“ Keil基本操作",使用Proteus ISIS画出以上电路图。
    四、LED驱动程序设计
(一)编程实现D1~D4和D9点亮,D5~D8熄灭。
  根据图2所示的电路,可知LED控制管脚输出低电平时,LED点亮;输出高电平时,LED熄灭。根据LED与I/O的连接关系,得到表1。
表1  LED与单片机I/O连接及驱动电平
LED
D9
D8
  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值