單片機驅動他激蜂鳴器有兩種方式:壹種是通過PWM輸出口直接驅動,另壹種是利用I/O定時翻轉電平產生驅動波形驅動蜂鳴器。
PWM輸出口的直接驅動是利用PWM輸出口本身輸出壹定的方波直接驅動蜂鳴器。單片機的軟件設置中有幾個系統寄存器用來設置PWM口的輸出,比如占空比、周期等。設置這些寄存器產生壹個頻率滿足蜂鳴器要求的波形後,只要PWM輸出打開,PWM輸出口就可以輸出壹個這個頻率的方波,此時蜂鳴器就可以被這個波形驅動了。比如驅動壹個頻率為2000Hz的蜂鳴器,我們可以知道周期為500μs,那麽我們只需要將PWM周期設置為500μs,占空比電平設置為250μs,就可以產生壹個頻率為2000Hz的方波,然後通過這個方波用三極管驅動蜂鳴器。
不過用I/O定時翻轉電平來產生驅動波形會有點麻煩。必須使用定時器進行定時,通過定時產生符合蜂鳴器要求的波形來翻轉電平,用這個波形來驅動蜂鳴器。比如以2500Hz驅動蜂鳴器,可以知道周期是400μs,這樣每隔200μs驅動壹次蜂鳴器的I/O口就可以產生壹個頻率為2500Hz,占空比為1/2duty的方波,然後通過晶體管放大就可以驅動蜂鳴器。