南京郵電大學(xué) 葛 樸
南京曉莊學(xué)院 葛 睿
前言:隨著科技的發(fā)展智能保溫杯也得到了改進(jìn),以傳統(tǒng)保溫杯為基礎(chǔ),現(xiàn)代智能保溫杯可以智能加熱和保溫。主控芯片選用51系列單片機(jī)中的STC89C52,可以使此設(shè)計(jì)產(chǎn)品更加智能化和自動(dòng)化。
智能保溫杯是基于52單片機(jī)來(lái)實(shí)現(xiàn)的溫度檢測(cè)與控制和簡(jiǎn)易GPS定位信息顯示系統(tǒng)。主控芯片選用51系列單片機(jī)中的STC89C52,溫度傳感器選用DS18B20防水型溫度傳感器,可以對(duì)溫度進(jìn)行實(shí)時(shí)采集,另外LCD1602液晶顯示屏可顯示DS18B20采集到的實(shí)時(shí)水溫、定時(shí)時(shí)間和設(shè)置的水溫下限。并且還運(yùn)用水位檢測(cè)功能,當(dāng)保溫杯里的水沒(méi)有到達(dá)下限,則繼電器不會(huì)吸合驅(qū)動(dòng)加熱功能,防止干燒。當(dāng)水溫低于設(shè)定的下限且水位達(dá)到下限,繼電器才會(huì)吸合驅(qū)動(dòng)加熱。通過(guò)這些系統(tǒng)設(shè)計(jì),既能防止無(wú)水干燒,又能將溫度控制在相應(yīng)的范圍內(nèi)。另外還采用GPS定位和GSM短信發(fā)送對(duì)智能保溫杯隨時(shí)可獲取其位置,有效的防止智能保溫杯的丟失。
如圖1通過(guò)溫度傳感器,檢測(cè)實(shí)時(shí)水溫,通過(guò)控制系統(tǒng)作出判斷,并通過(guò)加熱電路驅(qū)動(dòng)加熱器工作。顯示模塊顯示DS18B20采集到的實(shí)時(shí)水溫、定時(shí)時(shí)間和設(shè)置的水溫上下限。采用GPS模塊定位,GSM模塊可向特定手機(jī)號(hào)碼發(fā)送短信,短信內(nèi)容為系統(tǒng)的當(dāng)前經(jīng)緯度信息,有效的防止產(chǎn)品的丟失。
圖1 STC89C52控制的智能保溫杯
1)控制系統(tǒng)的選擇
作為設(shè)計(jì)的核心,其運(yùn)算精度,功能的多樣性以及抗干擾性的能力是系統(tǒng)考慮的重要因素??梢灾苯釉诰€編程的單片機(jī)STC89C52作為系統(tǒng)的處理器,工作模式上具有6T模式,也可以是12T模式,STC89C52的工作電壓為3.3-5V,對(duì)于溫度和光照強(qiáng)度的數(shù)據(jù)進(jìn)行處理,實(shí)現(xiàn)電機(jī)的運(yùn)轉(zhuǎn)。
2)溫度傳感器的選擇
采用的是DS18B20防水型溫度傳感器。DS18B20單總線可同時(shí)連接很多溫點(diǎn),只需要一個(gè)元件,成本低,精確度高,電路簡(jiǎn)單,信號(hào)線距離遠(yuǎn),體積小,抗干擾能力強(qiáng)。
3)顯示器的選擇
采用1622液晶顯示屏來(lái)顯示當(dāng)前的數(shù)值。1602功耗低、體積小、顯示內(nèi)容多樣化、便于安裝,常用在低功耗系統(tǒng)中,不能顯示圖形,但是對(duì)于本系統(tǒng)來(lái)說(shuō)能夠滿(mǎn)足基本的顯示功能。
4)驅(qū)動(dòng)模塊的選擇
采用LMD18245集成芯片驅(qū)動(dòng)加熱片。通過(guò)運(yùn)行程序驅(qū)動(dòng)加熱片,是一種開(kāi)關(guān)室的全橋功率驅(qū)動(dòng)加熱片的集成芯片。運(yùn)用這種集成芯片工作可靠性高。
5)信息傳輸模塊的選擇
使用GSM模塊SIM800A作為信息傳輸?shù)拿浇?,只需要插上移?dòng)卡,即可在全球有移動(dòng)網(wǎng)絡(luò)的地方接收到信號(hào)。
系統(tǒng)初始化,檢測(cè)水位是否達(dá)到下限,如果達(dá)到下限則向下運(yùn)行檢測(cè)水溫,水溫在設(shè)定值的下限,則結(jié)束操作;水溫不在范圍則進(jìn)行相應(yīng)的操作,最后中在檢測(cè)水溫是否在范圍內(nèi),如果在則結(jié)束,如果不在則回到上一步進(jìn)行相應(yīng)的操作。
圖2 主程序流程圖
以下是讀溫度流程圖(圖3),系統(tǒng)初始化,檢測(cè)DS18B20是否存在,果存在則進(jìn)行ROM操作指令,在向下進(jìn)行存儲(chǔ)指令,最后讀取溫度值再結(jié)束。如果DS18B20不存在則直接結(jié)束,不進(jìn)行溫度采集。
圖3 讀取溫度流程圖
定位系統(tǒng)的軟件部分主要分為:系統(tǒng)初始化,然后GPS定位信息的采集,將采集到的信息進(jìn)行A/D轉(zhuǎn)化,再將采集到的數(shù)據(jù)存入緩沖區(qū),再檢測(cè)有無(wú)詢(xún)問(wèn)指令,如果沒(méi)有繼續(xù)檢測(cè),如果有檢測(cè)串口是否打開(kāi),如果沒(méi)打開(kāi)繼續(xù)監(jiān)測(cè),直到打開(kāi)為止,然后將定位數(shù)據(jù)在緩沖區(qū)進(jìn)行字符轉(zhuǎn)換,最后發(fā)送定位數(shù)據(jù),結(jié)束定位采集與發(fā)送。
圖4 定位采集與發(fā)送的總流程圖
開(kāi)始GPS定位數(shù)據(jù)的采集。打開(kāi)串行口,設(shè)置波特率為4800,設(shè)置定時(shí)時(shí)間為1秒,定時(shí)讀串行口。讀取窗口1緩存,判斷是否GPRMC語(yǔ)句,如果不是繼續(xù)檢測(cè),如果是復(fù)制該語(yǔ)句并從緩存中刪除該語(yǔ)句,刪除復(fù)制語(yǔ)句中的表頭SGPRMC,再提取UTC時(shí)間并轉(zhuǎn)換為北京時(shí)間,再判斷接受狀態(tài)是否有效,如果無(wú)效回到讀取串行口1緩存,判斷是否GPRMC語(yǔ)句,如果是分別提取經(jīng)緯度再提取UTC日期。
圖5 GPS定位流程圖
程序開(kāi)始,設(shè)置短消息的格式,設(shè)置接收號(hào)碼,短信PDU編碼,再向串口寫(xiě)AR指令,檢測(cè)是否成功,不成功繼續(xù)發(fā)送指令,成功則結(jié)束GSM短消息定位信息的發(fā)送。
圖6 GSM短信息流程圖
1)在Keil4軟件中先創(chuàng)建一個(gè)工程:?jiǎn)螕舨藛螜谥械摹肮こ獭?,輸入新建工程名,并保存;然后器件選擇“Atmel”目錄下的“STC89C52” 。
2)新建用戶(hù)源文件:在新建的空白文本中編寫(xiě)程序源代碼,編碼完成保存文件并文件拓展名“***.c”,新文件創(chuàng)建完成。
3)程序編譯和調(diào)試:?jiǎn)螕艟幾g按鈕,系統(tǒng)會(huì)對(duì)文件進(jìn)行運(yùn)行,在輸出窗口中可看到提示信息,如下圖中有一個(gè)error,按提示找出錯(cuò)誤并改正,直到提示沒(méi)有錯(cuò)誤提示為止,如圖7所示。
圖7 提示信息無(wú)錯(cuò)誤
4)程序編譯無(wú)錯(cuò)誤后,進(jìn)入程序調(diào)試狀態(tài),可查看單片機(jī)資源狀態(tài),進(jìn)行斷點(diǎn)等方式調(diào)試。
如果硬件電路檢查后,確定無(wú)任何問(wèn)題,但還是實(shí)現(xiàn)不了設(shè)計(jì)要求,那么就有可能是在程序的編寫(xiě)上存在問(wèn)題。我們可以根據(jù)軟件的結(jié)構(gòu)和程序的編寫(xiě)方法逐個(gè)模塊或逐個(gè)任務(wù)調(diào)試好再進(jìn)行系統(tǒng)總調(diào)試。如果總體能同時(shí)運(yùn)行,硬件和軟件一樣都沒(méi)有問(wèn)題,那么一般情況下系統(tǒng)就可以正常運(yùn)行了。