0134梁迎旭单片机实验报告.docx

上传人:李司机 文档编号:7165977 上传时间:2024-06-18 格式:DOCX 页数:25 大小:406.74KB
返回 下载 相关 举报
0134梁迎旭单片机实验报告.docx_第1页
第1页 / 共25页
0134梁迎旭单片机实验报告.docx_第2页
第2页 / 共25页
0134梁迎旭单片机实验报告.docx_第3页
第3页 / 共25页
0134梁迎旭单片机实验报告.docx_第4页
第4页 / 共25页
0134梁迎旭单片机实验报告.docx_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《0134梁迎旭单片机实验报告.docx》由会员分享,可在线阅读,更多相关《0134梁迎旭单片机实验报告.docx(25页珍藏版)》请在三一办公上搜索。

1、桂林航天工业学院课程设计报告院(系):电子信息与自动化学院专业班级:20130901101学生姓名:梁迎旭学号:设计题目:简易电子琴设计完成日期:2015年12月31日指导老师评语:成果(五级记分制):指导老师(签字):本设计是用AT89C51单片机为核心限制元件,设计一个模拟电子琴发声限制系统。以单片机作为主控核心,与键盘、蜂鸣器模块组成核心主限制模块。在主控模块上设有8个按键,其中7个按键限制7个音符,1个作为功能转换键运用,具有自动播放乐曲的功能,本设计通过限制单片机定时器的定时时间产生不同频率的音频脉冲,经三极管放大信号后驱动蜂鸣器发出不同音节的声音。为了实现按键的精确推断和完善电子琴

2、发声的效果,本设计采纳了软件防抖的方法,有效的解决了按键抖动的问题。另外当按下功能切换键,切换至音乐自动播放功能时,本系统能实现歌曲的播放,这样使得电子琴的功能变的更加强大。经过软硬件的调试,该音乐发生器不但能通过键盘弹奏出很好的音调,而且还可以通过键盘选择播放不同的音乐。本系统运行稳定,其优点是硬件电路简洁,软件功能完善,限制系统牢靠,性价比较高等,具有肯定的好用和参考价值。关键词:电子琴,单片机,按键,扬声器AbstractThisdesignistouseAT89C51single-chipmicrocomputerasthecorecontrolcomponents,designasi

3、mulatedkeyboardvoicecontrolsystem.Onthemaincontrolmodulehaseightbuttons,amongthem7buttonscontrolsevennotes,using1asafunctionofconversionkey,Thisdesignbycontrollingthesinglechipmicrocomputertimertimingtimeproducesdifferentfrequenciesofaudiopulse,aftertriodeamplifyingsignaldrivebuzzersoundsdifferentsy

4、llables.Thisdesignforthephysicalcircuitboarddesign,development,andreportindetailelaboratedthekeyboarddesignmethodandprocess.Andthroughsoftwareandhardwaredebugging,themusicgeneratornotonlycanplaytheverygoodtonebykeyboard,andcanbecontrolledbythekeyboardselectionplaydifferentmusic.Thissystemrunsstably,

5、itsadvantageishardwarecircuitissimple,softwarefunctionisperfect,thecontrolsystemisreliable,cost-effectivehigher,hascertainpracticalandreferencevalue.Keywords:AT89C52devices,electronicorgan,microcontroller,musicgenerator书目摘要1Abstract2161.1 设计背It与意义6设计背景6设计意义61.2 设计内容62简易电子琴系统62.1 系统设计任务与设计要求6系统设计任务6系

6、统设计要求62. 2系统方案的7限制模块选择方案论证7选择模块论证72. 3系统总体方案73电子琴硬件部分设计82.1 电子琴硬件总体设计83. 2主要硬件部分简介993.2.24*4按健9蜂呜器10发光二级管10时钟振藩电路11复位电路11单片机最小系统124电子琴软件部分设计124.1 系统软件总体设计124.2 2扬声器模块程序:134.3 矩阵模块155系统调试165.1 硬件调试165.2 软件调试16Proteus简介165.2.2Keil简介166总结与体会18参考文献19附录119附录226桂林航天工业学院课程设计任务书设H题目:基于51单片搬)简易电子琴的设计学生姓名梁迎旭课

