ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:144.32KB ,
资源ID:25114078      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/25114078.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于单片机的声光控延时灯.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于单片机的声光控延时灯.docx

1、基于单片机的声光控延时灯基于单片机的声光控灯摘要随着社会和科技的不断进步,人们对低碳生活逐步认识和接受,并从很多方面开始关注,尤其是在环保上做出了很多努力。利用声音和光线的强弱来控制开关的断开或者闭合的电子产品来能够有效的降低能耗,节约能源。它不仅适用于住宅区的楼道,而且适用于工厂、办公室、教学楼等公共场所。因此,声光控制开关,在我们的低碳生活中,将起到重要作用。该设计主要由STC89C51单片机、15V和5V的电压源电路、声音的接收放大控制电路、光信号的接收放大控制电路组成,以与设计实现光控灯和声控灯的原理,与制作过程中遇到的问题和相应的解决方案。测试结果证明该系统性能稳定、操作方便,具有较

2、高的实用价值。本文对控制系统的组成、硬件和软件的设计、工作原理进行了详细的论述。方案比较与论证我们开始在做设计自动照明控制器时,想到了几个方案,但比较之后最终确定了这个方案,最初拿到题目,我们想到了老师时讲过的一个声光控的原理图,如下图:但这个电路图稍显复杂,而且不能完全达到题目的要求,我们又在稍微改进的基础上加上了单片机和时钟芯片来达到定时灯亮灯灭和灯亮延时的要求,改进后的电路图如下: 图2声光控制电路理论分析与计算本设计的硬件设计的重点在于光信号和声音信号的接受控制电路、单片机的最小电路以与时钟芯片的控制电路。光信号控制电路部分采用光敏电阻对光进行接收,并经过放大输出给单片机;声音信号控制

3、电路采用驻极体话筒来采集声音,经过放大输出给单片机;单片机把处理好的信号发送给三极管用于驱动LED灯,时钟芯片用于定时控制灯的亮灭。光控电路由光敏电阻,滑动变阻器,PNP三极管和与非门组成,如下图3所示:光控电路通过光照改变光敏电阻的阻值大小和声控电路组合后来控制PNP三极管送到单片机来控制灯的亮灭,当光敏电阻受光照时,电阻小,与非门的一端为低电平;当光照较弱时,电阻增加,与非门的一端为高电平。光控电路和声控电路的输出信号经与非门后经三极管放大,将比较微弱的电流信号放大到单片机能够识别的电流,然后由三极管的发射集放大后的信号传给单片机的I/O口。电路图中滑动变阻器控制整个光控电路对光信号的灵敏

4、度。声控电路声控电路通过话驻极体话筒将声音转化成电信号,经电容耦合到三极管的基极,通过控制三极管的饱和、截止来控制输出电平的高低,然后输送到与非门和光控电路组合输送到单片机;拾音电路将声音转换成微弱的电压信号。然后,微弱的电压信号经过三极管放大,声控电路电路信号和光控电路信号通过与非门传给单片机的I/O口。R4和c1有一定的延时效果,可以去除干扰信号。图4声控电路图单片机控制电路单片机根据声控电路、光控电路输入的信号来判断输出端电平的高低,从而控制灯亮灭;单片机也控制灯亮的的延迟时间。单片机的输出的电流比较小,不能够驱动灯的亮灭,灯的驱动由三极管组成给单片机的输出电流进行补偿,来驱动灯的亮灭。

5、P1.0作为声光控信号的输入口;(高电平有效);P1.1作为驱动电路的输出口;(高电平有效);P1.接数码管用于显示延时时间;P1.用于接按键用于调节延时时间。图5单片机控制电路单片机控制程序如下:#include#define uchar unsigned char#define uint unsigned intsbit sm=P10;sbit ds=P11;sbit LE=P16;sbit keyt=P17;uint tt,sec,min,aa;uchar code timing=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77

6、,0x7c,0x39,0x5e,0x79,0x71;void yanshi();void keytt();void delay(uint);void inin() sm=1; ds=0; tt=0; sec=0; min=0; TMOD=0x01; TH0=(65535-50000)/256; TL0=(65535-50000)%256; EA=1; ET0=1;void light() if(sm=0) ds=1; if(ds=1) TR0=1; void yanshi() if(tt=20) tt=0; sec+; if(sec=60) sec=0; min+; if(min=aa) TR

7、0=0; inin(); void keytt() if(keyt=0) delay(5); if(keyt=0) aa+; P0=timingaa; if(aa=5) aa=1; delay(5); void main() keyt=1; LE=0; aa=2; P0=timingaa; inin(); while(1) keytt(); light(); yanshi(); void delay(uint z) uint i,j; for(i=1000;i0;i-) for(j=z;j0;j-);void timer0() interrupt 1 TH0=(65535-50000)/256

