单片机交流
直播中

李志静

7年用户 1406经验值
私信 关注
[问答]

请问下如何去实现一种点亮LED的设计?

点亮LED的原理是什么?
该如何去实现一种点亮LED的设计?其实现代码如何去编写?

回帖(1)

陈龙

2021-7-6 11:56:31
  前排提示(。本文以及后面的51单片机学习资料整理均是使用STC89C516芯片,后面附有原理图。)
  由于我使用的开发板并没有独立的LED模块,我便用点亮静态数码管(共阳)来代替点亮LED,原理是一样的,静态数码管其实就是多个LED构成的,废话不多说,下面开始讲解点亮LED的原理还有实现的代码。
  下面一段是废话,时间紧迫者可以跳过:
  发光二极管叫LED,外文名 Light Emitting Diode,直译的话就是光 发射 二极管,我们从中学就知道二极管具有单向导通性,所以我们很自然的想到发光二极管也有单向导通性,LED的点亮也具有单向导通性,发射就是从一端发射到另一端嘛,所以在点亮LED要注意LED的电流方向,这里的LED加上一个电阻主要起到一个限流的作用。
  原理:
  电流从VCC(正极)流过LED,经过电阻,到达负极,导通LED,点亮LED。
  将原理转换成代码:
  (每一个开发板的原理图都有些许不同,但原理一样,是高电平,还是低电平,请参照你的原理图。)
  电流从VCC流入,VCC是正极,所以需要一个高电平,让引脚输出1.
  输出高电平(引脚为1)后,程序只是运行一次,为了解决这个问题,必须要让程序不断地运行来保证LED灯的持续点亮。
  使用一个语句,使得单片机不断输出高电平,一直导通LED,点亮LED,我这里采用的是循环语句。
  LED原理图:
  
  下面展示一些 内联代码片。
  // APDX‘s blog #include “reg52.h” void main() { P0=0XFF;//拉高电平,没有电流通过。 P0=0X00;//拉低电平,导通发光二极管 while(1);//循环一直点亮LED. } 这是我的原理图,右上角是静态数码管(共阳,共阳就是所有的正极接在一起)。
  
  看完了的话,如果你感兴趣的话,并且有时间的话,可以尝试一下实现LED闪烁;虽然很简单,养成剖解问题的习惯的话对后面的学习很有帮助。
  闪烁原理:
  1.导通LED(转换成代码)
  2.关闭LED(转换成代码)
  3.如此循环(转换成代码)
  4.结果: 实现闪烁。
  .
举报

更多回帖

发帖
×
20
完善资料,
赚取积分