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

圖2-1DS18B20引腳圖
DS18B20內部結構主要由四部分組成:64位光刻ROM、溫度傳感器、非揮發的溫度報警觸發器TH和TL、配置寄存器。

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

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

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

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

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

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

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

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


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

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

3.如下圖就已經生成好了

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

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

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