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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8420|回復(fù): 32
收起左側(cè)

NTC熱敏電阻查表程序如何轉(zhuǎn)換成溫度顯示?

  [復(fù)制鏈接]
ID:348282 發(fā)表于 2020-12-14 21:20 | 顯示全部樓層 |閱讀模式
大家好,本人第一次做溫度顯示,有關(guān)于這方面的資料在網(wǎng)上搜索過,但不齊全很難理解,故在這請各位大佬指點(diǎn)下.現(xiàn)在的問題是溫度顯示亂碼,不知以下對應(yīng)數(shù)值表是否正確?
單片機(jī)源程序如下:
  1. #include <STC15.H>
  2. #include<math.h>
  3. #include"intrins.h"
  4. #define uchar unsigned char
  5. #define uint  unsigned int
  6. #define ulong unsigned long

  7. #define ADC_POWER   0x80   
  8. #define ADC_FLAG    0x10   
  9. #define ADC_START   0x08  
  10. #define ADC_SPEEDLL 0x00  
  11. #define ADC_SPEEDL  0x20  
  12. #define ADC_SPEEDH  0x40
  13. #define ADC_SPEEDHH 0x60

  14. void display(uint but);

  15. void Time_Init(void);

  16. void IO_Init(void);

  17. void ADC_Init(void);

  18. sbit b_wei=P1^0;          //百位
  19. sbit s_wei=P1^1;         //十位
  20. sbit g_wei=P1^2;        //個位

  21. uchar code LED_tk[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x40,0x46,0x79,0xff};

  22. uint volatge=0,Tep=0,measure=38,Temperature=0,tempvalue=0;

  23. volatile uint LS_20ms=0,Bg=0;
  24. volatile uint Num=0,time=0,pmt=3000,temp=0,Pnet=0,Bzeep_ms=200, I_samp=0;
  25. volatile uchar u8Temp_1=0,u8Temp_2=0,u8Temp_3=0,NK=888,ADCcount;
  26. volatile uchar sum=0,SP_10ms=0,Su8Temp_3=0,Su8Temp_2=0,Su8Temp_1=0,Hee_1=0,Hee_2=0,Hee_3=0;
  27. bit Vauel_play_flag=1,shan_flag=0,fan_on_flag=0,Dig_flag=0,Beesp_on_flag=0,Dai_He_flag=0,Beez_u8ge=0,Tne_Bee_flag=0;
  28. bit Temp_flag=0,volue_flag=0;

  29. /**************êy¾Y±í(NTC--10k--B3950)ADÖμ****************/  
  30. ulong code  NTCcode[121]={
  31.                            934,930,925,921,916,911,905,900,894,889,  //-10-0
  32.                            883,876,870,864,857,850,843,835,828,820,     //0-10
  33.                            812,804,796,788,779,770,762,753,743,734,     //10-20
  34.                            725,715,706,696,686,676,666,656,646,635,     //20-30
  35.                                                                                  625,615,604,594,584,573,563,552,542,532,     //30-40
  36.                            522,511,501,491,481,471,461,451,442,432,     //40-50
  37.                            423,413,404,395,386,377,368,360,351,343,     //50-60
  38.                            335,327,319,311,304,296,289,282,275,268,     //60-70
  39.                            261,255,248,242,236,230,224,218,213,207,     //70-80
  40.                            202,197,192,187,182,178,173,169,164,160,     //80-90
  41.                            156,152,148,144,140,137,133,130,127,123,     //90-100
  42.                            120,117,114,111,109,106,103,101,98,96,93};  //100-110


  43.   void ADC_Init()
  44.   {
  45.    
  46.    P1ASF=0x30;           //éèÖÃP1.4oíP1.5ÎaÄ£Äaêäèë
  47.    
  48.    ADC_RES=0;               
  49.    ADC_RESL=0;
  50.    CLK_DIV=0x20;
  51.         ADC_CONTR&=~ADC_FLAG;
  52.    ADC_CONTR=ADC_POWER|ADC_SPEEDHH|ADC_START;
  53.    Delay(5);      
  54. }

  55.   uint Get_ADC(uchar channel)
  56.   {

  57.      uint b=0,c=0;
  58.           ADC_RES=0;
  59.           ADC_RESL=0;

  60.            
  61.      ADC_CONTR=ADC_POWER|ADC_SPEEDHH|ADC_START|channel;
  62.          _nop_();
  63.          _nop_();
  64.          _nop_();
  65.          _nop_();
  66.            
  67.     while(!(ADC_CONTR&ADC_FLAG));
  68.      ADC_CONTR&=~ADC_FLAG;
  69.           b=ADC_RES*256;
  70.           c=ADC_RESL;
  71.           b=b|c;
  72.          
  73.      return   b;
  74.   }

  75. /************溫度處理*************/

  76. void fighting_0(void)
  77. {
  78.         uchar N;
  79.         Tep=Get_ADC(4);
  80.         tempvalue=Get_Temperature(Tep);
  81.         for(N=0;N<8;N++)
  82.         {
  83.         Temperature+=tempvalue;
  84.                   _nop_();
  85.                         _nop_();
  86.                         _nop_();
  87.         }
  88.          
  89.   Temperature/=8;
  90. }

  91. uint Get_Temperature(uint Adc)  //查表溫度計算
  92. {
  93.         
  94.          uint  i,tmpL,tmpH;
  95.          uint t,ftmp;
  96.          if(Adc<676)//如果小于25度向前查
  97. for(i=25;i>0;i-)//25表示溫度
  98.   {
  99.   if(Adc>NTCcode[i])
  100.   {
  101.   tmpL=NTCcode[i];//實(shí)測阻值前后溫度
  102.   tmpH=NTCcode[i+1];//用于計算小數(shù)點(diǎn)位
  103.   t=i; //得到對應(yīng)溫度
  104.   i=0;
  105.   }
  106. }
  107. else //向后查
  108.         if(Adc>676)
  109. for(i=25;i<121;i++)
  110. {
  111. if( Adc<NTCcode[i])
  112. {
  113. tmpH=NTCcode[i];
  114. tmpL=NTCcode[i-1];
  115. t=i;
  116. i=121;
  117. }
  118. }
  119. //計算小數(shù)*10整數(shù)
  120. ftmp=(Adc-tmpL)*10/(tmpH-tmpL);
  121. t=t*10+ftmp;
  122. return t;
  123. }

  124. /*************數(shù)碼管顯示*************/
  125. void display(uint but)
  126. {
  127.     uchar i;
  128.          for(i=20;i>0;i--)
  129.          {
  130.    P3=LED_tk[but/100];
  131.    b_wei=1;
  132.    Delay(5);
  133.    b_wei=0;

  134.   
  135.    P3=LED_NK[but%100/10];
  136.    s_wei=1;
  137.    Delay(5);
  138.    s_wei=0;

  139.    P3=LED_tk[but%10];
  140.    g_wei=1;
  141.    Delay(5);
  142.    g_wei=0;
  143.          }
  144.   }
  145. void main()
  146. {        IO_Init();
  147.         ADC_Init();
  148.    Time_Init();
  149. while(1)
  150.         {

  151.          fighting_0();
  152. display(Temperature);
  153. }
  154. }   
