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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4160|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

兩路AD輸入繼電器輸出數(shù)顯按鍵溫度報(bào)警開關(guān)模塊(單片機(jī)源碼+電路圖資料)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
溫度報(bào)警開關(guān)按鍵設(shè)定報(bào)警值
一、簡要說明
模塊尺寸:長88.1mmX寬44.7mm X 高20mm
工作電壓:直流12伏;
模塊功耗:0.03A(繼電器吸合)
主要芯片:STC12C5204AD或STC12C5604AD、LM7805
二、特點(diǎn):
1、 可編程(通過下載口下載),標(biāo)準(zhǔn)TTL接口
2、三個(gè)按鍵調(diào)節(jié),可以編程實(shí)現(xiàn)想要的調(diào)節(jié)功能
3、下載程序時(shí),通過USB轉(zhuǎn)TTL免斷電下載線,有需要顧客請點(diǎn)此
4、使用C語言編程,和普通51單片機(jī)編程一樣,使用keil軟件編程
5、有兩路路輸入控制端(低電平有效,即用電源負(fù)極觸發(fā))
6、兩路輸入也可做AD采集,采集0到5V電壓               
7、有電源帶指示燈
8、繼電器吸合時(shí)有指示燈
9、可控制交流220V/10A一下設(shè)備。(最大控制設(shè)備2000W)
10、提供程序免費(fèi)定制服務(wù)
11、提供相關(guān)程序例程、原理圖、使用說明和相關(guān)資料
、使用場合:
工業(yè)控制、汽車設(shè)備改裝、電子競賽、畢業(yè)設(shè)計(jì)、單片機(jī)學(xué)習(xí)等等
、接線說明:
1、DS18B20位置也可接10k電位器,通過編程采集電位器電壓值來,來實(shí)現(xiàn)各種延時(shí)時(shí)間的調(diào)節(jié)參數(shù)
2、三個(gè)按鍵調(diào)節(jié)可以通過編程實(shí)現(xiàn)各種調(diào)節(jié)功能,比如時(shí)間設(shè)定等
3、IN1和IN2兩路模擬量輸入,可以采集0到5V模擬電壓
、下載程序步驟:


1、下載硬件連接

2、使用stc下載軟件下載程序
六、默認(rèn)功能:
注意:如顧客無特殊要求,板子下載默認(rèn)功能程序
  • 溫度設(shè)定要有存儲(chǔ)功能,斷電重新啟動(dòng)時(shí),設(shè)定的溫度值有記憶。
  • 設(shè)定報(bào)警溫度值,設(shè)定溫度范圍是0到125度
  • 溫度設(shè)定用三個(gè)按鍵完成。分別為:key1功能鍵、key2調(diào)節(jié)鍵
  • 按鍵要有防抖動(dòng)功能。
  • 功能key1時(shí)顯示上次的溫度設(shè)定值。同時(shí)設(shè)定溫度的百位值閃爍,按上調(diào)鍵一次溫度升高一度,同理,再次按下功能鍵時(shí),十位進(jìn)行調(diào)節(jié)。。
  • 開機(jī)顯示設(shè)定溫度值,過5秒后顯示實(shí)測溫度。
  • 當(dāng)超過設(shè)定溫度值時(shí)繼電器吸合,低于設(shè)定溫度時(shí)斷開