7、程名称单片机综合设计专业班级自动化一班地点巡天楼408起止时间2015年12月28日一2015年12月31日设计内容简易电子琴设计参数可播放音乐,可记录输入的音符并回放设计进度2015年12月28日:查阅资料2015年12月29日-30日:硬件设计、软件设计、撰写设计报告2015年12月31日:提交报告、验收和答辩设计成果1、实物2、课程报告参考资料2徐爱钧单片机原理运用教程一基于Protrues虚拟仿真电子工业出版社.2009.14张毅刚MCS-51单片机应用设计哈尔滨工业高校出版社20045王静霞.单片机应用技术(C语言版).北京:电子工业出版社.2009.5说明1.本表应在每次实施前由指

8、导老师填写一式2份,审批后所在系(部)和指导老师各留1份。2.多名学生共用一题的,在设计内容、参数、要求等方面应有所区分。3.若填写内容较多可另纸附后。系(部)分管领导:教研室主任:指导老师:1.1 设计背景与意义1.1.1 设计背景随着社会的发展进步,音乐渐渐成为我们生活中很重要的一部分,有人曾说喜爱音乐的人不会向恶。我们都会抽空观赏世界名曲,作为对精神的洗礼。本论文设计一个基于单片机的简易电子琴。我们对于电子琴如何实现其功能,如音色选择、声音强弱限制、节拍器、自动放音功能等等也很新奇。单片微型计算机是大规模集成电路技术发展的产物,属第四代电子计算机,它具有高性能、高速度、体积小、价格低廉、

9、稳定牢靠、应用广泛的特点。它的应用必定导致传统的限制技术从根本上发生变革。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。1.1.2 设计意义电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的限制功能和敏捷的编程实现特性,它已经溶入现代人们的生活中,成为不行替代的一部分。本文的主要内容是用AT89S51单片机为核心限制元件,设计一个电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成核心主限制模块,在主控模块上设有16个按键和扬声器。1.2 设计内容本系统设计制作一个可演奏的电子琴。综合应用了两项设计,即键盘矩阵识别和不同频

10、率音符播放。矩阵键盘即矩阵扫描,显示当前按键;不同频率音符播放则可以通过按键限制16种发音。本文主要对运用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴统硬件组成。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。并且本文分别从原理图,主要芯片,各模块原理及各模块的程序的调试来具体阐述。本系统是简易电子琴的设计。1.3 电子琴系统2.1 系统设计任务与设计要求2.1.1 系统设计任务熟识51单片机集成开发环境,运用C语言编写工程文件;娴熟应用所选用单片机的内部结构、资源,以及软硬件调试设备的基本方法;自行构建基于单片机的最小系统,完成相关硬件电路的设计实现;2

11、.1.2 系统设计要求实现电子琴发声限制系统;要求电路实现如下功能:利用现成电脑音响作为发声部件,21个音符键,实现高音、中音、低音的1、2、3、4、5、6、7的发音。并在存储几首歌曲的内容,可以实现歌曲的自动播放。2.2 系统方案论证2.2.1 限制模块选择方案论证采纳AT89C51单片机进行限制,由于其性价比高,完全满意了本作品智能化的要求,它的内部程序存储空间达到4K,使软件设计有足够的内部运用空间并且便利日后系统升级,运用便利,抗干扰性能提高。鉴于上述对比与分析,AT89C51单片机设计微型电子琴的方法,仅需AT89C51最小系统,扩展一组矩阵键盘,再接一组发光二极管用来指示电子琴的工

12、作状态。2.2.2 选择模块论证传统电子琴可以用键盘上的力”到“A”键演奏从低SO到高De)等11音。该设计有16个按钮矩阵,设计成16个音,可以实现音阶在低音4一高音5之间。比传统音阶范围大,弹奏效果好。2.3 系统总体方案音乐是有由不同的音阶组成的,而不同的音阶又是由不同的频率发出的,那么产生不同的频率,就可以发出不同的音乐了。而利用单片机就可以产生不同的频率的方波,因此选择单片机为主来设计。通过程序编写实现单片机输出不同的频率,输出的方波信号再通过接口给扬声器,让其发声。同时电子琴加入Ied用来显示。本设计的主要工作是程序编写,通过程序让电子琴实现音乐演奏,歌曲播放以及记录已按下的音符,

13、并播放,最终通过发光二极管来显示电子琴的工作状态。而硬件主要有单片机最小系统,键盘模块,发声模块,还有一个电源模块。系统方案框图如图2.3所示3电子琴硬件部分设计3.1 电子琴硬件总体设计考虑到实物的难易状况,电子琴的硬件电路分为两部分,一部分有单片机最小系统、扬声器、发光二极管组成,如图3.1.l所示,另外一部分有键盘组成,如图3.1.2所示。实物图见附录2。IIIIIIIhIIIIIII1r-AlZ535TKTAMFAHXSAUP24Ai:QAH力:入KlJtfPZOAIVCCCrPOOAsOMlASl田903A35W4.O90SAD*POIASf图3.1.电子琴硬件总体设计图3.2键盘系

