您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 北京交通大学单片机实验与课程设计电子琴
1题目:电子音调发生器——————————单片机实验与课程设计报告————————————学生名字:曾文聪学生学号:13274092学院:电子信息工程学院专业:通信工程指导老师:于振宇2目录一、应用背景或需求分析........................................................................3二、设计目标.............................................................................................3三、设计性能指标....................................................................................3四、方案设计及选择................................................................................44.1实验原理........................................................................................44.1.1乐曲的音调与节拍...............................................................44.1.2定时器的使用及时间延迟..................................................54.2设计思路........................................................................................6五、相关电路功能说明............................................................................65.1蜂鸣器电路....................................................................................65.2八段数码管....................................................................................7六、软件思路以及程序流程....................................................................8七、心得体会...........................................................................................10八、功能和性能测试..............................................................................11附录:实验源程序..................................................................................123一、应用背景或需求分析单片微型计算机是大规模集成电路技术发展的产物,属第四代电子计算机,它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。它的应用必定导致传统的控制技术从根本上发生变革。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。随着电子技术的发展,电子技术与音乐的结合不断加深。由此而产生的电子琴在这种形势下,因其体积小,易于携带,经济适用,是一般家庭都能承受得了的经济投入。而且电子琴键盘操作直观易于掌握。这样对初学者,尤其对识谱的人来说是很容易弹奏的,一首简单的曲子灵感好的人甚至不用很多的练习和教师的指导就能很快的弹奏出来。这样就强烈地激发了学习者的学习兴趣,迅速地提高了电子琴的普及率。二、设计目标基本功能:拨动不同的开关产生不同的音调即依次波动K0~K7,发出1,2,3,4,5,6,7,i八个音调,播放两首乐曲三、设计性能指标以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有4个按键和扬声器。利用JD51开发板上的按键S1~S4进行音调选择,即按下不同的开关产生不同的音调,依次按动S1~S4及组合按键,蜂鸣器发出1234567i八个音调;并在数码管上显示。编写2支歌曲,并可进行选择播放。4四、方案设计及选择4.1实验原理4.1.1乐曲的音调与节拍①音调由不同频率的方波产生,音调与频率的关系如下表所示。要产生音频方波,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间。利用计时器计时此半周期时间,每当计时到后就将输出方波的I/O反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚得到此频率的方波。在单片机实验仪上,产生方波的I/O脚选用P2.4,通过跳线选择器JP1将单片机的P2.4与蜂鸣器的驱动电路相连。这样P2.4输出不同频率的方波,蜂鸣器便会发出不同的声音。音调1234567I频率262294330349392440494523XF921F9E1FA8CFAD8FB68FBE9FC5BFC8F注:频率以HZ为单位表1音调和发音频率及定时器初值X的对应每个音节相应的定时器初值x可按下法计算。161112()()()(2)2xffosc162()24foscxf其中,f是音调频率,晶振fosc=11.0592Mhz。54.1.2定时器的使用及时间延迟首先对定时器进行初始化图1TMOD控制寄存器各控制位说明如下:GATE:门控位GATE=0,TR=1启动计数(软件启动);GATE=1,TR=1且INT=1启动计数(硬件启动)。C/T:定时或计数方式选择位。C/T=0,定时工作方式;C/T=1,计数工作方式。M1M0:工作方式选择位。M1M0=00,方式0:13位计数(TL0-4、TH0-7)M1M0=01,方式1:16位计数(TL0-7、TH0-7)M1M0=10,方式2:8位计数,有自动装入功能。M1M0=11,方式3:T0分为两个8位计数器,TL0可工作为定时或计数方式,TH0只能工作为定时方式。图2SCON控制寄存器SCON各控制位说明如下:TR0/TR1:启动计数。1启动计数;为0停止计数。TF0/TF1:计数溢出。计数结束时为1。64.2设计思路可将功能实现分如下模块:五、相关电路功能说明5.1蜂鸣器电路蜂鸣器有交流和直流两种。直流蜂鸣器驱动简单,一旦在引脚上加入直流电源它就会发出一定频率的声音,此时声音的音调和音量是固定的;而交流蜂鸣器在这方面则显得较灵活,输入声音信号的频率和音长是可控的,因此输出的声响将更逼真、更悦耳。本实验仪有一个交流蜂鸣器,由于一般I/O口的驱动能力有限,因此不用它直接驱动蜂鸣器,它与P87C52X2的连接方式如下图所示。Buzzer通过一个跳线与P1.7相连,P1.7输出不同频率的方波信号,蜂鸣器就会发出不同的声音。如果控制输出信号的频率和音长,蜂鸣器则会发出悦耳的音乐。图3(交流)蜂鸣器驱动电路MCU控制模块开关控制模块蜂鸣器发生模块电源模块数码管显示模块75.2八段数码管所谓的八段就是指数码管里有八个小LED发光二极管,通过控制不同的LED的亮灭来显示出不同的字形。数码管又分为共阴极和共阳极两种类型,其实共阴极就是将八个LED的阴极连在一起,让其接地,这样给任何一个LED的另一端高电平,它便能点亮。而共阳极就是将八个LED的阳极连在一起。本单片机所用的是共阳极数码管。图4数码管的选用通过控制P2.0~P2.3的电平来选择数码管,低电平为选用。数字1234567I编码0xf90xa40xb00x990x920x820xf80x80注:频率以HZ为单位表2共阳数码管编码表一个八段数码管称为一位,多个数码管并列在一起可构成多位数码管,它们的段选线(即a,b,c,d,e,f,g,dp)连在一起,而各自的公共端称为位选线。显示时,都从段选线送入字符编码,而选中哪个位选线,那个数码管便会被点亮。数码管的8段,对应一个字节的8位,a对应最低位,dp对应最高位。所以如果想让数码管显示数字1,共阳数码管的字符编码为11111001,即0xc0。8图5数码管的位选项单片机通过查表把字符编码通过P0输送到数码管。六、软件思路以及程序流程主流程图开始读取P3.2~P3.5状态为高电平为低电平通过判断这四位的状态选择模式数字10为歌曲二数字9为歌曲一数字1-8为音符模式按键转化为数字音符处理程序歌曲处理程序9按键转化数字是通过读出四个按键的高低电平,然后通过对应的编码得到对应的数字。按键值按键S1S2S3S4数字701111111011213110131411104300115910016121100760110850101910101010表3按键对应数字编码表音符处理程序:输入音符点亮数码管提取音符频率发音返回10歌曲处理程序:七、心得体会这次实验总共经历了两周的时间,从功能需求分析到功能分析,从程序的设计到程序的调试,下载,最后终于完成了这次具有实际使用价值的实验。在设计中我运用自己平时学到的一些知识,以及自己在课下所查找的进行设计,刚开始遇到很多困难,包括对使用汇编语言环境语言的不熟悉,后来一起和同学研究,而一些课程设计中的故障,也请同学帮忙参考一下,最终找到了解决问题的答案。我感觉自己在设计方面提高很大,特别是在设计程序时,逻辑思维能力有所加强,同时对以前所学的知识有了更深刻的认识,并进一步的得到了巩固和提高,充分的做到了理论联系实际,也使我认识到理论与实际的差别,通过歌曲提取歌曲音符表提取一个音符(判断)调用音符处理程序取音符指针加一音符不为零音符为零结束11该课程设计,不但对单片机有了较为全面的认识,而且相关的知识也有了足够的掌握,我感觉最重要的还是设计思维的形成。更发现自己在平时学习中的缺陷。对以后的学习也有很大的帮助。两周的课程设计,我所收获的不仅是学习知识方面,更多的是生活方面。我了解到,在我们生活中,应该学会与别人共同分享,分享知识,分享问题,这样更有助于我们的交流,有利于我们共同进步,有利于我们对学习养成良好的兴趣。最后,我要感谢那些带我们课程设计的老师,感谢你对我们的耐心,感谢你对我们的鼓励,让我们有信心继续下去,成功走到最后。八、功能和性能测试通过在调试模式下使用单片机来跑我的程序,基本功能都能实现,和我设计的效果一样,就是按单独S1~S4分别发出1、2、3、4四个音,按S1S2发5,按S2S3发6,按S3S4发7,按S4S1发I,按S1S3播放第一首歌,按S2S4播放第二首歌。12附录:实验源程序ORG0000H;程序入口地址MOVR0,#0CLRP2.0;使用第一个数码管CLRP2.1;使用第二个数码管CLRP2.2;使用第三个数码管CLRP2.3;使用第四个数码管AJMPMAIN;跳转至主程序ORG1BH;中断程序入口地址CLRTR1;TR1清零,关定时器1CLRF0;F0清零,撤中断点标志CPLP2.4;P2.4取反,发声RETIMAIN:;主程序开始MOVIE,#88H;总中断打开,允许T1中断MOVTMOD,#10H;设定时器1为工作方式1MOVA,P3;提取出按键的四位状态RRARRAANLA,#0FHCJNEA,#0FH,JIANCE1;如果有按键,则跳转到检测一SJMPMAIN;无键按下,继续查询JIANCE1:;检测一程序LCALLLOOPP;延时去抖动MOVA,P3;再次提取出按键的四位状态RRARRAANLA,#0FHCJNEA,#0FH,MODE;跳转至模式选择程序SJMPMAINMODE:;模式选择程序MOVDPTR,#Num
本文标题:北京交通大学单片机实验与课程设计电子琴
链接地址:https://www.777doc.com/doc-6280655 .html