电子琴课程设计--基于单片机的电子琴设计.doc_第1页
电子琴课程设计--基于单片机的电子琴设计.doc_第2页
电子琴课程设计--基于单片机的电子琴设计.doc_第3页
电子琴课程设计--基于单片机的电子琴设计.doc_第4页
电子琴课程设计--基于单片机的电子琴设计.doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

河南理工大学本科课程设计报告 - 1 - 河南理工大学河南理工大学河南理工大学 单片机应用与仿真训练单片机应用与仿真训练设计报告设计报告 题目题目: :基于单片机的电子琴设计基于单片机的电子琴设计 姓 名: 卢晓飞 田三龙 学 号:0916303069 0916303063 专业班级: 09 电气六班 指导老师: 高如新 所在学院:电气工程与自动化学院 2012 年 6 月 27 日 河南理工大学本科课程设计报告 - 2 - 摘摘 要要 本设计是一个基于单片机的简易电子琴,它是以单片机作为主控核心,设 置键盘、蜂鸣器等外围器件;另外还用到一些简单器件如:两位数码管,和 npn 型三极管及电阻等。利用按键实现音符和音调的输入;两位的数码管进行 被操作的按键显示;用 npn 型三极管 8550 实现低音频功率放大;最后用蜂鸣器 进行播放“结婚进行曲” 。 本设计硬件部分主要由最小系统,按键系统模块、数码管显示模块和蜂鸣 器模块组成。其软件部分主要有主程序模块、定时中断程序、定时计数程序、 显示程序。 (1)最小系统:它是单片机应用系统的设计基础。它包括单片机的选择、时钟 系统设计、复位电路设计、简单的 i/o 口扩展、掉电保护等。 (2)按键系统模块:本设计采用 10 个按键,其中 7 个按键用来显示 7 个音调, 其它 3 个按键可以进行高低中音的切换,并自动播放已存歌曲。 (3)数码管显示模块:sm420562 段选端接在单片机的 p0 口,两个位选端分别 接在 p20 和 p21。 (4)蜂鸣器模块:此电子琴发音电路是通过三极管驱动蜂鸣器发音,经过上拉 电阻提高驱动能力。 本次设计首先对单片机设计简易电子琴仔细分析,接着制作硬件电路和编 写软件的程序,最后进行软硬件的调试运行。并且从原理图,主要芯片,各模 块的原理和各个模块的程序调试来阐述。利用单片机产生不同频率来获得我们 要求的音阶,实现高、中、低共 21 个音符的发音和显示和音乐播放时的控制显 示,并且能自动播放程序中编排的音乐。系统运行稳定,其优点是硬件电路简 单,软件功能完善,控制系统可靠,性价比高等,具有一定的使用和参考价值。 河南理工大学本科课程设计报告 - 3 - 目目 录录 1.1.概述概述4 4 1.1 设计背景.4 1.2 设计意义.4 1.3 设计任务 4 2.2.系统总体方案及硬件设计系统总体方案及硬件设计5 5 2.1 总体设计.5 2.2 单片机选型.5 2.3 原理框图 6 2.4 显示部分设计.7 2.5 按键部分设计 8 2.6 发音部分设计.9 3.3.系统软件设计系统软件设计1111 3.1 系统分析11 3.2 参数计算 .13 3.3 程序设计15 4.4. proteusproteus 软件仿真软件仿真 1818 4.1 硬件调试18 4.2 软件调试 .18 4.4 结果分析 .19 5.5. 课程设计体会课程设计体会2020 参考文献参考文献2121 附附 1 1 源程序代码源程序代码 2222 附附 2 2 系统原理图系统原理图 2727 河南理工大学本科课程设计报告 - 4 - 1.1.概述概述 1.1 设计背景 随着电子科学技术的飞速发展,电子技术正在逐渐改善着人们的学习、生 活、工作,因此开发本系统希望能够给人们带来更多的生活乐趣。 基于当前市场上的玩具需求量增大,其中电子琴就是一个很好的应用方面。 单片机技术使我们可以利用软硬件来实现电子琴的功能,从而可以实现电子琴 的微型化,可以用作玩具琴、音乐转盘以及音乐童车等等。并且可以进行一定 的功能扩展。鉴于传统电子琴可以用键盘上的“1”到“a”键演奏从低 so 到高 do 等 11 个音,从而也可以通过单片机实现对十个按键的扩展,实现七个音符 键的高、中、低 21 个音调的显示播放和任意音乐的自动播放。该设计将十个音 键制作成独立键盘,其中七个为音符键,三个为控制键,并用数码管进行显示, 使电子琴的功能更加完美。不但可以实现对按键的显示,而且可以实现对音乐 的自动存储和播放,使该设计功能更加完善。 1.2 设计意义 该设计具有以下优点: 可以方便得知播放的音符和音调; 比传统电子琴功能更完善; 制作简单,成本低; 1.3 设计任务 实现电子琴发声控制系统;要求电路实现如下功能: 利用蜂鸣器作为发声部件,两个数码管作为显示部件,设置 10 个按键,实现高 音、中音、低音的 1、2、3、4、5、6、7 的发音。并在存储一首歌曲的内容, 可以实现自动播放。 用 proteus 实现的电子琴仿真设计 说明:单片机的工作时钟频率为 11.0592mhz。 河南理工大学本科课程设计报告 - 5 - 2.系统总体方案及硬件设计系统总体方案及硬件设计 2.1 总体设计 采用 at89s52 单片机作为主控芯片,设置键盘、蜂鸣器等外围器件,另外 还用到一些简单器件如:两位数码管,和 npn 型三极管及电阻等。利用按键实 现音符和音调的输入;两位的数码管进行被操作的按键显示;用 npn 型三极管 8550 实现低音频功率放大;最后用蜂鸣器发音。 2.2 单片机选型 硬件电路要以单片机作为主控芯片,实现按键输入音符和音调,两位数码 管的显示以及低音频功率放大和蜂鸣器发音。针对本设计的功能和用途,采用 at89s51 单片机更好,实现功能完全,性价比较高,更适合本设计。 时钟电路 单片机内部具有一个高增益反相放大器,用于构成振荡器。通常在引脚 xtall 和 xtal2 跨接石英晶体和两个补偿电容构成自激振荡器,结构图 2 中 x1、c1、c2。可以根据情况选择 6mhz、12mhz 或 24mhz 等频率的石英晶体,补 偿电容通常选择 30pf 左右的瓷片电容。 图 2-1、时钟电路 复位电路 单片机小系统常采用上电自动复位和手动按键复位两种方式实现系统的复 位操作。上电复位要求接通电源后,自动实现复位操作。手动复位要求在电源 接通的条件下,在单片机运行期间,用按钮开关操作使单片机复位。其结构如 下图。上电自动复位通过电容 c3 充电来实现。手动按键复位是通过按键将电阻 r1 与 vcc 接通来实现。 河南理工大学本科课程设计报告 - 6 - 图 2-2、复位电路 2.3 原理框图 本系统有主控芯片 89s52、发音单元、显示模块、按键模块组成。 图 2-3、原理框图 89s52 单片 机 发音模块 led 显示模 块 按键控制模 块 河南理工大学本科课程设计报告 - 7 - 2.4 显示部分设计 数码显示方式 数码显示有静态显示方式与动态显示方式两种。工作在静态显示方式时, 数码管的位线与电源一直相连,数码管中的二极管均处于通电状态,即在静态 工作方式下,显示电路中数码管的位选线是同时选通,而数码管的段选线是独 立输入。 工作在动态显示方式时,数码管的位线在扫描控制电路的控制下按设定顺 序导通,即电路中的数码管是逐个接通电源,数码管的段选线以并联方式与译 码电路联接,即在动态工作方式下,数码管不是同时导通显示而是按照设定顺 序分时导通显示。 八位数码管的结构 本次课程设计的显示电路采用两位数码管进行显示,由于此设计采用的是 共阴极的,使用时不加限流电阻。 为了显示字符,要为 led 显示器段码,除了组成 8 字形的字符的 7 段, 另加上 1 个小数点位,共计 8 段, 因此提供给 led 显示器的显示段码为 1 个 字节。 河南理工大学本科课程设计报告 - 8 - 图 2-4、数码管电路 2.5 按键部分设计 键盘设计 键盘在单片机应用系统中是一个关键的部件,它能实现向计算机输入数据, 传送命令等功能,是人工干预计算机的主要手段。 键盘可以分为 2 类:独立连接式键盘和矩阵式键盘。 独立连接式键盘 独立式按键是直接用 i/o 口线构成的单个按键电路,其特点是每个按键单 独占用一根 i/o 口线,每个按键的工作不会影响其它 i/o 口线的状态。独立式 按键电路配置灵活,软件结构简单,但每个按键必须占用一根 i/o 口线,然而, 在按键较多时,i/o 口线浪费较大,不宜采用。 独立式按键软件常采用查询式结构。先逐位查询每根 i/o 口线的输入状态, 如某一根 i/o 口线输入为低电平,则可确认该 i/o 口线所对应的按键已按下, 河南理工大学本科课程设计报告 - 9 - 然后,再转向该键的功能处理程序。由于本程序较为简单,为了使用方便及节 省资源,选择独立式键盘。下图为独立式键盘电路图: 图 2-5、独立式键盘电路图 去抖 键盘编程中主要考虑去抖动的问题。 当测试表明有键被按下之后,紧接着就进行去抖动处理。因为键是机械开 关结构,由于机械触点的弹性及电压突跳等原因,在触点闭合或断开的瞬间会 出现电压抖动。为保证键识别的准确,在电压信号抖动的情况下不能进行行状 态输入。为此需进行去抖动处理。去抖动有硬件和软件两种方法。硬件方法就 是加去抖动电路,从根本上避免抖动的产生。软件消抖,在第一次检测到有键 按下时,执行一段延时程序之后,再检测此按键,如果第二次检测结果仍为按 下状态,cpu 便确认此按键己按下,消除了抖动。 2.6 发音部分设计 如下图所示,发音电路是由蜂鸣器、三极管、上拉电阻构成。由三极管来 驱动扬声器发音的,同时加上拉电阻增强驱动电流,提高驱动能力。 河南理工大学本科课程设计报告 - 10 - 图 2-6、发音部分电路图 河南理工大学本科课程设计报告 - 11 - 3.3.系统软件设计系统软件设计 3.1 系统分析 系统软件的组成 (1)键盘扫描程序:检测是否有按键按下,有按键按下则记录按下键的 键值,并跳转至功能转移程序;无按键按下,则返回键盘扫描程序继续检测。 (2)功能转移程序:对检测到的按键值进行判断,是琴键则跳转至琴键 处理程序,是功能键则跳转至相应的功能程序,我们设计的功能程序有两种, 即音色调节功能和自动播放乐曲的功能。 (3)琴键处理程序:根据检测到的按键值,查询音调表,给计时器赋值, 使发出相应频率的声音。 (4)自动播放歌曲程序:检测到按键按下的是自动播放歌曲功能键后执 行该程序,电子琴会自动播放事先已经存放的歌曲,歌曲播放完毕之后自动返 回至键盘扫描程序,继续等待是否有按键按下。 河南理工大学本科课程设计报告 - 12 - 系统总体功能流程图 开开始始 扫扫描描键键盘盘 初初始始化化t t0 0 是是否否有有音音阶阶键键按按下下 播播放放内内部部音音乐乐 判判断断p po o口口输输入入 音音阶阶键键按按下下 自自动动播播放放键键按按下下 b b0 0/ /2 2= = =0 0 高高中中低低三三种种 根根据据键键值值和和工工 作作方方式式确确定定t to o 的的值值 键键值值是是否否为为0 0 用用数数码码管管2 2显显示示 七七个个音音调调,并并发发 出出对对应应的的声声音音 启启动动t to o,选选择择 数数码码管管一一的的工工 作作方方式式 关关掉掉声声音音 b0+ y n y n y n 河南理工大学本科课程设计报告 - 13 - 图 3-1、系统总体功能流程图 3.2 参数计算 发音原理 若要产生音频脉冲,只要算出某一音频的周期(1/频率) ,再将此周期除以 2,即为半周期的时间。利用定时器计时半周期时间,每当计时终止后就将 p1.0 反相,然后重复计时再反相。就可在 p1.0 引脚上得到此频率的脉冲。利 用 at89c51 的内部定时器使其工作计数器模式(mode1)下,改变计数值 th0 及 tl0 以产生不同频率的方法产生不同音阶。 例如,频率为 523hz,其周期 t1/5231912s,因此只要令计数器计时 956s/1s956,每计数 956 次时将 i/o 反相,就可得到中音 do(523hz) 。 计数脉冲值与频率的关系式是:nfi2fr,式中,n 是计数值;fi 是机器 频率(晶体振荡器为 12mhz 时,其频率为 1mhz) ;fr 是想要产生的频率。其计 数初值 t 的求法如下:t65536n65536fi2fr 例如:设 k65536,fi1mhz,求中音 do(261hz) 。 t65536n65536fi2fr6553610000002fr65536500000/f r,中音 do 的 t65536500000/52364580。 计算结果 (1)单片机 12mhz 晶振,中音符与计数 t0 相关的计数值如表所示: 音符频率(hz)计数值(t 值) 音符频率(hz)计数值(t 值) 低 1do26263628#4fa#74064860 #1do#27763737中 5so78464898 低 2re29463835#5so#83194934 #2re#31163928中 6la88064968 低 3mi33064021#6la#93264994 低 4fa34964103中 7si96865030 #4fa#37064185低 1do104665058 河南理工大学本科课程设计报告 - 14 - 低 5so39264260#1do#110965085 #5so#41564331高 2re117565110 低 6la44064400#2re#124565134 #6la#46664463高 3mi131865157 低 7si49464524高 4fa139765178 中 1do52364580#4fa#149065198 #1do#55464633高 5so156865217 中 2re58764633#5so#166165235 #2re#62264884高 6la176065252 中 3mi65964732#6la#186565268 中 4fa69864820高 7si196765283 采用查表程序进行查表时,可以为这个音符建立一个表格,有助于单片机通过 查表的方式来获得相应的数据:低音 019 之间,中音在 2039 之间,高音在 4059 之间。用单片机播放音乐,或者弹奏电子琴,实际上是按照特定的频率, 输出一连串的方波。为了输出合适的方波,首先应该知道音符与频率的关系。 (2)音调数据表 曲调值delay曲调值delay 调 4/4125ms调 4/462ms 调 3/4187ms调 3/494ms 调 2/4250ms调 2/4125ms 上表中的频率数值,有些过多,去掉不常用的黑键频率,只是把白键对应的 数据存放在单片机中,即可满足绝大部分的应用需求。 定义音调数据表的程序如下: dw 63628,63835,64021,64103,64260,64400,64524 64580,低音区:1 2 3 4 5 6 7 dw 64580,64671,64777,64820,64898,64968,65030 65058 中音区:1 2 3 4 5 6 7 dw 65058,65110,65157,65178,65217,65252,65283 65312 高音区:1 2 3 4 5 河南理工大学本科课程设计报告 - 15 - 6 7 把这个数据表,放在程序中,需要播音的时候,就从表中取出一个数据送 到定时器,当定时器溢出中断的时候,再对输出引脚取反,那么,在扬声器中, 即可听到上表中频率的声音。 3.3 程序设计 (1) 判断音阶(高中低音)子程序 在软件设计中采用 yinjie 代表音阶,如下图所示 音阶yinjie 值 高2 中1 低0 初始化状态为中音(yinjie=1) ,电路中设计高、低两个音阶键。上电后, 若无按键按下,则为中音模式。若音阶键被按下,则如下流程图所示,初始化 后进行按键扫描,在高音键按下,若初始 yinjie 不为 2,则令 yinjie=2,进入 高音工作模式,若初始 yinjie 为 2,则对 yinjie 进行初始化,即另 yinjie=1, 重新进入进入中音工作模式,这样即实现了高音键切换高、中音方式的转换。 同理,用低音键实现中、低音的切换。 河南理工大学本科课程设计报告 - 16 - 河南理工大学本科课程设计报告 - 17 - 初初始始化化音音阶阶 为为1 1,即即中中 音音阶阶 判判断断是是否否有有 音音阶阶按按钮钮按按 下下 判判断断哪哪个个音音阶阶 按按下下 y y 音音阶阶= =2 2音音阶阶= =0 0 设设定定音音阶阶= =2 2 开开始始 高高音音阶阶按按下下 判判断断当当前前音音阶阶 值值 低低音音阶阶按按下下 n y 判判断断当当前前音音阶阶 值值 设设定定音音阶阶= =0 0 n y 音音阶阶= =1 1 图 3-2、判断音阶(高中低音)子程序 (2) 播放子程序(包括自动播放存储音乐和按键发音) 河南理工大学本科课程设计报告 - 18 - 本设计共两种播放模式,包括自动播放存储音乐和按键发音。上电后,首先 开中断并设定定时器 0 为工作方式 1,当自动播放键按下时,进入中断,根据 乐谱在定义的音频数组中查找相应音律,然后给定时器赋初值,即开始播放音 乐。当 do、re、mi、fa、so、la、si 七种音符键按下时,根据音阶值(如 3.3.1 中高中低对应)和音符值在定义的音频数组中查找相应音律,然后给定时器赋 初值,即按键发音。 开开始始 开开中中断断并并设设定定 工工作作方方式式寄寄存存 器器 有有键键按按下下 自自动动播播放放键键 按按下下 进进入入中中断断 给给定定时时器器t t0 0赋赋 值值 播播放放音音乐乐 进进入入中中断断 根根据据y yi in nj ji ie e和和 工工作作方方式式取取 值值,并并在在数数组组 查查找找相相应应音音律律 给给定定时时器器t t0 0赋赋 值值 播播放放键键值值对对应应 的的音音符符 根根据据乐乐谱谱在在数数 组组中中查查找找相相应应 音音律律 图 3-3、播放子程序 河南理工大学本科课程设计报告 - 19 - 4.4. proteusproteus 软件仿真软件仿真 4.1 硬件调试 硬件调试主要是针对单片机部分进行的调试。 在上电之前,先确保电路中不存在断路或短路情况,这一工作是整个调试工 作的第一步,也是非常重要的一个步骤。在这部分调试中主要使用的工具是万 用表,用来完成检测电路中是否存在断路或者短路情况的任务。注意焊点之间, 确保焊点没有短接在一起,同时注意焊点的美观,确保没有开路以及短路的现 象出现。 在确保硬件电路正常且无异常情况(断路或短路)的情况下方可上电调试,上 电调试的目的是检验电路是否接错,同时还要检验原理是否正确,在本次设计 中,上电调试主要是检测单片机控制部分、数码管点亮部分、和音频转换电路 硬件调试。 1、数码管 led 电路调试:接通电源,随机按下按钮可以看到数码管显示数 字。 2、键盘单片机控制部分调试:上电后,随机按动键盘可以发现各个按键对 应的音正确。 4.2 软件调试 调试主要方法和技巧:通常一个调试程序应该具备至少四种性能:跟踪、断 点、查看变量、更改数值。整个程序是一个主程序调用各个子程序实现功能的 过程,要使主程序和整个程序都能平稳运行,各个模块的子程序的正确与平稳 运行必不可少,所以在软件调试的最初阶段就是把各个子程序模块进行分别调 试。 4.3 仿真结果(任举一例) 河南理工大学本科课程设计报告 - 20 - 图 4-1、低音音符 re 仿真图 4.4 结果分析 根据仿真结果可知,本次课程设计能够准确并彻底的完成设计要求。左侧数 码管可以显示 a、b、c 三种结果,分别代表低音、中音和高音。右侧数码管可 以显示 1、2、3、4、5、6、7 七个数字,分别代表 do、re、mi、fa、so、la、si 七种音符。下面以 4.3 为例具体进行分析:当系 统上电后,若按下低音键(如图 p3.6),,则选定工作方式为低音模式,图中 a 即代表低音。p0 口连接数码管段选端,右侧数码管显示的 1 即代表 do。两位 数码管即代表低音 do。 河南理工大学本科课程设计报告 - 21 - 5.5. 课程设计体会课程设计体会 总体来说,此次单片机课程设计使我们收获良多,虽然课程设计的过程中遇 到了很多困难与问题,但我们最终还是完成了设计的任务及要求。具体来说可 以分为以下几点:第一,不够细心,不够严谨(如因为粗心大意而焊错线) ;第 二,因对课本理论的掌握度不够导致编程出现错误;第三,硬件方面,刚开始 有的程序模块不能实现预期的效果,对于有的硬件,在实物制作过程中焊了比 较多的排线,同时对于整体各元器件的布局都有很高的要求。不过在向同学请 教,各方面都有了不同程度的改善;第四,在做人方面,我认识到,无论做什 么事情,只要你足够坚强,有足够的毅力和决心,有足够的挑战困难的勇气, 就没有什么办不到的。 这次课程设计中,经过我们的努力,在仿真软件和实物上都实现了高、中、 低 21 个音符的发声和音乐的自动播放,使我们有了一定的成就感,也使我们进 一步熟悉和掌握了单片机的内部结构和工作原理,了解了单片机应用系统设计 的基本方法和步骤, 掌握了单片机仿真软件 proteus 的使用方法和键盘、显示 器在的单片机控制系统中的应用,同时也掌握了撰写课程设计报告的方法。总 之,通过这次课程设计,我们都清楚明白了自己的能力有多深,想提高还得归 于多锻炼,多动手,多向别人学习。 河南理工大学本科课程设计报告 - 22 - 参考文献参考文献 【1】余发山、王福忠. 单片机原理及应用技术. 中国矿业大学出版社.2008 年 6 月第 1 版 【2】杨凌霄. 微型计算机原理与应用,中国矿业大学出版社.2008 年 8 月第一 版 【3】康华光. 电子技术基础(数字部分) ,高等教育出版社.第五版 【4】徐志军,伊廷辉等. eda 技术与 pld 设计 人民邮电出版社, 2006 年 2 月第 1 版 【5】李朝青. 单片机原理及接口技术m. 北京:北京航天航空大学出版色, 2001. 【6】胡汉才. 单片机原理及其接口技术m. 北京:清华大学出版社,2004. 【7】 彭伟.单片机 c 语言程序设计实训 100 例.电子工业出版社.2009 年 【8】 李建忠单片机原理及应用西安:西安电子科技大学,2002 年 【9】 韩志军等.单片机应用系统设计m.机械工业出版社,2004 【10】 马忠梅等.单片机的 c 语言应用程序设计m.北京航空航天大学出版社, 2006 河南理工大学本科课程设计报告 - 23 - 附附 1 1 源程序代码源程序代码 #include #define keyport p1 #define uchar unsigned char #define uint unsigned int uchar high,low; /定时器预装值的高 8 位和低 8 位 sbit speak=p30; sbit gao=p35; sbit di=p36; sbit zdbf=p37; uchar yinjie=1; uchar time; uchar n=0; uchar bo=0; uchar code fre2= 0x8c,0xf8, 0x5b,0xf9, 0x15,0xfa, 0x67,0xfa, 0x90,0xfb, 0xae,0xfb, 0x0c,0xfc, /低音 0x44,0xfc, 0xac,0xfc, 0x09,0xfd, 0x34,0xfd, 0x82,0xfd, 0xc2,0xfd, 0x06,0xfe, /中音 0x22,0xfe, 0x56,0xfe, 0x85,0xfe, 0

温馨提示

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

评论

0/150

提交评论