『壹』 蜂鳴器每一秒響一次,響十秒後關閉,怎麼做,c語言
每隔一秒響一次, 響多久沒有說
一般都是響一秒 停一秒。 這樣就是20秒後關閉了。
可以寫作
intcnt=0;
while(cnt++<10)
{
BEEP=1;
delay_ms(1000);
BEEP=0;
delay_ms(1000);
}
『貳』 如何用c語言實現單片機蜂鳴器播放的音樂的暫停 就是通過按鍵來實現
if(key==0)
{
//關閉定時器的代碼,可以停止音樂
}
『叄』 用C語言編寫,兩個按鈕控制蜂鳴器工作。按鈕1按下,蜂鳴器以500Hz的頻率工作。按鈕2按下,蜂鳴器停止工作
#include"reg52.h"
#defineucharunsignedchar
#defineuintunsignedint
sbitBELL=P1^0;//定義蜂鳴器
sbitkey1=P1^1;//定義按鍵
sbitkey2=P1^2;//定義按鍵
uintnum;
/*1ms廷時*/
voiddelay_ms(uintz)
{
uinti,j;
for(i=0;i<z;i++)
for(j=0;j<110;j++);
}
/*定時器初始化*/
voidinit_timer0()
{
TMOD=0x01;
TH0=(65535-2000)/256;
TL0=(65535-2000)%256;
EA=0;
ET0=1;
TR0=1;
}
voidmain()
{
BELL=0;
init_timer0();
while(1)
{
if(key1==0)
{
delay_ms(10);//延時消抖
if(key1==0) //再次判斷按鍵是否真的被按下
{
while(key1==0);//等待釋放按鍵
EA=1; //開啟總中斷
}
}
if(key2==0)
{
delay_ms(10);//延時消抖
if(key2==0) //再次判斷按鍵是否真的被按下
{
while(key2==0); //等待釋放按鍵
EA=0; //關閉總中斷
BELL=0; //關閉蜂鳴器
}
}
}
}
voidtimer0()interrupt1
{
TH0=(65535-2000)/256;
TL0=(65535-2000)%256;//中斷計時2ms(500Hz),之所以用中斷是因為定時比較准確想改延時就把裡面的2000改掉,這個數除以1000得的數就是多少毫秒
num++;
if(num==1) //讓蜂鳴器工以500Hz頻率工作
{
num=0;
BELL=~BELL;
}
}