標(biāo)題: 關(guān)于sht11溫濕度檢測(cè)的零下溫度顯示問(wèn)題 [打印本頁(yè)]

作者: etxuxu    時(shí)間: 2017-11-17 15:43
標(biāo)題: 關(guān)于sht11溫濕度檢測(cè)的零下溫度顯示問(wèn)題
想問(wèn)下大神們,在sht11溫濕度檢測(cè)顯示到lcd1602的時(shí)候,
當(dāng)溫度是零下溫度的時(shí)候,源碼需要怎么樣寫才可以在lcd上正確的顯示出負(fù)數(shù)溫度呢?

現(xiàn)在在論壇上參考到的代碼如下:

                       TEMP_data[0]=temp/1000+'0';                     //溫度百位
                       if (TEMP_data[0]==0x30)
                         TEMP_data[0]=0x20;
                       TEMP_data[1]=temp%1000/100+'0';                //溫度十位      
                       if (TEMP_data[1]==0x30 && TEMP_data[0]!=0x30)
                       TEMP_data[1]=0x20;
                       TEMP_data[2]=temp%100/10+'0';                   //溫度個(gè)位
                       TEMP_data[3]=0x2e;                              //小數(shù)點(diǎn)
                       TEMP_data[4]=temp%10+'0';                       //溫度小數(shù)點(diǎn)后第一位            
                       TEMP_data[5]=0xdf;                              //顯示溫度符號(hào)℃
                       TEMP_data[6]='\0';
                       
                        Print(TEMP_data);
作者: 嘉輝先生    時(shí)間: 2017-11-17 16:25
判斷出來(lái)的溫度值是否小于零,是的話就要在前面加個(gè)符號(hào),具體ASCII嗎查表,數(shù)值顯示和你讀到正溫度的顯示是一樣的
作者: etxuxu    時(shí)間: 2017-11-17 17:15
嘉輝先生 發(fā)表于 2017-11-17 16:25
判斷出來(lái)的溫度值是否小于零,是的話就要在前面加個(gè)符號(hào),具體ASCII嗎查表,數(shù)值顯示和你讀到正溫度的顯示 ...

感謝回復(fù)!

那源碼是應(yīng)該判斷TEMP_data是否小于零呢,還是temp?
作者: etxuxu    時(shí)間: 2017-11-17 23:58
加了一行代碼之后,負(fù)數(shù)顯示倒是正常了,但是正數(shù)溫度又不對(duì)了。。。。急求回復(fù)啊。。

                      if(temp & 0xf0)
                                            {
                                                temp = ~temp + 1;
                                               
                                                TEMP_data[0]=0x2d;
                         TEMP_data[1]=temp%1000/100+'0';                //溫度十位      
                         if (TEMP_data[1]==0x30)
                                             TEMP_data[1]=0x20;
                         TEMP_data[2]=temp%100/10+'0';                   //溫度個(gè)位
                         TEMP_data[3]=0x2e;                              //小數(shù)點(diǎn)
                         TEMP_data[4]=temp%10+'0';                       //溫度小數(shù)點(diǎn)后第一位            
                         TEMP_data[5]=0xdf;                              //顯示溫度符號(hào)℃
                         TEMP_data[6]='\0';
                                                }
                                         
                                            else
                                                {
                               
                                                 TEMP_data[0]=0x20;
                         TEMP_data[1]=temp%1000/100+'0';                //溫度十位      
                         if (TEMP_data[1]==0x30)
                                             TEMP_data[1]=0x20;
                         TEMP_data[2]=temp%100/10+'0';                   //溫度個(gè)位
                         TEMP_data[3]=0x2e;                              //小數(shù)點(diǎn)
                         TEMP_data[4]=temp%10+'0';                       //溫度小數(shù)點(diǎn)后第一位            
                         TEMP_data[5]=0xdf;                              //顯示溫度符號(hào)℃
                         TEMP_data[6]='\0';
   
                                                }
                                                 
                               

                      Print(TEMP_data);                                //輸出溫度   
作者: etxuxu    時(shí)間: 2017-11-18 00:02
求大神指點(diǎn)到底需要如何修改代碼。。
作者: z_z_j    時(shí)間: 2017-11-18 22:49
請(qǐng)問(wèn)sht11是如何區(qū)分正負(fù)溫度的呢?我用的是sht20在文檔沒(méi)有找到,想請(qǐng)教一下你,應(yīng)該sht11和sht20相似的吧。
作者: z_z_j    時(shí)間: 2017-11-18 22:50
請(qǐng)教一下,請(qǐng)問(wèn)sht11是如何判斷這個(gè)溫度是正溫度還是負(fù)溫度呢?
作者: 嘉輝先生    時(shí)間: 2017-11-30 13:16
etxuxu 發(fā)表于 2017-11-17 17:15
感謝回復(fù)!

那源碼是應(yīng)該判斷TEMP_data是否小于零呢,還是temp?

temp 應(yīng)該是你讀到的溫度   TEMP_data在你程序里面是個(gè)數(shù)組,目的為了是區(qū)temp的各個(gè)位,方便在1602上顯示的。
作者: 許三少天    時(shí)間: 2018-5-1 11:42
你這個(gè)問(wèn)題解決了嗎?我用protues仿真時(shí)sht10的溫濕度總有1-2度的偏差25度之后溫度就會(huì)低于我在sht10上顯示的值,這是為什么呢?
作者: 12332323    時(shí)間: 2019-5-5 09:16
我也遇到這個(gè)問(wèn)題,你的解決了嗎/




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