毕业设计论文基于AT89C52单片机的16键简易电子琴的设计.doc
《毕业设计论文基于AT89C52单片机的16键简易电子琴的设计.doc》由会员分享,可在线阅读,更多相关《毕业设计论文基于AT89C52单片机的16键简易电子琴的设计.doc(47页珍藏版)》请在三一办公上搜索。
1、武汉纺织大学2011届毕业设计论文1 绪论 随着生活水平的提高,在放松自己的同时又能提高各个方面的能力。学习和欣赏音乐可以在使人们得到放松的同时,提高人们的精神品质和个人素养。当代,爱好音乐的年轻人越来越多,有不少人自己练习弹奏乐器,作为业余爱好和一种放松的手段,鉴于一些乐器学习难度大需要太多的学习时间,且其价格又太过于高昂,使得一部分有这种想法的人不得不放弃这种想法。而一些简易的电子乐器价格相对便宜,学习上手快,价格相对便宜,一般人容易负担的起,能够满足一般爱好者的需求。故简易电子乐器的研制具有一定的社会意义。本次课程设计主要研究基于AT89C52单片机的16键简易电子琴的设计。1.1 单片
2、机发音概述 由于单片机的强大功能,除了在测试控制领域中有着广泛的应用外,还有一些而有趣的应用。比如,使用单片机可以驱动蜂鸣器或者扬声器发出声音,还可以控制其发出不同的声调,从而连接起来构成一个曲子。目前,市场上有很多种音乐模块或者音乐芯片,可以直接产生各种曲子。但是,这种模块价格比较昂贵,电路结构比较复杂。如果系统中仅需要产生简单的音符或者简短的曲子,可以使用单片机配合简单的扬声器而产生需要的音乐效果。一般说来,单片机不像其他专业乐器那样能奏出多种音色的声音,即不包含相应幅度的谐波频率。单片机演奏的音乐基本都是单音频率。因此单片机演奏音乐比较简单,只需要清楚“音调”和“节拍”。 音调表示一个音
3、符唱多高的频率; 节拍表示一个音符唱多长的时间。1.1.1 音调音调是音乐学中的名词,与平时所说的音高十分相似。在音乐中常把中音C上方的A音定为标准音高,其频率为 f = 440Hz,其余音均与其进行比较。 和为两个音符,如果两个音符的频率相差一倍时,即时,则称比高一个倍频程。在音乐中音符1(do)与音符之间正好相差一个倍频程,在音乐学中称它相差一个八度音。在一个八度音里,有12个半音。以1-八音区为例。12个半音是:1-#1,#1-2,2-#2,#23,34,4-#4,#45,5-#5,#56,6-#6,#67,7-。由于人耳的听觉效果,这12个音节的分度基本上是以对数关系来划分的。只要知道
4、了这12个音符的音高,也就是其基本的音乐的频率,就可以根据音符之间的倍频程关系得到其他音符基本的音调频率。知道了一个音符的频率后,便可以让单片机发出相应的频率的振荡信号,从而产生相应的音符声音。常采用的方法是通过单片机的定时器进行定时中断,在中断服务子程序中将单片机上外界扬声器的I/O口来回置高电平或置低电平,从而让扬声器发出声音。为了让单片机发出不同频率音符的声音,只需将定时器预置不同的定时值来实现。 以标准音高A为例:标准音高A的频率 f=440Hz,其对应的周期为: (1-1)因此需要在单片机I/O口输出周期为 T=2272us的方波脉冲,如图1-1所示图1-1单片机控制音调示意图由上图
5、可知: 单片机输出高电平和低电平信号均为: (1-2)也就是说,单片机上定时器的中断触发时间为1136us。如果单片机采用定时器工作方式1,它以振荡器的十二分频信号为计数脉冲。设外接晶振的振荡器频率为f0,则定时器的预置初值由下式来确定: (1-3) 式中,Count = =65536, 为定时器待确定的计数初值。因此定时器的高低计数器的初值为: (1-4) (1-5)如果单片机外接12MHz的晶振,则,将t=1136us和代入上面两式,即可求得标准音高A在单片机定时器工作方式1下的定时器高低计数器的初值为: (1-6) (1-7)根据上面的求法,我们可以求出其他音调相应的计数器的预置初值。在
6、单片机晶振频率,定时器在工作方式1下定时器计数初值见表1-1表1-1晶振频率定时器在工作方式1下定时器计数初值表音符频率/Hz计数初值音符频率/Hz计数初值低1 DO26263628# 4 FA #74064860#1 DO#27763731中 5 SO78464898低2 RE29463835# 5 SO#83164934#1 RE#31163928中 6 LA88064968低 3 MI33064021# 6 LA#93264994低 4 FA34964013中 7 SI98895030#4 FA#37064185高 1 DO104665058低5 SO39264260# 1 DO1109
7、65085#5 SO41564331高117565110低 6 LA44064400#2 RE#124565134#6 LA#46664463高 3 MI131865157低7 SI49464524高 4 FA139765178中 1 DO52364580# 4 FA#148065198# 1 DO#55464633高 5 SO 156865217中 2 RE58764684# 5 SO#166165235#2 RE#62264732高 6 LA176065252中 3 MI65964777# 6 LA#186565268中 4 FA69864820高 7 SI1967652831.1.2 节
8、拍在一张完整乐谱开头,都有如1=C、1=G等等的标识。这里1=C,1=G标识乐谱的曲调,简单的说就是跟音调有关系;这里的、用来表示节拍。对于音符的节拍,以为例。它表示乐谱中以四分音符为节拍,每一小节有三拍。1= G的节拍示意图,见图1-2 在图中,总共有三拍:1、2为一拍,3、4、5为一拍,6为一拍。从时长角度看,1、2的时长为四分音的一半,即为八分音符长;3、4的时长为八分音符的一半,即为十六分音符长;5的时长为四分音符的一半,即为八分音符长;6的时长为四分音符长。1=G图1-2节拍示意图对于一拍的发音时间,如果乐曲没有特殊说明,一般说来,一拍的时长大约为400450ms。如果这里规定一拍的
9、时长为400ms,那么以四分音符为节拍时,四分音符的时长为400ms,八分音符的时长为200ms,十六分音符的时长为100ms。从而,在单片机上可采用循环延时的办法来实现控制一个音符唱多长时间。首先要编写一个精确的基本时长的延时程序,比如说以八分音符的时长为基本延时时间,那么对于一个音符,如果它是四分音符,只需调用四次延时程序,如果它是二分音符,则只需调用八次延时程序,以此类推。1.2 本设计任务和主要内容本次课程设计主要研究基于AT89C52单片机的16键简易电子琴的设计。具体要求实现以下功能:(1) 按下音符键可以发出相应的音符;(2) 播放预存曲目。2 系统的主要硬件电路的设计2.1 单
10、片机控制系统原理2.1.1 芯片选用 在本次课程设计中我采用Atmel公司的AT89C52单片机。AT89C52是美国Atmel公司生产的低电压、高性能CMOS 8位单片机,片内含8KB的可反复檫写的程序存储器和12B的随机存取数据存储器(RAM),器件采用Atmel公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内配置通用8位中央处理器(CPU)和Flash存储单元,功能强大的AT89C52单片机可灵活应用于各种控制领域。AT89C52单片机属于AT89C51单片机的增强型,与Intel公司的80C52在引脚排列、硬件组成、工作特点和指令系统等方面兼容。AT89C52引脚
11、图见图2-1.图2-1 AT89C52引脚图其主要功能特性: 兼容MCS51指令系统 8k可反复擦写(1000次)Flash ROM 32个双向I/O口 256x8bit内部RAM 3个16位可编程定时/计数器中断 时钟频率0-24MHz 2个串行中断 可编程UART串行通道 2个外部中断源 共6个中断源 2个读写中断口线 3级加密位 低功耗空闲和掉电模式 软件设置睡眠和唤醒功能 2.1.2 简易电子琴的组成框图AT89C5244矩阵键盘发音电路供电及复位电路晶振电路 图2-2 电子琴系统原理框图2.1.3 简易电子琴的proteus总体仿真图 电子琴的proteus总体仿真图见图2-3。按下
12、MUSICKEY键,系统自动播放预存在内存中的曲子,按下RESKEY键,系统复位,停止播放。按下矩阵键盘中的任意键,扬声器发出相应的音符。图2-3 简易电子琴的proteus总体仿真图2.2 单片机主机系统电路2.2.1 时钟频率 单片机必须在时钟的驱动下才能工作。在单片机内部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。外部振荡源电路一般选用石英晶体振荡器,此电路在加电大约延迟10mS后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。电路中两个电容C1,C2,作用有两个:一是帮
13、助振荡器起振;二是对振荡器的频率进行微调。C1,C2的典型值为30PF。 单片机在工作时,由内部振荡器产生或由外直接输入的送至内部控制逻辑单元的时钟信号的周期称为时钟周期。起大小是时钟信号频率的倒数,常用fosc表示。如时钟频率为12MHz,即fosc=12MHz,则时钟周期为1/12s。2.2.2 晶振电路AT89C52单片机的定时控制功能是用时钟电路和振荡器完成的,而根据硬件电路的不同,连接方式分为内部时钟方式和外部时钟方式。本设计中采用内部时钟方式。单片机内部有一个反相放大器XTAL1、XTAL2分别为反相放大器的输入端和输出端,外接定时反馈元件组成振荡器(内部时钟方式),产生时钟送至单
14、片机内部各元件。时钟频率越高,单片机控制器的控制节拍就越快,运算速度也就越快。一般来说单片机内部有一个带反馈的线性反相放大器,外界晶振(或接陶瓷振荡器)和电容就可组成振荡器,如图2-4所示。加电以后延时一段时间(约10ms)振荡器产生时钟,不受软件控制,图中X1为晶振,震荡产生的时钟频率主要由Y1确定。电容C1,C2的作用有两个:一是帮助振荡器起振,二是对振荡器的频率起微调作用,典型值为30pF。图2-4 晶振电路2.2.3 键盘扫描在单片机应用中键盘用得最多的形式是独立键盘及矩阵键盘,如图2-5,图2-6所示。图2-5 独立键盘图2-6 矩阵键盘它们各有自己的特点,其中独立键盘硬件电路简单,
15、而且在程序设计上也不复杂,一般用在对硬件电路要求不高的简单电路中;矩阵键盘与独立键盘有很大区别,首先在硬件电路上它要比独立键盘复杂得多,而且在程序算法上比它要烦琐,但它在节省端口资源上有优势得多,因此它更适合于多按键电路。本次课程设计,我采用矩阵式键盘电路,这样可以大大的节省单片机I/O的开销。键盘电路见图2-7:图2-7 键盘电路在按键过程中常产生“毛刺” 现象,如图2-8所示,要消除“毛刺”现象,这里采用最常用的方法,即延时重复扫描法,延时法的原理为:因为“毛刺”脉冲一般持续时间短,约为几ms,而我们按键的时间一般远远大于这个时间,所以当单片机检测到有按键动静后,再延时一段时间(10ms2
16、0ms)后再判断此电平是否保持原状态,如果是则为有效按键,否则无效。 图2-8 “毛刺”现象2.2.4 发音电路 电子琴发音电路见图2-9。图2-9 电子琴发音电路2.2.5 供电及复位电路 电子琴的供电电路和复位电路见图2-10。图2-10 电子琴供电及复位电路3 系统的软件设计3.1 主程序3.1.1 主程序的流程图 主程序的程序流程图见图3-1.按键是否按下开始去抖动,延时10ms扫描按键位置做一次按键处理,播放相应的音符或音乐按键是否按下图3-1程序流程图3.1.2 主程序 KEYBUF EQU 30H STH0 EQU 31H STL0 EQU 32H TEMP EQU 33H SP
17、KEQUP1.6; 蜂鸣器所在端口ORG 0000H LJMP START ORG 0BH LJMP INT_T0 ;转定时器T0中断服务程序START:MOV TMOD,#01H ;选择定时器T0工作于方式1SETB ET0 ;允许T0溢出中断SETB EA WAIT: MOV P2,#0FFH CLR P2.4 ;从第四行开始扫描MOV A,P2 ANL A,#0FH ;屏蔽高四位,高四位为行,低四位为列XRL A,#0FH JZ NOKEY1 ;判断是否有键按下,没有就跳转LCALL DELY10MS MOV A,P2 ;消除抖动和干扰ANL A,#0FH XRL A,#0FH JZ N
18、OKEY1 MOV A,P2 ;确定有键按下以后的处理ANL A,#0FH CJNE A,#0EH,NK1 ;是否为第四行第一列的键被按下MOV KEYBUF,#0 ;保存列号LJMP DK1 NK1:CJNE A,#0DH,NK2 MOV KEYBUF,#1 LJMP DK1 NK2:CJNE A,#0BH,NK3 MOV KEYBUF,#2 LJMP DK1 NK3:CJNE A,#07H,NK4 MOV KEYBUF,#3 LJMP DK1 NK4:NOP DK1: ;第四行的处理MOV A,KEYBUF MOV DPTR,#TABLE MOVC A,A+DPTR MOV P0,A MO
19、V A,KEYBUF MOV B,#2 ;Table1以字保存,所以散转MUL AB MOV TEMP,A MOV DPTR,#TABLE1 MOVC A,A+DPTR MOV STH0,A ;送入高字节MOV TH0,A INC TEMP MOV A,TEMP MOVC A,A+DPTR MOV STL0,A ;送入低字节MOV TL0,A SETB TR0 DK1A:MOV A,P2 ;判断按键是否松开ANL A,#0FH XRL A,#0FH JNZ DK1A CLR TR0 NOKEY1: MOV P2,#0FFH CLR P2.5 MOV A,P2 ANL A,#0FH XRL A,
20、#0FH JZ NOKEY2 LCALL DELY10MS MOV A,P2 ANL A,#0FH XRL A,#0FH JZ NOKEY2 MOV A,P2 ANL A,#0FH CJNE A,#0EH,NK5 MOV KEYBUF,#4 LJMP DK2 NK5:CJNE A,#0DH,NK6 MOV KEYBUF,#5 LJMP DK2 NK6:CJNE A,#0BH,NK7 MOV KEYBUF,#6 LJMP DK2 NK7:CJNE A,#07H,NK8 MOV KEYBUF,#7 LJMP DK2 NK8:NOP DK2: MOV A,KEYBUF MOV DPTR,#TABLE
21、 MOVC A,A+DPTR MOV P0,A MOV A,KEYBUF MOV B,#2 MUL AB MOV TEMP,A MOV DPTR,#TABLE1 MOVC A,A+DPTR MOV STH0,A MOV TH0,A INC TEMP MOV A,TEMP MOVC A,A+DPTR MOV STL0,A MOV TL0,A SETB TR0 DK2A:MOV A,P2 ANL A,#0FH XRL A,#0FH JNZ DK2A CLR TR0 NOKEY2: MOV P2,#0FFH CLR P2.6 MOV A,P2 ANL A,#0FH XRL A,#0FH JZ NOK
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 论文 基于 AT89C52 单片机 16 简易 电子琴 设计
链接地址:https://www.31ppt.com/p-4860951.html