导航:首页 > 操作系统 > 单片机发光二极管原理图

单片机发光二极管原理图

发布时间:2025-02-08 03:04:23

A. 单片机控制led灯的创新点是什么

单片机控制led灯的创新点是,LED的阳极全部接到了正极(电源),当负极接到LED的阴极时就会发光,因为LED的阴极与单片机的P2口相接,如果你想点亮那一个LED就把单片机相应的引脚赋值为低电平。具体如下:1、LED基础知识
LED是发光二极管的一种,它具有单向导电的特点,在51开发板上使用的是贴片式发光二极管,正向导电电压在1.8-2.2v之间,工作时的电流在1-20mA。当电流在1-5mA之间变化时,肉眼可以观测到亮度的变化,但是当电流在5-20mA之间变化时,亮度变化不太明显。如果电流一直增大二极管可能会烧坏。其余LED知识就不再进行叙述,其中LED原理图如下图所示。
LED原理图

2、点亮第一个LED灯
由原理图可知,LED的阳极全部接到了正极(电源),当负极接到LED的阴极时才会发光,因为LED的阴极与单片机的P2口相接,如果你想点亮那一个LED就把单片机相应的引脚赋值为低电平,具体程序如下:

#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器

sbit led=P2^0; //将单片机的P2.0端口定义为led

void main()
{

while(1)
{
led=0;//P2.0端口设置为低电平
}
}
1
2
3
4
5
6
7
8
9
10
11
12
1
2
3
4
5
6
7
8
9
10
11
12
3、LED闪烁
如果想让LED进行闪烁就要涉及到延时,针对单片机进行延时的方法有很多,在此向大家推荐一种比较简单的程序助手—单片机小精灵,可以直接进行设置时间,并且生成相应的代码。
将P2^0引脚的LED进行间隔一秒闪烁的程序如下:

#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器
#include "intrins.h" //头文件

sbit led=P2^0; //将单片机的P2.0端口定义为led

void delay1s() //延时1s,误差 0us
{
unsigned char a,b,c;
for(c=46;c>0;c--)
for(b=152;b>0;b--)
for(a=70;a>0;a--);
_nop_(); //if Keil,require use intrins.h
}

