打印

请教高手写程序问题

[复制链接]
1720|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wsl_5631|  楼主 | 2007-3-5 16:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我一直都找不到好的方法来解决这样一个问题:要驱动数码管,同时要驱动交流蜂鸣器,要演奏“DO,RE,MI”之类的声音。问题是在蜂鸣器演奏时,去扫描数码管,蜂鸣器中间有停断,造成嘶哑。大家有好的方法解决吗?

相关帖子

沙发
sharpxcb| | 2007-3-5 20:46 | 只看该作者

只是观念上的问题

    其实要是看你的蜂鸣器是用什么方式来驱动,我的思路是你的主程式循环要够快,若适当调整驱动蜂鸣器的每一个音节的频率持续时间是主程式循环的整数倍,对蜂鸣器频率发生的IO采用计时器的Timer Out方式变换不同的频率值,对LED数码管的扫描间隔时间不要超过人眼的感知频率(不存着闪烁),我想这两者处理起来,并不矛盾!

使用特权

评论回复
板凳
wsl_5631|  楼主 | 2007-3-6 08:42 | 只看该作者

主程序循环时间不定

谢谢楼上!
主程序查询事件的发生,调用相应的程序处理,循环的时间是不定的.

使用特权

评论回复
地板
gezhi| | 2007-3-6 12:28 | 只看该作者

可以看下你的蜂鸣器需要怎样的输出,

比如一定频率的方波,这个时候你在等待电平变化可以用定时中断,在等待的时间里可以去处理显示。

使用特权

评论回复
5
高建明| | 2007-3-6 12:43 | 只看该作者

合理利用定时器

使用特权

评论回复
6
wsl_5631|  楼主 | 2007-3-7 11:27 | 只看该作者

谢谢大家

还是在定时中断中取反比较好,只不过进中断频繁些,另外程序也麻烦。

使用特权

评论回复
7
ayb_ice| | 2007-3-8 09:27 | 只看该作者

随便说说

  支持5楼

使用特权

评论回复
8
turmary| | 2007-3-8 15:19 | 只看该作者

定时器分开, 端口也分开.

如P0.0-P0.6用于数码管的A-G,
P0.7用于SPEAKER.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

43

主题

335

帖子

2

粉丝