欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    遥控电子琴实验报告.doc

    • 资源ID:56207183       资源大小:196KB        全文页数:16页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    遥控电子琴实验报告.doc

    摘要:电子琴是现代电子科技与音乐结合的产物,是一种新型的乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。我们设计的这个红外遥控电子琴以单片机做为主控核心,与蜂鸣器、红外遥控器相连。这个设计主要是利用单片机的定时器,使它产出不同的频率,调整频率来产生相应的音调。在红外遥控器上有21个键,按纵向顺序分别对应电子琴三个音阶的1-7音。目 录一、需求分析 3二、总体设计 3三、详细设计 12四、收获 15五、附录 16一、需求分析大家都知道当物体振动时,能够发出声音。振动的频率不同,声音的音调就不同。在简易电子琴里有许多特殊的电装置,每个电装置一工作,就会使喇叭发出一定频率的声音。当按动某个琴键时,就会使与它对应的电装置工作,从而使喇叭发出某种音调的声音。简单的说就是按键触发信号发给处理器,再由处理器调用音色库音色通过功放电路输出或者通过数码接口进行数字输出。振荡器是根据需要产生一定频率的振荡信号,振荡信号通过分频器分解成不同频率的信号输送到放大器,放大器将信号放大,推动扬声器发出声音。按下遥控器的一个键,就等于接通一只开关,只允许某一种频率的信号通过到放大器里去,扬声器就发出一个音来。这样,按照一定的演奏规律来按键,就能奏出美妙的音乐来。利用定时器可发出不同频率的脉冲,不同频率的脉冲经喇叭驱动电路放大滤波后,就会发出不同音调。其次,定时器按设置的定时参数产生中断,这一次中断发出脉冲低电平,下一次反转发出脉冲高电平,由于定时参数不同,就发出不同频率的脉冲。当系统扫描到红外遥控器上有键按下,则快速检测出是哪个键被按下,然后单片机的定时器被启动,发出一定频率的脉冲,然后蜂鸣器发出一个音调。 二、总体设计红外遥控器21个按键P32口P15口蜂鸣器STC89C521、红外遥控发射电路结构框图:2、红外遥控发射电路管脚图:3、红外遥控发射电路管脚说明:管脚号符号输入输出功能描述23、24、16KI0-KI7I键扫描输入端7REMO数据输出管脚(遥控输出)8Vdd电源正极9SELI选择管脚10OSCOO振荡器管脚(输出)11OSCII振荡器管脚(输入)12Vss电源负极13LMPO输出LED指示(呈闪烁状态)2114KI/O0KI/O7I/O键扫描输入/输出管脚22CSSI键扫描输入4、红外遥控发射电路编码方式:WD6122 所发射的一帧码含有一个引导码,16位的用户编码和8位的键数据码、键数据码的反码也同时被传送。引导码由一个9ms的载波波形和4.5ms的关断时间构成,它作为随后发射的码的引导,这样当接收系统是由微处理器构成的时候,能更有效地处理码的接收与检测及其它各项控制之间的时序关系。编码采用脉冲位置调制方式(PPM)。利用脉冲之间的时间间隔来区分“0”和“1”。每次8位的码被传送之后,它们的反码也被传送,减少了系统的误码率。5、红外遥控发射电路遥控输出波形:WD6122 的输出波形如下图所示:6、红外遥控器键码图:初始化设置:#include <reg51.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned intuint code yindiao=63625,63833,64019,64104,64260,64400,64524, /低音 64580,64685,64778,64820,64898,64968,65030, /中音 65058,65110,65157,65178,65217,65252,65283; /高音uchar n,ms,num;void qiuzhi(uchar num);void delay(uchar x); void beep(uchar ms);void delay1(uchar x);sbit IRIN = P32; /红外接收器数据线sbit BEEP = P15; /蜂鸣器驱动线uchar IRCOM7;红外接受函数:void IR_IN() interrupt 0 using 0 uchar j,k,N=0; EX0 = 0; /关掉外部中断防止中断的再次发生进入检测引导码阶段(9ms的低电平4.5ms的高电平) delay(15); if (IRIN=1) EX0 =1; /9ms的检测检测结束从新打开外部中断 return; /确认IR信号出现 while (!IRIN) /等IR变为高电平,跳过9ms的前导低电平信号。 delay(1); for (j=0;j<4;j+) /收集四组数据 for (k=0;k<8;k+) /每组数据有8位 while (IRIN) /等 IR 变为低电平,跳过4.5ms的引导高电平信号。 delay(1); while (!IRIN) /等 IR 变为高电平 delay(1); while (IRIN) /计算IR高电平时长(0和1的低电平的时长一样的,只要判断高电平时长超过0.56ms并小于1.12ms为1否则为0) delay(1); N+; if (N>=30) EX0=1; return; /0.14ms计数过长自动离开。 /高电平计数完毕 IRCOMj=IRCOMj >> 1; /数据最高位补“0” if (N>=8) IRCOMj = IRCOMj | 0x80; /高电平持续时间大于1.12ms则数据最高位补“1” N=0; if (IRCOM2!=IRCOM3) / 判断有没有误码(有责放弃没有判断键码) EX0=1; return; switch(IRCOM2) case 0x45: num=0;qiuzhi(num);ms=n;break;case 0x44: num=1;qiuzhi(num);ms=n;break; case 0x07: num=2;qiuzhi(num);ms=n;break;case 0x16: num=3;qiuzhi(num);ms=n;break;case 0x0c: num=4;qiuzhi(num);ms=n;break;case 0x08: num=5;qiuzhi(num);ms=n; break;case 0x42: num=6;qiuzhi(num);ms=n;break;case 0x46: num=7;qiuzhi(num);ms=n;break;case 0x40: num=8;qiuzhi(num);ms=n;break;case 0x15: num=9;qiuzhi(num);ms=n;break; case 0x19: num=10;qiuzhi(num);ms=n;break;case 0x18: num=11;qiuzhi(num);ms=n;break; case 0x1c: num=12;qiuzhi(num);ms=n;break; case 0x52: num=13;qiuzhi(num);ms=n;break;case 0x47: num=14;qiuzhi(num);ms=n;break;case 0x43: num=15;qiuzhi(num);ms=n;break;case 0x09: num=16;qiuzhi(num);ms=n;break;case 0x0d: num=17;qiuzhi(num);ms=n;break;case 0x5e: num=18;qiuzhi(num);ms=n;break;case 0x5a: num=19;qiuzhi(num);ms=n;break; case 0x4a: num=20;qiuzhi(num);ms=n;break;default: break; beep(ms); EX0 = 1; 计算频率函数:void qiuzhi(uchar num)n=(65536-yindiaonum)/30;蜂鸣器函数:void beep(uchar ms)/蜂鸣器 unsigned char i; for (i=0;i<120;i+) delay1(ms); BEEP=!BEEP; /BEEP取反 BEEP=1; /关闭蜂鸣器延时函数:void delay(unsigned char x) /x*0.14ms unsigned char i; while(x-) for (i = 0; i<13; i+) void delay1(unsigned char x) /x*0.03ms unsigned char i; while(x-) for (i = 0; i<3; i+) 主函数:void main() IRIN=1; /I/O口初始化 BEEP=1; IE = 0x81; /允许总中断中断,使能 INT0 外部中断 IT0=1; while(1);三、详细设计(硬件(和cpu的连法)软件(扫描方式,具体的值)连线图: CPU 蜂鸣器 红外 振荡电路程序流程图:开始初始化设置判断是否有键按下查看是哪个键被按下,并跳到相应的程序段调用子程序结束四、收获通过两个多星期的课程设计,从选题到查资料,从完善原理图到写报告文档,让我明白了课程设计是名副其实的综合性训练,不仅要运用学过的单片机技术及应用,还要学会查阅各种图书资料和工具书,并将新知识和所学的结合起来为自己所用。要注意积累每次的体会和错误,下次碰到该注意的地方就要小心点,碰到出过错误的地方就要格外注意不要再犯同样的错误,这种方法可以适用做任何一件事。在设计中遇到一些困难和问题,在向老师请教和与同学的讨论中,解决了问题,觉得很有收获。在为期两周的课程设计当中,感触最深的便是实践联系理论的重要性,当遇到实际问题时,我们要学会结合书本知识、查阅资料才能解决问题。运用所学的知识,一步一步的去探索,才可以解决遇到的问题。本次实习使我们对电子元件及电路设计有一定的感性和理性认识;培养和锻炼我们的实际动手能力。使我们的理论知识与实践充分地结合,作到不仅具有专业知识,而且还具有实践动手能力,能分析问题和解决问题,为以后的顺利就业作好准备。本次实习的对我们很重要,是我们应用电子技术专业学生实践中的重要环节。在以前我们学的都是一些理论知识。两周的的时间虽然很短,但是我们学到的知识却很多,以前我们光只注意一些理论知识,并没有专门的练习我们的实际动手能力。这次的实习使我意识到我的操作能力的不足,在理论上也有很多的缺陷。要在以后的学习中不断提高自己。五、附录:

    注意事项

    本文(遥控电子琴实验报告.doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开