基于單片機控制的數字溫度計的設計
其中Rn是熱敏電阻NTC,C為放電電容,RN是在額定溫度TN(K)時的NTC熱敏電阻阻值,T規定溫度(K),B是NTC熱敏電阻的材料常數。由以上兩個公式可將建立起由溫度到電阻值,再由電阻值到頻率的換算關系,實現頻率到溫度的轉換:
1)555電路的振蕩頻率:f=1/((R1+2RT1)C1ln2),即頻率與電阻值的關系;
2)半導體熱敏電阻NTC的特性曲線(溫度與電阻的關系)。在一定溫度范圍內,半導體材料的電阻RT和絕對溫度T的關系可表示為:

其中常數a不僅與半導體材料的性質有關而且與它的尺寸均有關,而常數b僅與材料的性質有關,常數a和b可通過實驗方法測得,計算出a和b后,就可以根據公式(3)計算出溫度值。因為NTC的阻值和溫度之間是指數關系,以單片機為處理器的系統計算這一方程效率很低,因此本文使用查表法與插值法計算溫度,提高了測量的效率,簡化了計算的復雜性。假設測溫范圍為-10~50,可先將-10~50分為60段,每一度的氣溫對應一段頻率值。然后分別將NE555電路在-10°,-9°,-8°……48°,49°,50°時的輸出頻率實際測試出來并存儲在單片機的ROM中,建立時鐘頻率與溫度的對應表。而在每一個度的溫度段內近似認為頻率與溫度成線性關系在實際轉換過程中,首先根據測量的時鐘頻率確定其所在的溫度段,再按線性方程求出此頻率所對應的溫度值,由此實現由頻率到溫度的轉換。
2.2 等精度測頻電路的實現
等精度測頻的主要思想:利用兩個計數器在同一時間段內同時對兩個時鐘信號進行計數,由已知時鐘的頻率和兩個計數器的計數值可得出待測信號的頻率。具體如圖4所示,首先設置時鐘閘門信號的寬度,在這段時間內,計數器1和計數器2同時對兩個時鐘信號進行計數,計數器1所計的時鐘信號的頻率為已知的基準時鐘,其頻率為Fb。計數器2所計的時鐘信號為待測的時鐘信號,假設在等時間內計數器1計數器2計數數值分別為Nb和Nx。由兩計數器在同時間段內計數,有以下關系式:

等精度測頻功能的實現需要單片機與CPLD的協調合作實現。計數器1用單片機的定時器1實現,計數器2用CPLD來配置。單片機部分的主要作用是:負責控制外部計數器和內部定時器計數器的開啟與關閉;外部計數器和內部定時器計數器的數據的讀取;處理以及數據輸出緩存。測量開始,單片機首先發出清零信號,對外部CPLD計數器清零,然后將內部定時器清零,配置成外部時鐘控制方式,然后發出計數啟動信號,隨后進入等精度頻率測量計數模式,單片機通過查詢計數器,判斷計數時間,該計數時間必須小于外部32 bit計數器溢出時間,時間一到,單片機發出停止計數信號,查詢引腳P3.2,確認計數停止,讀回外部計數結果和內部計數器計數結果,假設分別為N1和N2,定時器計數時間間隔為T1,那么被測信號的頻率F=(N1/N2)T1,將計算出的數據輸送到頻率溫度轉化模塊等待數據轉換。
CPLD部分主要完成對被測信號的測量計數和總線設計。由于所用CPLD芯片內資源較少,其內部只能設置一個32位計數器。這部分在Max+p lusII環境下完成電路的硬件設計與仿真,采用原理圖輸入。硬件設計共包括4個部分:輸入、輸出、計數器和總線接口部分。總體設計結構如圖5所示,其中mcu_ctrl模塊為總線接口模塊,frequency模塊為測量計數模塊。
評論