无码av毛片一级不卡|一本综合九九国产二区|AⅤ高清无码免费看大片|国产真实高潮太爽了十八|国内精品久久无码人妻影院|亚洲AV影院一区二区三区|国产精品久久久久久中文麻豆|97精品一区二区视频在线观看

下載手機汽配人

52單片機和DS18B20溫度傳感器,用數(shù)碼管顯示,共陽(4位),小數(shù)要求一位,還有個位和十位。十位老是0。

不知道怎么回事, while(1) { // int i; uchar shi=0; uchar ge=0; uchar xiaoshu=0; shi=tab[temp/1000]; //十位溫度 ge=tab[temp%1000/100]; //個位溫度 xiaoshu=tab[(temp%100)/10]; if(flag_get==1) //定時讀取當前溫度 { temp=ReadTemperature(); flag_get=0; } P0=shi; seg1=0; delay(20); seg1=1; P0=ge; seg2=0; delay(10); seg2=1; delay(20); P0=xiaoshu; seg3=0; delay(20); seg3=1; } //讀取溫度 unsigned char ReadTemperature(void) { unsigned char a=0; unsigned char b=0; int t=0; float tt=0; Init_DS18B20(); WriteOneChar(0xCC); // 跳過讀序號列號的操作 WriteOneChar(0x44); // 啟動溫度轉(zhuǎn)換 delay(200); Init_DS18B20(); WriteOneChar(0xCC); //跳過讀序號列號的操作 WriteOneChar(0xBE); //讀取溫度寄存器等(共可讀9個寄存器) 前兩個就是溫度 a=ReadOneChar(); b=ReadOneChar(); t=b; t<<=8; t|=a; tt=t*0.0625; t= tt*100+5; //放大10倍輸出并四舍五入 return(t); } 求大俠看看怎么回事!謝謝
提問者:網(wǎng)友 2018-08-26
最佳回答
程序錯在這句話上: unsigned char ReadTemperature(void) 返回值是uchar型,也就是8位數(shù),返回的高位數(shù)據(jù)都被丟棄了。所以改成 unsigned int ReadTemperature(void)就可以了。
回答者:網(wǎng)友
產(chǎn)品精選
搜索問答
還沒有汽配人賬號?立即注冊

我要提問

汽配限時折扣

本頁是網(wǎng)友提供的關(guān)于“52單片機和DS18B20溫度傳感器,用數(shù)碼管顯示,共陽(4位),小數(shù)要求一位,還有個位和十位。十位老是0。”的解答,僅供您參考,汽配人網(wǎng)不保證該解答的準確性。