蜂鳴器的工作原理

電路原理圖使用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位、中4位和低4位中分別填入0、F和A就可以完成對占空比的設置了,設置占空比為1/2duty。

以后只需要打開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口驅動的蜂鳴器鳴叫時,只需要在進入TIMER0中斷的時候對該I/O口的電平進行翻轉一次,直到蜂鳴器不需要鳴叫的時候,將I/O口的電平設置為低電平即可。不鳴叫時將I/O口的輸出電平設置為低電平是為了防止漏電。

蜂鳴器報警器電路圖(一)

這是一個簡單的電路采用555定時器的蜂鳴器。該電路可激發水銀開關被觸發時,在任何所需的時間間隔的燈光,喇叭,或其他信號裝置。由于水銀開關電流處理能力沒有那么高,SCR是用來處理由555定時器電路的電流。選擇在最低的SCR額定電流為500mA,安全駕駛的555IC和繼電器。繼電器是不需要通過報警吸取的電流小于200mA時,在這種情況下,報警器可直接安裝更換繼電器線圈。