基于PWM模式輸出的溫度傳感器的測溫系統
與其它單片機不同,PIC單片機的RB4-RB7端口具有輸入電平變化中斷功能,當RB4-RB7任意一個引腳上的輸入電平發生變化(由高變低或由低變高)時,都可以引起CPU中斷,執行中斷處理程序。因此,可以將TMP04的輸出信號輸入RB4,當輸入RB4的信號發生跳變時,利用RB4的電平變換中斷調用中斷處理程序分別對信號高低電平的脈寬進行測量,從而間接算出信號的占空比,最終得到TMP04輸出的溫度信息。程序流程圖如圖5所示。

3.3 由外部中斷INT實現
由外部中斷INT實現與由RB端口電平變化中斷實現的設計方案類似,都是由單片機響應電平變化產生中斷,再通過中斷服務程序計算高低脈寬,從而得到TMP04輸出信號的占空比和所攜帶的溫度信息。所以由外部中斷INT實現和由RB端口電平變化中斷實現程序類似,只是將中斷源改為INT0(INT1,INT2均可)中斷,使能INT0中斷使能位INT0IE,判斷INT0中斷標志位INT0IF,由于INT0輸入為RB0引腳,上例中設RB0為輸入,并由INTEDG0判斷高低電平即可,注意要啟動RB口的弱上拉功能,其總體的程序流程程圖類似圖5。
4 實驗數據對比
利用簡單的電路及以上軟件程序在室溫為24.1℃時,筆者用三種方法測量溫度,為了得到更好的精度,每種分別設計了泄編和C評議二種測溫程序,其結果與平均值如表1所示。
表1 測試結果與平均值

5 結束語
由于測量脈寬是由定時器在高電平(低電平)期間計數實現的,所以單片機的指令周期將直接影響到測量的精度,指令周期越短精度越高。但是如果指令周期短而晶振頻率高,將會引入高頻干擾,所以晶振要根據系統實現情況選取。此外還要注意PIC單片機定時器預分頻比的設定,應在保證測量傳感器信號脈寬進不會發生溢出的情況下使分頻比最小,這樣有利于提高測量精度。
pwm相關文章:pwm原理
評論