基于ATmgea8單片機(jī)設(shè)計(jì)的加熱控制系統(tǒng)
此顯示電路采用“單片機(jī)→串入并出芯片→數(shù)碼管”的動(dòng)態(tài)顯示技術(shù)。單片機(jī)與 74HC164型串入并出電路使用同步串口SPI方式連接,單片機(jī)工作在主機(jī)模式,時(shí)鐘輸出端SCK接至74HC164的CLK引腳,數(shù)據(jù)輸出端MOSI接至74HC164的數(shù)據(jù)輸入引腳AB。
單片機(jī)將需要顯示的 8位字段碼通過SPI傳至74HC164,由74HC164輸出8位并行邏輯電平驅(qū)動(dòng)數(shù)碼管顯示。單片機(jī)依次使能4位共陽極數(shù)碼管的位選擇端,按順序點(diǎn)亮4位數(shù)碼管的各位。由于人眼觀察時(shí)特有的“視覺暫存”效應(yīng),當(dāng)亮滅頻率達(dá)到一定程度時(shí)無法覺察數(shù)碼管明暗的變化,認(rèn)為4位數(shù)碼管各位始終點(diǎn)亮,即實(shí)現(xiàn)了4位數(shù)碼管的動(dòng)態(tài)顯示。通過使用同步串口SPI與74HC164型串入并出芯片驅(qū)動(dòng)數(shù)碼管的8位字段碼,比傳統(tǒng)并行驅(qū)動(dòng)方式節(jié)約6個(gè)單片機(jī)I/O口,并且利用ATmega8自帶的硬件SPI單元,無需軟件模擬SPI通信。
由于采用動(dòng)態(tài)顯示技術(shù),編程時(shí)必須注意每次更新顯示數(shù)值應(yīng)先將待顯示字段送到 74HC164,再通過PC1—PC4使能數(shù)碼管中某一位點(diǎn)亮,否則就會(huì)發(fā)生錯(cuò)位顯示現(xiàn)象。
3.4 加熱驅(qū)動(dòng)電路
ATmega8的I/O口輸出負(fù)載能力最大為40mA,無法直接驅(qū)動(dòng)工業(yè)環(huán)境中使用的電爐、電機(jī)等大功率設(shè)備,必須通過中間驅(qū)動(dòng)電路實(shí)現(xiàn)單片機(jī)對(duì)功率設(shè)備工作狀態(tài)的控制。實(shí)際應(yīng)用中,通常采用繼電器或交流接觸器間接驅(qū)動(dòng)。由于繼電器或交流接觸器具有機(jī)械接觸特點(diǎn),因而很大程度上降低了控制系統(tǒng)整體的穩(wěn)定性和可靠性。
為了避免機(jī)械接觸開關(guān)的缺點(diǎn),本系統(tǒng)選用以可控硅為主體的完全光電隔離的中間驅(qū)動(dòng)電路??煽毓枋谴蠊β书_關(guān)型半導(dǎo)體器件。能在高電壓、大電流條件下工作,具有無器械接觸、體積小、便于安裝等優(yōu)點(diǎn),廣泛應(yīng)用于電力電子設(shè)備中。加熱驅(qū)動(dòng)電路示意圖如圖3所示。
ATmega8根據(jù)現(xiàn)場(chǎng)溫度的和用戶設(shè)定的目標(biāo)溫度計(jì)相關(guān)的控制參數(shù)算出實(shí)時(shí)控制量。將此控制量寫入單片機(jī)定時(shí)器1的OC 1A 寄存器,以決定輸出 PWM波的占空比。在PWM波的高電平期間,通過限流保護(hù)電阻器R4的雙向光電耦合器上電工作,雙向可控硅TRIAC1柵極被經(jīng)由R1、R2和雙向光電耦合器的信號(hào)觸發(fā)導(dǎo)通,加熱電路得電工作;PWM波低電平期間,雙向光電耦合器截止,雙向可控硅TRIAC1柵極無觸發(fā)信號(hào)被關(guān)斷,加熱電路斷電停止工作。
電路中的 R3、C2組成阻容吸收單元,可減少可控硅關(guān)斷時(shí)加熱電路中感性元件產(chǎn)生的自感電動(dòng)勢(shì)對(duì)可控硅的過壓沖擊。R1、C1組成低通濾波單元,能降低雙向光電耦合器誤觸發(fā)對(duì)后續(xù)電路的影響。同時(shí)、雙向光電耦合器的使用徹底隔離了強(qiáng)弱電路,避免了大功率器件對(duì)單片機(jī)的干擾。
4 軟件設(shè)計(jì)
系統(tǒng)程序由主程序、溫度采集子程序、加熱控制子程序、鍵盤掃描子程序、串行通信子程序和中斷子程序等部分組成。主程序主要完成加熱控制系統(tǒng)各部件的初始化和自檢,以及實(shí)際測(cè)量中各個(gè)功能模塊的協(xié)調(diào)。鍵盤掃描和控制算法等子程序利用 ATmega8豐富的中斷資源,在外部中斷和定時(shí)器溢出中斷子程序中完成上述工作。與上位機(jī)的串行通信采用ATmega8自帶的UART硬件傳輸中斷,以滿足數(shù)據(jù)雙向傳輸?shù)漠惒叫院蛯?shí)時(shí)性要求。單片機(jī)溫度采集子程序和加熱控制子程序流程如圖4所示。
上位機(jī)監(jiān)控程序基于 Visual C++6.0環(huán)境開發(fā)。使用微軟公司提供的MsComm控件有效避免了直接調(diào)用Win32API造成的編程煩瑣等弊端,以較少代碼量實(shí)現(xiàn)本系統(tǒng)要求的全雙工步通信。用戶可通過上位機(jī)程序完成溫控參數(shù)設(shè)定、溫度數(shù)據(jù)保存和離線分析等操作。
5 結(jié)束語
筆者設(shè)計(jì)的溫度測(cè)量及加熱控制系統(tǒng)充分發(fā)揮了 ATmega8型單片機(jī)的特點(diǎn),結(jié)合現(xiàn)有技術(shù),大大降低了硬件電路的設(shè)計(jì)復(fù)雜度。該系統(tǒng)已經(jīng)設(shè)計(jì)制作完成,并在仿真深海高溫?zé)嵋涵h(huán)境試驗(yàn)中取得了良好的效果,具有溫控準(zhǔn)確、操控界面友好、穩(wěn)定性高,抗干擾能力強(qiáng)等優(yōu)點(diǎn)。
評(píng)論