蜂鸣器的工作原理

        电路原理图使用SH69P43为控制芯片,使用4MHz晶振作为主振荡器。

        PORTC.3/T0作为I/O口通过三极管Q2来驱动蜂鸣器LS1,而PORTC.2/PWM0则作为PWM输出口通过三极管Q1来驱动蜂鸣器LS2。另外在PORTA.3和PORTA.2分别接了两个按键,一个是PWM按键,是用来控制PWM输出口驱动蜂鸣器使用的;另一个是PORT按键,是用来控制I/O口驱动蜂鸣器使用的。连接按键的I/O口开内部上拉电阻。

图片

        先分析一下蜂鸣器。所使用的蜂鸣器的工作频率是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的时钟设置为4tosc,这样一个PWM的时钟周期就是1μs了,由此可以算出500μs对应的计数值为500μs/1μs=(500)10=(1F4)16,即分别在周期寄存器的高2位、中4位和低4位三个寄存器中填入1、F和4,就完成了对输出周期的设置。再来设置占空比寄存器,在PWM输出中占空比的实现是

        通过设定一个周期内电平的宽度来实现的。当输出模式选择为普通模式时,占空比寄存器是用来设置高电平的宽度。250μs的宽度计数值为250μs/1μs=(250)10=(0FA)16。只需要在占空比寄存器的高2位、中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木辛厂小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值