void main()//主程序
{

while(1)
{
led=0;//P2.0端口设置为低电平
delay1s();//调用延时函数
led=1;//P2.0端口设置为低电平
delay1s();
}
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
为了使程序更好的进行表达,使用16进制进行表述,程序如下:

#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器
#include "intrins.h" //头文件

void delay1s() //延时1s,误差 0us
{
unsigned char a,b,c;
for(c=46;c>0;c--)
for(b=152;b>0;b--)
for(a=70;a>0;a--);
_nop_(); //if Keil,require use intrins.h
}

void main()//主程序
{

while(1)
{
P2=0xFE;//P2.0端口设置为低电平
delay1s();//调用延时函数
P2=0xFF;//P2.0端口设置为低电平
delay1s();
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
上面是针对一个LED灯进行的设计,下面针对8个LED灯依次闪烁进行设计,具体程序如下:

#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器
#include "intrins.h" //头文件

void delay1s() //延时1s,误差 0us
{
unsigned char a,b,c;
for(c=46;c>0;c--)
for(b=152;b>0;b--)
for(a=70;a>0;a--);
_nop_(); //if Keil,require use intrins.h
}

void main()//主程序
{

while(1)
{
P2=0xFE;//1111 1110
delay1s();//调用延时函数
P2=0xFD;//1111 1101
delay1s();
P2=0xFB;//1111 1011
delay1s();
P2=0xF7;//1111 0111
delay1s();
P2=0xEF;//1110 1111
delay1s();
P2=0xDF;//1101 1111
delay1s();
P2=0xBF;//1011 1111
delay1s();
P2=0x7F;//0111 1111
delay1s();
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
4、LED左右移动
上面进行描述的是利用延时并对P2口引脚进行赋值设计LED灯的闪烁,这样程序较为繁杂,下面将利用“左移”和“右移”进行设计,crol(a,b),左循环,a是左移的值,b是左移的位数;cror(a,b),右循环,a是右移的值,b是右移的位数。包含在instrins.h库函数中。具体程序如下:

#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器
#include "intrins.h" //头文件,包含延时(_nop_ )和函数循环

typedef unsigned int u16;//声明新类型名
typedef unsigned char u8;//声明新类型名

#define led P2//宏定义

void delay1s() //延时1s,误差 0us
{
u8 a,b,c;
for(c=46;c>0;c--)
for(b=152;b>0;b--)
for(a=70;a>0;a--);
_nop_(); //if Keil,require use intrins.h
}

void main()//主程序
{
u8 i;//定义i的类型
led=0xFE;
delay1s() ;
while(1)
{
for(i=0;i<7;i++)//左移
{
led=_crol_(led,1);
delay1s() ;
}
for(i=0;i<7;i++)//右移
{
led=_cror_(led,1);
delay1s() ;
}

}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
5、总结
以上程序均进行了实验验证,完全正确。针对LED灯的控制,可以和按键进行联合设计,实现更多的功能,后面会进行更新。对于没有单片机开发板的小伙伴可以利用proteus仿真软件进行设计。

B. 为什么单片机上第一个发光二极管是0xfe还有其他的灯呢分别是什么

和发光二极管的接法有关,二极管阴极端连单片机,输出低电平0就会点亮,0xfe对应的引脚信号为11111110,其中的0就是输出给第一个发光二极管阴极端的低电平信号。其他的灯对应的输出低电平编码信号同样点亮。

例如:假设单片机的P0口接了八个LED,其中JPP0接的是高电平5V,而L0.0到L0.7接的分别是P0.7到P0.0这样的话如果P0.7到P0.0上电平是高电平,那么这个led的压降就是0,led不亮,如果P0.7到P0.0上电平是低电平,那么led上就会产生压降,led就会亮。

#include<reg51.h> /*包含单片机寄存器的头文件*/

void main(void){while(1){P0=0xfe; /*第一个灯亮*/ P0=0xff; /*第一个灯灭*/}}

P0=0xfe,相当于P0=11111110,这时候P0.0=0,灯L0.7亮,然后P0=0xff,相当于P0=11111111,这时候P0.0=1,灯L0.7灭,然后由于这两句是放在while(1)中的由于其中1是while{}中的语句执行的条件,由于1始终为真,所以这两句循环执行。灯L0.7就在不断闪烁,亮灭。

(2)单片机发光二极管原理图扩展阅读:

相关发光二极管引脚点亮编码:

原理:给二极管阳极和阴极加上正向电压时,二极管导通。 当给阳极和阴极加上反向电压时,二极管截止。 因此,二极管的导通和截止,则相当于开关的接通与断开。

0XFE=1111 1110 表示一个灯亮。0xfd = 1111 1101 第二个灯亮。0xfb = 1111 1011 第三个灯亮。0xf7 = 1111 0111 第四个灯亮。0xef = 1110 1111 第五个灯亮。0xdf = 1101 1111 第六个灯亮。0xbf = 1011 1111 第七个灯亮。0x7f = 0111 1111 第八个灯亮。

C. 单片机P1.0控制点亮一个发光二极管的电路怎么接

电路如图接即可(去掉右边的按键和左边的电容):

一般单片机对LED灯的接法都是如此,因为单片机IO口的电流输出能力很弱,一般不使用单片机输出高电平驱动LED灯,一般使用灌电流的方法驱动,即,单片机输出低电平,吸收电流的方法。

D. 单片机单个数码管元件名称是什么

数码管,亦称辉光管,是一种能显示数字及其他信息的电子元件。
原理图:
1. 显示原理:亮为0,暗为1,数码管从右至左显示二进制数。
2. 控制方式:
a. 位选:如控制第1个数码管,需选择相应的位选信号。
b. 段选:确定要显示的数字后,通过控制数码管的特定段来实现。
void display(void) 函数:
P2 = ((P2&0x1F)|0xE0); // 数码管消隐
P0 = 0xFF;
P2 &= 0x1F;
P2 = ((P2&0x1F)|0xC0); // 位选控制
P0 = 1<<dspcom;
P2 &= 0x1F;
P2 = ((P2&0x1F)|0xE0); // 段码输入
P0 = tab[dspbuff[dspcom]];
P2 &= 0x1F;
if(++dspcom == 8){ // 循环检查
dspcom = 0; // 重置计数器
}
结构图:
1. 高低电平:
a. 高电平:确保逻辑门输入为高电平的最小电压。
b. 低电平:确保逻辑门输入为低电平的最大电压。
2. 共阳极与共阴极:
a. 共阳极数码管:八段发光二极管的阳极相连,阴极独立控制。
b. 共阴极数码管:八段发光二极管的阴极相连,阳极独立控制。
真值表:
数字 真值表
0 0xC0
1 0xF9
2 0xA4
3 0xB0
4 0x99
5 0x92
6 0x82
7 0xF8
8 0x80
9 0x90
Tips:
二进制:前缀0b/0B,后缀b/B
八进制:前缀0,后缀o/O
十进制:无前缀,可有+/-后缀d/D
十六进制:前缀0x/0X,后缀h/H
特殊功能寄存器:
sbit是定义特殊功能寄存器的位变量,如sbit led1 = P1^0,用于控制P1口0位端的发光二极管。
sfr是定义特殊功能寄存器的8位寄存器,如sfr P1 = 0x90,用于访问51单片机内部的特殊功能寄存器。

E. 请问各位,我要用单片机驱动一个发光二极管,(如图)

电路是正确的。
楼主这种电路,是在输出高电平的时候点亮二极管,就是给单片机加上了“拉电流”负载。
而一般的单片机,输出高电平时,并无输出电流的绝兆搭能力,所以需要外接“上拉电阻”来辅助。猜明
发光二极管发光的电压较高,可以按照2V来计算,1K的上拉电阻,可以出现3mA的电流。
所以说,这个电路是正确的。
但是,输出低电平,不让二极管发光,1K的上拉电阻,就可以出现5mA的电流!
而且,这“更大的”电流全部灌入了单片机的引脚,虽未必烧坏,也是无谓的耗能。
从这个现象来看,这个电路并并拿不够合理。
有可能的话,应该尽量采用“灌电流”的负载电路。
关于单片机引脚的输出驱动等问题,可见:
http://hi..com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/429b5e35208e9bb9d0a2d398.html
http://hi..com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/d9581a5155e8f558c2d6.html

阅读全文

与单片机发光二极管原理图相关的资料

热点内容
我的盐城app怎么添加不了家庭成员 浏览:493
php商城并发 浏览:348
熊猫绘画app怎么做出大佬的笔刷 浏览:603
云存储服务器知识 浏览:461
服务器cpu是什么指令集 浏览:590
糖猫t10怎么安装app 浏览:992
电脑加密u盘怎么使用 浏览:517
linux如何升级php版本升级 浏览:841
二级程序员c语言难度 浏览:352
批处理编译qt 浏览:66
铁友app怎么查询机票订单 浏览:197
myeclipselinux破解版 浏览:417
批处理命令语法不正确 浏览:889
pdf合并成一个pdf在线 浏览:383
柱加密区构造要求 浏览:514
地板木龙骨标准跟加密区别 浏览:150
解压放松的好地方河南 浏览:965
搜狗怎么移动到文件夹 浏览:617
文件自动选择到文件夹 浏览:794
赠送的app怎么在ipad下载 浏览:508