1硬件系統(tǒng)總體方案設(shè)計
采用數(shù)字溫度芯片DS18B20測量溫度,輸出信號全數(shù)字化。便于單片機處理和控制,省去傳統(tǒng)的測溫方法的很多外圍電路。且該芯片的物理化學(xué)性質(zhì)穩(wěn)定,它溫用作工業(yè)測溫元件,此元件線性較好。在0-100攝氏度時最大線性偏差小于1攝氏度。DS18B20的最大特點之一是采用了單總數(shù)的數(shù)據(jù)傳輸,由數(shù)字溫度計DS18B20和微控制器STC12C5A60S2單片機構(gòu)成溫度測量裝置,它直接輸出溫度的數(shù)字信號,可直接和計算機連接。這樣溫度系統(tǒng)的結(jié)構(gòu)就比較簡單,體積也不大。采用51單片機控制軟件編程的自由度大,而且體積小,硬件實現(xiàn)簡單,安裝方便。
該系統(tǒng)利用STC12C5A60S2芯片控制溫度傳感器DS18B20進行溫度的實時檢測并顯示,能夠?qū)崿F(xiàn)快速測量環(huán)境溫度。硬件以微控制器為核心外接時鐘電路復(fù)位電路溫度測量電路LED顯示電路組成。
本溫度計大體分三個工作過程。首先,由DS18B20溫度傳感器芯片測量當前的溫度,并將結(jié)果送入單片機然后通過STC12C5A60S2單片機芯片對送來的測量溫度讀數(shù)進行計算和轉(zhuǎn)換,井將此結(jié)果送入顯示模塊。
2各部分功能設(shè)計
2.1傳感器電路
2.1.1DS18B20的簡單介紹
DS18B20是DALLAS公司生產(chǎn)的一線式數(shù)字溫度傳感器,具有3引腳TO92小體積封裝形式;溫度測量范圍為-55攝氏度到+125攝氏度可編程為9位-12位AD轉(zhuǎn)換精度,測溫分辨率可達0.0625攝氏度,被測溫度用符號擴展的16位數(shù)字量方式串行輸出;其工作電源既可在遠端引入,也可采用寄生電源方式產(chǎn)生;多個DS18B20可以并聯(lián)到3根或2根線上,CPU只需一根端口線就能與諸多DS18B20通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。以上特點使DS18B20非常適用于遠距離多點溫度檢測系統(tǒng)。
2.1.2DS18B20的性能特點
1.獨特的單線接口方式,DS18B20在與微處理器連接時僅需要一條口線即可實現(xiàn)微處理器與DS18B20的雙向通訊。
2.DS18B20支持多點組網(wǎng)功能,多個DS18B20可以并聯(lián)在唯一的三線上,實現(xiàn)組網(wǎng)多點測溫。
3.DS18B20在使用中不需要任何外圍元件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi)。
4.適應(yīng)電壓范圍更寬,電壓范圍3.0-5.5V在寄生電源方式下可由數(shù)據(jù)線供電。
溫范圍-55攝氏度-125攝氏度在-10攝氏度到+85攝氏度時精度為正負0.5。
零待機功耗。
5.可編程的分辨率為9-12位。對應(yīng)的可分辨溫度分別為0.5、0.25、0.125和0.0625可實現(xiàn)高精度測溫。
6.用戶可定義報警設(shè)置。
7.報警搜索命令識別并標志超過程序限定溫度溫度報警條件的器件。
8.測量結(jié)果直接輸出數(shù)字溫度信號,以一線總線串行傳送給CPU,同時可傳送CRC校驗碼具有極強的抗干擾糾錯能力。
9.負電壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀但不能正常工作。
2.1.3DS18B20引腳定義
(1)引腳定義
- DQ為數(shù)字信號輸入輸出端;
- GND為電源地;
- VDD為外接供電電源輸入端(在寄生電源接線方式時接地);

圖2-1DS18B20引腳圖
DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器TH和TL、配置寄存器。

