基于51单片机的简易电子琴汇编程序实验报告.docx_第1页
基于51单片机的简易电子琴汇编程序实验报告.docx_第2页
基于51单片机的简易电子琴汇编程序实验报告.docx_第3页
基于51单片机的简易电子琴汇编程序实验报告.docx_第4页
基于51单片机的简易电子琴汇编程序实验报告.docx_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

单片机应用课程设计报告 简易电子琴 电子信息科学与技术2013-2 xxx单片机应用课程设计报告 简易电子琴 xxx摘要本设计是一个基于AT89C52系列单片机的简易电子琴,通过硬件电路制作以及软件编译,设计制作出一个由按键电路、复位电路、数码管显示电路,定时器及蜂鸣器组成简易的电子琴。通过键盘按键确定键号送去显示以及产生对应的频率的方波。本次实验的难点是键盘的扫描程序设计,因为本次实验实用的键盘是通过P3.4-P3.7端口输入测试信号,从P3.0-P3.3端口进行检测的,涉及到端口的读入写出原理等问题,后来通过先送出F0数值使低四位处于读入状态,高四位处于输出状态等方法实现。还有一个问题是如何使单片机产生确定频率的波形,后来利用定时器计时结束后的溢出信号,控制信号反转实现。关键词:电子琴 扫描式键盘 数码管 1、设计任务和要求1.1设计任务利用AT89C52单片机以及各种元器件自行设计编程制作一个简易电子琴。1.2任务要求 基本要求:利用查询式键盘,数字键1、2、3、4、5、6、7作为电子琴的按键,按键按下时发出Do、Re、Mi、Fa、So、La、Xi的声音。在弹奏音乐的同时将音符显示在数码管上。扩展要求:具备存储播放所弹奏的音乐的功能,用三个功能键进行切换状态:按一下按键控制是否进入存储状态。;按键二控制是否进入演奏状态;按键三为复位键。1.3方案论证(1)如何产生一定频率的方波信号首先我们知道,每一个音符都有一个固定的频率,当蜂鸣器根据不同频率的方波信号便会震动产生对应的音符。其次要产生音频脉冲,只要算出某一音频的周期(1/f),然后将此周期除以2,即为半周期的时间,由于使用的是12MHz的晶振,所以每一个计数的脉冲长度为1us,脉冲的个数用半周期时间除以1us,用65536减去脉冲的个数便可以得到计数初值。利用定时器计时这半个周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚上得到此频率的脉冲。因此我选择利用AT89C52的内部定时器使其工作在计数器模式MODE1下,通过改变计数值TH0及TL0以产生不同频率的方波信号。T为计数初值,N为半周期中脉冲的个数,f为方波频率T=65536-N=65536-1/2f通过计算得到以下音符的频率和计数初值音符1234567频率KHz261293329349392440494初值0F88BH0F95BH0FA14H0FA66H0FB03H0FB8FH0FC0BH(2)键盘按键扫描问题由所给的开发板的电路图可以发现,本次试验中使用的键盘于普通的矩阵键盘不同,本次使用的是4X4的矩阵键盘,检测信号的发送端在P3.4-P3.7,检测信号的接收端在P3.0-P3.3。因为P3口为准双向口,自带上拉电平,因此,如果想从P3.0-P3.3端口读入P3.4-P3.7发出的0电平必须要在高四位发送0电平的同时给低四位一个信号1,以保证低四位能正常读入信号。(3)键号的显示以及对应计数初值的写入通过扫描式键盘,我们会得到对应的按键号,对于键号的显示,我选择了使用基寄存器加变址寄存器间接寻址的方式,将送显示的段码存放在数据段中,通过基寄存器加变址寄存器间接寻址将显示的数送到七段数码管中。对于计数初值,我选择了比较按键号与对应的音符的值来使单片机读取出对应的计数初值并装入计数器。1.4模拟仿真结果图仿真电路图(因无法仿真,未给出138以及573)输出波形图2、实际制作和测试2.1测试方法和测试仪器测试仪器:万用表测试方法:通过观察并检测每个引脚的电平发现,数码管一直没有显示对应的数字。经过万用表测量电平之后发现,74LS573芯片的LE端未被选通,因此将与LE端相连的P2.4引脚接到了+5V高电平上,发现数码管正常显示数字。2.2软件调试。经过仿真试验成功之后,将程序下载到了单片机中后并安装在电路板上运行过后发现,发现单片机上电之后,第8个数码管一直被选通显示数字8,经过分析后发现,软件设计中忽略了单片机开机时会将各个I/O口置初值1,因此导致了此现象发生,为此,我将软件显示程序中的第一句话设置为MOV P0,#00H,通过此方法将数码管清零,以正常运行之后的程序。软件程序如下: ORG 0000H LJMP START0 ORG 0050HSTART0: MOV P0,#00H ;将P0口置0START: MOV R1,#00HKEY: ACALL KS1 ;检测是否有按键 JNZ LK1N1: ACALL DISUP AJMP KEY LK1: ACALL DISUP ;去抖动 ACALL DISUP ACALL KS1 JNZ LK2 ;确定键号 AJMP N1 LK2: MOV R2,#0EFH MOV R4,#00H MOV R5,#04H LK4: MOV P3,#0FH :动态扫描,判断按键号 MOV P3,R2 MOV A,P3 JB ACC.0,LONE1 MOV A,#00H AJMP LKP LONE1: JB ACC.1,NEXT MOV A,#04H LKP: ADD A,R4 PUSH ACC LK3: ACALL DISUP ;将按键号送到显示模块 ACALL DISUP AJMP DIR NEXT: INC R4 MOV A,R2 ;循环检测 JNB ACC.7,KND RL A MOV R2,A DJNZ R5, LK4KND: AJMP KEYKS1: MOV P3,#0FH ;判断按键是否按下模块 MOV A,P3 CPL A ANL A,#0FH RETDISUP: MOV R3,#00H ;显示一个什么也不显示 LD0: MOV A,R3 MOV P2,A MOV A,#00H MOV P0,ALD1: RETDL1: MOV R7,#02H ;延时DL: MOV R6,#0FFHDL6: DJNZ R6,DL6 DJNZ R7,DL RET DIR: MOV A,R1 ;显示模块 MOV P2,A POP ACC MOV R0,A MOV DPTR,#DSEG0 MOVC A,A+DPTR MOV P0,A MOV R7,#0FFHDLL: MOV R6,#0FFH DL66: DJNZ R6,DL66 DJNZ R7,DLLDO: CJNE R0,#00H,RE ;判断音符1MOV 40H,#0F8HMOV 41H,#8BHLJMP SET1RE:CJNE R0,#01H,MI ;判断音符2 MOV 40H,#0F9HMOV 41H,#5BHLJMP SET1MI:CJNE R0,#02H,FA ;判断音符3 MOV 40H,#0FAHMOV 41H,#14HLJMP SET1FA:CJNE R0,#03H,SO ;判断音符4 MOV 40H,#0FAHMOV 41H,#66HLJMP SET1SO: CJNE R0,#04H,LA ;判断音符5 MOV 40H,#0FBHMOV 41H,#03HLJMP SET1LA:CJNE R0,#05H,XI ;判断音符6 MOV 40H,#0FBHMOV 41H,#8FHLJMP SET1XI:CJNE R0,#06H,LJST ;判断音符7 MOV 40H,#0FCHMOV 41H,#0BHLJMP SET1SET1: SETB P2.0 ;设置P2.0输出DINGSHI:MOV TMOD,#01H ;设置计数器初值 MOV TH0,40HMOV TL0,41HSETB TR0 WAIT: JNB TF0,WAITCLR TF0CPL P2.0 ;半周期反转LCALL KS1JNZ DINGSHILJST:LJMP STARTDSEG0: DB 06H,5BH,4FH,66H,6DH ;数码段DSEG1: DB 7DH,07H,7FH,67H,77H,7CHDSEG2: DB 39H,5EH,79H,71HEND2.3硬件调试经过示波器测量,发现P2.0口产生了对应音符频率的方波信号,但是信号强度较小,无法直接驱动蜂鸣器,因此,采用外接上拉电阻,保证蜂鸣器能发出声音。经过测试后发现达到了实验要求。实物图硬件调试2.4调试中遇到的问题1、复位之后数码管一直显示数字8,将程序中加入了MOV PO,#00H清零P0口后解决。2、74LS573无法正常工作,无法显示数码,后将P2.4外界5V解决。3、矩阵键盘无法正常检测,通过写入了#F0H解决。4、蜂鸣器无法正常发出声音,通过安装上拉电阻解决。3、发挥部分设计调试发挥部分由于时间仅初步完成了按键的记录以及延时的记录功能,以及复位功能,并未能实现录音后能播放的功能,有待进一步研究。4、测试结果分析通过本次试验,我成功的通过单片机产生了7个音符的声音,并能同时将他们的数值送到数

温馨提示

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

评论

0/150

提交评论