毕业设计基于AT89S52单片机的十六音键电子琴设计.doc

上传人:土8路 文档编号:11063868 上传时间:2021-06-24 格式:DOC 页数:21 大小:289KB
返回 下载 相关 举报
毕业设计基于AT89S52单片机的十六音键电子琴设计.doc_第1页
第1页 / 共21页
毕业设计基于AT89S52单片机的十六音键电子琴设计.doc_第2页
第2页 / 共21页
毕业设计基于AT89S52单片机的十六音键电子琴设计.doc_第3页
第3页 / 共21页
毕业设计基于AT89S52单片机的十六音键电子琴设计.doc_第4页
第4页 / 共21页
毕业设计基于AT89S52单片机的十六音键电子琴设计.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《毕业设计基于AT89S52单片机的十六音键电子琴设计.doc》由会员分享,可在线阅读,更多相关《毕业设计基于AT89S52单片机的十六音键电子琴设计.doc(21页珍藏版)》请在三一文库上搜索。

1、第1章 前言1.1 系统开发背景随着电子科技的飞速发展,电子技术正在逐渐改善着人们的学习、生活、工作,因此开发本系统希望能够给人们多带来一点生活上的乐趣。基于当前市场上的玩具市场需求量大,其中电子琴就是一个很好的应用方面。单片机技术使我们可以利用软硬件实现电子琴的功能,从而实现电子琴的微型化,可以用作玩具琴、音乐转盘以及音乐童车等等。并且可以进行一定的功能扩展。鉴于传统电子琴可以用键盘上的“k0”到“k16”键演奏从低So到高DO等16个音,从而可以用来弹奏喜欢的乐曲。1.2 系统开发意义该设计具有以下优点:(1)可以随意弹奏想要表达的音乐;(2)制作简单,成本低。1.3 设计目标由于本设计主

2、要用于人们娱乐方面,因此在设计上尽量使其安全以及简单易操作。其次,在这次设计可行性上进行分析如下:1、经济可行性:所谓经济可行性,即在这次设计上需要投入资金的多少,由于竞赛设计是没有项目资金,没有开发经费,因此在经济上必须能够承受,比较理想化的项目对于我们毕业设计来说是不可行的。通过分析后,无论是在器件价格或是常见度上均是可行的。2、技术可行性:技术可行性主要是分析技术条件上是否能够顺利开展并完成开发工作,硬件、软件能否满足设计者的需要等。通过分析各种软件环境,硬件仿真环境等均已经具备。综上所述,本系统设计目标已经明确,在经济与技术上均可行,因此本系统的开发是完全可行的。第2章 方案论证2.1

3、 控制模块选择方案方案一:用可控硅制作电子琴。将220V交流电经变压器降压,再经过整流、滤波,获得+13.5V直流电压。将单向可控硅SCR和电阻、电容组成驰张振荡器电路。但该设计方案制作成本高且复杂。方案二: 采用AT89C51单片机进行控制,由于AT89C51不具备ISP功能,因此Atmel公司已经停产在市面上已经不常见,况且其ROM只有4K在系统将来升级方面没有潜力。方案三:采用AT89S52单片机进行控制,由于其性价比高,完全满足了本作品智能化的要求,它的内部程序存储空间达到8K,使软件设计有足够的内部使用空间并且方便日后系统升级,使用方便,抗干扰性能提高。鉴于上述对比与分析,本设计采用

4、方案三 2.2 按键选择方案传统电子琴可以用键盘上的“1”到“A”键演奏从低SO到高DO等11音。该设计有16个按钮矩阵,设计成16个音,可以实现音阶在低音4-高音5之间。比传统音阶范围大,弹奏效果好。第3章 系统硬件设计及说明3.1系统组成及总体框图硬件设计的任务是根据总体设计要求,在选择的机型的基础上,具体确定系统中所要使用的元器件,设计出系统的原理框图、电路原理图。该设计要实现一种由单片机控制的电子琴,单片机工作于12MHZ时钟频率,使用其定时/计数器T1,工作模式为1,改变计数值TH1和TL1可以产生不同频率的脉冲信号。该设计具有11个音节的键盘,用户可以根据乐谱在键盘上进行演奏,音乐

