中级会员
 
- 积分
- 254
- 金钱
- 254
- 注册时间
- 2018-9-23
- 在线时间
- 67 小时
|
10金钱
怎么用单片机控制一个无源蜂鸣器间断发声,例如1秒响一次。我先来说说我的思路,通过定时器0产生20KHZ的频率,
#include <reg52.h>
#include <intrins.h>
unsigned int cnt=0;
unsigned int sec=0;
sbit LED0=P1^5; //蜂鸣器
sbit LED1=P2^0; //led
unsigned int i=0;
void delay(unsigned int t);
void beep();
main()
{
LED0=1;
LED1=1;
TMOD=0x01;
TH0=0xb8 ; //20ms
TL0=0x00;
TR0=1;
EA=1;
ET0=1;
while(1)
{
if(sec>=1)
{
sec=0;
void beep();
}
else
LED1=0;
}
}
void interrupttimer0() interrupt 1
{
TR0=0;
TH0=0xb8 ; //20ms
TL0=0x00;
cnt++;
if(cnt>=50)
{
cnt=0;
sec++;
}
}
void delay(unsigned int t)
{
while(t--);
}
void beep()
{
LED0=0;
delay(10);
LED0=1;
delay(20);
}
|
|