基于单片机的声光控延时灯_第1页
基于单片机的声光控延时灯_第2页
基于单片机的声光控延时灯_第3页
基于单片机的声光控延时灯_第4页
基于单片机的声光控延时灯_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于单片机的声光控制灯摘要随着社会和科技的不断进步,人们逐渐认识和接受了低碳生活,并开始从多方面关注它,尤其是在环保方面下了不少功夫。利用声光的强弱来控制开关的开合的电子产品,可以有效降低能耗,节约能源。不仅适用于住宅区的走廊,也适用于工厂、办公室、教学楼等公共场所。因此,声光控制开关将在我们的低碳生活中发挥重要作用。本设计主要由STC 89C51单片机、 15V和5V电压源电路、声音接收放大控制电路、光信号接收放大控制电路组成。遇到的问题和相应的解决方法。测试结果证明该系统性能稳定、操作方便、实用价值高。本文详细讨论了控制系统的组成、软硬件设计及工作原理。方案比较与演示图1 声光控电路当我们

2、开始设计自动照明控制器时,我们想到了几个方案,但经过比较,我们最终决定了这个方案。刚拿到题目的时候,我们想到了老师讲的声光控制示意图,如下图:图1 声光控电路不过这个电路图有点复杂,不能完全满足题主的要求。我们在稍作改进的基础上增加了单片机和时钟芯片,以满足定时开灯、关灯和延时开灯的要求。改进后的电路图如下:图2 声光控制电路理论分析与计算本设计的硬件设计重点是光信号和声音信号的接收控制电路、单片机的最小电路和时钟芯片的控制电路。光信号控制电路部分采用光敏电阻接收光,放大后输出到单片机;声音信号控制电路采用驻极体麦克风采集声音,然后放大输出至单片机;单片机将处理后的信号送至三极管使用。驱动LE

3、D灯,时钟芯片用于定时控制灯的开关。光控电路它由光敏电阻、滑动变阻器、PNP三极管和与非门组成,如下图3所示:光控电路通过照明改变光敏电阻的阻值和声控电路的组合,进而控制PNP三极管致到微控制器以控制灯的开和关。 , 光敏电阻受光时阻值小,与非门一端低;当光线较弱时,电阻增大,与非门的一端为高电平。光控电路和声控电路的输出信号经过与非门后的三极管放大,将比较弱的电流信号放大到单片机能识别的电流,再放大信号由晶体管的发射组传送到单片机的I/O口。 .电路图中的滑动变阻器控制整个光控电路对光信号的灵敏度。语音控制电路声控电路通过驻极体麦克风将声音转换成电信号,电容耦合到三极管的基极,通过控制三极管

4、的饱和和截止来控制输出电平,然后送到与非门和光控电路的组合。致到单片机;拾音电路将声音转换成微弱的电压信号。然后,微弱的电压信号经三极管放大,声控电路信号和光控电路信号通过与非门传送到单片机的I/O口。 R 4 和c1 有一定的延迟作用,可以去除干扰信号。图4声音控制电路图单片机控制电路单片机根据声控电路和灯控电路输入的信号判断输出端的电平,从而控制灯的开、关;单片机还控制灯亮的延迟时间。单片机的输出电流比较小,不能驱动灯的开关。灯的驱动是由三极管补偿单片机的输出电流来驱动灯的开和关。P1。 0作为声光控制信号的输入端口; (高电平有效); P1。 1是驱动电路的输出端口; (高电平有效);

5、P1。 6接数码管显示延时时间; P1。 7用于连接按钮调节延迟时间。图5 单片机控制电路单片机控制程序如下:#include#define uchar 无符号字符#define uint 无符号整数sbit sm=P10;位ds=P11;位 LE=P16;sbit keyt=P17;单位 tt,sec,min,aa;uchar 码时序=0 x 3f,0 x06,0 x5b,0 x 4f,0 x66,0 x6d,0 x7d,0 x07,0 x 7f,0 x 6f,0 x77,0 x 7c,0 x39,0 x5e,0 x79,0 x71;无效盐石();无效键();无效延迟(uint);无效 in

6、in()sm=1;ds=0;tt=0;秒=0;最小=0;TMOD=0 x01;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();而(1)键();光();燕石();无效延迟

