標(biāo)題: 單片機(jī)+PT100熱電阻測溫Proteus仿真+代碼與實(shí)物制作 [打印本頁]

作者: 132455    時(shí)間: 2019-5-12 20:06
標(biāo)題: 單片機(jī)+PT100熱電阻測溫Proteus仿真+代碼與實(shí)物制作
1.設(shè)計(jì)仿真電路及編程的方框圖
•PT100測溫得到電壓信號(hào)---•運(yùn)算放大器----•AD數(shù)模轉(zhuǎn)換----•單片機(jī)控制數(shù)碼管的顯示

制作出來的實(shí)物圖如下:

2.仿真電路方案及元器件選擇。
系統(tǒng)以單片機(jī)為核心,通過A/D轉(zhuǎn)化芯片對(duì)放大之后的信號(hào)進(jìn)行采樣。然后傳送給單片機(jī),單片機(jī)控制數(shù)碼管的顯示。
51系列單片機(jī)一塊、四位數(shù)碼管一個(gè)、AD0808芯片一塊,運(yùn)放一塊
四、仿真電路原理設(shè)計(jì)
(1)測量橋路設(shè)計(jì)、元器件及工作電源參數(shù);運(yùn)算放大器電路、元器件參數(shù);
(2) 單片機(jī)與AD轉(zhuǎn)換器、LED接口電路,選擇元器件參數(shù);
(3) C51編程。

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


