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

开通VIP
 

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

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

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(振动传感警报装置.doc)为本站上传会员【s4****5z】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

振动传感警报装置.doc

1、 硬件实训设计报告 湖 南 大 学 课设题目: 振动传感警报装置 学生姓名: 邹 雄 专业班级: 信 息 安 全 一 班 学号: 201208060128 学院: 信息科学与工程学院 “振动传感警报装置”设计报告说明 (一) :设计思路和方法 “警报器

2、是利用流水灯、振动传感器、无源蜂鸣器组成的一种装置,当振动传感器受到振动时,流水灯和蜂鸣器会同时工作,以此来提醒客户;而客户可通过按钮Key1能够停止其工作或等待歌曲播放完为止,而按下复位键后再次振动其又会工作。 (二) :“警报器”电路原理图 (三) :电路工作原理 振动传感器是一种简单的器件,管内有一跟固定的导线,在这根导线的周围有另一根较细的导线以螺旋状环绕它。可以想象为一个弹簧中间有一跟导线。在不震动时,两根导线不会相碰,一旦振动发生,两根导线就会短接。所以我们只需判断导线是否短接了,就可以知道振动是否发生。 P0口的8位输出分别控制8个发光二极管L0

3、~L7的阳极;而P2.3经反相器U4C控制8个发光管阴极E3;电阻R15~R22为限流电阻。当振动传感器短接时,对应的二极管将会发光。 只需改变Beep端口的电平,产生一个周期性的方波即可使蜂鸣器发生声音,不同的频率发出的声音不同。其中,ULN2003是一个功放,用于放大电流。电阻R14和电容C21是用来保护电路的。若人为将Beep端口的电平一直置为高电平,在没有保护电路的情况下,容易烧毁电路,但即使有保护电路也应该注意不要讲Beep端口长时间之余高电平,这对器件也是有一定损害的。 每一个音符的发声频率是不同的,我们需要用计时器来精确计时,用以产生方波,这样才能发出不用的音符声音。C调各音

4、符频率与计数值如下图所示,以下的简谱码是在晶振为12MHz的情况下计算的,换算为16进制的简谱码如程序中quzi[]数组所示。 本程序中,数组music[]即是要播放的音乐,格式为音符,节拍,音符,节拍,如此循环下去。音符为要发出的音调,而节拍则是声音的持续时间。如图,在数组music[]中,音符表示的格式为:十位代表是低八度,中八度还是高八度,1代表高八度,2代表中八度,3代表高八度,个位代表简谱的音符,例如,0x15代表低八度的S0,如图即是低5 S0,0x21代表中八度的DO,如图即是中1 D0。音符中,0x00代表结束符,表示整首歌曲演唱完毕,而0xff代表休止符,表示要休止10

5、0ms。遇到这两种情况,都应该重新执行循环中的第一步。其余情况则是正常播放。程序烧入单片机后,需要振动传感器振动才会进行演奏。 (四) :程序总框图设计流程 (五) :相关寄存器及IO引脚的配置 1. P0(8位)和P2.3需要设置成推挽输出,以驱动电路正常发光。涉及寄存器及配置值如下: P2M1=0x00; P2M0=0xff; P0M1=0x00; P0M0=0xff; 2.蜂鸣器引脚: sbit beep

6、P3^4; //蜂鸣器 3.按键1引脚: sbit key1=P3^2; //定义按键1 4.振动传感器引脚: sbit vibrate=P2^4; //振动传感器 (六):详细设计参见后续工程代码 (七):测试方法 1. 用STC ISP默认设置,打开工程中的HEX并下载; 2. 敲动一下振动传感器,流水灯随着蜂鸣器的歌曲节奏从右至左依次闪动; 3. 按下Key1键,蜂鸣器及流水灯均都停下工作。 源代码: #include

