![]() |
發布時間: 2021-5-13 11:35
正文摘要:在網上找的程序,有一個地方不是很明白,改了半天一直出錯,求大佬們幫幫忙,晚上做夢都在想。。程序上我會標出不明白的地方希望有大佬解答。一共有兩個問題,紅色部分標出了,還有一個 ... |
ADC0808應該是AD轉換芯片吧,轉換的結果剛好對應給P1口,賦值給getdata,然后紅色部分再把AD轉換為電壓,然后把電壓放大,最后應該少了個放大后的電壓轉溫度的查表吧 |
hhdsdy 發表于 2021-5-13 14:26 我那個PT100溫度小于0,只顯示-25.6,不管溫度是負多少,數碼管一直顯示-25.6不變 |
紅色的 if(U<5.2&&U>0)是判斷語句,表示當U大于0并且U小于5.2時執行: { dispbuf[0]=temp%10; dispbuf[1]=temp/10%10; dispbuf[2]=temp/100%10; dispbuf[3]=temp/1000; } 如果U小于或者等于0,或者U大于、等于5.2,則執行: { dispbuf[0]=temp%10; dispbuf[1]=temp/10%10; dispbuf[2]=temp/100%10; dispbuf[3]=11; /*dispbuf[0]=0; dispbuf[1]=0; dispbuf[2]=0; dispbuf[3]=0;*/ } 所以,當U不符合要求時,dispbuf[3]=11; 顯示的當然是一個負號 |
daemondong 發表于 2021-5-13 12:45 大佬我是網上找的代碼,這塊就是不明白,我想改一下,改半天老出錯,我把電路圖貼下面回復了,能幫我看看這塊怎么改合適么。就是基于51單片機的PT100溫度仿真。 |
U=5.0/255.0*getdata; 應該是轉化getdata到 0-5的值 ,可能是電壓。不可能小于零,你小于零的數怎么來的? deal=U*20*10; 就不清楚想干什么了。 |