目 錄 設計總說明 INTRODUCTION 第1章 緒論 1.1 概述 1.2 國內外發展現狀 1.2.1 國外研究現狀 1.2.2 國內研究現狀 第2章 系統總體方案設計 2.1 設計要求 2.2 方案選擇 2.2.1 傳感器的選擇 2.2.2 單片機的選擇 第3章 系統硬件設計 3.1 整體方案設計 3.1.1 系統概述 3.1.2 系統框圖 3.2 最小系統模塊 3.2.1 STC89C52簡介 3.2.2 最小系統電路 3.3 DS18B20傳感器電路 3.3.1 DS18B20簡介 3.3.2 時序說明 3.3.3 DS18B20模塊電路圖 3.4 數碼管顯示模塊 3.4.1 數碼管簡介 3.4.2 數碼管驅動方式的分類 3.4.3 數碼管驅動電路 第4章 軟件設計 4.1 程序語言及開發環境 4.2 程序流程圖設計 4.2.1 總體程序流程圖設計 4.2.2 溫度傳感器程序設計 4.2.3 數碼管動態掃描程序設計 第5章 硬件組裝與調試 5.1 元器件的選擇與測量 5.2 元件的焊接與組裝 5.3 電路的調試 5.3.1 調試方法 5.3.2 調試步驟 第6章 總結 鳴 謝 參考文獻 附 錄 附錄一 元件清單 附錄二 原理圖 附錄三 PCB圖
設計總說明
在人類的生活環境中,溫度扮演著極其重要的角色。溫度是工業生產和生活中常見的參數之一,任何物理變化和化學反應過程都與溫度密相關,因此溫度檢測和監控是生產自動化的重要任務。隨著社會的發展,科技的進步,以及測溫儀器在各個領域的應用,智能化是現代溫度檢測系統發展的主流方向。特別是近幾年來,溫度檢測系統早已應用到人們生活的各個方面。 溫度測量是溫度控制的基礎,技術已經比較成熟。傳統的測溫元件有熱電偶和熱敏電阻。而熱電偶和熱電阻測出的一般都是電壓,再轉換成對應的溫度,這些方法相對比較復雜,需要比較多的外部硬件支持。我們用一種相對比較簡單的方式來測量,采用美國DALLAS半導體公司推出的一種改進型智能溫度傳感器DS18B20作為檢測元件,溫度范圍為-55~125oC,最高分辨率可達0.0625oC。DS18B20可以直接讀出被測物體的溫度值,而且采用單總線與單片機相連,減少了外部的硬件電路,具有低成本和易使用的特點。 本文介紹一種基于STC89C52單片機的溫度測量系統,該電路采用DS18B20作為溫度監測元件,使用LED數碼管作為模塊顯示。
第1章 緒論
1.1 概述二十一世紀是科技高速發展的信息時代,電子技術、微型單片機技術的應用更是空前廣泛,伴隨著科學技術和生產的不斷發展,需要對各種參數進行溫度測量。因此溫度一詞在生產生活之中出現的頻率日益增多,與之相對應的,溫度測量和控制也成為了生活生產中頻繁使用的詞語,同時它們在各行各業中也發揮著重要的作用。如在日趨發達的工業之中,利用測量與控制溫度來保證生產的正常運行。在農業中,用于保證蔬菜大棚的恒溫保產等。 溫度是表征物體冷熱程度的物理量,溫度測量則是工農業生產過程中一個很重要而普遍的參數。溫度的測量及控制對保證產品質量、提高生產效率、節約能源、生產安全、促進國民經濟的發展起到非常重要的作用。由于溫度測量的普遍性,溫度傳感器的數量在各種傳感器中居首位。而且隨著科學技術和生產的不斷發展,溫度傳感器的種類還是在不斷增加豐富來滿足生產生活中的需要。 單片機溫度測量則是對溫度進行有效的測量,并且能夠在工業生產中得到了廣泛的應用,尤其在電力工程、化工生產、機械制造、冶金工業、農業等重要領域中擔負著重要的測量任務。在日常生活中,也可廣泛實用于地熱、空調器、電加熱器等各種家庭室溫測量及工業設備溫度測量場合。 1.2 國內外發展現狀
1.2.1 國外研究現狀國外對溫度控制技術研究較早,始于20世紀70年代。先是采用模擬式的組合儀表,采集現場信息并進行指示、記錄和控制。80年代末出現了分布式控制系統。目前正開發和研制計算機數據采集控制系統的多因子綜合控制系統。90年代中期,智能溫控儀問世,它是微電子技術、計算機技術和自動測試技術的結晶。目前,國際上已開發出多種智能溫控產品系列,智能溫控器內部包含溫度傳感器、AD轉換器、信號處理器和接口電路,有的產品還有多路選擇器、中央控制器、隨機存儲器和只讀存儲器等。現在世界各國的溫度測控技術發展很快,一些國家在實現自動化的基礎上正向著完全自動化、無人化的方向發展。 1.2.2 國內研究現狀 我國對于溫度測控技術的研究較晚,始于20世紀80年代。我國工程技術人員在吸收發達國家溫度測控技術的基礎上,才掌握了溫度室內微機控制技術,該技術僅限于對溫度的單項環境因子的控制。我國溫度測控設施計算機應用,在總體上正從消化吸收、簡單應用階段向實用化、綜合性應用階段過渡和發展。在技術上,以單片機控制的單參數單回路系統居多,尚無真正意義上的多參數綜合控制系統,與發達國家相比,存在較大差距。我國溫度測量控制現狀還遠遠沒有達到工廠化的程度,生產實際中仍然有許多問題困擾著我們,存在著裝備配套能力差,產業化程度低,環境控制水平落后,軟硬件資源不能共享和可靠性差等缺點。 第2章 系統總體方案設計2.1 設計要求(1)熟悉51單片機集成開發環境,運用C語言編寫工程文件;
(2)熟練應用所選用單片機的內部結構、資源,以及軟硬件調試設備的基本方法;
(3)自行構建基于單片機的最小系統,完成相關硬件電路的設計實現;
(4)理解基于單片機的溫度計的原理和掌握實現方法。 2.2 方案選擇2.2.1 傳感器的選擇方案一:采用模擬集成溫度傳感器,模擬集成傳感器是采用硅半導體集成工藝而制成的,因此亦稱硅傳感器或單片集成溫度傳感器。典型代表是AD590。AD590是溫度-電流傳感器,對于提高系統抗干擾能力有很大的幫助。但需要放大電路和A/D轉換電路,電路設計較為繁瑣。由于AD590的增益有偏差,因此應對采集電路進行調整,增加設計難度。 方案二:采用數字單片智能溫度傳感器,數字溫度傳感器包含A/D轉換器、溫度傳感器、信號處理器、存儲器(或寄存器)和接口電路等模塊。其典型產品有DS18B20。DS18B20是美國DALLAS公司生產的一線式數字溫度傳感器,其溫度測量范圍為-55℃~125℃,測溫分辨率可達0.0625℃,被測溫度用符號擴展的16位數字量方式并以串行形式輸出,其工作電源既可采用寄生電源方式產生,也可在遠端引入。多個DS18B20還可以將數據線并聯到CPU的同一根數據線上,CPU只需一個IO口就能與多個DS18B20進行通信,占用CPU的端口較少,并且制作簡單,外接電路簡單。 比較以上方案,由于DS18B20將溫度傳感器、信號放大調理、A/D轉換、接口全部集成于一芯片,與單片機連接簡單、方便。與AD590相比是更新一代的溫度傳感器,所以溫度傳感器采用DS18B20。 2.2.2 單片機的選擇方案一:采用DSP作為系統控制器。DSP(digital signal processor)是一種獨特的微處理器,是以數字信號來處理大量信息的器件。DSP具有對元件值的容限不敏感,受溫度、環境等外部因素影響小,容易實現集成,可分時復用,共享處理器,方便調整處理器的系數實現自適應,可用于頻率非常低的信號等優點。但DSP硬件電路比較復雜,且價格昂貴,數字系統由耗電的有源器件構成,沒有無源設備可靠。 方案二:采用單片機作為系統控制器。單片機具有可靠性強、性價比搞、電壓低、功耗低等優點得到迅猛發展和大范圍推廣,單片機算術運算功能強,軟件編程靈活,自由度大,可用軟件編程實現各種邏輯功能,本身帶有定時器、計數器,可以用來定時和計數,并且其功耗低,體積小,計數成熟和成本低等優點。 通過以上兩種方案論證和比較,從設計的實用性,方便性和成本出發,選擇了以STC89C52單片機作為中央處理單元進行溫度計的設計。
第3章 系統硬件設計
3.1 整體方案設計
3.1.1 系統概述整個系統以STC89C52單片機為核心器件,配合電阻電容晶振等器件,構成單片機的最小系統。其它個模塊圍繞著單片機最小系統展開。其中包括,傳感器采用DS18B20,負責采集溫度數據后發給單片機。顯示設備采用4位共陰數碼管,顯示檢測到的溫度值。 供電使用5V的USB進行供電。 3.1.2 系統框圖   
3-1 系統框圖 3.2 最小系統模塊
3.2.1 STC89C52簡介(1)概述 STC89C52是一個低電壓,高性能CMOS 8位單片機,片內含8k bytes的可反復擦寫的Flash只讀程序存儲器和256 bytes的隨機存取數據存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術生產,兼容標準MCS-51指令系統,片內置通用8位中央處理器和Flash存儲單元,功能強大的STC89C52單片機可為您提供許多較復雜系統控制應用場合。 STC89C52有40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時內含2個外中斷口,3個16位可編程定時計數器,2個全雙工串行通信口,2個讀寫口線。STC89C52有PDIP、PQFP/TQFP及PLCC等三種封裝形式,以適應不同產品的需求。 (2)主要功能特性 ? ?◆兼容MCS51指令系統; ? ?◆8k可反復擦寫(>1000次)Flash ROM; ? ?◆32個雙向I/O口; ?◆256x8bit內部RAM ; ? ?◆3個16位可編程定時/計數器中斷; ?◆時鐘頻率0-24MHz; ? ?◆2個串行中斷; ? ?◆可編程UART串行通道; ? ?◆2個外部中斷源; ? ?◆共8個中斷源; ? ?◆2個讀寫中斷口線; ? ?◆3級加密位; ? ?◆低功耗空閑和掉電模式; ?◆軟件設置睡眠和喚醒功能; (3)8051單片機的引腳功能 MCS-51系列單片機一般采用40個引腳,雙列直插式封裝,用HMOS工藝制造,其外部引腳排列如圖3-2所示。其中,各引腳的功能為:
圖3-2 STC89C52引腳圖 ① 主電源引腳 VCC(40腳),接+5V電源正端; GND(20腳),接+5V電源地端; ② 外接晶體或外部振蕩器引腳 XTAL1(19腳),接外部晶振的一個引腳。在單片機內部,它是一個反相放大器 的輸入端。當采用外部振蕩器時,此引腳應接 地。 XTAL2(18腳),接外部晶振的另一個引腳。在片內接至反相放大器的輸出端和 內部時鐘電路的輸入端。當采用外部振蕩器時,此腳接外部振蕩器的輸出端。 ③ 控制信號線 RESET(9腳),復位信號輸入端,復位/掉電時內部RAM的備用電源輸入端。 ALE(30腳),地址鎖存允許/編程脈沖輸入,用ALE鎖存從P0口輸出的低8位地址。在對片內EPROM編程時,編程脈沖由此輸入。 PSEN(29腳),外部程序存儲器讀選通信號,低電平有效。 EA(31腳),訪問外部存儲器允許/編程電壓輸入。EA為高電平時,訪問內部存 儲器;低電平時,訪問外部存儲器。 ④ 多功能I/O口引腳 8051單片機設有4個雙向I/O口(P0、P1、P2、P3),每一組I/O口線都可以獨立地用作輸入或輸出口,其中: P0口(32~39腳)——雙向口(三態),可作為輸入/輸出口,可驅動8個LSTTL門電路。實際應用中常作為分時使用的地址/數據總線口,對外部程序或數據存儲器尋址時低8位地址與數據總線分時使用P0口:先送低8位地址信號到P0口,由地址鎖存信號ALE的下降沿將地址信號鎖存到地址鎖存器后,再作為數據總線的口線對數據進行輸入或輸出。 P1口(1~8腳)——準雙向口(三態),可驅動4個LSTTL門電路。用作 輸入線時,口鎖存器必須由單片機先寫入“1”,每一位都可編程為輸入或輸出 線。 P2口(21~28)——準雙向口(三態),可驅動4個LSTTL門電路。可作 為輸入/輸出口,實際應用中一般作為地址總線的高8位,與P0口一起組成16 位地址總線,用于對外部存儲器的接口電路進行尋址。 P3口(10~17腳)——準雙向口(三態),可驅動4個LSTTL門電路。雙 功能口,作為第一功能使用時,與P1口一樣;作為第二功能使用時,每一 位都有特定用途,其特殊用途如表3.1所示: 表3.1 P3口第二用途
3.2.2 最小系統電路STC89C52的最小系統如圖3-3所示,整個最小系統由三個部分組成,晶振電路部分、復位電路部分、電源電路等三個部分組成。 晶振電路包括2個30pF的電容C2和C3,以及12M的晶振X1。電容的作用在這里是起振作用,幫助晶振更容易的起振,取值范圍是15-33pF。晶振的取值也可以是24M,晶振的取值越高,單片機的執行速度越快。在進行電路設計的時候,晶振部分越靠近單片機越好。 單片機復位電路就好比電腦的重啟部分,當電腦在使用中出現死機,按下重啟按鈕電腦內部的程序從頭開始執行。單片機也一樣,當單片機系統在運行中,受到環境干擾出現程序跑飛的時候,按下復位按鈕內部的程序自動從頭開始執行。 復位電路由10uF的極性電容C1和10K的電阻R2構成。利用電容電壓不能突變的性質,可以知道,當系統一上電,RESET腳將會出現高電平,并且這個高電平持續的時間由電路的RC值來決定。典型的51單片機當RESET腳的高電平持續兩個機器周期以上就將復位,所以適當組合RC的取值就可以保證可靠的復位。 最后一個是電源部分,采用5V的USB直接供電,可采用手機充電器、電腦USB口、移動電源等設備進行供電。 此外,除了單片機最小系統的3個部分之外,這里還多了一些外部電路。 由于STC89C52的P0口是漏極開路輸出,因此在P0口接了一個1K的排阻R1,使得P0口可以作為普通的I/O口使用,本設計用P0口來做數碼管的數據口。 特別注意的是,對于31腳(EA),當接高電平時,單片機在復位后從內部ROM的0000H開始執行;當接低電平時,復位后直接從外部ROM的0000H開始執行。由于我們的程序存儲在了單片機內部,所以EA要接高電平,保證單片機是從內部讀取程序去執行的。 
圖3-3 單片機最小系統 3.3 DS18B20傳感器電路3.3.1 DS18B20簡介(1)概述 DS18B20(圖3-4)是美國DALLAS半導體公司推出的第一片支持“一線總線”接口的溫度傳感器,它具有微型化,低功耗,高性能,抗干擾能力強,易配微處理器等優點,可直接將溫度轉化成數字信號處理器處理。測量的溫度范圍是-55~125℃,測溫誤差0.5℃。可編程分辨率9~12位,對應的可分辨溫度分別為0.5℃,0.25℃,0.125℃和0.0625℃。相較熱電偶傳感器而言可實現高精度測溫。  圖3-4 DS18B20圖 (2)特性 獨特的1-Wire總線接口僅需要一個管腳來通信; 每個設備的內部ROM上都燒寫了一個獨一無二的64位序列號; 多路采集能力使得分布式溫度采集應用更加簡單; 無需外圍元件; 供電范圍為3.0V至5.5V; 溫度可測量范圍為:-55℃至+125℃(-67℉至+257℉); 溫度范圍超過-10℃至85℃之外時具有+-0.5℃的精度; 內部溫度采集精度可以由用戶自定義為9-Bits至12-Bits; 溫度轉換時間在轉換精度為12-Bits時達到最大值750ms; 用戶自定義非易失性的的溫度報警設置; 定義了溫度報警搜索命令和當溫度超過用戶自定義的設定值時; 與DS1822程序兼容。 (3)管腳定義 Pin1:(VDD),可選的電源引腳; Pin2:(DQ),單線運用的數據輸入/輸出引腳; Pin3:(VDD),接地端,電源負極; (4)應用領域 該產品適用于冷凍庫,糧倉,儲罐,電訊機房,電力機房,電纜線槽等。 軸瓦,缸體,紡機,空調,等狹小空間工業設備測溫和控制。 汽車空調、冰箱、冷柜、以及中低溫干燥箱等。 供熱/制冷管道熱量計量,中央空調分戶熱能計量和工業領域測溫和控制。 3.3.2 時序說明單總線信號 DS18B20需要嚴格的單總線協議以確保數據的完整性。協議包括集中單總線信號類型:復位脈沖、存在脈沖、寫0、寫1、讀0和讀1。所有這些信號,除存在脈沖外,都是由總線控制器發出的。 復位序列,和DS18B20間的任何通訊都需要以初始化序列開始,初始化序列見圖3-5。一個復位脈沖跟著一個存在脈沖表明DS18B20已經準備好發送和接收數據。 在初始化序列期間,總線控制器拉低總線并保持480us以發出(TX)一個復位脈沖,然后釋放總線,進入接收狀態(RX)。單總線由5K上拉電阻拉到高電平。當DS18B20探測到I/O引腳上的上升沿后,等待15-60us,然后發出一個由60-240us低電平信號構成的存在脈沖。
圖3-5 DS18B20初始化時序圖 寫時序由兩種寫時序:寫1時序和寫0時序。總線控制器通過寫1時序寫邏輯1到DS18B20,寫0時序寫邏輯0到DS18B20。所有寫時序必須最少持續60us,包括兩個寫周期之間至少1us的恢復時間。當總線控制器把數據線從邏輯高電平拉到低電平的時候,寫時序開始(3-6)。 總線控制器要生產一個寫時序,必須把數據線拉到低電平然后釋放,在寫時序開始后的15us釋放總線。當總線被釋放的時候,5K的上拉電阻將拉高總線。總控制器要生成一個寫0時序,必須把數據線拉到低電平并持續保持(至少60us)。 總線控制器初始化寫時序后,DS18B20在一個15us到60us的窗口內對I/O線采樣。如果線上是高電平,就是寫1。如果線上是低電平,就是寫0。  3-6 讀/寫時序圖 讀時序,總線控制器發起讀時序時,DS18B20僅被用來傳輸數據給控制器。因此,總線控制器在發出讀暫存器指令[BEh]或讀電源模式指令[B4H]后必須立刻開始讀時序,DS18B20可以提供請求信息。除此之外,總線控制器在發出發送溫度轉換指令[44h]或召回EEPROM指令[B8h]之后讀時序。 所有讀時序必須最少60us,包括兩個讀周期間至少1us的恢復時間。當總線控制器把數據線從高電平拉到低電平時,讀時序開始,數據線必須至少保持1us,然后總線被釋放(見圖14)。在總線控制器發出讀時序后,DS18B20通過拉高或拉低總線上來傳輸1或0。當傳輸邏輯0結束后,總線將被釋放,通過上拉電阻回到上升沿狀態。從DS18B20輸出的數據在讀時序的下降沿出現后15us內有效。因此,總線控制器在讀時序開始后必須停止把I/O腳驅動為低電平15us,以讀取I/O腳狀態。 3.3.3 DS18B20模塊電路圖DS18B20的模塊電路圖如右圖所示:
圖3-7 DS18B20模塊連接圖 3.4 數碼管顯示模塊3.4.1 數碼管簡介 數碼管是一類價格便宜 使用簡單,通過對其不同的管腳輸入相對的電流,使其發亮,從而顯示出數字能夠顯示 時間、日期、溫度等所有可用數字表示的參數的器件。在電器特別是家電領域應用極為廣泛,如顯示屏、空調、熱水器、冰箱等等。LED數碼管(LED Segment Displays)由多個發光二極管封裝在一起組成“8”字型的器件,引線已在內部連接完成,只需引出它們的各個筆劃,公共電極。數碼管實際上是由七個發光管組成8字形構成的,加上小數點就是8個。這些段分別由字母a,b,c,d,e,f,g,dp來表示。當數碼管特定的段加上電壓后,這些特定的段就會發亮,以形成我們眼睛看到的字樣了。如:顯示一個“2”字,那么應當是a亮b亮g亮e亮d亮f不亮c不亮dp不亮。數碼管的外形如圖3-8所示。
圖3-8 數碼管封裝圖 LED數碼管有一般亮和超亮等不同之分,也有0.5寸、1寸等不同的尺寸。小尺寸數碼管的顯示筆畫常用一個發光二極管組成,而大尺寸的數碼管由二個或多個發光二極管組成,一般情況下,單個發光二極管的管壓降為1.8V左右,電流不超過30mA。發光二極管的陽極連接到一起連接到電源正極的稱為共陽數碼管(圖3-9),發光二極管的陰極連接到一起連接到電源負極的稱為共陰數碼管(圖3-10)。常用LED數碼管顯示的數字和字符是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。 
圖3-9 共陽數碼管內部原理圖 圖3-10 共陰數碼管內部原理圖 3.4.2 數碼管驅動方式的分類LED數碼管要正常顯示,就要用驅動電路來驅動數碼管的各個段碼,從而顯示出我們要的數字,因此根據LED數碼管的驅動方式的不同,可以分為靜態式和動態式兩類。 靜態驅動也稱直流驅動。靜態驅動是指每個數碼管的每一個段碼都由一個單片機的I/O端口進行驅動,或者使用如BCD碼二-十進制譯碼器譯碼進行驅動。靜態驅動的優點是編程簡單,顯示亮度高,缺點是占用I/O端口多,如驅動5個數碼管靜態顯示則需要5×8=40根I/O端口來驅動,要知道一個89S51單片機可用的I/O端口才32個,實際應用時必須增加譯碼驅動器進行驅動,增加了硬件電路的復雜性。 動態顯示,LED數碼管動態顯示接口是單片機中應用最為廣泛的一種顯示方式之一,動態驅動是將所有數碼管的8個顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個數碼管的公共極COM增加位選通控制電路,位選通由各自獨立的I/O線控制,當單片機輸出字形碼時,單片機對位選通COM端電路的控制,所以我們只要將需要顯示的數碼管的選通控制打開,該位就顯示出字形,沒有選通的數碼管就不會亮。通過分時輪流控制各個數碼管的的COM端,就使各個數碼管輪流受控顯示,這就是動態驅動。在輪流顯示過程中,每位數碼管的點亮時間為1~2ms,由于人的視覺暫留現象及發光二極管的余輝效應,盡管實際上各位數碼管并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩定的顯示數據,不會有閃爍感,動態顯示的效果和靜態顯示是一樣的,能夠節省大量的I/O端口,而且功耗更低。 3.4.3 數碼管驅動電路 本設計由于采用了4位數碼管,如果采用靜態驅動的話,將會占用單片機32個IO口,導致單片機IO口不夠用,因此采用數碼管的動態驅動方式,電路如下圖(圖3-11)所示,把數碼管的數據口接到單片機的P0口上,位選端則由單片機的P27、P26、P25、P24進行控制。只需12個IO口,就可以控制4位數碼管的顯示。在程序中需要輪流點亮每位數碼管,并且保持一定的點亮時間,由于人眼存在短暫的視覺停留,所以最終看起來的效果就好像是數碼管同時發亮顯示。
圖3-11 數碼管驅動電路 第4章 軟件設計4.1 程序語言及開發環境 C語言是一種計算機程序設計語言,它既具有高級語言的特點,又具有匯編語言的特點。它由美國貝爾實驗室的Dennis M. Ritchie于1972年推出,1978年后,C語言已先后被移植到大、中、小及微型機上,它可以作為工作系統設計語言,編寫系統應用程序,也可以作為應用程序設計語言,編寫不依賴計算機硬件的應用程序。它的應用范圍廣泛,具備很強的數據處理能力,不僅僅是在軟件開發上,而且各類科研都需要用到C語言,適于編寫系統軟件、三維、二維圖形和動畫,具體應用例如單片機以及嵌入式系統開發。 Keil C51是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發系統,與匯編相比,C語言在功能上、結構性、可讀性、可維護性上有明顯的優勢,因而易學易用。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調試器等在內的完整開發方案,通過一個集成開發環境將這些部分組合在一起。運行Keil軟件需要WIN98、NT、WIN2000、WINXP等操作系統。如果你使用C語言編程,那么Keil幾乎就是你的不二之選,即使不使用C語言而僅用匯編語言編程,其方便易用的集成環境、強大的軟件仿真調試工具也會令你事半功倍。 4.2 程序流程圖設計4.2.1 總體程序流程圖設計本系統的軟件流程圖如圖4-1所示。最開始先進行定時器的初始化,本設計利用定時器實現數碼管的動態掃描。接著就進入一個死循環,死循環執行以下內容:1讀取當前的溫度值;2顯示檢測到的溫度值;3延時。
圖4-1 主函數流程圖
4.2.2 溫度傳感器程序設計讀取溫度值的流程圖如圖4-2所示,首先是初始化傳感器,相當于是一次復位的過程,由于本設計只接了一個傳感器,因此無需區別傳感器的序列號,直接發一個指令0xcc跳過ROM尋找,接著發一個0x44的指令給傳感器,讓傳感器啟動溫度轉換。然后再次復位傳感器,接著還是一樣的跳過ROM指令0xcc,再往下就是發0xbe給傳感器準備讀取傳感器的檢測結果,最后就是讀取傳感器返回的檢測結果。
圖4-2 溫度傳感器程序流程圖
4.2.3 數碼管動態掃描程序設計為了簡化程序,合理利用單片機的內部資源,所以將數碼管的顯示利用單片機的定時器來實現,本設計使用的是數碼管的動態掃描法。所謂動態掃描,就是輪流依次的點亮每位數碼管管,并進行短暫延時,由于切換顯示的速度很快,每位數碼管只點亮兩毫秒的時間,利用人眼的余輝效應,使得看起來像是四位數碼管同時被點亮了。數碼管的顯示流程圖如圖4-3所示。
4-3 數碼管動態掃描流程圖
第5章 硬件組裝與調試5.1 元器件的選擇與測量本次設計的元器件主要有:STC89C52單片機、晶振、電阻、電容、開關、電源座、傳感器、數碼管等。這些元器件的引腳需要我們認真查找資料,了解每個器件的特性再進行焊接。這些元器件直接根據型號到電子元器件市場就很容易買到。其中焊接時要注意元件正負極性,電阻電容大小、芯片引腳順序等細節。一般電阻的大小可以通過色環讀取,或直接用萬用表進行測量;電容和晶振等的大小會標準在元件本身;元件的正負可以遵循長正短負的原則,一些特殊元件可以通過查找資料獲知正負極。 5.2 元件的焊接與組裝組裝電路通常采用焊接和在面包板上插接兩種方法,無論采用哪種方法均應注意以下幾方面。 (1)所有元器件在組裝前應盡可能全部測試一遍,以保證所用元器件均合格。 (2)所有集成電路的組裝方向要保持一致,以便于正確進行焊接合理安排布線。 (3)分立元件時應仔細辨明器件的正反向,標志應處于比較容易觀察的位置方便檢查和調試。對于有正負極性的元件,例如電解電容器、晶體二極管等,組裝時一定要特別注意極性,否則將會造成實驗失敗。 (4)為了便于焊接查線以及后期的檢查電路,可根據電路中接線的不同作用選擇不同顏色的導線。一般習慣是正電源用紅色線、負電源用藍色線、地線用黑色線、信號線用黃色線等。當然使用一種顏色也是可以的。 (5) 在實際焊接中連線需要盡量做到排版簡潔連線方便。連線不跨接集成電路芯片上,必須從其周圍通過。同時應盡可能做到連線不相互穿插重疊、盡量不從電路中元器件上方通過。 (6)為使電路能夠正常工作與調測,所有地線必須連接在一起,形成一個公共參考點。 正確的組裝方法和合理的布局,不僅可使電路整齊美觀、工作可靠,而且便于檢查、調試和排除故障。如果能在組裝前先擬訂出組裝草圖,則可獲得事半功倍之效果,使組裝既快又好。 5.3 電路的調試調試是指系統的調整、改進與測試。測試是在電路組裝后對電路的參數與工作狀態進行測量,調整則是在測試的基礎上對電路的某些參數進行修正,使滿足設計要求。在進行調試前應擬訂出測試項目、測試步驟、調試方法和所用儀器等,做到心中有數,保證調試工作圓滿完成。 5.3.1 調試方法調試方法原則有兩種。第一種是邊安裝邊調試的方法。它是把復雜的電路按原理框圖上的功能分成單元進行安裝和調試,在單元調試的基礎上逐步擴大安裝和調試的范圍,最后完成整機調試。這種方法在新設計的電路中比較常用。第二種方法是在整個電路系統全部焊接完畢后,實行一次性調試。這種方法比較適用于電路相對來說比較簡單,系統不復雜的電路調試。 5.3.2 調試步驟(1)通電前檢查 電路焊接完畢后, 不要急于通電,首先要根據原理電路認真對照檢查電路中的接接線是否正確,包括錯線(連線一端正確、另一端錯誤),少線(安裝時漏掉的線),多線(連線的兩端在電路圖上都是不存在的)和短路(特別是間距很小的引腳及焊點間),并且還要檢查每個元件引腳的使用端數是否與圖紙相符。查線時最好用指針式萬用表“Ω×1”檔進行檢查, 或是用數字萬用表“Ω”檔的蜂鳴器來測量,而且要盡可能直接測量元器件引腳,這樣同時可以發現接觸不良的地方。 (2)通電觀察 在電路安裝沒有錯誤的情況下接通電源(先關斷電源開關,待接通電源連線之后再打開電路的電源開關)。但接通電源后不要立即進行電路功能的測試,首先要充觀察整個電路有無異常現象,電路中元器件是否有發熱燒壞等現象,是否有漏電現象,電源是否有短路和開路現象等。如果電路在測試過程中出現異常,首先應該立即關閉電源,檢查后排除故障再重新通電測試。然后再按要求測量各元器件引腳電源的電壓,而不只是測量各路總電源電壓,以保證元器件正常工作。 (3)單元電路調試 在調試單元電路時應明確本部分的調試要求。調試順序應按照電路原理圖中信號流向進行,這樣可以把整個電路進行分步調試,把前面調試好的電路的輸出信號作為后一級電路的輸入信號。從而保證電路的調試更加順利方便。 單元調試包括靜態和動態調試。靜態調試一般是指在沒有外加信號的條件下測試電路各點的電位,特別是有源器件的靜態工作點。通過它可以及時發現已經損壞和處于臨界狀態的元器件。動態調試是用前級的輸出信號或自身的信號測試單元的各種指標是否符合設計要求,包括信號幅值、波形形狀、相位關系、放大倍數和頻率等。對于信號產生電路一般只看動態指標。把靜態和動態測試的結果與設計的指標加以比較,經深入分析后對電路與參數提出合理的修正。在調試過程中應有詳盡記錄。 (4)整機聯調 各單元電路調試好以后,并不見得由它們組成的整體電路性能一定會好,因此還要進行整體電路調試。整體電路調試主要是觀察和測量動態性能,把測量的結果與設計指標逐一對比,找出問題及解決辦法,然后對電路及其參數進行修正,直到全部電路的性能完全符合設計要求為止。
第6章 總結經過三個多月的努力,本次畢業設計的任務——基于單片機的溫度計設計已經完成。這個設計題目并不是新的,但從中能體現到一個系統開發設計的過程,足于讓我們受益。能夠從設計、論證、制板、編程到最終的調試成功。完成整個系統的設計,這是一次難得的實踐機會。 本文研究設計的溫度控制系統采用了單片機+DS18B20溫度傳感器+數碼管的組合方式,整機設計合理,元件價格合理,采購方便,很適合大批量生產。利用STC89C52單片機及外圍接口實現強大系統,及其本身的定時器、計數器定時和計數的原理,將軟硬件有機的結合起來。 理論聯系實踐,體現出大學生的動手能力。通過查資料和收集有關的文獻,培養了自學能力和動手能力。并且由原先的被動接受知識轉換為主動尋求知識,這可以說是學習方法上的一個很大突破。在以往的傳統學習模式下,我們可能會記住很多書本知識,但是通過畢業設計,我們學會了如何將學到的知識化為自己的東西,學會了怎么更好的處理知識和實踐相結合的問題,把握重點,攻克難關,活學活用。 設計論證和完成本次設計的過程,將單片機原理、C語言程序、模擬電路基礎與數字電路基礎等多門課程的內容有機地結合應用在了一起。通過實際的分析與應用深化了對這些主干知識的認識。此外掌握了從系統的需求、方案論證、功能模塊的劃分、原理圖的設計和繪制、PCB板制作、程序設計到軟硬件調試的設計流程,積累了硬件設計的經驗。單片機的功能日益強大,但其基本原理是相對不變的。因此雖然本次設計任務的功能較為簡單,但是能夠較全面的涉及單片機各項基本知識,提高了自己的單片機設計能力,是一次將理論能力向實踐能力轉化的好機會。 通過這次畢業設計,我深刻地認識到學好專業知識的重要性,也理解了理論聯系實際的含義,并且檢驗了大學四年的學習成果。雖然在這次設計中對知識的運用和銜接還不夠熟練。但是我將在以后的工作和學習中繼續努力、不斷完善。這三個月的設計是對過去所學知識的系統提高和擴充的過程,今后我將不斷加深理論基礎和實踐能力,在以后的工作學習中取得更大的進步。 在設計過程中由于時間倉促有很多地方難免存在不足之,但在以后的工作中,我們會嚴格要求自己最求完美。 回頭再看看該設計,還可以將設計的擴展功能增強:1可添加多個采集點。2可將采集到的數據通過串口傳給上位機,方便記錄溫度數據。
鳴 謝本設計的研究工作是在我的導師的精心指導和悉心關懷下完成的。從開題報告到論文結束,我所取得的每一個進步、編寫的每一段程序都無不傾注著導師辛勤的汗水和心血。導師嚴謹的治學態度、淵博的各科知識、無私的奉獻精神使我深受啟迪,從尊敬的導師身上,我不僅學到了扎實、寬廣的專業知識,也學到了做人的道理。在今后的學習工作中,我將銘記恩師對我的教誨和鼓勵,盡自己最大的努力取得更好的成績。 在此我要向我的導師致以最衷心的感謝和深深的敬意! 在四年的大學學習期間,每位老師對我的學習、生活和工作都給予了熱情的關心和幫助,使我的水平得到了很大的提高,取得了長足的進步。 在此,向所有關心和幫助過我的老師、同學和朋友表示由衷的謝意! 最后,衷心感謝在百忙之中評閱論文和參加答辯的各位專家、教授。
附 錄附錄一 元件清單
附錄二 原理圖
附錄三 PCB圖
完整的Word格式文檔51黑下載地址:
基于單片機的溫度檢測系統.doc
(554.37 KB, 下載次數: 73)
2018-10-10 11:11 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|