7、C15F2K60S2.h> #define uint unsigned int #define uchar unsigned char sbit beep=P3^4; //蜂鸣器 sbit Key1=P3^2; //Key1对应触发外部中断0 sbit vibrate=P2^4; //振动传感器 /********************** 引脚别名定义 ***********************/ sbit Led_sel=P2^3; /********************** 变量定义 ***********************/

8、 uchar G_value; uchar timeh,timel,zanting=0; //定义定时器的重装值 uchar code music[] ={ //音乐代码,歌曲为《同一首歌》,格式为: 音符, 节拍, 音符, 节拍, 0x16,0x05,0x17,0x05, 0x21,0x15,0x17,0x05, 0x21,0x10,0x23,0x10, 0x17,0x30,0x23,0x10, 0x16,0x15,0x15,0x05, 0x16,0x10,0x21,0x10, 0x15,0x30,0x13,0x10, 0x14,0x15,0x13,0

9、x05, 0x14,0x05,0x21,0x05, 0x21,0x10,0x13,0x30, 0x21,0x10,0x17,0x10, 0x14,0x05,0x14,0x10, 0x17,0x10,0x17,0x20, 0xff, 0x16,0x05,0x17,0x05, 0x21,0x15,0x17,0x05, 0x21,0x10,0x23,0x10, 0x17,0x30,0x13,0x05, 0x13,0x05,0x16,0x15, 0x15,0x05,0x16,0x10, 0x21,0x10,0x15,0x30, 0x13,0x10,0x14,0x10, 0

10、x21,0x05,0x17,0x05, 0x17,0x10,0x21,0x10, 0x22,0x10,0x23,0x05, 0x21,0x20,0xff, 0x21,0x05,0x17,0x05, 0x16,0x10,0x17,0x10, 0x15,0x10,0x16,0x20, 0xff, 0x21,0x05,0x22,0x05, 0x23,0x15,0x22,0x10, 0x23,0x10,0x24,0x10, 0x25,0x05,0x22,0x30, 0x15,0x10,0x22,0x03, 0x21,0x03,0x17,0x03, 0x21,0x03,0x2

11、1,0x10, 0x21,0x05,0x22,0x10, 0x23,0x05,0x23,0x40, 0x16,0x05,0x17,0x05, 0x21,0x10,0x17,0x05, 0x21,0x05,0x22,0x10, 0x21,0x15,0x15,0x05, 0x15,0x20,0x24,0x10, 0x23,0x10,0x22,0x10, 0x21,0x10,0x23,0x30, 0x16,0x05,0x17,0x05, 0x21,0x15,0x17,0x05, 0x21,0x10,0x23,0x10, 0x17,0x30,0x13,0x10, 0x16,

