- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于单片机的声光控制灯
摘要
随着社会和科技的不断进步,人们逐渐认识和接受了低碳生活,并开始从多方面关注它,尤其是在环保方面下了不少功夫。利用声光的强弱来控制开关的开合的电子产品,可以有效降低能耗,节约能源。不仅适用于住宅区的走廊,也适用于工厂、办公室、教学楼等公共场所。因此,声光控制开关将在我们的低碳生活中发挥重要作用。
本设计主要由STC 89C51单片机、± 15V和5V电压源电路、声音接收放大控制电路、光信号接收放大控制电路组成。遇到的问题和相应的解决方法。测试结果证明该系统性能稳定、操作方便、实用价值高。
本文详细讨论了控制系统的组成、软硬件设计及工作原理。
方案比较与演示
图1 声光控电路当我们开始设计自动照明控制器时,我们想到了几个方案,但经过比较,我们最终决定了这个方案。刚拿到题目的时候,我们想到了老师讲的声光控制示意图,如下图:
图1 声光控电路
不过这个电路图有点复杂,不能完全满足题主的要求。我们在稍作改进的基础上增加了单片机和时钟芯片,以满足定时开灯、关灯和延时开灯的要求。改进后的电路图如下:
图2 声光控制电路
理论分析与计算
本设计的硬件设计重点是光信号和声音信号的接收控制电路、单片机的最小电路和时钟芯片的控制电路。光信号控制电路部分采用光敏电阻接收光,放大后输出到单片机;声音信号控制电路采用驻极体麦克风采集声音,然后放大输出至单片机;单片机将处理后的信号送至三极管使用。驱动LED灯,时钟芯片用于定时控制灯的开关。
光控电路
它由光敏电阻、滑动变阻器、PNP三极管和与非门组成,如下图3所示:光控电路通过照明改变光敏电阻的阻值和声控电路的组合,进而控制PNP三极管致到微控制器以控制灯的开和关。 , 光敏电阻受光时阻值小,与非门一端低;当光线较弱时,电阻增大,与非门的一端为高电平。光控电路和声控电路的输出信号经过与非门后的三极管放大,将比较弱的电流信号放大到单片机能识别的电流,再放大信号由晶体管的发射组传送到单片机的I/O口。 .电路图中的滑动变阻器控制整个光控电路对光信号的灵敏度。
语音控制电路
声控电路通过驻极体麦克风将声音转换成电信号,电容耦合到三极管的基极,通过控制三极管的饱和和截止来控制输出电平,然后送到与非门和光控电路的组合。致到单片机;拾音电路将声音转换成微弱的电压信号。然后,微弱的电压信号经三极管放大,声控电路信号和光控电路信号通过与非门传送到单片机的I/O口。 R 4 和c1 有一定的延迟作用,可以去除干扰信号。
图4声音控制电路图
单片机控制电路
单片机根据声控电路和灯控电路输入的信号判断输出端的电平,从而控制灯的开、关;单片机还控制灯亮的延迟时间。单片机的输出电流比较小,不能驱动灯的开关。灯的驱动是由三极管补偿单片机的输出电流来驱动灯的开和关。
P1。 0作为声光控制信号的输入端口; (高电平有效); P1。 1是驱动电路的输出端口; (高电平有效); P1。 6接数码管显示延时时间; P1。 7用于连接按钮调节延迟时间。
图5 单片机控制电路
单片机控制程序如下:
#includereg52.h
#define uchar 无符号字符
#define uint 无符号整数
sbit sm=P1^0;
位ds=P1^1;
位 LE=P1^6;
sbit keyt=P1^7;
单位 tt,sec,min,aa;
uchar 码时序[]={0x 3f,0x06,
0x5b,0x 4f,0x66,0x6d,0x7d,0x07,
0x 7f,0x 6f,0x77,0x 7c,0x39,0x5e,
0x79,0x71};
无效盐石();
无效键();
无效延迟(uint);
无效 inin()
{
sm=1;
ds=0;
tt=0;
秒=0;
最小=0;
TMOD=0x01;
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
EA=1;
ET0=1;
}
空光()
{
如果(sm==0)
ds=1;
如果(ds==1)
TR0=1;
}
无效的盐石()
{
如果(tt==20)
{
tt=0;
秒++;
如果(秒==60)
{
秒=0;
分钟++;
如果(最小==aa)
{
TR0=0;
inin();
}
}
}
}
无效键()
{
如果(键==0)
{
延迟(5);
如果(键==0)
{
aa++;
P0=定时[aa];
如果(aa==5)
aa=1;
延迟(5);
}
}
}
无效的主要()
{
键=1;
LE=0;
aa=2;
P0=定时[aa];
inin();
而
文档评论(0)