点亮一个LED灯

单片机端口对LED灯的控制方法

在这里插入图片描述
1、拉电流:图中第(1)个连接方式中,单片机输出高电平时,电流方向由单片机输出到外部,称为拉电流,电流由单片机提供,我理解为“外部元件从单片机取电”。
2、灌电流:图中第(2)个连接方式中,单片机输出低电平时,电流方向由外部进入单片机,称为灌电流,电流由外部电源提供。

默认的 51单片机所有初始化电平信号 都是高电平的

为什么必须使用低电平点亮LED灯?

  • P0口作通用I/O用,由于漏极开路,需外接上拉电阻。而P1~P3口内部有30kΩ左右上拉电阻。
  • 与P1、P2、P3口相比,P0口每位可驱动8个LSTTL输入,而P1~P3口每一位驱动能力,只有P0口一半。
  • 当P0口某位为高电平时,可提供400µA的拉电流;当P0口某位为低电平(0.45V)时,可提供3.2mA的灌电流,而P1~P3口内有30kΩ左右上拉电阻,如高电平输出,则从P1、P2和P3口输出的拉电流Id仅几百µA,驱动能力较弱,亮度较差,见图(a)。
  • 如端口引脚为低电平,能使灌电流Id从单片机外部流入内部,则将大大增加流过的灌电流值,见图(b)。
  • 任一端口要想获得较大的驱动能力,要用低电平输出。如一定要高电平驱动,可在单片机与发光二极管间加驱动电路,如74LS04、74LS244等。

程序和仿真

在这里插入图片描述

#include ”reg52.h“    //引用51头文件   

sbit LED =  P2^0 ;    //位定义         
void main()           //主函数  
{                                            
     while(1)                                 
      {
     		LED = 0;//点亮P2.0上的LED                              
      }                   
}

目前主流的单片机的电源一般是5V和3.3V。
一般的LED正向导通电压是1.8 ~ 2.2V,工作电流一般在1~ 20mA之间,当电流超过20mA时,LED就可能烧坏了。电流越大,烧坏的可能越大。所以常加一电阻,限制整条通路的电流大小。用I=U/R计算。

发布了240 篇原创文章 · 获赞 85 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/imxlw00/article/details/103321902