求助 51单片机 怎么让蜂鸣器每隔一秒响两次

已举报 回答 关注
求助 51单片机 怎么让蜂鸣器每隔一秒响两次
问在线客服
扫码问在线客服
  • 回答数

    7

  • 浏览数

    5,055

7个回答 默认排序
  • 默认排序
  • 按时间排序

已采纳
蜂鸣器分有源和无源,有源的通电就响,无源的要给一个频率信号。定时器设个一秒的延时不就行了
取消 评论
#includereg51.h
#define uchar unsigned char
uchar cnt;
sbit fmq=P1^0;
sbit key=P1^4;
void t0isr() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
cnt++;
if(cnt20)
{
TR0=0;
cnt=0;
fmq=1;
}
}
main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
ET0=1;
EA=1;
while(1)
{
if(key==0)
{
while(key==0);
TR0=1;
fmq=0;
}
}
}
取消 评论
你好!是仿真出效果?还是有实物?
取消 评论
你的肯定一直响,死循环了,这个最好用定时器,时间到的时候翻转一次P37就行了
取消 评论
如果是有源蜂鸣器的话很简单,只需要按照对应的电路给出电平(比如PNP驱动的只要给出低电平即可),无源的麻烦一点,需要给一定频率的方波才能发声,增强型51可以直接使用PWM,普通51可以使用定时器模拟PWM进行驱动,网上的例子很多,多看看就行了
取消 评论
它的蜂鸣器无源的好像需要脉冲信号,不能一直接高电平。得让他高低变
void beep();
{
beep=0;
delay(1);
beep=1;
delay(1);
}
取消 评论
ZOL问答 > 求助 51单片机 怎么让蜂鸣器每隔一秒响两次

举报

感谢您为社区的和谐贡献力量请选择举报类型

举报成功

经过核实后将会做出处理
感谢您为社区和谐做出贡献

扫码参与新品0元试用
晒单、顶楼豪礼等你拿

扫一扫,关注我们
提示

确定要取消此次报名,退出该活动?