0134梁迎旭单片机实验报告.docx
- 文档编号:644084
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:31
- 大小:286.26KB
0134梁迎旭单片机实验报告.docx
《0134梁迎旭单片机实验报告.docx》由会员分享,可在线阅读,更多相关《0134梁迎旭单片机实验报告.docx(31页珍藏版)》请在冰点文库上搜索。
0134梁迎旭单片机实验报告
桂林航天工业学院
课程设计报告
院(系):
电子信息与自动化学院专业班级:
20130901101
学生姓名:
梁迎旭 学号:
2013090110134
设计题目:
简易电子琴设计
完成日期:
2015年 12 月 31 日
指导教师评语:
_____________________________________
_________________________________________________________________________________________________________________________________________________________
成绩(五级记分制):
_____________________
指导教师(签字):
_____________________
摘要
本设计是用AT89C51单片机为核心控制元件,设计一个模拟电子琴发声控制系统。
以单片机作为主控核心,与键盘、蜂鸣器模块组成核心主控制模块。
在主控模块上设有8个按键,其中7个按键控制7个音符,1个作为功能转换键使用,具有自动播放乐曲的功能,本设计通过控制单片机定时器的定时时间产生不同频率的音频脉冲,经三极管放大信号后驱动蜂鸣器发出不同音节的声音。
为了实现按键的准确判断和完善电子琴发声的效果,本设计采用了软件防抖的方法,有效的解决了按键抖动的问题。
另外当按下功能切换键,切换至音乐自动播放功能时,本系统能实现歌曲的播放,这样使得电子琴的功能变的更加强大。
经过软硬件的调试,该音乐发生器不但能通过键盘弹奏出很好的音调,而且还可以通过键盘选择播放不同的音乐。
本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。
关键词:
电子琴,单片机,按键,扬声器
Abstract
ThisdesignistouseAT89C51single-chipmicrocomputerasthecorecontrolcomponents,designasimulatedkeyboardvoicecontrolsystem.Onthemaincontrolmodulehaseightbuttons,amongthem7buttonscontrolsevennotes,using1asafunctionofconversionkey,Thisdesignbycontrollingthesinglechipmicrocomputertimertimingtimeproducesdifferentfrequenciesofaudiopulse,aftertriodeamplifyingsignaldrivebuzzersoundsdifferentsyllables.Thisdesignforthephysicalcircuitboarddesign,development,andreportindetailelaboratedthekeyboarddesignmethodandprocess.Andthroughsoftwareandhardwaredebugging,themusicgeneratornotonlycanplaytheverygoodtonebykeyboard,andcanbecontrolledbythekeyboardselectionplaydifferentmusic.Thissystemrunsstably,itsadvantageishardwarecircuitissimple,softwarefunctionisperfect,thecontrolsystemisreliable,cost-effectivehigher,hascertainpracticalandreferencevalue.
Keywords:
AT89C52devices,electronicorgan,microcontroller,musicgenerator
目录
摘要1
Abstract2
1绪论6
1.1设计背景与意义6
1.1.1设计背景6
1.1.2设计意义6
1.2设计内容6
2简易电子琴系统6
2.1系统设计任务与设计要求6
2.1.1系统设计任务6
2.1.2系统设计要求6
2.2系统方案论证7
2.2.1控制模块选择方案论证7
2.2.2选择模块论证7
2.3系统总体方案7
3电子琴硬件部分设计8
3.1电子琴硬件总体设计8
3.2主要硬件部分简介9
3.2.1AT89C519
3.2.24*4按键9
3.2.3蜂鸣器10
3.2.4发光二级管10
3.2.5时钟振荡电路11
3.2.6复位电路11
3.2.7单片机最小系统12
4电子琴软件部分设计12
4.1系统软件总体设计12
4.2扬声器模块程序:
13
4.3矩阵键盘模块程序15
5系统调试16
5.1硬件调试16
5.2软件调试16
5.2.1Proteus简介16
5.2.2Keil简介16
6总结与体会18
参考文献19
附录119
附录226
桂林航天工业学院课程设计任务书
设计题目:
基于51单片机的简易电子琴的设计
学生姓名
梁迎旭
课程名称
单片机综合设计
专业班级
自动化一班
地点
巡天楼408
起止时间
2015年12月28日——
2015年12月31日
设计内容
简易电子琴
设计参数
可播放音乐,可记录输入的音符并回放
设计进度
2015年12月28日:
查阅资料
2015年12月29日-30日:
硬件设计、软件设计、撰写设计报告
2015年12月31日:
提交报告、验收和答辩
设计成果
1、实物
2、课程报告
参考资料
[1]李华《单片机C语言编程》北京航空航天大学出版社2005.8.1
[2]徐爱钧《单片机原理使用教程—基于Protrues虚拟仿真》电子工业出版社.2009.1
[3]邓红《单片机实验与应用设计教程》冶金工业出版社,2004.5.1
[4]张毅刚《MCS-51单片机应用设计》哈尔滨工业大学出版社2004
[5]王静霞. 单片机应用技术(C语言版). 北京:
电子工业出版社.2009.5
说明
1.本表应在每次实施前由指导教师填写一式2份,审批后所在系(部)和指导教师各留1份。
2.多名学生共用一题的,在设计内容、参数、要求等方面应有所区别。
3.若填写内容较多可另纸附后。
系(部)分管领导:
教研室主任:
指导教师:
年月日
1绪论
1.1设计背景与意义
1.1.1设计背景
随着社会的发展进步,音乐逐渐成为我们生活中很重要的一部分,有人曾说喜欢音乐的人不会向恶。
我们都会抽空欣赏世界名曲,作为对精神的洗礼。
本论文设计一个基于单片机的简易电子琴。
我们对于电子琴如何实现其功能,如音色选择、声音强弱控制、节拍器、自动放音功能等等也很好奇。
单片微型计算机是大规模集成电路技术发展的产物,属第四代电子计算机,它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。
它的应用必定导致传统的控制技术从根本上发生变革。
因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。
1.1.2设计意义
电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。
它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。
本文的主要内容是用AT89S51单片机为核心控制元件,设计一个电子琴。
以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有16个按键和扬声器。
1.2设计内容
本系统设计制作一个可演奏的电子琴。
综合应用了两项设计,即键盘矩阵识别和不同频率音符播放。
矩阵键盘即矩阵扫描,显示当前按键;不同频率音符播放则可以通过按键控制16种发音。
本文主要对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴统硬件组成。
利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。
并且本文分别从原理图,主要芯片,各模块原理及各模块的程序的调试来详细阐述。
本系统是简易电子琴的设计。
2简易电子琴系统
2.1系统设计任务与设计要求
2.1.1系统设计任务
熟悉51单片机集成开发环境,运用C语言编写工程文件;熟练应用所选用单片机的内部结构、资源,以及软硬件调试设备的基本方法;自行构建基于单片机的最小系统,完成相关硬件电路的设计实现;
2.1.2系统设计要求
实现电子琴发声控制系统;要求电路实现如下功能:
利用现成电脑音响作为发声部件,21个音符键,实现高音、中音、低音的1、2、3、4、5、6、7的发音。
并在存储几首歌曲的内容,可以实现歌曲的自动播放。
2.2系统方案论证
2.2.1控制模块选择方案论证
采用AT89C51单片机进行控制,由于其性价比高,完全满足了本作品智能化的要求,它的内部程序存储空间达到4K,使软件设计有足够的内部使用空间并且方便日后系统升级,使用方便,抗干扰性能提高。
鉴于上述对比与分析,AT89C51单片机设计微型电子琴的方法,仅需AT89C51最小系统,扩展一组矩阵键盘,再接一组发光二极管用来指示电子琴的工作状态。
2.2.2选择模块论证
传统电子琴可以用键盘上的“1”到“A”键演奏从低SO到高DO等11音。
该设计有16个按钮矩阵,设计成16个音,可以实现音阶在低音4---高音5之间。
比传统音阶范围大,弹奏效果好。
2.3系统总体方案
音乐是有由不同的音阶组成的,而不同的音阶又是由不同的频率发出的,那么产生不同的频率,就可以发出不同的音乐了。
而利用单片机就可以产生不同的频率的方波,因此选择单片机为主来设计。
通过程序编写实现单片机输出不同的频率,输出的方波信号再通过接口给扬声器,让其发声。
同时电子琴加入led用来显示。
本设计的主要工作是程序编写,通过程序让电子琴实现音乐演奏,歌曲播放以及记录已按下的音符,并播放,最后通过发光二极管来显示电子琴的工作状态。
而硬件主要有单片机最小系统,键盘模块,发声模块,还有一个电源模块。
系统方案框图如图2.3所示
图2.3系统框图
3电子琴硬件部分设计
3.1电子琴硬件总体设计
考虑到实物的难易情况,电子琴的硬件电路分为两部分,一部分有单片机最小系统、扬声器、发光二极管组成,如图3.1.1所示,另外一部分有键盘组成,如图3.1.2所示。
实物图见附录2。
图3.1.电子琴硬件总体设计
图3.2键盘系统
3.2主要硬件部分简介
3.2.1AT89C51
单片机AT89C51原理图如图3.2.1所示
图3.3单片机原理图
AT89C51是一个低电压,高性能CMOS8位单片机带有4K字节的可反复擦写的程序存储器(PENROM)。
和128字节的存取数据存储器(RAM),这种器件采用ATMEL公司的高密度、不容易丢失存储技术生产,并且能够与MCS-51系列的单片机兼容。
片内含有8位中央处理器和闪烁存储单元,有较强的功能的AT89C51单片机能够被应用到控制领域中。
AT89C51提供以下的功能标准:
4K字节闪烁存储器,128字节随机存取数据存储器,32个I/O口,2个16位定时/计数器,1个5向量两级中断结构,1个串行通信口,片内震荡器和时钟电路。
闲散方式停止中央处理器的工作,能够允许随机存取数据存储器、定时/计数器、串行通信口及中断系统继续工作。
3.2.24*4按键
4*4按键原理图如图3.2.2所示
图3.44*4按键原理图
本设计键盘模块采用4*4矩阵键盘,原理图如图4所示。
在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图4所示。
在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。
这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。
由此可见,在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式。
3.2.3蜂鸣器
蜂鸣器原理图如图3.5所示
图3.5蜂鸣器原理图
蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机,打印机,复印机,报警器,电子玩具,汽车电子设备,电话机,定时器等电子产品中做发声器件。
3.2.4发光二级管
发光二极管原理图如图3.6所示
图3.6发光二极管原理图
发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。
当给发光二极管加上正向电压后,从P区注入到N区的空穴和由N区注入到P区的电子,在PN结附近数微米内分别与N区的电子和P区的空穴复合,产生自发辐射的荧光。
不同的半导体材料中电子和空穴所处的能量状态不同。
当电子和空穴复合时释放出的能量多少不同,释放出的能量越多,则发出的光的波长越短。
常用的是发红光、绿光或黄光的二极管。
在本设计中,考虑到发光二极管的所能经过的最大电流,故在每一个发光二极管上面都添加了一个电阻,保证发光二极管可以正常工作。
3.2.5时钟振荡电路
时钟振荡电路原理图如图3.7所示
图3.7时钟振荡电路原理图
AT89C51中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。
这个放大器与作为反馈元件的片外石英晶体或者陶瓷谐振器一起构成自然振荡器。
外接石英晶体及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。
对外接电容C1,C2虽然没有什么严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性。
如果使用石英晶体,我们推荐电容使用30PF
10PF。
在此设计中选取:
12MHZ时钟频率。
3.2.6复位电路
复位电路原理图如图3.8所示
图3.8复位电路原理图
与其他计算机一样,MCS-51单片机系统的复位方法有上电自动复位、手动复位以及“看门狗”复位等。
此最小系统采用上电复位电路。
在系统运行过程中,有时可能对系统需要进行复位,为避免对硬件经常加电和断电造成的损害,我们可以采用上电复位。
这种方法是
上电复位:
上电瞬间,电容充电电流最大,电容相当于短路,RST端为高电平,自动复位;电容两端的电压达到电源电压时,电容充电电流为零,电容相当于开路,RST端为低电平,程序正常运行。
3.2.7单片机最小系统
单片机最小系统电路图如图3.9所示
如图3.9单片机最小系统电路图
由时钟振荡电路加复位电路构成单片机AT89C52的最小系统。
4电子琴软件部分设计
4.1系统软件总体设计
本系统的软件总的流程图如图4.1所示,系统总程序见附录1。
Y
N
是否有按键按下
开始
结束
图4.1系统的软件总的流程图
4.2扬声器模块程序:
若要产生音频脉冲,只要算出某一音频的周期(1/频率),再将此周期除以2,即为半周期的时间。
利用定时器计时半周期时间,每当计时终止后就将P1.0反相,然后重复计时再反相。
就可在P1.0引脚上得到此频率的脉冲。
利用AT89C51的内部定时器使其工作计数器模式(MODE1)下,改变计数值TH0及TL0以产生不同频率的方法产生不同音阶,例如,频率为523Hz,其周期T=1/523=1912μs,因此只要令计数器计时956μs/1μs=956,每计数956次时将I/O反相,就可得到中音DO(523Hz)。
计数脉冲值与频率的关系式是:
N=fi÷2÷fr,式中,N是计数值;fi是机器频率(晶体振荡器为12MHz时,其频率为1MHz);fr是想要产生的频率。
其计数初值T的求法如下:
T=65536-N=65536-fi÷2÷fr
例如:
设K=65536,fi=1MHz,求中音DO(261Hz)。
T=65536-N=65536-fi÷2÷fr=65536-1000000÷2÷fr=65536-500000/fr,中音DO的T=65536-500000/523=64580。
单片机12MHZ晶振,中音符与计数T0相关的计数值如表4.1所示:
表4.1晶振、中音符与计数T0相关计数值表
音符
频率(HZ)
计数值(T值)
音符
频率(HZ)
计数值(T值)
低1DO
262
63628
#4FA#
740
64860
#1DO#
277
63737
中5SO
784
64898
低2RE
294
63835
#5SO#
831
94934
#2RE#
311
63928
中6LA
880
64968
低3MI
330
64021
#6LA#
932
64994
低4FA
349
64103
中7SI
968
65030
#4FA#
370
64185
低1DO
1046
65058
低SO
392
64260
#1DO#
1109
65085
#5SO#
415
64331
高2RE
1175
65110
低6LA
440
64400
#2RE#
1245
65134
#6LA#
466
64463
高3MI
1318
65157
低7SI
494
64524
高4FA
1397
65178
中1DO
523
64580
#4FA#
1490
65198
#1DO#
554
64633
高5SO
1568
65217
中2RE
587
64633
#5SO#
1661
65235
#2RE#
622
64884
高6LA
1760
65252
中3MI
659
64732
#6LA#
1865
65268
中4FA
698
64820
高7SI
1967
65283
采用查表程序进行查表时,可以为这个音符建立一个表格,有助于单片机通过查表的方式来获得相应的数据:
低音0-19之间,中音在20-39之间,高音在40-59之间用单片机播放音乐,或者弹奏电子琴,实际上是按照特定的频率,输出一连串的方波。
为了输出合适的方波,首先应该知道音符与频率的关系。
音调数据表如表4.2所示
表4.2音调数据表
曲调值
DELAY
曲调值
DELAY
调4/4
125ms
调4/4
62ms
调3/4
187ms
调3/4
94ms
调2/4
250ms
调2/4
125ms
上表中的频率数值,有些过多,去掉不常用的黑键频率,只是把白键对应的数据存放在单片机中,即可满足绝大部分的应用需求。
定义音调数据表的程序如下:
DW63628,63835,64021,64103,64260,64400,64524,64580低音区:
1234567
DW64580,64671,64777,64820,64898,64968,65030,65058中音区:
1234567
DW65058,65110,65157,65178,65217,65252,65283,65312高音区:
1234567
把这个数据表,放在程序中,需要播音的时候,就从表中取出一个数据送到定时器,当定时器溢出中断的时候,再对输出引脚取反,那么,在扬声器中,即可听到上表中频率的声音。
详细程序见附录1
4.3矩阵键盘模块程序
确定矩阵式键盘上哪一个键被按下介绍一种“行扫描法”。
行扫描法行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法,如上图所示键盘,介绍过程如下:
1、判断键盘中有无键按下将全部行线Y0-Y3置低电平,然后检测列线的状态。
只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与四根行线相交叉的四个按键之中。
若所有列线均为高电平,则键盘中无键按下。
2、判断闭合键所在的位置在确认有键按下后,即可进入确定具体闭合键的过程。
其方法是:
依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。
在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。
若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。
具体程序见附录1
5系统调试
5.1硬件调试
硬件调试主要是针对单片机部分进行的调试。
在上电之前,先确保电路中不存在断路或短路情况,这一工作是整个调试工作的第一步,也是非常重要的一个步骤。
在这部分调试中主要使用的工具是万用表,用来完成检测电路中是否存在断路或者短路情况的任务。
注意焊点之间,确保焊点没有短接在一起,同时注意焊点的美观,确保没有开路以及短路的现象出现。
在确保硬件电路正常且无异常情况(断路或短路)的情况下方可上电调试,上电调试的目的是检验电路是否接错,同时还要检验原理是否正确。
发光二极管电路调试:
接通电源,随机按下按钮可以看到对应的发光二极管亮。
键盘单片机控制部分调试:
上电后,随机按动键盘可以发现各个按键对应的音正确。
5.2软件调试
5.2.1Proteus简介
Proteus的ISIS是一款Labcenter出品的电路分析实物仿真系统,可仿真各种电路和IC,并支持单片机,元件库齐全,使用方便,是不可多得的专业的单片机软件仿真系统。
该软件的特点:
①全部满足我们提出的单片机软件仿真系统的标准,并在同类产品中具有明显的优势。
②具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS-232动态仿真、C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。
③目前支持的单片机类型有:
68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。
④支持大量的存储器和外围芯片。
软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大,可仿真51、AVR、PIC。
5.2.2Keil简介
单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。
机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVis
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 0134 梁迎旭 单片机 实验 报告
![提示](https://static.bingdoc.com/images/bang_tan.gif)