復(fù)制代碼
回復(fù)

使用道具 舉報

ID:348282 發(fā)表于 2020-12-15 09:09 | 顯示全部樓層
為什么AD讀出來的值比原來的大很多??
回復(fù)

使用道具 舉報

ID:739545 發(fā)表于 2020-12-15 09:10 | 顯示全部樓層
查表的含義就是和表值進(jìn)行對比,然后修正成實(shí)際數(shù)值。顯示亂碼的原因更多可能是你調(diào)用的溫度值本身就不對。P3=LED_NK是什么,都沒看到定義,是否編譯過都是問題,所以懷疑你壓根就沒有試驗(yàn),copy代碼就問問題

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:348282 發(fā)表于 2020-12-15 09:13 | 顯示全部樓層
就好像要再另外計算才能對得上數(shù)值表,但具體是要怎樣計算呢?
回復(fù)

使用道具 舉報

ID:420836 發(fā)表于 2020-12-15 09:38 | 顯示全部樓層
為了準(zhǔn)確地使用NTC熱敏電阻測量溫度,您需要連接一個穩(wěn)定的DC電壓作為參考電壓,例如5VDC,然后添加一個上拉電阻,例如10k ohm。 在已知參考電壓和上拉電阻的情況下,您可以根據(jù)模數(shù)轉(zhuǎn)換器測量的電壓來計算數(shù)字計數(shù),假設(shè)它是10位ADC,則全5V對應(yīng)于1024。獲得計數(shù)后,您可以 可以使用插值法找到NTC熱敏電阻的電阻,然后確定溫度。

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:348282 發(fā)表于 2020-12-15 10:31 | 顯示全部樓層
lovezjf234 發(fā)表于 2020-12-15 09:10
查表的含義就是和表值進(jìn)行對比,然后修正成實(shí)際數(shù)值。顯示亂碼的原因更多可能是你調(diào)用的溫度值本身就不對。 ...