、DS18B20簡介
DS18B20數(shù)字溫度傳感器接線方便,封裝成后可應(yīng)用于多種場合,如管道式,螺紋式,磁鐵吸附式,不銹鋼封裝式,型號(hào)多種多樣,有LTM8877,LTM8874等等。主要根據(jù)應(yīng)用場合的不同而改變其外觀。封裝后的DS18B20可用于電纜溝測溫,高爐水循環(huán)測溫,鍋爐測溫,機(jī)房測溫,農(nóng)業(yè)大棚測溫,潔凈室測溫,彈藥庫測溫等各種非極限溫度場合。耐磨耐碰,體積小,使用方便,封裝形式多樣,適用于各種狹小空間設(shè)備數(shù)字測溫和控制領(lǐng)域。
1: 技術(shù)性能描述
①、 獨(dú)特的單線接口方式,DS18B20在與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊。
② 、測溫范圍 -55℃~+125℃,固有測溫誤差(注意,不是分辨率,這里之前是錯(cuò)誤的)0.5℃。
③、支持多點(diǎn)組網(wǎng)功能,多個(gè)DS18B20可以并聯(lián)在唯一的三線上,最多只能并聯(lián)8個(gè),實(shí)現(xiàn)多點(diǎn)測溫,如果數(shù)量過多,會(huì)使供電電源電壓過低,從而造成信號(hào)傳輸?shù)牟环(wěn)定。
④、工作電源: 3~5V/DC
⑤ 、在使用中不需要任何外圍元件
⑥、 測量結(jié)果以9~12位數(shù)字量方式串行傳送
⑦ 、不銹鋼保護(hù)管直徑 Φ6
⑧ 、適用于DN15~25, DN40~DN250各種介質(zhì)工業(yè)管道和狹小空間設(shè)備測溫
⑨、 標(biāo)準(zhǔn)安裝螺紋 M10X1, M12X1.5, G1/2”任選
⑩ 、PVC電纜直接出線或德式球型接線盒出線,便于與其它電器設(shè)備連接
整板標(biāo)注
1、用于各類延時(shí),可用電位器調(diào)節(jié)延時(shí)時(shí)間
  • 如用電位器調(diào)節(jié)延時(shí)時(shí)間的話,最大調(diào)節(jié)時(shí)間范圍是0-255s
  • 如用按鍵調(diào)節(jié),最大調(diào)節(jié)時(shí)間是0-9999,具有掉電存儲(chǔ)功能
  • IN1和IN2兩路信號(hào)輸入端,可作為AD采樣輸入用
2、用于溫度控制
下載程序圖示
改裝晶振后485接口傳送溫度
產(chǎn)品展示
提供開發(fā)相關(guān)例程