5、发生器会根据用户的弹奏,通过扬声器将音乐播放出来。由于本例实现的音乐发生器是由用户通过键盘输入弹奏乐曲的,所以节拍由用户掌握,不由程序控制。用单片机产生的音频脉冲直接驱动扬声器并不能产生所要实现的音乐,因为它没有足够的驱动能力,这就需要音频功率放大电路。本例使用国家半导体公司的低压音频功率放大器LM324来实现音频功放电路。键盘扫描AT89S52液晶显示蜂鸣器播放音乐电源部分图3.1 系统结构图3.2显示电路本次设计的显示电路采用LCD液晶显示。通过单片机编程,让LCD液晶显示,以此来实现按键与显示程序的一致性。3.3部分功能模块原理图3.3.1 AT89S52模块电路原理图单片机主程序模块通

6、过对键盘扫描程序信号的读取,在通过调出对应的子程序,取出液晶显示的编码和定时器初始值以产生不同的声音信号。在这一过程中,对液晶显示通过对数组的操作,对声音信号则是通过中断程序进行控制。图3.2 AT89S52模块电路原理图3.3.2 LCD液晶显示模块电路原理图图3.4 LCD液晶显示模块电路原理图3.3.3音频处理模块电路原理图 由于单片机驱动能力不够,在处理音符信号时,需加功率放大装置,因LM324芯片具有低功耗、高增益的特点,这合适单片机低功耗输出,所以加装LM324音频信号放大器对信号进行放大。图3.5 音频处理模块电路原理图3.3.4掉电保护电路原理图图3-7掉电保护电路原理图第4章

7、 系统软件设计本软件设计关键是要实现一种由单片机控制的简单音乐发生器,它由16个音节组成的的键盘,用户可以根据乐谱在键盘上进行演奏,音乐发生器会根据用户的弹奏,通过扬声器将音乐播放出来。4.1音乐相关知识乐音听起来有的高,有的低,这就叫音高,音高是由发音物体振动频率的高低决定的,频率高声音就高,频率低,声音就低,不同音调的乐音是用C、D、E、F、G、A、B表示的,这7个字母就是乐音的音名,它们一般依次唱成DO、RE、MI、FA、SO、LA、SI,这是唱曲时乐音的发音,所以叫唱名。音持续时间的长短即时值,一般用拍数表示,休止符表示暂停发音。一首音乐是由许多不同的音符组成的,而每个音符对应着不同的

8、频率,这样就可以利用不同频率的组合,加以与拍数对应的延时,构成音乐。4.2如何用单片机实现音乐的节拍除了音符以外,节拍也是音乐的关键组成部分。节拍实际上就是音持续时间的长短,在单片机系统中可以用延时来实现,如果1/4拍的延时是0.4秒,则1拍的延时是1.6秒,只要知道1/4拍的延时时间,其余的节拍延时时间就是它的陪数。如果单片机要自己播放音乐,那么必须在程序设计中考虑到节拍的设置,由于本例实现的音乐发生器是由用户通过键盘输入弹奏乐曲的,所以节拍由用户掌握,不由程序控制。对于不同的曲调我们也可以用单片机的另外一个定时/计数器来完成。音乐的音拍,一个节拍为单位(C调)具体如下表:表4.1 音乐节拍

9、表曲调值DELAY曲调值DELAY调4/4125ms调4/462ms调3/4187ms调3/494ms调2/4250ms调2/4125ms4.3如何用单片机产生音频脉冲了解音乐的一些基本知识后可知,产生不同频率的音频脉冲即能产生音乐,对于单片机而言,产生不同频率有脉冲非常方便,可以利用它的定时/计数器来产生这样的方波频率信号,因此,需要弄清楚音乐中的音符和对应的频率,以及单片机定时计数的关系。在本实验中,单片机工作于12MHZ时钟频率,使用其定时/计数器T1,工作模式为1,改变计数值TH1和TL1可以产生不同频率的脉冲信号,在此情况下,C调的各音符频率与计数值T的对照如下表:表4.2 音符频率

10、与计数值T的对照表音符频率(HZ)计数值(T值)音符频率(HZ)计数值(T值)低1DO26263628#4FA#74064860#1DO#27763737中5SO78464898低2RE29463835#5SO#83194934#2RE#31163928中6LA88064968低3MI33064021#6LA#93264994低4FA34964103中7SI96865030#4FA#37064185低1DO104665058低SO39264260#1DO#110965085#5SO#41564331高2RE117565110低6LA44064400#2RE#124565134#6LA#4666

11、4463高3MI131865157低7SI49464524高4FA139765178中1DO52364580#4FA#149065198#1DO#55464633高5SO156865217中2RE58764633#5SO#166165235#2RE#62264884高6LA176065252中3MI65964732#6LA#186565268中4FA69864820高7SI196765283T的值决定了TH1和TL1的值,其关系为:TL1=T%256,TH1=T/2564.4系统总体功能流程图 N调用初始化函数主程序开始键扫函数YLCD液晶显示扬声器出声 图4.1 主程序框图 按键子程序流程图

