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

加入VIP,免费下载
 

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

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

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于单片机的简易电子琴设计毕业设计Word下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于单片机的简易电子琴设计毕业设计Word下载.docx

1、说明:单片机的工作时钟频率为11.0592MHz。1. 3 主要芯片简介AT89C52是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C52引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。 AT89C52具有如下特点:40个引脚(引脚图如图1-1所示),4k Bytes Flash

2、片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDTC)电路,片内时钟振荡器。 此外,AT89C52设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。图1-1 AT89C522 系统总体方案及硬件设计 本系

3、统采用单片机AT89C52为电子琴的控制核心,系统主要包括播放模块、安键控制模块。下面对各模块的设计逐一进行论证比较。总电路图见附页二。2. 1系统总体方案2.1.1定时/计数器的设计和状态字定义:若要产生音频脉冲,只要算出某一音频的周期(1/频率),再将此周期除以2,即为半周期的时间。利用定时器计时半周期时间,每当计时终止后就将P1.0反相,然后重复计时再反相。就可在P1.0引脚上得到此频率的脉冲。利用AT89C51的内部定时器使其工作计数器模式(MODE1)下,改变计数值TH0及TL0以产生不同频率的方法产生不同音阶,例如,频率为523Hz,其周期T1/5231912s,因此只要令计数器计

4、时956s/1s956,每计数956次时将I/O反相,就可得到中音DO(523Hz)。计数脉冲值与频率的关系式是:Nfi2fr,式中,N是计数值;fi是机器频率(晶体振荡器为12MHz时,其频率为1MHz);fr是想要产生的频率。其计数初值T的求法如下:T65536N65536fifr例如:设K65536,fi1MHz,求中音DO(261Hz)。fr655361000000fr65536500000/fr,中音DO的T65536500000/52364580。单片机12MHZ晶振,中音符与计数T0相关的计数值如表所示:音符频率(HZ)简谱码(T值)低1DO26263628# 4 FA#7406

5、4860#1DO#27763731中 5 SO78464898低2RE29463835# 5 SO#83164934#2 RE#31163928中 6 LA88064968低 3 M33064021# 693264994低 4 FA34964103中 7 SI9886503037064185高 1 DO104665058低 5 SO39264260# 1 DO#11096508541564331高 2 RE117565110低 6 LA44064400# 2 RE#12456513446664463高 3 M131865157低 7 SI49464524高 4 FA139765178中 1 D

6、O5236458014806519855464633高 5 SO156865217中 2 RE5876468416616523562264732高 6 LA176065252中 3 M65964777186565268中 4 FA69864820高 7 SI196765283采用查表程序进行查表时,可以为这个音符建立一个表格,有助于单片机通过查表的方式来获得相应的数据:低音019之间,中音在2039之间,高音在4059之间用单片机播放音乐,或者弹奏电子琴,实际上是按照特定的频率,输出一连串的方波。为了输出合适的方波,首先应该知道音符与频率的关系。2. 1. 2音调数据表单片机发出不同频率的方波

7、,人听起来,就是不同的音调。上表中的频率数值,有些过多,去掉不常用的黑键频率,只是把白键对应的数据存放在单片机中,即可满足绝大部分的应用需求。定义音调数据表的程序如下: DW 63628,63835,64021,64103,64260,64400,64524 ;64580,低音区:1 2 3 4 5 6 7 DW 64580,64671,64777,64820,64898,64968,65030 65058中音区: DW 65058,65110,65157,65178,65217,65252,65283 65312高音区:把这个数据表,放在程序中,需要播音的时候,就从表中取出一个数据送到定时器

8、,当定时器溢出中断的时候,再对输出引脚取反,那么,在扬声器中,即可听到上表中频率的声音。音乐的音拍,一个节拍为单位(C调)曲调值DELAY调4/4125ms62ms调3/4187ms94ms调2/4250ms2. 2总体硬件组成框图图2-1 总体硬件组成框图实验中每按下一个琴键,单片机能够检测到键盘的按键,并根据按键的位置,通过程序来控制,使喇叭发出不同频率(音调)的声音,声音延迟一段时间,等到按键放开之后,声音停止。然后再继续扫描,看是否有键按下。如此循环,即可实现基本的琴键功能。2. 2. 1 子系统模块一LED显示模块如图2-2所示,利用AT89S51单片机的P0端口的P0.0P0.7连

