- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
设计目的
利用8052单片机结合内部定时器设计一个八音盒,按下单键可以演奏预先设置的歌曲旋律。
设计要求
其基本功能为:1,使用LED显示器来显示目前演奏的歌曲编号;2,具有8个按键操作来选择演奏哪一首歌曲;3,内建8首歌曲旋律,按下单键可以演奏歌曲。
设计器材
T89C52单片机、晶振、八个按键、二位一体共阳极数码管、电阻电容若干、导线。
设计方案及分析
设计思路:
选择8052单片机,通过T0定时中断,并配合P2.0引脚输出音频频率。
P2.0引脚输出接蜂鸣器。
通过P0口接LED。
P1口接键盘,输入歌曲号。
音符产生方法:
不同的音调有不同的频率。频率不同,音调也就不同。
利用定时器,使其工作在模式1,定时中断,然后控制P2.0引脚的输出每次取反,就可以在P2.0的引脚输出相应的方波频率。改变计数初值,就改变了频率。定时器的定时时间等于半个周期,定时时间到就输出脉冲取反,重复此过程,就可在P2.0引脚得到一音频的脉冲。
如:中音1的频率=523HZ,周期T=1/523=1912us;
定时器的定时时间为:T/2=1912/2us=956us;
计算得TH0,TL0的计数初值THTL=64580
下面是个音符计数初值
音符 THTL 音符编码 低音5 0F66FH 1 低音6 0F724H 2 低音7 0F81BH 3 中音1 0F88FH 4 中音2 0F95EH 5 中音3 0FA17H 6 中音4 0FA6BH 7 中音5 0FB08H 8 中音6 0FB92H 9 中音7 0FC0EH A 高音1 0FC4BH B 高音2 0FCAFH C 高音3 0FD0CH D 高音4 0FD36H E 高音5 0FD84H F 节拍产生方法:
音乐中的节拍用延时时间产生。假设1/4拍执行一次延时程序,这1/2拍就执行两次延时程序,所以只要求出1/4延时时间,其余的节拍就是他的倍数。为方便记谱,将节拍数也进行编码,如下:
节拍编码 节拍 1 1/4 2 1/2 3 3/4 4 1
建立曲谱编码表:
编谱用8位编码,高4位代表音符,低4位代表节拍。如5 6中音5,中音6,都是1/2拍,则编码为:82H 92H
程序清单:
#include reg52.h
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
sbit SPEAK = P2^0;//接蜂鸣器管脚
uchar th0_f;
uchar tl0_f;
uchar code SEG[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67};
uchar code jie8[8]={12,14,16,17,19,21,23,24};
/**************************中断函数*******************************************/
timer0() interrupt 1
{
TL0=tl0_f;TH0=th0_f;
SPEAK =~SPEAK; //取反音乐输出IO
}
/********************T0的值,及输出频率对照表***********************************/
uchar code freq[36*2]={
0xA9,0xEF,//00220HZ ,1 //0
0x93,0xF0,//00233HZ ,1#
0x73,0xF1,//00247HZ ,2
0x49,0xF2,//00262HZ ,2#
0x07,0xF3,//00277HZ ,3
0xC8,0xF3,//00294HZ ,4
0x73,0xF4,//00311HZ ,4#
0x1E,0xF5,//00330HZ ,5
0xB6,0xF5,//00349HZ ,5#
0x4C,0xF6,//00370HZ ,6
0xD7,0xF6,//00392HZ ,6#
0x5A,0xF7,//00415HZ ,7
0xD8,0xF7,//00440HZ 1 //12
0x4D,0xF8,//00466HZ 1# //13
0xBD,0xF8,//00494HZ 2 //14
0x24,0xF9,//00523HZ 2# //15
0x87,0xF9,//00554HZ 3 //16
文档评论(0)