侯楊陽(yáng)
(江蘇第二師范學(xué)院物理與電子信息工程學(xué)院 江蘇省南京市 210000)
單片機(jī)技術(shù)是現(xiàn)代電子工程領(lǐng)域中迅速發(fā)展的技術(shù),極大地推動(dòng)了電子工業(yè)的發(fā)展[1],該課程也是電子類專業(yè)的核心專業(yè)必修課程。但學(xué)生學(xué)習(xí)這門(mén)課程的實(shí)際過(guò)程中,仍然存在理論與實(shí)踐不能很好地結(jié)合應(yīng)用的現(xiàn)象。因此,基于疫情這個(gè)大背景,本文設(shè)計(jì)了一款基于單片機(jī)的非接觸紅外測(cè)溫系統(tǒng),該系統(tǒng)是以單片機(jī)作為紅外測(cè)溫傳感器數(shù)據(jù)傳輸和控制重心。除此之外,還設(shè)計(jì)了蜂鳴器報(bào)警模塊、顯示模塊、功能按鍵等外圍設(shè)備模塊。這種典型的測(cè)溫系統(tǒng)能夠作為項(xiàng)目教學(xué)演示設(shè)備,讓學(xué)生對(duì)于單片機(jī)有更深入的理解,有效提高學(xué)生的學(xué)習(xí)興趣。
此測(cè)溫體系分為硬件電路部分和軟件編程部分。STC89C52單片機(jī)[2]相當(dāng)于人類的大腦控制外圍硬件電路,硬件電路主要包括紅外測(cè)溫電路[3]、警告電路、液晶顯示電路、按鍵電路等。C語(yǔ)言程序設(shè)計(jì)主要包括:?jiǎn)纹瑱C(jī)基本輸入輸出程序、TN9紅外接收、測(cè)量溫度模塊程序、警告模塊程序、按鍵模塊程序、顯示模塊程序。該系統(tǒng)在工作時(shí),操作者先將紅外測(cè)量?jī)x對(duì)準(zhǔn)被測(cè)量目標(biāo)(人體或物體),電源通過(guò)傳統(tǒng)的Micro轉(zhuǎn)USB接口與電腦連接,接通電源等待2秒鐘,紅外傳感器就會(huì)把溫度信號(hào)傳送到單片機(jī)[4]中進(jìn)行處理,然后送到LCD1602顯示出來(lái)。
系統(tǒng)整體框圖如圖1所示。
圖1:系統(tǒng)整體框圖
本文選用的STC89C52單片機(jī),是一種功率損耗不高、性能穩(wěn)定的CMOS8位單片機(jī),具有8K在系統(tǒng)可編程Flash存儲(chǔ)器。擁有靈活的8位CPU和在系統(tǒng)可編程Flash,內(nèi)帶4K字節(jié)EEPROM存儲(chǔ)空間,可直接使用串口下載,因此STC89C52可以方便的應(yīng)用在大多數(shù)嵌入式控制系統(tǒng)。指令代碼完全兼容80C51單片機(jī)。封裝用的是PDIP-40直插式封裝。
STC89C52單片機(jī)擁有二十四個(gè)基本輸入輸出口,部分引腳可以復(fù)用作地址線、數(shù)據(jù)線,有一個(gè)高電平有效的復(fù)位鍵,兩個(gè)中斷引腳,兩個(gè)計(jì)數(shù)脈沖引腳,兩個(gè)晶振引腳,還有電源、接地引腳等,電源多采用5V供電。
紅外模塊用來(lái)采集聚焦被測(cè)目標(biāo)的紅外輻射能量,將紅外能量整合在紅外探測(cè)器上并轉(zhuǎn)化為數(shù)據(jù)與能量強(qiáng)度大小相對(duì)應(yīng)的電子數(shù)字信號(hào)送進(jìn)溫度傳感器,TN901是集成度很高的紅外測(cè)溫模塊[5],模塊的探測(cè)器接收到紅外輻射能量后,轉(zhuǎn)化為交變的脈沖電信號(hào),能夠?qū)崿F(xiàn)非接觸快速測(cè)量。模塊包括溫度補(bǔ)償電路和線性處理電路來(lái)提高測(cè)量精度,因此不需要增加放大電路、整流濾波電路和AD轉(zhuǎn)換模塊。TN901有五個(gè)引腳,管腳1為開(kāi)始測(cè)溫信號(hào)引腳,低電平有效,管腳2是接地引腳,管腳3為2KHz時(shí)鐘輸出引腳,管腳4是數(shù)據(jù)接收引腳,管腳5是V為電源引腳VCC,VCC一般為3V到5V之間的電壓,此電路電源用5V供電。
相比較LED只能顯示數(shù)字的短處與不足,LCD1602的優(yōu)點(diǎn)是可以顯示字母和數(shù)字使顯示內(nèi)容更加充實(shí)具體。本設(shè)計(jì)使用的是LCD動(dòng)態(tài)顯示,動(dòng)態(tài)顯示意味著中央處理器每秒對(duì)顯示器件進(jìn)行數(shù)據(jù)更新,所謂的動(dòng)態(tài)就是一位一位地輪流點(diǎn)亮刷新各位顯示器的數(shù)值,利用人的視覺(jué)停留感的誤差達(dá)到顯示數(shù)值刷新的目的。
本次設(shè)計(jì)的系統(tǒng)啟動(dòng)紅外非接觸式測(cè)量溫度的功能只需打開(kāi)電源電路的開(kāi)關(guān),按鍵采用動(dòng)態(tài)掃描方式,單片機(jī)[6]通過(guò)讀取程序連續(xù)時(shí)刻更新掃描按鍵審核按鍵的兩種狀態(tài),當(dāng)發(fā)現(xiàn)到有按鍵狀態(tài)改變時(shí),單片機(jī)經(jīng)軟件程序響應(yīng)追尋鍵值并通過(guò)循環(huán)語(yǔ)句程序完成與按鍵狀態(tài)相符合的鍵操作。通過(guò)按鍵對(duì)報(bào)警溫度區(qū)間極限值進(jìn)行改變,例如數(shù)字的加和減以及改變數(shù)值之后的確認(rèn)。后面要用軟件編程時(shí)間延遲來(lái)消除按鍵抖動(dòng)。
2.5.1 電源電路模塊
系統(tǒng)使用5V電源供電,紅外系統(tǒng)和LCD鍵盤(pán)共電電壓為5V,二極管是電源接通的指示燈,兩個(gè)電容起濾波的作用。
2.5.2 報(bào)警電路模塊
報(bào)警電路實(shí)際就是蜂鳴器驅(qū)動(dòng)電路,F(xiàn)M接單片機(jī)P3.7口輸出控制信號(hào),三極管作為控制蜂鳴器中斷的電子開(kāi)關(guān)。當(dāng)FM引腳輸出高電平時(shí),三極管飽和導(dǎo)通,電子開(kāi)關(guān)打開(kāi)蜂鳴器發(fā)出警告,當(dāng)FM引腳輸出低電平時(shí)三極管截止斷電蜂鳴器靜音。
2.5.3 晶振電路
晶振用的是12M無(wú)源晶振。
系統(tǒng)電路原理圖如圖2所示。
圖2:系統(tǒng)電路原理圖
程序部分包括單片機(jī)系統(tǒng)基本輸入輸出功能主程序模塊,非接觸紅外測(cè)溫模塊[7],通過(guò)軟件方法延時(shí)消抖的動(dòng)態(tài)刷新按鍵模塊和溫度數(shù)值液晶顯示模塊。
(1)主程序模塊用來(lái)實(shí)現(xiàn)系統(tǒng)基本的輸入輸出功能和外圍設(shè)備識(shí)別供電的功能,對(duì)時(shí)間中斷延時(shí)規(guī)范包括溫度信號(hào)的傳送,單片機(jī)與電腦端的通信連接設(shè)備識(shí)別,按鍵持續(xù)更新掃描和溫度數(shù)值液晶顯示等功能。
(2)紅外測(cè)溫模塊[8]程序功能是從非接觸式紅外溫度傳感器獲得溫度數(shù)值,將開(kāi)爾文溫標(biāo)換算成攝氏溫度值。
(3)按鍵模塊程序?qū)崿F(xiàn)的功能是獲得某個(gè)按鍵是否被按下,實(shí)現(xiàn)相應(yīng)的按鍵請(qǐng)求改變溫度上下限數(shù)值操作等。
(4)顯示模塊程序的功能是從單片機(jī)接收相應(yīng)的溫度數(shù)值并表示在LCD上。
本設(shè)計(jì)的紅外測(cè)溫系統(tǒng)的程序整體由C語(yǔ)言編寫(xiě),系統(tǒng)的可讀性和可移植性得到了提高。根據(jù)硬件模塊實(shí)現(xiàn)的功能對(duì)應(yīng)進(jìn)行程序編寫(xiě),將系統(tǒng)的硬件分為相應(yīng)的子程序模塊,分成各個(gè)部分進(jìn)行編寫(xiě)、調(diào)試,使程序簡(jiǎn)潔明了,在調(diào)試過(guò)程中也有利于自己發(fā)現(xiàn)程序語(yǔ)法錯(cuò)誤,提高了編程的效率。整個(gè)系統(tǒng)軟件程序模塊主要分成系統(tǒng)基礎(chǔ)輸入輸出主程序、非接觸紅外測(cè)溫模塊、按鍵掃描更新模塊、液晶顯示[9]模塊等子程序。Kei1C51集成開(kāi)發(fā)環(huán)境是51系列兼容單片機(jī)C語(yǔ)言軟件開(kāi)發(fā)系統(tǒng)。Kei1C51軟件擁有多樣的庫(kù)函數(shù)和功能齊全的軟件調(diào)試工具。
經(jīng)過(guò)Keil軟件編譯程序后,通過(guò)ISP軟件和STC下載器實(shí)現(xiàn)單片機(jī)與電腦的通信,需要設(shè)置單片機(jī)波特率。
使用Keil軟件進(jìn)行程序編寫(xiě)調(diào)試,用Proteus軟件進(jìn)行系統(tǒng)硬件功能的仿真。新建Keil項(xiàng)目,用C語(yǔ)言編寫(xiě)源程序,然后編譯并修改源程序直至實(shí)現(xiàn)仿真功能 ,生成.hex文件。在Proteus ISIS中左鍵雙擊STC89C52元件在該窗口的“Program File”欄中,選中在Keil中編譯正確的“.hex”文件;點(diǎn)擊play開(kāi)始進(jìn)行程序燒寫(xiě)仿真。
系統(tǒng)實(shí)物圖如圖3所示。
圖3:實(shí)物圖
本系統(tǒng)利用STC89C52單片機(jī)[10]作為控制外圍設(shè)備的大腦核心,由硬件部分和軟件部分構(gòu)成,硬件部分包括了核心單片機(jī)模塊、紅外測(cè)溫模塊、液晶顯示模塊、通過(guò)軟件消抖減小誤差的動(dòng)態(tài)按鍵模塊,軟件程序部分主要是單片機(jī)基本功能主程序模塊、紅外測(cè)量和讀取溫度程序模塊、液晶顯示溫度值程序模塊。單片機(jī)統(tǒng)治紅外測(cè)溫模塊把接收到的溫度數(shù)據(jù)經(jīng)過(guò)循環(huán)語(yǔ)句程序換算后顯示在液晶上。本系統(tǒng)可作為項(xiàng)目教學(xué)演示設(shè)備,模塊化的實(shí)物教學(xué)便于學(xué)生理解,有助于學(xué)生高質(zhì)量的掌握單片機(jī)相關(guān)知識(shí),同時(shí)有效提高學(xué)生學(xué)習(xí)單片機(jī)課程的動(dòng)力和興趣。