P3=LED_NK[]這是小數(shù)點(diǎn)編碼來的,LED_tk是沒有小數(shù)點(diǎn),這個不重要,主要是溫度轉(zhuǎn)換那里,謝謝。
回復(fù)

使用道具 舉報

ID:348282 發(fā)表于 2020-12-15 10:32 | 顯示全部樓層
TTQ001 發(fā)表于 2020-12-15 09:38
為了準(zhǔn)確地使用NTC熱敏電阻測量溫度,您需要連接一個穩(wěn)定的DC電壓作為參考電壓,例如5VDC,然后添加一個上 ...

NTC那里我串聯(lián)一個5.1K電阻,然后分壓給ADC輸入
回復(fù)

使用道具 舉報

ID:852300 發(fā)表于 2020-12-15 10:34 | 顯示全部樓層
是不是用了12位AD的芯片?
回復(fù)

使用道具 舉報

ID:348282 發(fā)表于 2020-12-15 10:37 | 顯示全部樓層
TTQ001 發(fā)表于 2020-12-15 09:38
為了準(zhǔn)確地使用NTC熱敏電阻測量溫度,您需要連接一個穩(wěn)定的DC電壓作為參考電壓,例如5VDC,然后添加一個上 ...

有的說不用轉(zhuǎn)電壓,就直接AD值查找,有的要轉(zhuǎn)成電壓,各有各的說,如果表格是溫度的AD數(shù)值則不用轉(zhuǎn)成電壓,如表格是溫度的電壓值或電阻值,則要轉(zhuǎn)成電壓值,或計算成電阻值。
回復(fù)

使用道具 舉報

ID:348282 發(fā)表于 2020-12-15 10:38 | 顯示全部樓層
6620680 發(fā)表于 2020-12-15 10:34
是不是用了12位AD的芯片?

使用的是STC15W408AS芯片,10位AD
回復(fù)

使用道具 舉報

ID:348282 發(fā)表于 2020-12-15 10:42 | 顯示全部樓層
現(xiàn)在我的數(shù)表中是用溫度測量過的AD值,那么在AD讀取NTC電壓時不用轉(zhuǎn)成電壓,現(xiàn)在查表會顯示亂碼就是AD數(shù)值與數(shù)表不對,AD值明顯大于數(shù)表上的值,所以是不是有一些計算公式來轉(zhuǎn)換的?
回復(fù)

使用道具 舉報

ID:348282 發(fā)表于 2020-12-15 10:46 | 顯示全部樓層
網(wǎng)上關(guān)于NTC溫度查表轉(zhuǎn)換的搜一大片,說一半留一半。
回復(fù)

使用道具 舉報

ID:213173 發(fā)表于 2020-12-15 13:59 | 顯示全部樓層
law110 發(fā)表于 2020-12-15 10:37
有的說不用轉(zhuǎn)電壓,就直接AD值查找,有的要轉(zhuǎn)成電壓,各有各的說,如果表格是溫度的AD數(shù)值則不用轉(zhuǎn)成電壓 ...

各種說法都沒有說錯,要看你怎么去理解。AD值就是NTC隨溫度變化而變化的電壓數(shù)據(jù),由于熱敏電阻溫阻曲線的非線性,AD轉(zhuǎn)換得到的電壓變化曲線也呈非線性,很難用簡單公式計算出來。所以就通過數(shù)據(jù)表進(jìn)行比對(查表法),可以很方便的獲得溫度值。假設(shè)NTC與分壓電阻都是10K,VCC=5V,環(huán)境溫度25度,那么10位ADC結(jié)果就=512,通過查表得到溫度值=25度。但實(shí)際應(yīng)用中由于外界干擾因素需要平滑濾波,誤差補(bǔ)償?shù)鹊取?/td>

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:213173 發(fā)表于 2020-12-15 14:06 | 顯示全部樓層
law110 發(fā)表于 2020-12-15 10:37
有的說不用轉(zhuǎn)電壓,就直接AD值查找,有的要轉(zhuǎn)成電壓,各有各的說,如果表格是溫度的AD數(shù)值則不用轉(zhuǎn)成電壓 ...

