嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 6 元微信扫码支付:6 元
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
本设计是基于AT89C51单片机的可控音乐门铃程序设计。该音乐门铃是一个依据单片机技术原理,通过PROTEUS仿真软件对硬件电路进行仿真制作以及利用KEIL软件对音乐门铃源程序进行C语言编译,而设计制作出的一个多功能音乐门铃。
void main()
{
P0=0X3F;
P2=0X3F;
EA=1;//开总中断
EX0=1;//开外部中断0
IT0=1;//外部中断0下降沿触发方式
EX1=1;//开外部中断1
IT1=1;//外部中断1下降沿触发方式
TMOD=0x11;//定时器0工作在方式1
ET0=1;ET1=1;
TR0=0;TR1=0;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
while(1)
{
if(key2==0){
song();
Delay1(1000);
}
}
}
void int0() interrupt 0 //功能:用来暂停并取消音乐
{
EA=0;//关总中断
Delay1(1);//去抖
if(key1==0)
{
count=0;//不让蜂鸣器唱歌
TR0=0;
num=0;
TR1=0;
P0=0X3F;
P2=0X3F;
}
EA=1;//开总中断
}
void int1() interrupt 2 //门铃按键:每按一次会自动切换音乐,计时也会从新开始
{
EA=0;//关总中断
Delay1(1);//去抖
if(key2==0)
{
TR0=1;
TR1=1;
i=0;//从头开始唱
count ;
if(count==5)
count=1;
}
EA=1;//开总中断
}
void timer0() interrupt 1 //用于产生各种音调
{
TH0=timeh;
TL0=timel;
fm=~fm;
}
void timer1() interrupt 3
{
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
if( x==20)
{
x=0;
num;
P0=DSY_CODE[num/10];
P2=DSY_CODE[num%10];
if(num==59)
num=0;
}
}