基于直流PTC熱敏電阻恒溫控制系統(tǒng)的設(shè)計(jì)
3.3 數(shù)字溫度計(jì)DS18B20
DS18B20數(shù)字溫度計(jì)是DALLAS公司生產(chǎn)的1—Wire,即單總線器件,具有線路簡(jiǎn)單,體積小的特點(diǎn)。測(cè)量溫度范圍為-55℃~+125℃,在-10℃~85℃范圍內(nèi),精度為±0.5℃。DS18B20的精度檢查為±2℃。現(xiàn)場(chǎng)溫度直接以“一線總線”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性?! ?p style="text-align: left">由于DS18B20采用的是1—Wire總線協(xié)議方式,即在一根數(shù)據(jù)線實(shí)現(xiàn)數(shù)據(jù)的雙向傳輸,而對(duì)AT89C2051單片機(jī)來(lái)說(shuō),硬件上并不支持單總線協(xié)議,因此,必須采用軟件的方法來(lái)模擬單總線的協(xié)議時(shí)序來(lái)完成對(duì)DS18B20芯片的訪問(wèn)。該協(xié)議定義了幾種信號(hào)的時(shí)序:初始化時(shí)序、讀時(shí)序、寫時(shí)序。所有時(shí)序都是將主機(jī)作為主設(shè)備,單總線器件作為從設(shè)備,數(shù)據(jù)和命令的傳輸都是低位在先?! ?p style="text-align: left">3.4 單片機(jī)控制多路繼電器
單片機(jī)控制繼電器如圖1所示,圖中只給出一路繼電器的控制電路接法,它占用了單片機(jī)P3口的一位,多路繼電器可通過(guò)占用不同引腳實(shí)現(xiàn),本系統(tǒng)使用P3口的3位控制3路繼電器。PTC熱敏電阻選用直流12V,電壓由開(kāi)關(guān)電源提供。由于單片機(jī)P3口的驅(qū)動(dòng)電流是20mA,而繼電器的驅(qū)動(dòng)對(duì)于單片機(jī)來(lái)說(shuō)相當(dāng)于大功率器件的驅(qū)動(dòng),必須放大P3口的驅(qū)動(dòng)電流,而PTC熱敏電阻是采用直流12V電壓供電,可能會(huì)對(duì)單片機(jī)的工作穩(wěn)定性有影響,因此選用光電耦合器4N33提高P3口的驅(qū)動(dòng)能力,同時(shí)因?yàn)楣怆婑詈掀?N33是應(yīng)用電-光-電的轉(zhuǎn)換形式來(lái)放大驅(qū)動(dòng)電流,這樣隔離了單片機(jī)和繼電器,消除了系統(tǒng)可能潛在的不穩(wěn)定的因素。當(dāng)單片機(jī)P3口接繼電器的引腳給一低電平,則4N33輸入端的發(fā)光二極管導(dǎo)通,輸出端輸出放大電流,驅(qū)動(dòng)繼電器吸合,使PTC熱敏電阻環(huán)路導(dǎo)通,開(kāi)始加熱。
PTC熱敏電阻在開(kāi)始工作的初期有一個(gè)沖擊電流,這從它的電流-時(shí)間特性(如圖2所示)中可以看出,在經(jīng)過(guò)一段時(shí)間后電流降到穩(wěn)定工作狀態(tài),這時(shí)的電流很小,大概在0.8~1A,這樣在開(kāi)始加熱的時(shí)候就不能同時(shí)打開(kāi)三路繼電器進(jìn)行加熱,因?yàn)镻TC熱敏電阻的供電電源選擇的是直流12V,12A,如果同時(shí)打開(kāi)三路繼電器,在PTC熱敏電阻的沖擊電流達(dá)到最大值(5.7~7A)時(shí),開(kāi)關(guān)電源所承受的電流就會(huì)超過(guò)其額定值,導(dǎo)致電源停止工作甚至毀壞,影響了系統(tǒng)工作的連續(xù)性和可靠性。鑒于這個(gè)因素,測(cè)定了單片PTC熱敏電阻的電流從其開(kāi)始工作到達(dá)到最大值的時(shí)間S1和從最大值降到4A以下的時(shí)間S2,這樣就可以根據(jù)這兩個(gè)時(shí)間來(lái)決定繼電器的開(kāi)啟。現(xiàn)設(shè)定三路繼電器分別為1、2、3路,在單片機(jī)上電后就打開(kāi)第1路繼電器,在經(jīng)過(guò)電流由最小值上升到最大值時(shí)間S1后再打開(kāi)第2路繼電器(如果第1路PTC熱敏電阻提供的溫度沒(méi)有達(dá)到設(shè)定溫度范圍),第3路繼電器的開(kāi)啟同樣要經(jīng)過(guò)時(shí)間S1。每一路繼電器的開(kāi)、關(guān)狀態(tài)是由數(shù)字溫度計(jì)DS18B20測(cè)定的實(shí)時(shí)溫度與設(shè)定溫度的上、下限進(jìn)行比較來(lái)決定的,繼電器的開(kāi)啟先后順序設(shè)定為1、2、3,關(guān)斷先后順序設(shè)定為3、2、1,這些設(shè)定由軟件來(lái)實(shí)現(xiàn)。
3.5 鍵盤、顯示
本系統(tǒng)外設(shè)鍵盤采用了HD7279A鍵盤顯示芯片,由于要顯示系統(tǒng)設(shè)定溫度的上、下限和實(shí)時(shí)加熱的溫度,因此只使用HD7279A的鍵盤功能,系統(tǒng)的顯示部分采用LT12864I液晶顯示模塊。系統(tǒng)開(kāi)始工作的時(shí)候,通過(guò)鍵盤設(shè)定加熱溫度,數(shù)據(jù)傳遞給單片機(jī),再由單片機(jī)將數(shù)據(jù)送顯示模塊顯示;系統(tǒng)工作的過(guò)程中,數(shù)字溫度計(jì)DS18B20測(cè)得的實(shí)時(shí)溫度值也傳遞給單片機(jī),再由單片機(jī)轉(zhuǎn)換數(shù)據(jù)并送顯示模塊顯示?! ?p style="text-align: left">4、系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件總體流程圖如圖3所示。系統(tǒng)上電后,首先進(jìn)行初始化,對(duì)寄存器和I/O端口進(jìn)行設(shè)置。當(dāng)檢測(cè)到按鍵有效信號(hào),讀取按鍵數(shù)據(jù),傳遞給單片機(jī)并送顯示模塊顯示,鍵盤設(shè)定結(jié)束后置標(biāo)志位,單片機(jī)檢測(cè)到此信號(hào)后,開(kāi)啟第1路繼電器進(jìn)行加熱。此時(shí)初始化數(shù)字溫度計(jì)DS18B20進(jìn)行溫度測(cè)量,并將測(cè)得實(shí)時(shí)溫度數(shù)據(jù)送單片機(jī)處理,再由顯示模塊顯示。DS18B20每測(cè)完一次溫度后,就將實(shí)測(cè)溫度值與設(shè)定溫度值的上限和下限進(jìn)行比較,如實(shí)測(cè)溫度高于設(shè)定溫度的上限,轉(zhuǎn)到繼電器關(guān)閉處理程序,檢測(cè)每一路繼電器的開(kāi)、關(guān)狀態(tài),按照第3路、第2路、第1路的順序關(guān)閉繼電器(每執(zhí)行1次關(guān)閉1路繼電器);如實(shí)測(cè)溫度低于設(shè)定溫度的下限,轉(zhuǎn)到繼電器開(kāi)啟處理程序,檢測(cè)每一路繼電器的開(kāi)、關(guān)狀態(tài),按照第1路、第2路、第3路的順序開(kāi)啟繼電器(每執(zhí)行1次開(kāi)啟1路繼電器)。在之后的系統(tǒng)工作中始終循環(huán)測(cè)溫~溫度值比較~開(kāi)啟或者關(guān)閉繼電器這樣的流程,以達(dá)到對(duì)加熱區(qū)域溫度恒溫控制的目的。
下面是系統(tǒng)中幾個(gè)子程序的流程圖:三路繼電器控制子程序流程圖如圖4。
評(píng)論