




已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
電子綜合課程設(shè)計與實踐課程設(shè)計 題 目: 數(shù)字溫度計設(shè)計學(xué)院(系): 自動化學(xué)院 年級專業(yè): 自動化專業(yè) 學(xué)生姓名: 張紀煒 張熠 代濤 彭彬 指導(dǎo)教師: 劉海濤 重慶大學(xué)本科學(xué)生課程設(shè)計指導(dǎo)教師評定成績表學(xué) 號指導(dǎo)教師 劉海濤學(xué) 院自動化學(xué)院專 業(yè)自動化專業(yè)學(xué)生姓名 張紀煒 張熠 代濤 彭彬課程設(shè)計題目指導(dǎo)教師評語課程設(shè)計成績指導(dǎo)教師簽名: 年 月 日重慶大學(xué)本科學(xué)生課程設(shè)計任務(wù)書課程設(shè)計題目數(shù)字溫度計設(shè)計學(xué)院自動化學(xué)院專業(yè)自動化年級2011級設(shè)計要求:設(shè)計一個可測量一定溫度范圍的數(shù)字溫度計,實時顯示當前溫度值。1. 基本要求(1)可測量溫度范圍:000.0102.0(2)溫度溫度分辨力:0.4(3)測量相對誤差:2%(4)系統(tǒng)響應(yīng)時間:5s(5)用數(shù)碼管實時顯示被測溫度2.提高要求 (1)實現(xiàn)多個溫度點的實時測量 (2)實現(xiàn)溫度的分檔測量3.發(fā)揮部分 (1)實現(xiàn)零下溫度測量并顯示 (2)實現(xiàn)攝氏、華氏的轉(zhuǎn)換并顯示 (3)溫度過高報警 (4)自己設(shè)計的其他功能學(xué)生應(yīng)完成的工作:完成設(shè)計任務(wù)基本要求,并實現(xiàn)部分或全部提高要求和發(fā)揮部份。參考資料:1白澤生. 用MCS-51單片機實現(xiàn)溫度的檢測J.現(xiàn)代電子技術(shù),2005,(10):1-3.2張開生,郭國法.MCS-51單片機溫度控制系統(tǒng)的設(shè)計J.微計算機信息,2005,21(7):68-69.3何立民.單片機應(yīng)用技術(shù)選編M.北京:北京航空航天大學(xué)出版社,2004.4楊剛,周群.電子系統(tǒng)設(shè)計與實踐M.北京:電子工業(yè)出版社,2004.5丁元杰,單片機原理及運用,機械工業(yè)出版社,2003.課程設(shè)計工作計劃:第一周:動員大會,師生見面,布置任務(wù),確定初步硬件制作、軟件設(shè)計設(shè)計方案。第二周:硬件制作、軟件設(shè)計中。第三周:軟硬件仿真調(diào)試,檢查設(shè)計結(jié)果,歸還儀器設(shè)備。任務(wù)下達日期 2014 年 2 月 27 日 完成日期 2009 年 3 月 6 日指導(dǎo)教師 (簽名) 學(xué)生 (簽名) 前 言 單片機技術(shù)作為計算機技術(shù)的一個分支,廣泛地應(yīng)用于工業(yè)控制,智能儀器儀表,機電一體化產(chǎn)品,家用電器等各個領(lǐng)域?!皢纹瑱C原理與應(yīng)用”在工科院校各專業(yè)中已作為一門重要的技術(shù)基礎(chǔ)課而普遍開設(shè)。學(xué)生在課程設(shè)計,畢業(yè)設(shè)計,科研項目中會廣泛應(yīng)用到單片機知識,而且,進入社會后也會廣泛接觸到單片機的工程項目。鑒于此,提高“單片機原理及應(yīng)用”課的教學(xué)效果,讓學(xué)生參與課程設(shè)計實習(xí)甚為重要。單片機應(yīng)用技術(shù)涉及的內(nèi)容十分廣泛,如何使學(xué)生在有限的時間內(nèi)掌握單片機應(yīng)用的基本原理及方法,是一個很有價值的教學(xué)項目。為此,我們進行了“單片機的學(xué)習(xí)與應(yīng)用”方面的課程設(shè)計,鍛煉學(xué)生的動腦動手以及協(xié)作能力。 單片機課程設(shè)計是針對模擬電子技術(shù),數(shù)字邏輯電路,電路,單片機的原理及應(yīng)用課程的要求,對我們進行綜合性實踐訓(xùn)練的實踐學(xué)習(xí)環(huán)節(jié),它包括選擇課設(shè)任務(wù)、軟件設(shè)計,硬件設(shè)計,調(diào)試和編寫課設(shè)報告等實踐內(nèi)容。通過此次課程設(shè)計實現(xiàn)以下三個目標:第一,讓學(xué)生初步掌握單片機課程的試驗、設(shè)計方法,即學(xué)生根據(jù)設(shè)計要求和性能約束,查閱文獻資料,收集、分析類似的相關(guān)題目,并通過元器件的組裝調(diào)試等實踐環(huán)節(jié),使最終硬件電路達到題目要求的性能指標;第二,課程設(shè)計為后續(xù)的畢業(yè)設(shè)計打好基礎(chǔ),畢業(yè)設(shè)計是系統(tǒng)的工程設(shè)計實踐,而課程設(shè)計的著眼點是讓學(xué)生開始從理論學(xué)習(xí)的軌道上逐漸引向?qū)嶋H運用,從已學(xué)過的定性分析、定量計算的方法,逐步掌握工程設(shè)計的步驟和方法,了解科學(xué)實驗的程序和實施方法。第三,培養(yǎng)學(xué)生勤于思考樂于動手的習(xí)慣,同時通過設(shè)計并制作單片機類產(chǎn)品,使學(xué)生能夠自己不斷地學(xué)習(xí)接受新知識(如在本課設(shè)題目中存在智能測溫器件DS18B20,就是課堂環(huán)節(jié)中不曾提及的“新器件”),通過多人的合作解決現(xiàn)實中存在的問題,從而不斷地增強學(xué)生在該方面的自信心及興趣,也提高了學(xué)生的動手能力,對學(xué)生以后步入社會參加工作打下一定良好的實踐基礎(chǔ)。 目 錄摘要1一 單片機簡介2二 設(shè)計方案3三 設(shè)計方案的總體設(shè)計框圖5四 系統(tǒng)軟件算法及設(shè)計12五 總結(jié)與體會13附錄一 元件清單14附錄二 電路圖15附錄三 源程序16參考文獻34 摘要 隨著時代的進步和發(fā)展,單片機技術(shù)已經(jīng)普及到我們生活,工作,科研,各個領(lǐng)域,已經(jīng)成為一種比較成熟的技術(shù),單片機具有體積小、功耗低、控制功能強、擴展靈活、微型化和使用方便等優(yōu)點,廣泛應(yīng)用于儀器儀表中,結(jié)合不同種類的傳感器,可實現(xiàn)諸如電壓、濕度、溫度、速度、硬度、壓力等的物理量的測量。本文將介紹一種基于單片機控制理論及其應(yīng)用系統(tǒng)設(shè)計的數(shù)字溫度計。 本文主要介紹了一個基于AT89C51單片機的測溫系統(tǒng),詳細描述了利用數(shù)字溫度傳感器DS18B20開發(fā)測溫系統(tǒng)的過程,重點對傳感器在單片機喜愛的硬件連接,軟件編程以及各模塊系統(tǒng)流程進行了詳盡分析,對各部分的電路也進行一一介紹,該系統(tǒng)可以方便的是實現(xiàn)溫度采集和顯示,并可以根據(jù)需要任意設(shè)定上下限報警溫度,它使用起來方便,具有精度高、量程寬、靈敏度高、體積小、功耗低等優(yōu)點,適合我們?nèi)粘I詈凸まr(nóng)業(yè)生產(chǎn)中的溫度測量,也可以當做溫度處理模塊嵌入其他系統(tǒng)中,作為其他主系統(tǒng)的輔助擴展。DS18B20和AT89C51結(jié)合實現(xiàn)最簡溫度檢測系統(tǒng),該系統(tǒng)結(jié)構(gòu)簡單,抗干擾能力強,適合與惡劣環(huán)境下進行現(xiàn)場溫度測量,有廣泛的應(yīng)用前景。 本設(shè)計首先是確定目標,氣候是各個功能模塊的設(shè)計,再在Proteus軟件上進行仿真,修改,仿真。本溫度計屬于多功能溫度計,可以設(shè)置上下報警溫度,當溫度不在設(shè)置范圍內(nèi)時,可以報警。 關(guān)鍵詞:單片機,數(shù)字控制,溫度計, DS18B20,AT89C52 一 單片機簡介 二十世紀跨越了三個“電”的時代,即電氣時代、電子時代和現(xiàn)已進入的電腦時代。不過,這種電腦,通常是指個人計算機,簡稱PC機。它由主機、鍵盤、顯示器等組成。還有一類計算機,大多數(shù)人卻不怎么熟悉。這種計算機就是把智能賦予各種機械的單片機(亦稱微控制器)。顧名思義,這種計算機的最小系統(tǒng)只用了一片集成電路,即可進行簡單運算和控制。因為它體積小,通常都藏在被控機械的“肚子”里。它在整個裝置中,起著有如人類頭腦的作用,它出了毛病,整個裝置就癱瘓了?,F(xiàn)在,這種單片機的使用領(lǐng)域已十分廣泛,如智能儀表、實時工控、通訊設(shè)備、導(dǎo)航系統(tǒng)、家用電器等。各種產(chǎn)品一旦用上了單片機,就能起到使產(chǎn)品升級換代的功效,常在產(chǎn)品名稱前冠以形容詞“智能型”,如智能型洗衣機等。計算機的產(chǎn)生加快了人類改造世界的步伐,但是它畢竟體積大。單片機在這種情況下誕生了。截止今日,單片機應(yīng)用技術(shù)飛速發(fā)展,縱觀我們現(xiàn)在生活的各個領(lǐng)域,從導(dǎo)彈的導(dǎo)航裝置,到飛機上各種儀表的控制,從計算機的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,到工業(yè)自動化過程的實時控制和數(shù)據(jù)處理,以及我們生活中廣泛使用的各種智能IC卡、電子寵物等,這些都離不開單片機。單片機自70年代問世以來得到蓬勃發(fā)展,目前單片機功能正日漸完善:單片機集成越來越多資源,內(nèi)部存儲資源日益豐富,用戶不需要擴充資源就可以完成項目開發(fā),不僅是開發(fā)簡單,產(chǎn)品小巧美觀,同時抗干擾能力加強,系統(tǒng)也更加穩(wěn)定,使得它更加適合工業(yè)控制領(lǐng)域,具有更加廣闊的市場前景;提供在線編程能力,加速了產(chǎn)品的開發(fā)進程,為企業(yè)產(chǎn)品上市贏得寶貴時間。此外單片機具有性能高、速度快、體積小、價格低、穩(wěn)定可靠、應(yīng)用廣泛、通用性強等突出優(yōu)點。單片機的設(shè)計目標主要是增強“控制”能力,滿足實時控制(就是快速反應(yīng)) 的需要。 我們作為21世紀的工科大學(xué)生,學(xué)的是自動化專業(yè),無論是從事科學(xué)研究工作,還是開辦電子器件的工廠還是經(jīng)營電子廠品的貿(mào)易,不僅要熟練地使用通用微機進行各種數(shù)據(jù)處理,還要把計算機技術(shù)運用到本專業(yè)領(lǐng)域或相關(guān)領(lǐng)域,既具有開發(fā)創(chuàng)新能力。這就要求我們要熟練地掌握單片機。單片機是一種集成在電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統(tǒng)、定時器/計時器等功能(可能還包括顯示驅(qū)動電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個小而完善的計算機系統(tǒng)。這些電路能在軟件的控制下準確、迅速、高效地完成程序設(shè)計者實現(xiàn)規(guī)定的任務(wù)。 二 設(shè)計方案21設(shè)計務(wù)任和要求1、基本范圍-201252、精度誤差小于0.5 3、LED 數(shù)碼直讀顯示 4、可以任意設(shè)定溫度的上下限報警功能.22方案辯證1溫度計軟件設(shè)計流程圖: 設(shè)置堆棧指針將溫度轉(zhuǎn)換為BCD碼發(fā)讀存儲器命令讀溫度數(shù)據(jù)復(fù)位DS18B20發(fā)跳過ROM命令顯示緩沖區(qū)初始化更新數(shù)據(jù)緩沖區(qū)延時發(fā)溫度轉(zhuǎn)換命令復(fù)位DS18B20發(fā)跳過ROM命令開始 2.元器件的選取單片機芯片的選?。悍桨敢?采用AT89C52芯片作為硬件核心,利用Flash ROM,內(nèi)部具有4KB ROM 存儲空間,能于3V的超低壓工作,而且與MCS-51系列單片機完全兼容,但是運用于電路設(shè)計中時由于不具備ISP在線編程技術(shù), 當在對電路進行調(diào)試時,由于程序的錯誤修改或?qū)Τ绦虻男略龉δ苄枰獰氤绦驎r,對芯片的多次拔插會對芯片造成一定的損壞。方案二 采用AT89C52單片機與MCS-51系列單片機相比有兩大優(yōu)勢:第一,片內(nèi)程序存儲器采用閃存,使程序的寫入更加方便;第二,提供了更小尺寸的芯片,使整個硬件電路的體積更小,且管腳數(shù)目為20個,與MCS-51相比減少一倍,使理解更容易。 綜上所述:本課設(shè)中單片機芯片采用AT89C52。溫度傳感器的選?。悍桨敢徊捎脽崦綦娮鑲鞲衅鳌@脽崦綦娮桦S溫度變化而顯著變化,能直接將溫度的變化轉(zhuǎn)換為能量的變化,進而制成溫度計。但是其測溫傳感器比較復(fù)雜,而且不易通過編制程序來控制測溫精度,增大系統(tǒng)設(shè)計的難度。 方案二 采用DS18B20溫度傳感器。DS18B20的內(nèi)部3腳(或8腳)封裝;使用特有的溫度測量技術(shù),將被測溫度轉(zhuǎn)換成數(shù)值信號;3.05.5V的電源供電方式和寄生電源供電方式;ROM由64位二進制數(shù)字組成,共分為8個字節(jié);RAM由9個字節(jié)的高速暫存器和非易失性電擦寫ROM組成。 綜上所述:溫度傳感器選取智能測溫器件DS18B20。 本設(shè)計顯示電路采用1602液晶顯示模塊芯片。3系統(tǒng)最終設(shè)計方案: 綜上各方案所述,對此次課設(shè)的方案選定: 采用AT89C52作為主控制系統(tǒng); 1602液晶顯示模塊芯片作為溫度數(shù)據(jù)顯示裝置;而智能溫度傳感器DS18B20器件作為測溫電路主要組成部分。至此,系統(tǒng)最終方案確定。 三 設(shè)計方案的總體設(shè)計框圖 溫度計電路設(shè)計總體設(shè)計方框圖如圖所示,控制器采用單片機AT89C52,溫度傳感器采用DS18B20,用1602液晶顯示屏以串口傳送數(shù)據(jù)實現(xiàn)溫度顯示。3.1硬件電路框圖 單片機芯片AT89C52復(fù)位電路晶振控制1602 顯示器溫度檢測電路DS18B20報警溫度調(diào)整鍵蜂鳴器,指示燈 圖總體設(shè)計方框圖3.2硬件電路概述 系統(tǒng)由單片機最小系統(tǒng)、顯示電路、按鍵、溫度傳感器等組成。 本電路是由AT89C2051單片機為控制核心,具有與MCS-51系列單片機完全兼容,程序加密等功能,帶2KB字節(jié)可編程閃存,工作電壓范圍為2.76V,全靜態(tài)工作頻率為024MHZ;顯示電路由1602液晶顯示模塊芯片,可以進行多行顯示;溫度報警按鍵設(shè)為五個,可以顯示華氏溫度,調(diào)節(jié)高低報警溫度;溫度傳感器電路主要由DS18B20測溫器件構(gòu)成,該器件主要功能有:采用單總線技術(shù);每只DS18B20具有一個獨立的不可修改的64位序列號;低壓供電,電源范圍為35V;測溫范圍為-20+125,誤差為0.5;復(fù)位電路是10K電阻構(gòu)成的上電自動復(fù)位。3.3主控電路單片機AT89C52具有低電壓供電和體積小等特點,四個端口只需要兩個口就能滿足電路系統(tǒng)的設(shè)計需要,很適合便攜手持式產(chǎn)品的設(shè)計使用系統(tǒng)可用二節(jié)電池供電。晶振采用12MHZ。復(fù)位電路采用上電加自動復(fù)位。主控芯片AT89C52 晶振電路 復(fù)位電路3.4顯示電路 本設(shè)計顯示電路采用1602液晶顯示模塊芯片,該芯片可現(xiàn)實16x2個字符,比以前的七段數(shù)碼管LED顯示器在顯示字符的數(shù)量上要多得多。另外,由于1602芯片編程比較簡單,界面直觀,因此更加易于使用者的操作和觀測。1602A芯片的接口信號說明如下表:1602A芯片的接口信號說明液晶顯示電路35報警溫度調(diào)節(jié)電路本系統(tǒng)一共設(shè)置了五個按鍵,k1鍵只是顯示華氏溫度,k4鍵按下不松開顯示高低報警溫度,松開后恢復(fù)顯示正常溫度,k2鍵和k3鍵是分別用來調(diào)節(jié)高低報警溫度,k鍵控制調(diào)節(jié)時的上調(diào)或下調(diào)。具體調(diào)節(jié)如將高溫報警溫度調(diào)高,第一步將k4鍵按下不松,k鍵升起位置,調(diào)節(jié)k2鍵,則高溫報警溫度向上增加,反之亦然。低溫報警同理。 報警節(jié)點電路3.6溫度傳感器及DS18B20測溫原理DS18B20溫度傳感器是美國DALLAS半導(dǎo)體公司最新推出的一種改進型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據(jù)實際要求通過簡單的編程實現(xiàn)9-12位的數(shù)字值讀數(shù)方式。DS18B20的性能特點如下:(1)獨特的單線接口僅需要一個端口引腳進行通信,DS18B20在與微處理器連接時僅需要一條口線即可實現(xiàn)微處理器與DS18B20的雙向通訊。(2)DS18B20支持多點組網(wǎng)功能,多個DS18B20可以并聯(lián)在惟一的三線上,實現(xiàn)多點組網(wǎng)測溫;(3)無須外部器件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi);(4)可通過數(shù)據(jù)線供電,電壓范圍為3.0-5.5;(5)零待機功耗;(6)溫度以9或12位數(shù)字,對應(yīng)的可分辨溫度分別為0.5、0.25、0.125和0.0625,可實現(xiàn)高精度測溫;(7)用戶可定義報警設(shè)置;(8)報警搜索命令識別并標志超過程序限定溫度(溫度報警條件)的器件;(9)負電壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作;(10)測量結(jié)果直接輸出數(shù)字溫度信號,以一線總線串行傳送給CPU,同時可傳送CRC校驗碼,具有極強的抗干擾糾錯能力DS18B20采用3腳PR35封裝或8腳SOIC封裝,其引腳排列及內(nèi)部結(jié)構(gòu)框圖如圖及測溫原理圖如下所示:圖 引腳排列預(yù)置斜率累加器比較低溫度系數(shù)振蕩器計數(shù)器1溫度寄存器Tx預(yù)置=0高溫度系數(shù)振蕩器-0計數(shù)器2T1加1停止T2 圖 DS18B20測溫原理圖 64位ROM的結(jié)構(gòu)開始8位是產(chǎn)品類型的編號,接著是每個器件的惟一的序號,共有48位,最后8位是前面56位的CRC檢驗碼,這也是多個DS18B20可以采用一線進行通信的原因。溫度報警觸發(fā)器TH和TL,可通過軟件寫入戶報警上下限。DS18B20溫度傳感器的內(nèi)部存儲器還包括一個高速暫存RAM和一個非易失性的可電擦除的EERAM。高速暫存RAM的結(jié)構(gòu)為8字節(jié)的存儲器,結(jié)構(gòu)如圖4所示。頭2個字節(jié)包含測得的溫度信息,第3和第4字節(jié)TH和TL的拷貝,是易失的,每次上電復(fù)位時被刷新。第5個字節(jié),為配置寄存器,它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。DS18B20工作時寄存器中的分辨率轉(zhuǎn)換為相應(yīng)精度的溫度數(shù)值。該字節(jié)各位的定義如圖5所示。低5位一直為1,TM是工作模式位,用于設(shè)置DS18B20在工作模式還是在測試模式,DS18B20出廠時該位被設(shè)置為0,用戶不要去改動,R1和R0決定溫度轉(zhuǎn)換的精度位數(shù),來設(shè)置分辨率。溫度 LSB溫度 MSBTH用戶字節(jié)1TL用戶字節(jié)2配置寄存器保留保留保留CRCTMR1R011111 圖5 DS18B20的字節(jié)定義DS18B20的分辨率定義如表1所示表1 分辨率設(shè)置表R0R1分辨率最大溫度轉(zhuǎn)移時間009位96.75ms0110位187.5ms1011位375ms1112位750ms由表1可見,DS18B20溫度轉(zhuǎn)換的時間比較長,而且分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時間越長。在實際應(yīng)用中要將分辨率和轉(zhuǎn)換時間權(quán)衡考慮。主機控制DS18B20完成溫度轉(zhuǎn)換過程是:每一次讀寫之前都要對DS18B20進行復(fù)位,即將數(shù)據(jù)總線下拉500us,然后釋放,DS18B20收到信號后等待16-60us左右,之后發(fā)出60-240us的存在低脈沖,主CPU收到此此信號表示復(fù)位成功;復(fù)位成功后發(fā)送一條ROM指令,然后發(fā)送RAM指令,對DS18B20進行預(yù)先讀寫操作。表2 ROM指令集指令約定代碼功能讀ROM33H讀DS18B20中的編碼符合ROM55H發(fā)出此命令后,接著發(fā)出64位ROM編碼,訪問單線總線上與該編輯相對應(yīng)的DS18B20使之做出響應(yīng),為下一步對該DS18B20的讀寫作準備搜索ROM0F0H用于確定掛接在同一總線上的DS18B20個數(shù)和識別64位ROM地址,為操作各器件作準備跳過ROM0CCH忽略64位ROM地址,直接向DS18B20發(fā)送溫度變換指令告警搜索命令0ECH執(zhí)行后,只有溫度跳過設(shè)定值上限或下限的片子才能做出反應(yīng)表3 RAM指令集指令約定代碼功能溫度轉(zhuǎn)換44H啟動DS18B20進行溫度轉(zhuǎn)換讀暫存器0BEH讀暫存器9個字節(jié)內(nèi)容寫暫存器4EH將數(shù)據(jù)寫入暫存器的TH、TL字節(jié)復(fù)制暫存器48H把暫存器的TH、TL字節(jié)寫到E2RAM中重調(diào)E2RAM0B8H把E2RAM中的TH、TL字節(jié)寫到暫存器TH、TL字節(jié)讀供電方式0B4H啟動DS18B20發(fā)送電源供電方式的信號給主CPUDS18B20的測溫原理是這這樣的,器件中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號送給減法計數(shù)器1;高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變,所產(chǎn)生的信號作為減法計數(shù)器2的脈沖輸入。器件中還有一個計數(shù)門,當計數(shù)門打開時,DS18B20就對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖進行計數(shù)進而完成溫度測量。計數(shù)門的開啟時間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將最低溫所對應(yīng)的一個基數(shù)分別置入減法計數(shù)器1、溫度寄存器中,計數(shù)器1和溫度寄存器被預(yù)置在最低溫所對應(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ù)器計數(shù)到0時,停止溫度寄存器的累加,此時溫度寄存器中的數(shù)值就是所測溫度值。其輸出用于修正減法計數(shù)器的預(yù)置值,只要計數(shù)器門仍未關(guān)閉就重復(fù)上述過程,直到溫度寄存器值大致被測溫度值。 四 系統(tǒng)軟件算法及設(shè)計整個系統(tǒng)是由硬件配合軟件來實現(xiàn)的,在硬件確定后,編寫的軟件的功能也就基本定型了。所以軟件的功能大致可分為兩個部分:一是監(jiān)控,這也是系統(tǒng)的核心部分,二是執(zhí)行部分,完成各個具體的功能。系統(tǒng)程序主要包括主程序,讀出溫度子程序,溫度轉(zhuǎn)換命令子程序,計算溫度子程序,顯示數(shù)據(jù)刷新子程序等。4.1主程序主程序的主要功能是負責(zé)溫度的實時顯示、讀出并處理DS18B20的測量的當前溫度值,溫度測量每1s進行一次。這樣可以在一秒之內(nèi)測量一次被測溫度。4.2讀出溫度子程序讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時需進行CRC校驗,校驗有錯時不進行溫度數(shù)據(jù)的改變。4.3溫度轉(zhuǎn)換命令子程序 溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命令,當采用12位分辨率時轉(zhuǎn)換時間約為750ms,在本程序設(shè)計中采用1s顯示程序延時法等待轉(zhuǎn)換的完成。4.4 計算溫度子程序計算溫度子程序?qū)AM中讀取值進行BCD碼的轉(zhuǎn)換運算,并進行溫度值正負的判定。4.5 顯示數(shù)據(jù)刷新子程序顯示數(shù)據(jù)刷新子程序主要是對顯示緩沖器中的顯示數(shù)據(jù)進行刷新操作,當最高顯示位為0時將符號顯示位移入下一位。 五 設(shè)計體會與小結(jié) 經(jīng)過將近三周的單片機課程設(shè)計,終于完成了我們的數(shù)字溫度計的設(shè)計,雖然沒有完全達到設(shè)計要求,但從心底里說,還是高興的,畢竟這次設(shè)計把實物都做了出來,高興之余不得不深思! 在本次設(shè)計的過程中,我發(fā)現(xiàn)很多的問題,雖然以前還做過這樣的設(shè)計但這次設(shè)計真的讓我長進了很多,單片機課程設(shè)計重點就在于軟件算法的設(shè)計,需要有很巧妙的程序算法,雖然以前寫過幾次程序,但我覺的寫好一個程序并不是一件簡單的事,舉個例子,以前寫的那幾次,數(shù)據(jù)加減時,我用的都是BCD碼,這一次,我全部用的都是16進制的數(shù)直接加減,顯示處理時在用除法去刪分,感覺效果比較好,有好多的東西,只有我們?nèi)ピ囍隽耍拍苷嬲恼莆?,只學(xué)習(xí)理論有些東西是很難理解的,更談不上掌握。從這次的課程設(shè)計中,我真真正正的意識到,在以后的學(xué)習(xí)中,要理論聯(lián)系實際,把我們所學(xué)的理論知識用到實際當中,學(xué)習(xí)單機片機更是如此,程序只有在經(jīng)常的寫與讀的過程中才能提高,這就是我在這次課程設(shè)計中的最大收獲。在這次課程設(shè)計中也使我們的同學(xué)關(guān)系更進一步了,同學(xué)之間互相幫助,有什么不懂的大家在一起商量,聽聽不同的看法對我們更好的理解知識,更好的學(xué)會了團體協(xié)調(diào)作戰(zhàn)。 總之,不管學(xué)會的還是學(xué)不會的的確覺得困難比較多,真是萬事開頭難,不知道如何入手。最后終于做完了有種如釋重負的感覺。此外,還得出一個結(jié)論:知識必須通過應(yīng)用才能實現(xiàn)其價值!有些東西以為學(xué)會了,但真正到用的時候才發(fā)現(xiàn)是兩回事,所以我認為只有到真正會用的時候才是真的學(xué)會了。經(jīng)過這次的課程設(shè)計,也為我們以后畢業(yè)設(shè)計的制作奠定了一定的基礎(chǔ)。 附錄一 元件清單 序號 名稱 型號 數(shù)量1實驗板1個2AT89C521個3DS18B202個422pf電容10個510uf電容10個6晶振12MHZ1個710k電阻10個8普通按鍵SW-PB15個9蜂鳴器2個10LED燈5個11排阻20孔12液晶屏JHD162A1個13DIP401個14DIP161個15插針1個16插座2排17雙排插針2排18電烙鐵1個19鑷子1個20小起子1個21斜口鉗1個22導(dǎo)線若干23 附錄二 電路圖鍵盤說明:第一個鍵第二個鍵第三個鍵第四個鍵第一排初始化進入設(shè)置界面測量2口傳感器測量3口傳感器第二排最高溫度最低溫度增加減少第三排攝氏變?nèi)A氏華氏變攝氏改變精準度顯示 附錄三 源程序#include sbit DQ1=P32;/ds18b20與單片機連接口sbit DQ2=P33;sbit RS=P36;sbit RW=P35;sbit EN=P34;sbit LED1=P07;sbit LED2=P05;sbit BEEP=P02;unsigned char code str1=YEAH! ;unsigned char code str2= LETS DO IT!;unsigned int upper_v1=0x004f;unsigned int upper_v2=0x003f;unsigned int lower_v1=0x0001;unsigned int lower_v2=0x0005;unsigned char data t_data=0,0,0,0xdf,0x43;unsigned char sensor_flag=0;unsigned char sensor_num=0;unsigned char setup_flag=0;unsigned char upper_flag=0;unsigned char lower_flag=0;unsigned char upper_set=0;unsigned char lower_set=0;unsigned char data disdata8;unsigned int tvalue1;/溫度值unsigned int tvalue2;unsigned int tvalue;unsigned char tflag;unsigned char tflag1;unsigned char tflag2;unsigned char flagdat;unsigned char t_change=0;unsigned char res_flag1=0;unsigned char res_flag2=0;unsigned char beep_flag=0;unsigned char beep_flag2=0;void delay1ms(unsigned int ms)/延時1毫秒(不夠精確的)unsigned int i,j; for(i=0;ims;i+) for(j=0;j100;j+);/*lcd1602程序*/void wr_com(unsigned char com)/寫指令/ delay1ms(1); RS=0; RW=0; EN=0; P2=com; delay1ms(1); EN=1; delay1ms(1); EN=0;void wr_dat(unsigned char dat)/寫數(shù)據(jù)/ delay1ms(1); RS=1; RW=0; EN=0; P2=dat; delay1ms(1); EN=1; delay1ms(1); EN=0;void lcd_init()/初始化設(shè)置/delay1ms(15);wr_com(0x38);delay1ms(5); wr_com(0x08);delay1ms(5); wr_com(0x01);delay1ms(5); wr_com(0x06);delay1ms(5); wr_com(0x0c);delay1ms(5);void display(unsigned char *p)/顯示/while(*p!=0)wr_dat(*p);p+;delay1ms(1);void init_play()/初始化顯示 lcd_init(); wr_com(0x80);display(str1);wr_com(0xc0);display(str2);sensor_flag=0; sensor_num=0; setup_flag=0; upper_flag=0; lower_flag=0;upper_set=0; lower_set=0;t_change=0;LED1=0;LED2=0;BEEP=1;beep_flag=0;void setup()/進入設(shè)置界面unsigned char code setup=SET UP: ;/lcd_init();wr_com(0x01);wr_com(0x80);display(setup);setup_flag=1;sensor_num=0;upper_flag=0;lower_flag=0;upper_set=0;lower_set=0;void beep() if(beep_flag=1) BEEP=0;delay1ms(200);if(beep_flag=0) BEEP=1; delay1ms(200);void beep2() if(beep_flag2=1) BEEP=0;delay1ms(200); else BEEP=1;delay1ms(200) ; void show_temp(unsigned int limit_v,tflag) /輸出溫度函數(shù) unsigned char t_flag;t_data0=limit_v/100+0x30;t_data1=limit_v%100/10+0x30;t_data2=limit_v%10+0x30;if(tflag=0) t_flag=0x20;else t_flag=0x2d;if(t_data0=0x30) t_data0=0x20;if(t_data1=0x30) t_data1=0x20;wr_com(0xc8);wr_dat(t_flag);wr_com(0xc9);display(t_data);void upper() /顯示上限值if(sensor_num=0) ;if(sensor_num=1)wr_com(0xc0);display(Upper: );wr_com(0xc8);if(upper_v10x0fff) tflag=0;else upper_v1=upper_v1+1;tflag=1;show_temp(upper_v1,tflag);upper_flag=2;if(sensor_num=2)wr_com(0xc0);display(Upper: );wr_com(0xc8);if(upper_v20x0fff) tflag=0;else upper_v2=upper_v2+1;tflag=1;show_temp(upper_v2,tflag);upper_flag=1;lower_flag=0;upper_set=1;lower_set=0;void lower()/顯示下限值if(sensor_num=0) ;if(sensor_num=1)wr_com(0xc0);display(Lower: );wr_com(0xc8);if(lower_v10x0fff) tflag=0;else lower_v1=lower_v1+1;tflag=1;show_temp(lower_v1,tflag);lower_flag=2;if(sensor_num=2)wr_com(0xc0);display(Lower: );wr_com(0xc8);if(lower_v20x0fff) tflag=0;else lower_v2=lower_v2+1;tflag=1;show_temp(lower_v2,tflag);lower_flag=1;upper_flag=0;lower_set=1;upper_set=0;void sensor1()/選擇傳感器1if(setup_flag)unsigned char code sensor1=18B20(1) ;wr_com(0x88);display(sensor1);sensor_num=1;else wr_com(0x01);wr_com(0x80);display(18B20(1) :);wr_com(0xc0);display(t: );sensor_num=3;/tflag=0;if(upper_flag=1) sensor_num=1;upper();if(lower_flag=1) sensor_num=1;lower();void sensor2() /選擇傳感器2if(setup_flag)unsigned char code sensor2=18B20(2);wr_com(0x88);display(sensor2);sensor_num=2;else wr_com(0x01);wr_com(0x80);display(18B20(2) :);wr_com(0xc0);display(t: );sensor_num=4;tflag=0;if(upper_flag=2) sensor_num=2;upper();if(lower_flag=2) sensor_num=2;lower();void increase()/上調(diào)報警值 delay1ms(5);if(sensor_num=1&upper_set=1) upper_v1+;if(upper_v10x0fff) tflag=0;else upper_v1=upper_v1+1;tflag=1;show_temp(upper_v1,tflag);if(sensor_num=2&upper_set=1) upper_v2+;if(upper_v20x0fff) tflag=0;else upper_v2=upper_v2+1;tflag=1;show_temp(upper_v2,tflag);if(sensor_num=1&lower_set=1) lower_v1+;if(lower_v10x0fff) tflag=0;else lower_v1=lower_v1+1;tflag=1;show_temp(lower_v1,tflag);if(sensor_num=2&lower_set=1) lower_v2+;if(lower_v20x0fff) tflag=0;else lower_v2=lower_v2+1;tflag=1;show_temp(lower_v2,tflag);void decrease() /下調(diào)報警值 delay1ms(5);if(sensor_num=1&upper_set=
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 寒假教育活動方案
- 家庭助廉五個一活動方案
- 室外玩雪活動方案
- 對口幫扶送溫暖活動方案
- 宣傳造勢活動方案
- 家教互助活動方案
- 小區(qū)搞老年人活動方案
- 小型公司周年慶活動方案
- 定向綜藝團建活動方案
- 對公賬戶營銷活動方案
- 2024年中鐵(天津)軌道交通投資建設(shè)限公司運營管理人員招聘5人高頻考題難、易錯點模擬試題(共500題)附帶答案詳解
- 2021年中國社會科學(xué)院大學(xué)統(tǒng)計學(xué)原理期末精練試卷
- 放射科疑難病例分析討論記錄
- 2024年《軍事理論》考試題庫附答案(含各題型)
- 廣東省中山市2022-2023學(xué)年高二下學(xué)期期末數(shù)學(xué)試題(學(xué)生版+解析)
- 2024年國家開放大學(xué)《統(tǒng)計學(xué)原理》形成性考核1-4題目及答案
- 《無衣》教學(xué)設(shè)計 統(tǒng)編版高中語文選擇性必修上冊
- 合肥市住宅小區(qū)物業(yè)服務(wù)等級標準
- 創(chuàng)造心智與創(chuàng)新訓(xùn)練智慧樹知到期末考試答案2024年
- 食品廠員工衛(wèi)生培訓(xùn)方案
- 反恐組織機構(gòu)管理制度
評論
0/150
提交評論