好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

基于51单片机的八音盒设计.docx

13页
  • 卖家[上传人]:ss****gk
  • 文档编号:235298342
  • 上传时间:2022-01-05
  • 文档格式:DOCX
  • 文档大小:186.07KB
  • / 13 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 课程设计报告题 目 八音盒 专业、学号 授课班号 学生姓名 指导教师 完成时间 2012年12月7日1・摘要本设计是以STC89C52RC芯片为核心,利用Keil UV4编写软件和STC_ISP 烧写软件,设计出一,个八音盒八音盒主要由五大模块构成,包括单片机最小系 统、4粘矩阵键盘、蜂鸣器发生电路和4位数码管显示电路有8个按键对应8 首曲Fl播放按钮,另外8个按键对应do、re、mi、fa、so、la、si、do,八i|喑调 本设计主要使用单片机的内部定吋器0和中断产生不同频率的方波和延吋驱动 蜂鸣器,并采取行列反转扫描法识别键盘键值由于使用的是实验箱已经固化的 电路,本设计主要从软件设计丄加以优化,以使蜂鸣器产生的音乐更纯净最终 实现的基础功能是任意播放8首单片机内已存曲H ,发挥部分是另外实现8个可 演奏的琴键,使八音盒具有放音和简单演奏的两重功能,并辅以数码管显示当前 播放曲H号,经过优化和调试,音色较好,琴键发音比较纯正,初步达到设计要 求关键词:STC89C52RC八音盒 可演奏 人机交互友好2、目录1摘要 21关键词 23系统设计 4…3.1设计目标 4...3.2音乐基础知识 4 3.2.1首乐基础 4……3.2.2音频脉冲的产生 4……3.2.3音乐节拍的实现 5...3.3总体设计方案 5 3.3.1系统框图 6 3.3.2系统工作原理 6……3.3.3蜂鸣器奏乐电路 7……3.3.4手动和上电复位电路 7……3.3.5矩阵键盘控制面板 7...3.4软件设计方案 8 3.4.1主函数模块 8……3.4.2键盘扫描模块 9……3.4.3音乐字符串解释模块 10……344音乐字符串播放模块 10……3.4.5延时模块 114实验结果及讨论 11...4」实验结果 11...4.2实验结果分析 115总结 11...5」设计缺陷 11. . .5.2心得体会 126参考文献 117附录 123. 系统设计3.1•设计目标利用蜂鸣器和K20-K27制作一•个八音盒,内存八首乐曲,肖按下不同的按 键时,奏出不同的乐曲。

      其中《茉莉花》是必选曲其他任意例如:按下 K20奏出《茉莉花》提示:利用定吋器产生不同的音调,需要查do、re、mi等音调的频率 提高:把其他按键当作琴键,可以弹奏乐曲3. 2.音乐基础知识3. 2.1音乐基础音作为一种物理现象,是由于物体振动而产生的,振动产生的声波作用于人 耳,听觉系统将神经冲动传达给大脑,进血产生听觉人耳能听到的声音频率大 约在11—20000Hz,而音乐使用的音一般在27—4l00Hzo乐音体系中各音级的 名称叫做音名,被广泛采用的是CDEFG AB (do re mi fa so Iasi则多用于歌 唱,称为唱名)乐音体系中音高关系的最小计量单位叫做半音,两个半音构成 一个全音乐音中有几十个高低不同的音,但是最基本只有这七个音,其他高、 低音名都是在这个基础上变化岀来的乐谱表上用来表示正在进行的音的长短 的符号,叫做音符不同的音符代表不同的长度音符有以下儿种:全音符、二 分音符、四分音符、八分音符、十六分音符、三十二分音符、六十四分音符此 外,还有附点音符,它就是指带附点的音符,所谓附点就是记在音符右边的小圆 点,表示增加前面音符时值的一半音持续的长短即时值,一般用拍数表示,休止 符表示暂停发音。

      一首音乐就是由许多不同的音符组成的,而每一•个音符对应 着不同的频率,这样就可以利用不同的频率的组合,加以拍数对应的延吋来构成 不同的音乐3. 2.2音频脉冲的产生音乐的产生需要不同频率的音频脉冲,对于单片机而言,可以利用它的定时/计数器产 生这样的方波频率信号在木设计中,单片机工作在12MHz时钟频率下,其时钟周期为lus, 因此可以利用AT89C52的内部定时/计数器T0,使其工作模式为1,根据对应音符的不同频 率求出计数器的初值T (即是TH0和TL0的值),则TH0=T/256, TLO=T%2560C调各音符频率与计数值T的对照和对应的TH0和TL0值如下表:音符频率(HZ)简谱码(T值)HEX音符简谱码(T值)HEX低1 D026263628F88C# 4 FA#74064860FD5C#1 DO#27763731F8F31 1 5 SO78464898FD82低2 RE29463835F95B# 5 SO#83164934FDA6#2 RE#31163928F9B8i 6 LA88064968FDC8低3 M33064021FA15# 693264994FDE2 低4 FA34964103FA67中7 SI98865030FE06# 4 FA#37064185FAB9高1 DO104665058FE22低5 S039264260FB04# 1 DO#110965085FE3D# 5 SO#41564331FB4B高2 RE117565110FE56低6 LA44064400FB90# 2 RE#124565134FE6E# 646664463FBCF高3 M131865157FE85低7 SI49464524FCOC高4 FA139765178FE9A中1 DO52364580FC44# 4 FA#148065198FEAE# 1 DO#55464633FC79高5 SO156865217FECI中2 RE58764684FCAC# 5 SO#166165235FED3# 2 RE#62264732FCDC高6 LA176065252FEE4-3 M65964777FD09# 6186565268FEF44 FA69864820FD34高7 SI197665283FF033. 2.3音乐节拍的实现节拍是指音乐持续的长短,是除音符之外音乐的另一关键组成部分,在单片 机系统中可以通过延吋来实现。

      如果1/4扌n的延吋设为o.2s,则1扌n的吋间为 0.8s,依次类推,可以求出其余节拍的值,节拍的延时时间与音乐的曲调值有相 对应的关系,下面为不同曲调下的1/4和1/8节拍的时间设定,如下表所示曲调值(1/4拍)DELAY曲调值(1/8拍)DELAY调4/4125ms调4/462ins调3/4187ms调3/494ms调2/4250ms调2/4125ms3. 3总体设计方案3.3.1系统框 图系统框图3. 3. 2工作原理主要运用STC89C52RC单片机和-•个蜂鸣器两个器件组成在单片机外部 端子上接晶振电路,单片机的工作吋钟为12MHz,将P3 口的P3.7引脚作为音 频输出口直接送给喇叭,再通过程序解释己经存放好的用字符出表示的曲然 后再计算出从该首歌中所取出来的音调的长度,再将该音调通过一系列的控制后 实现了该音调的播放,在利用延吋来实现该音调播放的长度,在该音调播放完后 接着取下一个音调,就这样反复的取出下一个音调,从而实现了乐曲的播放对 于整个设计的屯路由单片机最小系统、数码管显示电路、蜂鸣器驱动发声电路及 歌曲和琴键播放控制电路等部分组成,其组成框图如图1所示,其中单片机 STC89C52RC主要是将各个模块连接起来并控制各个模块;手动按键复位电路则 是能够将为前状态变为初始状态;数码管显示电路主要是显示当前所播放的歌曲 的曲H号;蜂鸣器奏乐模块则是来播放音乐的;矩阵键盘控制面板则是用来选择 任意8首曲F1的播放和奏出do、re、mi、fa、so、la> si、do,八种音调以实现简 易琴键的功能。

      3.3.3蜂鸣器奏乐电路电路图如右图所示RD引脚即为单片机的P3.7 口这边主要是 上面驱动蜂鸣器的部分为RD引脚输入不同频 率的方波信号吋,则蜂鸣器发出不同频率的声响, 当给RD引脚低电平时,蜂鸣器发出声音,当给 高电平吋则蜂鸣器不发声实际上若是连接 一个扬声器则效果会更好3S】*5 rd10K3.3.4手动和上电复位电路 当单片机上电时,则由于电容相半于短路进行充电,在持续的逻辑“1”的 吋间大于2个正脉冲宽度吋,然后随着时间的延长,逻辑“1”变为逻辑“0”, 这一过程发生上电复位在单片机工作过程中,通过按键按下,则同理按键使 RESET端接通高电平的时间超过两个正脉冲宽度,然后按键释放,RESET端被 拉低,这个过程产生手动复位3. 3. 5矩阵键盘控制面板Il-iP20—0 o—)—O O—]—0 0—j—O 0—j j—O 0-5 D20 r UP2「s牡 *-O O-|S216 °—O O—i qS215 *-O 勺S2吐 4 $肥.—O O—i r—o o—T |4D2LP22‘、巴 *—O O—| 1S2J6 •-O O-| <5223 *-o rS 巴 J •-O O-j j-O O-n \\讣P23,5b厂-O O-j-O —O-| <-O o-| 1-O Q-j j-O O-iq \P24\汩P25-IdP26J? \.1严P27(人人•心S207 S206 S2O5 S2O4RPlices1 +5V此部分电路为行列式键盘和独立式按键输入电路。

      P20-P23为行,P24-P27为列,构成4X4行列式键盘按键编号规律为 S2+行号+列号例如S226表示P22行和P26列跨接处的按键K20-K27构成 独立式按键,分别接在P20-P27 ±,为按键按下吋,对应的口线输入0,同吋相 应的LED点亮D20-D27构成P20-P27的状态指示,当某口线输出0,相应的LED点亮 有4个用途:1、当行列式键盘逐行扫描吋,可做为正在被扫描的行的指示2、 当行列式键盘逐行扫描吋,可做为已按下键的指示例:当S215键按下,扫到 P21行吋,D21和D25会被点亮3、可做为独立式按键被按下的指示3. 3软件设计方案软件设计主要是基于音乐符号串的一个一个解释的基础上,发出动听的曲调1、main() 主函数主程序2、keyscan()键盘扫描函数函数功能:使用行列翻转扫描,判断矩阵键盘中的键值,然后进入和应的case语句, 执行音乐播放或者音乐简单演奏下面是函数执行的流程图 键盘扫描3、 changedata()音乐符号串解释函数 函数功能是解释是音乐字符串中的音调和音长4、 play() 音乐播放函数函数功能是不断的调用changedata()函数,记录音符和音长,对每一个读出 的音符,给定吋器TO在模式1下赋相应的初值,以产生相应频率的方波的信号, 以产生相应音调,并。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.