单片机课程设计论文_第1页
单片机课程设计论文_第2页
单片机课程设计论文_第3页
单片机课程设计论文_第4页
单片机课程设计论文_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

1、通信103班 付红娜 基于单片机的电子琴设计单片机课程设计项目名称 基于单片机的电子琴设计 专业班级 通信103班 学生姓名 王欢 指导教师 靳 展 2012 年 12 月 10 日23摘 要本课程设计利用AT89C51单片机模拟了简单的电子琴系统。运用Proteus仿真、Altium Designer09软件绘制原理图,生成PCB,使用Keil软件编写C程序并通过单片机的I/O端口控制矩阵键盘及喇叭发声。实验原理简单清晰,使我们能够很容易的理解电子琴的工作原理。本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。通过这次动手实验,既培养了

2、对小设计的兴趣,又体会到了理论与实际的差距。关键词:AT89C51;矩阵键盘;喇叭; AbstractThe course is designed by using AT89C51 single-chip microcomputer simulate the simple keyboard system. Using the Proteus simulation, drawing principle diagram by Altium Designer09 software, generating PCB, using Keil software write C program , throu

3、gh the S-M's I/O port control matrix keyboard and a trumpet sound. Experiment principle simple and clean, so that we can easily understand the working principle of the keyboards. The systems operation stable, its advantage is hardware circuit is simple, software perfect function, control system

4、reliable, ratio is higher, has a certain practical and reference value. Through this hands-on experiment, it is not only cultivate interest in the small design, but also experienced the theory with practical gap.Keywords: AT89C51; Matrix keyboard; Loundspeaker 目 录摘 要IAbstractII第1章 绪论11.1 课题背景11.2 音乐

5、产生原理11.3 主要设计任务2第2章 电子琴系统的基本理论32.1 AT89C5132.1.1 AT89C51简介32.1.2 AT89C51性能简介32.1.3 AT89C51引脚简介42.2 LM38652.2.1 LM386简介52.2.2 LM386内部电路52.2.2 LM386引脚简介6第3章 系统的硬件设计73.1 系统工作原理73.2 总体设计框图73.3 中心控制模块83.4 播放模块93.5 按键模块93.6 电路仿真图10第4章 系统软件设计114.1 主程序流程图114.2 定时器T0程序流程图12结论13参考文献14附录1 原理图15附录2 PCB及3D视图16附录

6、3 源程序17附录4 实物图23第1章 绪论1.1 课题背景电子琴是电声乐队的中坚力量,常用于奏主旋律并伴以丰富的和声。还常作为独奏乐器出现,具有鲜明时代特色,但电子琴的局限性也十分明显:旋律与和声缺乏音量变化,过于协和、单一;在模仿各类管、弦乐器时,音色还不够逼真,模仿提琴类乐器的音色时,失真度更大,还需要不断改进。电子琴的演奏较大一部分通过和弦伴奏来配合完成的,在音乐中和弦的连接推动了旋律地进行,不同的和声连接,形成了不同的音乐色彩。本次设计用AT89C51单片机为核心控制元件与按键和喇叭等模块,设计一个简易的电子琴。1.2 音乐产生原理乐曲是由不同音符编制而成的,每个音符(音名)都有一个

7、固定的振动频率,频率的高低决定了音调的高低。简谱中从低音1至高音1之间每个音名对应的频率参见表1-21。表1-2简谱中音名与频率的关系音 名频率/Hz音 名频率/Hz音 名频率/Hz低音1262中音1523高音11047低音2294中音2587高音21175低音3330中音3659高音31319低音4349中音4699高音41397低音5392中音5784高音51569低音6440中音6880高音61760低音7494中音7988高音71976 现以低音6这个音名为例来进行分析。低音6的频率数位440Hz,则其周期为:T=1/f=1/440=0.00228s=2.28ms如果用定时器1方式1作

