基础工程设计课程设计(论文)单片机矩阵电子琴

上传人:仙*** 文档编号:77781054 上传时间:2022-04-20 格式:DOC 页数:17 大小:769.52KB
收藏 版权申诉 举报 下载
基础工程设计课程设计(论文)单片机矩阵电子琴_第1页
第1页 / 共17页
基础工程设计课程设计(论文)单片机矩阵电子琴_第2页
第2页 / 共17页
基础工程设计课程设计(论文)单片机矩阵电子琴_第3页
第3页 / 共17页
资源描述:

《基础工程设计课程设计(论文)单片机矩阵电子琴》由会员分享,可在线阅读,更多相关《基础工程设计课程设计(论文)单片机矩阵电子琴(17页珍藏版)》请在装配图网上搜索。

1、 桂林电子科技大学课程设计(论文) 课程设计(论文)说明书题 目: 基础工程设计 4*4矩阵电子琴 院 (系): 信息与通信学院 专 业: 电子科学与技术 学生姓名: 学 号: 指导教师: 职 称: 2011年12月10日摘 要微型电子琴的设计以AT89S52单片机作为系统的核心控制部分,通过制作硬件电路和软件的设计缩写,然后进行软硬件的调试运行,最终达到设计电路的演奏和存储功能。设计中应用中断系统和定时/计数原理控制演奏器发声,对音乐发生所必须确定的音符和节拍分别用程序语言实验,可以用它来演奏乐曲,特点是设计思路简单、清晰、成本低。关键字:单片机;音乐发生器;AT89S52Abstract:

2、The design takes 89S52 SCM as the core of systems control section. In order to achieve the effect of the circuit that performancing the musical instrument and the function of the memory.We can on sorfware and hardwares debugging through manufacturing hardware circuit and compiling the softwares desi

3、gn.The design appilies the principle of the interruption sysem and fixed time/the counting to performance sound production,and accuording to the program language to realize the separation of the note and at the same time we can use it to play with the broadcast music.And the best advantage is the de

4、sign is simply and clear.key words:SCM; Music Generator;AT89S52目 录引言. .41 系统设计.41.1 方案的确定.41.2 设计意义及优点41.3 设计思路.41.4 设计框图.42 硬件系统设计.52.1 AT89S52芯片.52.2 矩阵键盘模块62.3 发声模块.72.4 复位电路72.5 时钟电路73 软件设计.83.1 音乐发声原理83.2 音乐发声流程图.93.3 音乐节拍的实现.94 系统调试104.1 硬件调试.104.2 软件调试.105 结论10谢辞.10参考文献.10附录.11附录1.11附录2.11附录3

5、.12引言 单片微型计算机是大规模集成电路技术发展的产物,属第四代电子计算机,它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。它的应用必定导致传统的控制技术从根本上发生变革。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演者重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经融入到现代人们的生活中,成为不可替代的一部分。单片机电子琴的设计的目的是为了使我们更加深入地了解单片机的发声原理,利用定时器可发出不同频率的脉冲,不同频率的脉冲经喇叭驱动电路放大滤波后,就会发出不同音调。其

6、次,定时器按设置的定时参数产生中断,这一次中断发出脉冲低电平,下一次反转发出脉冲高电平,由于定时参数不同,就发出不同频率的脉冲,也使我们进一步熟悉定时器的编程方法和定时初值的计算,进一步熟悉键盘扫描电路的工作原理和编程方法,了解单片机芯片的接口技术。1 系统设计1.1 方案的确定采用矩阵式键盘,接口设计是由行线和列线组成,按键位于行列的交叉点上。如果用独立式按键,从整体上看简化了电路,可是不利于电子琴功能的扩展;而采用矩阵式按键,利用AT89S52的I/O口,弥补了独立式的这个缺陷。1.2 设计意义及优点所设计的简易电子琴是为了演示电子琴的实现过程,以达到能弹奏动听曲目为预期效果,是实现多功能