9、接到一个七段数码管的ah的笔段上,数码管的公共端接电源。矩阵扫描显示当前按键模块如下:2. 2. 2 子系统模块二播放模块是喇叭构成。它几乎不存在噪声,音响效果较好,而且由于所需驱动功率较小,且价格低廉,所以,被广泛应用。2. 2. 3 子系统模块三电子琴设有7个按键,分别代表7个音符,包括中音段的全部音符。通过软硬件设计,按键触发外部中断,中断使程序跳转,实现模式转换,启动电子琴。然后通过查询电子琴所按下的按键,读取电子琴输入状态,跳转到对应的程序人口,实现各种琴键的声音。矩阵键盘模块图如下:2. 2 .4 AT89C52复位模块2. 2. 5 AT89C52晶振模块软件是该电子琴控制系统的

10、重要组成部分,在系统的软件设计中我们也才用了模块化设计,将系统的各部分功能编写成子模块的形式,这样增强了系统软件的可读性和可移植性。3. 1软件流程3. 1. 1 音阶键识别3. 1. 2 内置歌曲输出3. 1. 3 总流程图3. 2 软件程序本系统的上位机软件主要是编辑电子琴播放状态的内容,在设计中采用汇编语言编写了电子琴控制系统控制和播放内容的程序。见附录一。图4-1 低音显示图4-2 中音显示图4-3 高音显示图4-4 歌曲播放图4-5 音阶5图4-6 音阶7通过这次单片机课程设计,我收获很多。在这次设计过程中,第一次接触实物,硬件的设计跟焊接都要我们自己动手,软件的编程也要我们不断的调

11、试,最终一个能完成课程设计的劳动成果出来了,很高兴它能按着设计的思想和要求运行起来。当然,这其中也有很多的问题。第一,不够细心比如由于粗心大意焊错了线,由于对课本理论的不熟悉导致编程出现错误。第二,是在学习态度上,这次课程设计是对我们的学习态度的一次检验。对于这次单片机综合课程设计,我的第一大心得体会就是作为一名工程技术人员,要求具备的首要素质绝对应该是严谨。我们这次设计所遇到的多半问题多数都是由于我们不够严谨。第三,在做人上,我认识到,无论做什么事情,只要你足够坚强,有足够的毅力和决心,有足够的挑战困难的勇气,就没有什么办不到的。通过这次单片机课程设计,我们加深了对单片机理论的理解,将理论很

12、好的应用到实际当中去。在实习之前,我们要对所用单片机的内部结构有一个比较系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的软件流程图;在设计程序时,不能妄想一次性就将整个程序设计好,反复修改,不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就明白你的思路,这样也为资料的保存与交流提供了方便;在实习过程中遇到问题是很正常的,但我们应该讲每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题。但是从中学到的知识会让我们受益终身。发现、提出、分析、解决问题和实践能力提高都会受益于我在今后的学习、工作和生活中。在设计过程中

13、和完成后,我认真总结,有以下体会:1. 此次课程设计是在上学期单片机原理与技术的基础上进行的,整个实验设计过程相对比较熟悉,是把以前学习的零碎的内容系统的整合学习。2. 程序调试时,应该讲各模块单独调试,提高调试的速度。3. 本实验要充分了解电子琴的程序,按照要求编译。4. 在经过两周的设计过程中,通过大量的查阅资料,认真的研究教材,并向指导老师请教很多问题,自己对单片机有了更为深刻的理解。我们认真演技原理,画出程序流程图,通过源程序,做出电路图,在仿真中发现很多问题,通过仔细研究,不但解决了问题,还学到了在平时的学习中学不到的东西。5. 在设计过程中,进一步的掌握Proteus、Word、W

14、ave、Keil等软件的应用,也了解了单片机开发的基本环节。1 余发山、王福忠. 单片机原理及应用技术. 中国矿业大学出版社.2008年6月第1 版2 杨凌霄. 微型计算机原理与应用,中国矿业大学出版社.2008年8月第一版3 康华光. 电子技术基础(数字部分),高等教育出版社.第五版4 邓红. 单片机实验与应用设计教程 出版日期:2004年05月第1版5 以及其他的网上资源附1 源程序代码#include#define uchar unsigned charvoid Run(void);void KeyScan(void);void PlayKey(void);void delay_1ms(

