已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计工作内容与基本要求1设计任务 电子琴是利用所给键盘的1,2,3,4,5,6,7,8八个键,能够发出8个不同的音调,并且要求按下按键发声,松开延时一段时间停止,中间再按别的键则发另一音调的声音,且结果用LCD屏显示出来。2. 设计要求2.1系统硬件电路设计根据该系统设计的功能要求选择所用元器件,设计硬件电路。要求用Proteus绘制整个系统电路原理图。2.2软件设计根据该系统要求的功能进行软件设计,绘制整个系统的软件流程图;根据流程图编写程序并汇编调试通过;列出软件清单,软件清单要求逐条加以注释。2.3 Proteus仿真用Proteus对系统进行仿真并进行软硬件调试。2.4 编写设计说明书内容包括任务书、设计方案分析、硬件部分设计、软件部分设计、调试结果整理分析、设计调试的心得体会等,字数不少于4000字;硬件部分设计要绘制整个系统电路原理图,对各部分电路设计原理做出说明;软件设计部分要绘制整个系统及各部分的软件流程图,列出程序清单,逐条加以注释,并在各功能块前加程序功能注释。4工作计划 序号设计内容所用时间1布置任务及调研2天3制作与调试4天4撰写设计报告书1天合 计7天5主要参考资料单片机课程设计指导书 皮大能 北京理工大学出版社2010.78051单片机实践与应用 吴金戎 清华大学出版社2003.8单片机技术基础教程与实践 夏路易 电子工业出版社2008.1MCS-51单片机原理接口及应用王质朴 北京理工大学出版社2009.11基于Proteus的单片机系统设计与仿真实例 蒋辉平 机械工业出版社 2009.7 指导老师签字: 日 期:目录1 引 言11.1电子琴概述1 1.2本设计任务12 总体方设计12.1 播放模块12.2按键控制模块22.3总体硬件组成框图2 2.4 系统硬件设计22.4.1 中心控制模块的硬件设计22.4.2播放模块的硬件设计32.4.3 LCD液晶显示电路设计与原理32.4.4按键控制模块的硬件设计4 2.5 系统的软件设计52.5.1 下位机软件流程52.5.2电子琴汇编程序63 系统调试与测试结果分析103.1 使用的仪器仪表103.2 系统调试113.3 测试结果12参考文献131 引 言 电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用AT89S51单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有8个按键和扬声器。 1.1电子琴概况 电子琴有简易电子琴(玩具琴)和高档电子琴(教学琴,演奏琴)两大类。简易电子琴是指采用分立元件(目前已不多见)或采用中小规模集成电路的电子琴。这类电子琴成本较低,音色较差、音准不佳且故障率较高,而采用大规模集成电路的简易电子琴的音色、音准和可靠性都有较大的改善。1.2 本设计任务利用所给键盘的1,2,3,4,5,6,7,8八个键,能够发出8个不同的音调,并且要求按下按键发声,松开延时一段时间停止,中间再按别的键则发另一音调的声音。当系统扫描到键盘上有键被按下,则快速检测出是哪一个键被按下,然后单片机的定时器被启动,发出一定频率的脉冲,该频率的脉冲经喇叭驱动电路放大滤波后,就会发出相应的音调。如果在前一个按下的键发声的同时有另一个键被按下,则启用中断系统,前面键的发音停止,转到后按的键的发音程序,发出后按的键的音。2 总体方案设计本系统采用单片机AT89C51为电子琴的控制核心,系统主要包括播放模块、按键控制模块。下面对各模块的设计逐一进行论证比较。2.1自动播放歌曲程序 检测到按键按下的是自动播放歌曲功能键后执行该程序,电子琴会自动播放事先已经存放好的歌曲,歌曲播放完毕之后自动返回至键盘扫描程序,继续等待是否有键按下2.2 按键控制模块电子琴设有8个按键,其中7个作为音符输入,另外1个作为模式转换按键,实现用户自弹作曲。7个按键分别代表7个音符,包括中音段的全部音符。通过软硬件设计,模式转换按 键触发外部中断,中断使程序跳转,实现模式转换,启动电子琴。然后通过查询电子琴所按下的按键,读取电子琴输入状态,跳转到对应的程序人口,实现自编歌曲。键盘扫描程序: 检测是否有键按下,有键按下则记录按下键的键值,并跳转至功能转移程序;无键按下,则返回键盘扫描程序继续检测。2.3 总体硬件组成框图按键控制模块播放模块 喇叭中心控制模块 AT89C51 按 键 状 态 图2-1 总体硬件组成框图 2.4系统硬件设计 为使该模块化电子琴控制系统具有更加方便和灵活性,我们对系统的硬件做了精心设计。硬件电路包括中心控制模块、播放模块、按键控制模块三大模块。2.4.1 中心控制模块的硬件设计本次设计中中心控制模块是采用AT89C51单片机来控制整个系统。其中P3.7口作为输入口,连接蜂鸣器驱动电路,而P1口连接按键控制电路, 从而实现播放音乐的功能,P0口用LCD屏显示输出结果。2.4.2 播放模块的硬件设计如下图所示,播放模块其实就是喇叭,它接到P3.7口上当有按键按下时,它就会发出声音.图 3-1 播放模块硬件连接图2.4.3 LCD1602液晶显示电路设计与原理工业字符型液晶,能够同时显示16x02即32个字符(16列2行)。1602字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源。VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样。1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。Proteus7.7中的1602液晶只有14个引脚,少了背光电源的两根引脚,完全兼容。本设计中,液晶的数据口与单片机的P0口相连。 2.4.4 按键控制模块的硬件设计在P1口连有7个按键它们一端接5伏电源,一端接地.在仿真时,只要有一个键被按下,并被单片机扫描到,则会使播放器发出声音.图3-2按键控制电路图P3口也可作为AT89C51的一些特殊功能口, P3口引脚 特殊功能 P3.0 RXD (串行输入口) P3.1 TXD (串行输出口) P3.2 (外部中断0) P3.3 (外部中断1) P3.4 T0(定时器0外部输入) P3.5 T1(定时器1外部输入) P3.6 WR(外部数据存储器写选通) P3.7 RD(外部数据存储器读先通)P3口同时为闪烁编程和编程校验接收一些控制信号2.5 系统的软件设计软件是该电子琴控制系统的重要组成部分,在系统的软件设计中我们也才用了模块化设计,将系统的各部分功能编写成子模块的形式,这样增强了系统软件的可读性和可移植性。2.5.1 下位机软件流程本系统中下位机(单片机89C51)的主要功能就是实现音乐播放功能。其主程序流程如图4-1所示。图4-1 软件程序流程图2.5.2电子琴汇编程序 /*- 名称:电子琴 内容:8个按键控制8个音符 -*/#include#define uchar unsigned char#define uint unsigned int #define KeyPort P1#define comm 0#define dat 1/*- 变量-*/uchar High,Low; /定时器预装值的高8位和低8位sbit SPK=P37; /定义喇叭接口sbit tab=P26; /功能键sbit RS=P20;/液晶数据命令选择sbit RW=P21;/液晶读写选择sbit EN=P22;/液晶使能端uchar code freq2= 0xD8,0xF7,/00440HZ 1 0xBD,0xF8,/00494HZ 2 0x87,0xF9,/00554HZ 3 0xE4,0xF9,/00587HZ 4 0x90,0xFA,/00659HZ 5 0x29,0xFB,/00740HZ 6 0xB1,0xFB,/00831HZ 7 0xEF,0xFB,/00880HZ 1;uchar Time; uchar code YINFU91= ,1,2,3,4,5,6,7,8; /世上只有妈妈好数据表uchar code MUSIC= 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 ; / 音阶频率表 高八位uchar code FREQH= 0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8, 0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC, /1,2,3,4,5,6,7,8,i 0xFC,0xFD,0xFD,0xFD,0xFD,0xFE, 0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF, ; / 音阶频率表 低八位uchar code FREQL= 0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6, 0x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,0x8F, /1,2,3,4,5,6,7,8,i 0xEE,0x44, 0x6B,0xB4,0xF4,0x2D, 0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16, ;uchar code dis1210=electronic,organ; /*- 函数声明-*/void Init_Timer0(void);/定时器初始化/*- 延时函数大约约2*z+5us-*/void delay2xus(uchar z) while(z-);/*- 延时函数大约约1ms-*/void delayms(uchar x) while(x-) delay2xus(245); delay2xus(245); /*- 1602液晶写命令comm/数据dat-*/void lcd_wr(uchar comm_dat,uchar xdat) RS=comm_dat; RW=0; delay2xus(10); P0=xdat; EN=1; delayms(1); EN=0;/*- 1602液晶写字符串命令-*/void lcd_string(uchar add,uchar mun,uchar *pstring) lcd_wr(comm,0x80+add); while(mun-) lcd_wr(dat,*(pstring+);/*- *1602初始化*-*/void lcd_init() P0=0x00; EN=0; lcd_wr(comm,0x38); delayms(2); lcd_wr(comm,0x0c); delayms(1); lcd_wr(comm,0x06); delayms(1); lcd_wr(comm,0x01);/*- 节拍延时函数 各调1/4节拍时间: 调4/4 125ms 调2/4 250ms 调3/4 187ms-*/void delayjie(uchar t) uchar i;for(i=0;it;i+) delayms(250); TR0=0; /*- 歌曲处理函数-*/void Song() TH0=High;/赋值定时器时间,决定频率 TL0=Low; TR0=1; /打开定时器 delayjie(Time); /延时所需要的节拍 /*- 主函数-*/void main (void) uchar num,k,i; lcd_init(); lcd_string(0,10,dis10);/ 开机画面 lcd_string(11,5,dis11);/开机画面 Init_Timer0(); /初始化定时器0,主要用于数码管动态扫描 SPK=0;/在未按键时,喇叭低电平,防止长期高电平损坏喇叭 lcd_string(0x40+2,5,NOTE:); while (1) switch(KeyPort) case 0xfe:num= 1;break; case 0xfd:num= 2;break; case 0xfb:num= 3;break; case 0xf7:num= 4;break; case 0xef:num= 5;break; case 0xdf:num= 6;break; case 0xbf:num= 7;break; case 0x7f:num= 8;break; default:num= 0;break; lcd_string(0x40+7,1,YINFUnum); if(num=0) TR0=0; SPK=0; /在未按键时,喇叭低电平,防止长期高电平损坏喇叭 else High=freqnum-11; Low =freqnum-10;TR0=1; if(tab=0) delayms(10); if(tab=0) i=0; while(i100) k=MUSICi+7*MUSICi+1-1;/去音符振荡频率所需数据 High=FREQHk; Low=FREQLk; Time=MUSICi+2; /节拍时长 i=i+3;if(P1!=0xff)/长按任意8音键退出播放 delayms(10); if(P1!=0xff) i=101; Song(); TR0=0; /*- 定时器初始化子程序-*/void Init_Timer0(void) TMOD |= 0x01; /使用模式1,16位定时器,使用|符号可以在使用多个定时器时不受影响 EA=1; /总中断打开 ET0=1; /定时器中断打开/*- 定时器中断子程序-*/void Timer0_isr(void) interrupt 1 TH0=High; TL0=Low; SPK=!SPK;3 系统调试与测试结果分析3.1 使用的仪器仪表 单片机仿真器KEILC蜂鸣器 LS13.2 系统调试根据系统设计方案,本系统的调试共分为三大部分:硬件调试,软件调试和软硬件联调。由于在系统设计中采用模块设计法,所以方便对各电路模块功能进行逐级测试:中心控制模块的调试,音乐播放模块的调试,按键控制模块的调试等,最后将各模块组合后进行整体测试。3.2.1硬件调试 硬件调试主要是针对单片机部分进行的调试。在上电之前,先确保电路中不存在断路或短路情况。这一工作时整个调试工作的第一步,也是非常重要的一个步骤。在这部分调试中主要使用的工具是万用表,用来完成检测电路中是否存在短路或断路的情况的任务。注
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB 6245-2025消防泵
- 高级碳排放监测员技能鉴定考试题库及答案(浓缩50题)
- 2026年人力资源管理师考试技能部分真题及答案
- 2026年光气及光气化工艺操作证理论考试笔试试题(50题)含答案
- 2026京东中美医院招聘82人备考题库及完整答案详解
- 城市固废综合处理生活垃圾焚烧发电项目可行性研究报告模板-拿地备案
- 员工福利综合手册
- 南京人工智能学习指南
- 未成年人保护法、预防未成年人犯罪法考试题及答案
- 某物流集团场站常见故障及事故应急处置方案
- 初中数学跨学科融合教学案例
- 高中历史(统编版)知识提纲(选必修全册详细版)
- 鹏芯微面试题及答案
- 金店员工合同协议书
- 2024年中国院内外药品市场销售分析报告-医药魔方
- 北京工业大学《机械设计(Ⅰ)》2023-2024学年第一学期期末试卷
- 《咖啡知识培训资料》课件
- DB3301-T 65.11-2024 反恐怖防范系统管理规范 第11部分:医院
- 人教部编版一年级语文下册期末统考卷8套(含答案)
- 四川省凉山州2022-2023学年五年级下学期数学期末试卷(含答案)
- 六年级数学下册期末测试卷及答案【可打印】
评论
0/150
提交评论