7、电子琴并满足市场需求的必经过程。该设计具有以下优点:(1) 由4X4组成16个按钮矩阵,设计成不同的音调。(2) 可以随意弹奏想要表达的音乐。(3) 制造简单、成本低1.3 设计思路一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,可以利用不同的频率的组合构成我们所想要的音乐,对于单片机,定时/计数器T0来产生这样方波频率信号,把一首歌曲的音阶对应各个频率。本实验用到的单片机为AT89S52,晶振为12Mhz 。单片机由相应的汇编源程序或C语言源程序来控制,主要的程序内容是4X4行列式键盘识别和音乐的产生。1.4 设计框图2 硬件系统设计2.1 AT89S52介绍AT89C52是一个

8、低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。AT89C52为8 位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52 相同,其主要用于会聚调整时的功能控制。功能包括对会聚主IC 内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及

9、与主板CPU通信等。主要管脚有:XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接12MHz 晶振。RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40 脚)和VSS(20 脚)为供电端口,分别接+5V电源的正负端。P0P3 为可编程通用I/O 脚,其功能用途由软件定义,在本设计中,P0 端口(3239 脚)被定义为N1 功能控制端口,分别与N1的相应功能管脚相连接,13 脚定义为IR输入端,10 脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12 脚、27 脚及28 脚定义为握手信号功能端口,连

10、接主板CPU 的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。单片机管脚图如下:2.2 矩阵键盘模块4*4矩阵键盘原理图:在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如上图所示。在矩阵式键盘中,每条水平线和垂直直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20个键的键盘,而直接用端口线则只能多出了一键(9键)。由此可见,在需要的按键比较多时,采用矩阵法来做键盘是合理的。采用矩阵法来连接键盘是非常合理的矩阵

11、式结构式的键盘显然比独特式键盘复杂一些,识别也要复杂一些。列线通过电阻接电源并将行线所接的单片机4个I/O口作为输出端而列线所接的I/O口则作为输入端,这样,当按键没有被按下时所有的输出端都是高电平,代表无键按下,行线输出是低电平一旦有键按下,则输入线就会被拉低,这样通过读入输入线的状态就可得知是否有键按下了。2.3 发声模块可以采用一个小功率PNP型硅管S8550,利用“分压偏置式工作点稳定直流通路”,达到对静态工作点的稳定,分压电阻为1K。喇叭一端接+5V电压,一端接三极管的发射极。通过三极管的截止和导通来驱动喇叭。即由AT89S52的PA0口输出预定的方波,加到三极管进行放大,再输出到喇

12、叭,很好地实现了频率、声音的转换。2.4 复位电路复位在上电或复位过程中,控制CPU的复位状态:这段时间内让CPU保持复位状态,而不是一上电或刚复位完毕就工作,防止CPU发出错误的指令、执行错误操作,也可以提高电磁兼容性能。上电复位电路如图,只要在RST复位输入引脚上接一电容至Vcc端,下接一个电阻到地即可。上电复位的工作过程是在加电时,复位电路通过电 容加给RST端一个短暂的高电平信号,此高电平信号随着Vcc对电容的充电过程而逐渐回落,即RST端的高电平持续时间取决于电容的充电时间。为了保证系统能够可靠地复位,RST端的高电平信号必须维持足够长的时间。上电时,Vcc的上升时间约为10ms,而

13、振荡器的起振时间取决于振荡频率,如晶振频率为10MHz,起振时间为1ms;晶振频率为1MHz,起振时间则为10ms。总而言之,复位电路基本功能是系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定得延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。2.5 时钟电路单片机可以看成是在时钟驱动下的时序逻辑电路,单片机在工作过程中,所有工作都是在时钟信号控制下进行的,每执行一条指令,CPU的控制器都要发出一系列特定的控制信号。时钟是一直在跳变的,信号只是在高电平或者低电平的时候有效,或者是在电平由高变低的时候(下降沿)、有低变高的时候(

14、上升沿)的时候才有效。所以时钟电路的主要作用是向主板上的各功能芯片和ISA、PCI等总线发送时钟信号(主板上时钟发生器芯片信号线的形状为蛇形线),使这些芯片在时钟信号的控制下协调工作。采用内部振荡方式,在引脚XTAL1和XTAL2外接晶体振荡器即可构成。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器,并产生振荡时钟脉冲。两个电容器稳定振荡频率、快速起振的作用。3 软件设计3.1 音乐发声原理用电子琴可以演奏出各种美妙的音乐,而音乐是由音符组成,不同的音符是由相应频率的振动产生的。由8051单片机模拟可以产生音符,只需算出音频周期T=1/f,利用音频的变化产生不同电平驱动

