- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于AT89C51单片机音乐盒课程设计
《单片机原理及应用》课程设计说明书
设计题目:基于AT89C52单片机的音乐盒的设计
学 院:
专业班级:
设 计 者:
学 号:
指导老师: 目 录
摘 要…………………………………………………………………4
概述……………………………………………………………5
音乐盒的发音原理……………………………………………6
2.1 播放音乐的原理……………………………………………6
2.2 音符频率的产生……………………………………………6
2.3 节拍频率的产生……………………………………………8
硬件电路设计…………………………………………………9
3.1 硬件电路……………………………………………………9
3.2 整体硬件电路………………………………………………10
3.3 原理说明
3.4 键盘按键 …………………………………………………10
软件设计………………………………………………………11
4.1 程序设计流程………………………………………………11
4.2 设计源程序代码……………………………………………12
仿真及调试……………………………………………………16
5.1 调试 ………………………………………………………16
5.2 仿真 ………………………………………………………16
5.3 程序调试中出现的问题及解决的办法 ………………………17
设计小结………………………………………………………18 附录元件清单…………………………………………………19
基于AT89C52单片机的音乐盒的设计
【摘要】:随着人类社会的发展,人们对视觉、听觉方面的享受提出了越来越高的要求。小小的音乐盒可以给人们带来美好的回忆,提高人们的精神文化享受。传统的音乐盒多是机械型的,体积笨重,发音单调,不能实现批量生产。本文设计的音乐盒是以单片机为核心元件的电子式音乐盒,体积小,重量轻,能演奏和旋音乐,功能多,使用方便,可以批量生产,具有一定的商业价值。
【关键词】:音乐盒;单片机
概述
传统的音乐盒多是机械音乐盒,其工作原理是通过齿轮带动一个带有铁钉的铁桶转动,铁桶上的铁钉撞击铁片制成的琴键为了让音色稳定,必须放平不能动摇音乐盒音质能控制功能强使用方便音调主要由声音的频率决定,同时也与声音强度有关。对一定强度的纯音,音调随频率的升降而升降;对一定频率的纯音、低频纯音的音调随声强增加而下降,高频纯音的音调却随强度增加而上升。)
定时器/计数器0的定时时间为:T/2=1912/2=956
定时器956的计数值=定时时间/机器周期=956/1=956(时钟频率=12MHZ)
装入T0计数器初值为65536-956=64580
将64580装入T0寄存器中,启动T0工作后,每计数956次时将产生溢出中断,进入中断服务时,每次对P3.0引脚的输出值进行取反,就可得到中音DO(523HZ)的音符音频。将51单片机内部定时器工作在计数器模式1下,改变计数初值TH0,TL0以产生不同的频率。下表2-1是C调各音符频率与计数初值T的对照表:
表2-1 C调各音符频率与计数初值T的对照表
音符 频率(Hz) 音符 频率(Hz) 低1DO 1DO 523/64580 高1DO低2RE 2RE 589/64687 高2RE 1245/65134 低3M3M 661/64780 高3M 1318/65157 低4FA4FA 700/64822 高4FA 1397/65178 低5SO5SO 786/64900 高5SO 1568/65217 低6LA 441/64402 中6LA 882/64969 高6LA 1760/65252 低7SI 7SI 990/65031 高7SI 1967/65282
音符、音符编码及定时器初始值:
为了产生音符,必须求出音符低音5—高音5的计数初值。例如C调的低1DO的THTL=65536-50000/262=63627,中音DO的THTL=65536-500000/523=64580,高音DO的THTL=65536-500000/1042=65056。为了方便写谱,对其进行简单的编码,在编程时,根据音符编码查找对应的计数初值。比如说音乐是C调的,那么出现低音的5SO,直接将代码写为1;出现低音6LA,直接写一个2的代码;出现低音7SI,直接写一个3代码。
表2-2 音符编码表
音符 音符编码 音符 音符编码 不发音 0 低5SO6LA 2 低7SI 1DO 4 中2RE 5 中3M
文档评论(0)