找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6904|回復(fù): 18
打印 上一主題 下一主題
收起左側(cè)

無AD功能89c52單片機用1個電容1個熱敏電阻測溫度 原理圖程序

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:151846 發(fā)表于 2021-4-18 23:42 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
根據(jù)RC充電原理知道:未知Rx=(未知充電時間us/已知充電時間us)*已知電阻k
先自己用10K(或100k或其它精密電阻)根據(jù)下圖測出所用時間us(我粗測出289us,公式用到)


顯示的數(shù)碼管線路可能不同,我自己焊在P1口上。
制作出來的實物圖如下:


其實還可以改精度更高些,主要關(guān)鍵穩(wěn)定電壓,穩(wěn)定質(zhì)量電阻電容,還有公式取的精度。
粗陋對比18B20溫度



單片機源程序如下:
#include<reg52.h>
#define u8  unsigned char
#define u16 unsigned int
sbit Rc=P0^0;u16 s=0,r=0;
sbit a=P3^4;sbit b=P3^5;sbit c=P3^6;sbit d=P3^7; //4個數(shù)碼管
u8 code tab[12]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0,0x63};
u8 us,t,dw[4];//數(shù)碼管顯示0--9,0是關(guān)顯示,0x63是溫度符號
u16 code ntc100[]={31076,29541,28090,26720,25424,24199,23039,21942,20904,
19920,18988,18106,17269,16475,15723,15009,14331,13688,13077,12497,11946,
11422,10924,10451,10000,9571,9163,8775,8405,8052,7717,7397,7092,6801,6524,
6259,6007,5766,5536,5316,5106,4906,4714,4531,4356,4189,4029,3875,3729,3588};
//1--50的溫度//自己設(shè)置需要的溫度
void Delay(u16 n){while(--n);}//12M公式n=(延時-6)*0.12493899(us)
void disp()
{  s++;if(s==3000)s=0; //s=3000是延時一會兒再讀取溫度
   dw[0]=10;dw[1]=t%100/10;dw[2]=t%10;dw[3]=11;
   P1=tab[dw[0]];a=1;Delay(70);a=0;P1=tab[dw[1]];b=1;Delay(70);b=0;
   P1=tab[dw[2]];c=1;Delay(70);c=0;P1=tab[dw[3]];d=1;Delay(70);d=0;P1=0;}
void T0init()
{TMOD=0x02;TH0=0x00;TL0=0x00;ET0=1;EA=1;}
void main(void)
{ long u16 Rxt;u16 temp;u8 j;
  T0init();
while(1)
{
   if(s==0){Rc=0;Delay(600);//約5ms
         Rc=1;TR0=1;while(!Rc);TR0=0;
         Rxt=us*256+TL0;TL0=0;us=0;Rc=0;
         r=((float)(Rxt*1.0/289*1.0)+0.00005)*10*100;}
         //289us是已知電阻(10K)測到的時間*10是10k單位是k,
         //*100是取溫度有效值,如26度ntc100k是(95.7132k)ntc10k(9.631K)
     if((r>3455)&&(r<32500))//阻值在1~50度之間,顯示對應(yīng)的溫度
         {for(j=0;j<50;j++){temp=ntc100[j];if(r>=temp) break;}
          t=j;}
         disp();
}}
void t0() interrupt 1
{us++;if(us==255)us=0;}
測試已知電阻充電時間也用上面小改一下,讓數(shù)碼管顯示Rxt就是被測時間。
下面下載跟上面一樣。上面直接復(fù)制到keil改數(shù)碼管改接口就行。
C52粗測NTC溫度.rar (1.07 KB, 下載次數(shù): 74)

評分

參與人數(shù) 2黑幣 +130 收起 理由
山川科技 + 30
admin + 100 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:151846 發(fā)表于 2021-4-20 21:17 | 只看該作者
本帖最后由 a4732710 于 2021-4-20 21:27 編輯

修改了精度,測試范圍-5到200度,可以用在電飯鍋電磁爐等測溫上,相差應(yīng)該小于1度。

