




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
...wd......wd......wd...山东交通学院单片机原理课程设计说明书题目:简易电子琴设计院(系)别交通与物流工程学院专业物联网工程班级物联141学号140516112姓名解文博指导教师侯贻蒙二○一六年六月摘要本课题的主要内容就是用单片机实现简易电子琴的设计。本设计的主要内容是用AT89C52单片机为核心控制元件并与键盘、扬声器等模块聚城核心主控制模块,利用所给键盘的1,2,3,4,5,6,7,8,八个键,能够发出8个不同的音调,并且要求按下按键发声。当系统扫描到键盘上有键被按下,则快速检测出是哪一个键被按下,然后单片机的定时器被启动,发出一定频率的脉冲,该频率的脉冲经喇叭驱动电路放大滤波后,就会发出相应的音调。如果在前一个按下的键发声的同时有另一个键被按下,则启用中断系统,前面键的发音停顿,转到后按的键的发音程序,发出后按的键的音调。先根据要求设计硬件电路和编写相应的程序,然后进展仿真调试,最后细心焊接硬件电路图,将程序烤入芯片中,最终到达设计目的。本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比拟高等,具有一定的实用和参考价值。关键词:单片机,按键,音阶,扬声器1设计的目的和意义单片机〔单片微型计算机〕是大规模集成电路技术开展的产物,具有高性能、高速度、体积小、价格低廉、稳定可靠等特点。单片机的应用相当广泛,从平常的家用电器到航空航天系统和国防军事、尖端武器都能找到它的身影。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。音乐随着人们的生活水平也逐步提高已经成为了我们生活中很重要的一局部,在工作和学习之余,欣赏音乐不仅使身心得到放松,同时也提高人们的精神品质和个人素养。当代,爱好音乐的年轻人越来越多,也有不少人自己练习弹奏乐器,作为业余爱好和一种放松的手段,鉴于一些乐器学习难度大需花费太多精力,且其价格太过于高昂,使得一局部有这种想法的人不得不放弃这种想法,而电子琴又是一种新型的键盘乐器,它是现代电子科技与音乐结合的产物,价格相对廉价,能够满足一般爱好者的需求,因此,在现代音乐中扮演着重要的角色。故简易电子琴的研制具有一定的社会意义。2设计系统的功能利用所给键盘的1,2,3,4,5,6,7,8八个键,能够发出8个不同的音调当系统扫描到键盘上有键被按下单片机的定时器被启动,发出一定频率的脉冲,如果在该频率的脉冲经喇叭驱动电路放大滤波后,就会发出相应的音调。中间再按别的键则发另一音调的声音前一个按下的键发声的同时有另一个键被按下,则启用中断系统,前面键的发音停顿,转到后按的键的发音程序,发出后按的键的音调。并且要求按下按键发声,松开延时一段时间停顿3硬件系统构造3.1总体电路设计电子琴总体电路分别由单片机最小系统模块、显示模块、按键模块、发音模块四个模块组成。如以下列图所示。图3-1总体电路设计3.2原理图图3-2原理图3.3键盘设计键盘在单片机应用系统中是一个关键的部件,它能实现向计算机输入数据,传送命令等功能,是人工干预计算机的主要手段。键盘可以分为2类:独立连接式键盘和矩阵式键盘。(1)矩阵式键盘单片机系统中,假设按键较多时,通常采用矩阵式〔也称行列式〕键盘。矩阵式键盘由行线和列线组成,按键位于行、列线的穿插点上。显然,在按键数量较多时,矩阵式键盘较之独立式按键键盘要节省很多I/O口。矩阵式键盘中,行、列线分别连接到按键开关的两端,行线通过上拉电阻接到+5V上.当无键按下时,行线处于高电平状态;当有键按下时,行、列线将导通,此时,行线电平将由与此行线相连的列线电平决定。这是识别按键是否按下的关键。(2)独立连接式键盘独立式按键是直接用I/O口线构成的单个按键电路,其特点是每个按键单独占用一根I/O口线,每个按键的工作不会影响其它I/O口线的状态。独立式按键电路配置灵活,软件构造简单,但每个按键必须占用一根I/O口线,然而,在按键较多时,I/O口线浪费较大,不宜采用。独立式按键软件常采用查询式构造。先逐位查询每根I/O口线的输入状态,如某一根I/O口线输入为低电平,则可确认该I/O口线所对应的按键已按下,然后,再转向该键的功能处理程序。由于本程序较为简单,为了使用方便及节省资源,选择独立式键盘。以下列图为独立式键盘电路图:图3-3独立式键盘电路图键盘编程中主要考虑去抖动的问题。当测试说明有键被按下之后,紧接着就进展去抖动处理。因为键是机械开关构造,由于机械触点的弹性及电压突跳等原因,在触点闭合或断开的瞬间会出现电压抖动。为保证键识别的准确,在电压信号抖动的情况下不能进展行状态输入。为此需进展去抖动处理。去抖动有硬件和软件两种方法。硬件方法就是加去抖动电路,从根本上防止抖动的产生。软件消抖,在第一次检测到有键按下时,执行一段延时程序之后,再检测此按键,如果第二次检测结果仍为按下状态,CPU便确认此按键己按下,消除了抖动。3.4发音模块设计如以下列图所示,发音电路是由蜂鸣器、三极管、上拉电阻构成。由三极管来驱动扬声器发音的,同时加上拉电阻增强驱动电流,提高驱动能力。图3-4发音电路图一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系正确即可。4软件功能实现4.1软件系统流程分析〔1〕键盘扫描程序:检测是否有按键按下,有按键按下则记录按下键的键值,并跳转至功能转移程序;无按键按下,则返回键盘扫描程序继续检测。〔2〕琴键处理程序:根据检测到的按键值,查询音调表,给计时器赋值,使发出相应频率的声音。开场开场初始化初始化开启定时器开启定时器判断是否按键判断是否按键NN关闭定时器,无声音发出关闭定时器,无声音发出YY键盘扫描,确定按下的按键键盘扫描,确定按下的按键发出相应音调发出相应音调图4-1主程序流程图4.2关键代码的实现4.2.1键盘扫描unsignedcharkeys_scan(void){unsignedcharTmp,k=16;P2=0x0F;delay_1ms(2000);Tmp=P2^0x0F;switch(Tmp)//确定扫描的是哪一列{case1:k=0;break;case2:k=1;break;case3:k=2;break;case4:k=3;break;default:return16;//无键按下,返回}P2=0xF0;delay_1ms(2000);Tmp=(P2>>4)^0x0F;switch(Tmp)//确定扫描的是那一行{case1:k+=0;break;case2:k+=4;break;case3:k+=8;break;case4:k+=12;break;default:return16;//无键按下,返回}returnk;}4.2.2发声程序//音符发生的中断voidplay_tone()interrupt1{TH0=Sound_Temp_TH0;TL0=Sound_Temp_TL0;beep=!beep;}4.3其他关键技术定时器产生音乐原理利用单片机的内部定时器使其工作计数器模式〔MODE1〕下,改变计数值TH0及TL0以产生不同频率的方法产生不同音阶。例如,频率为523Hz,其周期T=1/523=1912μs,因此只要令计数器计时956μs/1μs=956,每计数956次时将I/O反相,就可得到中音DO〔523Hz〕。计数脉冲值与频率的关系式(如式2-1所示)是:N=fi÷2÷fr
2-1式中,N是计数值;fi是机器频率〔晶体振荡器为12MHz时,其频率为1MHz〕;fr是想要产生的频率。其计数初值T的求法如下:T=65536-N=65536-fi÷2÷fr例如:设K=65536,fi=1MHz,求低音DO〔261Hz〕、中音DO〔523Hz〕、高音DO〔1046Hz〕的计数值。T=65536-N=65536-fi÷2÷fr=65536-1000000÷2÷fr=65536-500000/fr低音DO的T=65536-500000/262=63627中音DO的T=65536-500000/523=64580高音DO的T=65536-500000/1046=65059音符频率表音符频率〔HZ〕简谱码〔T值〕音符频率〔HZ〕简谱码〔T值〕低1DO26263628#4FA#74064860#1DO#27763731中5SO78464898低2RE29463835#5SO#83164934#2RE#31163928中6LA88064968低3M33064021#693264994低4FA34964103中7SI98865030#4FA#37064185高1DO104665058低5SO39264260#1DO#110965085#5SO#41564331高2RE117565110低6LA44064400#2RE#124565134#646664463高3M131865157低7SI49464524高4FA139765178中1DO52364580#4FA#148065198#1DO#55464633高5SO156865217中2RE58764684#5SO#166165235#2RE#62264732高6LA176065252中3M65964777#6186565268中4FA69864820高7SI196765283采用查表程序进展查表时,可以为这个音符建设一个表格,有助于单片机通过查表的方式来获得相应的数据:低音0-19之间,中音在20-39之间,高音在40-59之间。用单片机弹奏电子琴,实际上是按照特定的频率,输出一连串的方波。为了输出适宜的方波,首先应该知道音符与频率的关系。5设计中的难点本次课程对知识的要求较为综合,我们用到了单片机,数字电路,单片机各引脚,中断系统原理等知识。在教师的帮助下,以及自己不断查找资料,慢慢进入状态。我们将编好的源程序输入电脑,编译后出现很多错误,这些错误有许多是平时实验遇到过的,例如:输入的分号格式不正确,零和字母O弄混淆。对于中断程序,运行过程中按键控制不稳定,不能按照预想的要求控制中断。键盘编程中主要考虑去抖动的问题。当测试说明有键被按下之后,紧接着就进展去抖动处理。因为键是机械开关构造,由于机械触点的弹性及电压突跳等原因,在触点闭合或断开的瞬间会出现电压抖动。为保证键识别的准确,在电压信号抖动的情况下不能进展行状态输入。6设计结果当按下键盘的1,2,3,4,时,可以发出DO,RE,M,FA四个音调;按5,6,7,8,八个键,能够发出升一调的DO,RE,M,FA,如果在前一个按下的键发声的同时有另一个键被按下,则启用中断系统,前面键的发音停顿,转到后按的键的发音程序,发出后按的键的音调。7总结与心得在为期一周的单片机课程设计中,我在增长知识、提高能力的同时,产生了很深的感触。从初步定下方案到编出程序,从不断的运行排错到调试成功,在整个设计过程中,着实受益匪浅,不仅可以稳固以前所学过的知识,而且学到了很多在书本上所没有学到过的东西。通过这次的课程设计作品的制作让我对单片机的理论有了更加深入的了解,同时在具体的制作过程中我们发现现在书本上的知识与实际的应用存在着不小的差距,书本上的知识很多都是理想化后的结论,忽略了很多实际的因素,或者涉及的不全面,可在实际的应用时这些是不能被忽略的,我们不得不考虑这方的问题,这让我们无法根据书上的理论就轻易得到预想中的结果,有时结果甚至很差异很大。通过这次设计,我根本掌握了如何利用keil生成hex文件。通过开发板的设计和硬件搭建的过程,使我对89c52系单片机的接口有了更深层次的理解,熟悉了一些单片机常用的外围电路引脚和连接方法。我熟悉了89c52系列单片机内部的存放器和编程规则,以及如何控制外围电路。总之,通过这次课程设计,我们都清楚明白了自己的能力有多深,想提高还得归于多锻炼,多动手,多向别人学习。8参考文献[1]陈明荧.8051单片机课程设计实训教材[M].北京:清华大学出版社,2003年9月[2]徐新艳.单片机原理、应用与实践[M].北京:高等教育出版社,2005年3月[3]张淑清,姜万录等,单片微型计算机接口技术及应用[M].国防工业出版社,2003[4]冯博琴,微型计算机原理与接口技术[M].清华大学出版社,20049附录:系统程序源码/***********************************************************实验名称:简易电子琴的程序程序说明:能够实现单独演奏功能,其中按键-8是用于单独演奏的***********************************************************/#include<reg52.h>#include<intrins.h>//本程序是电子琴的程序,能够实现单独演奏功能。其中,按键1-8是用于单独演奏的unsignedintcodetone_delay_table[]={63628,63835,64021,64103,64260,64400,64524,64580,64684,64777,64820,64898,64968,65030,65058,65110};//各音符对应的延时表sbitbeep=P3^5;//蜂鸣器的位定义unsignedcharSound_Temp_TH0,Sound_Temp_TL0;//音符定时器初值暂存voiddelay_1ms(unsignedinti){while(i--);}//延时//键盘矩阵扫描//返回按下的键的值unsignedcharkeys_scan(void){unsignedcharTmp,k=16;P2=0x0F;delay_1ms(2000);Tmp=P2^0x0F;switch(Tmp)//确定扫描的是哪一列{case1:k=0;break;case2:k=1;break;case3:k=2;break;case4:k=3;break;default:return16;//无键按下,返回}P2=0xF0;delay_1ms(2000);Tmp=(P2>>4)^0x0F;switch(Tmp)//确定扫描的是那一行{case1:k+=0;break;case2:k+=4;break;case3:k+=8;break;case4:k+=12;break;default:return16;/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年河北青年管理干部学院单招职业适应性测试题库及答案1套
- 小学六年级班主任年终总结
- 化工工程师:环保设备研发工程师简历
- 坚持冷水澡增强免疫力
- 服装厂春季安全生产培训
- 车间生产工作总结
- 汤河学校语言文字工作领导小组分工与职责
- 数据支撑述职报告
- 泳池水处理设备项目风险识别与评估综合报告
- 创业培训:了解你的顾客
- 《认识搜索引擎》课件
- 委托亲属出庭委托书
- 胸痛中心培训课件胸痛中心救治流程
- 钢管材质证明书
- 2023电动船舶直流充换电系统技术条件
- 2023年广东广州市中考语文真题及答案
- GB/T 7939.3-2023液压传动连接试验方法第3部分:软管总成
- 认识医生和护士PPT完整版
- 第四章 新闻职业道德失范:虚假新闻1
- 护士延续注册体检表通用
- 高标准农田建设勘测可研规划设计与预算编制技术方案
评论
0/150
提交评论