单片机课程设计—基于单片机的电子琴.doc

上传人:土8路 文档编号:10451754 上传时间:2021-05-16 格式:DOC 页数:27 大小:760.50KB
返回 下载 相关 举报
单片机课程设计—基于单片机的电子琴.doc_第1页
第1页 / 共27页
单片机课程设计—基于单片机的电子琴.doc_第2页
第2页 / 共27页
单片机课程设计—基于单片机的电子琴.doc_第3页
第3页 / 共27页
单片机课程设计—基于单片机的电子琴.doc_第4页
第4页 / 共27页
单片机课程设计—基于单片机的电子琴.doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《单片机课程设计—基于单片机的电子琴.doc》由会员分享,可在线阅读,更多相关《单片机课程设计—基于单片机的电子琴.doc(27页珍藏版)》请在三一文库上搜索。

1、 单片机应用与仿真训练设计报告基于单片机的电子琴设计 摘要单片微型计算机是大规模集成电路技术发展的产物,属第四代电子计算机,它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。它的应用必定导致传统的控制技术从根本上发生变革。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。 电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用AT89S51单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与键盘、扬声器等模块组

2、成核心主控制模块,在主控模块上设有16个按键和扬声器。 本文主要对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴统硬件组成。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。并且本文分别从原理图,主要芯片,各模块原理及各模块的程序的调试来详细阐述。 一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。目录1 概述 1.1 1.2 1.

3、32 系统总体方案及硬件设计(宋体、小四,加粗,固定值18磅。以下相同要求) 2.1 2.22.33 软件设计 3.1 3.2 3.34 Proteus软件仿真5课程设计体会参考文献附1:源程序代码附2:系统原理图1概述1. 1 电子琴技术状况本次设计提出了用AT89S52单片机为核心控制元件,设计一个简易的电子琴. 本方案以AT89S52单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块在主控模块上设有7个按键和扬声器。根据使用者的操作随意弹奏想要表达的音乐。一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当

4、然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号。1. 2 任务与要求 实现电子琴发声控制系统;要求电路实现如下功能:利用蜂鸣器作为发声部件,两个数码管作为显示部件,设置10个按键,实现高音、中音、低音的1、2、3、4、5、6、7的发音。并在存储一首歌曲的内容,可以实现自动播放。 用PROTEUS实现的电子琴仿真设计说明:单片机的工作时钟频率为11.0592MHz。1. 3 主要芯片简介AT89C52是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Fl

5、ash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C52引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。 AT89C52具有如下特点:40个引脚(引脚图如图1-1所示),4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDTC)电路,片内时钟振荡器。 此外,

6、AT89C52设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。图1-1 AT89C522 系统总体方案及硬件设计 本系统采用单片机AT89C52为电子琴的控制核心,系统主要包括播放模块、安键控制模块。下面对各模块的设计逐一进行论证比较。总电路图见附页二。2. 1系统总体方案2.1.1定时/计数器的设计和状态字定义:若要产生音频脉冲,只要算出某一音频的

7、周期(1/频率),再将此周期除以2,即为半周期的时间。利用定时器计时半周期时间,每当计时终止后就将P1.0反相,然后重复计时再反相。就可在P1.0引脚上得到此频率的脉冲。利用AT89C51的内部定时器使其工作计数器模式(MODE1)下,改变计数值TH0及TL0以产生不同频率的方法产生不同音阶,例如,频率为523Hz,其周期T1/5231912s,因此只要令计数器计时956s/1s956,每计数956次时将I/O反相,就可得到中音DO(523Hz)。计数脉冲值与频率的关系式是:Nfi2fr,式中,N是计数值;fi是机器频率(晶体振荡器为12MHz时,其频率为1MHz);fr是想要产生的频率。其计

8、数初值T的求法如下:T65536N65536fi2fr例如:设K65536,fi1MHz,求中音DO(261Hz)。T65536N65536fi2fr6553610000002fr65536500000/fr,中音DO的T65536500000/52364580。单片机12MHZ晶振,中音符与计数T0相关的计数值如表所示:音符频率(HZ)简谱码(T值)音符频率(HZ)简谱码(T值)低1DO26263628# 4 FA#74064860#1DO#27763731中 5 SO78464898低2RE29463835# 5 SO#83164934#2 RE#31163928中 6 LA8806496