圖2-2單片機內(nèi)部結(jié)構(gòu)圖
2.1.4DS18B20功能實現(xiàn)原理
DS18B20的測溫原理如圖2所示,圖中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小用于產(chǎn)生固定頻率的脈沖信號送給減法計數(shù)器1,高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,所產(chǎn)生的信號作為減法計數(shù)器2的脈沖輸入,圖中還隱含著計數(shù)門,當計數(shù)門打開時,DS18B20就對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖后進行計數(shù),進而完成溫度測量。計數(shù)門的開啟時間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將-55攝氏度所對應(yīng)的基數(shù)分別置入減法計數(shù)器1和溫度寄存器中,減法計數(shù)器1和溫度寄存器被預(yù)置在55所對應(yīng)的一個基數(shù)值。
減法計數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行減法計數(shù),當減法計數(shù)器1的預(yù)置值減到0時溫度寄存器的值將加1,減法計數(shù)器1的預(yù)置將重新被裝入,減法計數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行計數(shù),如此循環(huán)直到減法計數(shù)器2計數(shù)到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值即為所測溫圖2中的斜率累加器用于補償和修正測溫過程中的非線性其輸出用,于修正減法計數(shù)器的預(yù)置值,只要計數(shù)門仍未關(guān)閉就重復(fù)上述過程,直至溫度寄存器值達到被測溫度值,這就是DS18B20的測溫原理。
2.2單片機最小系統(tǒng)
2.2.1 STC12C5A60S2單片機
STC12C5A60S2/AD/PWM系列單片機是宏晶科技生產(chǎn)的單時鐘/機器周期(1T)的單片機,是高速/低功耗/超強抗干擾的新一代8051單片機,指令代碼完全兼容傳統(tǒng)8051,但速度快8-12倍。內(nèi)部集成MAX810專用復(fù)位電路,2路PWM,8路高速10位A/D轉(zhuǎn)換(250K/S),針對電機控制,強干擾場合。

圖2-3單片機實物圖
2.2 .2 STC12C5A60S2的功能1.增強型8051 CPU,1T,單時鐘/機器周期,指令代碼完全兼容傳統(tǒng)8051;
2.工作電壓:STC12C5A60S2系列工作電壓:5.5V-3.3V(5V單片機)STC12LE5A60S2系列工作電壓:3.6V-2.2V(3V單片機);
3.工作頻率范圍:0 - 35MHz,相當于普通8051的 0~420MHz;
4.用戶應(yīng)用程序空間8K /16K / 20K / 32K / 40K / 48K / 52K / 60K / 62K字節(jié);
5.片上集成1280字節(jié)RAM;
6.通用I/O口(36/40/44個),復(fù)位后為:準雙向口/弱上拉(普通8051傳統(tǒng)I/O口),可設(shè)置成四種模式:準雙向口/弱上拉,推挽/強上拉,僅為輸入/高阻,開漏,每個I/O口驅(qū)動能力均可達到20mA,但整個芯片最大不要超過120ma;
7. ISP(在系統(tǒng)可編程)/IAP(在應(yīng)用可編程),無需專用編程器,無需專用仿真器 可通過串口(P3.0/P3.1)直接下載用戶程序,數(shù)秒即可完成一片;
8.有EEPROM功能(STC12C5A62S2/AD/PWM無內(nèi)部EEPROM);
9.內(nèi)部集成MAX810專用復(fù)位電路(外部晶體12M以下時,復(fù)位腳可直接1K電阻到地);
10.外部掉電檢測電路:在P4.6口有一個低壓門檻比較器,5V單片機為1.32V,誤差為+/-5%,3.3V單片機為1.30V,誤差為+/-3%;
11.時鐘源:外部高精度晶體/時鐘,內(nèi)部R/C振蕩器(溫漂為+/-5%到+/-10%以內(nèi)) 1用戶在下載用戶程序時,可選擇是使用內(nèi)部R/C振蕩器還是外部晶體/時鐘,常溫下內(nèi)部R/C振蕩器頻率為:5.0V單片機為:11MHz~15.5MHz,3.3V單片機為:8MHz~12MHz,精度要求不高時,可選擇使用內(nèi)部時鐘,但因為有制造誤差和溫漂,以實際測試為準;
12.共4個16位定時器 兩個與傳統(tǒng)8051兼容的定時器/計數(shù)器,16位定時器T0和T1,沒有定時器2,但有獨立波特率發(fā)生器 做串行通訊的波特率發(fā)生器 再加上2路PCA模塊可再實現(xiàn)2個16位定時器;
13. 2個時鐘輸出口,可由T0的溢出在P3.4/T0輸出時鐘,可由T1的溢出在 P3.5/T1輸出時鐘.

