微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 第3课 点亮第一个发光二极管

第3课 点亮第一个发光二极管

时间:12-01 来源:互联网 点击:
在第上一课中,我们主要讲了keil软件的使用及如何使用keil软件建立一个工程文件,下面我们就使用C语言编写一个程序点亮实验板上的一个发光二极管。首先我们来讲一下发光二极管的发光原理。

1、发光二极管发光原理

发光二极管简称LED,采用砷化镓、镓铝砷、和磷化镓等材料制成,其内部结构为一个PN结,具有单向导电性。 当在LED发光二极管PN结上加正向电压时, P区的空穴注入到N区,N区的电子注入到P区,这空穴与电子相复合时产生的能量大部分以光的形式出现,因此而发光,并且根据释放能量的不同能发出不同波长的光,在电路或仪器中可用作指示灯,也可以组成文字或显示器件。

发光二极管按封装(这里可以暂理解为外形)可分为直插式和贴片式的两种,按发光颜色可分为红色、蓝色、绿色等,如图1所,上面为帖片发光二极管,下边为直插式的发光二极管。

图1 发光二极管

LED工作时,应该串接一个限流电阻,该电阻的阻值大小应根据不同的使用电压和LED所需工作电流来选择。LED发光二极管的压降一般为1.5~3.0 V(红色和黄色一般为2V。其它颜色一般为3V),其工作电流一般取10~20 mA为宜。其限流电阻的计算公式为R=(U-UL)/I,U为电源电压,UL为发光二极管正常发光时端电压,I为发光二极管的电流。

以上是发光二极管的基础知识,但这里只说了一些重要的性质和参数,实际在做电路时还要考虑到其它的因素,如各种种样的封装尺寸以及价格等,下面说一下如何通过编程让实验板上的一个发光二极管发光。

学过电子技术的人应该知道,要让一个发光二极管发光我们可能采用如下电路实现,如图2,这里只要限流电阻选择恰当,就可以让发光二极管发光。

图2 全硬件电路实现发光二极管发光

下面我们把电路稍作变化,如图3,把图2中接地的一端直接接到单片机的P1口的第1个引脚上,大家想想现在怎么才能让发光二极管发光呢?可能大家马上会说出,让单片机第1脚输出低电压,而单片机的引脚可以输出0和1两种电平,0代表低电平也就是低电压,1代表高电平也就高电压这个我们在前面的课程中讲过,也就是说我们现在只要能通过程序让每1脚输出0就可以了。

图3 单片机实现发光二极管发光的原理图

为了便于演示结果,我们先给出实验板上的原理图,如图4所示,8个发光二极管通过一个排阻,再通过一个跳线帽接电源的正极5V,而所有管的负极则分别接到单片机的P1口的8个引脚上。关于跳线帽这里就不解释了,下面先说下排阻吧。

所谓排阻,其实就是一排若干个参数完全相同的电阻,主要有有直插和贴片两种形式,如图5所示。它们的一个引脚都连到一起,作为公共引脚,其余引脚正常引出,通常最左边的那个是公共引脚,它在排阻上一般用一个色点标出来。如图4所示,8个发光二极管阴极接单片机P1口的8个引脚,阳极分别接8个电阻的一端,然后电阻的另一端全部接在一起由1脚引出,然后通过跳线帽直接接电源的正极5V。采用排阻直接代替8个电阻,这样不仅可以缩小电路板尺寸,而且也提高的焊点的可靠性。

图4 实验板上的8个发光二极管

图5 直插排阻和贴片的排阻

2、发光二极管及流水灯程序

2.1 点亮第一个发光二极管

上面我们介绍了发光二极管的发光原理,同时对实验板上的原理图作了相应的分析,下面给出点亮第一个发光管具体程序。关于工程文件的建立,前面已经详细的讲过,这里不在叙述,这里我们点击keil软件,建立工程LED1,然后建立文件LED1,最后输入程序如下。

例1 点亮第一个发光二极管程序

(2)输入源程序(又称为程序编辑)

#include//52系列单片机头文件

sbit D1=P1^0;//位定义单片机P1口的第1位

void main()//主函数

{

D1=0;//点亮第一个发光二极管

}

输入上面程序时,keil软件会自动识别C51的关键字,如本程序中的include、sbit、void,并会以不同的颜色加以提示,如果输入有误,则不会变颜色,这样就可以使得程序编写者减少输入错误,提高编程质量,当然这一系列的前提是,建立文件时必须先保存才会出现这种效果,这个也是我们上一节讲的为什么文件建好后最好先进行保存的原因。

(2)程序的编译与错误检查

程序输入完毕后,下一步的工作就是对文件进行编译和错误检查与排除。

图6 输入代码后的界面

如图6所示,为程序输入后的界面。点击全部编译快捷按钮,此时会进入编译后的界面如图7.

图7 编译后的界面

在图7中我们会下到最下边的编译对话框里会多出几行字,具体的含义如下:

创建目标“Target1”

编译文件led1.c…

链接…

程序大小:内部RAM= 9.0个字节 外部RAM =0个字节,ROM空间=18字节

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top