版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、西安文理学院物理与机械电子工程学院专业课程设计报告专业班级 10测控技术与仪器一班 课 程 专业课程设计 题 目 简易电子琴的设计 学 号 07103100113 学生姓名 赵飞 指导教师 杨森林 成 绩 2013年6月20日西安文理学院物理与机械电子工程学院课程设计任务书学生姓名 专业班级 学 号 指导教师 职 称 教研室 课 程 题 目 简易电子琴的设计 任务与要求 利用单片机控制蜂鸣器发声,设计一个可以发出七音阶简易电子琴。设计要求:采用单片机完成,要求结构简单、成本低;设计7个按键,以选择7种不同音阶;程序实现键值识别,并产生不同频率方波输出到蜂鸣器;实现音量的高低可调;具有电源指示灯
2、,工作指示灯,7个音阶指示灯;完成原理图和PCB布板;完成实物制作和软硬件调试工作;或完成模拟仿真;完成课程设计报告。开始日期 2013.6.10 完成日期 2013.6.21 2013年 6 月 20 日简易电子琴摘 要 本文讲述基于单片机的简易电子琴设计流程及制作原理。电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。AT89S52是一种低功耗、高性能CMOS 的8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储
3、器技术制造,与工业80C51 产品指令和引脚完全兼容。本系统是以单片机AT89S52为主控制器,附有独立式键盘、4位LED显示管、扬声器等组成。系统完成显示输入信息、播放相应音符并能播放一首已经存储的音乐等基本功能。整个系统设计过程主要包括收集相关资料,网上查阅,根据已有系统进行改进,并加入需要的功能,融入自己的思想之后在proteus下进行仿真,仿真正确且运行稳定后开始进行元器件的焊接。最终完成系统的实物制作,使各器件在单片机的控制下能够播放一首歌曲,并能根据相应按键发出17个音节的高、中、低音,且数码管能够显示出所按下的按键以及对应的是高中低音的哪一组音频。完成实物制作后对整个制作过程进行
4、思路整理,编写设计报告。本系统运行稳定,硬件电路简单,软件功能完善,控制系统可靠,性价比较高。关键词:AT89S52,独立式键盘,LED显示管,扬声器。 目录第1章电子琴所能完成的功能1第2章 系统设计方案及硬件设计22.1本系统设计内容22.2电子琴的发声原理以及如何改变音色的基本原理22.3系统的组成3 2.4 系统总体方案4 2.5 系统硬件设计5第3章 软件电路设计7 3.1 软件设计思路 7 3.2 软件设计流程图73.3键盘扫描程序7 3.4 功能转移程序8 3.5 琴键处理程序8 3.6 自动播放歌曲程序 8 第4章 试验仿真及PCB布板9第5章 课程设计体会10参考文献12附:
5、源程序代码 12第1章电子琴所能完成的功能 (1)能够实现基本的琴键功能 即每按下一个琴键,单片机能够检测到键盘的按键,并根据按键的位置,通过程制来控制,使蜂鸣器发出不同频率(音调)的声音,声音延迟一段时间后停止。然后再继续扫描,看是否有键按下,如此循环下去,即可实现基本的琴键功能。 (2)能够实现数码管显示按键 按下一个按键时,单片机能够检测到所按下地按键,然后根据按键的位置通过程序控制来实现在数码管中显示相应按键。同时可根据高、中、低音控制键的按下位置,通过程序控制在4位数码管中显示出相应的0、1、2。以此来标明是高、中、低音。 (3)能够实现连续播放一首音乐 在键盘上设置一个功能键,按下
6、之后会根据功能键跳转到自动播放歌曲的程序,来连续播放相应的歌曲。第 18 页第2章 总体方案设计2.1本系统的设计内容 (1)独立式键盘识别。即独立式按键扫描,显示当前按键。 (2)不同频率音符播放。可以通过按键控制21种发音。 (3)可在按下特殊按键时连续播放一首音乐。2.2电子琴的发生原理以及如何改变音色的基本原理 声音的频谱范围约在几十到几千赫兹, 若能利用程序来控制单片机某个口线不断输出高、低电平, 则在该口线上就能产生一定频率的方波, 将该方波接上喇叭就能发出一定频率的声音, 若再利用程序控制高、低电平的持续时间, 就能改变输出波形的频率从而改变音调。乐曲中, 每一音符对应着确定的频
7、率, 下表给出各音符频率。如果单片机某个口线输出高、低电平的频率和某个音符的频率一样, 那么将此口线接上喇叭就可以发出此音符的声音。本系统就是根据此原理设计, 对于单片机来说要产生一定频率的方波大致是先将某口线输出高电平然后延时一段时间再输出低电平, 如此循环的输出就会产生一定频率的方波, 通过改变延时的时间就可以改变输出方波的频率。单片机内部有两个位的定时计数器T1和T0, 单片机的定时计数器实际上是个计数装置它既可以对单片机的内部晶振驱动时钟计数也可以对外部输入的脉冲计数, 对内部晶振计数时称为定时器, 外部时钟计数时称为计数器。当对单片机的内部晶振驱动时钟计数时,每个机器周期定时计数器的
8、计数值就加, 当计数值达到计数最大值时计数完毕并通知单片机的尸比对外部输入的时钟信号计数时, 外部时钟的每个时钟上升沿定时计数器的计数值就加, 当计数值达到计数最大值时计数完毕并通知单片机。因此, 如果知道单片机的机器周期或者外部输入时钟信号的周期单片机就可以根据定时器的计数值计算出定时的时间。用此方法定时十分准确, 想得到多大的延时时间就可以给定时器赋一定的计数初值, 定时器从预先设置的计数初值开始不断增当增加到计数最大值时计数完毕, 调整计数初值的大小就可以调整定时器定时的时间, 从而达到准确的延时。 计数脉冲值与频率的关系式是:Nfi÷2÷fr 式中,N是计数值;fi
9、是机器频率(晶体振荡器为12MHz时,其频率为1MHz);fr是想要产生的频率。 组成键盘的按键有机械式、电容式、导电橡胶式、薄膜式多种,但不管什么形式,其作用都是一个使电路接通与断开的开关。目前微机系统中使用的键盘按其功能不同,通常可分为编码键盘和非编码键盘两种基本类型。 编码键盘:键盘本身带有实现接口主要功能所需的硬件电路。不仅能自动检测被按下的键,并完成去抖动、防串键等功能,而且能提供与被按键功能对应的键码(如ASCII码)送往CPU。所以,编码键盘接口简单、使用方便。但由于硬件电路较复杂,因而价格较贵。 非编码键盘:键盘只简单地提供按键开关的行列矩阵。有关按键的识别、键码的确定与输入、
10、去抖动等功能均由软件完成。目前微机系统中,一般为了降低成本大多数采用非编码键盘。 键盘接口必须具有去抖动、防串键、按键识别和键码产生4个基本2.3系统的组成本系统主要以AT89S52单片机为主控核心,与键盘、扬声器、LED显示管模块一起组合而成。具体如下: 2.4系统总体方案2.5系统硬件设计(1)LED显示模块 LED显示模块如下图所示,利用AT89S52单片机的P2端口的P2.0P2.7连接到一个4位数码管5461AS的AG及DP的笔段上,数码管的公共端1-4接地。 按键扫描显示当前按键模块如下: (2)扬声器发声模块及音乐播放模块 (3)独立式键盘模块4)高中低音调节模块 第3章 软件设
11、计3.1 软件设计思路 单片机应用系统的程序设计,可以采用汇编语言完成,也可以采用C语言实现。汇编语言对单片机内部资源的操作直接,简洁,代码紧凑。但是当系统规模较大时,设计人员更趋于采用C语言进行程序设计。这是由于C语言具有良好的可读性,可移植性和基本的硬件操作能力。 采用C52进行单片机应用程序设计,编译器能自动完成变量的存储单元的分配,编程者可以专注于应用程序的逻辑思想;对常用功能模块和算法编制相应的函数,可以方便地进行算法和应用程序的移植。因此,用C52进行程序设计可以大大提高实际工程的开发效率。目前,C52的代码长度已经做到了汇编水平的1.21.5 倍。当代码长度超过4KB以上时,C5
12、1比汇编语言更具有明显优势。我们还可以借助仿真器,对应用程序的关键代码进行优化,以减少代码长度,提高运行速度。由于单片机生产工艺的改善,单片机的运行速度和内部存储器容量都有了较大的提高,这些都为C52语言的使用创造了有利的条件。综上所述,故软件语言使用C52语言。3.2流程图 流程图是实现软件编程最重要的核心,所以每个模块的流程图都应具体,才会容易实现代码的编写.3.3 键盘扫描程序 检测是否有键按下,有键按下则记录按下键的键值,并跳转至功能转移程序;无键按下,则返回键盘扫描程序继续检测3.4 功能转移程序 对检测到得按键值进行判断,是琴键则跳转至琴键处理程序,是功能键则跳转至相应的功能程序,
13、我们设计的功能程序有两种,即按键发音功能和自动播放音乐功能3.5 琴键处理程序根据检测到得按键值,查询音律表,给计时器赋值,使发出相应频率的声音3.6 自动播放歌曲程序检测到按键按下的是自动播放歌曲功能键后执行该程序,电子琴会自动播放事先已经存放好的歌曲,歌曲播放完毕之后自动返回至键盘扫描程序,继续等待是否有键按下。一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系正确即可。利用A
14、T89C51的内部定时器使其工作计数器模式(MODE1)下,改变计数值TH0及TL0以产生不同频率的方法产生不同音阶。 音阶频率表:计数脉冲值与频率的关系式是:Nfi÷2÷fr 第4章试验仿真 本次课程设计使用的仿真软件是PROTEUS,其功能强大,实用性强,容易使用。以下为PROTEUS的仿真电路总图:PCB布板课程设计体会 一个星期的实训很快结束了。通过对简易电子琴的设计,我认识到了“理论联系实际”的这句话的重要性与真实性。在此次的课程设中计,我不仅巩固了以前学习过的知识,还增长了一些书本以外的知识,比如说制作万用板的过程,及焊接的方法,如何能焊接的光滑,美观,布线能够
15、清爽一目了然,这些光看书本是永远也学不到的。最重要的是在实践中理解了书本上的知识,明白了学以致用的真谛,也明白课程设计的意义所在,它教会我们如何运用所学的知识去解决实际的问题,提高我们的分析能力、动手能力及处理问题的能力,还增强了我们的团结互助精神。在整个设计到电路板的制作、电路的焊接以及调试过程中,我用心做好每一步,虽然总做的电子琴原理简单焊接不是很困难,但是每一份付出背后的成功都是值得开心的。当然,我从实训中也发现了自身的许多缺点及不足,比如做事不仔细,动手能力欠缺。 此次实训中,在我没有领全器件时,芯片落在实验室时,焊接时需要同学帮助时,受到了很多老师同学的帮助,在此我要感谢他们。 参考
16、文献1 郭天祥单片机学习资料机械电子工业出版社,2007 2 马忠梅等.单片机的C语言应用程序设计.北京航空航天大学出版社,2006 3 余发山等.单片机原理及应用技术.中国矿业大学出版社,2008 4 谭浩强.C语言程序设计(第三版).清华大学出版社,2005 5 艾永乐等.模拟电子技术基础.中国电力出版社,2008 6 尹文庆等.数字电子技术基础.中国电力出版社,2008 7 喻杨杨. 安徽财经大学信息工程学院本科毕业设计,2010.10 源程序代码#include<reg52.h> #define uchar unsigned char void Run(void); voi
17、d KeyScan(void); void PlayKey(void); void delay_1ms(uchar i); void PlayMusic(void); void DisPlay(void); sbit Beep=P37; uchar Th0,Tl0; /TH0,TL0 uchar flag=0xff; /模式,0表示音乐,ff表示按键 uchar key=0; /按键代号 uchar a; uchar gaodi=0; /音乐音符 uchar code MusicCode=0XFc,0X44,0XFc,0Xac,0XFd,0X09,0XFd,0X34, 0XFD,0X82,0X
18、FD,0Xc8,0XFD,0X06,0XFb,0X04, 0Xfb,0X90,0Xfc,0X0c,0Xfe,0X22,0Xf9,0X5b,0Xfa,0x15 ; /月亮代表我的心 uchar code Music= 0X02,0X82, 0X16,0X32,0X54,0X02,0X52, 0XA6,0X32,0X54,0X02,0X52, 0X64,0X74,0XB6,0X64, 0X52,0X5C,0X32,0X22, 0X16,0X12,0X14,0X32,0X22, 0X16,0X12,0X14,0X22,0X32, 0X26,0X12,0X94,0X22,0X32, 0X2C, 0X3
19、2,0X52, 0X36,0X22,0X14,0X54, 0XAC,0X92,0XA2,0X96,0X0A2,0X96,0X82, 0X3C,0X54, 0X36,0X22,0X14,0X54, 0XAC,0X92,0XA2, 0X16,0X12,0X14,0X22,0X32, 0X2C,0X02,0X82, 0X16,0X32,0X56,0X12, 0XA6,0X32,0X56,0X52, 0X66,0X72,0XB6,0X62, 0X62,0X52,0X58,0X32,0X22, 0X16,0X12,0X14,0X32,0X22, 0X16,0X12,0X14,0X22,0X32, 0X2
20、6,0X92,0XA4,0X12,0X22, 0X1C, 0XFF; /按键音符 uchar code KeyCode=0XFF,0XFF, 0xF8,0x8B,0xF9,0x5B,0xFA,0x14,0xFA,0x66,0xFB,0x03,0xFB,0x8F,0xFC,0x0B,/低音 0xFC,0x43,0xFC,0xAB,0xFD,0x08,0xFD,0x33,0xFD,0x81,0xFD,0xC7,0xFE,0x05,/中音 0xFE,0x21,0xFE,0x55,0xFE,0x84,0xFE,0X99,0XFE,0xC0,0xFE,0xE3,0xFF,0x02,/高音 ; void
21、main(void) P1=0XFF; /初始化 P0=0XFF; P2=0; TMOD=0X01; IT0=1; TR0=0; EX0=1; ET0=1; EA=1; while(1) KeyScan(); /按键扫描 Run(); /运行 DisPlay(); /显示 void Run(void) /运行 if(flag=0) PlayMusic(); else PlayKey(); void KeyScan(void) /按键扫描 if(P1=0XFE) /第一按键按下 delay_1ms(12); /延时12MS if(P1=0XFE) /确定按下 key=1; a=key; else
22、 if(P1=0XFD) delay_1ms(12); if(P1=0XFD) key=2; a=key; else if(P1=0XFB) delay_1ms(12); if(P1=0XFB) key=3; a=key; else if(P1=0XF7) delay_1ms(12); if(P1=0XF7) key=4; a=key; else if(P1=0XEF) delay_1ms(12); if(P1=0XEF) key=5; a=key; else if(P1=0XDF) delay_1ms(12); if(P1=0XDF) key=6; a=key; else if(P1=0XB
23、F) delay_1ms(12); if(P1=0XBF) key=7; a=key; else if(P0=0XFE) /低音模式键按下 delay_1ms(12); if(P0=0XFE) gaodi=0; a=gaodi; else if(P0=0XFD) /中音模式键按下 delay_1ms(12); if(P0=0XFD) gaodi=1; a=gaodi; else if(P0=0XFB) /高音模式键按下 delay_1ms(12); if(P0=0XFB) gaodi=2; a=gaodi; else return; void PlayKey(void) /响应按键 if(key=0) return; else Th0=KeyCodegaodi*14+key*2; Tl0=KeyCodegaodi*14+key*2+1; TR
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 婴儿日用品玩具ICTI手册
- 2026清洁环境行业市场变化趋势分析深度解析未来趋势前景值得报告
- 炎症性肠病病变范围规范化检查
- 2026中国医药中间体生产销售行业市场供需调查及投资价值规划分析研究
- 2026中国渔业知识产权产业集群行业市场深度调研及发展趋势和投资前景预测研究报告
- 2026石墨烯行业材料应用新能源开发研究分析报告规划
- 广东佛山市2026年基层公共就业创业服务岗位招聘考试核心押题卷(第3套)(附独家高分解析)
- 2026中国通信设备行业市场发展趋势投资前景研究规划分析报告
- 2026中国小儿肺热咳喘口服液市场规模预测与投资风险评估报告
- 水性聚氨酯分散体:低VOC替代持续深化高性能应用打开全球市场新增长空间
- 2026年云南高考(历史)考试试卷真题及答案
- 2026年医师定期考核业务水平测评理论考试(人文医学)练习题及答案
- 建筑识图与构造
- 2026年高考全国2卷数学高考真题试题(含答案)
- 2025年高校教学统计分析岗笔试试题(附答案)
- 2026湖南娄底新化县经济发展投资集团有限公司人员招聘1人笔试历年参考题库附带答案详解
- 2026年水利水电建筑工程技术人员专项题库答案与解释
- 高考志愿填报数据特征与分布规律研究
- 福建省物业管理师职业技能鉴定考试(技能实操中级、四级)题库及答案
- 消防员职业特性与使命担当
- 无人机数字化管控平台搭建方案
评论
0/150
提交评论