8、定时,要P2.3输出周期为2.28ms的等宽方波,则定时值为1.14ms,设计数初值为X,根据:定时值=(216-X)*(12/晶振频率),求出计数初值为:X=64396(为计算方便,设晶振频率为12MHz)。计算出计数器初值后,只要将计数初值装入TH0、TL0,就能使P2.3的高电平或低电平的持续时间为1.14ms,从而发出440Hz的音调(音乐的音长由按键控制,按键按下时发声,按键释放时停止发声)2。表1-3所列是采用定时器1的方式1时,各音名与计数初值的对照表。表1-3 各音名与计数初值对照表音 名计数初值音 名计数初值音 名计数初值低音163636中音164586高音165066低音2

9、63836中音264686高音265116低音364026中音364776高音365156低音464106中音464816高音465176低音564256中音564896高音565216低音664396中音664966高音665256低音764526中音765026高音7652861.3 主要设计任务用矩阵按键的16个按键模拟电子琴的16个音符。具体音符为:按压S0、S1、S2、S3、S4键,发出低音3、4、5、6、7;按压S5、S6、S7、S8、S9、S10、S11键,发出中音1、2、3、4、5、6、7;按压S12、S13、S14、S15键,发出高音1、2、3、4。矩阵按键与各音符的对应关系

10、如表1-1所示3。表1-1矩阵按键与键盘对应关系 低音3 低音4 低音5 低音6 低音7 中音1 中音2 中音3 中音4 中音5 中音6 中音7 高音1 高音2高音3高音4第2章 电子琴系统的基本理论2.1 AT89C51 2.1.1 AT89C51简介AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机。片内含4Kbytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash 存储单元,功能强大AT89C

11、51单片机可为您提供许多高价比的应用场合,可灵活应用于各种控制领域。2.1.2 AT89C51性能简介AT89C51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。 此外,AT89C51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。AT89C51在空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数

12、据,停止芯片其它功能直至外中断激活或硬件复位。主要特性4:·与MCS-51 兼容·4K字节可编程闪烁存储器·全静态工作:0Hz-24Hz·三级程序存储器锁定·128*8位内部RAM·32可编程I/O线·两个16位定时器/计数器·5个中断源·可编程串行通道·低功耗的闲置和掉电模式·片内振荡器和时钟电路 2.1.3 AT89C51引脚简介图2-1为AT89C51的引脚图图2-1 AT89C51引脚图AT89C51的引脚功能5:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路

13、双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高电阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个T

14、TL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(

15、ILL)这是由于上拉的缘故。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无

16、效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。2.2 LM3862.2.1 LM386简介LM386是美国国家半导体公

17、司生产的音频功率放大器,主要应用于低电压消费类产品。LM386是一种音频功率集成功放,具有自身功耗低、电压增益可调整、电源电压范围大、外接元件少和谐波失真小等优点,广泛应用于录音机和收音机之中。2.2.2 LM386内部电路LM386内部电路原理图如图2-2所示。与通用型集成运放相类似,它是一个三级大电路。图2-2 LM386内部电路原理图第一级为差分放大电路,T1和T3、T2和T4分别构成复合管,作为差分放大电路的放大管;T5和T6组成镜像电流源作为T1和T2的有源负载;T3和T4信号从管的基极输入,从T2管的集电极输出,为双端输入单端输出差分电路。使用镜像电流源作为差分放大电路有源负载,可

18、使单端输出电路的增益近似等于双端输出电容的增益6。第二级为共射放大电路,T7为放大管,恒流源作有源负载,以增大放大倍数。第三级中的T8和T9管复合成PNP型管,与NPN型管T10构成准互补输出级。二极管D1和D2为输出级提供合适的偏置电压,可以消除交越失真。引脚2为反相输入端,引脚3为同相输入端。电路由单电源供电,故为OTL电路。输出端(引脚5)应外接输出电容后再接负载。电阻R7从输出端连接到T2的发射极,形成反馈通路,并与R5和R6构成反馈网络,从而引入了深度电压串联负反馈,使整个电路具有稳定的电压增益。2.2.2 LM386引脚简介图2-3 LM386引脚图LM386的外形和引脚的排列如图

