1、相关基础与理论知识:
1.1 发光二极管感官认识
1.2 发光二极管概述:
一般来讲,发光二极管的工作电流Ig为5~20mA,压降Vg为1.5~2. 0V之间。
在使用发光二极管的时候限流电阻的选择很重要,阻值过大或过小发光二极管都不能正常发光,甚至烧毁器件。限流电阻Rx应满足条件:
Rx=(Vcc-Vg)/Ig
Vcc:电压;
Vg:发光二极管工作时候管压降电压值;
Ig:发光二极管工作电流极限。
这样在5V电源电压下,限流电阻Rx的选取范围如下:
(5.0V-2.0V)/20mA< Rx<(5.0V-1.5V)/5mA
即Rx的取值在105-700欧姆之间。一般建议选用470欧姆。
1.3 发光二极管正负极判断:
一般情况:长脚的一边为正极,短脚的一边为负极(也有特殊情况);
用万用表测量:将万用表打到短路档(就是带喇叭那档),用红黑表笔分别接发光二极管的两个管脚,当发光二极管点亮的时候,红色表笔那个脚就是正极,黑色表笔那脚就是负极。
2、原理图与实现的原理
2.1 试验仪原理图
本试验仪将电源接一个4.7K的电阻,然后接发光二极管的正极(A),发光二极管的负极(K)接单片机的P0.0口。原理图如下:
说明:PR3为排阻,其中带点的一端为公共端COM。试验仪把公共端接+5V。其他的分别接单片机的P0.0 ---P0.7。排阻原理图与实物图如下:
2.2 发光二极点亮原理
当给A极供电压VCC,K接地GND的时候发光二极管就会发光。所以我们让他显示有两种方法:
一:K接地,控制A极;当A为正电压时候点亮。
二:A接VCC,控制K极。当K为地时候点亮。
3、程序源码与试验结论:
3.1 实现的源码C51部分
#include<reg51.h>
sbit LED1=P0^0;//定义LED1端口
void delayms(unsigned char ms)
// 毫秒延时子程序
{ unsigned char i;
while(ms--)
{
for(i = 0; i < 120; i++);
}
}
void main(void) //主程序
{
while(1) //循环程序
{
delayms(250);
LED1 =1; //点亮LED1
delayms(250);
LED1 =0; //熄灭LED1
}
}
3.2 实现的源码汇编部分
LED BIT P0.0 //定义LED为单片机管脚P0.0
ORG 0000h
AJMP MAIN ;程序跳转
ORG 0030H ;程序执行地址
MAIN:
SETB LED ;使LED输出高,关闭LED
LCALL DELAY ;调用延时子程序DELAY
LCALL DELAY
LCALL DELAY
CLR LED ;使LED输出=0,点亮LED
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
AJMP MAIN ;重复循环执行整个程序,整个程序的名字为main
DELAY:
MOV R7,#250 ;延时子程序开始,子程序名字为 DELAY
D1: MOV R6,#250
D2: DJNZ R6,D2
DJNZ R7,D1
RET
END ;结束
3.3 实验结论
一般情况的单片机复位,IO输出口为高电平,所以一般情况下,我们控制IO输出为0的情况更直观.
|