请教高手写程序问题

[复制链接]
2433|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 | 显示全部楼层

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

比如一定频率的方波,这个时候你在等待电平变化可以用定时中断,在等待的时间里可以去处理显示。
高建明 发表于 2007-3-6 12:43 | 显示全部楼层

合理利用定时器

 楼主| wsl_5631 发表于 2007-3-7 11:27 | 显示全部楼层

谢谢大家

还是在定时中断中取反比较好,只不过进中断频繁些,另外程序也麻烦。
ayb_ice 发表于 2007-3-8 09:27 | 显示全部楼层

随便说说

  支持5楼
turmary 发表于 2007-3-8 15:19 | 显示全部楼层

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

如P0.0-P0.6用于数码管的A-G,
P0.7用于SPEAKER.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

43

主题

335

帖子

2

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