利用ATmega16L設(shè)計(jì)的溫度控制系統(tǒng)
概述:一種基于ATmega16L單片機(jī)的溫度控制系統(tǒng),闡述該系統(tǒng)的軟硬件設(shè)計(jì)方案。采用模塊化設(shè)計(jì)方法,利用增量式PID算法使被控對(duì)象的溫度值趨于給定值。實(shí)驗(yàn)結(jié)果表明該系統(tǒng)具有良好的檢測(cè)和控制功能。
本文引用地址:http://m.butianyuan.cn/article/173365.htm1 引言
隨著科學(xué)技術(shù)的進(jìn)步,檢測(cè)行業(yè)發(fā)展快速,除了檢測(cè)項(xiàng)目和內(nèi)容不斷擴(kuò)大,更重要的是檢測(cè)愈來(lái)愈科學(xué)化、職能化,主要表現(xiàn)在檢測(cè)過(guò)程及檢測(cè)結(jié)果由計(jì)算機(jī)監(jiān)控和顯示。多點(diǎn)溫度的采集控制近年來(lái)在檢測(cè)行業(yè)應(yīng)用較為廣泛,其中以微機(jī)為核心的監(jiān)控技術(shù)價(jià)格低廉,使用方便,應(yīng)用也最普遍。
本文主要介紹基于ATmega16L單片機(jī)的溫度控制系統(tǒng)的設(shè)計(jì),具體包括爐溫的采集和控制、LCD顯示以及PC機(jī)繪制溫度變化的曲線圖等。硬件和軟件設(shè)計(jì)采用模塊化的思想,系統(tǒng)集成度較高。
2 系統(tǒng)的硬件設(shè)計(jì)
圖1為系統(tǒng)硬件的總體結(jié)構(gòu)圖。系統(tǒng)由主控制器、溫度傳感器、運(yùn)算放大電路、液晶顯示電路、鍵盤(pán)電路、串口通信電路等構(gòu)成。由結(jié)構(gòu)圖1可看出,系統(tǒng)模塊較多,所以應(yīng)合理分配I/O 口資源,各模塊以ATmega16L單片機(jī)為核心相連接。
2.1 主控制器
系統(tǒng)主控制器采用ATmega16L,該單片機(jī)是一款高性能、低功耗的8位AVR微處理器,具有先進(jìn)的RISC結(jié)構(gòu),內(nèi)部有大容量的ROM、RAM、FLASH和EEPROM,集成4通道PWM,SPI串行外設(shè)接口,同時(shí)具有8路10位A/D轉(zhuǎn)換器,對(duì)于數(shù)據(jù)采集系統(tǒng)而言,外部無(wú)需單獨(dú)的A/D轉(zhuǎn)換器,從而可節(jié)省成本。另外,該單片機(jī)提供JTAG調(diào)試接口,可采用自制的簡(jiǎn)易JTAG仿真器進(jìn)行程序調(diào)試。
2.2 溫度采集電路
圖2為溫度采集電路。該電路主要由溫度傳感器AD590和差分運(yùn)算放大器AD524組成,其中溫度傳感器AD590是一種新型的兩端式恒流器件。激勵(lì)電壓范圍是4~30 V,測(cè)溫范圍為-55~+150℃。當(dāng)AD590的電流流過(guò)一個(gè)5 kΩ的電阻時(shí),溫度升高1 K,該電阻上的電壓增加5 mV,即轉(zhuǎn)換成5 mV/K。因此,溫度在0~100℃間變化時(shí),電阻電壓在1.365~1.865 V間變化。運(yùn)算放大器AD524用于把絕對(duì)溫度轉(zhuǎn)換成攝氏溫度。
2.3 溫度控制電路
該電路主要由光電耦合器和可控硅組成,如圖3所示。單片機(jī)發(fā)出的控制信號(hào)(PWM)經(jīng)驅(qū)動(dòng)器后控制光電耦合器的工作狀態(tài)。當(dāng)光電耦合器工作后,使雙向可控硅的觸發(fā)極處于高電平,可控硅處于導(dǎo)通狀態(tài),進(jìn)而控制加熱棒的工作。
2.4 其他電路
(1)顯示電路系統(tǒng)的模塊較多,I/0接口緊張,顯示器選用液晶顯示器TCl602A,接口采用高4位數(shù)據(jù)傳輸方式。
(2)鍵盤(pán)電路系統(tǒng)采用非矩陣式鍵盤(pán),該鍵盤(pán)結(jié)構(gòu)簡(jiǎn)單,使用方便,不會(huì)占用較多I/O,適用于按鍵個(gè)數(shù)較少的場(chǎng)合。
(3)串口電平轉(zhuǎn)換 電路電平轉(zhuǎn)換由MAX488器件完成,MAX488為RS-488收發(fā)器,速度高于MAX232,簡(jiǎn)單易用,單+5 V供電,外接少量器件即可完成從TTL電平到RS-488電平的轉(zhuǎn)換。
3 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)采用分層控制方式保證溫度控制系統(tǒng)穩(wěn)定。下位機(jī)采用ATmega16L單片機(jī)作為硬件開(kāi)發(fā)核心,采用C語(yǔ)言編程。上位機(jī)采用工控機(jī)作為監(jiān)控系統(tǒng),采用Visual Basic6.0編程,兩層之間采用RS-488通訊實(shí)現(xiàn)數(shù)據(jù)交換。在單片機(jī)部分,軟件設(shè)計(jì)采用模塊化設(shè)計(jì)方法,整個(gè)軟件可分為主程序、按鍵處理程序、A/D轉(zhuǎn)換程序、增量式PID處理程序、串行通信程序和顯示處理程序、數(shù)據(jù)保存處理程序、看門(mén)狗處理程序。
(1)主程序 系統(tǒng)主程序主要完成系統(tǒng)各部件初始化操作,此外,在系統(tǒng)開(kāi)始運(yùn)行后等待按鍵處理。圖4為其流程。
(2)按鍵處理程序 鍵盤(pán)處理程序通常采用查詢(xún)方法實(shí)現(xiàn)按鍵的識(shí)別,CPU只要一有空閑就調(diào)用鍵盤(pán)掃描程序,查詢(xún)鍵盤(pán),識(shí)別鍵值,并予以處理。
(3)A/D轉(zhuǎn)換程序 ATmega16有一個(gè)10位包括采樣保持電路的逐次逼近型A/D轉(zhuǎn)換器,該轉(zhuǎn)換器與一個(gè)8通道模擬多路復(fù)用器連接,能對(duì)來(lái)自端口A的8路單端輸入電壓進(jìn)行采樣。通過(guò)設(shè)置ADCSRA寄存器的ADEN即可啟動(dòng)A/D轉(zhuǎn)換器,只有當(dāng)ADEN置位時(shí),參考電壓及輸入通道選擇才生效。向A/D轉(zhuǎn)換器啟動(dòng)轉(zhuǎn)換位ADSC位寫(xiě)“1”可啟動(dòng)單次轉(zhuǎn)換。在轉(zhuǎn)換過(guò)程中此位保持為高電平,直到轉(zhuǎn)換結(jié)束觸發(fā)中斷。然后被硬件清零。
評(píng)論