9、8低 3 M33064021# 693264994低 4 FA34964103中 7 SI98865030# 4 FA#37064185高 1 DO104665058低 5 SO39264260# 1 DO#110965085# 5 SO#41564331高 2 RE117565110低 6 LA44064400# 2 RE#124565134# 646664463高 3 M131865157低 7 SI49464524高 4 FA139765178中 1 DO52364580# 4 FA#148065198# 1 DO#55464633高 5 SO156865217中 2 RE5876468

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

11、率,只是把白键对应的数据存放在单片机中,即可满足绝大部分的应用需求。定义音调数据表的程序如下: 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中音区:1 2 3 4 5 6 7 DW 65058,65110,65157,65178,65217,65252,65283 65312高音区:1 2 3 4 5 6 7把这个数据表,放在程序中,需要播音的时候,就从表中取出一个数据送到定时器,当定时器溢出中断的时

12、候,再对输出引脚取反,那么,在扬声器中,即可听到上表中频率的声音。音乐的音拍,一个节拍为单位(C调)曲调值DELAY 曲调值DELAY调4/4125ms 调4/462ms调3/4187ms 调3/494ms调2/4250ms 调2/4125ms2. 2总体硬件组成框图播放模块 喇叭中心控制模块 AT89C52按键控制模块按 键 状 态 图2-1 总体硬件组成框图实验中每按下一个琴键,单片机能够检测到键盘的按键,并根据按键的位置,通过程序来控制,使喇叭发出不同频率(音调)的声音,声音延迟一段时间,等到按键放开之后,声音停止。然后再继续扫描,看是否有键按下。如此循环,即可实现基本的琴键功能。2.

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

14、如下:2. 2 .4 AT89C52复位模块2. 2. 5 AT89C52晶振模块3 软件设计软件是该电子琴控制系统的重要组成部分,在系统的软件设计中我们也才用了模块化设计,将系统的各部分功能编写成子模块的形式,这样增强了系统软件的可读性和可移植性。3. 1软件流程3. 1. 1 音阶键识别3. 1. 2 内置歌曲输出3. 1. 3 总流程图3. 2 软件程序本系统的上位机软件主要是编辑电子琴播放状态的内容,在设计中采用汇编语言编写了电子琴控制系统控制和播放内容的程序。见附录一。4 Proteus软件仿真图4-1 低音显示图4-2 中音显示图4-3 高音显示图4-4 歌曲播放待添加的隐藏文字内

15、容2图4-5 音阶5图4-6 音阶75课程设计体会通过这次单片机课程设计,我收获很多。在这次设计过程中,第一次接触实物,硬件的设计跟焊接都要我们自己动手,软件的编程也要我们不断的调试,最终一个能完成课程设计的劳动成果出来了,很高兴它能按着设计的思想和要求运行起来。当然,这其中也有很多的问题。第一,不够细心比如由于粗心大意焊错了线,由于对课本理论的不熟悉导致编程出现错误。第二,是在学习态度上,这次课程设计是对我们的学习态度的一次检验。对于这次单片机综合课程设计,我的第一大心得体会就是作为一名工程技术人员,要求具备的首要素质绝对应该是严谨。我们这次设计所遇到的多半问题多数都是由于我们不够严谨。第三

16、,在做人上,我认识到,无论做什么事情,只要你足够坚强,有足够的毅力和决心,有足够的挑战困难的勇气,就没有什么办不到的。通过这次单片机课程设计,我们加深了对单片机理论的理解,将理论很好的应用到实际当中去。在实习之前,我们要对所用单片机的内部结构有一个比较系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的软件流程图;在设计程序时,不能妄想一次性就将整个程序设计好,反复修改,不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就明白你的思路,这样也为资料的保存与交流提供了方便;在实习过程中遇到问题是很正常的,但我们应该讲每次遇到的

17、问题记录下来,并分析清楚,以免下次再碰到同样的问题。但是从中学到的知识会让我们受益终身。发现、提出、分析、解决问题和实践能力提高都会受益于我在今后的学习、工作和生活中。在设计过程中和完成后,我认真总结,有以下体会:1. 此次课程设计是在上学期单片机原理与技术的基础上进行的,整个实验设计过程相对比较熟悉,是把以前学习的零碎的内容系统的整合学习。2. 程序调试时,应该讲各模块单独调试,提高调试的速度。3. 本实验要充分了解电子琴的程序,按照要求编译。4. 在经过两周的设计过程中,通过大量的查阅资料,认真的研究教材,并向指导老师请教很多问题,自己对单片机有了更为深刻的理解。我们认真演技原理,画出程序

