久久久久久久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://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 五月天激情综合网 | 久久精品视频网站 | 最新日韩在线视频 | 色精品| 91久久久久| 久久精品国产亚洲夜色av网站 | 高清人人天天夜夜曰狠狠狠狠 | 91视频在线网站 | 日韩视频一区二区在线 | 99久久精品免费看国产免费软件 | 久久蜜桃av一区二区天堂 | 欧美一区二区在线观看视频 | 日韩av成人 | 国产日韩欧美激情 | 欧美综合国产精品久久丁香 | 日本精品免费在线观看 | 天堂综合| 在线免费视频一区 | 中文字幕av色 | 激情 婷婷| 久久久av | 国产一区二区三区视频免费观看 | 天天干天天爱天天 | 国产精产国品一二三产区视频 | 国产一区二区久久 | 日韩成人精品一区 | 国产成人一区二区三区电影 | 国产精品精品3d动漫 | 精品在线一区 | 亚洲成人精品一区 | 91久操网| 欧美一级毛片免费观看 | 欧美福利三区 | 日韩av在线一区二区三区 | 亚洲欧美激情视频 | 欧美成人免费在线 | 国产精品片 | 天天综合日日夜夜 | 伊人伊人伊人 | 免费不卡视频 | 国产精品久久久久久久久久久久久久 |