2020年 03月 04日 星期三
您的位置: 威廉希尔主页 > 单片机技术 >

如何用单片机点亮LED

来源:未知     作者:威廉希尔     发布时间:2020-03-04 10:00         

  灯了,这同软件工程的“hello world”一样经典,是很简单,但却有着很多回忆,依然记得学习比如AT89C52要大约8个大洋,电阻电容等等都得自己去买(学校那时没开发实验室),有时为了几颗电阻,几颗灯M5粗的那种1毛钱1颗,然后兴高采烈的各种焊接,各种跳线,还各种回想起来都说泪啊!

  LED中文名称叫发光二极管,它会发出可见光,常见及常用的有可发红、黄、绿色光的LED灯,在产品中,红色常用来系统错误,绿色常用来系统正常,常用来,根据应用需求的不同,LED灯也各有千秋,如图。

  图中有方形,圆形,贴片等LED,颜色也不一样,一般地,发光颜色与灯的外形颜色相同,使用的时候,必须注意几点:

  1、计算:参考LED的参数,本例使用M3大的圆形红色LED来演示,它的工作电流取3mA就足够亮,LED的亮度与电流有关;工作电压取2V(实测得的数据), 那么,怎样满足该条件? 电源用5V供电,而LED只需要2V,还剩3V,怎么办?这时,该电阻出场了,电阻是一种能“吃电能”的家伙,剩余的3V电压就加在它,这样就清楚了, Vled = 2V Vr = 3V ,I = 3mA , 电阻和LED灯应该,不解释,这里还差一个参数电阻值,这时,欧姆定律出场, R = U / I = 3V / 3mA = 1K 。

  上图中是给LED灯直接加电压,使之点亮,这种控制方式是靠控制开关的通断使之亮灭,同家庭里的灯是一样一样的,单片机的出现了电子设备智能时代,换一种方式,用单片机去控制LED灯的亮灭,而单片机靠执行程序去输出想要的结果,真真正正地把人的思想实现出来。

  单片机是数字电,输出/输入只有高电平1和低电平0之分,通常0~0.4V的电压范围定义为低电平,大于2V定义为高电平,如图是单片机控制LED灯的电图。

  将LED灯的负极连接到单片机P1.0口,正极串口电阻R1到+5V,这样原理相同的,单片机输出低电平0,使得LED和电阻通的两端产生电势差,相当于图中的“5V电源”,从而满足LED灯的参数,点亮LED灯;而当单片机P1.0口输出高电平时,电势差约为0,不满足LED灯亮的要求,此时LED灯熄灭,要达到这样的效果,必须将“想法”装给单片机,这时程序闪亮登场。

  可是,这样好吗?嗯,实验到这步,流程基本走通了,然而这样的程序并没多大意义,当我们需要点亮多颗灯时,需要 LED1 = 。.. sbit LED2 = 。.. 然后再赋值,也许你会说:“简单,同时端口赋值嘛, 如 P1 = 0x6D 完事儿” ,但是,这几颗灯要是都不在一个端口呢?这时还是得一个个端口去定义,去赋值?这样好吗?可能不好,下面的程序案例,将点亮LED灯封装在一个函数里,这个函数仅实现点亮LED灯的逻辑功能,使用时根据硬件连接设置函数参数即可,希望起到抛砖引玉的效果。

      威廉希尔