找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

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

51單片機(jī)PT100熱敏電阻運(yùn)放ADC0804采集溫度計(jì)程序Proteus仿真圖

  [復(fù)制鏈接]
ID:679189 發(fā)表于 2022-5-3 00:47 | 顯示全部樓層 |閱讀模式
使用鉑熱電阻PT100,其阻值會(huì)隨著溫度的變化而改變。PT后的100即表示它在0℃時(shí)阻值為100歐姆,在100℃時(shí)它的阻值約為138.5歐姆。廠家提供有PT100在各溫度下電阻值值的分度表,在此可以近似取電阻變化率為 0.385Ω/℃。向PT100輸入穩(wěn)恒電流,再通過(guò)A/D轉(zhuǎn)換后測(cè)PT100兩端電壓,即得到PT100的電阻值,進(jìn)而算出當(dāng)前的溫度值。
采用2.55mA的電流源對(duì)PT100進(jìn)行供電,然后用運(yùn)算放大器LM324搭建的同相放大電路將其電壓信號(hào)放大25倍后輸入到AD0804中。利用電阻變化率0.385Ω/℃的特性,計(jì)算出當(dāng)前溫度值。
溫度計(jì)電路設(shè)計(jì)總體設(shè)計(jì)方框圖如圖2-1所示。

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.png

51hei.png

單片機(jī)源程序如下:
  1. #include<reg51.h>
  2. #include <intrins.h>

  3. #define Disdata P3
  4. #define discan P0

  5. sbit adrd=P2^7;          //IO口定義
  6. sbit adwr=P2^6;
  7. sbit csad=P2^4;
  8. sbit  DIN=P3^7;       //LED小數(shù)點(diǎn)控制

  9. unsigned char j,k,ad_data,t;
  10. unsigned char dis[4]={0x00,0x00,0x00,0x00};

  11. unsigned char code dis_7[12]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x40};
  12. /* 共陽(yáng)LED段碼表對(duì)應(yīng)           "0"  "1"  "2"  "3"  "4"  "5"  "6"  "7"  "8"  "9" "不亮" "-" */                 
  13. unsigned char code  scan_con[4]={0xfe,0xfd,0xfb,0xf7};      // 列掃描控制字   

  14. void delay(unsigned int t)  
  15. {  
  16.   for(;t>0;t--)
  17.   {
  18.     ;
  19.   }  
  20. }  //11微秒延時(shí)函數(shù)

  21. void scan()  
  22. {  
  23.    char k;      
  24.    
  25.    for(k=0;k<4;k++)        //四位LED掃描控制      
  26.    {        
  27.      Disdata=dis_7[dis[k]];        
  28.          if(k==1)
  29.          {
  30.            DIN=1;                                  //加入小數(shù)點(diǎn)
  31.          }        
  32.          discan=scan_con[k];
  33.          delay(90);
  34.          discan=0xff;      
  35.    }   
  36. }
  37. void ad0804()
  38. {
  39.   P1=0xff;              //讀取P1口之前先給其寫全1
  40.   csad=0;               //選通ADCS
  41.   adrd=0;               //AD讀使能
  42.   ad_data=P1;                        //AD數(shù)據(jù)讀取賦給P1口
  43.   adrd=1;
  44.   csad=1;               //關(guān)閉ADCS
  45.   adwr=0;
  46. }

  47. void ad_compute()       //u=2.55+T/100, 2.55反映在AD上為0x83
  48. {
  49.   unsigned char t_temp;

  50.   //if(ad_data>=0x83)
  51.   //{
  52.     ad_data=ad_data-0x83;
  53.     t_temp=ad_data*2-4;
  54.         if(t_temp<=110)
  55.         {
  56.          dis[3]=t_temp/100;
  57.          dis[2]=t_temp/10-dis[3]*10;
  58.          dis[1]=t_temp%10;
  59.          dis[0]=t%5*2;
  60.         }
  61.         else
  62.         {
  63.           t_temp=256-t_temp;
  64.       dis[3]=11;
  65.       dis[2]=t_temp/10;
  66.       dis[1]=t_temp%10;
  67.       dis[0]=t%5*2;
  68.         }
  69. //         
  70. //  }

  71. }
  72. void main()                //        主程序
  73. {
  74.   while(1)
  75.   {
  76.     ad0804();
  77.         ad_compute();
  78.         scan();
  79.   }
  80. }
復(fù)制代碼

Proteus仿真和參考文檔下載:
51熱敏電阻運(yùn)放溫度計(jì).zip (607.77 KB, 下載次數(shù): 184)

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:1007932 發(fā)表于 2022-5-3 15:43 | 顯示全部樓層
思路真不錯(cuò),用電流源測(cè)電壓降是真方便,我一直以為要用電橋。
回復(fù)

使用道具 舉報(bào)

ID:951974 發(fā)表于 2022-12-14 18:39 | 顯示全部樓層

思路真不錯(cuò)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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