一、準備工作
1、KEIL C51編譯環境
2、CodeGen8 代碼生成器
3、MC96F6332D 開發板
4、USB-OCD II仿真器
二、內部定時器PWM代碼生成
1、在CodeGen8 代碼生成器的外設窗口中選擇內部RC時鐘作爲時鐘源,設置時鐘源的頻率爲8MHz;配置內部Timer1的定時器輸出引腳P12的功能爲T1o,如下圖中①所示的GPIO配置;配置Timer1爲T1o模式,頻率爲1KH;定時器下佔空比默認爲50%且不可更改;如下圖②所示;配置後Timer1的代碼自動生成如下圖③所示;
2、點擊CodeGen8 中的C 圖標,自動打開KEIL C51軟件;
3、編譯工程,結果如下所示:
4、關於TIMER1中Timer工作流程簡介:
簡單可以理解爲三部分:①時鐘的選擇和配置,②計數器的數據設置,③定時器信號輸出(包括GPIO特定引腳的配置)
5、Timer1寄存器簡單介紹:
1)、數據寄存器:
定時器模式下T1ADRH和T1ADRL用來設置定時器的週期;
2)、控制寄存器描述:
Timer1定時器輸出頻率頻率爲:f = fx /(T1ADRH/T1ADRL)= 8000000/(7999+1)= 1000.0000Hz;
6、點擊編譯器的下載按鈕,將剛剛編譯好的代碼下載到MCU中進行仿真調試;連接P12引腳到示波器端口,可以看到定時器1輸出PWM波形如下所示:
在串口輸出窗口可以看到如下信息:
備註:注意單片機內部時鐘的偏差問題!
三、實驗現象(具體內容可以參考工程中的Readme.txt文件)
1、MCU主頻選擇爲內部8MHz;
2、Timer1定時器輸出頻率頻率爲:f = fx /(T1ADRH/T1ADRL)= 8000000/(7999+1)= 1000.0000Hz;
3、具體的代碼可以訪問鏈接:https://share.weiyun.com/H6etJF05;進行免費獲取。
因爲小編自己能力水平有限,文中難免有錯誤或表達失誤的信息,還望廣大閱讀者留言批評指正,謝謝。