ABOV單片機蜂鳴器BEEP的代碼實現講解及示例代碼-[MC96F6332D]

一、準備工作

1、KEIL C51編譯環境

2、CodeGen8 代碼生成器

3、MC96F6332D 開發板

4、USB-OCD II仿真器

二、Buzzer代碼生成

1、在CodeGen8 代碼生成器的外設窗口中選擇內部RC時鐘作爲時鐘源,設置時鐘源的頻率爲8MHz;GPIO的P13引腳設置爲蜂鳴器的輸出引腳,如下圖①所示,蜂鳴器的頻率選擇125kHz如下圖②所示,蜂鳴器初始化的代碼如下圖③所示;

特別說明:根據用戶手冊中給出的數據對相應的寄存器進行初始化時,同樣可以產生125kHz的頻率;

頻率計算公式爲:fBUZ(Hz)= fx/(2*Prescaler*(BUZDR+1))

2、點擊CodeGen8 中的C 圖標,自動打開KEIL C51軟件;

3、在系統初始化完成後增加蜂鳴器開啓的代碼,即可實現頻率的固定輸出;代碼如下:

BUZ_OnOff(1);			//BUZ=125kHz

4、編譯工程,結果如下所示:

5、關於Buzzer的工作原理:

1)、主頻經過分頻後,通過與BUZDR寄存器的數據比較,然後再通過GPIO口進行信號的輸出。

2)、BUZCR寄存器說明

6、點擊編譯器的下載按鈕,將剛剛編譯好的代碼下載到MCU中進行仿真調試。

7、連接P13接口到示波器,如下圖所示:

三、實驗現象(具體內容可以參考工程中的Readme.txt文件)

1、MCU主頻選擇爲內部8MHz;

2、Buzzer的時鐘週期計算公式爲:fBUZ(Hz)= fx/2*Prescaler*(BUZDR+1)=8MHz/2*32*(0+1)=125kHz;

3、具體的代碼可以訪問鏈接:https://share.weiyun.com/56QXQ4v;進行免費獲取。

 


因爲小編自己能力水平有限,文中難免有錯誤或表達失誤的信息,還望廣大閱讀者留言批評指正,謝謝。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章