单片机中LED发光二极管的编程探讨
扫描二维码
随时随地手机看文章
0 引言
单片机由于体积小、价格低廉、功能强、可靠性高、面向控制和价格低廉等优点,不仅成为工业测控领域使用的智能化控制工具,而且已渗入到人们工作和生活的各个角落。在工科学校中基本都开设有《单片机原理及应用》这门课,而对所有学习单片机的人来说最入门的就是对发光二级管LED的控制。
1 发光二级管的工作原理
发光二极管Light- Emitting Diode 简称为LED,由镓(Ga)与砷(As)、磷(P)的化合物制成的二极管。发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。当给发光二极管加上正向电压后,从P区注入到N区的空穴和由N区注入到P区的电子,在PN结附近数微米内分别与N 区的电子和P区的空穴复合,产生自发辐射的荧光,因而可以用来制成发光二极管。在电路及仪器中作为指示灯,或者组成文字或数字显示。磷砷化镓二极管发红光,磷化镓二极管发绿光,碳化硅二极管发黄光。
LED只能往一个方向导通,发光二极管的反向击穿电压约5 伏。它的正向伏安特性曲线很陡,使用时必须串联限流电阻以控制通过管子的电流来控制LED 的亮度。限流电阻R 可用下式计算:
R=(E-UF)/IF
式中E为电源电压,UF 为LED的正向压降,IF 为LED 的一般工作电流。
2 LED 的编程方法
假设LED 的连接电路图如图1 所示,八个红色发光二极管通过限流电阻分别接到单片机P1 端口的8 个引脚上,单片机选用AT89C51.
2.1 单个发光二极管的控制
在图1 中,如图所示,如果要使发光二极管D1 点亮,由于D1 的正极通过电阻R1 接到电源VCC 上,那么D1要正向导通必须使D1 的阴极为低电平,也就是P1.0 引脚为低电平,这个可以通过软件可以控制,完整的C51 程序如下:
同样的,如果要使发光二极管D1 一亮一灭不停地闪烁,则工作原理是让D1 点亮并延时一段时间,接着使D1熄灭并延时一段时间并不断的循环,这样就可以观察到D1 一亮一灭不停地闪烁。延时可以采用软件延时或者定时计数器定时延时两种方式,本文采用软件延时,其工作原理是利用每条指令运行都需要一定的时钟周期,运行一定数量的时钟周期可以实现延时的功能,本图中晶振为12MHz,那么12 个振荡周期为1us,延时1ms 的延时程序如下:
控制发光二极管D1 一亮一灭不停地闪烁完整C51程序如下:
2.2 多个发光二极管的控制
多个多个发光二极管的控制原理与单个发光二级管的控制原理一样,在图1 中,如果要控制8 个发光二极管同时一亮一灭的闪烁,那么只需要同时使8 个发光二级管点亮延时一段时间,再同时使8 个发光二级管熄灭并延时一段时间,周而复始不断循环就可以实现8 个LED 不停地闪烁,完整的C51 程序如下:
在图1 中如果要控制8 个发光二极管D1,D3,D5,D7奇数灯和D2,D4,D6,D8 偶数等交替闪烁,则只需要把P1端口所接8 个LED 对应状态的值送给P1 端口并延时就可以实现该功能,完整程序如下:
2.3 花样流水灯的控制
对于花样流水灯,工作原理和前面多个发光二极管的控制原理一样,只需要把不同状态下灯所对应端口的值送到相应的控制端口并延时一定的时间就可以实现,编程时可以把所以对应状态的端口值放在一个数组里存放,不停循环地取数组的值,每取一个值延时一段时间,即可以实现,程序略。
3 总结
单片机在各行各业中使用越来越多,文中对单片机中发光二极管的使用和编程方法进行总结,并给出各种方法的工作原理和完整的程序。