南京郵電大學 葛 樸
南京曉莊學院 葛 睿
前言:隨著科技的發展智能保溫杯也得到了改進,以傳統保溫杯為基礎,現代智能保溫杯可以智能加熱和保溫。主控芯片選用51系列單片機中的STC89C52,可以使此設計產品更加智能化和自動化。
智能保溫杯是基于52單片機來實現的溫度檢測與控制和簡易GPS定位信息顯示系統。主控芯片選用51系列單片機中的STC89C52,溫度傳感器選用DS18B20防水型溫度傳感器,可以對溫度進行實時采集,另外LCD1602液晶顯示屏可顯示DS18B20采集到的實時水溫、定時時間和設置的水溫下限。并且還運用水位檢測功能,當保溫杯里的水沒有到達下限,則繼電器不會吸合驅動加熱功能,防止干燒。當水溫低于設定的下限且水位達到下限,繼電器才會吸合驅動加熱。通過這些系統設計,既能防止無水干燒,又能將溫度控制在相應的范圍內。另外還采用GPS定位和GSM短信發送對智能保溫杯隨時可獲取其位置,有效的防止智能保溫杯的丟失。
如圖1通過溫度傳感器,檢測實時水溫,通過控制系統作出判斷,并通過加熱電路驅動加熱器工作。顯示模塊顯示DS18B20采集到的實時水溫、定時時間和設置的水溫上下限。采用GPS模塊定位,GSM模塊可向特定手機號碼發送短信,短信內容為系統的當前經緯度信息,有效的防止產品的丟失。

圖1 STC89C52控制的智能保溫杯
1)控制系統的選擇
作為設計的核心,其運算精度,功能的多樣性以及抗干擾性的能力是系統考慮的重要因素。可以直接在線編程的單片機STC89C52作為系統的處理器,工作模式上具有6T模式,也可以是12T模式,STC89C52的工作電壓為3.3-5V,對于溫度和光照強度的數據進行處理,實現電機的運轉。
2)溫度傳感器的選擇
采用的是DS18B20防水型溫度傳感器。DS18B20單總線可同時連接很多溫點,只需要一個元件,成本低,精確度高,電路簡單,信號線距離遠,體積小,抗干擾能力強。
3)顯示器的選擇
采用1622液晶顯示屏來顯示當前的數值。1602功耗低、體積小、顯示內容多樣化、便于安裝,常用在低功耗系統中,不能顯示圖形,但是對于本系統來說能夠滿足基本的顯示功能。
4)驅動模塊的選擇
采用LMD18245集成芯片驅動加熱片。通過運行程序驅動加熱片,是一種開關室的全橋功率驅動加熱片的集成芯片。運用這種集成芯片工作可靠性高。
5)信息傳輸模塊的選擇
使用GSM模塊SIM800A作為信息傳輸的媒介,只需要插上移動卡,即可在全球有移動網絡的地方接收到信號。
系統初始化,檢測水位是否達到下限,如果達到下限則向下運行檢測水溫,水溫在設定值的下限,則結束操作;水溫不在范圍則進行相應的操作,最后中在檢測水溫是否在范圍內,如果在則結束,如果不在則回到上一步進行相應的操作。

圖2 主程序流程圖
以下是讀溫度流程圖(圖3),系統初始化,檢測DS18B20是否存在,果存在則進行ROM操作指令,在向下進行存儲指令,最后讀取溫度值再結束。如果DS18B20不存在則直接結束,不進行溫度采集。

圖3 讀取溫度流程圖
定位系統的軟件部分主要分為:系統初始化,然后GPS定位信息的采集,將采集到的信息進行A/D轉化,再將采集到的數據存入緩沖區,再檢測有無詢問指令,如果沒有繼續檢測,如果有檢測串口是否打開,如果沒打開繼續監測,直到打開為止,然后將定位數據在緩沖區進行字符轉換,最后發送定位數據,結束定位采集與發送。

圖4 定位采集與發送的總流程圖
開始GPS定位數據的采集。打開串行口,設置波特率為4800,設置定時時間為1秒,定時讀串行口。讀取窗口1緩存,判斷是否GPRMC語句,如果不是繼續檢測,如果是復制該語句并從緩存中刪除該語句,刪除復制語句中的表頭SGPRMC,再提取UTC時間并轉換為北京時間,再判斷接受狀態是否有效,如果無效回到讀取串行口1緩存,判斷是否GPRMC語句,如果是分別提取經緯度再提取UTC日期。

圖5 GPS定位流程圖
程序開始,設置短消息的格式,設置接收號碼,短信PDU編碼,再向串口寫AR指令,檢測是否成功,不成功繼續發送指令,成功則結束GSM短消息定位信息的發送。

圖6 GSM短信息流程圖
1)在Keil4軟件中先創建一個工程:單擊菜單欄中的“工程”,輸入新建工程名,并保存;然后器件選擇“Atmel”目錄下的“STC89C52” 。
2)新建用戶源文件:在新建的空白文本中編寫程序源代碼,編碼完成保存文件并文件拓展名“***.c”,新文件創建完成。
3)程序編譯和調試:單擊編譯按鈕,系統會對文件進行運行,在輸出窗口中可看到提示信息,如下圖中有一個error,按提示找出錯誤并改正,直到提示沒有錯誤提示為止,如圖7所示。

圖7 提示信息無錯誤
4)程序編譯無錯誤后,進入程序調試狀態,可查看單片機資源狀態,進行斷點等方式調試。
如果硬件電路檢查后,確定無任何問題,但還是實現不了設計要求,那么就有可能是在程序的編寫上存在問題。我們可以根據軟件的結構和程序的編寫方法逐個模塊或逐個任務調試好再進行系統總調試。如果總體能同時運行,硬件和軟件一樣都沒有問題,那么一般情況下系統就可以正常運行了。