单片机中LED发光二极管的编程探讨
2013-05-16 来源:电子技术应用
单片机由于体积小、价格低廉、功能强、可靠性高、面向控制和价格低廉等优点,不仅成为工业测控领域使用的智能化控制工具,而且已渗入到人们工作和生活的各个角落。在工科学校中基本都开设有《单片机原理及应用》这门课,而对所有学习单片机的人来说最入门的就是对发光二级管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 总结
单片机在各行各业中使用越来越多,文中对单片机中发光二极管的使用和编程方法进行总结,并给出各种方法的工作原理和完整的程序。
上一篇:LED驱动电源拓扑结构选择
- MathWorks 和 NXP 合作推出用于电池管理系统的 Model-Based Design Toolbox
- 意法半导体先进的电隔离栅极驱动器 STGAP3S为 IGBT 和 SiC MOSFET 提供灵活的保护功能
- 全新无隔膜固态锂电池技术问世:正负极距离小于0.000001米
- 东芝推出具有低导通电阻和高可靠性的适用于车载牵引逆变器的最新款1200 V SiC MOSFET
- 【“源”察秋毫系列】 下一代半导体氧化镓器件光电探测器应用与测试
- 采用自主设计封装,绝缘电阻显著提高!ROHM开发出更高电压xEV系统的SiC肖特基势垒二极管
- 艾迈斯欧司朗发布OSCONIQ® C 3030 LED:打造未来户外及体育场照明新标杆
- 氮化镓取代碳化硅?PI颠覆式1700V InnoMux2先来打个样
- 从隔离到三代半:一文看懂纳芯微的栅极驱动IC