19、所示。引脚2为反相输入端,3为同相输入端;引脚5为输出端;引脚6和4分别为电源和地;引脚1和8为电压增益设定端;使用时在引脚7和地之间接旁路电容,通常取10F7。第3章 系统的硬件设计3.1 系统工作原理乐音实际上是固有周期的信号。我们用AT89C51的定时器T0来控制,在P2.3脚上输出方波周期信号,产生乐音。根据不同的按键,调节T0溢出的时间可输出不同频率的乐音,这样就做出了一台简易的电子琴。音乐产生的原理及硬件设计是由于一首音乐的许多不同的音阶组成的,而每个音阶对应着不同的频率,这样就可以用不同的频率的组合,就可构成我们想要的音乐了,对于单片机来产生不同的频率非常的方便,我们利用单片机的

20、定时器/计数器来产生这样的方波,因此只要把一首歌的音阶对应频率的关系弄正确即可。在此次设计中单片机晶振为12MHZ,定时器的技术周期为1MHZ。3.2 总体设计框图中心控制模块播放模块喇叭按键控制模块按键状态图3-1 硬件组成框图3.3 中心控制模块图3-2 中心控制模块本次设计中心控制模块是采用AT89C51单片机来控制整个系统,其中P2.3口作为输入口连接喇叭的放大滤波电路,而P3口连接按键控制电路,当系统扫描到按键上有按键被按下,则快速检测出是哪一个键被按下,然后单片机的定时器被启动,一定的频率脉冲,该频率脉冲经过喇叭放大滤波后就会发出相应的音调,从而实现播放音乐的功效。3.4 播放模块

21、图3-3 播放模块播放模块是喇叭和音频功率放大器LM386构成。信号脉冲经P1口输出,由LM386同相输入端输入,经过放大滤波后,最后经喇叭播放音调。它几乎不存在噪声,音响效果较好。而且由于所需驱动功率较小,且价格低廉,所以被广泛应用3.5 按键模块图3-4 矩阵按键模块电子琴设有16个按键,能够发出16个不同的音调,并且要求按下按键发声,松开一段时间停止,中间在按别的按键按下则发另一音调的声音,当有按键按下时系统就会扫描到是哪个按键按下,然后单片机的定时器被启动,发出一定频率的脉冲,该频率的脉冲经音频功率放大器,放大滤波后,就会发出相应的音调。如果在前一个按下的按键发出声的同时有另一个按键被

22、按下,则启用中断系统,前面按键的发音停止,转到后按的按键的发音程序,发出音调。 3.6 电路仿真图图3-5 电路仿真图用矩阵按键的16个按键模拟电子琴的16个音符。具体音符为:按压S0、S1、S2、S3、S4键,发出低音3、4、5、6、7;按压S5、S6、S7、S8、S9、S10、S11键,发出中音1、2、3、4、5、6、7;按压S12、S13、S14、S15键,发出高音1、2、3、4,通过按下不同的按键发出不同的音符。(电路原理图详见附录一)第4章 系统软件设计4.1 主程序流程图开 始定时器T0初始化延时10 ms按键是否按下? 求出按键号,送显示缓冲区装入音符计数初值到定时器T0并启动定

23、时器按键是否弹起?关闭定时器T0和蜂鸣器结 束按键是否按下? 否 否 是 否 是 图4-1 主程序流程图主函数是一个无限循环的函数,用来组织和调用各函数。工作时,首先对定时器T0进行初始化,暂时不开启定时器。然后调用矩阵键盘扫描函数,判断按键是否按下。若未按下,继续扫描;若按下,则求出按键号,送入显示缓冲区disp_buf,同时将对应的计数初值装入定时器T0,并开启定时器T0,然后等待按键释放。在等待按键释放的过程中,若定时时间到,则进入定时器T0中断函数。4.2 定时器T0程序流程图开 始重装计数初值P2.3取反结 束图4-2 定时器T0程序流程图在定时器T0函数中,重新计数初值,并将P2.

