- LED灯的介绍
1.1.什么是LED灯?
中文名:发光二极管。
英文名:Light Emitting Diode。
简称:LED。
应用:LED显示屏、交通信号灯、广告灯、液晶屏背光源等。
特点:节能是LED灯最突出的特点、环保、跟其它的灯光源相比之下,LED灯会更加"干净"(干净不是指的是表面,而是这个LED灯它其实是属于一种冷光源)、响应速度快等

这是一个二极管示意图,左边是正极,右边是负极
在LED中这个二级管只有正极接入正极,负极接入负极才是可以通电的

51开发板用的是普通的贴片发光的二极管,这种二极管通常是正向导通电压1.8~2.2V。
工作电流一般在1~20mA。其中,当电流在1~5mA变化的时候,随着通过LED的电流越大,人们的肉眼会明显的感觉到这个灯越来越亮,而当电流处于5~20mA变化时候,看到的发光二极管的亮度变化就不太明显了。当电流超过20mA时候,LED灯就会有烧坏的危险了。
电流越大,烧坏的速度也就会变快。所以,在使用过程当中应该要特别区注意它的电流参数上面的设计要求,这很重要。🙏
1.2LED原理图

1.这里的VCC就是电源的正极,左边红色的字其实就是一个网络的一个标号也被称之为网络编号,这里的引脚低电平这个LED灯才是亮的。
2.那我们可以看下正极出来之后,通过一个电阻(这个电阻其实是④个一体的),那么这上面说电阻是1kΩ的是怎么样看出来的,其实就是我们仔细看单片机开发板上的RP9和RP10上面都有个数字是102。那么其实原理图上写的102就是1000Ω,前面两位数是一个有效数字10,第三位数字就是倍率00。其实102拆开来 = 10*10^2,那么473呢?也是一样473 = 47*10^3 = 47 000 = 47k,1001 = 1000 = 1k。这就是电阻的一个读数的方式包括电容啊以及其它的一些元器件其实一个这样的一个方式来的。
3.那我们继续看到这个图纸经过这个电阻,这个电阻在这里的作用是起到一个限流的作用,从而这个电阻也被称作是:限流电阻。就比如说假设VCC = 5V,LED 直接 5V 的话,由于电流过大会把这个LED灯给烧毁。所以在这里的串联电阻就很好的起到了一个限流的作用。而到达LED已经接入到正极了,那么LED负极在接入的话。此时LED灯就将会点亮了,高低电平的一个应用。高电平就是5V,低电平就是0V,单片机把这种电平叫做TTL电平。P2口决定了你的高低电平,也就是CPU通过配置这些控制的寄存器来控制我们的硬件电路来执行我们想要去完成的一个功能!

2.进制转换
那么如果我们要让第一个LED灯点亮,其余的全是灭的话该怎么办。很简单给第一个LED灯低电平0,其余的LED都给上一个高电平1。这样你的LED灯就可以实现点亮第一个了。
P2 = 1111 1110 这种写法是❌(因为它会默认你是十进制) , P2 = 0xFE 这样才是✔。
所以这里就会遇到一个问题进制的转换,只是需要把二进制转换成十六进制就可以了 。

3.点亮一个LED灯
3.1写代码之前一个怎么做?
1.创建项目


并且新建一个文件夹还有文件名要写好尽量放在桌面上


如果后面出现一个要点击否
2.创建一个新的源文件


3.编写代码
#include <REGX52.H>//这个是五一单片机操作的头文件,如果没有这个头文件的话,就不能对
//P2口进行操作
void main()//int main(void)
{
P2=0xFE;//11111110说明只是点亮第一个灯,其他都是不亮的
while(1);//一个死循环,让它一直亮着
}//如果想要其他的灯亮着,只需要改变0x后面用十六进制表现的值就可以了
4.下载程序


最后就可以点亮了

4.LED灯的闪烁
介绍:点亮LED小灯的程序就是让LED = 0(低电平)。熄灭小灯的程序也是非常容易的,就是LED = 1(高电平)。这样点亮和熄灭都会了,那么如果在亮和灭之间加个延迟呢,反复不停的点亮和熄灭小灯,那么就可以实现这个LED灯闪烁了。
1.LED灯为什么是低电平亮:LED具有单向导电性,当 LED 的正端接了高电位,负端连接了低电位,且正负端电位差超过1.8V以上时,LED就会亮起来。
2为什么LED灯闪烁要加延迟:因为在单片机当中每次都是以MHZ(也就是运行上百万次),所以它们就会执行的特别快。那么就会闪烁的特别快,以我们人类的肉眼是根本看不出来的,所以需要延迟函数。
3怎么样才能反复不停的亮和灭:这个很容易加上while循环,循环的表达式的值为真"1"
4延迟函数的程序:点击软件生成延时器(在STC-ISP中)它可以生成代码来帮助我们,延时函数当中的系统频率也就是晶振要注意一下,我的是12MHZ的。还有8051的指令集也要改一下:SCY-Y1。这个时候我们只需要复制代码、生成代码、即可生成函数。然后在主函数前面右键点击Paste(ctrl+v)粘贴就可以了。


4.1对于这个延迟函数代码的优化:
优化程度:使得优化的时间不需要每次都去stp上面调整参数复制代码,只需要对这个延迟函数进行一些 操作就可以实现这个目的。

5.流水灯的实现