14、统3.2 主要硬件部分简介单片机AT89C51原理图如图3.2.1所示:1UU;I;t,:图3.3单片机原理图A1.EPsenXTA1.2XTA1.lOND21119Ilr6?43O9376rr-1.1.zlr-l-P3ORXDP3ITxEP32gJT0P3311TP34/T0P2.7/A15P2A14P2.5/A13P2.4/A12P23/A11P2.2A10P21.A9P2.GA8po,popo.popo.PoPoAT89C51是一个低电压,高性能CM0S8位单片机带有4K字节的可反复擦写的程序存储器(PENROM)。和128字节的存取数据存储器(RAM),这种器件采纳ATME1.公司的高

15、密度、不简洁丢失存储技术生产,并且能够与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所示。在键盘中按键数量

16、较多时,为了削减I/O口的占用,通常将按键排列成矩阵形式,如图4所示。在矩阵式键盘中,每条水平线和垂直线在交叉处不干脆连通,而是通过一个按键加以连接。这样,一个端口(如Pl口)就可以构成4*4=16个按键,比之干脆将端口线用于键盘多出了一倍,而且线数越多,区分越明显,比如再多加一条线就可以构成20键的键盘,而干脆用端口线则只能多出一键(9键)。由此可见,在键盘中按键数量较多时,为了削减I/O口的占用,通常将按键排列成矩阵形式。3.2.3 蜂鸣器蜂鸣器原理图如图3.5所示图3.5蜂鸣器原理图蜂鸣器是一种一体化结构的电子讯响器,采纳直流电压供电,广泛应用于计算机,打印机,复印机,报警器,电子玩具,

17、汽车电子设备,电话机,定时器等电子产品中做发声器件。3.2.4 发光二级管发光二极管原理图如图3.6所示发光二极管与一般二极管一样是由一个PN结组成,也具有单向导电性。当给发光二极管加上正向电压后,从P区注入到N区的空穴和由N区注入到P区的电子,在PN结旁边数微米内分别与N区的电子和P区的空穴复合,产生自发辐射的荧光。不同的半导体材料中电子和空穴所处的能量状态不同。当电子和空穴复合时释放出的能量多少不同,释放出的能量越多,则发出的光的波长越短。常用的是发红光、绿光或黄光的二极管。在本设计中,考虑到发光二极管的所能经过的最大电流,故在每一个发光二极管上面都添加了一个电阻,保证发光二极管可以正常工

18、作。3.2.5 时钟振荡电路时钟振荡电路原理图如图3.7所示C23OPF30PF3333X.PPPPXFXlG4A8WINXP等操作系统。驾驭这一软件的运用对于运用51系列单片机的爱好者来说是特别必要的,假如你运用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不运用C语言而仅用汇编语言编程,其便利易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。Proteus和Keil的联调运用步骤:1、打开keil,建立工程,输入程序2、编译和生成hex文件。3打开PrOteUs,设计硬件电路图。4、导入hex文件。将鼠标置于电路图

19、中AT89C51器件上,右击后再左击,在出现的窗口中找到如图5.1所示的ProgramFile对话框,并填入hex文件对应的路径。IiWIWwyvJProgramFile:恂阿燕电子琴hex目._hHII.图5.1keiI运用说明图5、点击面板左下角的匚口,起先调试。按下随意键,扬声器发出对应的声音,其中对应的发光二极管亮。例如,按下Kl按键,仿真结果如图5.2所示。(注:在Proteus仿真中,可以不添加单片机最小系统,程序默认有)其他仿真过程的同理。图5.2仿真图6总结与体会本设计基于单片机AT89C51的电子琴电路由琴键限制电路、数码管显示电路、音频功放电路、时钟-复位电路和电源电路五部

