发布时间 : 星期一 文章模拟电子琴发声控制系统 - 图文更新完毕开始阅读8744a929cc175527072208e2
单片机课程设计
2 系统总体方案及硬件设计
2.1硬件组成
2.1.1 AT89S52简介
1.概述
AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。 2.主要性能
与MCS-51 兼容,4K字节可编程FLASH存储器,
寿命:1000写/擦循环数据保留时间:10年,全静态工作:0Hz-24MHz,三级程序存储器锁定·128×8位内部RAM32,可编程I/O线,两个16位定时器/计数器,5个中断源,可编程串行通道,低功耗的闲置和掉电模式,片内振荡器和时钟电路。 3.管脚说明
VCC:供电电压。 GND:接地。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写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个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电
2
单片机课程设计
平,P3口将输出电流(ILL)这是由于上拉的缘故。
RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 4振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 2.1.2 音乐播放部分
乐音实际上是变动周期的信号。本设计用AT89C51 的定时器控制,在P3.4引脚上输出方波周期信号,驱动喇叭发出声音。乐曲中,每一音符对应着确定的频率,我们将每一音符的时间常数和其相应的节拍常数作为一组,按顺序将乐曲中的所有常数放在数组里,然后访问数组依次取出,产生音符并控制节奏,就可以实现演奏效果。 2.1.3电子琴弹奏部分
本系统设置了10个按键,其中三个按键为高音、中音、低音的选择按键,其余为发音按键,按下不同的按键产生不同的音符,通过按键时间的长短控制发音的长短,这样弹奏人员可以随心所欲的弹奏自己所喜爱的乐曲。电子琴弹奏实际上就是把每个按键所对应的值经过处理后发给单片机,再在单片机内把数字当作指针指向所对应的音符。我们用矩阵键盘作为输入端,键盘矩阵的7个引脚分别于P0口的低七位引脚相接。 的
入端,键盘矩阵的7个引脚分别于P0口的低七位引脚相接。 2.2 具体发音原理
一首音乐是许多不同的音级组成的,而每个音级对应着不同的频率,单片机产生不同频率的信号是非常方便的,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号;同时一个音级对应一个时长即音符,音符可分为:全音符、二分音符、四分音符、八分音符、十六分音符、三十二分音符。全音符的时长最长,本设计定一拍为两秒,则一个全音符的长度是一秒,为实现音级的长短,我们采用定时/计数器T1,作为定时器。
我们首先设置定时器0的工作方式,让其工作在方式2下,即8位自重装。设定它的初值,使其每100?s产生一次中断,在中断函数中设置分频参数,通过改变该参数实现分频,从而产生不同频频率的信号。同时我们设置定时器1的工作方式为8位自重装,设定他的初值使其每100?s产生一次中断,在中断函数中设置参数作为音符,通过改变此参数就可以实现一定能视察过的音符。 通过图()(见附录一)可知不同频率的音级
本电子琴高音频段音级对应的频率为:1047 1175 1319 1397 1568 1760 1976(HZ); 本电子琴中音频段音级对应的频率为:523 587 659 698 784 880 988(HZ); 本电子琴低音频段音级对应的频率为:262 294 330 349 392 440 494(HZ)。 对高频音级,定时器0中断函数的参数分别为:38,34,30,28,26,23,20; 对中频音级,定时器0中断函数的参数分别为:19,17,15,14,13,11,10;
3
单片机课程设计
对低频音级,定时器0中断函数的参数分别为:9,8,7,6,5,4,3;
对于全音符、二分音符、四分音符、八分音符、十六分音符、三十二分音符的时长,定时器1的参数分别为:1、2、、4、8、16、32; 2.3各部分电路
2.3.1晶振
其中X1为晶体振荡器,其晶振频率为11.0592MHZ,电容C2,C3起着稳定震荡频率,快速其真的作用。 2.3.2复位电路
51单片机的复位引脚RST出现两个机器周期以上的高电平时,单片机就完成了复位操作。如果RST持续为高电平,单片机就处于循环复位状态,而无法执行程序。因此要求单片机复位后能够脱离复位状态。
本电路采用复位上电,电路图如下,刚上电时,由于电容两端电压不能突变,则RST引脚承受5V电压,一段时间后电容会充电升压,RST引脚电压逐渐降低,能够满足单片机复位后脱离复位状态的要求。
4
单片机课程设计
2.3.3按键
本设计采用的矩阵键盘,输出引脚分别和P0^0~P0^4和P0^6、P0^7。
5