溫度報(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)例程 
0.png (66.26 KB, 下載次數(shù): 23)
下載附件
2018-3-5 04:34 上傳
觸發(fā)啟動(dòng)停止繼電器通、斷時(shí)間都可調(diào)控制單片機(jī)源程序如下:
- /********************************************************************
- 按鍵調(diào)節(jié)延時(shí)控制類
- 實(shí)現(xiàn)功能:帶停止,啟動(dòng)控制繼電器通、斷時(shí)間都可調(diào)控制程序(eeprom)
- 使用芯片:STC12C5204AD
- 晶振:11.0592MHZ
- 編譯環(huán)境:Keil
- 硬件環(huán)境:四位數(shù)顯兩路輸入三按鍵
- 作者:yang
- QQ:790244909
- /********************************************************************
- /********************************************************************
- 功能說明:繼電器循環(huán)通斷控制程序
- 繼電器接通、斷開時(shí)間都可調(diào),
- IN1啟動(dòng)按鍵,短接GND,注意該觸發(fā)端電壓不能高于5V,否則燒壞單片機(jī)
- IN2停止按鍵,短接GND,注意該觸發(fā)端電壓不能高于5V,否則燒壞單片機(jī)
- key1功能鍵:調(diào)節(jié)模式與實(shí)時(shí)顯示模式轉(zhuǎn)換
- keynum=0:實(shí)時(shí)顯示計(jì)時(shí)模式
- keynum=1:調(diào)整繼電器設(shè)定閉合秒
- keynum=2:調(diào)整繼電器設(shè)定閉合分
- keynum=3:調(diào)整繼電器設(shè)定斷開秒
- keynum=4:調(diào)整繼電器設(shè)定斷開分
- 以上四個(gè)設(shè)定值設(shè)定好后都存入eeprom,掉電可記憶
- 上電時(shí),繼電器吸合,數(shù)顯開始計(jì)時(shí),到達(dá)設(shè)定閉合時(shí)間后斷開;數(shù)顯清零,
- 數(shù)顯開始計(jì)時(shí),到設(shè)定時(shí)間,繼電器閉合,數(shù)顯清零。。。
- 循環(huán)下去。。
- 設(shè)定斷開時(shí)間最大是99分59秒
- 設(shè)定閉合時(shí)間最大是99分59秒
- ********************************************************************/
- #include<STC12C5A60S2.H> //庫文件
- #include <intrins.h>
- #include"eprom.h"
- #define uchar unsigned char//宏定義無符號(hào)字符型
- #define uint unsigned int //宏定義無符號(hào)整型
- #define DUAN P2 //P0口控制段
- #define WEI P1 //P2口控制位
- //輸入控制端
- sbit IN1=P1^6;
- sbit IN2=P1^7;
- sbit jdq= P3^7;
- sbit key1=P3^2; //功能按鍵
- sbit key2=P3^3; //增加
- sbit key3=P3^4; //減小
- /********************************************************************
- 初始定義
- *********************************************************************/
- code uchar seg7code[10]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //顯示段碼 數(shù)碼管字跟
- uchar wei[4]={0X01,0X02,0X04,0X08}; //位的控制端
- uchar numb[4]; //定義字符串
- uchar cnt,keynum;
- uchar setfen,setmiao;
- uchar setdf,setdm;
- uchar miao,fen;
- void IapEraseSector(uint addr);
- void IapProgramByte(uint addr,uchar dat);
- uchar IapReadByte(uint addr);
- bit flag=1; //閉合斷開標(biāo)志位
- /********************************************************************
- 延時(shí)函數(shù)
- *********************************************************************/
- void delay(uchar x) //延時(shí)程序 0.1秒
- {
- uchar m,n,s;
- for(m=x;m>0;m--)
- for(n=20;n>0;n--)
- for(s=248;s>0;s--);
- }
- /********************************************************************
- 顯示函數(shù)
- *********************************************************************/
- void display(uchar a ,uchar b) //顯示函數(shù)
- {
- WEI&=0XF0;
- DUAN=seg7code[a/10];
- WEI|=wei[0];
- delay(2);
- WEI&=0XF0;
- DUAN=seg7code[a%10]&0x7f;
- WEI|=wei[1];
- delay(2);
- WEI&=0XF0;
- DUAN=seg7code[b/10];
- WEI|=wei[2];
- delay(2);
- WEI&=0XF0;
- DUAN=seg7code[b%10];
- WEI|=wei[3];
- delay(2);
-
- WEI&=0XF0;
- }
- /********************************************************************
- 按鍵掃描
- *********************************************************************/
- void keyscan(void)
- {
- if(key1==0)
- { delay(1);
- if(key1==0)
- {
- while(!key1);
- keynum++;
- if(keynum>=1&&keynum<=4)
- {
- TR0=0;
- cnt=0;
- miao=0;
- jdq=1;
- fen=0;
- }
- if(keynum>=5)
- {
- keynum=0;
- miao=fen=0;
- TR0=1;
- jdq=0;
- }
- }
- }
- switch(keynum)
- {
- case 1: if(key2==0)
- {
- delay(5);
- if(key2==0)
- {
- while(!key2)display(setfen,setmiao);
- setmiao++;
- if(setmiao>59)
- setmiao=59;
- IapEraseSector(0);
- IapProgramByte(0,setmiao); //寫入函數(shù)
- }
- }
- if(key3==0)
- {
- delay(5);
- if(key3==0)
- {
- while(!key3)display(setfen,setmiao);
- setmiao--;
- if(setmiao==0||setmiao>=250)
- setmiao=0;
- IapEraseSector(0);
- IapProgramByte(0,setmiao); //寫入函數(shù)
- }
- }
- display(setfen,setmiao);
- break;
- case 2: if(key2==0)
- {
- delay(5);
- if(key2==0)
- {
- while(!key2)display(setfen,setmiao);
- setfen++;
- if(setfen>99)
- setfen=99;
- IapEraseSector(512);
- IapProgramByte(512,setfen); //寫入函數(shù)
- }
- }
- if(key3==0)
- {
- delay(5);
- if(key3==0)
- {
- while(!key3)display(setfen,setmiao);
- setfen--;
- if(setfen==0||setfen>=250)
- setfen=0;
- IapEraseSector(512);
- IapProgramByte(512,setfen); //寫入函數(shù)
- }
- }
- // display(setfen,setmiao);
- break;
- case 3:
- if(key2==0)
- {
- delay(5);
- if(key2==0)
- {
- while(!key2)display(setdf,setdm);
- setdm++;
- if(setdm>59)
- setdm=59;
- IapEraseSector(0);
- IapProgramByte(0,setmiao); //寫設(shè)定閉合時(shí)間秒
- IapProgramByte(1,setdm); //寫設(shè)定斷開時(shí)間秒
- }
- }
- if(key3==0)
- {
- delay(5);
- if(key3==0)
- {
- while(!key3)
- display(setdf,setdm);
- setdm--;
- if(setdm==0||setdm>=250)
- setdm=0;
- IapEraseSector(0);
- IapProgramByte(0,setmiao); //寫設(shè)定閉合時(shí)間秒
- IapProgramByte(1,setdm); ////寫設(shè)定斷開時(shí)間秒
- }
- }
- break;
- case 4:if(key2==0)
- {
- delay(5);
- if(key2==0)
- {
- while(!key2)
- display(setdf,setdm);;
- setdf++;
- if(setdf>10)
- setdf=10;
- IapEraseSector(512);
- IapProgramByte(512,setfen); //寫設(shè)定閉合時(shí)間分
- IapProgramByte(513,setdf); //寫設(shè)定斷開時(shí)間秒
- }
- }
- if(key3==0)
- {
- delay(5);
- if(key3==0)
- {
- while(!key3)
- display(setdf,setdm);
- setdf--;
- if(setdf==0||setdf>=250)
- setdf=0;
- IapEraseSector(512);
- IapProgramByte(512,setfen); //寫設(shè)定閉合時(shí)間分
- IapProgramByte(513,setdf); //寫設(shè)定斷開時(shí)間分
- }
- }
- //
- break;
- default : break;
- }
- }
- /********************************************************************
- 定時(shí)器T0初始化
- *********************************************************************/
- void cshh()
- {
- TMOD|=0X01; //定義定時(shí)器工作方式
- TH0=(65535-50000)/256;
- TL0=(65535-50000)%256;
- ET0=1;
- // TR0=1; //開定時(shí)器
- EA=1; //開中斷
- }
- /********************************************************************
- 初始化函數(shù)
- *********************************************************************/
- void init_all(void)
- {
- P2M1=0;
- P2M0=0xff;
- P1M1=0;
- P1M0=0x0f;
- P3M1&=0x7f;
- P3M0|=0x80;
- P3=0xff;
- }
- /********************************************************************
- 主函數(shù)
- *********************************************************************/
- void main()
- {
- init_all();
- setfen=IapReadByte(512); //讀設(shè)定閉合分鐘
- setdf= IapReadByte(513); //讀設(shè)定斷開分鐘
- setmiao=IapReadByte(0); //讀設(shè)定閉合秒鐘
- setdm=IapReadByte(1); //讀設(shè)定斷開秒鐘
- cshh();
- while(1)
- {
- if(keynum==0) //實(shí)時(shí)計(jì)時(shí)模式
- {
- display(fen,miao);
- }
- if(keynum>0&&keynum<3) //設(shè)定閉合分和秒模式
- display(setfen,setmiao);
- if(keynum>=3&&keynum<5) //設(shè)定斷開分和秒模式
- display(setdf,setdm);
- keyscan();
- if(IN1==0)
- {
- delay(5);
- if(IN1==0)
- {
- TR0=1;
- cnt=0;
- miao=0;fen=0;
- jdq=0; //定時(shí)器初始化
- while(!IN1);
- }
- }
- if(IN2==0)
- {
- delay(5);
- if(IN2==0)
- {
- TR0=0;
- jdq=1; //定時(shí)器初始化
- ……………………
- …………限于本文篇幅 余下代碼請從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
0.png (43.93 KB, 下載次數(shù): 24)
下載附件
2018-3-5 04:36 上傳
全部資料51hei下載地址:
兩入一出數(shù)顯按鍵溫度發(fā)貨資料.7z
(7.39 MB, 下載次數(shù): 55)
2018-3-2 11:43 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|