又称发光二极管LED。说到LED,初学者最容易理解!
本小节目录
1,识别LED极性和图标
2,LED原理图分析
3,LED流水灯的程序分析
4,DIY酷酷的爱型LED焊接、调试和编程灯!
一)识别LED极性及图标
识别LED正负极是每个学习电子的基本常识,但也是很多初学者经常问的问题,包括我一开始不懂!
图1-1
1.观察法(如图1-1所示)
直插式LED:看引脚长度来判断发光二极管的正负极,引脚长为正极,短为负极。
如果引脚被破坏,看看灯珠中的较小部位(建议初学者仔细观察实物)
贴片LED:俯视,一边是负极,另一边是正极。
2.万用表测量法
万用表检测发光二极管时,必须使用R×10k”档。
LED一般管道压降为2V,万用表R×1k及以下电阻档时,表内电池仅为1.5V,低于管压降。无论正反向接入,发光二极管都无法导通,也无法检测到。R×10k档时表内接9V(或15V)高压电池高于管压降,可用于检测发光二极管。
检测时,将两表笔分别与LED两脚相连,如表针偏转一半以上,同时LED有一个亮点,表示LED是正向接入,与黑色表笔(与表内电池正极相连)相连的是正极;与红色表笔相连的是负极。然后将两个表笔对齐,然后与发光二极管连接。此时是反向接入,表针不应移动。
如果正向接入和反向接入,表针偏转到头部或不动,则应LED已损坏。
3.LED图标
图1-2
谨记:阳极(A)为三角形边缘,指向角加一个垂直的是阴极(K),也有从粗面流向细面的电流!
二)LED原理图分析
图2—2 开发板LED原理图
若让LED如果能正常发光,就必须发光LED内部通过一定的电流和电压差(2-3.9V左右)才可。通常LED工作电流为3~20mA左右两端不能直接连接电源和GND点亮时,需要添加限流电阻,如何计算这个电阻?
通常LED的压降是1.72~1.98V左右,为使LED亮度合适,寿命长,工作电流一般为:3mA,根据欧姆定律,限流电阻:R=3.15V/3mA=1.05KΩ,因而需用1K限流电阻。
初学者需要理解原理图:
1)原理图上同一物理标志的引脚相互连接,如图2-2所示,数字28右侧LED8与RP4左边的LED8在开发板上连接在一起。
2)图2-2中D1-D8的LED正极连接电源(VCC),单片机分别连接负极P2^0--P2^七口,为什么不呢?D1-D8正极连片机P两口,负极连地(GDN)呢???那是因为单片机一上电,P2口默认就为高电平,即直接使八个LED它完全亮了,根本不需要程序来控制。学习单片机不是失去了意义吗?
三)LED流水灯程序分析(傻瓜式)
#include///51单片机头文件
#defineUchar8unsignedchar//宏定义(即使用Uchar8替换unsignedchar,编写后面的程序很方便
#defineUint16unsignedint
sbitLED1=P2^0; //声明单片机P二口第一,用LED1.简化程序很容易
sbitLED2=P2^1;
sbitLED3=P2^2;
sbitLED4=P2^3;
sbitLED5=P2^4;
sbitLED6=P2^5;
sbitLED7=P2^6;
sbitLED8=P2^7;
/*******************************************************/
//函数功能: 延迟毫秒函数
///入口参数: 延时毫秒数(xms)
///出口参数: 无
/*******************************************************/
voidDelayms(Uint16xms)
{
Uint16i,j;
for(i=xms;i>0;i--)
for(j=121;j>0;j--);//这里的初学者会问:为什么是121?也可以写110~122等等
}///不要先研究,知道这是约延迟1ms函数就够了
voidmain(void)
{
for(;)//死循环
{
LED1=0./点亮图2-2D1灯亮
Delayms(100);//延迟100毫秒,即让D1亮100毫秒
LED1=1;//灭掉D1灯
LED2=0;//灭D1灯后,立即点亮D2灯
Delayms(100);/让D2灯亮100毫秒
LED2=1;//然后灭掉D2灯
LED3=接着,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,D,,,,,,,,,直到最后,D8.亮灭,程序就是这样循环执行的 Delayms(100);
LED3=1;
LED4=0;
Delayms(100);
LED4=1;
LED5=0;
Delayms(100);
LED5=1;
LED6=0;
Delayms(100);
LED6=1;
LED7=0;
Delayms(100);
LED7=1;
LED8=0;
Delayms(100);
LED8=1;
}
}
傻瓜程序太多,太麻烦了,那就看下面简化版吧
#include
#include
#defineUchar8unsignedchar
#defineUint16unsignedint
voidDelayms(Uint16xms)
{
Uint16i,j;
for(i=xms;i>0;i--)
for(j=121;j>0;j--);
}
voidmain(void)
{
Uchar8temp;
temp=0xfe;//让变量temp等于11111110
for(;;)
{
P2=temp;//将11111110赋予P2,即P2最低位P2^0为0,点亮D1灯
temp=_crol_(temp,1);//temp循环左移动1位后再次赋值temp
Delayms(100);
}
}
图3-1循环左移动
说明:KeilC51有自己的函数库,里面有一个函数库_crol_()函数(循环左移),即最高位向最低位移动,循环向右移动_cror_()函数也是如此。
图3-2流水灯示意图(来自麦光电子)
说明:P2=temp(11111110)时,D1亮,接着P2=11111101时,D2亮,如此循环的点亮8个LED灯!写在这里,我想,菜鸟的初学者都明白了吧?
四)DIY酷酷的心型LED灯
DIY当你花几个小时,几天甚至几周的时间,自己动手DIY调试成功后的喜悦和幸福是别人无法理解和理解的!显然,我一开始是受苦的xumb影响毅然走上了一条DIY路,从此我待DIY如初恋,它虐我如后妈呀!
1)心原理图
图4-1“心”型LED灯原理图
说明:心型LED灯共用32盏灯,刚接完MCU的P0,P1,P2,P3共32个端口。
注:全部LED灯正极分别连接电阻约100欧元,并连接VCC,负极可分别连接32个端口。
图4-2“心”型LED焊接布局图
说明:焊接前,先把一切都做好。LED灯布局好后,看效果,然后先焊接单片机最小系统,再焊接LED灯。
图4-3“心”型LED焊接正面布局图
图4-4“心”型LED焊接电阻图
注:我直接用直插电阻焊接在万能板背面,晶体振动和瓷电路焊接在单片机插座中,同时我使用LED灯、黄、兰、绿相互焊接!
图4-5“心”型LED焊接背面完成图
说明:ED灯负极全用焊锡丝连接到单片机端口,建议初焊者用导线连,因为对于初焊者,焊锡丝非常不好连接,而且漂亮!
焊接时注意:焊接完电阻后,千万要布好局后才焊接负极连接MCU端口,毕竟我们要追求完美的“心”呀!再说了,焊接好了,正面为“心”型,背面也是完美的“心”型,才能算真心,才算浪漫呀!
图4-6“心”型LED焊接正面完成图
说明:电源由4个5号电池提供,焊接时,千万别焊反正负极,要不然MCU芯片就被烧了!
焊接完后,是该见证奇迹的时候了,下完程序后,如图4-7,4-8,4-9
图4-7“心”型LED灯效果图
图4-8“心”型LED灯效果图
图4-9“心”型LED灯效果图
最后说明:“心”型LED灯的程序很长(一千多行),本人已经上传附件,也录段小视频,程序配的背景音乐为《克罗地亚狂想曲》,因为网速原因和还不熟悉EDN如何上传视频,如想看,请留下您的邮箱,本人乐意分享于您,并希望您在原程序基础上,再发挥您聪明的智慧,DIY出更有意思的电子设计!
晚安,这个没有星星的夜,却有很多很多星星在我心中一闪一闪着....照亮着我的路,一条人生的路,未来的路.....!信这小小之“火”,也能带着你去寻找一条属于你的MCU之路!
本系列《MCU之心路分享》博文,本人尽自己微薄之力,以菜鸟的身份,写写初学者最详细,最具体的入门博客,本人自当也种是锻炼,仅仅如此简单容易,如有误之处,欢迎拍砖,本人不胜感激!
32个爱心灯程序.rar
(60.35 KB, 下载次数: 91)
2016-11-8 11:41 上传
点击文件名下载附件