点亮第一个LED
1 . LED是什么
LED,发光二极管,是一种半导体固体发光器件。如图:
2 . LED工作原理
LED的符号为: LED的工作是有方向性的,只有当正级接到LED阳极(+),负极接到LED的阴极(-)的时候才能工作,如果反接LED是不能正常工作的。
3 . 看懂原理图
LED的原理图解析
一共有八个led灯D1 - D8,开发板上面LED的原理图如上图,LED的阳极串联一个电阻,然后连接到电源VCC,而LED的阴极连接到单片机的P2口,如果你想点亮一盏LED就对把单片机相对应的IO赋为低电平。
如果来记住阳极,或阴极,发光二极管是这样的 剪头是阴极,就想一根管子一样,阳极流入阴极
如果要LED发光需要VCC为阳极(1) P2端口为阴极(0)才能发光.
为什么需要加电阻:因为需要给LED限流,LED有一个正常的工作电压和电流,如果不加入有可能会将我们的发光二极管给烧毁。
4 . 编写驱动程序
拐脚:就是STC上面的针孔:
在编写过程中如果没有看我前面写的《STC单片机 Keil4安装, 第一个程序》的话建议先去看一下 link:https://liwangjiang.blog.csdn.net/article/details/110355725
控制LED的时候我们需要用到P2拐脚,因为D1到D8对应的是 P2.0-P2.7的一个拐脚,首先我们需要通过sbit 来定义:
sbit 变量名 = 地址值;
#include "reg51.h" //或者是 reg52.h
sbit LedP20 = P2^0; //表示Led P20拐脚的针
void main(){ //主函数
while(1){ //一直运行
LedP20 = 0; //等于0表示点亮
}
}
这个代码是点亮D1的LED灯,表示点亮第一个灯 效果图如下:
二极管反过来接入,解封方案
如果我们的二极管是这样接入的:
我, 在代码里面LedP20 就只能等于1了,因为vcc接入的是阴极,那么拐脚只能等于阳极才能点亮,这是二极管反过来接入的代码:
#include "reg51.h" //或者是 reg52.h
sbit LedP20 = P2^0; //表示Led P20拐脚的针
void main(){ //主函数
while(1){ //一直运行
LedP20 = 1; //等于1表示点亮
}
}