77范文网 - 专业文章范例文档资料分享平台

基于单片机的电子音乐门铃的设计(8)

来源:网络收集 时间:2019-01-07 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

基于单片机的电子音乐门铃设计

0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFF}; //超高音 1234567 // 频率-半周期数据表 低八位 unsigned char code FREQL[]={

0x42, 0xC1, 0x17, 0xB6, 0xD0, 0xD1, 0xB6, //低音1234567 0x21, 0xE1, 0x8C, 0xD8, 0x68, 0xE9, 0x5B, 0x8F, //1,2,3,4,5,6,7,i 0xEE, 0x44, 0x6B, 0xB4, 0xF4, 0x2D, //高音 234567 0x47, 0x77, 0xA2, 0xB6, 0xDA, 0xFA, 0x16}; //超高音 1234567 void main(void) {

TMOD=0x11; //T0 T1 均在工作方式1 ET0=1; //T0开中断 EA=1; //CPU开中断 while(1) {

music_play(); //根据当前状态播放相应歌曲的某个音符 if(!pause) {

delayms(5); if(!pause) {

if(music_num==0) //music_num=0只有在刚开机,且未按下暂停键时存在,

//暂停键处理

表示刚开机时的状态,按下后从第一首开始播放

{ } else { }

while(!pause) //若按着暂停键不放手时的处理 {

if(play_enable==0){}

//如果是暂停,则显示时间不变//(暂停时

play_enable=~play_enable; speaker=1;

music_num=1; //歌曲序号置1 num=0; //从头播放 play_enable=1;

//允许播放

play_enable==0)

29

基于单片机的电子音乐门铃设计

}

}

}//暂停键处理结束

}//while结束 }

void delayms(unsigned int t) //MS延时子程序 { }

void delay(unsigned char t) //延时子函数,控制发音的时间长度,每个节拍0.4S {

unsigned char t1; unsigned long t2;

for(t1=0;t1

for(t2=0;t2<8000;t2++) //延时期间, 可进入T0中断去发音 unsigned int i,j; for(i=0;i

for(j=0;j<123;j++);

}

}

TR0=0; //关闭T0, 停止发音

void timer0(void) interrupt 1 //T0中断程序,控制发音的音调 { }

void song(void) //演奏一个音符 { }

////////////////////////////////////////////////////////////////////////////////////

30

speaker=!speaker;//输出方波, 发音

TH0=timer0h; //下次的中断时间,这个时间控制音调高低 TL0=timer0l;

TH0=timer0h; //控制音调 TL0=timer0l; TR0=1;

//启动T0, 由T0输出方波发音

delay(time); //每个音符的演奏时间

基于单片机的电子音乐门铃设计

void music_play(void)//播放相应歌曲的某个音符 {

if((music_num==1)&&(play_enable==1)) {

fre=song1[num]+7*song1[num+1]-1;//第i个是音符,第i+1个是第几个八度 timer0l=FREQL[fre];

time=song1[num+2]; //读出时间长度数值 num+=3; if(fre==-1) { }

song(); //发出一个音符

num=0; //下一首从头播放 music_num=2; play_enable=0;

//判断歌曲的结束位,结束后转到下一首

}

if((music_num==2)&&(play_enable==1)) {

fre=song2[num]+7*song2[num+1]-1; timer0h=FREQH[fre]; timer0l=FREQL[fre]; time=song2[num+2]; num+=3; if(fre==-1) { } song();

play_enable=0;

} {

if((music_num==3)&&(play_enable==1)) fre=song3[num]+7*song3[num+1]-1; timer0h=FREQH[fre]; timer0l=FREQL[fre]; time=song3[num+2]; num+=3; if(fre==-1) {

31

基于单片机的电子音乐门铃设计

{ }

}

num=0; music_num=4; play_enable=0;

song();

if((music_num==4)&&(play_enable==1))

fre=song4[num]+7*song4[num+1]-1; timer0h=FREQH[fre]; num+=3; if(fre==-1) { } song();

num=0; music_num=5; play_enable=0;

if((music_num==5)&&(play_enable==1)) {

fre=song5[num]+7*song5[num+1]-1; timer0h=FREQH[fre]; timer0l=FREQL[fre]; time=song5[num+2]; num+=3; if(fre==-1) { } song();

num=0; music_num=1; play_enable=0;

}

}

32

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于单片机的电子音乐门铃的设计(8)在线全文阅读。

基于单片机的电子音乐门铃的设计(8).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/407412.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: