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

標題: 基于單片機設計的讀取K型感溫頭并控制強電設備的系統 [打印本頁]

作者: 寧采塵    時間: 2017-6-8 15:36
標題: 基于單片機設計的讀取K型感溫頭并控制強電設備的系統
溫度傳感器種類繁多,在學校比較常用DS18B20,DTH11,做些簡單室溫檢測。后來逐漸接觸到一些工業級的溫感,前些時間做過一個NTC型感溫頭的控制系統,溫度的變化引起電阻的變化,這就需要用AD轉化測出阻值,利用函數公式求溫度,或者利用查詢法測出溫度,感覺略顯麻煩,不過NTC有NTC的優勢。最近主要是在用K型感溫頭來做實驗,關于各種感溫頭的優勢和劣勢,大家可以去百度看看。好了,話不多說,上圖,上程序:

/*
功能:自動檢測溫度,開機加熱20分,進入恒溫75℃±2℃,
      按鍵k4----強制加熱
          具有未放置加熱鍋提示、感溫頭損壞或未連接提示、
          加熱狀態和恒溫狀態自動切換和手動切換等功能   
         
修改時間:17/6/3
*/



原理圖和PCB圖如下:


單片機源程序:
  1. #include <REGX52.H>
  2. #include "intrins.h"
  3. #include "dingyi.c"

  4. void main()
  5. {
  6.         TIMER_INIT();                        //定時器初始化
  7.         
  8.         while(1)
  9.         {               
  10.                 anjian();                //按鍵掃描        
  11.                 temp=Re_Convert();        // 熱電偶數據讀取,返回溫度
  12.                 Temp_Change();            //加熱狀態切換
  13.         }
  14. }



  15. void t0_time() interrupt 1           //定時中斷
  16. {
  17.   TH0=(65536-48000)/256;// 給高8位賦值
  18.   TL0=(65536-48000)%256;//給低8位賦值
  19.   num++;
  20.   if(num==10)
  21.   {
  22.     num=0;
  23.     miao--;
  24.         led=0;
  25.         if(miao<=0)
  26.         {
  27.           miao=60;
  28.           fen--;
  29.           if(fen<0)                 //加熱時間到,則關閉加熱,關閉定時器 ,切換到恒溫狀態
  30.           {
  31.                   TR0=0;
  32.                   led=1;
  33.                   jiare=1;
  34.                   biaozhi=1;
  35.                   delay(10);                 
  36.           }
  37.     }
  38.   }

  39. }

  40. //********************************************************//



  41. #define  uint unsigned int
  42. #define uchar unsigned char
  43. sbit SCK=P1^7;
  44. sbit CS =P1^6;
  45. sbit SO =P1^5;         //MAX6675接口

  46. sbit led=P1^0;
  47. sbit k4 =P3^3;         //強制加熱按鍵
  48. sbit jiare=P3^2; //加熱控制繼電器

  49. uint temp,m,c=0;
  50. uchar num,Flag_connect;
  51. char fen=10,miao=0;
  52. uchar biaozhi=0;

  53. uint Re_Convert();
  54. void anjian();
  55. void Temp_Change();
  56. void TIMER_INIT();
  57. uint Re_Convert(); //熱電偶數據讀取,返回溫度

  58. void delay(uint x)
  59. {
  60.         uint i,j;
  61.         for(i=x;i>0;i--)
  62.           for(j=440;j>0;j--);
  63. }


  64. void TIMER_INIT()
  65. {
  66.         TH0=(65536-50000)/256;// 給高8位賦值
  67.     TL0=(65536-50000)%256;//給低8位賦值
  68.     TMOD=0X01;// 設置T0工作方式為1,定時模式
  69.         TR0=1;//  開始定時器0
  70.     ET0=1;// 開始定時器0中斷
  71.         EA=1;

  72.         led=0;
  73.         jiare=0;  //加熱開
  74. }


  75. void anjian()          //按鍵掃描
  76. {
  77.         if(k4==0)                                 //強制加熱
  78.         {
  79.                   delay(10);
  80.                 if(k4==0)
  81.                 {
  82.                    while(k4==0)
  83.                    {
  84.                                    delay(10);
  85.                                 m++;                                
  86.                    }
  87.                    if(m>=200)
  88.                         {
  89.                                 biaozhi=2;
  90.                                 m=0;
  91.                         }
  92.                         if(m>0&&m<200)
  93.                         {
  94.                            m=0;
  95.                            biaozhi++;
  96.                            if(biaozhi>=2)
  97.                            biaozhi=0;
  98.                         }
  99.                 }
  100.         }
  101.         
  102. }

  103. void Temp_Change()           //加熱狀態切換
  104. {

  105.         if(Flag_connect==0)          //判斷k型熱電偶是否連接
  106.         {
  107.                 if(temp<=220)           //判斷加熱盤溫度是否過高,即是否放鍋        
  108.                 {
  109.                         if(biaozhi==0)                   //加熱狀態
  110.                         {
  111.                           led=0;
  112.                           jiare=0;          //加熱開
  113.                           TR0=1;          //定時器開
  114.                         }

  115.                         if(biaozhi==1)                 //恒溫狀態
  116.                         {
  117.                           TR0=0;          //定時器關                  
  118.                       miao=0;                          
  119.                       fen=10;          //加熱時間復位
  120.                           if(temp>=80)
  121.                           {
  122.                                   jiare=1;        //加熱關
  123.                                 
  124.                           }
  125.                           else               
  126.                           {
  127.                                   if(temp<=75)
  128.                                 {
  129.                                   jiare=0;          //加熱開
  130.                                 }
  131.                           }
  132.                           delay(180);
  133.                           c++;
  134.                           if(c>=5)
  135.                           {                          
  136.                                 led=~led;
  137.                                 c=0;
  138.                           }
  139.                         }
  140.                         if(biaozhi==2)
  141.                         {
  142.                                 led=1;
  143.                                 jiare=1;
  144.                         }                        
  145.                 }
  146.                 else                         //        加熱盤溫度是過高,
  147.                 {
  148.                         led=1;
  149.                         jiare=1;        //加熱關閉
  150.                 }
  151.         }
  152.    else          //Flag_connect為1表示 熱電偶未連接,
  153.    {
  154.                     led=1;
  155.                         jiare=1;        //加熱關閉
  156.         }        
  157. }

  158. uint Re_Convert() //熱電偶數據讀取,返回溫度
  159. {
  160.         unsigned char i;   
  161.         unsigned int dat;
  162.          
  163.         i   = 0;   
  164.         dat = 0;
  165.         CS  = 1;
  166.         _nop_();   
  167.         
  168.         CS  = 0;
  169.         _nop_();
  170.         _nop_();
  171.         SCK = 0;     
  172.         _nop_();
  173.         for(i=0; i<16; i++)                //get D15-D0 from 6675  
  174.         {      
  175.                 SCK = 1;   
  176.                 dat = dat<<1;
  177.                   
  178.                 if( SO==1 )   
  179.                         dat = dat|0x01;
  180.                 else
  181.                     dat=dat|0x00;
  182.                           
  183.                 SCK = 0;
  184.                 _nop_();   
  185.         }
  186.         CS = 1;
  187.         Flag_connect=dat&0x04;                         //讀出數據的D2位是熱電偶掉線標志位,該位為1表示掉線,
  188.                                             //該位為0表示連接
  189.     Flag_connect=Flag_connect>>2;         //MAX6675是否在線
  190.         
  191.         dat = dat<<1;                                                   //讀出來的數據的D3~D14是溫度值
  192.     dat = dat>>4;
  193.     dat = dat/4;                                                //測得的溫度單位是0.25,所以要乘以0.25
  194.         return dat;   

  195. }
