欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 關于單片機+DS18B20負數顯示的問題 [打印本頁]

作者: jacing    時間: 2020-4-29 16:42
標題: 關于單片機+DS18B20負數顯示的問題
請問各位大佬,我的DS18B20負數顯示時,溫度在0到-15.9就可以正常顯示,到-16就顯示為-0,-17就顯示-1·····這個是怎么回事?大佬們有啥解決方法嗎?附上相關代碼和仿真運行圖。相關代碼:
unsigned char tempL=0;  //設全局變量
unsigned char tempH=0;
unsigned char tempA;
unsigned char tempB;
unsigned char tempshi;
unsigned char tempge;
unsigned char xiaoshu1; //小數第一位
unsigned int zb;
bit  fg=1;              //溫度正負標志
······
//讀溫度值(低位放tempL;高位放tempH;)
void ReadTemperature(void)
{
Init_DS18B20(); //初始化
WriteOneChar(0xcc); //跳過讀序列號的操作
WriteOneChar(0x44); //啟動溫度轉換
delaynms(250); //轉換需要一點時間,延時
Init_DS18B20(); //初始化
WriteOneChar(0xcc); //跳過讀序列號的操作
WriteOneChar(0xbe); //讀溫度寄存器(頭兩個值分別為溫度的低位和高位)
tempL=ReadOneChar(); //讀出溫度的低位LSB
tempH=ReadOneChar(); //讀出溫度的高位MSB
tempA=(tempH<<8)|tempL;
if(tempH>0x07)      //最高位為1時溫度是負
{
    tempA=~tempA+1;
    zb=12;
tempB=tempA*(0.625)+0.5;
}
else
{
    tempB=tempA*(0.625);
    zb=0;
    }
    tempshi=tempB/100;
    tempge=tempB%100/10;
    xiaoshu1=tempB%10;
}








作者: wulin    時間: 2020-4-29 21:44
ds18b20數碼管顯示 仿真.zip (113.41 KB, 下載次數: 45)





歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1