蜂鸣器维修与保养

   2020-07-03 马可波罗sxxjymy90
核心提示:发表于: 2020年07月03日 23时06分54秒
相关推荐:
蜂鸣器的工作频率是2000Hz,也就是说蜂鸣器的驱动信号波形周期是500μs,由于是1/2duty 的信号,所以一个周期内的高电平和低电平的时间宽度都为250μs。软件设计上,我们将根据两种驱动方式来进行说明。
  a) PWM 输出口直接驱动蜂鸣器方式
  由于PWM 只控制固定频率的蜂鸣器,所以可以在程序的系统初始化时就对PWM 的输出波形进行设置。
  首先根据SH69P43 的PWM 输出的周期宽度是10 位数据来选择PWM 时钟。系统使用4MHz 的晶振作为主振荡器,一个tosc 的时间就是0.25μs,若是将PWM 的时钟设置为tosc 的话, 则蜂鸣器要求的波形周期500μs 的计数值为500μs/0.25μs=(2000)10=(7D0)16,7D0H 为11 位的数据,而SH69P43 的PWM输出周期宽度只是10 位数据,所以选择PWM 的时钟为tosc 是不能实现蜂鸣器所要的驱动波形的。
  以后只需要打开PWM 输出,PWM 输出口自然就能输出频率为2000Hz、占空比为1/2duty 的方波。
  b) I/O 口定时翻转电平驱动蜂鸣器方式
  使用I/O 口定时翻转电平驱动蜂鸣器方式的设置比较简单,只需要对波形分析一下。由于驱动的信号刚好为周期500μs,占空比为1/2duty 的方波,只需要每250μs 进行一次电平翻转,就可以得到驱动蜂鸣器的方波信号。在程序上,可以使用TIMER0 来定时,将TIMER0 的预分频设置为/1,选择TIMER0 的始终为系统时钟(主振荡器时钟/4),在TIMER0 的载入/计数寄存器的高4 位和低4 位分别写入00H 和06H,就能将TIMER0 的中断设置为250μs。不鸣叫时将I/O 口的输出电平设置为低电平是为了防止漏电。
 
举报收藏 0打赏 0评论 0
 
更多>同类资讯
  • sxxjymy
    加关注0
  • 没有留下签名~~
推荐图文
推荐资讯
点击排行
网站首页  |  用户协议  |  关于我们  |  联系方式  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  浙ICP备16039256号-5  |  浙公网安备 33060302000814号