15、uchar i);void PlayMusic(void);void DisPlay(void);sbit Beep=P37;uchar Th0,Tl0;uchar flag=0;/模式,0表示音乐,1表示按键uchar key=0;/按键代号uchar a;uchar gaodi=0;uchar code MusicCode=0XFc,0X44,0XFc,0Xac,0XFd,0X09,0XFd,0X34, 0XFD,0X82,0XFD,0Xc8,0XFD,0X06,0XFb,0X04, 0Xfb,0X90,0Xfc,0X0c,0Xfe,0X22,0Xf9,0X5b,0Xfa,0x15;uch

16、ar code Music=0X88,0X14,0X24,0X36,0X42,0X34,0X14,0X28,0X14,0X94,0X1f,0X88,0X14,0X24,0X34,0X32,0X42,0X54,0X14,0X46,0X32,0X54,0X22,0X32,0X32,0X22,0X2C,0X38,0X54,0X74,0X76,0X62,0X68,0X54,0X52,0X62,0X74,0X62,0X52,0X3f,0X46,0X42,0X54,0X64,0X54,0X42,0X32,0X28,0X0a4,0Xa2,0X92,0X84,0X94,0X1f,0Xb8,0X68,0X46,

17、0X52,0X68,0X74,0X72,0X72,0X74,0X62,0X52,0X3f,0Xb8,0X68,0X46,0X52,0X68,0X64,0X62,0X62,0X64,0X42,0X32,0X2f,0X58,0X14,0X24,0X36,0X42,0X34,0X12,0X12,0X26,0X22,0X24,0X22,0X12,0X94,0X9c,0Xa8,0Xa6,0X92,0X84,0X64,0X54,0X22,0X22,0X46,0X42,0X44,0X32,0X22,0X5f, 0XFF;uchar code KeyCode=0XFF,0XFF, 0xF8,0x8B,0xF9

18、,0x5B,0xFA,0x14,0xFA,0x66,0xFB,0x03,0xFB,0x8F,0xFC,0x0B, 0xFC,0x43,0xFC,0xAB,0xFD,0x08,0xFD,0x33,0xFD,0x81,0xFD,0xC7,0xFE,0x05, 0xFE,0x21,0xFE,0x55,0xFE,0x84,0xFE,0X99,0XFE,0xC0,0xFE,0xE3,0xFF,0x02, ;void main(void) P1=0XFF; P2=0; TMOD=0X01; IT0=1; TR0=0; EX0=1; ET0=1; EA=1; while(1) KeyScan(); Run(

19、); DisPlay(); void Run(void) if(flag=0) PlayMusic(); else PlayKey();void KeyScan(void) if(P1=0X7f) delay_1ms(12); if(P1=0X7f) gaodi+; if(gaodi2) gaodi=0; a=gaodi; else if(P1=0XFE) if(P1=0XFE) key=1; a=key; else if(P1=0XFD) if(P1=0XFD) key=2; else if(P1=0XFB) if(P1=0XFB) key=3; else if(P1=0XF7) if(P1

20、=0XF7) key=4; else if(P1=0XEF) if(P1=0XEF) key=5; else if(P1=0XDF) if(P1=0XDF) key=6; else if(P1=0XBF) if(P1=0XBF) key=7; return;void PlayKey(void) if(key=0) return; Th0=KeyCodegaodi*14+key*2; Tl0=KeyCodegaodi*14+key*2+1; TR0=1; delay_1ms(187); TR0=0; key=0;time0() interrupt 1 TH0=Th0; TL0=Tl0; Beep

21、=Beep;void interrupt0() interrupt 0 flag=flag; a=8; P2=0;void delay_1ms(uchar i) uchar j,k; for(j=0;ji;j+) for(k=0;k4); jiepai=(Musici&0X0F); if(yinfu=0) continue; Th0=MusicCode(yinfu-1)*2; Tl0=MusicCode(yinfu-1)*2+1; for(j=jiepai;j0;-j) delay_1ms(187); if(flag!=0) break;void Display(void) switch(a)

22、 case 0: P2= 0X3F;break; case 1: P2= 0X06; case 2: P2= 0X5B; case 3: P2= 0X4F; case 4: P2= 0X66; case 5: P2= 0X6D; case 6: P2= 0X7D; case 7: P2= 0X07; default: P2=0X00;附2 系统原理图毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获

23、得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名: 日 期: 指导教师签名: 日期:使用授权说明本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期:学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1