ADC0809電壓表 數據采集與處理方法
float temp;//浮點(diǎn)保留小數點(diǎn)后面六位,最后一位四舍五入
uchar val_int;//用于存儲整數位
uint val_decimal;//存小數位
temp = ad_dat * (5/255);//主要是這個(gè)地方的原理比較重要:首先輸出數據的8個(gè)口,能夠表示的無(wú)符號整數范圍是0~255。而測量電壓的范圍是0~5V(以參考電壓連接決定),所以接收到的整數與想要得到的電壓值存在 5/255 的數量關(guān)系。為了保持精度,所以temp用的是float類(lèi)型。
val_int = (uchar) temp;//強制轉換,保留temp的整數部分,注意,這里并不會(huì )改變temp的數據
val_decimal = (uint) ((temp - val_int) * 100);//把整數部分減去為0之后。把想要保留的小數提上來(lái),這樣數碼管顯示的時(shí)候當做整數來(lái)處理。
更正錯誤:temp = ad_dat * (5/255);這條語(yǔ)句中,(5/255)必須用算出值0.0196078。原句改為:temp = ad_dat * 0.0196078; 否則轉換值全是0。原因還未探明,相信與數據類(lèi)型有關(guān)系。
評論