圖2-4單片機最小系統(tǒng)圖
2.2.3 STC12C5A60S2的優(yōu)點
STC12C5A60S2是8051系列單片機,與普通51單片機相比有以下特點
1.同樣晶振的情況下,速度是普通51的8~12倍
2.有8路10位AD
3.多了兩個定時器,帶PWM功能
4.有SPI接口
5.有EEPROM
6.有1K內(nèi)部擴展RAM
7.有WATCH_DOG
8.多一個串口
9. IO口可以定義,有四種狀態(tài)
10.中斷優(yōu)先級有四種狀態(tài)可定義。
2.3 TFT彩屏顯示功能
2.3.1 TFT彩屏簡介
屏幕尺寸:2.4寸TFT彩屏
分辨率:320x240 262K色
接口類型:8位數(shù)據(jù)接口,接口兼容12864液晶接口,①腳對齊
電源類型:5V電源接口,板上有3.3V穩(wěn)壓芯片,不需要電平轉(zhuǎn)換
SD卡模式:SPI模式
觸摸IC:XPT2046
2.3.2彩屏結(jié)構(gòu)組成及原理
TFT屏(Thin Film Transistor)是薄膜晶體管型液晶顯示屏,它的每一個象素點都是由集成在其后的薄膜晶體管來驅(qū)動的,這樣不僅提高了顯示屏的響應(yīng)速度,同時可以精確控制顯示色階,所以TFT液晶的色彩更逼真。
TFT屏主要的構(gòu)成包括:背光源、導(dǎo)光板、偏光板、濾光板、玻璃基板、配向膜、液晶材料、薄膜晶體管等。
2.3.3彩屏的顏色表示一個彩色像素的信息可以用1個多位二進制數(shù)來表示和儲存。用來表示彩色像素的二進制數(shù)的位數(shù)我們稱為顏色深度或顏色質(zhì)量。本彩屏模塊采用16位二進制數(shù)5-6-5格式。
2.3.4 TFT彩屏顯示模塊原理 
圖2-5TFT彩屏顯示模塊原理圖
3系統(tǒng)軟件設(shè)計
3.1主程序

圖3-1程序框圖(程序見附錄1)
3.2溫度檢測模塊DS18B20

圖3-2溫度檢測程序框圖
(程序見附錄2)
4編程及取模
4.1 編程軟件及語言的選擇51編程軟件可以使用Keil uVision3或Keil uVision4進行程序編程及仿真。Keil C 51軟件是眾多單片機應(yīng)用開發(fā)的優(yōu)秀軟件之一。它集編輯,編譯,仿真于一體。支持匯編,PLM語言和C語言的程序設(shè)計,界面友好,易學(xué)易用,具體用法在實訓(xùn)過程中已詳細講述及學(xué)習(xí)。
編程語言一般都是用C語言編程。C語言是編譯型程序設(shè)計語言,兼顧高級語言的特點,并具備匯編語言的功能。C語言是一種結(jié)構(gòu)化程序設(shè)計語言,它支持當前程序設(shè)計中廣泛采用的由頂向下結(jié)構(gòu)化程序設(shè)計技術(shù)。此外,C語言程序具有完善的模塊程序結(jié)構(gòu)。C語言執(zhí)行效率沒有匯編語言高,但語言簡潔,使用方便,靈活,運算豐富,表達化類型多樣化,數(shù)據(jù)結(jié)構(gòu)類型豐富,具有結(jié)構(gòu)化的控制語句,程序設(shè)計自由度大,有很好的可重用性,可移植性等特點;贑語言的眾多優(yōu)點本設(shè)計選擇此語言來編程。此外,還可以使用匯編語言,C++等語言來進行編程。
4.2 Keil uVision4軟件的使用2009年2月發(fā)布Keil μVision4,Keil μVision4引入靈活的窗口管理系統(tǒng),使開發(fā)人員能夠使用多臺監(jiān)視器,并提供了視覺上的表面對窗口位置的完全控制的任何地方。新的用戶界面可以更好地利用屏幕空間和更有效地組織多個窗口,提供一個整潔,高效的環(huán)境來開發(fā)應(yīng)用程序。新版本支持更多最新的ARM芯片,還添加了一些其他新功能。
2011年3月ARM公司發(fā)布最新集成開發(fā)環(huán)境RealView MDK開發(fā)工具中集成了最新版本的Keil μVision4,其編譯器、調(diào)試工具實現(xiàn)與ARM器件的最完美匹配。
1、建議先新建一個文件夾用來存放,不然待會兒找不著。輸入工程名后點保存,出現(xiàn)單片機型號選擇框,目前一般用STC89C51的51單片機入門,選好后點擊OK。

圖4-1
- 在完成選擇MCU型號后,軟件會提示我們是否要復(fù)制一個源文件到這個工程中,這里我們選擇“否”,因為我要自己添加一個C語言或者匯編語言源文件,如圖所示。