給你一個制表方法和應(yīng)用示例參考。 10K B3950 NTC溫阻電壓編碼表 上偏電阻2.4K.zip (33.74 KB, 下載次數(shù): 71)
回復(fù)

使用道具 舉報

ID:348282 發(fā)表于 2020-12-15 14:30 | 顯示全部樓層
現(xiàn)在的程序中,顯示的亂碼是因?yàn)楝F(xiàn)時讀到的值與數(shù)據(jù)表對不上,如果減去讀到的值去比較,就顯示正常,但高溫的時候上不去,這明顯是要補(bǔ)償計算。
回復(fù)

使用道具 舉報

ID:401564 發(fā)表于 2020-12-15 15:07 | 顯示全部樓層
如果你是有了別人現(xiàn)成的電路和程序,那就直接復(fù)制來直接用
如果不是,那就得自己設(shè)計,而這NTC溫度查表應(yīng)用本身并不是什么高深技術(shù),自己基礎(chǔ)好點(diǎn)的就可以自己寫代碼和畫電路了
不要怪人家說一半留一半,很少是有像小學(xué)生99乘法那樣的完整給你的,你自己肯定要知道原理,如果你連原理都不知道,那還是先看一下ADC和NTC的相關(guān)原理吧1:你要有這個NTC對應(yīng)的電阻溫度表
2:選定電路中另一個分壓電阻的阻值
3:選定參考電壓和ADC電源
4:根據(jù)不同溫度下的NTC阻值和分壓電阻串聯(lián)電阻來計算ADC的值
4:溫度表格最好是某段ADC值,比如是:100-800的ADC值對應(yīng)-10到60攝氏度,這其中,你就要有701個地址的表格,用來保證這一段溫度范圍內(nèi)所有ADC的值都能在表格內(nèi)找到
而你的表并不是這樣的,比如開始的:934,930....那如果ADC的結(jié)果是932呢?
如果你完全看不明白我說的,那就再看一下ADC和NTC相關(guān)的資料就可以了
完全現(xiàn)成的東西可能沒有,運(yùn)氣好的話能找到,但最好的結(jié)果是你自己會做

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:226055 發(fā)表于 2020-12-15 16:09 | 顯示全部樓層
    1、待采集的模擬信進(jìn)單片機(jī)的ADC引腳,理論上都是要求具有盡可能大的輸出阻抗。因?yàn)槿绻斎氲拇杉盘栞敵鲎杩购蛦纹瑱C(jī)ADC引腳的對地等效電阻(芯片內(nèi)部)在一個數(shù)量級上,那么很容易影響采集效果。
    2、所以,很多情況下會采用在待采集信號后加電壓跟隨器的辦法解決這個問題。下面截圖下艾克姆的NTC熱敏電阻模塊(帶電壓跟隨器)的原理圖幫助大家直觀理解下。
帶電壓跟隨.jpg



    3、STC15W408芯片沒有用過,下面附件是STC15W4K56S4關(guān)聯(lián)這個NTC熱敏電阻傳感器模塊的例程。需要注意NTC熱敏電阻模塊的供電VCC和單片機(jī)的VCC電平一致。這樣10位的ADC采集NTC才是準(zhǔn)的,另外說下NTC熱敏電阻型號是10K  3950。(本人已測試,測溫效果很好)

全部資料51hei下載地址:
實(shí)驗(yàn)3-11-4:熱敏傳感器實(shí)驗(yàn) - 模擬量.rar (49.12 KB, 下載次數(shù): 50)

評分

參與人數(shù) 1黑幣 +40 收起 理由
admin + 40 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:348282 發(fā)表于 2020-12-16 08:02 | 顯示全部樓層
多謝各位了,我先嘗試下。
回復(fù)

使用道具 舉報

