课程设计-简易单片机电子琴设计ecit.docx_第1页
课程设计-简易单片机电子琴设计ecit.docx_第2页
课程设计-简易单片机电子琴设计ecit.docx_第3页
课程设计-简易单片机电子琴设计ecit.docx_第4页
课程设计-简易单片机电子琴设计ecit.docx_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

简易单片机电子琴设计引言:随着社会的发展进步,音乐逐渐成为我们生活中很重要的一部分,有人曾说喜欢音乐的人不会向恶。我们都会抽空欣赏世界名曲,作为对精神的洗礼。本论文设计一个基于单片机的简易电子琴。我们对于电子琴如何实现其功能,如音色选择、声音强弱控制、节拍器、自动放音功能等等也很好奇。 电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。1. 设计任务要求本文的主要内容是用AT89C51单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有16个按键和扬声器。本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。2. 硬件电路设计 硬件电路的设计,决定了整个流程的发展,其中包含了单片机以内的全部器件的连接以及其他硬件电路的设计。首先,必须了解选用的的元器件的各项性能指标与工作原理。本设计硬件电路包括最小系统、音频功放电路、控制电路和显示电路四大部分。最小系统只要是为了使单片机正常工作。音频功放电路用于产生所要实现的音乐。控制电路只要由开关和按键组成由操作者根据相应的工作需要进行操作。显示电路主要是为了显示音调。1.80C51属于MCS-51系列单片机,由Intel公司开发,其结构是8048的延伸,改进了8048的缺点,增加了如乘(MUL)、除(DIV)、减(SUBB)、比较(CMP)、16位数据指针、布尔代数运算等指令,以及串行通信能力和5个中断源。采用40引脚双列直插式DIP(Dual In Line Package),内有128个RAM单元及4K的ROM。80C51有两个16位定时计数器,两个外中断,两个定时计数中断,及一个串行中断,并有4个8位并行输入口。80C51内部有时钟电路,但需要石英晶体和微调电容外接,本系统中采用12MHz的晶振频率。由于80C51的系统性能满足系统数据采集及时间精度的要求,而且产品产量丰富来源广,应用也很成熟,故采用来作为控制核心。89C51的主要功能特性:1. 微处理器(8位CPU)2. 程序存储器(ROM,EPROM或Flash等)3. 程序存储器(RAM,E2PROM)4. 4个8位并行可编程IO端口(P0,P1,P2,P3)5. 1个串行口(UART)6. 2个16位定时器计数器7. 中断系统(包含5-8个中断源,2个优先级)8. 特殊功能寄存器(SFR)9.其他辅助功能部件还有时钟振荡器,总线控制器和供电电源等。其引脚图见下图:2. 硬件接线(1)利用P1口为按键接入口,形成44组成16个按键矩阵,设计成16个音,下图所示:0123456789ABCDEF所对应的键码为: (2)p3.0口音频输出,接一个喇叭。(3)复位电路我们本来在方案选择的时候有两种选择的,上电复位和按扭复位,上电复位是利用电容充电来实现的,而按扭复位是电源对外节电容的充电使RST为高电平,复位松开后,电容通过下拉电阻放电,使RST恢复低电平。为了制作软件的方便我们还是选择用按扭复位,因为它比较直观。(4)电路设计图如下:3.资源分配4.软件设计及流程图软件设计:(1)键盘扫描程序: 检测是否有键按下,有键按下则记录按下键的键值,并跳转至功能转移程序;无键按下,则返回键盘扫描程序继续检测。(2)功能转移程序: 对检测到得按键值进行判断,是琴键则跳转至琴键处理程序,是功能键则跳转至相应的功能程序,我们设计的功能程序有两种,即音色调节功能和自动播放乐曲功能。(3)琴键处理程序: 根据检测到得按键值,查询音律表,给计时器赋值,使发出相应频率的声音 。流程图:5.源程序KEYBUF EQU 30HSTH0 EQU 31HSTL0 EQU 32HTEMP EQU 33HORG 00HLJMP STARTORG 0BHLJMP INT_T0START: MOV TMOD,#01HSETB ET0SETB EAWAIT:MOV P1,#0FFHCLR P1.4MOV A,P1ANL A,#0FHXRL A,#0FHJZ NOKEY1LCALL DELY10MSMOV A,P1ANL A,#0FHXRL A,#0FHJZ NOKEY1MOV A,P1ANL A,#0FHCJNE A,#0EH,NK1MOV KEYBUF,#0LJMP DK1NK1: CJNE A,#0DH,NK2MOV KEYBUF,#1LJMP DK1NK2: CJNE A,#0BH,NK3MOV KEYBUF,#2LJMP DK1NK3: CJNE A,#07H,NK4MOV KEYBUF,#3LJMP DK1NK4: NOPDK1:MOV A,KEYBUFMOV DPTR,#TABLEMOVC A,A+DPTRMOV P0,AMOV A,KEYBUFMOV B,#2MUL ABMOV TEMP,AMOV DPTR,#TABLE1MOVC A,A+DPTRMOV STH0,AMOV TH0,AINC TEMPMOV A,TEMPMOVC A,A+DPTRMOV STL0,AMOV TL0,ASETB TR0DK1A: MOV A,P1ANL A,#0FHXRL A,#0FHJNZ DK1ACLR TR0NOKEY1:MOV P1,#0FFHCLR P1.5MOV A,P1ANL A,#0FHXRL A,#0FHJZ NOKEY2LCALL DELY10MSMOV A,P1ANL A,#0FHXRL A,#0FHJZ NOKEY2MOV A,P1ANL A,#0FHCJNE A,#0EH,NK5MOV KEYBUF,#4LJMP DK2NK5: CJNE A,#0DH,NK6MOV KEYBUF,#5LJMP DK2NK6: CJNE A,#0BH,NK7MOV KEYBUF,#6LJMP DK2NK7: CJNE A,#07H,NK8MOV KEYBUF,#7LJMP DK2NK8: NOPDK2:MOV A,KEYBUFMOV DPTR,#TABLEMOVC A,A+DPTRMOV P0,AMOV A,KEYBUFMOV B,#2MUL ABMOV TEMP,AMOV DPTR,#TABLE1MOVC A,A+DPTRMOV STH0,AMOV TH0,AINC TEMPMOV A,TEMPMOVC A,A+DPTRMOV STL0,AMOV TL0,ASETB TR0DK2A: MOV A,P1ANL A ,#0FHXRL A,#0FHJNZ DK2ACLR TR0NOKEY2:MOV P1,#0FFHCLR P1.6MOV A,P1ANL A,#0FHXRL A,#0FHJZ NOKEY3LCALL DELY10MSMOV A,P1ANL A,#0FHXRL A,#0FHJZ NOKEY3MOV A,P1ANL A,#0FHCJNE A,#0EH,NK9MOV KEYBUF,#8LJMP DK3NK9: CJNE A,#0DH,NK10MOV KEYBUF,#9LJMP DK3NK10: CJNE A,#0BH,NK11MOV KEYBUF,#10LJMP DK3NK11: CJNE A,#07H,NK12MOV KEYBUF,#11LJMP DK3NK12: NOPDK3:MOV A,KEYBUFMOV DPTR,#TABLEMOVC A,A+DPTRMOV P0,AMOV A,KEYBUFMOV B,#2MUL ABMOV TEMP,AMOV DPTR,#TABLE1MOVC A,A+DPTRMOV STH0,AMOV TH0,AINC TEMPMOV A,TEMPMOVC A,A+DPTRMOV STL0,AMOV TL0,ASETB TR0DK3A: MOV A,P1ANL A,#0FHXRL A,#0FHJNZ DK3ACLR TR0NOKEY3:MOV P1,#0FFHCLR P1.7MOV A,P1ANL A,#0FHXRL A,#0FHJZ NOKEY4LCALL DELY10MSMOV A,P1ANL A,#0FHXRL A,#0FHJZ NOKEY4MOV A,P1ANL A,#0FHCJNE A,#0EH,NK13MOV KEYBUF,#12LJMP DK4NK13: CJNE A,#0DH,NK14MOV KEYBUF,#13LJMP DK4NK14: CJNE A,#0BH,NK15MOV KEYBUF,#14LJMP DK4NK15: CJNE A,#07H,NK16MOV KEYBUF,#15LJMP DK4NK16: NOPDK4:MOV A,KEYBUFMOV DPTR,#TABLEMOVC A,A+DPTRMOV P0,AMOV A,KEYBUFMOV B,#2MUL ABMOV TEMP,AMOV DPTR,#TABLE1MOVC A,A+DPTRMOV STH0,AMOV TH0,AINC TEMPMOV A,TEMPMOVC A,A+DPTRMOV STL0,AMOV TL0,ASETB TR0DK4A: MOV A,P1ANL A,#0FHXRL A,#0FHJNZ DK4ACLR TR0NOKEY4:LJMP WAITDELY10MS:MOV R6,#10D1: MOV R7,#248DJNZ R7,$DJNZ R6,D1RETINT_T0:MOV TH0,STH0MOV TL0,STL0CPL P1.0RETITABLE: DB 77H,44H,3EH,6EH,4DH,6BH,7BH,46H,7FH,6FH,5FH,79H,33H,7CH,3BH,1BHTABLE1: DW 64021,64103,64260,64400DW 64524,64580,64684,64777DW 64820,64898,64968,65030DW 65058,65110,65157,65178END6.调试过程,存在问题及讨论7.设计心得及体会这次实验总共经历了一周的时间,从功能需求分析到功能分析,从程序的设计到程序的调试,最后终于完成了这次具有实际使用价值的实验。 在设计中我运用自己平时学到的一些知识,以及自己在课下所查找的进行设计,刚开始遇到很多困难,后来一起和同学研究,而一些课程设计中的故障,也请同学帮忙参考一下,最终找到了解决问题的答案。我感觉自己在设计方面提高很大,特别是在设计程序时,逻辑思维能力有所加强,同时对以前所学的知识有了更深刻的认识,并进一步的得到了巩固和提高,充分的做到了理论联系实际,也使我认识到理论与实际的差别,通过该课程设计,不但对单片机有

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论