国产肉体XXXX裸体137大胆,国产成人久久精品流白浆,国产乱子伦视频在线观看,无码中文字幕免费一区二区三区 国产成人手机在线-午夜国产精品无套-swag国产精品-国产毛片久久国产

新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > ADC0809電壓表 數(shù)據(jù)采集與處理方法

ADC0809電壓表 數(shù)據(jù)采集與處理方法

作者: 時(shí)間:2016-11-28 來(lái)源:網(wǎng)絡(luò) 收藏
使用ADC0809制作5V電壓表時(shí),遇到新的知識(shí)——模數(shù)轉(zhuǎn)換,趕緊記下自己的心得以供以后參考。
ADC0809數(shù)據(jù)8位輸出OUT1~OUT8,與單片機(jī)硬件連接時(shí)最好為整個(gè)8位PX(P0、P1、P2、P3)口,下面為數(shù)據(jù)采集與處理參考程序分析:
假設(shè)使用void ADC(unsigned char ad_dat)函數(shù)來(lái)進(jìn)行轉(zhuǎn)換,那么在main中調(diào)用時(shí)可以直接寫(xiě)ADC(PX);將整個(gè)PX口的數(shù)據(jù)以u(píng)nsigned char(uchar)類(lèi)型讀取進(jìn)來(lái)。在ADC函數(shù)里這樣寫(xiě)(此處只寫(xiě)出對(duì)已收到的數(shù)據(jù)處理,省略了芯片的啟動(dòng)電平和是否完成轉(zhuǎn)換判別等等):
float temp;//浮點(diǎn)保留小數(shù)點(diǎn)后面六位,最后一位四舍五入
uchar val_int;//用于存儲(chǔ)整數(shù)位
uint val_decimal;//存小數(shù)位
temp = ad_dat * (5/255);//主要是這個(gè)地方的原理比較重要:首先輸出數(shù)據(jù)的8個(gè)口,能夠表示的無(wú)符號(hào)整數(shù)范圍是0~255。而測(cè)量電壓的范圍是0~5V(以參考電壓連接決定),所以接收到的整數(shù)與想要得到的電壓值存在 5/255 的數(shù)量關(guān)系。為了保持精度,所以temp用的是float類(lèi)型。
val_int = (uchar) temp;//強(qiáng)制轉(zhuǎn)換,保留temp的整數(shù)部分,注意,這里并不會(huì)改變temp的數(shù)據(jù)
val_decimal = (uint) ((temp - val_int) * 100);//把整數(shù)部分減去為0之后。把想要保留的小數(shù)提上來(lái),這樣數(shù)碼管顯示的時(shí)候當(dāng)做整數(shù)來(lái)處理。
雖然程序沒(méi)仿真過(guò),目前也還沒(méi)出成品,不過(guò)這個(gè)新的知識(shí),感覺(jué)挺理論的,不能忘了
更正錯(cuò)誤:temp = ad_dat * (5/255);這條語(yǔ)句中,(5/255)必須用算出值0.0196078。原句改為:temp = ad_dat * 0.0196078; 否則轉(zhuǎn)換值全是0。原因還未探明,相信與數(shù)據(jù)類(lèi)型有關(guān)系。


評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