ID:348282 發(fā)表于 2020-12-17 08:59 | 顯示全部樓層
昨天弄一整天,把數(shù)據(jù)表更新下,測試發(fā)現(xiàn)在用烙鐵靠近NTC時,溫度最高只有70多度就上不去了,測了NTC輸入電壓是有變化的,但顯示基本沒什么變化,將上偏電阻原5.1K改為2.4K后,還是這樣子。不知是那里的問題?
uint code  NTCcode[]={
                                                  839,838,837,836,835,834,833,832,831,830,
                                                   829,828,827,826,825,824,823,822,821,820,
                                                   819,818,817,816,815,814,813,812,811,810,
                                                   809,808,807,806,805,804,803,802,801,800,
                                                  799,798,797,796,795,794,793,792,791,790,
                                                  789,788,787,786,785,784,783,782,781,780,
                                                  779,778,777,776,775,774,773,772,771,770,
                                                  769,768,767,766,765,764,763,762,761,760,
                                                 759,758,757,756,755,754,753,752,751,750,
                                                 749,748,747,746,745,744,743,742,741,740,
                                                 739,738,737,736,735,734,733,732,731,730,       
                                                   729,728,727,726,725,724,723,722,721,720,                                                
                                                   719,718,717,716,715,714,713,712,711,710,
                                                   709,708,707,706,705,704,703,702,701,700,
                                                   699,698,697,696,695,694,693,692,691,690,
                                                   689,688,687,686,685,684,683,682,681,680,
                                                   679,678,677,676,675,674,673,672,671,670,
                                                   669,668,667,666,665,664,663,662,661,660,
                                                  659,658,657,656,655,654,653,652,651,650,
                                                  649,648,647,646,645,644,643,642,641,640,
                                                 639,638,637,636,635,634,633,632,631,630,
                                                 629,628,627,626,625,624,623,622,621,620,
                                                 619,618,617,616,615,614,613,612,611,610,
                                                609,608,607,606,605,604,603,602,601,600,
                                               599,598,597,596,595,594,593,592,591,590,
                                               589,588,587,586,585,584,583,582,581,580,
                                               579,578,577,576,575,574,573,572,571,570,
                                               569,568,567,566,565,564,563,562,561,560,
                                               559,558,557,556,555,554,553,552,551,550,
                                               549,548,547,546,545,544,543,542,541,540,
                                               539,538,837,536,535,534,533,532,531,530,
                                                529,528,527,526,525,524,523,522,521,520,
                                                519,518,517,516,515,514,513,512,511,510,
                                                509,508,507,506,505,504,503,502,501,500,
                                                499,498,487,496,495,494,493,492,491,490,
                                                489,488,487,486,485,484,483,482,481,480,
                                                479,478,477,476,475,474,473,472,471,470,
                                                469,468,467,466,465,464,463,462,461,460,
                                                459,458,457,456,455,454,453,452,451,450,
                                                449,448,447,446,445,444,443,442,441,440,
                                                439,438,437,436,435,434,433,432,431,430,
                                                429,428,427,426,425,424,423,422,421,420,
                                                419,418,417,416,415,414,413,412,411,410,
                                                409,408,407,406,405,404,403,402,401,400,
                                                399,398,397,396,395,394,393,392,391,390,
                                                389,388,387,386,385,384,383,382,381,380,
                                                379,378,377,376,375,374,373,372,371,370,
                                                369,368,367,366,365,364,363,362,361,360,
                                                359,358,357,356,355,354,353,352,351,350,
                                                349,348,347,346,345,344,343,432,341,340,
                                                339,338,337,336,335,334,333,332,331,330,
                                                329,328,327,326,325,324,323,322,321,320,
                                                319,318,317,316,315,314,313,312,311,310,
                                                309,308,307,306,305,304,303,302,301,300,
                                                299,298,297,296,295,294,293,292,291,290,
                                                289,288,287,286,285,284,283,282,281,280,
                                                279,278,277,276,275,274,273,272,271,270,
                                                269,268,267,266,265,264,263,262,261,260,
                                                259,258,257,256,255,254,253,252,251,250,
                                                249,248,247,246,245,244,243,242,241,240,
                                                239,238,237,236,235,234,233,232,231,230,
                                                229,228,227,226,225,224,223,222,221,220,
                                                219,218,217,216,215,214,213,212,211,210,
                                                209,208,207,206,205,204,203,202,201,200,
                                                199,198,197,196,195,194,193,192,191,190,
                                                189,188,187,186,185,184,183,182,181,180,
                                                179,178,177,176,175,174,173,172,171,170,
                                                169,168,167,166,165,164,163,162,161,160,
                                                159,158,157,156,155,154,153,152,151,150,
                                                149,148,147,146,145,144,143,142,141,140,
                                                139,138,137,136,135,134,133,132,131,130,
                                                129,128,127,126,125,124,123,122,121,120,
                                                119,118,117,116,115,114,113,112,111,110};//-10---+110



/************溫度檢測處理*************/

void fighting_0(void)
{
   uint measure=38;

        Tep=Get_ADC(4);
Temperature=NTCcode[Tep-measure];
}
void main()
{
  IO_init();
  ......
  ......
        while(1)
        {
    fighting_0();
  display(Temperature);
}
}
回復(fù)

