📄 119.c
字号:
/*
扫频声音程序(晶振11.0592Mhz)
frq=255;delay(10)时为消防车警报声
frq=255;delay(1)时为警车警报声
frq=110;频率增加时delay(5);减小时delay(2);为婴儿啼哭声!
*/
#include<reg52.h>
#include<intrins.h>
sbit SPK=P3^7;
sbit K1=P1^4;
unsigned char frq;
void delay(unsigned char ms)
{unsigned char i;
while(ms--)
{for(i=0;i<60;i++);
}
}
void delay1(unsigned char ms)
{unsigned char i;
while(ms--)
{for(i=0;i<15;i++);
}
}
main()
{unsigned char t1,t2,fh,fl,m,k=0;
m=0;
TMOD=0x01;
frq=0x00;
TH0=0x00;
TL0=0xFF;
TR0=1;
IE=0x82;
while(1)
{frq=0;
if(K1==0)
{delay(200);
if(K1==0)
m++;
}
if(m>6) m=0;
switch(m)
{case 0: fh=255;t1=20;t2=20;break;
case 1: fh=255;t1=1;t2=1; break;
case 2: fh=110;t1=8;t2=3;break;
case 3: fh=255;t1=1;t2=0;break;
case 4: fh=255;t1=0;t2=1;break;
case 5: fh=120;fl=0;t1=t2=8;break;
case 6: fh=255;t1=1;break;
}
while(m<5)
{if(frq==fh)
k=1;
if(frq==0)
{k=0;
}
if(k==0)
{frq++;
delay(t1);
}
if(k==1)
{frq--;
delay(t2);
}
if(K1==0)
break;
}
while(m==5)
{if(k<128)
frq=fh;
else
frq=fl;
delay(t1);
k++;
if(K1==0)
break;
}
while(m==6)
{k=6;
while(k>0)
{frq--;
delay1(2);
if(frq==0)
k--;
}
TR0=0;
delay(255);
delay(255);
TR0=1;
if(K1==0)
break;
}
}
}
void timer0() interrupt 1
{TH0=0xFE;
TL0=frq;
SPK=~SPK;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -