课程设计报告---基于单片机的电子琴设计.doc_第1页
课程设计报告---基于单片机的电子琴设计.doc_第2页
课程设计报告---基于单片机的电子琴设计.doc_第3页
课程设计报告---基于单片机的电子琴设计.doc_第4页
课程设计报告---基于单片机的电子琴设计.doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

VIP免费下载

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

文档简介

河南理工大学单片机应用与仿真训练设计报告基于单片机的电子琴设计姓 名: 郭鹏超 王 芳 学 号: 310808010609 310808010602 专业班级: 电气 08-6班 指导老师: 王 莉 所在学院: 电气工程与自动化学院 2012年5月 19 日18摘要当代,爱好音乐的人越来越多,有不少人自己练习弹奏乐器作为业余爱好和一种放松的手段,鉴于一些乐器学习难度大需要太多的学习时间,且其价格又太过于高昂,使得一部分有这种想法的人不得不放弃这种想法。而一些简易的电子乐器价格相对便宜,学习上手快,一般人容易负担的起,能够满足一般爱好者的需求,故简易电子琴的研制具有一定的社会意义。本次课程设计主要研究基于AT89S52单片机的简易电子琴设计。整个系统主要包括以下几个部分组成:(1) 单片机的最小系统:最小应用系统设计是单片机应用系统的设计基础。它包括单片机的选择、时钟系统设计、复位电路设计、简单的I/O口扩展、掉电保护等。(2) 矩阵键盘:当按键数目较多时,为了节省I/O口线,通常采用矩阵式键盘接口电路。本设计采用5*8矩阵键盘(共40个按键,其中36个按键用来显示高中低音的1、1#、2、2#、3、4、4#、5、5#、6、6#、7的36个音调,其它4个按键可以随意的播放已存歌曲)。(3) 产生外部中断的系统:它由两个四输入与非门74LS20和一个两输入或非门74LS02组成,把矩阵的五行与与非门74LS20和或非门74LS02相接后接在了单片机的P3.2口,下降沿触发产生中断INT0。(4) 发音电路:此电子琴发音电路是由或非门来驱动扬声器发音的,控制单片机的P2.7口产生不同频率使扬声器发出不同的音调。 本文主要对单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴的硬件组成。并且从原理图,主要芯片,各模块的原理和各个模块的程序调试来阐述。利用单片机产生不同频率来获得我们要求的音阶,最终可以随意弹奏想要表达的音乐,还设计了一按键用来自动播放一首曲子。系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比高等,具有一定的使用和参考价值。目录1 概述11.1 本次课程设计的目的意义11.2本次课程设计的任务及要求12 系统总体方案及硬件设计22.1设计原理分析22.2设计方案22.2.1原理框图22.2.2定时/计数器的设计和状态字定义:32.2.3 矩阵键盘设计及相关应用技术52.2.4 LED显示设计及相关应用技术52.2.5发音电路设计62.2.6产生外部中断电路设计62.2.7单片机最小系统设计73软件设计83.1系统分析83.1.1系统软件的组成83.1.2系统程序总体流程图83.2参数计算93.3程序设计103.3.1弹奏程序流程图103.3.2自动播放歌曲程序流程图114实验仿真测试135课程设计体会141 概述1.1 本次课程设计的目的意义本论文是基于单片机的电子琴设计,电子琴是现代科技与音乐结合的产物,是一种新型的键盘乐器。它是现代音乐扮演着的重要角色,单片机具有强大的控制功能和灵活的编程实现特性,它融入现代人们的生活中,成为不可替代的一部分。因此说,学会运用单片机做一些简单的课程设计是我们工程技术人员必需掌握的一向技能。本次设计要求我们综合利用所学单片机知识完成一个单片机应用系统设计并仿真实现,从而加深对单片机软硬知识的理解,获得初步的应用经验,为走出校门从事单片机应用的相关工作打下基础。另外,通过本次课程设计,对我们还有以下帮助:1、 进一步熟悉和掌握单片机的内部结构和工作原理,了解单片机应用系统设计的基本方法和步骤2、掌握单片机仿真软件Proteus的使用方法; 3、掌握键盘和显示器在的单片机控制系统中的应用。4、掌握撰写课程设计报告的方法。1.2本次课程设计的任务及要求实现电子琴发声控制系统,要求电路实现如下功能:利用扬声器或者蜂鸣器作为发声部件,两个数码管作为显示部件,设置多个按键,实现高音、中音、低音的1、2、3、4、5、6、7的发音。并在存储一首歌曲的内容,可以实现自动播放。说明:单片机的工作时钟频率为12MHz。2 系统总体方案及硬件设计2.1设计原理分析一定频率产生声音,频率高低决定音调。利用单片机输出脉冲信号经放大后送给喇叭,便可发出声音。利用单片机的定时器,让定时器中断一次就对改变喇叭的状态一次,即形成矩形方波,这也是数字电路产生声音的方法。由于一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,可以利用不同的频率的组合,即可构成我们所想要的音乐了,对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,只要把一首歌曲的音阶对应频率关系弄正确即可。2.2设计方案2.2.1原理框图原理图如下图所示2.2.2定时/计数器的设计和状态字定义:用单片机播放音乐,或者弹奏电子琴,实际上是按照特定的频率,输出一连串的方波。为了输出合适的方波,首先应该知道音符与频率的关系。若要产生音频脉冲,只要算出某一音频的周期(1/频率),再将此周期除以2,即为半周期的时间。利用定时器计时半周期时间,每当计时终止后就将P2.7反相,然后重复计时再反相。就可在P2.7口引脚上得到此频率的脉冲。利用AT89S52的内部定时器使其工作计数器模式(MODE1)下,改变计数值TH0及TL0以产生不同频率的方法产生不同音阶,例如,频率为523Hz,其周期T1/5231912s,因此只要令计数器计时956s/1s956,每计数956次时将I/O反相,就可得到中音DO(523Hz)。计数脉冲值与频率的关系式是:Nfi/2/fr,式中,N是计数值;fi是机器频率(晶体振荡器为12MHz时,其频率为1MHz);fr是想要产生的频率。其计数初值T的求法如下:T65536N65536fi/2/fr例如:设K65536,fi1MHz,求中音DO(261Hz)。T65536N65536fi/2/fr655361000000/2/fr65536500000/fr,中音DO的T65536500000/52364580。单片机12MHZ晶振,音符与计数T0相关的计数值如表所示:C调音符频率/HzTH TLC调音符频率/HzTH TLC调音符频率/HzTH TL低音1262F88B1523FC43高音11045FE21低音1#277F8F21#553FC78高音1#1106FE3C低音2293F95B2586FCAB高音21171FE55低音2#311F9B72#621FCDB高音2#1241FE6D低音3329FA143658FD08高音31316FE84低音4349FA664697FD33高音41393FE99低音4#370FAB94#739FD5B高音4#1476FEAD低音5392FB035783FD81高音51563FEC0低音5#415FB4A5#830FDA5高音5#1658FED2低音6440FB8F6879FDC7高音61755FEE3低音6#466FBCF6#931FDE7高音6#1860FEF3低音7494FC0B7987FE05高音71971FF02采用查表程序进行查表时,可以为这个音符建立一个表格,有助于单片机通过查表的方式来获得相应的数据:低音011之间,中音在1223之间,高音在2435之间TABLE:0xF8,0x8B,0xF8,0xF2,0xF9,0x5B,0xF9,0xB7,0xFA,0x14,0xFA,0x66,0xFA,0xB9,0xFB,0x03,0xFB,0x4A,0xFB,0x8F,0xFB,0xCF,0xFC,0x0B,/低音0xFC,0x43,0xFC,0x78,0xFC,0xAB,0xFC,0xDB,0xFD,0x08,0xFD,0x33,0xFD,0x5B,0xFD,0x81,0xFD,0xA5,0xFD,0xC7,0xFD,0xE7,0xFE,0x05,/中音0xFE,0x21,0xFE,0x3C,0xFE,0x55,0xFE,0x6D,0xFE,0x84,0xFE,0x99,0xFE,0xAD,0xFE,0xC0,0xFE,0xD2,0xFE,0xE3,0xFE,0xF3,0xFF,0x02/高音把这个数据表,放在程序中,需要播音的时候,就从表中取出一个数据送到定时器,当定时器溢出中断的时候,再对输出引脚取反,那么,在扬声器中,即可听到上表中对应频率的声音。音乐的音拍,一个节拍为单位(C调)曲调值DELAY 曲调值DELAY调4/4125ms 调4/462ms调3/4187ms 调3/494ms调2/4250ms 调2/4125ms对于不同的曲调我们也可以用单片机的另外一个定时/计数器来完成。在这个程序中用到了两个定时/计数器来完成的。其中T0用来产生音符频率延时函数用来产生音拍。2.2.3 矩阵键盘设计及相关应用技术采用5X8行列式键盘识别;(1)把“单片机系统”区域中的P1.0P1.7端口用8芯排线连接到“5X8行列式键盘”区域中的列C1C8端口上,把P2.0-P2.4端口连接到“5X8行列式键盘”区域中的行R1R5上;(2)把“单片机系统”区域中的P0.0P0.7端口用8芯排线连接到“7段数码显示模块”区域中的任一个ah端口上;要求:P0.0对应着a,P0.1对应着b,P0.7对应着h。2.2.4 LED显示设计及相关应用技术LED显示模块,是采用两位一体的数码管显示的。利用AT89S52单片机的P0端口的P0.0P0.7连接到一个七段数码管的ah的笔段上,数码管的公共端接地。第一个显示0、1、2,分别表示高、中、低音,第二个用来显示1、1#、2、2#、3、4、4#、5、5#、6、6#、7等十二个音调,分别用0、1、2、3、4、5、6、7、8、9、A、b显示出来。(1)LED数码显示原理:七段LED显示器内部由七个条形发光二极管和一个小圆点发光二极管组成,根据各管的极管的接线形式,可分成共阴极型和共阳极型。 LED数码管的ag七个发光二极管因加正电压而发亮,因加零电压而不以发亮,不同亮暗的组合就能形成不同的字形,这种组合称之为字形码,下面给出共阴极的字形码表:“0”3FH“8”7FH“1”06H“9”6FH“2”5BH“A”77H“3”4FH“b”7CH“4”66H“C”39H“5”6DH“d”5EH“6”7DH“E”79H“7”07H“F”71H(2)由于显示的数字09的字形码没有规律可循,只能采用查表的方式来完成我们所需的要求了。这样我们按着数字09的顺序,把每个数字的笔段代码按顺序排好!建立的表格如下所示:TABLEDB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH。2.2.5发音电路设计如左图所示,发音电路是由扬声器、或非门74LS02构成。由或非门来驱动扬声器发音的,可通过控制单片机的P2.7口产生不同频率使扬声器发出不同的音调。2.2.6产生外部中断电路设计它由两个四输入与非门74Ls20和一个两输入或非门74LS02组成,把矩阵的五行与与非门74LS20和或非门74LS02相接后接在了单片机的P3.2口,下降沿触发产生中断INT0。矩阵键盘的列在程序中初始化为低电平,当有按键按下,行与列接通,行也变为低电平,即使P2.0-P2.4为“0”,通过上面电路,使INT0端口为“0”,产生中断。利用程序控制,作用与发音电路发出声音。2.2.7单片机最小系统设计最小应用系统设计是单片机应用系统的设计基础。它包括单片机的选择、时钟系统设计、复位电路设计、简单的I/O口扩展、掉电保护等。本次设计采用的是AT89S52,其特点是8字节FLASH闪速存储器,256字节,32个I/O口线,3个16位定时/计数器,掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位.主演的是它与C51系列产品指令和引脚完全兼容.最小系统的时钟电路采用12MHZ晶振,机器周期为1us,连接两个30pF的电容,连接到AT89S52的XATL1,XATL2上面,如左图所示。复位电路采用的是上电+按钮电平复位,是利用电容充电来实现上电复位。当按钮按下后,电源施加在单片机复位端RST上,实现单片机复位功能。3软件设计3.1系统分析3.1.1系统软件的组成 (1)键盘扫描程序:检测是否有按键按下,有按键按下则记录按下键的键值,并跳转至功能转移程序;无按键按下,则返回键盘扫描程序继续检测。 (2)功能转移程序:对检测到的按键值进行判断,是琴键则跳转至琴键处理程序,是功能键则跳转至相应的功能程序,我们设计的功能程序有两种,即音色调节功能和自动播放乐曲的功能。 (3)琴键处理程序:根据检测到的按键值,查询音调表,给计时器赋值,使发出相应频率的声音。 (4)自动播放歌曲程序:检测到按键按下的是自动播放歌曲功能键后执行该程序,电子琴会自动播放事先已经存放的歌曲,歌曲播放完毕之后自动返回至键盘扫描程序,继续等待是否有按键按下。3.1.2系统程序总体流程图3.2参数计算 计数脉冲值与频率的关系式是:Nfi/2/fr,式中,N是计数值;fi是机器频率(晶体振荡器为12MHz时,其频率为1MHz);fr是想要产生的频率。其计数初值T的求法如下:T65536N65536fi/2/fr例如:设K65536,fi1MHz,求中音DO(261Hz)。T65536N65536fi/2/fr655361000000/2/fr65536500000/fr,中音DO的T65536500000/52364580。3.3程序设计3.3.1弹奏程序流程图 3.3.2自动播放歌曲程序流程图4实验仿真测试5课程设计体会这次设计从软件方面来讲不是很难,程序相对长一点,但都是书本上所学的知识,主要是中断及其服务程序的编写。在protues上仿真,则起到很好的效果,因为元器件都是理想状态的,但做出实物来却不是那么简单啦。经过多次调试、修改才得以出结果。将程序载入芯片,调试成功后,可任意弹奏自己想要的旋律。同时可以播放一首示例歌曲,但是也有不足之处的,声音杂音时而有点大,不稳定。经过本次课程设计,我们比较好的把理论知识与实践相结合,而我们在也本次设计中收获不少。设计过程中,首先,对于C语言多了一层了解,其次,还有硬件的接线,还有单片机AT89S52芯片的引脚方面,都让我们收获不少。加强了自身的动手能力。参考文献(具体文献中,中文用宋体、英文为Time New Roman、五号行间距固定值18磅。) 参考文献格式:期刊论文:序号 主要责任者. 文献题名. 刊名,年,卷(期):起止页码如:1 金显贺,王昌长,王忠东,等.一种用于在线检测局部放电的数字滤波技术.清华大学学报(自然科学版),1993,33(4):62-67书、专著:序号 主要责任者.文献题名.出版地:出版社,出版年.起止页码如:1 刘国钧,陈绍业,王凤翥.图书馆目录.北京:高等教育出版社,1957.15-18电子文献:序号 主要责任者.电子文献题名.电子文献的出处或可获得地址,发表或更新日期/引用日期如:1 王明亮.关于中国学术期刊标准化数据库系统工程的进展. http:/www.//pub/wml.txt/980810-2.html, 1998-08-16/1998-10-04附1 源程序代码#include#define uchar unsigned char#define uint unsigned intvoid PlayKey(uchar,uchar);/运行按键void Run();/运行void KeyScan();/扫描键盘void delay_1ms(uchar);/1ms延时void PlayMusic(uchar code *p);/演奏音乐void Display(uchar);sbit Speaker=P27;sbit G=P26;sbit D=P25;sbit Led=P10;uchar KeyValue;/按键值uchar Th0,Tl0;/TH0,TL0uchar KeyPinlv;/按键对应频率uchar flag;uchar code table_d = 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;/数码管编码/音调频率uchar code pinlv= 0xF8,0x8B,0xF8,0xF2,0xF9,0x5B,0xF9,0xB7,0xFA,0x14,0xFA,0x66,0xFA,0xB9,0xFB,0x03,0xFB,0x4A,0xFB,0x8F,0xFB,0xCF,0xFC,0x0B,/低音0xFC,0x43,0xFC,0x78,0xFC,0xAB,0xFC,0xDB,0xFD,0x08,0xFD,0x33,0xFD,0x5B,0xFD,0x81,0xFD,0xA5,0xFD,0xC7,0xFD,0xE7,0xFE,0x05,/中音0xFE,0x21,0xFE,0x3C,0xFE,0x55,0xFE,0x6D,0xFE,0x84,0xFE,0x99,0xFE,0xAD,0xFE,0xC0,0xFE,0xD2,0xFE,0xE3,0xFE,0xF3,0xFF,0x02/高音 ;uchar code music=1,16,1,24,1,24,1,23,1,21,1,16,1,16,1,16,1,24,1,23,1,21,2,19,1,21,1,19,1,19,1,17,1,19,1,19,1,12,1,12,1,17,1,17,1,16,1,12,1,14,1,16,1,14,1,16,1,24,1,24,1,23,1,21,1,16,1,16,1,16,1,24,1,23,1,21,2,19,1,21,1,19,1,19,1,17,1,19,1,19,1,12,1,12,2,17,1,16,1,9,1,12,1,12,1,9,0,0,1,9,0,0,1,7,1,9,1,16,1,17,1,17,1,19,1,21,1,28,1,28,1,26,1,28,1,28,1,21,1,26,1,26,1,24,2,26,1,21,1,26,1,26,1,24,1,26,1,26,1,26,1,26,1,26,1,26,1,28,1,24,1,21,1,21,1,21,1,28,1,28,1,26,1,28,1,28,1,21,1,26,1,26,1,24,2,26,1,21,1,26,1,26,1,24,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,28,1,29,1,28,1,26,3,26,0,0,1,24,1,24,1,26,1,24,1,21,1,21,0xFF;void Display(uchar Key)P0=table_dKey/12;G=0;D=1;delay_1ms(10);/P2.5低位 P2.6高位P0=table_dKey%12;G=1;D=0;delay_1ms(10);void delay_1ms(uchar i)/1ms延时uchar x,j;for(j=0;ji;j+)for(x=0;x=148;x+);void KeyScan() /检测按键uchar i,j;uchar temp;uchar table0=0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F;EX0=0;/扫描键盘,关外部中断for(j=0;j8;+j)P1=table0j;/delay();temp=0x01;for(i=0;i5;+i)if(!(P2&tem

温馨提示

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

评论

0/150

提交评论