使用道具 舉報

ID:348282 發(fā)表于 2020-12-17 09:04 | 顯示全部樓層
這數(shù)據(jù)表的分辨率是0.1度測量出來,還有當(dāng)NTC受外部高溫影響時,正常是以1度或10度的瞬間上升變化的,但顯示以0.1度的變化上升,不知問題出在那里?
回復(fù)

使用道具 舉報

ID:348282 發(fā)表于 2020-12-17 09:13 | 顯示全部樓層
這數(shù)據(jù)表發(fā)出來有延時。
回復(fù)

使用道具 舉報

ID:401564 發(fā)表于 2020-12-17 11:09 | 顯示全部樓層
NTC的溫度表怎么可能是像這樣這么有規(guī)律的呢?
如果你上偏電阻是5.1K,接上10KNTC
那么在10攝氏度的時候ADC的值是:813
11攝氏度ADC的值是:805
這中間只有8個數(shù)字量,如果你要表示0.1攝氏度的精度,那肯定是要有誤差的了,比如:813是顯示10.0攝氏度,814也是10.0攝氏度,不然怎么夠分呢?
回復(fù)

使用道具 舉報

ID:348282 發(fā)表于 2020-12-17 11:34 | 顯示全部樓層
Y_G_G 發(fā)表于 2020-12-17 11:09
NTC的溫度表怎么可能是像這樣這么有規(guī)律的呢?
如果你上偏電阻是5.1K,接上10KNTC
那么在10攝氏度的時候A ...

現(xiàn)在不是精度問題,而是在測高溫顯示上不去。
回復(fù)

使用道具 舉報

ID:401564 發(fā)表于 2020-12-17 13:58 | 顯示全部樓層
law110 發(fā)表于 2020-12-17 11:34
現(xiàn)在不是精度問題,而是在測高溫顯示上不去。

1,你這個表本身就有問題
2,NTC兩頭的電壓有變化,但顯示就是上不去,那無非就兩個原因:一個是ADC數(shù)據(jù)處理出問題,一個查表顯示出問題,從這找,很快就能找到原因了
一個完整的實(shí)用程序并不是那么容易就搞出來的,網(wǎng)上復(fù)制來的東西,很多是不行的
你要一步一步來,這NTC顯示溫度并不是什么高深的程序的,慢慢來,幾天就能搞定的
一,你要先寫好顯示部分的代碼,并燒錄運(yùn)行,比如,你要顯示12345,就能顯示12345,保證顯示絕對正常之后再進(jìn)行下一步
二,寫好ADC和處理的代碼,這ADC肯定是要濾波的,至少是要進(jìn)行8次或者更多次的ADC,然后取平均值,你可以是顯示ADC的值,或者是顯示電壓,用萬用表和顯示進(jìn)行對比,顯示的數(shù)據(jù)和實(shí)際數(shù)據(jù)相差不大,或者是在誤差范圍之內(nèi)的,才能證明你的ADC和顯示部分是OK的
三,用EXCEL或者自己手工寫也行,寫好溫度表格,溫度表格絕對不會是像你這個表格這樣有規(guī)律的,不管是溫度ADC結(jié)果的值還是溫度,都不是規(guī)律的

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:213173 發(fā)表于 2020-12-17 14:32 | 顯示全部樓層
law110 發(fā)表于 2020-12-17 11:34
現(xiàn)在不是精度問題,而是在測高溫顯示上不去。

給你的資料你也不看,實(shí)測20~100度范圍誤差不超過0.5度。你那個程序本來就有不少問題。
回復(fù)

使用道具 舉報

ID:348282 發(fā)表于 2020-12-17 16:02 | 顯示全部樓層
wulin 發(fā)表于 2020-12-17 14:32
給你的資料你也不看,實(shí)測20~100度范圍誤差不超過0.5度。你那個程序本來就有不少問題。

多謝了,看是看了,但要結(jié)合自己的實(shí)際情況,可能一時消化不了。
回復(fù)

使用道具 舉報

ID:213173 發(fā)表于 2020-12-17 16:26 | 顯示全部樓層
law110 發(fā)表于 2020-12-17 16:02
多謝了,看是看了,但要結(jié)合自己的實(shí)際情況,可能一時消化不了。

數(shù)據(jù)表根本不需要做這么大,每度一個數(shù)據(jù)即可,小數(shù)用插補(bǔ)的方法獲取。何況廠家一般也不會提供這么精細(xì)的數(shù)據(jù)。
回復(fù)