12、如下:K1键按下K2键按下K3键按下K4键按下K5键按下K6键按下K7键按下数码管显示3.,并播放mi的低音数码管显示4.,并播放fa的低音数码管显示5.,并播放so的低音K8键按下数码管显示6.,并播放la的低音数码管显示7.,并播放si的低音数码管显示1,并播放do的中音数码管显示2,并播放re的中音数码管显示3,并播放mi的高阶中音图K9键按下K10键按下K11键按下K12键按下K13键按下K14键按下K15键按下数码管显示4并播放fa的中音数码管显示5并播放so的中音数码管显示6,并播放la的中音K16键按下数码管显示7,并播放si的中音数码管显示A,并播放do的高音数码管显示B,并播

13、放re的高音数码管显示C,并播放mi的高音数码管显示D,并播放fa的高阶高音第5章 电路仿真5.1 仿真图图5.1 仿真图第6章 PCB印制板制作6.1 印制板制作的要求(1)电源线、地线应各设置一条总线;(2)线宽尽可能的宽;(3)应减少软线跳线的使用;(4)元器件排版要均匀,按模块排版,防止各模块信号干扰;(5)铜箔线不可以产生锐角。6.2 印制电路板图图 6.1 主控电路PCB板图第7章 系统调试电路调试是整个系统功能否实现的关键步骤,我们将整个调试过程分为三大部分:硬件调试、软件调试和综合调试。7.1软件仿真调试软件仿真调试主要是针对单片机部分进行调试。在软件运行前,先确保电路中连线正

14、确,这一工作是整个调试工作的第一步,也是非常重要的一个步骤。在这部分调试中主要通过目测,用来完成检测电路中是否存在断路或者短路情况等。在确保软件仿真电路正常,无异常情况(断路或短路)方可进行软件运行,在本次设计中,软件运行主要是测试单片机键盘控制部分、数码管点亮部分、和音频功放电路调试。1、LCD液晶电路调试:软件运行,随机按下按钮可以看到数码管显示数字;2、单片机键盘控制部分调试:软件运行,随机按动键盘可以发现各个按键对应的音正确。7.2 软件调试调试主要方法和技巧:通常一个调试程序应该具备至少四种性能:跟踪、断点、查看变量、更改数值。整个程序是一个主程序调用各个子程序实现功能的过程,要使主

15、程序和整个程序都能平稳运行,各个模块的子程序的正确与平稳运行必不可少,所以在软件调试的最初阶段就是把各个子程序模块进行分别调试。附 录1.主要电路原理图:2.程序文件 :/*标题:液晶显示程序*日期:*作者:*版本:*/#include#include#includestring.h#include #include #include24c02.h#define uchar unsigned char#define uint unsigned int#define ulong unsigned long sbit psb = P21;sbit ret = P23;sbit P3_7=P37;u

16、char keyword;uint T=0;uchar i;code unsigned char sszymmh= 6,2,3, 5,2,1, 3,2,2, 5,2,2, 1,3,2, 6,2,1, 5,2,1, 6,2,4, 3,2,2, 5,2,1, 6,2,1, 5,2,2, 3,2,2, 1,2,1, 6,1,1, 5,2,1, 3,2,1, 2,2,4, 2,2,3, 3,2,1, 5,2,2, 5,2,1, 6,2,1, 3,2,2, 2,2,2, 1,2,4, 5,2,3, 3,2,1, 2,2,1, 1,2,1, 6,1,1, 1,2,1, 5,1,6, 0,0,0 ; /世上

17、只有妈妈好? code unsigned char sb=5,2,2, 3,2,1, 5,2,1, 1,3,4, 6,2,2, 1,3,2, 5,2,4, 5,2,2, 1,2,1, 2,2,1, 3,2,2, 2,2,1, 1,2,1, 2,2,6, 5,2,2, 3,2,1, 5,2,1, 1,3,2, 7,2,2, 6,2,2, 1,3,2, 5,2,4, 5,2,2, 2,2,1, 3,2,1, 4,2,2, 7,1,2, 1,2,8,6,2,2, 1,3,2,1,3,4,7,2,2, 6,2,1, 7,2,1, 1,3,4, 6,2,1, 7,2,1, 1,3,1, 6,2,1, 6

