- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机课程设计夏雨晴
课程设计说明书
名称 基于单片机的音乐盒设计
目录
引言 2
设计任务 2
三、音频发生知识 2
3.1 基本知识 2
3.2 节拍 3
3.3 编码 3
音乐盒原理分析 4
4.1 硬件电路 4
4.1.1 硬件电路原理图 4
4.1.2 原理说明 4
4.2 软件设计 5
五、程序及程序调试 5
5.1 程序 5
5.2 程序调试 13
六、结论与心得 13
七、致谢 14
九、附录 15
7.1 参考文献 15
7.2 电路板 15
引言
该课程是应用MCS-51单片机原理和控制理论设计音乐演奏控制器的硬件电路,并利用汇编语言进行程序设计。通过控制单片机内部的定时器来产生不同频率的方波,驱动喇叭发出不同音调的音乐,再利用延迟来控制发音时间的长短。把乐谱转化成相应的定时常数就可以从发音设备中演奏出悦耳动听的音乐。这种控制电路结构简单,可性高,应用性强;软件程序适应范围广,对于不同的音乐只需要改变相应的定时常数即可。要生产音频脉冲,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间.利用定时器计时这个半周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚上得到此频率的脉冲.2. 利用8051的内部定时器使用其工作在计数器模式MODE1下,改变计数值THO及TLO以产生不同频率的方法.3. 例如频率为523Hz,其周期T=1/523=1912us,因此只要令计数器计时956us/1us=956,在每次计数956次时将I/O反相,就可得到中音DO (523Hz). 计数脉冲值与频率的关系公式如下:N=Fi÷2÷Fr N: 计算值; Fi: 内部计时一次为1us, 故其频率为1MHz;4. 其计数值的求法如下:T=65536-N=65536-Fi÷2÷Fr例如: 设K=65536, F=1000000=Fi=1MHz, 求低音DO(261Hz).中音DO (523Hz). 高音的DO (1046Hz)的计算值.T=65536-N=65536-Fi÷2÷Fr=65536-1000000÷2÷Fr=65536-500000/Fr低音DO的 T=65536-500000/262=63627中音DO的 T=65536-500000/523=64580高音DO的 T=65536-500000/1047=65059相关知识每个音符使用1个字节,字节的高4位代表音符的高低,低4位代表音符的节拍,表2为节拍与节拍码的对照.如果1拍为0.4秒,1/4拍是0.1秒,只要设定延迟时间就可求得节拍的时间.假设1/4拍为1DELAY,则1拍应为4DELAY,以此类推.所以只要求得1/4拍的DELAY时间,其余的节拍就是它的倍数,如表3为1/4和1/8节拍的时间设定.建立音乐的步骤:1. 先把乐谱的音符找出,然后由表63建立T值表的顺序.2. 把T值勤表建立在TABLE1,构成发音符的计数值放在TABLE.3. 简谱码(音符)为高位,节拍为(节拍数)为低4位,音符节拍码放在程序的TABLE处.
图1 音乐盒原理图
4.1.2 原理说明
当键盘有键按下时,判断键值,启动计数器T0,产生一定频率的脉冲,驱动蜂鸣器,放出乐曲。同时启动定时器T1,显示歌曲号。
①. 硬件电路中用、(外部中断0、1输入端P3.2 P3.3)分别接S1、S2作为上、下一曲的功能键。
硬件电路中用T1(外部定时/计数器输入端P3.5)分别接S3作为暂停的功能键。
②. 用P0.0-P0.7控制七段码a,b,c,d,e,f,g。
③. 用P2.0口控制喇叭。
④. 电路为12MHZ晶振频率工作,起振电路中C1,C2均为30pf。
4.2 软件设计
本程序可以实现课程设计的基本要求,并可以通过按键播放六首歌曲,程序流程图如下:
五、程序及程序调试
5.1 程序
OUT BIT P1.7 MOV A,R5
N EQU 2 MOVC A,@A+DPTR
OUT_NUM EQU P1 MOV @R0,A
ORG 0000H INC R5
AJMP MAIN INC R0
ORG 0003H MOV A,R5
AJMP LAST_SONG MOVC A,@A+DPTR
ORG 000BH MOV @R0,A
AJMP F_T0 INC R0
文档评论(0)