原创 【博客大赛】MCU之心路分享-----LED及DIY酷炫的“心”(二)

2013-11-2 01:05 9526 14 29 分类: MCU/ 嵌入式 文集: MCU之心路分享

         冥冥之中,似乎总有点星星之“火”,驱使我在迷茫中去寻找着。仿佛,必须找到,生命才可以开始,才开始感觉我活着,追求着.....LED,就是当初引导我入门MCU之路的那小小之“火”。

——————————————————————————————————    

     发光二极管,又称LED。说到LED,那是初学者最容易了解的!

     本小节目录

        1, 识别LED极性和图标

        2,LED原理图分析

        3,LED流水灯的程序分析

        4,DIY酷炫的“爱心”型的LED灯的焊接,调试和程序编写!

一)识别LED极性 及 图标

        识别LED正负极是每个学电子人的基本常识,但也是很多初学者常问的问题,包括本人当初也是没有懂!                                                                                                                                                                           

图片1-1.jpg

                             图 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.jpg

                               图 1-2 

    谨记:阳极(A)为三角形边,指向角加一竖即为阴极(K),也有电流从粗面流向细面的意味!

 

二)LED原理图分析                                    

图片2-2.jpg

                       图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^7口,而为什么不是D1-D8正极连单片机P2口,负极连地(GDN)呢??? 那是因为单片机一上电后,P2口默认就为高电平,即直接使八个LED完全亮了,根本不需要程序去控制,那不是失去学习单片机的意义了么? 

 

三)LED流水灯的程序分析(傻瓜式)

#include             //51单片机的头文件

#define Uchar8 unsigned char   // 宏定义(就是用Uchar8替换unsigned char,方便后 面程序编写          

 #define Uint16 unsigned int                       

sbit LED1= P2^0;    //声明单片机P2口的第一位,用LED1表示,便于简化程序

sbit LED2= P2^1;

sbit LED3 = P2^2;

sbit LED4 = P2^3;

sbit LED5 = P2^4;

sbit LED6 = P2^5;

sbit LED7 = P2^6;

sbit LED8 = P2^7;

/* ***************************************************** */

// 函数功能: 约延时毫秒函数 

// 入口参数: 延时毫秒数(xms)

// 出口参数:  无

/* ***************************************************** */

void Delayms(Uint16 xms)

{

    Uint16 i, j;

   for(i=xms; i>0; i--) 

       for(j=121; j>0; j--);  //这里初学者会问:为什么是121呢?你也可以写110~122等等

}                       // 可先不深究,知道这个是约延时1ms的函数就足以 

void main(void)

{

    for(;;)           // 死循环

{

LED1 = 0;      // 点亮图2-2中D1灯亮

Delayms(100);  // 延时100毫秒,也就是让D1亮100毫秒

LED1 = 1;      // 灭掉 D1 灯

LED2 = 0;      // 灭D1灯后,马上接着点亮D2灯

Delayms(100);  // 让D2灯亮 100毫秒

LED2 = 1;      //  接着灭掉 D2灯

LED3 = 0;     //接着,,,,D3亮,,,,,一直到最后,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 

#define Uchar8 unsigned char

#define Uint16 unsigned int

void Delayms(Uint16 xms)

{

    Uint16 i, j;

for(i=xms; i>0; i--) 

   for(j=121; j>0; j--);  

}          

void main(void)

{

Uchar8  temp;

temp = 0xfe;      //让变量temp 等于1111  1110

for(;;)

{

P2 = temp;   // 将1111 1110 赋予P2,即P2最低位P2^0为0,点亮D1灯

temp = _crol_(temp,1);  // temp 循环左移动1位后再次赋值给temp

Delayms(100);

}

}           

图片3-1.jpg

                                               图 3-1循环左移动    

说明:KeilC51自带的函数库,里面有个_crol_()函数(循环左移),即最高位往最低位循环移动,同理循环右移为_cror_()函数也一样。                

图片3-2.jpg

                                图 3-2 流水灯示意图 (来自麦光电子)    

     说明:P2=temp(1111 1110)时,D1亮,接着P2=1111 1101时,D2亮,如此循环的点亮8个LED灯!写到这里,我想,再菜鸟的初学者都明白了吧?

     

 四)DIY酷炫的“心”型的LED灯    

      DIY的乐趣的无穷的,当你花上几个小时,几天甚至几个星期,亲手DIY并调试成功后的那种喜悦感和幸福感,那是别人无法去体会和了解的啊!显然,本人最初也是受xumb的影响,毅然走上了一条DIY的路,从此我待DIY如初恋,它虐我如后妈呀!

 

1)“心”原理图      

图片4-1.jpg

                   图 4-1 “心”型LED灯原理图 

      说明:“心”型LED灯共用了32个灯,刚好接完MCU的P0,P1,P2,P3共32个端口。

      注意:全部的LED灯正极分别连接100欧左右电阻后,并连VCC,负极分别连接32个端口即可。      

图片4-2.jpg

                     图4-2  “心”型LED 焊接布局图

      说明:焊接前,先将全部的LED灯布局好后,看看效果,然后先焊接单片机最小系统,后焊接LED灯。                   

图片4-3.jpg

                 图4-3 “心”型LED 焊接正面布局图      