12、0x15,0x15,0x05, 0x16,0x10,0x21,0x10, 0x15,0x30,0x13,0x10, 0x14,0x10,0x21,0x05, 0x17,0x05,0x17,0x10, 0x21,0x10,0x22,0x10, 0x23,0x05,0x21,0x05, 0x21,0x20,0x21,0x05, 0x17,0x05,0x16,0x10, 0x17,0x10,0x15,0x10, 0x16,0x40,0x00,0x00 }; uchar code quzi[] ={ //此数组数据为各个音符在定时器中的重装值,第一列是高位,第二列是低位

13、 0xf8,0x8c, //低八度,低1 0xf9,0x5b, 0xfa,0x15, //低3 0xfa,0x67, 0xfb,0x04, //低5 0xfb,0x90, 0xfc,0x0c, //低7 0xfc,0x44, //中央C调 0xfc,0xac, //中2 0xfd,0x09, 0xfd,0x34, //中4 0xfd,0x82, 0xfd,0xc8, //中6 0xfe,0x06, 0xfe,0x22, //高八度,高1 0xfe,0x56, 0xfe,0x6e, //高3 0xfe,0x9a,

14、 0xfe,0xc1, //高5 0xfe,0xe4, 0xff,0x03 //高7 }; /********************** 函数名称:void delay(unsigned int xms) 功能描述:延时 入口参数:xms:输入需要延时的毫秒值 出口参数:无 备注: ***********************/ void delay(unsigned int xms) { uint i,j; for(i=xms;i>0;i--) for(j=124;j>0;j--); } /**********

15、 函数名称:uchar quyin(uchar tem) 功能描述:在quzi数组中,找到music数组定义的简谱音符的重装值,并返回其在quzi数组中的位置 入口参数:tem:music数组中定义的简谱音符 出口参数:返回的是tem音符在quzi数组中的位置值 备注: ***********************/ uchar quyin(uchar tem) { uchar qudiao,jp,weizhi; //定义曲调,音符和位置 qudiao=tem/16; //高4位是曲调值 jp=tem%16; /

16、/低4位是音符 if(qudiao==1) //当曲调值为1时,即是低八度,低八度在quzi数组中基址为0 qudiao=0; else if(qudiao==2) //当曲调值为2时,即是中八度,中八度在quzi数组中基址为14 qudiao=14; else if(qudiao==3) //当曲调值为3时,即是高八度,高八度在quzi数组中,基址为28 qudiao=28; weizhi=qudiao+(jp-1)*2; //通过基址加上音符作为偏移量,即可定位此音符在quzi数组中的位置 return weizhi;

17、 //返回这一个位置值 } /********************** 函数名称:void playmusic() 功能描述:播放音乐 入口参数:无 出口参数:无 备注: ***********************/ void playmusic() { uchar p,m,tem; //m为节拍 uchar i=0; while(1) { while(zanting) beep=0; p=music[i]; //如果碰到结束符,延时1秒,回到开始再来一遍 if(p=

18、0x00) { i=0; delay(100); break; } else if(p==0xff) //若碰到休止符,延时100ms,继续取下一音符 { i=i+1; delay(100); TR0=0; } else //正常情况下取音符和节拍 { tem=quyin(music[i]); //取出当前音符在quzi数组中的位置值 timeh=quzi[tem]; //把音符相应的计时器重装载值赋予timeh和timel ti

19、mel=quzi[tem+1]; i++; TH0=timeh; //把timeh和timel赋予计时器 TL0=timel; m=music[i]; //取得节拍 i++; } TR0=1; //开定时器1 delay(m*180); //等待节拍完成, 通过P3^4口输出音频 TR0=0;

20、 //关定时器1 P0=G_value; delay(100); G_value=G_value<<1; if(G_value==0x00) { P0=G_value; delay(100); G_value=0x01; } if(Key1==0) { if(Key1==0) { delay(10); //延时消抖 if(Key1==0) zanting=~zanting; //zanti

21、ng==1 暂停播放 vibrate=1; } } } } /********************** 函数名称:void init_sys() 功能描述:系统初始化,功能是配置IO口 入口参数:无 出口参数:无 备注: ***********************/ void init_sys() { P0M0=0xff; P0M1=0x00; P2M0=0x08; P2M1=0x00; P3M0=0x10; P3M1=0x00; P4M0=0x00; P4M1=0x00; P5M0=0x

22、00; P5M1=0x00; } /********************** 函数名称:void init() 功能描述:定时器的初始化 入口参数:无 出口参数:无 备注: ***********************/ void init() { TMOD=0x01; TH0=0xD8; TL0=0xEF; EA=1; ET0=1; TR0=0; //设置推挽输出// P2M1=0x00; P2M0=0xff; P0M1=0x00; P0M0=0xff; Led_sel=1; } vo

23、id main() { init_sys(); init(); P0=0x00; vibrate=1; while(1) { if(vibrate==0) { playmusic(); } } } /********************** 函数名称:void tim1() interrupt 1 功能描述:定时器0中断处理,重新装值,并把beep值取反,产生方波 入口参数:无 出口参数:无 备注: ***********************/ void tim1() interrupt 1 //计时器控制频率 { TH0=timeh; TL0=timel; if(zanting==1) beep=0; else { beep=~beep; } }

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服