圖4-2
在執(zhí)行上一步后,就能在工程窗口的文件頁中,出現(xiàn)了“Target 1” ,前面有“+”號,點擊“+”號展開,可以看到下一層的“Source Group1”,這時的工程還是一個空的工程,里面什么文件也沒有,到這里我們就完整的把一個工程建立好了。
3、工程創(chuàng)建完畢,接下來開始建立一個源程序文本

圖4-3
4、輸入源程序文件名名稱,在這里輸入“test test””。注意:如果您想用匯編語言,要帶后綴名一定是“test.asm asm””,如果是C語言,則是“test test..c”,然后保存。
圖4-4
- 接下來需要把剛創(chuàng)建的源程序文件加入到工程項目文件中


圖4-5
6、工程項目創(chuàng)建和設(shè)置全部完成!點擊保持并編譯。產(chǎn)生了一個名為“test.hex”文件,這個是最終寫入單片機的可執(zhí)行文件。
圖4-6
4.3 Lcm取模軟件的使用專門用于對c語言文件自動提取顯示所需要的漢字,進行點陣碼數(shù)據(jù)轉(zhuǎn)換的,在您的C語言程序中,有一點需要特別留意:您的注解中請不要使用雙引號,否則會引起提取錯誤。
1.選擇完成后點擊“參數(shù)確認”,紅色圈中

2.最下側(cè)的輸入框可以輸入漢字了,紅色圈中

3.如下圖就已經(jīng)生成好了

4.我們將漢字后的編碼復(fù)制到單片機程序中去就可以用了

5系統(tǒng)調(diào)試
首先檢測串口能否通,先串口線或者USB轉(zhuǎn)串口線插到計算機上,再打開串口調(diào)試助手,接著選擇串口,串口線和USB轉(zhuǎn)串口的端口號查看路徑:計算機—右鍵—設(shè)備管理器—端口(COM和LPT),點開查看,接著設(shè)置串口調(diào)試助手,選擇端口號,說明串口和串口線正常。調(diào)好后打開燒錄軟件,燒錄已經(jīng)編寫好的程序,下載成功。然后在TFT顯示屏上可以觀察到當前溫度和溫度變化波形。

總結(jié)
通過這次實訓(xùn)設(shè)計加強了自己動手思考和解決問題的能力,在設(shè)計過程中經(jīng)常會遇到這樣那樣的情況,就是心里想老著這樣的接法可以行得通但實際接上電路總是實現(xiàn)不了,因此耗費在這上面的時間用去很多,我知道做實訓(xùn)設(shè)計同時也是對課本知識的鞏固,并且對于傳感器與單片機在電路中的使用有了更多的認識,平時看課本時有時問題老是弄不懂做完課程設(shè)計那些問題就迎刃而解了,而且還可以記住很多東西,比如單片機各個引腳的功能平時看課本這次看了下次就忘了,通過動手實踐讓我們對各個元件映象深刻,認識來源于實踐,實踐是認識的動力和最終目的,實踐是檢驗真理的唯一標準。所以這課程設(shè)計對我們的作用是非常大的,通過這次課程設(shè)計使我懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠遠不夠的,只有把所學(xué)的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù)從而提高自己的實際動手能力和獨立思考的能力,在設(shè)計的過程中遇到問題可以說得是困難重重,這畢竟第一次做的難免會遇到過各種各樣的問題,同時在設(shè)計的過程中發(fā)現(xiàn)了自己的不足之處對以前所學(xué)過的知識掌握的不夠牢理解的不夠深刻。
這次的實訓(xùn)終于完成了,在老師的身上我們學(xué)習(xí)到了很多知識,在此表示我的感謝。在實訓(xùn)中我也學(xué)習(xí)到了課內(nèi)學(xué)不到的東西如獨立思考解決問題、團結(jié)互助、隨機應(yīng)變等,這些都讓我受益匪淺。
致 謝
這次實訓(xùn)圓滿的結(jié)束有賴于老師和同學(xué)們的幫助,老師耐心的向我們講解知識,并幫助我們解決各種各樣的問題,可以說沒有老師的幫助,這次實訓(xùn)可能也不會順利結(jié)束,老師教我的知識我將一生受用。當然也離不開小組同學(xué)的熱心幫助,是小組同學(xué)的相互討論讓我們有了很多啟發(fā)。通過本次畢業(yè)設(shè)計,我在專業(yè)知識專業(yè)技能和解決問題方法方面得到很大的提高,更深入了解并掌握了傳感器的基本理論知識,并在單片機實際電路開發(fā)和常用編程設(shè)計思路掌握方面有了一定程度的掌握,盡管本次設(shè)計還不是很完善,但這為我以后的設(shè)計之路積累了寶貴的經(jīng)驗。