使用道具 舉報

ID:748788 發(fā)表于 2020-12-17 16:27 | 顯示全部樓層
//溫度與NTC電阻阻值對應(yīng)關(guān)系表
//MF52 10K3435 溫度特性表
uint16 code ntc10k_tab[] = {

// 阻值(Ω),溫度
// 190556, /* -40 */
// 183413, /* -39 */
// 175674, /* -38 */
// 167647, /* -37 */
// 159565, /* -36 */
// 151598, /* -35 */
// 143862, /* -34 */
// 136436, /* -33 */
// 129364, /* -32 */
// 122668, /* -31 */
// 116352, /* -30 */
// 110410, /* -29 */
// 104827, /* -28 */
// 99585, /* -27 */
// 94661, /* -26 */
// 90033, /* -25 */
// 85678, /* -24 */
// 81575, /* -23 */
// 77703, /* -22 */
// 74044, /* -21 */
// 70581, /* -20 */
// 67299, /* -19 */
// 64183, /* -18 */
// 61223, /* -17 */
// 58408, /* -16 */
// 55728, /* -15 */
// 53177, /* -14 */
// 50746, /* -13 */
// 48429, /* -12 */
// 46222, /* -11 */
//44120, /* -10 */
42118, /* -9 */
40212, /* -8 */
38399, /* -7 */
36675, /* -6 */
35036, /* -5 */
33480, /* -4 */
32004, /* -3 */
30603, /* -2 */
29275, /* -1 */
28017, /* 0 */
26826, /* 1 */
25697, /* 2 */
24629, /* 3 */
23618, /* 4 */
22660, /* 5 */
21752, /* 6 */
20892, /* 7 */
20075, /* 8 */
19299, /* 9 */
18560, /* 10 */
18482, /* 11 */
18149, /* 12 */
17632, /* 13 */
16992, /* 14 */
16280, /* 15 */
15535, /* 16 */
14787, /* 17 */
14055, /* 18 */
13354, /* 19 */
12690, /* 20 */
12068, /* 21 */
11490, /* 22 */
10954, /* 23 */
10458, /* 24 */
10000, /* 25 */
9576, /* 26 */
9184, /* 27 */
8819, /* 28 */
8478, /* 29 */
8160, /* 30 */
7861, /* 31 */
7579, /* 32 */
7311, /* 33 */
7056, /* 34 */
6813, /* 35 */
6581, /* 36 */
6357, /* 37 */
6142, /* 38 */
5934, /* 39 */
5734, /* 40 */
5541, /* 41 */
5353, /* 42 */
5173, /* 43 */
4998, /* 44 */
4829, /* 45 */
4665, /* 46 */
4507, /* 47 */
4355, /* 48 */
4208, /* 49 */
4065, /* 50 */
3927, /* 51 */
3794, /* 52 */
3664, /* 53 */
3538, /* 54 */
3415, /* 55 */
3294, /* 56 */
3175, /* 57 */
3058, /* 58 */
2941, /* 59 */
2825, /* 60 */
2776, /* 61 */
2718, /* 62 */
2652, /* 63 */
2582, /* 64 */
2508, /* 65 */
2432, /* 66 */
2356, /* 67 */
2280, /* 68 */
2207, /* 69 */
2135, /* 70 */
2066, /* 71 */
2000, /* 72 */
1938, /* 73 */
1879, /* 74 */
1823, /* 75 */
1770, /* 76 */
1720, /* 77 */
1673, /* 78 */
1628, /* 79 */
1586, /* 80 */
1546, /* 81 */
1508, /* 82 */
1471, /* 83 */
1435, /* 84 */
1401, /* 85 */
1367, /* 86 */
1334, /* 87 */
1301, /* 88 */
1268, /* 89 */
1236, /* 90 */
1204, /* 91 */
1171, /* 92 */
1139, /* 93 */
1107, /* 94 */
1074, /* 95 */
1042, /* 96 */
1010, /* 97 */
979, /* 98 */
948, /* 99 */
// 918, /* 100 */
// 889, /* 101 */
// 861, /* 102 */
// 835, /* 103 */
// 810, /* 104 */
// 787, /* 105 */
// 767, /* 106 */
// 749, /* 107 */
// 733, /* 108 */
// 721, /* 109 */
// 713, /* 110 */
};
詳見:
http://www.zg4o1577.cn/bbs/dpj-197657-1.html

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:852300 發(fā)表于 2020-12-17 18:22 | 顯示全部樓層
law110 發(fā)表于 2020-12-17 08:59
昨天弄一整天,把數(shù)據(jù)表更新下,測試發(fā)現(xiàn)在用烙鐵靠近NTC時,溫度最高只有70多度就上不去了,測了NTC輸入電 ...

