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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5853|回復: 3
打印 上一主題 下一主題
收起左側

基于單片機設計的讀取K型感溫頭并控制強電設備的系統

[復制鏈接]
跳轉到指定樓層
樓主
ID:209219 發表于 2017-6-8 15:36 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
溫度傳感器種類繁多,在學校比較常用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. }
復制代碼


評分

參與人數 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏5 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1 發表于 2017-6-8 17:34 | 只看該作者
絕對好資料啊,樓主能分享下頭文件嗎?最好傳個工程壓縮包啊
回復

使用道具 舉報

板凳
ID:209219 發表于 2017-6-9 08:20 | 只看該作者
admin 發表于 2017-6-8 17:34
絕對好資料啊,樓主能分享下頭文件嗎?最好傳個工程壓縮包啊

#include <REGX52.H>、#include "intrins.h"這兩個KEil自帶。
#include "dingyi.c"已用分割符在文中區分開來了,后半部分就是。
回復

使用道具 舉報

地板
ID:209219 發表于 2017-6-9 13:36 | 只看該作者
匹配PCB板的程序

WN_CDG溫控板程序.rar

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

評分

參與人數 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

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

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美精品a∨在线观看不卡 欧美日韩中文字幕在线播放 | 一区免费观看 | 亚洲综合婷婷 | 91国内外精品自在线播放 | 亚洲精品乱码久久久久久黑人 | 在线视频成人 | 亚洲欧美日本在线 | 阿v视频在线观看 | 91av精品| 日日夜夜狠狠操 | 黄色成人在线观看 | 欧美精品一区二区三区在线播放 | 亚洲三级国产 | 337p日本欧洲亚洲大胆鲁鲁 | 欧美一级特黄aaa大片在线观看 | 国产一区在线免费 | 国产成人午夜精品影院游乐网 | 久久综合久 | av免费成人| 亚洲精品乱码久久久久久按摩观 | 亚洲一区二区视频 | 色婷婷精品国产一区二区三区 | 中文字幕精品一区二区三区精品 | 日韩精品专区在线影院重磅 | 毛片.com | 日韩一级一区 | 日本精品一区二区在线观看 | 亚洲一区 中文字幕 | 成人免费区一区二区三区 | 亚洲天堂免费在线 | 美日韩精品 | 欧美在线国产精品 | 一二三在线视频 | 狠狠久久 | 欧美激情精品久久久久 | 日本三级全黄三级a | 玖玖操| 亚洲免费网 | 日本不卡免费新一二三区 | 免费黄色在线 | 精品伊人久久 |