**led 介绍**
LED是“Light Emitting Diode”的缩写,即发光二极管。它是一种半导体器件,能够将电能转化为可见光。LED灯通常由LED芯片、封装材料、铝基板和灯罩等部件组成。
**LED灯具有以下特点:**
- 节能:LED灯具有较高的光电转换效率,能够将大部分电能转化为光能,相比传统白炽灯泡 和荧 光灯具有更低的能耗。
- 寿命长:LED灯寿命长,可达数万小时,远远超过传统灯泡,减少了更换灯泡的频率。
- 节省空间:LED灯小巧轻便,可以设计成各种形状和尺寸,适用于各种应用场景。
- 环保:LED灯不含汞等有害物质,不会产生紫外线和红外线辐射,使用时也不会产生频闪等有害物质。
LED灯广泛应用于室内照明、户外照明、汽车灯具、电子显示屏、指示灯等领域。在电子设计和嵌入式系统中,LED也常用作电路指示灯、状态指示灯、信号灯等。在嵌入式系统中,LED灯通常通过微控制器的GPIO(通用输入/输出)引脚来驱动,通过控制GPIO引脚的电平状态来控制LED的亮灭。这样可以实现LED的闪烁、呼吸灯效果等。 LED的使用非常灵活,能够通过软件编程实现各种照明效果和指示功能。
单片机的工作原理:cpu通过配置寄存器控制我们的硬件电路实现我们的功能
二进制转换为16进制:进制转换关系对应表
点亮51单片机的第一个led灯和让单片机的led灯实现亮灭亮灭的效果(采用16进制的方式实现)
eg1:实现单个LED灯的亮和灭
#include <REGX52.H>
// P1 是第一个led晶体管1111 1110 倒数转换为16进制
void main(){
P1 = 0xFE; // 点亮第一个单片机的led灯
P1 = 0x55; // 单片机的亮灭效果
while(1){// 添加while循环让单片机停止或者开始
}
}
eg2:实现单个LED灯的闪烁效果
#include <REGX52.H>
#include <INTRINS.H>
void Delay500ms() //@11.0592MHz
{
unsigned char i, j, k;
_nop_();
i = 4;
j = 129;
k = 119;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void main(){
while(1){// 循环实现led灯的亮灭情况
P1 = 0xFE;
Delay500ms();// 函数的调用
P1 = 0xFF;
Delay500ms();
}
}
eg3:实现单片机的流水灯显示
#include <REGX52.H>
#include <INTRINS.H>
void Delay500ms() //@11.0592MHz
{
unsigned char i, j, k;
_nop_();
i = 4;
j = 129;
k = 119;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void main(){
while(1){// 循环实现led灯的亮灭情况
P1 = 0xFE; // 1111 1110
Delay500ms();
P1 = 0xFD; // 1111 1101
Delay500ms();
P1 = 0xFB; // 1111 1011
Delay500ms();
P1 = 0xF7; // 1111 0111
Delay500ms();
P1 = 0xEF; // 1110 1111
Delay500ms();
P1 = 0xDF; // 1101 1111
Delay500ms();
P1 = 0xBE; // 1011 1111
Delay500ms();
P1 = 0x7F; // 0111 1111
Delay500ms();
}
}
eg4:使用延时函数实现200毫秒的流水灯轮动
#include <REGX52.H>
#include <INTRINS.H>
void Delay500ms(unsigned int xms) //@11.0592MHz 单片机的系统中int 表示的是16位的,在计算机中是32位或者是64位的
{
unsigned char i, j;
while(xms){
i = 2;
j = 239;
do{
while(--j);
}while(--i);
xms--;
}
}
void main(){
while(1){
// 循环实现led灯的亮灭情况
P1 = 0xFE; // 1111 1110
Delay500ms(200); // 自定义200毫秒
P1 = 0xFD; // 1111 1101
Delay500ms(200);
P1 = 0xFB; // 1111 1011
Delay500ms(200);
P1 = 0xF7; // 1111 0111
Delay500ms(200);
P1 = 0xEF; // 1110 1111
Delay500ms(200);
P1 = 0xDF; // 1101 1111
Delay500ms(200);
P1 = 0xBE; // 1011 1111
Delay500ms(200);
P1 = 0x7F; // 0111 1111
Delay500ms(200);
}
}