大家好,欢迎来到IT知识分享网。
单片机控制电灯是极为简单的事情。
单片机其实就是一个微型“电脑”,它集成了CPU、RAM、ROM、I/O、定时器、中断等等功能。单片机工作需要直流电供电,一般是5V或者3.3V,而电灯需要交流220V。单片机需要通过驱动低压直流电控制交流电的器件去控制电灯的亮和灭。比如继电器或者可控硅。
单片机驱动继电器控制电灯
继电器通过触点的闭合和断开来控制电灯电源的开和关,给继电器的线圈施加直流电时,电磁铁产生磁力吸住衔铁,触点闭合,电灯通电点亮;继电器线圈断电后,电磁铁失去磁力,衔铁受弹簧力作用,触点断开,电灯熄灭。
单片机的输出口驱动能力是比较弱的,能够提供的电流最多20mA左右,也不能直接推动继电器工作,我们需要加入三极管来驱动继电器,当单片机的输出口DR设为高电平时,三极管Q1导通,继电器线圈通电,电灯点亮,当单片机的输出口DR设为低电平时,三极管Q1截止,继电器线圈断电,电灯熄灭。
有了单片机的协助,电灯的功能就很多了,除了可以定时开和定时关,还可以加入光线强弱检测,实现晚上自动开灯。
单片机驱动可控硅控制电灯
除了继电器可以控制电灯的亮和灭,还可以用双向可控硅控制电灯。继电器是机械式的开关控制,而双向可控硅是电子式的开关控制,还可以实现亮度调节。双向可控硅的导通由控制极(G)控制,我们只需要给控制极(G)提供一个脉冲的电流信号就可以触发它导通了。
我们可以通过光耦驱动双向可控硅控制电灯的亮和灭,当DR设为低电平时,光耦工作,电灯点亮,当DR设为高电平时,光耦停止工作,电灯熄灭。如果想调节电灯的亮度,还需要加入过零检测电路。
单片机控制的模拟开关灯
如图4.2.1所示,监视开关K1(接在P3.0端口上),用发光二极管L1(接在单片机P1.0端口上)显示开关状态,如果开关合上,L1亮,开关打开,L1熄灭。
2. 电路原理图
图4.2.1
3. 系统板上硬件连线
(1). 把“单片机系统”区域中的P1.0端口用导线连接到“八路发光二极管指示模块” 区域中的L1端口上;
(2). 把“单片机系统”区域中的P3.0端口用导线连接到“四路拨动开关”区域中的K1端口上;
4. 程序设计内容
(1). 开关状态的检测过程
单片机对开关状态的检测相对于单片机来说,是从单片机的P3.0端口输入信号,而输入的信号只有高电平和低电平两种,当拨开开关K1拨上去,即输入高电平,相当开关断开,当拨动开关K1拨下去,即输入低电平,相当开关闭合。单片机可以采用JB BIT,REL或者是JNB BIT,REL指令来完成对开关状态的检测即可。
(2). 输出控制
如图3所示,当P1.0端口输出高电平,即P1.0=1时,根据发光二极管的单向导电性可知,这时发光二极管L1熄灭;当P1.0端口输出低电平,即P1.0=0时,发光二极管L1亮;我们可以使用SETB P1.0指令使P1.0端口输出高电平,使用CLR P1.0指令使P1.0端口输出低电平。
5. 程序框图
图4.2.2
6. 汇编源程序 ORG 00H
START: JB P3.0,LIG
CLR P1.0
SJMP START
LIG: SETB P1.0
SJMP START
END
7. C语言源程序
#include <AT89X51.H>
sbit K1=P3^0;
sbit L1=P1^0;
void main(void)
{
while(1)
{
if(K1==0)
{
L1=0; //灯亮
}
else
{
L1=1; //灯灭
}
}
}
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/160643.html