15、发声模块,来达到产生音乐的目的,因此只要把一首歌的音符对应频率关系弄正确即可。利用AT89S52的内部定时器使其工作计数器模式(MODE1)下,改变计数值TH0及TL0以产生不同频率的方法产生不同音阶。例如,频率为523Hz,其周期为T=1/523=1912us,因此只要令计数器定时956us/1us=956,每计数956次时将I/O反相,就可得到中音DO(523Hz).计数脉冲值与频率的关系式是:N=(fi/2)/fr式中,N是计数值,fi是机器频率(晶体振荡器为12MHz时,其频率为1MHz),fr为想要产生的频率。其计数初值T的求法如下:T=65536-N=65536-(fi/2)/fr

16、.例如:设K=65536,fi=1MHz,求低音DO(261Hz)的计数值。T=65536-(1000000/2)/261=63628单片机12MHz晶振,高中低有音符与计数T0相关的计数值如下表:3.2 音乐发声流程图3.3 音乐节拍的实现除了音符以外,节拍也是音乐的关键组成部分。节拍实际上就是音持续时间的长短,在单片机系统中可以用延时来实现,如果1/4拍得延时是0.4秒,则1拍的延时是1.6秒,只要知道1/4拍的延时时间,其余的节拍延时时间就是它的倍数。单片机要播放音乐,那就必须在程序中考虑到节拍的设置。音乐的音拍,一个节拍为单位(C调)如下:4 系统调试4.1 硬件调试硬件调试主要是针对

17、单片机部分进行调试。在上电之前,先确保电路中不在短路或断路情况,这是整个调试的第一步,也是很重要的一步。此时主要使用工具是万用表,用来完成检测电路中是否存在短路或断路情况,并且注意焊点没有短接在一起。在确保电路正常后方可上电调试,上电调试的目的是检验电路是否接错,同时还要检验原理是否正确。在本设计中,主要是键盘单片机控制部分和音频转换电路部分的硬件调试。系统板硬件连接如下:(1) 把“单片机系统”区域中的P1.0端口用导线连接到“音频放大模块”区域中的SPK IN端口上; (2) 把“单片机系统“区域中的P3.0P3.7端口用8芯排线连接到“4X4行列式键盘”区域中的C1C4R1R4端口上。4

18、.2 软件调试编程思路:在单片机里不同的扫描码对应不同的音阶,通过扫描矩阵键盘得到按下的按键对应的扫描码就可以发出不同的音阶。定义两个数组,一个是歌曲的音阶,一个是各个音阶所对应的拍数,通过播放这个数组不同音阶以及对应的拍数就可以演奏歌曲。通常一个调试程序应该具备跟踪、断电、查看变量、更改数值四个功能。整个程序是一个主程序调用各个子程序实现功能的过程,要使主程序和整个程序都能平稳运行,各个模块的子程序的正确、平稳运行是必不可少的,所以在软件调试的最初阶段就是把各个子程序模块进行分别测试。5 结论通过各方面努力,本次课程设计任务基本完成,系统功能已实现,可以任意弹奏一首曲子。通过这次设计,提高了

19、我运用所学的专业基础知识来解决面临实际问题的能力,同时也提高了我查阅各种文献资料、设计规范的水平。谢 辞关于本次课程设计,我感受颇多。本次课设是在我的导师于新华老师的亲切关怀和悉心指导下完成的。从课题的选择到项目的最终完成,于老师都给予我细心的指导和支持,给我提出切实可行的指导性建议,于老师一丝不苟的负责精神,使我深受感动。在此向尊敬的于新华老师表示真挚的谢意和崇高的敬意! 参考文献1 李群芳 张士军 黄建.单片微型计算机与接口技术(第三版).北京:电子工业出版社,2008.52 黄冰 覃伟年 黄知超.微型原理及应用(第二版).重庆:重庆大学出版社,2003.13 王卫东.高频电子电路(第二版

20、).北京:电子工业出版社,2009.34 阎石.数字电子技术基础(第五版).高等教育出版社5 谭浩强.C程序设计(第三版).北京:清华大学出版社,2005.7附 录附录1 元器件清单:AT89S52 (1只)晶振 12Mhz (1个)电解电容 10uF (1只)无极性电容 30pF (2只)电阻 10k (1只)电阻 470 (2只)A512J排阻 5.1k (1只)喇叭 (1只)PNP三极管S8550 D.331(1只)发光二级管 (1只)按键 (17只)接口和线 (各若干只)附录2 电路原理图:附录3 程序清单:#include unsigned char temp; /*temp为无符号