7、(单位 z)uint i,j;对于(i=1000;i0;i-)for(j=z;j0;j-);无效 timer0() 中断 1TH0=(65535-50000)/256;TL0=(65535-50000)%256;tt+;时钟芯片控制电路图 6 时序电路RST接单片机的P3.5管脚, DS1302的I/O管脚接单片机的P3.4管脚,串行时钟SCLK接单片机的P3.6管脚微控制器。将程序输入DS1302,在数码管上显示定时时间,通过单片机控制在特定时间点灯和灯。计时程序如下:#include#include#define uchar 无符号字符#define uint 无符号整数位 SCK=P36

8、; /钟位 SDA=P34; /数据位 RST=P35; /CE端口控制复位?uint k,num;位 readrtc_flag; /定义标志uchar tempdata7=0,0,12,13,7,2,12;uchar 临时显示8;uchar码表=0 x 3f,0 x06,0 x5b,0 x 4f,0 x66,0 x6d,0 x7d,0 x07,0 x 7f,0 x 6f,0 x40;uchar 代码 WAN=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf,0 x 7f;/ uchar read_ds1302(uchar temp);/* 定时器 0 初始化

9、 */无效 inin()TMOD=0 x01;TH0=(65536-4000)/256;TL0=(65536-4000)%256;EA=1;ET0=1;TR0=1;数=0;k=0;/* 写一个字节八次 */无效 write_ds1302_byte(uchar temp)uchar我;对于(i=0;i=1;/*写入ds1302*/void write_ds1302(uchar 地址,uchar dat)RST=0; /数据和地址传输中止_nop_(); SCK=0;_nop_(); /一个机器周期 RST=1; /逻辑控制有效 _nop_() ;write_ds1302_byte(地址);wri

10、te_ds1302_byte(dat);RST=0;/*写入时钟的初始值*/无效 set_rtc()uchar 我,温度;对于(i=0;i7;i+)临时=临时数据i/10;临时数据i=临时数据i%10;临时数据i=临时数据i+临时*16;write_ds1302(0 x8e,0 x00); /停止写保护write_ds1302(0 x80,tempdata0);write_ds1302(0 x82,tempdata1);write_ds1302(0 x84,tempdata2);write_ds1302(0 x86,tempdata3);write_ds1302(0 x88,tempdata4

11、);write_ds1302(0 x 8a,临时数据5);write_ds1302(0 x 8c,临时数据6);write_ds1302(0 x8e,0 x80); /写保护/* tempdisplay7=tempdata2/16;tempdisplay6=tempdata2&0 x 0f;临时显示5=10;临时显示4=临时数据1/16;tempdisplay3=tempdata1&0 x 0f;临时显示2=10;临时显示1=临时数据0/16;临时显示0=临时数据0&0 x 0f; */*dchshjindotempdatazhng*/uchar read_ds1302(uchar 地址)飞行

12、我;飞行时间=0 x00;RST=0;_nop_();SCK=0;_nop_();RST=1;_nop_();write_ds1302_byte(地址);对于(i=0;i=1;SCK=1;如果(SDA)tmp|=0 x80;SCK=0;_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_();返回(tmp);/*读时钟*/无效 read_rct()uchar 我,温度;临时数据0=read_ds1302(0 x81);临时数据1=read_ds1302(0 x83); 临时数据2=read_ds1302(0 x85);临时数据3=read

13、_ds1302(0 x87);临时数据4=read_ds1302(0 x89);临时数据5=read_ds1302(0 x8b);临时数据6=read_ds1302(0 x8d);对于(i=0;i7;i+)临时=临时数据i/16;临时数据i=临时数据i%16;临时数据i=临时数据i+温度*10; /*主程序*/无效的主要()inin(); /初始化定时器0set_rtc(); /写入时钟的初始值而(1)如果(读取rtc_flag)读取rtc_flag=0;/ read_rct();临时显示7=临时数据2/10;临时显示6=临时数据2%10;临时显示5=10;临时显示4=临时数据1/10;临时显示3=临时数据1%10;临时显示2=10;临时显示1=临时数据0/10;临时显示0=临时数据0%10;无效 timer0() 中断 1TH0=(65536-4000)/256;TL0=(65536-4000)%256;P2=广域网k;P0=表温度显示k;k+;如果(k=8)k=0;数+;如果(数=2)readrtc_flag=1;数=0;综上所述本设计基于单片机的声光控制,实用性强,适用范围广,适用于家庭、办公室、楼宇、商店等场所。本设计是利用单片机实现开关的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论