復制代碼



作者: admin    時間: 2017-6-8 17:34
絕對好資料啊,樓主能分享下頭文件嗎?最好傳個工程壓縮包啊
作者: 寧采塵    時間: 2017-6-9 08:20
admin 發表于 2017-6-8 17:34
絕對好資料啊,樓主能分享下頭文件嗎?最好傳個工程壓縮包啊

#include <REGX52.H>、#include "intrins.h"這兩個KEil自帶。
#include "dingyi.c"已用分割符在文中區分開來了,后半部分就是。
作者: 寧采塵    時間: 2017-6-9 13:36
匹配PCB板的程序

WN_CDG溫控板程序.rar

31.33 KB, 下載次數: 23, 下載積分: 黑幣 -5






歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 亚洲精品视频免费看 | 日韩精品久久久久久 | 亚洲一区二区三区在线视频 | 国产精品一区网站 | 久久亚洲一区二区三 | 在线中文字幕第一页 | 天天干天天操天天爽 | 成人精品国产免费网站 | 成人做爰www免费看视频网站 | 一区二区三区四区毛片 | 色婷婷一区| 精品国产乱码久久久久久丨区2区 | www.日日干 | 一区二区中文 | 久久免费视频在线 | www.日韩| 神马久久久久久久久久 | 日韩中文字幕在线视频 | 国产精品99久久久久久动医院 | 国产一区视频在线 | 日本精品一区 | 国产高清视频 | 亚洲福利一区 | 黄色一级大片在线免费看产 | 手机看黄av免费网址 | 中文字幕在线人 | 欧美日韩精品综合 | 亚洲国产成人精品女人久久久 | 久草久草久草 | 一区二区在线免费观看视频 | 久久综合久久久 | 偷拍自拍网 | 一级爱爱片 | 成年人黄色一级片 | www.国产视频 | 岛国av一区二区 | 97视频在线免费 | 美女视频一区 | 中文字幕视频在线观看 | 97在线观视频免费观看 | 日韩一区二区三区视频 |