?? 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 + -