糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > html点击播放生日快乐歌曲大全 播放生日快乐歌曲.doc

html点击播放生日快乐歌曲大全 播放生日快乐歌曲.doc

时间:2020-01-01 11:02:15

相关推荐

html点击播放生日快乐歌曲大全 播放生日快乐歌曲.doc

播放生日快乐歌曲

安徽冶金科技职业学院

实 训 报 告

课题名称 播放生日快乐歌

系 部

班 级

学生姓名

指导教师

年 月 日

播放生日快乐歌的原理:

通过80C51乐曲播放电路中,P1.7接发声器SOND,P1.0接启动键,按一次K0就播放一遍生日快乐歌;控制输出方波形频率用定时/计数器比延时程序更加准确,根据C音调、半周期和fosc=12MHz条件下选播放乐曲除了控制频率还有控制时间的问题用26]和生日快乐歌曲音符节拍长度数组L[26],两数组序号具有对应关系。

例如200ms;遇休止符0;停止发音频,但仍当做一个音符,按其节拍长短控制定时时间。当一个音符播放结束,T1停,转入下一个音符,中间间隔延时10ms。

设计算3CB0H

因此3c,TL1=0xb0

生日快乐歌曲编程:

#include //包含访问sfr库函数regsbit K0=P1^0; //定义启动键

sbit SOND=P1^7; //定义发声器unsigned char i,j; //定义字符型循环变量iunsigned char code th[22]={ //定义音符频率定时数组高

0,196,202,208,211,216,220,224,226,229,232,233,236,238,240,241,242,244,244,246,267,248};

unsigned char code tl[22]={ //定义音符频率定时数组低

0,12,27,21,7,4,16,12,4,12,9,20,2,8,6,2,22,5,26,1,4,3};

unsigned char s[26]={ //定义生日快乐歌曲音符序数数组

12,12,13,12,15,14,12,12,13,12,16,15,12,12,19,17,15,14,13,0,18,18,17,15,16,15};

unsigned char L[26]={ //定义生日快乐歌曲音符节拍长度数组4,4,8,8,8,16,4,4,8,8,8,16,4,4,8,8,8,8,16,8,4,4,8,8,8,16};

void main(){ //主函数

unsigned int t; //定义循环变量t

TMOD=0x10; //T0定时器方式1定时器方式1

TH1=0x3c;TL1=0xb0; //置1初值0ms

IP=0x02;IE=0x8a; //置0为高优先级中断,0、1开中断

while(1){ //无限循环

while(K0==1); //等待按0按下while(K0==0); //等待按0释放for(i=0;i<26;i++){ //歌曲音符节拍循环

if(s[i]==0) {SOND=0; //若歌曲音符序数为

TR0=0;} //T0停止运行

else {TH0=th[s[i]]; //否则,置0初值TL0=tl[s[i]]; //置0初值低

TR0=1;} //T0运行

j=L[i];TR1=1; //置0ms计数器初值,1运行

while(TR1==1); //等待1停止运行

TR0=0;SOND=0; //T0停止运行,停止发声

for(t=0;t<2000;t++);}}} //音符间隔延时为0ms

void t0() interrupt 1 { //T0中断函数

SOND=~SOND; //输出取反(产音频方波)TH0=th[s[i]]; TL0=tl[s[i]];} //重置0初

如果觉得《html点击播放生日快乐歌曲大全 播放生日快乐歌曲.doc》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。