于这里要介绍两种驱动方式的方法,所以在设计模块系统中将两种驱动方式做到一块,即程序里边不仅介绍了PWM 输出口驱动蜂鸣器的方法,还要介绍I/O 口驱动蜂鸣器的方法。所以,我们将设计如下的一个系统来说明单片机对蜂鸣器的驱动:系统有两个他激蜂鸣器,频率都为2000Hz,一个由I/O 口进行控制,另一个由PWM 输出口进行控制;系统还有两个按键,一个按键为PORT 按键,I/O 口控制的蜂鸣器不鸣叫时按一次按键I/O 口控制的蜂鸣器鸣叫,再按一次停止鸣叫,另一个按键为PWM 按键,PWM 口控制的蜂鸣器不鸣叫时按一次按键PWM输出口控制的蜂鸣器鸣叫,再按一次停止鸣叫。
蜂鸣器的正极性的一端联接到
5V
电源上面,
另一端联接到三极管的集电极,
三极管的基级由单片机的
P1.5
管脚通过一个与非门来控制,
当
P1.5
管脚为低时,
与非门输出高电平,三极管导通,这样蜂鸣器的电流形成回路,发出声音。当
P1.5
管脚为高时,与非门输出低电平,三极管截止,蜂鸣器不发出声音。在这里
与非门是作为非门来用的,
这里采用一个非门的作用是为了防止系统上电时峰鸣
器发出声音,以为系统复位以后,
I/O
口输出的是高电平。
电路原理图蜂鸣器如图1-3 所示,使用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 口开内部上拉电阻。