測量負(fù)溫度

烙鐵加溫到190多度
下面與18b20同時加溫顯示的溫度
下面是修改的程序

C52測NTC溫度-5到200度.rar (1.72 KB, 下載次數(shù): 27)


評分

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

查看全部評分

回復(fù)

使用道具 舉報

板凳
ID:151846 發(fā)表于 2021-4-20 21:32 | 只看該作者
本帖最后由 a4732710 于 2021-4-20 21:46 編輯

不接熱敏電阻顯示四個“-”



下面是修改了的程序。

C52測NTC溫度-5到200度.rar (1.72 KB, 下載次數(shù): 61)

回復(fù)

使用道具 舉報

地板
ID:328014 發(fā)表于 2021-4-20 21:47 | 只看該作者
這個方法很好,畢竟一個數(shù)字溫度傳感器的成本還是比較高的
回復(fù)

使用道具 舉報

5#
ID:151846 發(fā)表于 2021-4-20 22:07 | 只看該作者
上面兩個附件一樣的,上傳重復(fù)了
回復(fù)

使用道具 舉報

6#
ID:884042 發(fā)表于 2021-7-19 12:18 | 只看該作者
牛逼啊樓主能講下原理嗎?
回復(fù)

使用道具 舉報

7#
ID:832030 發(fā)表于 2021-7-22 14:29 | 只看該作者
IO直接置低給電容放電不會燒壞IO口嗎?
回復(fù)

使用道具 舉報

8#
ID:1107658 發(fā)表于 2024-1-3 15:46 | 只看該作者
可以問問加上數(shù)碼管的原理圖嗎
回復(fù)

使用道具 舉報

9#
ID:601544 發(fā)表于 2024-1-4 20:18 來自觸屏版 | 只看該作者
樓主289us是怎么測出來的
回復(fù)

使用道具 舉報

10#
ID:34149 發(fā)表于 2024-1-6 14:41 | 只看該作者
可以說樓主對IO引腳的探究達到了出神入化的境界了。我能想到的原理就是不斷判斷引腳電平翻轉(zhuǎn)所用的累計時間!秒啊!
回復(fù)

使用道具 舉報

11#
ID:1107340 發(fā)表于 2024-1-7 21:12 | 只看該作者
我有那個板子,正好學(xué)一下,謝謝
回復(fù)

使用道具 舉報

12#
ID:621776 發(fā)表于 2024-1-12 09:28 | 只看該作者
這樣也可以拓展到檢測下面電容來完成輸液寶的基本功能了。
回復(fù)

使用道具 舉報

13#
ID:582276 發(fā)表于 2024-1-28 21:32 | 只看該作者
xjx51 發(fā)表于 2021-7-19 12:18
牛逼啊樓主能講下原理嗎?

應(yīng)該用RC的充放電,通過查表計時得到對應(yīng)的溫度值,以前好多4位機和8位機沒AD功能用這種方法測量。
回復(fù)

使用道具 舉報

14#
ID:1110448 發(fā)表于 2024-1-31 14:03 | 只看該作者
nanfuB 發(fā)表于 2024-1-28 21:32
應(yīng)該用RC的充放電,通過查表計時得到對應(yīng)的溫度值,以前好多4位機和8位機沒AD功能用這種方法測量。

商用的要和基準(zhǔn)電阻計算的,不能直接用時間查表
回復(fù)

使用道具 舉報

15#
ID:592031 發(fā)表于 2024-2-18 13:55 | 只看該作者
厲害。。就服樓主的探索精神
回復(fù)

使用道具 舉報

16#
ID:298582 發(fā)表于 2024-2-21 10:27 | 只看該作者
過來給樓主點贊,妙
回復(fù)

使用道具 舉報

17#
ID:407179 發(fā)表于 2024-2-26 17:54 | 只看該作者
對于某一個溫度或某一小段溫度是可以的。
回復(fù)

使用道具 舉報

18#
ID:364721 發(fā)表于 2024-12-1 21:42 | 只看該作者
顯示4個0,是咋回事?
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表