用单片机普通IO口(不用ADC功能)采集模拟量
?
http://www.51hei.com/bbs/dpj-126017-1.html
以下介紹的這個方法是用沒有 ADC 功能的芯片來檢測模擬量,采集溫度:
1. 溫度檢測電路圖 :
?
2. 溫度檢測步驟 :
第一步:放電
P85?和?P86?設置為高阻態,?P87?輸出“1”,電容放電
第二步:測標準電阻
P85?和?P87?設置為高阻態,?P86?輸出“0”,電容充電,并對充電時間計時
計時功能說明:計時最小時基為?30US,用定時器中斷來實現。每?30US?中斷一次,
計時器+1。 計時器長度=16BIT, 高字節的?BIT4?代表溢出位。 所以實際有效長度為?12?位,
超出則判為溢出,可能是被測電阻開路和電容短路等故障引起的。?
第三步:放電
P85?和?P86?設置為高阻態,?P87?輸出“1”,電容放電
第四步:測溫度電阻
P86?和?P87?設置為高阻態,?P85?輸出“0”,電容充電,并對充電時間計時
計時功能說明:(同第二步)
第五步:計算電阻比率
計算公式:
電阻比率=溫度電阻÷標準電阻
=溫度電阻充電時間÷標準電阻充電時間?
第六步:查表求溫度
根據電阻比率查表求溫度攝氏值
為了提高查表時的分辨率,在上一步驟計算比率時應該將比率值乘以一定系數(在本
項目中該系數=256*64=16384).在表格中的數據也應該同步乘以該系數?
第七步:溫度單位轉換
如果是溫度單位=華氏值,則將攝氏值轉化為華氏值;否則跳過
溫度轉換公式:
華氏值?=?攝氏值×1.8+32
攝氏值?=?(華氏值-32)÷1.8
第八步:數字濾波
采用遞推中位平均濾波方法:保留最新?10?個采樣值,去掉一個最大值,去掉一個最小
值,剩余?8?個采樣值取平均數?
?
總結
以上是生活随笔為你收集整理的用单片机普通IO口(不用ADC功能)采集模拟量的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Source Insight 4.0与3
- 下一篇: zephyr 测试框架