搜索
bottom↓
回复: 6

请教m48驱动蜂鸣器的问题

[复制链接]

出0入0汤圆

发表于 2014-2-5 10:16:54 | 显示全部楼层 |阅读模式
电路图如图:现在要求是:当检测到故障信号(低电平有效),蜂鸣器响,故障信号为高电平,蜂鸣器不响。当蜂鸣器响时,按一次键,蜂鸣器不响。这个都可以做到。
if((故障 == 0)&& (按键没按标志位))
{
    蜂鸣器响;
}
else
{
   蜂鸣器不响;
}
if(按键按下)
delay(10);
if(按键按下)
{
    按键按下标志位;//可以解除声音
}

现在的问题是:按键按下,声音可以消除,但是下一次故障来的时候,(故障输入信号低-----高--------低),蜂鸣器就不响了。这个如何解决,要求是会响。也就是按键单次有效?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2014-2-5 13:03:41 | 显示全部楼层
建议驱动蜂鸣器改用共集电极放大电路,不然U11电流不够

出0入0汤圆

 楼主| 发表于 2014-2-5 13:22:21 | 显示全部楼层
多谢回复!现在主要是软件问题!

出0入0汤圆

发表于 2014-2-5 23:27:57 | 显示全部楼层
jhjkdz 发表于 2014-2-5 13:22
多谢回复!现在主要是软件问题!

改为边沿检测可能好点
if(故障从1变为0)
        蜂鸣器响;
if(按键从0变为1)
        蜂鸣器不想;       
这样好处是故障只要发生了,不按键蜂鸣器会一直想。但是要加延时去抖,你的延时去抖有问题,第二个if应该改为else if 。

出0入0汤圆

发表于 2014-2-5 23:41:20 | 显示全部楼层
故障信号消除时,清除按键标志就行了

出0入0汤圆

 楼主| 发表于 2014-2-6 10:04:47 | 显示全部楼层
wrmike 发表于 2014-2-5 23:27
改为边沿检测可能好点
if(故障从1变为0)
        蜂鸣器响;

多谢!我试试

出0入0汤圆

 楼主| 发表于 2014-2-6 10:05:12 | 显示全部楼层
fzkqi 发表于 2014-2-5 23:41
故障信号消除时,清除按键标志就行了

多谢!我试试
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 17:21

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表