[匠人手记] 蜂呜器驱动程序应该放在那?匠人望请教

[复制链接]
 楼主| maiweitang 发表于 2008-10-29 22:26 | 显示全部楼层 |阅读模式
匠人望请教我一下<br />问题:程序系统中,蜂呜器驱动程序应该放在那?<br />写程序时我将LED数码管扫描放在中断程序中,而蜂呜器驱动程序放到main()中出现了发声变质,如果将放到中断程序中,LED数码管就出现发声时闪动;我是用C的,请问匠人,我应该如何解决这问题
程序匠人 发表于 2008-10-29 22:41 | 显示全部楼层

写程序时我将LED数码管扫描放在中断程序中,而蜂呜器驱动程序放到main()中出现了发声变质,<br />——蜂鸣器是有源还是无源的?<br /><br />如果将放到中断程序中,LED数码管就出现发声时闪动;<br />——蜂鸣器与LED是共用电源吗?有没有电解电容稳压?另外,程序中有没有相互干扰的可能?<br />
 楼主| maiweitang 发表于 2008-10-29 22:57 | 显示全部楼层

回匠人

/********************************************/<br />写程序时我将LED数码管扫描放在中断程序中,而蜂呜器驱动程序放到main()中出现了发声变质,<br />——蜂鸣器是有源还是无源的?<br /><br />如果将放到中断程序中,LED数码管就出现发声时闪动;<br />——蜂鸣器与LED是共用电源吗?有没有电解电容稳压?另外,程序中有没有相互干扰的可能?&nbsp;<br />/******************************************/<br />回复:<br />我用的蜂鸣器是无源的,蜂呜器与LED是共用电源的,因为频率高通去蜂呜器中起电感阻抗,刚才按你所说的放了电容上去也一样,我是用FOR延时产生驱动频率的,这个是不是或都是你所说的相互干扰了,应该如何解决?
程序匠人 发表于 2008-10-30 09:28 | 显示全部楼层

无源蜂鸣器一般的驱动频率=2~4khz,一般建议开一个定时中断,中断频率与驱动频率相一致。每次进中断后判一下“鸣叫使能标志”,如果标志=1,则把蜂鸣器输出口取反;如果标志=0,则把蜂鸣器输出口=0(关闭蜂鸣器)。<br /><br />“鸣叫使能标志”需要自己设立,是一个位变量,就是控制该蜂鸣器的一个开关。在你程序中的其它地方,设置或清除该标志即可。<br /><br />如果有必要,还可以设立一个“鸣叫时间”变量。用于控制鸣叫时间长度。<br /><br />这样,蜂鸣器的控制就可以独立于其它程序了。<br /><br />至于你说的“用FOR延时产生驱动频率”,势必会与其它程序抢夺系统控制权。如果你的显示扫描时间也是用指令延时方法实现的话,二者将发生竞争。此乃下策。
 楼主| maiweitang 发表于 2008-10-30 14:32 | 显示全部楼层

谢谢

好,我试试,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

6

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部