8、; TL0=(65535-50000)%256; tt+;时钟芯片控制电路图6定时电路DS1302的复位脚RST接单片机的P3.5脚,输入输出引脚I/O 接单片机的.脚,串行时钟SCLK接单片机的.脚,通过对DS1302输入程序,将定时时间显示在数码管上,通过单片机来控制灯的特定时间的亮灭。定时程序如下:#include#include#define uchar unsigned char#define uint unsigned intsbit SCK=P36; /时钟sbit SDA=P34; /数据sbit RST=P35; /CE端口 控制复位?uint k,num;bit readr

9、tc_flag; /定义标志uchar tempdata7=0,0,12,13,7,2,12;uchar tempdisplay8;uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40;uchar code WAN=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f; / uchar read_ds1302(uchar temp);/*定时器0初始化*/void inin() TMOD=0x01; TH0=(65536-4000)/256; TL0=(65536-4000)%2

10、56; EA=1; ET0=1; TR0=1; num=0; k=0; /*八次写一个字节*/void write_ds1302_byte(uchar temp) uchar i; for(i=0;i=1; /*写入ds1302*/void write_ds1302(uchar address,uchar dat) RST=0; /数据、地址传送中止 _nop_(); SCK=0; _nop_(); /一个机器周期 RST=1; /逻辑控制有效 _nop_() ; write_ds1302_byte(address); write_ds1302_byte(dat); RST=0;/*写时钟初值

11、*/void set_rtc() uchar i,temp; for(i=0;i7;i+) temp=tempdatai/10; tempdatai=tempdatai%10; tempdatai=tempdatai+temp*16; write_ds1302(0x8e,0x00); /停止写保护 write_ds1302(0x80,tempdata0); write_ds1302(0x82,tempdata1); write_ds1302(0x84,tempdata2); write_ds1302(0x86,tempdata3); write_ds1302(0x88,tempdata4);

12、write_ds1302(0x8a,tempdata5); write_ds1302(0x8c,tempdata6); write_ds1302(0x8e,0x80); /写保护/* tempdisplay7=tempdata2/16; tempdisplay6=tempdata2&0x0f; tempdisplay5=10; tempdisplay4=tempdata1/16; tempdisplay3=tempdata1&0x0f; tempdisplay2=10; tempdisplay1=tempdata0/16; tempdisplay0=tempdata0&0x0f; */ /*读

13、出时间到tempdata中*/uchar read_ds1302(uchar address) uchar i; uchar tmp=0x00; RST=0; _nop_(); SCK=0; _nop_(); RST=1; _nop_(); write_ds1302_byte(address); for(i=0;i=1; SCK=1; if(SDA) tmp|=0x80; SCK=0; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); return (tmp); /*读时钟数据*/void read_rct() uch

14、ar i,temp; tempdata0=read_ds1302(0x81); tempdata1=read_ds1302(0x83); tempdata2=read_ds1302(0x85); tempdata3=read_ds1302(0x87); tempdata4=read_ds1302(0x89); tempdata5=read_ds1302(0x8b); tempdata6=read_ds1302(0x8d); for(i=0;i7;i+) temp=tempdatai/16; tempdatai=tempdatai%16; tempdatai=tempdatai+temp*10;

15、 /*主程序*/void main() inin(); /初始化定时器0 set_rtc(); /写入时钟初值 while(1) if(readrtc_flag) readrtc_flag=0;/ read_rct(); tempdisplay7=tempdata2/10; tempdisplay6=tempdata2%10; tempdisplay5=10; tempdisplay4=tempdata1/10; tempdisplay3=tempdata1%10; tempdisplay2=10; tempdisplay1=tempdata0/10; tempdisplay0=tempdat

16、a0%10; void timer0() interrupt 1 TH0=(65536-4000)/256; TL0=(65536-4000)%256; P2=WANk; P0=tabletempdisplayk; k+; if(k=8) k=0; num+; if(num=2) readrtc_flag=1; num=0; 结论本设计是基于单片机的声光控制,实用性强,应用围广,适合于家庭、办公室、楼房、商店等场所使用。本设计是用单片机来实现开关的延时。本文从原理出发,介绍了本系统各个单元模块的电路原理和实现的功能,通过声音的采集、放大并经过与非门以传送到单片机;利用光敏电阻的随光照强度增强而阻值变小的特性,并结合三极管和电流放大输送到单片机来达到光控的目的。通过本次的设计学习,使我更加深了对课本的了解。将我学到的知识应用到了实践当中,深化了对设计的认识。使我在设计实践中获得新知识,在老师和同学的关怀帮助下,让我们学会了分析和设计电路的步骤。同时,也培养了我们的团队精神,是一次很好的锻炼机会。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1