張春來(lái)
安徽水利水電職業(yè)技術(shù)學(xué)院,安徽合肥,230601
單片機(jī)在電子產(chǎn)品中的應(yīng)用越來(lái)越廣泛,很多電子產(chǎn)品用到溫度檢測(cè)時(shí)都由單片機(jī)控制。溫度傳感器的種類有很多,其中DALLS公司生產(chǎn)的DS18 B20是一種數(shù)字溫度傳感器,它只需一個(gè)引腳即可讀取數(shù)據(jù),可以直接與單片機(jī)采用“單總線”的數(shù)據(jù)傳輸方式,具有接口簡(jiǎn)單,只占單片機(jī)一個(gè)I/O端口,無(wú)需任何外部器件就可讀取溫度[1]。
本系統(tǒng)由單片機(jī)芯片AT89C51、溫度傳感器DS18B20、時(shí)鐘芯片DS1302、液晶顯示屏160128LCD、直流電動(dòng)機(jī)及報(bào)警器等構(gòu)成,設(shè)計(jì)方案如圖1所示。
圖1 溫度控制系統(tǒng)的設(shè)計(jì)方案
本控制器控制過(guò)程如下:用溫度傳感器DS18B20檢測(cè)環(huán)境溫度,并根據(jù)溫度的高低來(lái)調(diào)節(jié)直流電動(dòng)機(jī)的轉(zhuǎn)速,當(dāng)外部溫度大于等于45℃時(shí),直流電動(dòng)機(jī)在L298驅(qū)動(dòng)下加速正轉(zhuǎn)(轉(zhuǎn)速與溫度成正比),當(dāng)溫度達(dá)到75℃并大于75℃時(shí),直流電動(dòng)機(jī)全速正轉(zhuǎn);當(dāng)外部溫度小于等于10℃時(shí),加速反轉(zhuǎn)(轉(zhuǎn)速也與溫度成正比),當(dāng)溫度小于等于0℃時(shí),直流電動(dòng)機(jī)全速反轉(zhuǎn);當(dāng)溫度介于10℃~45℃時(shí),直流電動(dòng)機(jī)逐漸停止工作[2]。液晶顯示屏160128LCD主要顯示時(shí)間、日期、測(cè)量溫度及直流電機(jī)的工作狀態(tài)。
本系統(tǒng)的核心控制部件是AT89C51單片機(jī),AT89系列單片機(jī)由ATMEL公司生產(chǎn),其中AT89C51是一種低功耗、高性能、內(nèi)含4 K字節(jié)閃電存儲(chǔ)器(Flash Memory)的8位CMOS微控制器。單片機(jī)工作的時(shí)間基準(zhǔn)由時(shí)鐘電路提供,單片機(jī)的XTAL1和XTAL2兩個(gè)引腳間接一只晶振及兩只電容,構(gòu)成了單片機(jī)的時(shí)鐘電路,其電容器C1和C2取值22 pF,石英晶體選擇12 MHZ。
(1)GND:地信號(hào),接地。
(2)DQ:數(shù)據(jù)輸入/輸出引腳,與AT89C51的P3.5相連。
(3)VDD:可選擇的VDD引腳。
時(shí)鐘芯片DS1302是美國(guó)DALLAS公司推出的一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘電路,它可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),工作電壓為2.5~5.5 V。采用三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或RAM數(shù)據(jù)。DS18B20的引腳排列如下。
(1)RST:復(fù)位信號(hào),與AT89C51的P1.2相連。(2)I/O:數(shù)據(jù)輸入/輸出引腳,與AT89C51的P1.0相連。(3)SCLK:串行時(shí)鐘,與AT89C51的P1.1相連。(4)SCLK:X1、X2晶振引腳,接32.768 KHz晶振。
PG160128是一種圖形點(diǎn)陣液晶顯示器,它主要由行驅(qū)動(dòng)器/列驅(qū)動(dòng)器及格160×128全點(diǎn)陣液晶顯示器組成。可完成圖形顯示,也可以顯示點(diǎn)陣漢字。PG160128的引腳功能及與單片機(jī)的接口見(jiàn)表1。
表1 PG160128的引腳功能及與單片機(jī)的接口
51系列單片機(jī)無(wú)PWM輸出功能,可采用定時(shí)器配合軟件的方法輸出。PWM脈沖驅(qū)動(dòng)直流電機(jī)的電路如圖2所示。直流電機(jī)通過(guò)L298直流電機(jī)驅(qū)動(dòng)芯片驅(qū)動(dòng),電機(jī)的轉(zhuǎn)向通過(guò)L298的引腳IN1、IN2來(lái)控制,電機(jī)的轉(zhuǎn)速大小由PWM輸出的調(diào)寬脈沖的占空比來(lái)決定[3]。AT89C51的引腳P2.4與L298的IN1相連,P2.5與L298的IN2相連,只要P2.4=1,P2.5=0,直流電機(jī)就正轉(zhuǎn);P2.4=0,P2.5=1,直流電機(jī)就反轉(zhuǎn);P2.4=0,P2.5=0,直流電機(jī)停止。
AT89C51單片機(jī)的P2.6引腳輸出占空比不等的調(diào)寬脈沖,當(dāng)檢測(cè)到溫度大于等于75℃或小于等于0℃時(shí),直流電機(jī)全速轉(zhuǎn)動(dòng),此時(shí)要求引腳P2.6=1,輸出占空比為100%,電機(jī)轉(zhuǎn)速方向通過(guò)L298直流電機(jī)驅(qū)動(dòng)芯片的輸入口IN1、IN2控制。當(dāng)檢測(cè)到溫度大于等于45℃時(shí),直流電機(jī)開(kāi)始加速正轉(zhuǎn),加速轉(zhuǎn)速與檢測(cè)到的溫度有關(guān),假設(shè)檢測(cè)到的溫度為Temp≥45℃,此時(shí)的轉(zhuǎn)速與(Temp-45)成正比,當(dāng)Temp≥75℃,則全速,所以只要PWM輸出占空比α=(Temp-45)/30,就可以實(shí)現(xiàn)此功能,當(dāng)檢測(cè)到溫度Temp≤0℃,直流電機(jī)加速反轉(zhuǎn)原理一樣。本文中,通過(guò)單片機(jī)的T0定時(shí)器輸出不同的占空比PWM信號(hào),從而控制直流電機(jī)的不同轉(zhuǎn)速。T0定時(shí)器設(shè)置如下[4]:TMOD=0x11,TH0=-50000/256,TL0=-50000%256,IE=0x82,TR0=1。
21世紀(jì)是信息技術(shù)迅速發(fā)展的時(shí)代。信息技術(shù)對(duì)社會(huì)各領(lǐng)域產(chǎn)生了巨大的影響,也在教育領(lǐng)域引發(fā)了一系列的變革。信息化教學(xué)在現(xiàn)代化教學(xué)理念的指導(dǎo)下,重視現(xiàn)代信息技術(shù)在教學(xué)中的作用,充分利用現(xiàn)代教育技術(shù)手段,調(diào)動(dòng)多種教學(xué)媒體、信息資源,充分發(fā)揮學(xué)生的主動(dòng)性、積極性和創(chuàng)造性,從而達(dá)到良好的教學(xué)效果。
圖2 PWM脈沖驅(qū)動(dòng)直流電機(jī)的電路
溫度控制系統(tǒng)的硬件電路圖如圖3所示。
圖3 溫度控制系統(tǒng)的硬件電路圖
(1)調(diào)用讀取溫度的子函數(shù)模塊,測(cè)量環(huán)境溫度。
(2)根據(jù)測(cè)量的環(huán)境溫度,在T0的中斷服務(wù)程序里控制直流電機(jī)的不同轉(zhuǎn)向及轉(zhuǎn)速。
(3)調(diào)用讀取日期的子函數(shù)模塊,把日期、星期、時(shí)間送到相應(yīng)的數(shù)組DataTime[ ]里。
(4)調(diào)用液晶顯示的子函數(shù)模塊,把日期、星期、時(shí)間、溫度等相關(guān)參數(shù)送到液晶顯示屏上,每隔1 s刷新顯示。
其主程序的流程圖如圖4所示,主程序如下:
圖4 主程序流程圖
Void main( )
{
LCD_Initialise( );
Read_Temerature( );
Delay(50000);
TMOD=0x11;
IE=0x82;
TH0=-50000/256;
TL0=-50000%256;
TR0=1;
Display_Str_xy(16,88,"當(dāng)前溫度:");
while(1);
}
設(shè)置定時(shí)器T0、T1兩個(gè)中斷子函數(shù),其中T0的中斷服務(wù)程序的功能如下:根據(jù)讀取的溫度Temp判斷電機(jī)的運(yùn)行;在T1的中斷服務(wù)程序中,每隔1 s先讀取溫度值及時(shí)間值,再刷新液晶顯示屏的內(nèi)容,兩個(gè)中斷服務(wù)程序的的流程圖如圖5、圖6所示。
圖5 T0中斷服務(wù)程序流程圖
本文基于單片機(jī)AT89C51的工業(yè)生產(chǎn)溫度控制系統(tǒng),采用DS18B20數(shù)字溫度傳感器測(cè)量溫度,在液晶顯示屏上實(shí)時(shí)顯示檢測(cè)溫度,并根據(jù)具體溫度值控制直流電機(jī)不同的轉(zhuǎn)速。該控制器具有結(jié)構(gòu)簡(jiǎn)單、測(cè)量精度高等優(yōu)點(diǎn),可以應(yīng)用于工業(yè)生產(chǎn)溫度監(jiān)控領(lǐng)域。
圖6 T1中斷服務(wù)程序流程圖
參考文獻(xiàn):
[1]楊慶文,翠海.基于AT89C51單片機(jī)的溫度控制系統(tǒng)[J].中國(guó)科技信息,2010,23(6):154-155
[2]彭偉.單片機(jī)C語(yǔ)言程序設(shè)計(jì)實(shí)訓(xùn)100例[M].北京:電子工業(yè)出版社,2009:299-301
[3]藍(lán)厚榮.單片機(jī)的PWM控制技術(shù)[J].工業(yè)控制計(jì)算機(jī),2010,23(3):97-98
[4]高衛(wèi)東.51單片機(jī)原理與實(shí)踐[M].北京:北京航空航天大學(xué)出版社,2011:203-209
[5]閻石.數(shù)字電子技術(shù)基礎(chǔ)[M].北京:高等教育出版社,2006:105-109
[6]焦峰超.基于51單片機(jī)的小型溫度測(cè)量系統(tǒng)[J].宿州學(xué)院學(xué)報(bào),2008,23(2):104-106
[7]楊慶文.基于AT89C51單片機(jī)的溫度控制系統(tǒng)[J].中國(guó)科技信息,2008,21(3):64-66
[8]李寧,汪日燕.利用單片機(jī)定時(shí)器實(shí)現(xiàn)信號(hào)采樣和PWM控制[J].微型機(jī)與應(yīng)用,2004,7:35-37