上拉電阻一般是1%的10K
回復(fù)

使用道具 舉報

ID:852300 發(fā)表于 2020-12-17 18:24 | 顯示全部樓層
wulin 發(fā)表于 2020-12-17 16:26
數(shù)據(jù)表根本不需要做這么大,每度一個數(shù)據(jù)即可,小數(shù)用插補(bǔ)的方法獲取。何況廠家一般也不會提供這么精細(xì)的 ...

估計是上拉電阻用小了,上拉小了,取樣點(diǎn)電壓下不來,顯示值自然上不去!

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:348282 發(fā)表于 2020-12-17 20:57 | 顯示全部樓層
6620680 發(fā)表于 2020-12-17 18:24
估計是上拉電阻用小了,上拉小了,取樣點(diǎn)電壓下不來,顯示值自然上不去!

我之前是用了10k上拉電阻,也是這種問題.
回復(fù)

使用道具 舉報

ID:213173 發(fā)表于 2020-12-18 08:33 | 顯示全部樓層
law110 發(fā)表于 2020-12-17 20:57
我之前是用了10k上拉電阻,也是這種問題.

NTC配套分壓電阻是可以在很大范圍內(nèi)取值的。要依據(jù)設(shè)備的測溫跨度范圍選取,通常作低溫檢測取值較大,作高溫檢測取值較小,目的是使測溫范圍的中點(diǎn)電壓大致落在1/2參考電壓附近。所以用于常溫范圍檢測的NTC配套分壓電阻往往取值與NTC標(biāo)稱值相同。樓主“用烙鐵靠近NTC時,溫度最高只有70多度就上不去了”一般是算法錯誤所致。建議樓主用一個阻值不小于500Ω的電位器代替NTC和分壓電阻的輸入電路,把ADC轉(zhuǎn)換值直接顯示在數(shù)碼管或LCD上,調(diào)整電位器使讀數(shù)在0~1023范圍變化,證明ADC轉(zhuǎn)換沒有問題后再著手解決后期數(shù)據(jù)處理問題。否則出現(xiàn)異常胡亂猜測,越理越亂。再次提醒:數(shù)據(jù)表是根據(jù)NTC溫阻表(廠商提供)和所選分壓電阻阻值計算得到的,其變化曲線呈非線性!絕不是等階遞增遞減。詳見上帖附件《10K B3950 NTC溫阻電壓編碼表 上偏電阻2.4K.zip》
回復(fù)

使用道具 舉報

ID:348282 發(fā)表于 2020-12-18 14:48 | 顯示全部樓層
wulin 發(fā)表于 2020-12-18 08:33
NTC配套分壓電阻是可以在很大范圍內(nèi)取值的。要依據(jù)設(shè)備的測溫跨度范圍選取,通常作低溫檢測取值較大,作 ...

多謝。我再檢查下。
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲视频免费在线观看 | 亚洲精品在线视频 | www.se91| 狠狠干在线 | 伊人久久综合影院 | 91麻豆精品国产91久久久久久久久 | 日本一区二区电影 | 亚洲视频在线一区 | 日韩一级| 在线播放国产一区二区三区 | 精品久久久一区二区 | 99精品免费 | 成人免费视频网站在线看 | 一区二区三区在线免费观看 | 中国免费黄色片 | 国产高清视频 | 国产激情一区二区三区 | 国产高清av免费观看 | 久久毛片 | 高清国产午夜精品久久久久久 | 欧美一级做性受免费大片免费 | 欧美成人激情 | 中文字幕免费在线 | 成人av在线播放 | 欧美极品在线视频 | 91精品午夜窝窝看片 | 国产线视频精品免费观看视频 | 亚洲精品一区二区 | 久久久九九 | 中文字幕在线视频一区二区三区 | 国产羞羞视频在线观看 | 国产成人精品午夜 | 精品国产1区2区3区 在线国产视频 | 激情六月丁香婷婷 | 91在线精品播放 | 欧美久久一级特黄毛片 | 日本小电影在线 | 午夜在线小视频 | 国产精品99久久久久久动医院 | www亚洲免费国内精品 | 97精品国产97久久久久久免费 |