基于单片机的电子琴发声控制系统.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《基于单片机的电子琴发声控制系统.doc》由会员分享,可在线阅读,更多相关《基于单片机的电子琴发声控制系统.doc(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、河南理工大学本科课程设计报告河南理工大学单片机应用与仿真训练设计报告基于单片机的模拟电子琴发声控制系统姓 名: 学 号: 专业班级: 电信08-1班 指导老师: 所在学院:电气工程与自动化学院2011年11月 25 日摘要本设计是基于单片机的模拟电子琴发声控制系统,该控制系统的主要控制部件是AT89S52,晶振频率为11.0592MHz,发声部件为蜂鸣器,显示部件为七段数码管,十个按键作为输入端。设计内容:设置8个音符按键发出1(do) 、2(re)、3(mi)、4(fa)、5(so)、6(la)、7(xi)、1(do),为一组八度音阶;设置1个按键调节音调高低(低八度音阶为一组,中八度音阶为
2、一组,高八度音阶为一组),通过识别按键的次数来调出一组八度音阶,供人们演奏,在按键按下的同时由数码管输出对应的音阶数值;另外设置一个播放按键,当判断按键按下时,自动播放内存的音乐,可以随时中断音乐。设计方法:软件部分由扫描按键发声并显示和音乐自动播放两部分构成,故本设计通过判断一个按键的两种状态而在两个部分之间进行切换,每种状态对应一个指定部分,从而保证两种状态的正常切换。按键的扫描采用4*2矩阵形式,节省了输出端口。硬件部分的设计主要包括按键排列、数码管显示和蜂鸣器部分,本设计P1口用作对按键的扫描,P2口用作数码管显示,所以矩阵按键和数码管的排列均就近I/O口焊接,布局合理。数码管显示部分
3、通过限流电阻接P2口,无译码器,考虑到输出的数值,本部分设计由软件部分实现指定数值输出。蜂鸣器通过PNP型三极管8550接P3口,8550可以实现音频的放大。蜂鸣器与数码管就近排列,以达到输出一致的效果。设计成果:按照本设计的设计理念,设计成功!该控制系统能准确实现按键扫描,音符、音阶的调用准确无误,同时能显示音符和音阶数值,但受数码管限制,无法同时显示音符1和高一阶音符1(本设计中以8代替);能实现按键控制音乐的自动播放,当检测到控制按键按下时,即可启动音乐自动播放。本设计简单实用,方便操作,系统稳定,编程简单,能满足单片机初学者对单片机技术的追求,也能满足音乐初学者学习乐器的的基本需求。-
4、 28 -河南理工大学本科课程设计报告目录摘要11 概述11.1 课题简介11.2 仿真技术与软硬件技术的结合11.3 单片机简介12 系统总体方案及硬件设计32.1 总体方案32.2 按键矩阵42.3 数码管显示42.4 蜂鸣器模块43 软件设计53.1 播放音乐部分53.2 扫描按键部分73.3 数码管显示104 Proteus软件仿真124.1 键盘部分设计124.2 蜂鸣器部分仿真124.3 数码管部分仿真124.4 整体仿真设计125课程设计体会145.1 设计成果145.2 心得体会14参考文献- 0 -书、专著:- 0 -电子文献:- 0 -附录1 源程序代码- 1 -附录2 系
5、统原理图12 附录3 音乐简谱13 1 概述1.1 课题简介单片微型计算机室大规模集成电路技术发展的产物,属于第四代电子计算机它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。它的应用必定导致传统的控制技术从根本上发生变革。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本课题的主要内容是用AT89S52单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与键盘、扬声器等模块组
6、成核心主控制模块,在主控模块上设有8个按键,2个控制按键和1个复位按键。一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,构成我们想演奏的那首曲目。对于单片机来说产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0或T1来产生这样的方波频率信号,因此,我们只要把一首歌曲的音符对应频率关系编写正确,就可以达到我们想要的曲目。1.2 仿真技术与软硬件技术的结合本设计中用到了软件Proteus,该软件是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目
7、前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等。在编译方面,它也支持IAR、Keil和MPLAB等多种编译,给我们做电路设计提供方便快捷的仿真效果。在编译的过程中用到了Keil uVision3, Keil C51是51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,
8、通过一个集成开发环境(uVision)将这些部分组合在一起。其方便易用的集成环境、强大的软件仿真调试工具令我们事半功倍。1.3 单片机简介AT89S52 是一种低功耗、高性能CMOS 8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空
9、闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。 图1.30图1.31AT89S52引脚图AT89S52实物图2 系统总体方案及硬件设计2.1 总体方案图2.1 总体方案流程图本设计在音乐播放与键盘扫描之间切换,蜂鸣器能发出共计22个音符,共分三个八度音阶,数码管可显示0-8,由于数码管限制,此处用
10、8代替高一级音符do。当系统运行时,默认进入键盘扫描,并不发音,数码管显示默认值1,即键盘默认可调用低八度音符。当音乐播放键(PLAY)按下时,音乐自动播放,数码管显示0,此间可按下复位键终止音乐。当播放停止时,跳出程序段,默认回到键盘扫描状态,数码管显示返回值1。每当音阶转换控制键(SWITCH)按下时,数码管显示的数值加1,设置最大显示值是3,循环显示;此处1代表可调用低八度音符,2代表可调用中八度音符,3代表可调用高八度音符。当矩阵键盘有键按下时,扫描的键值由数码管输出,显示1-8,代表do、re、mi、fa、so、la、xi、do(高一阶),按键与音符一一对应。这样有效地利用了4*2矩
11、阵键盘,可以实现22个音符的输出,简洁而高效。2.2 按键矩阵本设计采用4*2矩阵非编码按键,由4*4矩阵修改而成,这样不但可以节省程序扫描,也可以节省端口的占用率,从而达到简洁高效的效果。键盘为各自独立按键,只简单地提供按键开关。有关按键的识别、键码的确定与输入、消除抖动等功能均由软件完成。键盘矩阵图与仿真图相同,见图4.1。对按键矩阵的扫描由P1.0P1.5口共同完成。2.3 数码管显示本设计的数码管部分使用了共阳极数码管,数码管公共端接高电平,Led输入端通过200欧的限流电阻接P2.0-P2.6,数字的输出由软件完成。见图2.3。2.4 蜂鸣器模块本设计的蜂鸣器模块由PNP三极管855
12、0作为音频放大,200欧的限流电阻,声音的输出在P3.6口。见图2.4。图2.3 数码管显示原理图 图2.4 蜂鸣器焊接原理图3 软件设计3.1 播放音乐部分图3.1 声音频率及定时初值表音乐的播放要进行音符的识别和准确调用,音符的自然频率是固定的,我们可以根据自然频率计算出其半周期,由此计算出单片机在12MHz下的定时初值,具体计算如图3.1。因此可以设置低音do到超高音do的定时初值表程序段如下:unsigned int code tab= /音符初值表低音1超高音163627,63835,64021,64103, /低音1 2 3 464260,64400,64524,64580,/低音
13、5 6 7 中音164684,64777,64820,64898,/中音2 3 4 564968,65030,65058,65110,/中音6 7 高音1 2 65157,65178,65217,65252,/高音3 4 5 6 65283,65297 /高音7 超高音1;在音乐的播放中节拍的控制由延时控制来实现:void delay(unsigned char t) /延时函数,控制发音的时间长度unsigned char t1;unsigned long t2;for(t1 = 0; t1 t; t1+) /双重循环, 共延时t个半拍for(t2 = 0; t2 0;i-) for(j=1
14、98;j0;j-);/*每个指令12个机器周期,即1us,延时计算50*(198+2)+2=10002us延时精确计算汇编程序如下:MOV i,#032HMOV j,#0C6HDJNZ jDJNZ iRET */键盘矩阵为4*2,P1.4、P1.5为行,P1.0、P1.1、P1.2、P1.3为列,将列置高电平,行置低电平,进行扫描,如有按键按下,按键所在列就会被拉成低电平,此处默认P1.4为第一行,因此P1.4所在行的按键键值依照P1.3、P1.2、P1.1、P1.0的顺序为0、1、2、3,同理P1.5行所在的按键键值依照P1.3、P1.2、P1.1、P1.0依次为4、5、6、7,键值的计算程
15、序段如下例:P1=0xff;P1_4=0;/从第1行开始扫描键盘temp=P1;temp=temp&0x0f;if(temp!=0x0f)/扫描控制 delay10ms();temp=P1;temp=temp&0x0f;if(temp!=0x0f)temp=P1;temp=temp&0x0f;switch(temp) /读取按键值 case 0x07: /判定P1.3key=0;Display(0xf9);/数码管显示1break;case 0x0b: /判定P1.2key=1;Display(0xa4);/数码管显示2break;case 0x0d: /判定P1.1key=2;Display
16、(0xb0);/数码管显示3break;case 0x0e: /判定P1.0key=3;Display(0x99);/数码管显示4break;temp=P1;P3_6=P3_6;/准备发音STH0=tabkey/256; /计算音符对应的定时器计数值STL0=tabkey%256;/计数值低位TR0=1;/T0计时器开始工作temp=temp&0x0f;while(temp!=0x0f)/扫描循环temp=P1;temp=temp&0x0f;TR0=0;/T0计时器关闭P3_6=1;/关闭扬声器,防止电流噪音P1=0xff; /对P1口置高P1_5=0; /扫描P1.5行temp=P1;tem
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 电子琴 发声 控制系统
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内