20、分所构成。琴键限制电路采纳了8输入与门芯片CD4068B,收集8个独立按键的开关状态信号,并触发单片机的外部中断来处理;而数码管显示电路负责显示按下的琴键所对应的键值;同时,音频功放电路也会播放琴键对应的音调;电源电路为整个电路供应能源。本系统采纳AT89C51为主控芯片,因其精度较高,操作比较敏捷,输入电路和输出电路由芯片来进行处理,电路的系统的稳定性高,功耗小。其中,输入电路有8个独立按键,通过按键随意按下所要表达的音符,作为电平送给主体电路,中心处理器通过识别,解码输出音符,在扬声器中发出有效的声音。电子琴的设计并非一帆风顺,在这期间遇到了许多问题,下面谈几个关键的问题。首先是数码管显示

21、乱码的问题,原本以为是数码管字形码表的代码有错,检查几遍发觉代码没错,后来结合硬件图一看,才知道硬件图中数码管是共阳极接法,软件中的数码管字形码表是共阴极的。其二是按键引入中断检测时遇到的问题,要求8个按键随意键按都触发外部中断0,结果不经思索就选用了一块8输入或门芯片,导致怎么按键盘都无法进入中断函数,于是怀疑是程序有错,奢侈了许多时间,最终发觉是硬件逻辑错误,应当用与门才对。动手在肯定程度上反映了一个人的实力,作为当代高校生,社会要求的我们不是只能说而不能做的人才;更让我们醒悟地相识到,实际动手实力无比重要。从这次实物制作中,我的动手实力提高了。参考文献2徐爱钧单片机原理运用教程一基于Pr

22、oteus虚拟仿真电子工业出版社.2009.14张毅刚MCS-51单片机应用设计哈尔滨工业高校出版社20045王静霞.单片机应用技术(C语言版).北京:电子工业出版社.2009.56黄鑫,马善农,赵永科.基于CP1.D的电子琴探讨与设计J.科技广场,2007(5).7赵辉,刘印华.PROTEUS电子线路CAD.北京邮电高校出版社,2008.8马忠梅,籍顺心等.单片机的C语言应用程序设计H.北京:北京航空航天高校出版社,2007.附录1实例:简易电子琴#include包含51单片机寄存器定义的头文件#defineUCharunsignedchar#defineuintunsignedintsbi

23、tP14=P14;sbitP15=Pl5;sbitP16=P16;sbitP17=Pl7;将P14位定义为P1.4引脚将P15位定义为P1.5引脚将P16位定义为P1.6引脚将P17位定义为P1.7引脚unsignedCharkeyval;/定义变量储存按键值sbitsound=P37;将sound位定义为P3.7unsignedintC;全局变量,储存定时器的定时常数unsignedintf;全局变量,储存音阶的频率ucharcodeSONG_TONE=212,212,190,212,159,169,212,212,190,212,142,159,212,212,106,126,159,16

24、9,190,119,119,126,159,142,159,0);生日欢乐歌节拍表,节拍确定每个音符的演奏长短charcodeSONG_1.ONG=9,3,12,12,12,24,9,3,12,12,12,24,9,3,12,12,12,12,12,9,3,12,12,12,24,0);以下是C调低音的音频宏定义#definel_dao262将“l_dao”宏定义为低音“1”的频率262Hz#definel_re294将宏定义为低音“2”的频率286HZ#definel_mi330将宏定义为低音“3”的频率311Hz#definelfa349将“1也”宏定义为低音“4”的频率349HZ#def

25、ine1.sao392#defmeIJa440#definel_xi494将“I_sao”宏定义为低音“5”的频率392HZ将“l_a”宏定义为低音“6”的频率440Hz将“1xi”宏定义为低音“7”的频率494HZ以下是C调中音的音频宏定义#definedao523#definere587#definemi659#definefa698#definesao784#definela880#definexi987将“dao”宏定义为中音“1”的频率523Hz将“re”宏定义为中音“2”的频率587Hz将“mi”宏定义为中音“3”的频率659Hz将“打”宏定义为中音“4”的频率698Hz将“sao

26、”宏定义为中音“5”的频率784Hz将“la”宏定义为中音“6”的频率880Hz将“xi”宏定义为中音“7”的频率53以下是C调高音的音频宏定义#defineh_dao1046#definehre1175#defineh_mi1318#defineh_fa1397#definehsao1568#defineh_la1760#defineh_xi1967将“h_dao”宏定义为高音力”的频率1046HZ将“h_re”宏定义为高音“2”的频率1174Hz将“h_mi”宏定义为高音“3”的频率1318Hz将宏定义为高音“4”的频率1396Hz将“h_sao”宏定义为高音“5”的频率1567Hz将宏定

