前排提示(.本文以及后面的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.结果: 实现闪烁
.