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. 单片机流水灯的目的及意义
在如今这个科学技术发展迅猛的时代,传统的分立元件或逻辑电路构成的控制系统正以前所未有的速度被单片机智能控制系统所代替。在电子领域尤其是自动化智能控制领域,芯片技术取得了飞速发展,使单片机技术在各种民用和工业测控等领域得到了更为广泛的应用。
单片机凭其体积小、功能强、低成本、应用方面广等优点,已经成为微电脑控制的主力军。可以说,控制系统与自动控制的核心就是单片机。最能体现单片村应用价值之一的就是如今花样百出的流水灯了。
目前,国内外对于单片机流水灯的研究,大多数是利用AT89C51单片机,软硬件村结合,构造出最简单的流水灯,此举旨在抛砖引玉,广大用户又在此基础上扩展出更复杂的流水灯控制,比如键盘控制流水花样、控制流水灯显示数字或图案等等。
另外有关单片机音乐的研究,主要是针对单片机演奏音乐时音调和节拍的确定方法,以期产生更加纯正的音色来。由于这两个方面的研究比较成熟,因而就衍生出了单片机音乐流水灯的研究,详细了解并掌握音乐流水灯的理论基础和实践,对于单片机的学习将会产生可估量的作用。
简介
单片机也被称为单片微控器,属于一种集成式电路芯片。在单片机中主要包含CPU、只读存储器ROM和随机存储器RAM等,多样化数据采集与控制系统能够让单片机完成各项复杂的运算,无论是对运算符号进行控制,还是对系统下达运算指令都能通过单片机完成。
由此可见,单片机凭借着强大的数据处理技术和计算功能可以在智能电子设备中充分应用。简单地说,单片机就是一块芯片,这块芯片组成了一个系统,通过集成电路技术的应用,将数据运算与处理能力集成到芯片中,实现对数据的高速化处理。
C. 基于单片机设计智能台灯,需要哪些元器件,详细一点的。
1、测人体的话可以选择人体红外传感器,当光束被挡时输出高电平,这种传感器有一种半成品,输出也是脉冲的,当有人时输出3。5V高电平维持3秒,如人没有离开就继续输出,人离开后就变成低电平。
2、测光源基本上用光敏电阻就可以了,将光敏电阻附加三极管等元件做成一个光敏传感器,一旦光强低于某个值就向单片机返回一个高/低电平信号,由单片机处理。
3、单片机用51即可,输出引脚上连一个7407,然后连到继电器上即可。
4、其实也可以不用单片机的,只要一个逻辑芯片就可以了,比如如果高电平时有人,高电平时光弱,那么只要将这两个信号送到一个与门就可以了,与门输出一个高电平,然后驱动继电器即可!
希望能帮到你,对于这个东西你可以分成几个模块,一个模块一个模块搞定再综合,多在网上搜索一下,网上有大量的资料可以借鉴,加油!
D. 基于单片机的智能台灯难做吗
这个简单,使用单片机的PWM功能控制MOS管就可以控制的灯的亮暗,如果想用外红开关,就买个红外模块,想用手机控制开关就买个wifi模块,或者买个蓝牙模块,即可