18、,2,1, 5,2,1, 3,2,1, 1,2,1, 2,2,8, 5,2,2, 3,2,1, 5,2,1, 1,3,2,7,2,2, 6,2,2, 1,3,2, 5,2,4, 5,2,2, 2,2,1, 3,2,1, 4,2,2, 7,1,2, 1,2,8 ; /送别code unsigned char dfh=5,2,2, 5,2,1, 6,2,1, 2,2,2, 1,2,2, 1,2,1, 6,1,1,2,2,2, 5,2,2, 5,2,2, 6,2,1, 1,3,1, 6,2,1, 5,2,1, 1,2,2, 1,2,1, 6,1,1, 2,2,2, 5,2,2, 2,2,2, 1,2

19、,2, 7,1,1, 6,1,1, 5,1,1, 5,2,2, 2,2,2, 3,2,1, 2,2,1, 1,2, 1,1,2, 1,6,1, 2,2,2, 1,3,2, 1,2,2, 1,1,2, 1,2, 2,1,1, 2,1,7, 1,1,6, 1,1, 5,1,1 ;/东方红code unsigned char xyxy=6,2,2, 1,3,2, 7,2,1, 6,2,1, 5,2,1, 6,2,1, 3,2,6, 6,2,1, 5,2,1, 6,2,2, 1,3,2, 7,2,2, 6,2,1, 7,2,1, 1,3,6, 1,3,1, 2,3,1, 3,3,1, 3,3,1, 3

20、,3,1, 3,3,1, 2,3,4, 1,3,1, 7,2,1, 6,2,1, 7,2,1, 5,2,2, 6,2,2, 1,3,2, 7,2,2, 6,2,1, 5,2,1, 6,2,6, 6,2,2, 6,2,1, 1,3,1, 7,2,2, 5,2,2, 6,2,8, 6,2,4, 3,2,1, 5,2,1, 6,2,2, 3,3,2, 2,3,1, 1,3,1, 7,2,1, 1,3,1, 1,3,6, 待添加的隐藏文字内容2 1,3,1, 7,2,1, 6,2,2, 6,2,1, 6,2,1, 5,2,1, 5,2,1, 6,2,2, 3,2,6, 3,2,1, 5,2,1, 6,

21、2,2, 3,3,2, 2,3,1, 1,3,1, 7,2,1, 1,3,1, 1,3,6, 1,3,1, 7,2,1, 6,2,2, 6,2,2, 5,2,2, 7,2,2, 6,2,8;/星语心愿code unsigned char yxdcb=5,1,1, 1,2,1, 3,2,2, 5,2,1, 3,2,2, 2,2,1, 1,2,1, 1,2,1, 1,2,1, 1,2,1, 6,1,1, 5,1,1, 5,1,1, 1,2,1, 3,2,2, 5,2,2, 5,2,1, 5,2,1, 6,2,1, 5,2,1, 5,2,1, 2,2,1, 3,2,1, 2,2,1, 1,2,1,

22、2,2,1, 2,2,2, 6,2,1, 5,2,1, 3,2,2, 5,2,2, 5,2,1, 5,2,1, 6,2,1, 5,2,1, 3,2,1, 2,2,1, 1,2,1, 2,2,1, 6,1,2, 5,1,1, 6,1,1, 1,2,2, 2,2,1, 3,2,1, 2,2,2, 3,2,1, 1,2,1, 1,2,4, 5,1,1, 1,2,1, 1,2,4, 3,2,1, 5,2,1, 1,3,2, 7,2,1, 1,3,1, 7,2,2, 6,2,1, 5,2,1, 6,2, 1,1,3, 1,3,2, 1,2,2, 1,1,2, 2,1,2, 1,1,2, 1,1,2, 1

23、,1,3, 2,5,2, 1,6,2, 1,5,2, 1,2,2, 1,3,2, 1,2,2, 1,1,2, 1,2,2, 1,2,2, 4,13,2,1,5,2, 1,1,3, 2,7,2, 1,1,3, 1,7,2, 2,6,2, 1,5,2, 1,6,2, 1,1,3, 1,3,2, 1,2,2, 1,1,2, 2,1,2, 1,1,2, 1,1,2, 1,1,3, 2,5,2, 1,6,2, 1,5,2, 1,2,2, 1,3,2, 1,2,2,1, 1,2,4, ;/* 功能:显示菜单栏 */void display_menu(void) lcd_clear(); while(1)

24、display(2,2,电子琴演奏); keyword=0; keyword=key_scan(); switch(keyword) case 0x11: lcd_clear(); display(2,4,0); T=63928; TH0=T/256; TL0=T%256; TR0=1; TR1=1; break; case 0x12: lcd_clear(); display(2,4,1); T=64021; TH0=T/256; TL0=T%256; TR0=1; TR1=1; break; case 0x14: lcd_clear(); display(2,4,2); T=64185;

