今天小编mail为大家分享的生活小常识,希望能够帮助到大家!
蜂鸣器电路原理图单片机,蜂鸣器电路原理图这个很多人还不知道,现在让我们一起来看看吧!
1、如图1-3 所示,使用SH69P43 为控制芯片,使用4MHz 晶振作为主振荡器。
2、PORTC.3/T0 作为I/O 口通过三极管Q2 来驱动蜂鸣器LS1,而PORTC.2/PWM0 则作为PWM 输出口通过三极管Q1 来驱动蜂鸣器LS2。
3、另外在PORTA.3 和PORTA.2 分别接了两个按键,一个是PWM 按键,是用来控制PWM 输出口驱动蜂鸣器使用的;另一个是PORT 按键,是用来控制I/O 口驱动蜂鸣器使用的。
4、连接按键的I/O 口开内部上拉电阻。
5、软件设计方法先分析一下蜂鸣器。
6、所使用的蜂鸣器的工作频率是2000Hz,也就是说蜂鸣器的驱动信号波形周期是500μs,由于是1/2duty 的信号,所以一个周期内的高电平和低电平的时间宽度都为250μs。
7、软件设计上,我们将根据两种驱动方式来进行说明。
8、a) PWM 输出口直接驱动蜂鸣器方式由于PWM 只控制固定频率的蜂鸣器,所以可以在程序的系统初始化时就对PWM 的输出波形进行设置。
9、首先根据SH69P43 的PWM 输出的周期宽度是10 位数据来选择PWM 时钟。
10、系统使用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 是不能实现蜂鸣器所要的驱动波形的。
11、这里我们将PWM 的时钟设置为4tosc,这样一个PWM 的时钟周期就是1μs 了,由此可以算出500μs 对应的计数值为500μs/1μs=(500)10=(1F4)16,即分别在周期寄存器的高2 位、中4 位和低4 位三个寄存器中填入F 和4,就完成了对输出周期的设置。
12、再来设置占空比寄存器,在PWM 输出中占空比的实现是通过设定一个周期内电平的宽度来实现的。
13、当输出模式选择为普通模式时,占空比寄存器是用来设置高电平的宽度。
14、250μs 的宽度计数值为250μs/1μs=(250)10=(0FA)16。
15、只需要在占空比寄存器的高2 位、中4 位和低4 位中分别填入0、F 和A 就可以完成对占空比的设置了,设置占空比为1/2duty。
16、以后只需要打开PWM 输出,PWM 输出口自然就能输出频率为2000Hz、占空比为1/2duty 的方波。
17、b) I/O 口定时翻转电平驱动蜂鸣器方式使用I/O 口定时翻转电平驱动蜂鸣器方式的设置比较简单,只需要对波形分析一下。
18、由于驱动的信号刚好为周期500μs,占空比为1/2duty 的方波,只需要每250μs 进行一次电平翻转,就可以得到驱动蜂鸣器的方波信号。
19、在程序上,可以使用TIMER0 来定时,将TIMER0 的预分频设置为/1,选择TIMER0 的始终为系统时钟(主振荡器时钟/4),在TIMER0 的载入/计数寄存器的高4 位和低4 位分别写入00H 和06H,就能将TIMER0 的中断设置为250μs。
20、当需要I/O 口驱动的蜂鸣器鸣叫时,只需要在进入TIMER0 中断的时候对该I/O 口的电平进行翻转一次,直到蜂鸣器不需要鸣叫的时候,将I/O 口的电平设置为低电平即可。
21、不鸣叫时将I/O 口的输出电平设置为低电平是为了防止漏电。
Luochuanren.Com洛川人-综合信息门户网站,涵盖生活常识、美食、创业、体育、旅游、家居、汽车、财经、互联网、科技、房产、教育等资讯。
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!
工作时间:8:00-18:00
客服电话
17898872021
电子邮件
773537036@qq.com
扫码二维码
获取最新动态