如何解决无缘蜂鸣器频率 被数码管刷新干扰

2019-07-15 12:21发布

本帖最后由 4147313 于 2016-12-12 15:47 编辑

功能:数码管时钟,整点报时。按键调整时间。

实现步骤:
1、动态刷新数码管,将DS1302寄存器中的值赋给刷新函数用来显示当前时间。
2、定时器0以10ms计时刷新数码管。
3、每小时的0分、0秒-2秒 无缘蜂鸣器响。(闹铃2秒钟)
4、通过按键调整DS1302的初始值,来更改当前时间(或闹钟时间)

遇到问题:
刷新数码管的定时器中断会影响无缘蜂鸣器的声音频率。
         



调试过程:
一:定时器0刷新数码管,主函数中判断时间,如果时间到就闹钟。
结果:蜂鸣器频率被数码管和按键扫描打乱。

二:另外加了一个定时器1,在main()函数中只做按键扫描,和判断当前时间是否等于闹钟时间。如果是定时器1打开。(TR1  = 1;)          否则关闭定时器1;并将定时器1的优先级高于定时器0 。
结果:发现声音频率还是会被10ms的刷新打断。

请高手点拨!!

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
8条回答
blust
2019-07-16 09:22
如果你只是想解决这个问题,从硬件入手会简单很多,比如换有源蜂鸣器,给它一个电平就会响,不用频率控制;比如用带锁存的芯片控制数码管,不用一直刷新,数码管会保持住,每秒去更新显示即可。如果是想学习单片机,还是推荐把问题原因找到,这样才能学到东西。

一周热门 更多>