24、3不断取反,这样,就可以驱动喇叭发出与按键相对应的按键音符音。结论通过本次设计,我懂得了如何解决电路中出现的问题,从而能够使自己更好的学习和掌握一些电路常识,在本次设计中,我对一些常用的集成块有了一些了解,如AT89C51,LM386。在本次设计中我犯了许多问题,如喇叭没有驱动就可以发音,在老师的指导下选择正确的放大电路使喇叭发音,使电路可以正确的仿真,经过这一阶段的设计,我深刻明白了理论与社会实践相结合的道理,从中得到了书本中没有学到的东西,明白了如今信息时代电子技能知识的重要性,通过本次设计我对自己的动手能力有了信心,使我充分体会到再创造过程中探索的艰难与成功的喜悦。参考文献1 刘启文,刘

25、启武,王丽娟.电子琴中的放大器J.电子技术,1982,(05):56-70.2 陆大钧,鲁文焕.单音电子琴的音源J.电子技术,1981,(04):100-120 .3 路民峰.集成电路电子音阶J.电子技术,1981,(06) :130-140. 4 杨应全.简易电子琴模拟程序J.电脑知识与技术,1998,(03):246-253.5 杜丽芳.用单片机设计的电子琴J.电子世界,2005,(07) :230-270.6 冯博琴.微型计算机原理与接口技术.清华大学出版社,2004:20-25.7 李林涛,梁宜勇.  基于单片机的简易电子琴录/放音系统J. 数字技术与应用,2010

26、(02):346-354.附录1 原理图附录2 PCB及3D视图 附录3 源程序#include<reg52.h>#define uchar unsigned char#define uint unsigned intuchartable17=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xBF; /0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F、-的显示码 uint codetab=64026,64106,64256,64396,64526,6458

27、6,64686,64776,64816, 64896,64966,65026,65066,65116,65156,65176; /低音3、4、5、6、7,中音1、2、3、4、5、6、7,高音1、2、3、4的计数数值表 uchar STH0;uchar STL0;sbit BEEP=P23; /蜂鸣器驱动线 uchar disp_buf; /显示缓存 uchar temp; /暂存器 uchar key; /键顺序码 /-以下是延时函数 -void Delay_ms(uint xms)uint i,j;for(i=xms;i>0;i-) /i=xms即延时约xms for(j=110;j&

28、gt;0;j-);/-以下是矩阵按键扫描函数 -void MatrixKey()P3=0xff;P3=0xef; temp=P3;temp=temp&0x0f;if(temp!=0x0f)Delay_ms(10);temp=P3;temp=temp&0x0f;if(temp!=0x0f)temp=P3;switch(temp)case 0xee:key=0;break;case 0xed:key=1;break;case 0xeb:key=2;break;case 0xe7:key=3;break;temp=P3;disp_buf=tablekey;STH0=tabkey/25

29、6;STL0=tabkey%256;TR0=1;temp=temp&0x0f;while(temp!=0x0f)temp=P3;temp=temp&0x0f;TR0=0;BEEP=1;P3=0xff;P3=0xdf;temp=P3;temp=temp&0x0f;if(temp!=0x0f)Delay_ms(10);temp=P3;temp=temp&0x0f;if(temp!=0x0f)temp=P3;switch(temp)case 0xde:key=4;break;case 0xdd:key=5;break;case 0xdb:key=6;break;case 0xd7:key=7;break;temp=P3;disp_buf=tablekey;STH0=tabkey/256;STL0=tabkey%256;TR0=1;temp=temp&0x0f;while(temp!=0x0f)temp=P3;temp=temp&0x0f;TR0=0;BEEP=1;P3=0xff;P3=0xbf;temp=P3;temp=temp&am

温馨提示

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

评论

0/150

提交评论