《单片机原理及应用》课程设计_八音盒设计.doc
文本预览下载声明
《单片机原理及应用》课程设计
—八音盒设计
班级:机081-4
学号:200823501433
姓名:信召峰
完成日期:2011年7月5日
目录
一、课程设计任务书 3
二、设计项目简介 3
2.1、设计思路 3
2.2、音符产生方法 3
2.3、节拍产生方法 4
三、电路原理图 6
四、系统功能简介 6
五、程序框图 7
六、程序清单 9
七、总结 26
参考文献: 27
8051八音盒
一、课程设计任务书
8051八音盒
本设计利用8051单片机结合内部定时器LCD设计一个八音盒,按下单键可以演奏预先设置的歌曲旋律。本设计可以学习8051定时器程序设计,按键扫描及歌曲旋律简单直觉式输入法的设计方法。
其基本功能为:1、使用LCD显示器来显示目前演奏的歌曲编号;2、具有16个按键操作来选择演奏哪一首歌曲;3、内建10首歌曲旋律,按下单键可以演奏歌曲;4、演奏时可以按键中断。程序执行后工作指示LED闪动,表示程序开始执行,按下单键0~9便可以演奏歌曲,歌曲演奏中,可以按键中断。
二、设计项目简介
1、设计思路:
选用Philips公司P87C51RB+单片机,它具有16KB的内部ROM, 3 个定时器/计数器,2个中断。
通过中断实现歌曲的播放和暂停。
通过定时实现LED闪烁和音乐频率的变化
通过键盘实现歌曲的选择。
2、音符产生方法:
不同的音调有不同的频率。频率不同,音调也就不同。
利用定时器,使其工作在模式0,定时中断,然后控制P3.7引脚的输出每次取反,就可以在P3.7的引脚输出相应的方波频率。改变计数初值,就改变了频率。定时器的定时时间等于半个周期,定时时间到就输出脉冲取反,重复此过程,就可在P3.7引脚得到一音频的脉冲。
如:C调中音1的频率=523HZ,周期T=1/523=1912us;
定时器的定时时间为:T/2=1912/2us=956us;
则其计数初值为:TH0=(8192-C)/32;TL0=(8192-C)%32;
下面是音符及其程序中对应的编码
音符 音符编码 音符 音符编码 音符 音符编码 低音1 l_dao 中音1 dao 高音1 h_dao 低音2 l_re 中音 re 高音2 h_re 低音3 l_mi 中音 mi 高音3 h_mi 低音4 l_fa 中音 fa 高音4 h_fa 低音5 l_sao 中音 sao 高音5 h_sao 低音6 l_la 中音 la 高音6 h_la 低音7 l_xi 中音 xi 高音7 h_xi 3、节拍产生方法:
音乐中的节拍用延时时间产生。假设1/4拍执行一次延时程序,这1/2拍就执行两次延时程序,所以只要求出1/4延时时间,其余的节拍就是他的倍数。为方便记谱,将节拍数也进行编码,如下:
节拍 节拍编码(基本延时次数) 1/4 1 1/2 2 3/4 3 4/4 4
建立曲谱编码表,例如:
简谱编码:re,sao,mi,re,mi,sao,mi,re,dao,re,re,sao,re,mi,sao, mi,re,dao,l_la,dao,dao,mi,re,mi,l_sao,re,l_xi,l_la,l_sao,l_la,
dao,re,l_xi,l_la,l_sao,l_mi,l_sao,0xff
节拍编码:4,4,2,2,4,2,2,2,2,8,4,4,4,2,2,
2,2,2,2,8,4,4,2,2,4,2,2,2,2,4,
6,2,2,2,2,2,16
三、电路原理图:
四、系统功能简介:
1、此8051八音盒具有矩阵式键盘共十个按键,0~9按键用于选择歌曲,通过P2口与单片机相连。
2、LCD通过用于显示,显示当前正在播放的歌曲编号。P0口输出编号,P1.4、P1.5、P1.6用于控制LCD。
3、有中断按键,在单片机播放旋律时可以按中断0键实现歌曲暂停,再按中断1实现歌曲暂停后的播放。
4、LED灯连接在P1.7口,用LED灯闪烁指示单片机处于工作状态。
5、歌曲音调经P3.7口的喇叭播放出来。
五、程序框图:
六、程序清单:
#includereg52.h //包含51单片机寄存器定义的头文件
#include intrins.h //包含_nop_()函数定义的头文件
#includestdio.h
unsigned int C; //储存定时器的定时常数
显示全部