ATmega8根據(jù)現(xiàn)場溫度和用戶設(shè)定的目標(biāo)溫度及相關(guān)控制參數(shù)算出實(shí)時(shí)控制量。將此控制量寫入單片機(jī)定時(shí)器l的OClA寄存器,以決定輸出PWM波的占空比。在PWM波的高電平期間,通過限流保護(hù)電阻器R4的雙向光電耦合器上電工作,雙向可控硅TRIACl柵極被經(jīng)由R1、R2和雙向光電耦合器的信號(hào)觸發(fā)導(dǎo)通,加熱電路得電工作;PWM波低電平期間,雙向光電耦合器截止,雙向可控硅TRIACl柵極無觸發(fā)信號(hào)被關(guān)斷,加熱電路斷電停止工作。 電路中的R3、C2組成阻容吸收單元,可減小可控硅關(guān)斷時(shí)加熱電路中感性元件所產(chǎn)生的自感電動(dòng)勢對(duì)可控硅的過壓沖擊。R1、C1組成低通濾波單元,能降低雙向光電耦合器誤觸發(fā)對(duì)后續(xù)電路的影響。同時(shí),雙向光電耦合器的使用徹底隔離了強(qiáng)弱電路,避免了大功率器件對(duì)單片機(jī)的干擾。
4 軟件設(shè)計(jì)
系統(tǒng)程序由主程序、溫度采集子程序、加熱控制子程序、鍵盤掃描子程序、串行通信子程序和中斷子程序等部分組成。主程序主要完成加熱控制系統(tǒng)各部件的初始化和自檢,以及實(shí)際測量中各個(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ì)的溫度測量及加熱控制系統(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)。