图片4-4.jpg

                    图4-4 “心”型LED 焊接电阻图

        说明:本人用直插电阻直接在万能板背面焊接,同时晶振和瓷片电路都焊接于单片机插座内,同时本人用的LED灯为红,黄,兰,绿相互焊接!

图片4-5-1.jpg

                  图4-5 “心”型LED 焊接背面完成图

 

       说明:LED灯负极全用焊锡丝连接到单片机端口,建议初焊者用导线连,因为对于初焊者,焊锡丝非常不好连接,而且漂亮!

       焊接时注意:焊接完电阻后,千万要布好局后才焊接负极连接MCU端口,毕竟我们要追求完美的“心”呀!再说了,焊接好了,正面为“心”型,背面也是完美的“心”型,才能算真心,才算浪漫呀! 

图片4-6.jpg

                              图4-6 “心”型LED 焊接正面完成图

     说明:电源由4个5号电池提供,焊接时,千万别焊反正负极,要不然MCU芯片就被烧了!

焊接完后,是该见证奇迹的时候了,下完程序后,如图4-7,4-8,4-9

图片4-7.jpg

                                   图4-7 “心”型LED 灯效果图

图片4-8.jpg

                                         图4-8 “心”型LED 灯效果图

图片4-9.jpg

                                            图4-9 “心”型LED 灯效果图

 

       最后说明:“心”型LED灯的程序很长(一千多行),本人已经上传附件,也录段小视频,程序配的背景音乐为 《克罗地亚狂想曲》,因为网速原因和还不熟悉EDN如何上传视频,如想看,请留下您的邮箱,本人乐意分享于您,并希望您在原程序基础上,再发挥您聪明的智慧,DIY出更有意思的电子设计!

      

       晚安,这个没有星星的夜,却有很多很多星星在我心中一闪一闪着....照亮着我的路,一条人生的路,未来的路.....!信这小小之“火”,也能带着你去寻找一条属于你的MCU之路!

      

                                       

     本系列《MCU之心路分享》博文,本人尽自己微薄之力,以菜鸟的身份,写写初学者最详细,最具体的入门博客,本人自当也种是锻炼,仅仅如此简单容易,如有误之处,欢迎拍砖,本人不胜感激!

(说明:本人所用开发板为:麦光电子单片机开发板)

                                                                                                  

                                                                                                           于2013年10月22日夜

 

PARTNER CONTENT

文章评论15条评论)

登录后参与讨论

用户377235 2014-5-11 21:54

用下状态机试试看吧

用户425366 2013-11-25 21:18

不错不错,学习了!

用户377235 2013-11-4 17:58

chengyu1184789@163.com

用户440114 2013-11-4 15:56

楼主加油,当年我们也是这样过来的,道路漫长,惟努力为之。

用户422083 2013-11-4 12:36

不错啊!程序很好很有用

329547875_961645378 2013-11-2 21:57

10.只有比别人更早、更勤奋地努力,才能尝到成功的滋味。

用户377235 2013-11-1 15:13

视频,654876264@qq.com

用户1634962 2013-10-30 09:59

视频请传我一份~ tirschen@yeah.net 多谢多谢~

644398774_263592779 2013-10-30 00:47

程序已上传附件中了!文章下面下载!

644398774_263592779 2013-10-30 00:46

谢谢关注,呵呵,,
相关推荐阅读
流年一束光 2014-05-20 13:32
有时候,我也不知道我是否还能坚持下去
       退学?真的要退学么? 这个问题伴随着我整个大学,从第一天开始就一直到现在!       一面是对未来,或许说是梦想的追求,渐渐清晰地看见,并学会接受现实,走在自己选择未来的电子路...
流年一束光 2014-04-07 00:55
【博客大赛】MCU之心路分享-----前言
        如果你想要得到从未有过的东西,那就去做你从未做过的事情!!!                                                          ...
流年一束光 2014-04-07 00:46
【博客大赛】MCU之心路分享--倾听你的改变--AD/DA转换(十一)
         用勇气来改变可以改变的事情,用胸怀来接受不可改变的事情,用智慧来分辨两者的不同                                                  ...
流年一束光 2014-04-05 17:28
【博客大赛】MCU之心路分享—有种爱叫:IIC(十)
         在工科男的世界里,连IIC都能想象成浪漫的牵手,而一个对单片机充满热爱的工科男,有什么理由不去认识它,学会它,并去驾驭它啊!当然,在我知道的世界里,貌似大学老师从来都没有真正教过...
流年一束光 2014-03-20 00:34
【博客大赛】MCU之心路分享—你小小的心令我感动(九)
          如果说,学过单片机,却连单片机最小系统都没有焊接过或者搭建过!甚至连电烙铁都没有摸过,那是个多么巨大的笑话呀?          但现实不幸的是,这样的笑话,一直重演在许多...
流年一束光 2014-03-10 20:29
【博客大赛】MCU之心路分享—偷偷爱你--12864液晶(八)
       时隔3个月没有更新《MCU之心路分享》了,不知道我是否有幸,让胖螃蟹小编对我拍拍砖呢?嘿嘿…….这3个月,一直都没有离开过EDN,一直都潜伏着,这3个月中,见证,陪伴,小小地参与...
EE直播间
更多
我要评论
15
14
关闭 站长推荐上一条 /1 下一条