單片機(jī)源程序如下:

  1. #include  <reg51.h>        //頭文件
  2. #include<math.h>
  3. #define uchar unsigned char                                                                                           //宏定義
  4. #define uint unsigned int
  5. sbit STAR=P2^4;
  6. sbit EOC=P2^6;
  7. sbit CLOCK=P2^5;
  8. sbit OE=P2^7;
  9. sbit P20=P2^0;
  10. sbit P21=P2^1;
  11. sbit P22=P2^2;
  12. sbit P23=P2^3;
  13. uchar getdata;
  14. double change;
  15. long int temp;       
  16. uchar code table1[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,
  17.                                                     0x6F,0x40};//0-9,-,無小數(shù)點(diǎn)
  18. uchar code table2[]={0xbF,0x86,0xdB,0xcF,0xe6,0xeD,0xfD,0x87,0x7fF,
  19.                                                     0xeF};//0-9,小數(shù)點(diǎn)
  20. uchar dispbuf[6];

  21. /****************************************************************************************/
  22. //延時(shí)函數(shù):帶有入口參數(shù)m,代表ms毫秒
  23. //
  24. /****************************************************************************************/
  25. void delay_ms(uchar m)
  26. {
  27.         unsigned int i,j;
  28.         for(i=0;i<m;i++)
  29.         {
  30.                 for(j=0;j<123;j++)
  31.                 {;}
  32.         }
  33. }
  34. /****************************************************************************************/
  35. //
  36. //數(shù)碼管顯示程序
  37. /****************************************************************************************/
  38. void display()
  39. {
  40.         P0=table1[dispbuf[3]];//顯示百位
  41.         P20=0;
  42.         P21=1;
  43.         P22=1;
  44.         P23=1;

  45.         delay_ms(8);
  46.         P0=0X00;
  47.         P0=table1[dispbuf[2]];//顯示十位
  48.         P20=1;
  49.         P21=0;
  50.         P22=1;
  51.         P23=1;
  52.         delay_ms(8);
  53.         P0=0X00;
  54.         P0=table2[dispbuf[1]];//顯示個(gè)位
  55.         P20=1;
  56.         P21=1;
  57.         P22=0;
  58.         P23=1;
  59.         delay_ms(8);
  60.         P0=0X00;
  61.         P0=table1[dispbuf[0]];//顯示小數(shù)位
  62.         P20=1;
  63.         P21=1;
  64.         P22=1;
  65.         P23=0;
  66.         delay_ms(8);
  67.         P0=0X00;
  68. }
  69. /****************************************************************************************/
  70. //
  71. //計(jì)算溫度
  72. /****************************************************************************************/
  73. void PT100()
  74. {
  75. double deal,U;//
  76.         U=5.0/255.0*getdata;
  77.         deal=U*20*10;
  78.         temp=(long int)deal;
  79.         if(U<5.2&&U>0)
  80.         {   
  81.     dispbuf[0]=temp%10;
  82.                 dispbuf[1]=temp/10%10;
  83.                 dispbuf[2]=temp/100%10;
  84.                 dispbuf[3]=temp/1000;       
  85.         }
  86.         else
  87. {
  88.           dispbuf[0]=0;
  89.                 dispbuf[1]=0;
  90.                 dispbuf[2]=0;
  91.                 dispbuf[3]=0;       
  92.          
  93.   }
  94.                
  95. display();
  96. }

  97. /****************************************************************************************/
  98. //
  99. //
  100. /****************************************************************************************/
  101. main()
  102. {
  103.         TMOD = 0x10;                                        //定時(shí)器0,工作在定時(shí)器方式
  104.         TH1        = (65536-200)/256;                //0x3c
  105.         TL1 = (65536-200)%256;                //0xb0
  106.         EA = 1;                                                        //開總中斷
  107.         ET1 = 1;                                                //打開(允許)定時(shí)器1中斷
  108.         TR1 =1;                                                        //開始(啟動(dòng))定時(shí)
  109.   while(1)
  110.         {
  111.           STAR=0;
  112.                 OE=0;
  113.                 STAR=1;
  114.                 STAR=0;
  115.                 while(EOC==0)
  116.                 {
  117.                   OE=1;
  118. ……………………

  119. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
熱電阻測溫.zip (2.06 MB, 下載次數(shù): 852)



作者: 51hei團(tuán)團(tuán)    時(shí)間: 2019-5-17 05:47
好資料,51黑有你更精彩!!!
作者: cdklh    時(shí)間: 2019-5-17 07:50
不錯(cuò)的資料。
作者: 虛偽的圣人    時(shí)間: 2019-6-10 10:22
為什么我的放大器的輸出會(huì)一直變大?
作者: chengun    時(shí)間: 2020-1-1 11:06
好資料
作者: 天若藍(lán)而不藍(lán)    時(shí)間: 2020-1-2 16:58
你好,問一下為什么顯示溫度被卡死在100度?
作者: cbay    時(shí)間: 2020-1-16 01:19
51有你更精彩!加油
作者: cbay    時(shí)間: 2020-1-16 22:17
怎么能在lcd1602上面顯示。lcd1602定義uchar才能顯示數(shù)字,而您這個(gè)是定義double顯示。求回復(fù)。C:\Users\caby\Desktop
作者: 1459147381    時(shí)間: 2020-3-6 20:28
好資料,51黑有你更精彩!!!
作者: tenjure..    時(shí)間: 2020-3-11 22:08
請(qǐng)問一下,您的Pt100接線頭和我看到的那個(gè)寶上的不一樣,您是不是改造過了?具體怎么做的呢
作者: huanyufei1002    時(shí)間: 2020-3-14 14:40
測溫范圍是多少啊

作者: 526637566@qq.co    時(shí)間: 2020-5-3 00:25
這個(gè)好像不對(duì),數(shù)據(jù)一直在變
作者: 鈴葉fly    時(shí)間: 2020-6-30 09:04
好東西,
作者: 鵬鵬努力學(xué)代碼    時(shí)間: 2020-7-2 12:24
代碼在哪里呀
我怎么看不見
作者: hgs2020    時(shí)間: 2020-7-3 18:56
下載了怎么沒有剩下的代碼啊
作者: 51hei團(tuán)團(tuán)    時(shí)間: 2020-7-3 19:01
hgs2020 發(fā)表于 2020-7-3 18:56
下載了怎么沒有剩下的代碼啊

有,在TP100測溫AD顯示.c 文件里面 用記事本打開即可看到
作者: bigbao123    時(shí)間: 2020-7-6 22:58
我怎下載下來打不開

作者: NECO    時(shí)間: 2020-12-15 14:20
請(qǐng)問下 放大電路模塊設(shè)計(jì)思路,元器件參數(shù)是怎么算的
作者: 13132984104    時(shí)間: 2022-6-14 23:12
這個(gè)電路很不錯(cuò),謝謝樓主分享
作者: liushiming82    時(shí)間: 2022-7-26 10:18
采集到的電壓如何轉(zhuǎn)成溫度值呀?謝謝
作者: 創(chuàng)新創(chuàng)新    時(shí)間: 2023-5-12 17:47
仿真用8V,你實(shí)物哪來的8V




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