觸發(fā)啟動(dòng)停止繼電器通、斷時(shí)間都可調(diào)控制單片機(jī)源程序如下:
  1. /********************************************************************
  2.                    按鍵調(diào)節(jié)延時(shí)控制類
  3. 實(shí)現(xiàn)功能:帶停止,啟動(dòng)控制繼電器通、斷時(shí)間都可調(diào)控制程序(eeprom)
  4. 使用芯片:STC12C5204AD
  5. 晶振:11.0592MHZ
  6. 編譯環(huán)境:Keil
  7. 硬件環(huán)境:四位數(shù)顯兩路輸入三按鍵
  8. 作者:yang
  9. QQ:790244909
  10. /********************************************************************   
  11. /********************************************************************
  12. 功能說明:繼電器循環(huán)通斷控制程序
  13. 繼電器接通、斷開時(shí)間都可調(diào),
  14. IN1啟動(dòng)按鍵,短接GND,注意該觸發(fā)端電壓不能高于5V,否則燒壞單片機(jī)
  15. IN2停止按鍵,短接GND,注意該觸發(fā)端電壓不能高于5V,否則燒壞單片機(jī)
  16. key1功能鍵:調(diào)節(jié)模式與實(shí)時(shí)顯示模式轉(zhuǎn)換
  17. keynum=0:實(shí)時(shí)顯示計(jì)時(shí)模式
  18. keynum=1:調(diào)整繼電器設(shè)定閉合秒
  19. keynum=2:調(diào)整繼電器設(shè)定閉合分
  20. keynum=3:調(diào)整繼電器設(shè)定斷開秒
  21. keynum=4:調(diào)整繼電器設(shè)定斷開分
  22. 以上四個(gè)設(shè)定值設(shè)定好后都存入eeprom,掉電可記憶
  23. 上電時(shí),繼電器吸合,數(shù)顯開始計(jì)時(shí),到達(dá)設(shè)定閉合時(shí)間后斷開;數(shù)顯清零,
  24.                     數(shù)顯開始計(jì)時(shí),到設(shè)定時(shí)間,繼電器閉合,數(shù)顯清零。。。
  25.                                         循環(huán)下去。。

  26. 設(shè)定斷開時(shí)間最大是99分59秒
  27. 設(shè)定閉合時(shí)間最大是99分59秒
  28. ********************************************************************/
  29. #include<STC12C5A60S2.H>                 //庫文件
  30. #include <intrins.h>
  31. #include"eprom.h"
  32. #define uchar unsigned char//宏定義無符號(hào)字符型
  33. #define uint unsigned int  //宏定義無符號(hào)整型

  34. #define DUAN P2          //P0口控制段
  35. #define WEI  P1          //P2口控制位
  36. //輸入控制端
  37. sbit IN1=P1^6;
  38. sbit IN2=P1^7;

  39. sbit jdq= P3^7;
  40. sbit key1=P3^2;        //功能按鍵
  41. sbit key2=P3^3;        //增加
  42. sbit key3=P3^4;        //減小
  43. /********************************************************************
  44.                             初始定義
  45. *********************************************************************/
  46. code uchar seg7code[10]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //顯示段碼 數(shù)碼管字跟
  47. uchar wei[4]={0X01,0X02,0X04,0X08};                                 //位的控制端
  48. uchar numb[4];              //定義字符串
  49. uchar cnt,keynum;
  50. uchar setfen,setmiao;
  51. uchar setdf,setdm;
  52. uchar miao,fen;
  53. void IapEraseSector(uint addr);
  54. void IapProgramByte(uint addr,uchar dat);
  55. uchar IapReadByte(uint addr);
  56. bit flag=1;        //閉合斷開標(biāo)志位
  57. /********************************************************************
  58.                             延時(shí)函數(shù)
  59. *********************************************************************/
  60. void delay(uchar x)    //延時(shí)程序 0.1秒
  61. {
  62.         uchar m,n,s;
  63.         for(m=x;m>0;m--)
  64.         for(n=20;n>0;n--)
  65.         for(s=248;s>0;s--);
  66. }
  67. /********************************************************************
  68.                             顯示函數(shù)
  69. *********************************************************************/        
  70. void display(uchar a ,uchar b)   //顯示函數(shù)
  71. {
  72.       WEI&=0XF0;
  73.           DUAN=seg7code[a/10];
  74.           WEI|=wei[0];
  75.           delay(2);

  76.           WEI&=0XF0;  
  77.       DUAN=seg7code[a%10]&0x7f;
  78.           WEI|=wei[1];
  79.           delay(2);

  80.           WEI&=0XF0;  
  81.              DUAN=seg7code[b/10];
  82.           WEI|=wei[2];
  83.           delay(2);

  84.           WEI&=0XF0;  
  85.       DUAN=seg7code[b%10];
  86.           WEI|=wei[3];
  87.           delay(2);
  88.           
  89.           WEI&=0XF0;
  90. }
  91. /********************************************************************
  92.                             按鍵掃描
  93. *********************************************************************/
  94. void keyscan(void)
  95. {
  96. if(key1==0)
  97. {  delay(1);
  98.     if(key1==0)
  99.     {
  100.            while(!key1);
  101.            keynum++;
  102.            if(keynum>=1&&keynum<=4)
  103.            {
  104.              TR0=0;
  105.                  cnt=0;
  106.                  miao=0;
  107.                  jdq=1;
  108.                  fen=0;
  109.            }

  110.            if(keynum>=5)
  111.            {
  112.              keynum=0;
  113.                  miao=fen=0;
  114.                  TR0=1;
  115.                  jdq=0;
  116.           }
  117.     }
  118.   }
  119.   switch(keynum)
  120.   {
  121.     case 1: if(key2==0)
  122.                 {
  123.                           delay(5);
  124.                           if(key2==0)
  125.                   {
  126.                                   while(!key2)display(setfen,setmiao);
  127.                                   setmiao++;
  128.                                   if(setmiao>59)
  129.                                      setmiao=59;
  130.                                   IapEraseSector(0);
  131.                                   IapProgramByte(0,setmiao);  //寫入函數(shù)
  132.                           }
  133.                          }
  134.                         if(key3==0)
  135.                         {
  136.                           delay(5);
  137.                           if(key3==0)
  138.                   {
  139.                             while(!key3)display(setfen,setmiao);
  140.                             setmiao--;
  141.                                 if(setmiao==0||setmiao>=250)
  142.                                   setmiao=0;
  143.                             IapEraseSector(0);
  144.                             IapProgramByte(0,setmiao);  //寫入函數(shù)
  145.                           }
  146.                         }
  147.                  display(setfen,setmiao);
  148.                         break;
  149.      case 2: if(key2==0)
  150.                  {
  151.                                   delay(5);
  152.                                   if(key2==0)
  153.                           {
  154.                                           while(!key2)display(setfen,setmiao);
  155.                                           setfen++;
  156.                                           if(setfen>99)
  157.                                          setfen=99;
  158.                                           IapEraseSector(512);
  159.                                           IapProgramByte(512,setfen);  //寫入函數(shù)
  160.                           }
  161.                          }
  162.                          if(key3==0)
  163.                          {
  164.                                   delay(5);
  165.                                   if(key3==0)
  166.                           {
  167.                                     while(!key3)display(setfen,setmiao);
  168.                                     setfen--;
  169.                                     if(setfen==0||setfen>=250)
  170.                                        setfen=0;
  171.                                     IapEraseSector(512);
  172.                                     IapProgramByte(512,setfen);  //寫入函數(shù)
  173.                                   }
  174.                         }
  175.                 //        display(setfen,setmiao);
  176.                         break;
  177.                 case 3:
  178.                     if(key2==0)
  179.                 {
  180.                           delay(5);
  181.                           if(key2==0)
  182.                   {
  183.                                   while(!key2)display(setdf,setdm);
  184.                                   setdm++;
  185.                                   if(setdm>59)
  186.                                      setdm=59;
  187.                                   IapEraseSector(0);
  188.                                   IapProgramByte(0,setmiao);  //寫設(shè)定閉合時(shí)間秒
  189.                                   IapProgramByte(1,setdm);  //寫設(shè)定斷開時(shí)間秒
  190.                           }
  191.                          }
  192.                         if(key3==0)
  193.                         {
  194.                           delay(5);
  195.                           if(key3==0)
  196.                   {
  197.                             while(!key3)
  198.                                 display(setdf,setdm);
  199.                             setdm--;
  200.                                 if(setdm==0||setdm>=250)
  201.                                   setdm=0;
  202.                             IapEraseSector(0);
  203.                             IapProgramByte(0,setmiao);  //寫設(shè)定閉合時(shí)間秒
  204.                                 IapProgramByte(1,setdm);  ////寫設(shè)定斷開時(shí)間秒
  205.                           }
  206.                         }
  207.                         break;
  208.                 case 4:if(key2==0)
  209.                  {
  210.                                   delay(5);
  211.                                   if(key2==0)
  212.                           {
  213.                                           while(!key2)
  214.                                           display(setdf,setdm);;
  215.                                           setdf++;
  216.                                           if(setdf>10)
  217.                                          setdf=10;
  218.                                           IapEraseSector(512);
  219.                                           IapProgramByte(512,setfen);  //寫設(shè)定閉合時(shí)間分
  220.                                           IapProgramByte(513,setdf);  //寫設(shè)定斷開時(shí)間秒
  221.                           }
  222.                          }
  223.                          if(key3==0)
  224.                          {
  225.                                   delay(5);
  226.                                   if(key3==0)
  227.                           {
  228.                                     while(!key3)
  229.                                         display(setdf,setdm);
  230.                                     setdf--;
  231.                                     if(setdf==0||setdf>=250)
  232.                                        setdf=0;
  233.                                     IapEraseSector(512);
  234.                                     IapProgramByte(512,setfen);  //寫設(shè)定閉合時(shí)間分
  235.                                         IapProgramByte(513,setdf);  //寫設(shè)定斷開時(shí)間分
  236.                                   }
  237.                         }
  238.                 //       
  239.                         break;
  240.          default : break;
  241.   }
  242. }
  243. /********************************************************************
  244.                            定時(shí)器T0初始化
  245. *********************************************************************/
  246. void cshh()
  247. {
  248.          TMOD|=0X01; //定義定時(shí)器工作方式
  249.          TH0=(65535-50000)/256;
  250.          TL0=(65535-50000)%256;
  251.          ET0=1;
  252.         // TR0=1;      //開定時(shí)器
  253.          EA=1;       //開中斷
  254. }
  255. /********************************************************************
  256.                             初始化函數(shù)
  257. *********************************************************************/
  258. void init_all(void)   
  259. {
  260.         P2M1=0;
  261.         P2M0=0xff;
  262.         P1M1=0;
  263.         P1M0=0x0f;
  264.         P3M1&=0x7f;
  265.         P3M0|=0x80;
  266.         P3=0xff;       
  267. }                  
  268. /********************************************************************
  269.                             主函數(shù)
  270. *********************************************************************/
  271. void main()
  272. {         
  273.         init_all();
  274.         setfen=IapReadByte(512);           //讀設(shè)定閉合分鐘
  275.         setdf= IapReadByte(513);                   //讀設(shè)定斷開分鐘
  276.         setmiao=IapReadByte(0);                          //讀設(shè)定閉合秒鐘
  277.         setdm=IapReadByte(1);                          //讀設(shè)定斷開秒鐘
  278.         cshh();
  279.         while(1)
  280.         {  
  281.            if(keynum==0)   //實(shí)時(shí)計(jì)時(shí)模式
  282.            {
  283.              display(fen,miao);
  284.            }
  285.            if(keynum>0&&keynum<3) //設(shè)定閉合分和秒模式
  286.              display(setfen,setmiao);
  287.            if(keynum>=3&&keynum<5) //設(shè)定斷開分和秒模式
  288.              display(setdf,setdm);
  289.        keyscan();
  290.            if(IN1==0)
  291.            {
  292.                       delay(5);
  293.                    if(IN1==0)
  294.                {
  295.                      TR0=1;
  296.                          cnt=0;
  297.                          miao=0;fen=0;
  298.                          jdq=0;                         //定時(shí)器初始化
  299.                          while(!IN1);
  300.                }
  301.            }
  302.             if(IN2==0)
  303.            {
  304.                       delay(5);
  305.                    if(IN2==0)
  306.                {
  307.                      TR0=0;
  308.                          jdq=1;                         //定時(shí)器初始化
  309. ……………………

  310. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼
011、三路模擬量采集并顯示(AD—UART發(fā)送)\
01、設(shè)定報(bào)警溫度范圍-55到125度\
01、設(shè)定報(bào)警溫度范圍-55到125度 - 共陰\
02、繼電器通、斷時(shí)間都可調(diào)控制程序(eeprom)\
04、0~5V模擬量采集顯示\
05、用電位器調(diào)節(jié)繼電器延時(shí)閉合(0到255秒)可調(diào)\
05、采用ADC控制繼電器延時(shí)通斷時(shí)間(0~255)秒、分可調(diào)\
06、接通電源延時(shí)30分鐘斷開2012.12.28\
07、繼電器循環(huán)通斷控制程序(eeprom)\
08、DS18B20基礎(chǔ)程序\
09、用電位器調(diào)節(jié)繼電器延時(shí)時(shí)間\
10、按鍵調(diào)節(jié)時(shí)間可調(diào)掉電記憶\
顧客定制\
01、設(shè)定報(bào)警溫度范圍-55到125度.zip



全部資料51hei下載地址:
兩入一出數(shù)顯按鍵溫度發(fā)貨資料.7z (7.39 MB, 下載次數(shù): 55)


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

使用道具 舉報(bào)

板凳
ID:243748 發(fā)表于 2018-3-7 00:32 來自觸屏版 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:1 發(fā)表于 2018-3-5 04:40 | 只看該作者
源碼注釋詳細(xì),值得學(xué)習(xí).
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久久久网站 | 亚洲国产欧美日韩 | 欧美日韩看片 | 日韩视频一区二区 | 国产欧美精品 | 精品久久久久一区 | 中文字幕第一页在线 | 色综合国产| 极品久久| 极情综合网 | 国产一区二区三区在线免费观看 | 成人国产精品色哟哟 | 国产高清精品在线 | 国产综合av| 在线成人免费视频 | 韩日精品在线观看 | 国产高清视频一区二区 | 天天拍天天插 | 日本不卡高字幕在线2019 | 国产精品久久久久久久久久尿 | 武道仙尊动漫在线观看 | 亚洲精美视频 | 国产精品久久 | 亚洲人va欧美va人人爽 | 777zyz色资源站在线观看 | 精品久久精品 | 欧美日韩国产在线 | 四虎影院美女 | 国产片淫级awww | 麻豆天堂 | 日本网站免费观看 | 91中文字幕在线 | 欧美一区二区三区一在线观看 | 国产精品欧美一区二区三区不卡 | 色婷婷av一区二区三区软件 | 亚洲成人精品免费 | 中文字幕中文字幕 | 91高清免费 | 国产色爽 | 羞羞视频一区二区 | 国产精品免费一区二区三区 |