21、字符型变量,用于延时消抖*/unsigned char key; /*按键*/unsigned char i,j,mm; /*i、j用于延时,mm用于音阶*/unsigned char STH0; /*T0计数器高位*/unsigned char STL0; /*T0计数器低位*/unsigned int code tab=63628,63835,64021,64103,64260,64400,64524,64580,64684,64777, 64820,64898,64968,65030,65058,65110,65157,65178,65217,65252,65283; /*音阶对应的计数

22、器里填的值*/void delay1ms(unsigned int n)/*延时n毫秒的函数*/ unsigned int k,i,j;for(k=0;kn;k+) for(i=0;i10;i+) for(j=0;j0;i-)for(j=200;j0;j-); /*延时消抖*/temp=P3; temp=temp & 0x0f; /*再判断一次*/if (temp!=0x0f)temp=P3;temp=temp & 0x0f; /*确认是按下*/switch(temp) /*选择出按下的按键对应的扫描码*/case 0x0e:key=0;break;case 0x0d:key=1;break;

23、case 0x0b:key=2;break;case 0x07:key=3;break;temp=P3;P1_0=P1_0;STH0=tabkey/256; /*计数器高位装入对应的初值*/STL0=tabkey%256; /*计数器低位装入对应的初值*/TR0=1; /*开始计数*/temp=temp & 0x0f;while(temp!=0x0f) /*等待按键释放*/temp=P3;temp=temp & 0x0f;TR0=0; /*计数器停止*/P3=0xff;P3_5=0; /*扫描另一行P3_5*/temp=P3;temp=temp & 0x0f;if (temp!=0x0f)fo

24、r(i=50;i0;i-)for(j=200;j0;j-);temp=P3;temp=temp & 0x0f;if (temp!=0x0f)temp=P3;temp=temp & 0x0f;switch(temp)case 0x0e:key=4;break;case 0x0d:key=5;break;case 0x0b:key=6;break;case 0x07:key=7;break;temp=P3;P1_0=P1_0;STH0=tabkey/256;STL0=tabkey%256;TR0=1;temp=temp & 0x0f;while(temp!=0x0f)temp=P3;temp=te

25、mp & 0x0f;TR0=0;P3=0xff;P3_6=0;temp=P3;temp=temp & 0x0f;if (temp!=0x0f)for(i=50;i0;i-)for(j=200;j0;j-);temp=P3;temp=temp & 0x0f;if (temp!=0x0f)temp=P3;temp=temp & 0x0f;switch(temp)case 0x0e:key=8;break;case 0x0d:key=9;break;case 0x0b:key=10;break;case 0x07:key=11;break;temp=P3;P1_0=P1_0;STH0=tabkey/

26、256;STL0=tabkey%256;TR0=1;temp=temp & 0x0f;while(temp!=0x0f)temp=P3;temp=temp & 0x0f;TR0=0;P3=0xff;P3_7=0;temp=P3;temp=temp & 0x0f;if (temp!=0x0f)for(i=50;i0;i-)for(j=200;j0;j-);temp=P3;temp=temp & 0x0f;if (temp!=0x0f)temp=P3;temp=temp & 0x0f;switch(temp)case 0x0e:key=12;break;case 0x0d:key=13;break

27、;case 0x0b:key=14;break;case 0x07:biaozhi=1;break;temp=P3;P1_0=P1_0;STH0=tabkey/256;STL0=tabkey%256;TR0=1;temp=temp & 0x0f;while(temp!=0x0f)temp=P3;temp=temp & 0x0f;TR0=0;if(biaozhi=1)for(mm=0;mm27;mm+) if(yinmm=0)TR0=0;delay1ms(31*yanshimm); else display(yinmm-1,yanshimm); biaozhi=0;void t0(void) interrupt 1 using 0 /*中断服务程序*/TH0=STH0;TL0=STL0;P1_0=P1_0;第17 页 共17页

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!