一、準備工作
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;進行免費獲取。
因爲小編自己能力水平有限,文中難免有錯誤或表達失誤的信息,還望廣大閱讀者留言批評指正,謝謝。