25、TH0=T/256; TL0=T%256; TR0=1; break; case 0x18: lcd_clear(); display(2,4,3); T=64331; TH0=T/256; TL0=T%256; TR0=1; TR1=1; break; case 0x21: lcd_clear(); display(2,4,4); T=64400; TH0=T/256; TL0=T%256; TR0=1; TR1=1; break; case 0x22: lcd_clear(); display(2,4,5); T=64524; TH0=T/256; TL0=T%256; TR0=1; TR

26、1=1; Break; case 0x24: lcd_clear(); display(2,4,6); T=64400; TH0=T/256; TL0=T%256; TR0=1; TR1=1; break; case 0x28: lcd_clear(); display(2,4,7); T=64732; TH0=T/256; TL0=T%256; TR0=1; TR1=1; break; case 0x41: lcd_clear(); display(2,4,8); T=64777; TH0=T/256; TL0=T%256; TR0=1; TR1=1; break; case 0x42: l

27、cd_clear(); display(2,4,9); T=64860; TH0=T/256; TL0=T%256; TR0=1; TR1=1; break; case 0x44: lcd_clear(); display(2,4,A); T=64934; TH0=T/256; TL0=T%256; TR0=1; TR1=1; break; case 0x48: lcd_clear(); display(2,4,B); T=64994; TH0=T/256; TL0=T%256; TR0=1; TR1=1; break; case 0x81: lcd_clear(); display(2,4,

28、C); T=65030; TH0=T/256; TL0=T%256; TR0=1; TR1=1; break; case 0x82: lcd_clear(); display(2,4,D); T=65058; TH0=T/256; TL0=T%256; TR0=1; TR1=1; break; case 0x84: lcd_clear(); display(2,4,E); T=65110; TH0=T/256; TL0=T%256; TR0=1; TR1=1; break; case 0x88: lcd_clear(); display(2,4,F); T=65134; TH0=T/256;

29、TL0=T%256; TR0=1; TR1=1; break; default: TR0=0; TR1=0; break; void time0(void) interrupt 1 using 2 P3_7=!P3_7; TH0=T/256; TL0=T%256; void time1(void) interrupt 3 using 3 TH1=0XD8; /*10ms*/ TL1=0XF0; /*主程序*/void main(void) TMOD=0X11; EA=1; ET0=1; ET1=1; TH1=0XD8; TL1=0XF0; P0=0x00; /*为了调试方便*/ lcd_set

30、(); lcd_clear(); while(1) display(2,2,湖南工学院); keyword=key_scan(); switch(keyword) case 0x84: lcd_clear(); display_menu(); break;default: break; Employment tribunals sort out disagreements between employers and employees.You may need to make a claim to an employment tribunal if: you dont agree with t

31、he disciplinary action your employer has taken against you your employer dismisses you and you think that you have been dismissed unfairly.For more information about dismissal and unfair dismissal, seeDismissal.You can make a claim to an employment tribunal, even if you haventappealedagainst the dis

32、ciplinary action your employer has taken against you. However, if you win your case, the tribunal may reduce any compensation awarded to you as a result of your failure to appeal.Remember that in most cases you must make an application to an employment tribunal within three months of the date when t

33、he event you are complaining about happened. If your application is received after this time limit, the tribunal will not usually accept i.If you are worried about how the time limits apply to you, take advice from one of the organisations listed underFurther help.Employment tribunals are less forma

34、l than some other courts, but it is still a legal process and you will need to give evidence under an oath or affirmation.Most people find making a claim to an employment tribunal challenging. If you are thinking about making a claim to an employment tribunal, you should get help straight away from

35、one of the organisations listed underFurther help.If you are being represented by a solicitor at the tribunal, they may ask you to sign an agreement where you pay their fee out of your compensation if you win the case. This is known as adamages-based agreement. In England and Wales, your solicitor c

36、ant charge you more than 35% of your compensation if you win the case.If you are thinking about signing up for a damages-based agreement, you should make sure youre clear about the terms of the agreement. It might be best to get advice from an experienced adviser, for example, at a Citizens Advice B

37、ureau. To find your nearest CAB, including those that give advice by e-mail, click onnearest CAB.For more information about making a claim to an employment tribunal, seeEmployment tribunals.The (lack of) air up there Watch mCayman Islands-based Webb, the head of Fifas anti-racism taskforce, is in London for the Football Associations 150th anniversary celebrations and will attend Citys Premier League match at Chelsea on Sunday.I am going to be at the match tomorrow and I have asked to meet Yaya Toure, he told BBC Sport.For me its about how he felt and I would like to speak to him fir

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1