18、流程图,通过源程序,做出电路图,在仿真中发现很多问题,通过仔细研究,不但解决了问题,还学到了在平时的学习中学不到的东西。5. 在设计过程中,进一步的掌握Proteus、Word、Wave、Keil等软件的应用,也了解了单片机开发的基本环节。参考文献1 余发山、王福忠. 单片机原理及应用技术. 中国矿业大学出版社.2008年6月第1 版2 杨凌霄. 微型计算机原理与应用,中国矿业大学出版社.2008年8月第一版3 康华光. 电子技术基础(数字部分),高等教育出版社.第五版4 邓红. 单片机实验与应用设计教程 出版日期:2004年05月第1版5 以及其他的网上资源附1 源程序代码#include#

19、defineucharunsigned charvoid Run(void);void KeyScan(void);void PlayKey(void);void delay_1ms(uchar i);void PlayMusic(void);void DisPlay(void);sbitBeep=P37;ucharTh0,Tl0;ucharflag=0;/模式,0表示音乐,1表示按键ucharkey=0;/按键代号uchara;uchargaodi=0;ucharcodeMusicCode=0XFc,0X44,0XFc,0Xac,0XFd,0X09,0XFd,0X34,0XFD,0X82,0

20、XFD,0Xc8,0XFD,0X06,0XFb,0X04,0Xfb,0X90,0Xfc,0X0c,0Xfe,0X22,0Xf9,0X5b,0Xfa,0x15;ucharcodeMusic=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,0

21、X42,0X54,0X64,0X54,0X42,0X32,0X28,0X0a4,0Xa2,0X92,0X84,0X94,0X1f,0Xb8,0X68,0X46,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,

22、0X46,0X42,0X44,0X32,0X22,0X5f, 0XFF;ucharcodeKeyCode=0XFF,0XFF,0xF8,0x8B,0xF9,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=

23、0;TMOD=0X01;IT0=1;TR0=0;EX0=1;ET0=1;EA=1;while(1)KeyScan();Run();DisPlay();void Run(void)if(flag=0)PlayMusic();elsePlayKey();void KeyScan(void)if(P1=0X7f)delay_1ms(12);if(P1=0X7f)gaodi+;if(gaodi2)gaodi=0;a=gaodi;else if(P1=0XFE)delay_1ms(12);if(P1=0XFE)key=1;a=key;else if(P1=0XFD)delay_1ms(12);if(P1

24、=0XFD)key=2;a=key;else if(P1=0XFB)delay_1ms(12);if(P1=0XFB)key=3;a=key;else if(P1=0XF7)delay_1ms(12);if(P1=0XF7)key=4;a=key;else if(P1=0XEF)delay_1ms(12);if(P1=0XEF)key=5;a=key; else if(P1=0XDF)delay_1ms(12);if(P1=0XDF)key=6;a=key;else if(P1=0XBF)delay_1ms(12);if(P1=0XBF)key=7;a=key;elsereturn;void

25、PlayKey(void)if(key=0)return;elseTh0=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=Beep;void interrupt0() interrupt 0flag=flag;if(flag=0)a=8;P2=0;void delay_1ms(uchar i)uchar j,k;for(j=0;ji;j+)for(k=0;k4);jiepai=(Musici&0X

26、0F);if(yinfu=0)continue;Th0=MusicCode(yinfu-1)*2;Tl0=MusicCode(yinfu-1)*2+1;TR0=1;for(j=jiepai;j0;-j)delay_1ms(187); TR0=0;if(flag!=0)break;void Display(void)switch(a)case 0: P2=0X3F;break;case 1:P2=0X06;break;case 2:P2=0X5B;break;case 3:P2=0X4F;break;case 4:P2=0X66;break;case 5:P2=0X6D;break;case 6:P2=0X7D;break;case 7:P2=0X07;break;default: P2=0X00;break;附2 系统原理图

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1