筆者在電子市場購買了一塊3.6V450mAh的鋰離子充電本文介紹一種以AT89C51單片機為核心的低成本溫度控制實驗系統(tǒng)。該系統(tǒng)采用溫度傳感器DS18820實現一線數字式測溫,經過PID算法輸出PWM波,再由PWM信號控制固態(tài)繼電器,調節(jié)熱阻絲發(fā)熱功率,最終達到控制被控對象溫度的目的,該系統(tǒng)還擴展了人機接口和串口通信,實現溫度設定、控制及圖像顯示。
硬件設計
1.總體設計
系統(tǒng)結構框圖如圖1所示,以AT89C51單片機為控制核心,DS18820電池,外型尺寸完全符合原機的內部空間要求。按照正確的正負極性焊連到電路中即可完成電池的更換工作。實際使用效果極佳,連續(xù)播放時間超過了7個小時(圖4)。測量被控溫度,外圍電路包括人機接口的按鍵與數碼顯示電路、溫度讀取與控制驅動電路以及與上位機串行通信電路。用戶通過按鍵設定加熱溫度后,系統(tǒng)啟動加熱“熱得快”燒水。當前水溫經過DS18820測量送給單片機,單片機經PID校正后輸出PWM信號,然后通過固態(tài)繼電器驅動熱得快加熱,最終使水溫保持在設定值上,誤差不超過O.1℃。
單片機系統(tǒng)通過串口與上位PC機實現通訊,上位機實現溫度、溫度曲線顯示以及PID參數的設定,用戶通過上位機可以清晰地看到設定的PID參數所產生的控制作用,如系統(tǒng)的微調、時間等參數。
2溫度測試模塊
系統(tǒng)選用美國DALLAS公司生產的單總線DS18820數字式溫度傳感器作為溫度模塊,引腳圖如下圖所示。
DS18820具有體積小、經濟、使用方便靈活、測試精度高、性價比高、CRC校驗功能等特點,溫度測量范圍為-55+125℃,可編程為9位~12位A/D轉換精度,測溫分辨率達0.0625℃,被測溫度采用帶符號位擴展的16位數字方式串行輸出。其工作電源即可在遠端引入,也可采用寄生電源方式產生,多個DS18820可以并聯到3根或2根線上,CPU只需一根端口線即可與多個DS18820通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。
文中的DS18820三引腳分別接公共電源+5V、電源地和單片機P1.O引腳,具體電路如下圖所示,由于DS18820為1-WIRE器件,只需在其信號線上加一個上拉電阻到+5V電源即可。
同時,每一個DS18820均有唯一系列號,即允許在不同地方放置溫度靈敏器件,通過SearchRom指令選擇不同的DS18820芯片,實現溫度的多點監(jiān)測,如HVAC環(huán)境控制、建筑物、設備或機械內溫度檢測、過程溫度監(jiān)視和控制等。
3鍵盤及顯示電路模塊
本系統(tǒng)采用PT6961驅動控制電路同時驅動鍵盤與數碼管。PT6961為帶有鍵盤掃描接口的LED驅動控制專用電路,內部集成MCU數字接口、數據鎖存器、LED高壓驅動、鍵盤掃描等電路。主要應用于VCR、VCD、DVD及家庭影院等產品的顯示屏驅動、多種顯示模式(11段×7位~14段×4位)、鍵掃描(10×3bit)電路、灰度調節(jié)電路(占空比8級可調),與單片機實現串行數據傳輸,節(jié)省了單片機引腳。PT6961可以自己驅動顯示和鍵盤模塊電路,可實現串行數據傳輸,同日寸對時序要求較高。
單片機的P0.6引腳與PT6961的時鐘線相連,控制時序;P0.7引腳與PT6961的片選端相連,選通芯片,P0.4、PO.5引腳與PT6961的DOUT、DIN端相連,進行數據和指令的串行傳輸,具體的傳輸數據仍由單片機編程控制。PT6961在cLOCk端產生下降沿時,讀取DIN口的數據,在clock端產生上升沿時,在DOUT口產生按鍵寄存器值可供單片機讀取。硬件連接電路如下圖所示,該芯片可以同時驅動(8~14)段×(4~7)位數碼管和3×10個按鍵,本文選用驅動6個數碼管和1×6個按鍵。
4.執(zhí)行模塊
系統(tǒng)采用固態(tài)繼電器(SSR)控制熱得快電源,固態(tài)繼電器是一種四端器件,兩個輸人端,兩個輸出端,輸入端接控制信號,輸出端與負載、電源串聯,SSR實際是一個受控電力電子開關。
單片機經PID算法,從P1.5口輸出PWM波,經ULN2003反相驅動后,作為SSR的控制信號,如圖5所示,在固態(tài)繼電器輸出端接兩個二端口插件,方便引線串入熱得快插線中。由于SSR與熱得快接口是整個系統(tǒng)和電路板唯一一塊強電部分,為將其對弱電部分的干擾降到最低,弱電電路線遠離該部分電路,且不共地,接線端子的腳間距應大于SSR的腳間距。
5.串行通信模塊
本系統(tǒng)采用串口實現單片機與上位計算機的連接,單片機向上位機傳送溫度值,上位機顯示該值,并畫出溫度變化曲線圖,反應溫度的變化情況,同時上位機可以調整PID參數,使系統(tǒng)適用于不同的對象。串行通信連接如下圖所示,其中5個電容均取O.1μF的典型值,串口
DB9的5端為公共端接地端,2、3端則分別連接信號的接收端和發(fā)送端,該電路完成TTL電平與RS232電平轉換,DB9接口通過交叉串口線連接到PC機上,完成硬件的串行通信。
軟件設計
為加強程序的可讀性、可移植性和便于調試,系統(tǒng)軟件設計采用模塊化思想,程序運行時,通過主程序調用各子程序模塊。本文主程序流程如下圖所示,軟件設計主要講述DS18820信號處理子程序和串口通信子程序。
1.DS18820信號處理子程序
DSl8820為1-wire制器件,采用一根信號線即可與單片機進行串行通信,簡化了硬件電路,但是,在軟件設計中須進行復雜的時序控制。DS1820單線通信功能為分日寸完成,有嚴格的時隙概念,系統(tǒng)對DS1820的各種操作必須按協議進行。
操作協議為:初始化DS1820(發(fā)復位脈沖)→發(fā)ROM功能命令→發(fā)存儲器操作命令→處理數據,DS18820操作程序流程如下圖所示。
本文只有一個DSl8820掛在總線上,因此每次對總線進行讀寫日寸,可跳過讀ROM指令,為提高測溫精度,文中采用默認的12位數碼轉換,即0.0625度/位,程序如下:
#include
sbit DQ=P1^O;
void Init_DS18820();
WriteOneChar(unsigned char dat);
char ReadOneChar();
void deIay(unsigned int i);
unsigned int ReadTemperature()
{
unsigned char a=0,c=O:
unsigned char b=O;
unsigned int t=O;
float tt=0;
Init_DS18820();
WriteOneChar(0xCC);
/*跳過讀序號列號的操作*/
WriteOneChar(Ox44);
/*啟動溫度轉換*/
Init_DS18820();
WriteOneChar(OxCC);
/*跳過讀序號列號的操作*/
WriteOneCha r(0xBE);
/*讀取溫度寄存器等(共可讀9個寄
存器)前兩個就是溫度*/
a=ReadOneChar();
/*Read the low byte of the tem-perature*/
b=ReadOneChar();
/*high*/
c=a;
a>>=4;
b<<=4;
t=aㄧb;
, c&=0x0F;
tt=c;
tt*=0.0625;
c=tt*1 0+0.5;
t=t*1 0+c;
return t;
/*溫度轉化,位了避免浮點數運算,
盡量用整形數據運算,這樣可以減輕CPU負擔*/
}
void Init_DS18820()
/*初始化函數*/
{
unsigned char x=0;
DQ=1;
/*DQ復位*/
delay(8);
/*稍做延時*/
DQ=0;
/單片機將DQ拉低*/
delay(80);
/*精確延時大于480μs*/
DQ=1;
/*拉高總線*/
delay(1 4):
x=DQ;
/*稍做延時后,如果x=0則初始化
成功x=1則初始化失敗*/
}
char ReadoneChar()
/*讀一個字節(jié)*/
{
unsigned char i=O;
unsigned char dat=O;
for(i=8;i>O;i--)
{
DQ=0:
/*給脈沖信號*/
dat>>=1;
DQ=1;
/*給脈沖信號*/
if(DQ)
datl=Ox80;
delay(4);
}
return(dat);
}
WriteOneChar(unsigned char dat)
/*寫一個字節(jié)*/
{
unsigned char i=O;
for(i=8:i>O:i--)
{
DO=0;
DQ=dat&Ox01;
delay(5);
DQ=1:
dat>>=1;
}
delay(4);
}
void delay(unsigned int i)
/*延時函數*/
{
while(i--);
}
2,串行通信程序設計
單片機通過引腳RXD(P3.O,串行數據接收端)和引腳TXD(P3.1,串行數據發(fā)送端)與外界通訊,SBUF為串行口緩沖寄存器,包括發(fā)送寄存器和接收寄存器,具有相同名字和地址空間,但不會出現沖突,因為其中一個只能被CPU讀出數據,另一個只能被CPU寫入數據。
單片機的串行口的四種工作方式中,方式0和2的波特率是固定的,方式1和3的波特率是可變的,由定時器T1的溢出率控制,方式2為自動重裝入初值的8位定時器/計數器模式,作為本文的波特率發(fā)生器。
上位機編程中,本文采用最常用的通信控件MSComm,實現可視化界面。MSComm控件的常用屬性有:Comm-Port設置并返回通訊端口號:Settings以字符串的形式設置并返回波特率、奇偶校驗、數據位、停止位;PortOpen設置并返回通訊端口的狀態(tài),也可以打開和關閉端口;Input從接收緩沖區(qū)返回和刪除字符;Output向傳輸緩沖區(qū)寫一個字符串。
串口初始化程序如下
BOOLJWDIg::OnInitDialog()
{
Comport SetCommPort(1):
if(!Comport GetPortOpen())
Comport.SetPortOpen(TRUE);
/*打開指定的串口*/
Comport.
SetlnputMode
(cOm-Input-
ModeBinary);
/*設置數據
獲取方式*/
Comport.
SetSettings
(“9600,n.8,1”);
/*設置波特率及其他通信
數*/
Comport.
SetRThreshOld
(n);
/*設定每接受n個字符觸發(fā)一次
MSComm事件*/
Comport.SetInputLen(0);
/設置讀取方式*/
Comport.GetInput();
/*預置緩沖區(qū)以清除殘留數據*/
return TRU E;
}
系統(tǒng)測試
本系統(tǒng)實現的電路實物圖如下圖所示,通過按鍵設置預定溫度,如81.7℃,設定PID參數,比例系數Kc=O.8、積分系數KI=O.007以及微分系數KD=5,設定PWM控制信號周期為20ms,采樣周期Ts=1S,測量的實驗數據經串行通信傳遞到上位機后實時顯示的響應曲線實驗中,測量溫度由低升高,最后與設定溫度值一致。
結論
本文介紹的溫控實驗系統(tǒng)即有單片機主控的可靠性,又有上位機監(jiān)測的方便性,同時基于1-Wire總線DS18820實現多路溫度測控,具有現場安裝簡單、控制方便、系統(tǒng)性能好、易于擴展和成本低等優(yōu)點,應用領域和市場前景非常廣。
上一篇:基于單片機的照明控制的可編程4 路無線開關系統(tǒng)的設計
下一篇:采用AT89S51單片機的沖床控制器設計
推薦閱讀
史海拾趣
隨著全球對環(huán)保和可持續(xù)發(fā)展的重視,DBM Optix也積極響應這一趨勢。公司在生產過程中注重節(jié)能減排、降低廢棄物排放等措施,同時積極開發(fā)環(huán)保型產品,以滿足客戶對綠色環(huán)保的需求。此外,DBM Optix還積極參與各種環(huán)保活動和社會公益事業(yè),為推動電子行業(yè)的可持續(xù)發(fā)展貢獻自己的力量。這些舉措不僅提升了公司的社會形象,也為公司的長遠發(fā)展奠定了堅實的基礎。
隨著電子行業(yè)的快速發(fā)展,Comchip Technology不斷追求技術創(chuàng)新和產品升級。公司通過大量研發(fā)投入,成功開發(fā)出了橋式整流器、高效快速整流器等一系列具有市場競爭力的產品。這些產品不僅提高了電子設備的性能,還降低了能耗,贏得了客戶的廣泛認可。
Acmelux Taiwan Inc公司自成立以來,一直致力于電子技術的研發(fā)與創(chuàng)新。早期,公司憑借一款具有獨特功能的半導體產品,成功打破了市場的固有格局,贏得了眾多客戶的青睞。隨著技術的不斷迭代,Acmelux逐漸在芯片設計、封裝測試等領域取得了突破,成為行業(yè)內的技術領軍者。公司通過持續(xù)的研發(fā)投入,不僅鞏固了現有市場地位,還積極拓展新的應用領域,為公司的長遠發(fā)展奠定了堅實基礎。
Delta Electronics成立于1971年,最初只是臺灣一家小型電子制造公司。隨著技術的不斷進步和市場的擴大,公司逐漸開始拓展其業(yè)務范圍。上世紀90年代初,Delta在中國大陸設立了生產基地,這標志著公司全球擴展戰(zhàn)略的重要一步。隨后,公司陸續(xù)在美國、歐洲、亞洲等地建立了研發(fā)中心和生產基地,為全球客戶提供優(yōu)質的電子產品和解決方案。
某新興顯示技術公司,將量子點技術應用于顯示屏中,成功提升了顯示效果和色彩表現。量子點技術通過精確控制發(fā)光材料的尺寸和組成,實現了更廣的色域覆蓋和更高的色彩準確性。這一技術的應用,使得顯示屏在色彩還原、對比度等方面有了顯著提升,為用戶帶來了更加真實、生動的視覺享受。
專家面對面--- 紅外技術應用前景 你提問題,專家回答(問題現在開始收集) 活動時間: 2009年6月23日 上午10:00 - 11:30 紅外技術應用前景廣闊,將紅外技術與可視光成像有機地結合成一體,可同時對有光源和無光源情況下的環(huán)境進行安全監(jiān)視。 關于紅外技術的相關問題,都可以想專家提問,問題現在已經開始收集! ...… 查看全部問答∨ |
今天想去整一臺快克969A的焊臺,于是去了賽格,逛了4家,竟然發(fā)現全部都在賣假冒的快克。最后一家在我的威逼利誘下終于拿出了一臺真的,哎。買點真貨那么難嗎 下面是我的鑒別快克真假的方法,僅供參考: 1、真快克的電源插頭是圓的大頭,假的是 ...… 查看全部問答∨ |
DESCRIPTION This routine logs a specified message via the logging task. This routine\'s syntax is similar to printf( ) -- a format string is followed by arguments to format. However, the logMsg( ) routine takes a char * rather th ...… 查看全部問答∨ |
|
我的PDA的屏幕分辨率時240*320的,有時候自己設計的對話框會超出屏幕的范圍,可是在EVC資源編輯視圖的右下角顯示的都不到240*320的大小啊,為什么一下載到機器里面就會超出很多? 是不是EVC資源編輯視圖右下角顯示的((0,0)(125,125))不是象 ...… 查看全部問答∨ |
|
有誰用過ICL7135(AD)芯片沒? 大家認為7135的轉換速度怎么樣啊?我現在在用感覺速度好象不行,我想用一個16位的AD,和430F149相連,請問高手指點幾塊速度快一點的!!最好不是串口輸出的(個人覺得串口的數據不太可靠)!! 還有,請專家 ...… 查看全部問答∨ |
本帖最后由 jameswangsynnex 于 2015-3-3 20:00 編輯 到手幾張機頂盒的主板,但沒有控制板,更沒有連接圖。想用上去,不知道那個大蝦有見過或者此資料。謝謝 … 查看全部問答∨ |
非庫方式新建工程的總結 1、 建立工作目錄 E:\\workspace_v5_2\\TMS320F28027 E:\\workspace_v5_2\\TMS320F28027\\project E:\\workspace_v5_2\\TMS320F28027\\f2802x_common E:\\workspace_v5_2\\TMS320F28027\\f2802x_headers 2、 &n ...… 查看全部問答∨ |