久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3555|回復: 1
打印 上一主題 下一主題
收起左側

關于單片機+DS18B20負數顯示的問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:722619 發表于 2020-4-29 16:42 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
請問各位大佬,我的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;
}







分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:213173 發表于 2020-4-29 21:44 | 只看該作者
ds18b20數碼管顯示 仿真.zip (113.41 KB, 下載次數: 45)
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕亚洲精品 | www.四虎.com| 欧美色综合| 国产亚洲成av人片在线观看桃 | 久久91av | www.av在线| 久产久精国产品 | 久久精品欧美一区二区三区不卡 | 久久精品91久久久久久再现 | 亚洲精品一区二区三区中文字幕 | 一级黄a| 精品视频一区二区三区 | 一级二级三级黄色 | 在线视频中文字幕 | 毛片免费在线 | 国产精品国产精品国产专区不片 | 久久久久国产精品免费免费搜索 | 日韩免费网站 | 中文字幕亚洲区 | 亚洲乱码一区二区三区在线观看 | 一区二区三区av夏目彩春 | 国产四虎 | 日韩国产在线 | 欧美日韩视频 | 99国产在线 | 国产精品久久久久久吹潮 | 欧美区日韩区 | 亚洲一区国产 | 久久成人午夜 | 亚洲精品久久久久久首妖 | 午夜影视免费片在线观看 | 亚洲精品国产成人 | 亚洲一区免费 | 国产精品毛片一区二区在线看 | 久草青青草 | 超碰成人免费观看 | 国产欧美一区二区三区在线看 | 久久国产日韩欧美 | 久久久久国产一区二区三区四区 | 69av网 | 免费看a |