基于单片机控制的体感声控器 毕业设计.docx_第1页
基于单片机控制的体感声控器 毕业设计.docx_第2页
基于单片机控制的体感声控器 毕业设计.docx_第3页
基于单片机控制的体感声控器 毕业设计.docx_第4页
基于单片机控制的体感声控器 毕业设计.docx_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

基于单片机控制的体感声控器 指导老师: 姓名: 学号:2011111200423学院:江西太阳能科技职业学院系部:11光伏发电系班级:11发电4班2013年10月23日摘要随着人们生活品质的不断提高,电器控制的方法也是日新月异。从人工的开关、监视、保护到今天的“一键开关”、智能监护系统。这一大发展的目的其中一点就是为了更人性化,特别是在家用电器身上更能体现出来。设计就是为了使电器更人性化,摆脱调音时还要调节音量按钮的过程。本设计是基于stc89c51单片机的外置音响声控装置,利用超声波技术简单捕捉外部动作。关键字:人性化 音响控制单片机超声波abstract目录摘要abstract1.绪论1.0课题设计的目的及意义041.1设计简介042.系统硬件结构设计2.0音量控制 2.1超声波测距2.2单片机控制模块2.3音频传输及供电设备2.4总系统电路图3.系统软件设计3.0数字音调芯片器控制3.1超声波测距算法及控制总控制4.总结致谢参考文献绪论设计的目的随着人们生活品质的不断提高,电器控制的方法也是日新月异。从人工的开关、监视、保护到今天的“一键开关”、智能监护系统。这一大发展的目的其中一点就是为了更人性化,特别是在家用电器身上更能体现出来。设计就是为了使电器更人性化,摆脱调音时还要调节音量按钮的过程。设计的意义研究人们对感应电器的需求设计简介模块通过3.5mm双公头音频线连接声源。通电后超声波模块开始测量水平方向距离,经过单片机计算后,控制调整fm62429数字音量控制芯片已达到调音的目的,最后经过3.5mm母头与后级功放相连。为防止误操作(过路人、甩手、操作距离过远),设计采取1m内操作有效,防“假操作”控制。设计用到的超声波探头为1对发射接收管,有较低的测量角度,只能达到1维的测量效果。控制操作部揍为持物(物体需可有效反射超神波)停顿一定时间(最长1s)后靠近探头为增音量,原理为减。为增加实用性下次开机会自动读取上次关机时的音量。2系统硬件结构设计2.0数字音量控制本次设计采用fm62429数字音量控制芯片。fm62429为双通道数字音量控制芯片是复旦微电子所设计的用来调节音频信号幅度的专用芯片。可与m62429完全兼容。fm62429采用串行数据控制,音量调节范围:083db(1db/step)推荐工作范围:vcc=4.5-5.5(v)最大功耗625mw。封装:引脚说明:硬件连接:2.1超声波测距声波是物体机械振动状态(或能量)的传播形式。所谓振动是指物质的质点在其平衡位置附近进行的往返运动。譬如,鼓面经敲击后,它就上下振动,这种振动状态通过空气媒质向四面八方传播,这便是声波。超声波是振动频率大于20000hz以上的,其每秒的振动的次数(频率)甚高,超出了人耳听觉的上限,人们将这种听不见的声波叫做超声波。超声和可闻声本质上是一致的,它们的共同点都是一种机械振动,通常以纵波的方式在弹性介质内会传播,是一种能量的传播形式,其不同点事超声频率高,波长短,在一定距离内沿直线传播具有良好的束射性和方向性。超声波的特性:(1)超声波在介质传播过程中,会发生衰减和散射。由于受介质和杂质的阻碍或吸收,其强度会产生衰减。(2)超声波声束能集中在特定的方向上,具有良好的指向性。超声波可以在固体、液体和气体中以不同的速度进行传播,其速度受介质温度、压力等因素的影响,但在相同外部环境下,超声波在同一介质中的传播速度是一常数。(3)超声波在异种介质的界面上会产生发射、叠加等现象。实用的超声测距方法有两种,一种是在被测距离的两端,一端发射,另一端接收的直接波方式,适用于身高计;一种是发射波被物体反射回来后接收的反射波方式,适用于测距仪。此次设计采用反射波方式。测距仪的分辨率取决于对超声波传感器的选择。超声波传感器是一种采用压电效应的传感器,常用的材料是压电陶瓷。由于超声波在空气中传播时会有相当的衰减,衰减的程度与频率的高低成正比;而频率高分辨率也高,故短距离测量时应选择频率高的传感器,而长距离的测量时应用低频率的传感器。声波在其传播介质中被定义为纵波。当声波受到尺寸大于其波长的目标物体阻挡时就会发生反射; 反射波称为回声。假如声波在介质中传播的速度是已知的, 而且声波从声源到达目标,而返回声源的时间可以测量得到, 那么就可以计算出从声波到目标的距离本模块采用双机通讯由主机stc89c52控制stc11达到收发的目的。模块与本机的硬件连接:2.2单片机主控stc89c52是stc公司生产的一种低功耗、高性能cmos8位微控制器,具有 8k 在系统可编程flash存储器。stc89c52使用经典的mcs-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位cpu 和在系统可编程flash,使得stc89c52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能: 8k字节flash,512字节ram, 32 位i/o 口线,看门狗定时器,内置4kb eeprom,max810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外 stc89c52 可降至0hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,cpu 停止工作,允许ram、定时器/计数器、串口、中断继续工作。掉电保护方式下,ram内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35mhz,6t/12t可选参数:1. 增强型8051单片机,6 时钟/机器周期和12 时钟/机器周期可以任意 选择,指令代码完全兼容传统8051.22. 工作电压:5.5v3.3v(5v单片机)/3.8v2.0v(3v 单片机)3.工作频率范围:040mhz,相当于普通8051 的080mhz,实际工作 频率可达48mhz4. 用户应用程序空间为8k字节5. 片上集成512 字节ram6. 通用i/o 口(32 个),复位后为:p0/p1/p2/p3 是准双向口/弱上拉, p0 口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为 i/o 口用时,需加上拉电阻。7. isp(在系统可编程)/iap(在应用可编程),无需专用编程器,无 需专用仿真器,可通过串口(rxd/p3.0,txd/p3.1)直接下载用户程 序,数秒即可完成一片8. 具有eeprom 功能9. 共3 个16 位定时器/计数器。即定时器t0、t1、t210.外部中断4 路,下降沿中断或低电平触发电路,power down 模式可 由外部中断低电平触发中断方式唤醒11. 工作温度范围:-40+85(工业级)/075(商业级) 引脚:设计原理图如下2.3音频传输及电源音频设备: 本次设计采用3.5mm标准开关型音频插座开关型的2/3,4/5端是两个开关,当没有插头插入时,2/3,4/5端是连通的,当插头插入时2/3,4/5端断开。电源传输设备:考虑到音响一般用于电脑上,而且当下usb充电器已经很普遍,技术也很成熟,能提供稳定的5v标准电压。所以本次设计采用usb传输供电。又考虑到现在最为普遍的是a型miniusb公头数据线,即采用此种方案: miniusb引脚定义:针脚名称说明接线颜色1vcc+5v电压红色2d-数据线负极白色3d+数据线正极绿色4idpermits distinction ofmicro-a- and micro-b-plugtype a:connected to groundtype b:not connectednone5gnd接地黑色本次设计只涉及到电源供电部分,所以只用到1、5引脚。2.4总电路原理图:3系统软件设计3.0数字音调芯片器控制芯片时序图:交流特性:数据输入格式:d0:0为第一通道控制1为第二通道控制d1:0为二通道在同一时刻控制(此时d0无效) 1为单通道控制d2-d8:d9=1;d10=1;软件c程序如下:“fm62429.c”#include #include #define unchar unsigned char #define unint unsigned intsbit m62429_clk = p16; sbit m62429_dat = p17; unchar vol;void m62429_write(unchar dat)unchar i;dat|=0x80;m62429_dat=1;m62429_clk=0;_nop_();_nop_();_nop_();_nop_();m62429_dat=0;_nop_(); _nop_(); _nop_();_nop_(); m62429_clk=1; /_nop_();_nop_();_nop_();_nop_();m62429_dat=0;_nop_();_nop_();_nop_();_nop_(); m62429_clk=0;_nop_();_nop_(); _nop_();_nop_(); m62429_dat=0;_nop_(); _nop_(); _nop_();_nop_();m62429_clk=1; /_nop_();_nop_();m62429_dat=0;_nop_();_nop_(); _nop_();_nop_();m62429_clk=0;_nop_();_nop_(); _nop_();_nop_();for(i=0;ii)&0x01;_nop_();_nop_();_nop_();_nop_();m62429_clk=1;_nop_();_nop_();_nop_();_nop_();m62429_dat=0;_nop_();_nop_(); _nop_();_nop_();m62429_clk=0;_nop_();_nop_(); _nop_();_nop_();m62429_dat=1;_nop_(); _nop_();_nop_();_nop_();m62429_clk=1;_nop_();_nop_(); _nop_();_nop_();m62429_clk=0;_nop_();_nop_(); _nop_();_nop_();/m62429_dat=0;/_nop_();_nop_(); _nop_();_nop_(); void m62429_con(bit flag)if(flag)&(vol230)vol-;/if(vol=230)vol=230; m62429_write(vol);3.1超声波测距算法及控制总控制因为设计采用的是超声波模块,所以不用再去控制主机发射40khz的超声波与调制接收,只需要给超声波模块所需的时序即可达到收发的目的,具体操作如下:超声波时序图上述时序图表明主机只需提供一个10us以上的脉冲触发信号,该模块将发出8个40khz周期电平并检测回波。一旦检测到有回波信号则输出回响信号。回响信号的脉冲宽度与所测的距离成正比。有此通过发射信号到收到的回响信号时间间隔可以计算得到距离。s=t*v/2上式s为测得物体的距离,tv为超声波在介质中的传播速度,空气中为340m/s。主程序:#include #include fm62429.c /#include e2rom.c#define unchar unsigned char #define unint unsigned int sfr wdt_contr=0xe1; /看门狗sbit send=p12;extern unchar vol;unchar numh,numl,send_time,nn;long int h1,h2;bit flag_far;/置1开启体感控制bit flag_star; /超声波接收标志bit flag_one; /首次发射检测bit flag_test;bit flag_long;sbit d1=p20; void delay_ms(unint a)unchar y;unint x;for(x=a;x0;x-)for(y=121;y0;y-);void delay_us()_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();void init()wdt_contr=0x34;send=0;m62429_clk=0;m62429_dat=0;/vol= byte_read(0x2000);vol=238;/必须给初值m62429_write(vol);cp_rl2=1;th2=0xff;tl2=0xfe;ea=1;et2=1;tr2=1;exen2=1;/vol=i2c_read(2);/m62429_write(vol);/delay_ms(10);/send=1;/delay_us();delay_us();/send=0;void main()init();while(1) if(flag_test)flag_test=0;h1=numh*256+numl-61440;if(h1-h2)50)|(h2-h1)50)flag_star=1;else delay_ms(100); /th2=0xf0;tl2=0;send=1;delay_us();delay_us();delay_us();delay_us();send=0;tr2=1;ea=1;exen2=1; if(flag_one)h2=numh*256+numl-61440;flag_one=0;delay_ms(400);th2=0xf0;tl2=0;send=1;delay_us();delay_us();delay_us();delay_us();send=0;tr2=1;ea=1;exen2=1;flag_test=1; if(flag_star)h2=h1;h1=numh*256+numl-61440; if(h2-h1)42)&(h2-h1)42)&(h1-h2)500)m62429_con(0);delay_ms(200);/sectorerase(0x2000);/byte_write(0x2000,vol);th2=0xf0;tl2=0;send=1;delay_us();delay_us();delay_us();delay_us();send=0;ea=1;tr2=1;exen2=1;/*num=numh*256+numl;h2=h1; /h2为上次h1的值z=(float)(num-59648)/10000;h1=(float)170*z/10;if(nn=10)nn=0;if(h1h2)&(volh2)&(vol240)m62429_con(0); /if(h2-h15)|(h1-h25)&(flag_one) /首次检测时需确认实际状态,防止无意的误操作/send_time+;/if(send_time=5)flag_far=1;flag_one=0;send_time=0;/ if(flag_far)/确认为调音状态后进行后续调音部分/i2c_write(2,vol);/for(i=0;i(vol-200)/2;i+)/p2=(p21)|0x01; */ void timer2() interrupt5if(tf2)exf2=0;exen2=0;/ea=0;tr2=0; /停止t2中断,因为如果tf2置位则说明超过需要检测的范围 /nn=0;tf2=0; flag_one=0;flag_test=0;flag_star=0;flag_long=1;flag_test=1;th2=0xf0; /最大控制距离约1m:(340*t)/2=h(h=1)t约为5882.3us,65535-5882=59635。为方便16位换算,取59648。tl2=0;wdt_contr=0x34;delay_ms(700); /防声波叠加干扰 send=1; /再次发射delay_us();delay_us();send=0; tr2=1;/ea=1;exen

温馨提示

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

评论

0/150

提交评论