单片机课程设计 12键电子琴.doc_第1页
单片机课程设计 12键电子琴.doc_第2页
单片机课程设计 12键电子琴.doc_第3页
单片机课程设计 12键电子琴.doc_第4页
单片机课程设计 12键电子琴.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

此文档收集于网络,如有侵权,请联系网站删除-Shanghai Dianji University课程设计课程名称: 微机原理与接口技术实验 题 目: 12键电子琴 姓 名: 朱健 班级学号: BG090813 指导教师: 高桂革 完成日期: 2011年12月22日 目 录一、 设计题目3二、 设计要求3三、 控制系统的总体设计方案4四、 控制系统的硬件系统设计8五、 控制系统的硬件系统设计9六、 小结及心得体会15七、 参考文献16此文档仅供学习与交流一设计题目: 12键电子琴二设计要求:1. 用89C51以矩阵的形式连接12个开关,作为电子琴的琴键输入。2. 用89C51控制扬声器,按动12个不同的按钮来发出相应的音阶:S0 发低音SO的音S1 发低音DO的音S2 发中音RE的音S3 发中音MI的音S4 发中音FA的音S5 发中音SO的音S6 发中音LA的音S7 发中音SI的音S8 发高音DO的音S9 发高音RE的音S10 发高音MI的音S11 发高音FA的音三控制系统的总体设计方案 1. 可弹奏12键电子琴的原理 音乐是由音符和节拍组成,而不同的音符是由相应的频率振动产生。12键电子琴主要以AT89C51单片机为核心,外围结合键盘电路,发声电路等模块,利用单片机产生不同频率来获得我们要求的音符。 2. AT89C51的最小系统 2.1 AT89C51结构 AT89C51是一种带4K字节FLASH存储器的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。引脚图如下2.2 复位电路要实现复位操作,只需要在89C51单片机的引脚上试驾5ms的高电平信号就可以了。单片机的复位电路有两种形式:上电复位和按键复位。本系统采用按键复位。2.3 晶振电路时钟电路对单片机系统而言是必须的。由于单片机内部是由各种各样的数字逻辑器件构成,这些数字器件的工作必须按时间顺序完成,这种时间顺序就称为时序。时钟电路就是提供单片机内部各种操作的时间基准的电路,没有时钟电路单片机就无法工作。内部时钟电路的石英晶体振荡器频率一般选择在412MHz之间,谐振电路电容采用2030pF的电容。我们所采用的晶体的震荡频率为12MHz,电容为30pF。3.键盘模块设计电子琴是通过键盘按键来控制单片机频率的不同,从而弹奏出不同的音符,本系统采用43矩阵式键盘,通过12个按键来控制扬声器发出16个不同的音符。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接,这样一个端口就可以构成43=12个按键。4. 功率放大模块之所以使用音频功率放大电路是因为单片机产生的音频脉冲没有足够的驱动能力,不能驱动扬声器产生要实现的音乐。4.音频发声模块设计电子琴不同的音符是由相应的频率产生,通过单片机的定时器/计数器中断产生不同频率的方波,经过扬声器驱动模块发出不同的音符。字符频率(Hz)T值低音SO39264260中音DO52364580中音RE58764684中音MI65964777中音FA69864820中音SO78464898中音LA88064968中音SI98865030高音DO104665058高音RE117565110高音MI131865157高音FA139765178单片机定时器计数初值T=65535-1/Fr*1/2.Fr为音频矩形脉冲信号频率。四. 控制系统的硬件系统设计1. 硬件系统原理框图单片机AT89C51扬声器音频功放按键2. 硬件系统原理接线图五.控制系统的软件设计1.主程序流程图开始初始化键盘扫描有键按下?扬声器发声获取键值设置并启动定时器T0P3_7反相,产生输出脉冲NY2.按键字程序流程图S0键按下S1键按下S10键按下S9键按下S8键按下S7键按下S6键按下S5键按下S4键按下S3键按下S2键按下S11键按下扬声器发音低音SO扬声器发音低音DO扬声器发音低音FA扬声器发音中音DO扬声器发音低音LA扬声器发音低音RE扬声器发音低音SO扬声器发音低音RE扬声器发音低音MI扬声器发音低音FA扬声器发音低音SI扬声器发音低音MI3.中断程序流程图中断服务程序入口TH0、 TL0重设初值扬声器取反,产生方波返回4. 程序清单#includereg51.h#define uchar unsigned char#define uint unsigned intCode uchar Table=0x37,0x3b,0x3d,0x3e,0x57,0x5b,0x5d,0x5e,0x67,0x6b,0x6d,0x6e; code uint Tab=64260,64580,64684,64777,64820,64898,64968,65030,65058,65110,65157,65178;uchar STH0,STL0;sbit BEEP=P37;int fastfound()uchar keyin;P2=0x0f;keyin=P2;keyin=keyin&0x0f;if(keyin=0x0f)return 0;elsereturn 1;int keyfound() uchar keyvalue,keylie,keyhang,keyin; uchar i; P2=0x0f; keylie=P2; keylie=keylie&0x0f; P2=0x70; keyhang=P2; keyhang=keyhang&0x70; keyin=keyhang|keylie; for(i=0;i12;i+) if(Tablei=keyin) keyvalue=i;break; return (keyvalue);void delay() char j; for(j=0;j100;j+); void time0() interrupt 1 TH0=STH0; TL0=STL0; BEEP=BEEP;void main() uchar key; uint n; TMOD=0x01; ET0=1; EA=1; while(1) if(fastfound()=1) key=keyfound(); delay(); STH0=Tabkey/256; STL0=Tabkey%256; TR0=1; for(n=0;n25000;n+); TR0=0; 6. 小结及心得体会本次课程设计作为前阶段学习知识的检验和对即将来临的期末考试的复习。培养了我们的动手能力以及团队协作能力。设计初期,我们通过网络,图书馆等资源查找到利用单片机设计制作电子琴的相关信息。并且按照题意与实际情况进行小组讨论和编程,使之符合要求。然后利用keil uvison3软件对设计程序进行调试,最终确定了成熟的方案。然后按照电路图进行实物焊接,最终做出一个简单的电子琴。制作过程中发现的一些问题通过共同的分析研究得到的解决,此次课程设计巩固了前期的理论知识,增强了动手实践能力。经过1周的努力,终于完成了设计和制作。通过这次对简易电子琴的设计与制作,让我了解了设计电路的程序,也让我了解了电子琴的原理与设计理念,要设计一个电路总要先编号程序再用仿真软件调试成功之后才能焊接电路板。但是最后的结果却不一定与设计要求完全一样,因为,在编程和焊接电路板中有着各种各样的条件和误差影响着。而通过这次学习,我的动

温馨提示

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

评论

0/150

提交评论