27、义为高音“6”的频率1760Hz/将“hxi”宏定义为高音“7”的频率1975HZ函数功能:软件延时子程序/生日歌延时voidDelayMS(uintx)uchart;while(x-)for(t=0;t120;t+);)voiddelay20ms(void)unsignedchari,j;for(i=0;i100;i+)for(j=0;j140;j+)函数功能:节拍的延时的基本单位,延时20OmSvoiddelay()unsignedchari,j;fbr(i=0;i250;i+)for(j=0;j250;j+);函数功能:输出音频入口参数:F播放函数voidPlayMusicO(uinti

28、=O,j,k;P2=0X80;while(SONG_1.ONGi!=0|SONG_TONEi!=0)播放各个音符,Sc)NGj1.ONG为拍子长度for(j=0;jSONG_1.ONGi*20;j+)(sound=sound;/SONG-TONE延时表确定了每个音符的频率for(k=0;kSONG_TONEi/3;k+);)DelayMS(20);i+;)voidOutput_Sound(void)C=(46083f)*10;TH0=(8192-C)32;T1.0=(8192-C)%32;TRO=I;delay();TRO=O;sound=0;keyval=Oxff;)计算定时常数/可证明这是

29、13位计数器THO高8位的赋初值方法可证明这是13位计数器T1.O低5位的赋初值方法/开定时TO/延时200ms,播放音频关闭定时器关闭蜂鸣器播放按键音频后,将按键值更改,停止播放函数功能:主函数voidmain(void)EA=I;ETO=I;ETl=I;TRl=I;TMOD=OxIO;开总中断定时器TO中断允许/定时器Tl中断允许定时器Tl启动,起先键盘扫描分别运用定时器Tl的模式1,TO的模式0TH1=(65536-500)/256;/定时器Tl的高8位赋初值T1.l=(65536-500)%256;/定时器Tl的高8位赋初值sound=0;P2=0X00;while(l)无限循环swi

30、tch(keyval)casel:f=dao;假如第1个键按下,将中音1的频率给fOutput_Sound();P2=0X01;转去计算定时常数break;case2:仁h_re;假如第2个键按下,将低音7的频率赋给fOutput_Sound();P2=0X02;/转去计算定时常数break;case3:Uh_mi;假如第3个键按下,将低音6的频率赋给fOutput_Sound();P2=0X04;转去计算定时常数break;case4:作h_fa;假如第4个键按下,将低音5的频率赋给fC)UtPU1.SOUnd();P2=0X08;/转去计算定时常数break;case5:Uh_sao假如第

31、5个键按下,将中音5的频率赋给fOutput_Sound();P2=0X10;/转去计算定时常数break;case6:Uha;/假如第6个键按下,将中音4的频率赋给fOutput_Sound();P2=0X20;/转去计算定时常数break;case7:Uh_xi;/假如第7个键按下,将中音3的频率赋给fOutput_Sound();P2=0X40;/转去计算定时常数break;函数功能:定时器TO的中断服务子程序,使P3.7引脚输出音频方波voidTimeO_serve(void)interrupt1using1(TH0=(8192-C)32;/可证明这是13位计数器THO高8位的赋初值方

32、法T1.0=(8192-C)%32;/可证明这是13位计数器T1.O低5位的赋初值方法sound=!sound;/将P3.7引脚取反,输出音频方波)函数功能:定时器Tl的中断服务子程序,进行键盘扫描,推断键位voidtimel_serve(void)interrupt3using2定时器TI的中断编号为3,运用第2组寄存器TRl=O;Pl=OxfD;if(Pl&Oxft)!=OxfO)关闭定时器TO全部行线置为低电平“0”,全部列线置为高电平力”delay20ms();if(Pl&OxfD)!=OxfO)延时一段时间、软件消抖的确有键按下列线中有一位为低电平“0”,说明有键按下Pl=Oxfe;/第一行置为低电平“0”(P1.O输出低电平0”)if(P14=0)/假如检测到接Pl.4引脚的列线为低电平“0keyval=l;可推断是Sl键被按下if(P15=0)/假如检测到接P1.5引脚的列线为低电平“0”keyval=2;可推断是S2键被按下if(P16=0)假如检测到接P1.6弓I脚的列线为低电平“0”keyval=3;可推断是S3键被按下if(P17=0)/假如检测到接P1.7引脚的列线为低电平“0”keyval=4;可推断是S4键被按下Pl=Oxfd;其次行置为低电平“0”(P1.1输出低电平0”)if(P14=0)假如检测到

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号