單片機(jī)課程設(shè)計報告數(shù)字溫度計(0℃~100℃)_第1頁
單片機(jī)課程設(shè)計報告數(shù)字溫度計(0℃~100℃)_第2頁
單片機(jī)課程設(shè)計報告數(shù)字溫度計(0℃~100℃)_第3頁
單片機(jī)課程設(shè)計報告數(shù)字溫度計(0℃~100℃)_第4頁
單片機(jī)課程設(shè)計報告數(shù)字溫度計(0℃~100℃)_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、數(shù)字溫度計(0100)專業(yè)班級:學(xué) 號:姓 名:指導(dǎo)教師: 2010年12月27號目 錄1.摘要 2.方案設(shè)計與論證2.1數(shù)字溫度計設(shè)計方論證2.2方案二的總體設(shè)計框圖2.3 ds18b20溫度傳感器與單片機(jī)的接口電路2.4 系統(tǒng)整體硬件電路3.系統(tǒng)軟件算法分析3.1主程序3.2讀出溫度子程序3.3溫度轉(zhuǎn)換命令子程序3.4 計算溫度子程序3.5 顯示數(shù)據(jù)刷新子程序4.總結(jié)與體會5.參考文獻(xiàn) 6.附錄數(shù)字溫度計(0100)1. 摘要隨著時代的進(jìn)步和發(fā)展,單片機(jī)技術(shù)已經(jīng)普及到我們生活,工作,科研,各個領(lǐng)域,已經(jīng)成為一種比較成熟的技術(shù),本文將介紹一種基于單片機(jī)控制的數(shù)字溫度計,本溫度計屬于多功能溫度

2、計,可以設(shè)置上下報警溫度,當(dāng)溫度不在設(shè)置范圍內(nèi)時,可以報警。with the era of progress and development, scm technology has become popular we live, work, research, in all fields, has become a relatively mature technology, this paper will introduce a single-chip microcomputer-based control of the digital thermometer, the thermometer

3、 are multifunctional thermometer, the temperature alarm can be set from top to bottom, when the temperature is not within the framework set up, it could be reported.關(guān)鍵詞:單片機(jī),數(shù)字控制,溫度計, ds18b20,at89s512 .總體設(shè)計方案2.1數(shù)字溫度計設(shè)計方案論證2.1.1方案一由于本設(shè)計是測溫電路,可以使用熱敏電阻之類的器件利用其感溫效應(yīng),在將隨被測溫度變化的電壓或電流采集過來,進(jìn)行a/d轉(zhuǎn)換后,就可以用單片機(jī)進(jìn)行數(shù)

4、據(jù)的處理,在顯示電路上,就可以將被測溫度顯示出來,這種設(shè)計需要用到a/d轉(zhuǎn)換電路,感溫電路比較麻煩。2.1.2 方案二 進(jìn)而考慮到用溫度傳感器,在單片機(jī)電路設(shè)計中,大多都是使用傳感器,所以這是非常容易想到的,所以可以采用一只溫度傳感器ds18b20,此傳感器,可以很容易直接讀取被測溫度值,進(jìn)行轉(zhuǎn)換,就可以滿足設(shè)計要求。從以上兩種方案,很容易看出,采用方案二,電路比較簡單,軟件設(shè)計也比較簡單,故采用了方案二。2.2方案二的總體設(shè)計框圖溫度計電路設(shè)計總體設(shè)計方框圖如圖1所示,控制器采用單片機(jī)at89s51,溫度傳感器采用ds18b20,用3位led數(shù)碼管以串口傳送數(shù)據(jù)實現(xiàn)溫度顯示。主 控 制 器l

5、ed顯 示溫 度 傳 感 器單片機(jī)復(fù)位時鐘振蕩報警點按鍵調(diào)整圖1總體設(shè)計方框圖2.2.1 主控制器單片機(jī)at89s51具有低電壓供電和體積小等特點,四個端口只需要兩個口就能滿足電路系統(tǒng)的設(shè)計需要,很適合便攜手持式產(chǎn)品的設(shè)計使用系統(tǒng)可用二節(jié)電池供電。2.2.2 顯示電路顯示電路采用3位共陽led數(shù)碼管,從p3口rxd,txd串口輸出段碼。2.2.3溫度傳感器ds18b20溫度傳感器是美國dallas半導(dǎo)體公司推出的一種改進(jìn)型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據(jù)實際要求通過簡單的編程實現(xiàn)位的數(shù)字值讀數(shù)方式。ds18b20的性能特點如下:獨特的單線接口僅需

6、要一個端口引腳進(jìn)行通信;多個ds18b20可以并聯(lián)在惟一的三線上,實現(xiàn)多點組網(wǎng)功能;無須外部器件;可通過數(shù)據(jù)線供電,電壓范圍為3.05.5;零待機(jī)功耗;溫度以或位數(shù)字;用戶可定義報警設(shè)置;報警搜索命令識別并標(biāo)志超過程序限定溫度(溫度報警條件)的器件;負(fù)電壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作; ds18b20采用腳pr35封裝或腳soic封裝,其內(nèi)部結(jié)構(gòu)框圖如圖2所示。c64 位rom和單線接口高速緩存存儲器與控制邏輯溫度傳感器高溫觸發(fā)器th低溫觸發(fā)器tl配置寄存器8位crc發(fā)生器vdd i/o 圖2 ds18b20內(nèi)部結(jié)構(gòu)64位rom的結(jié)構(gòu)開始位是產(chǎn)品類型的編號,接著

7、是每個器件的惟一的序號,共有48位,最后位是前面56位的crc檢驗碼,這也是多個ds18b20可以采用一線進(jìn)行通信的原因。溫度報警觸發(fā)器和,可通過軟件寫入戶報警上下限。ds18b20溫度傳感器的內(nèi)部存儲器還包括一個高速暫存和一個非易失性的可電擦除的eeram。高速暫存ram的結(jié)構(gòu)為字節(jié)的存儲器,結(jié)構(gòu)如圖3所示。頭個字節(jié)包含測得的溫度信息,第和第字節(jié)和的拷貝,是易失的,每次上電復(fù)位時被刷新。第個字節(jié),為配置寄存器,它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。ds18b20工作時寄存器中的分辨率轉(zhuǎn)換為相應(yīng)精度的溫度數(shù)值。該字節(jié)各位的定義如圖3所示。低位一直為,是工作模式位,用于設(shè)置ds18b20在工作

8、模式還是在測試模式,ds18b20出廠時該位被設(shè)置為,用戶要去改動,r1和0決定溫度轉(zhuǎn)換的精度位數(shù),來設(shè)置分辨率。溫度 lsb溫度 msbth用戶字節(jié)1tl用戶字節(jié)2配置寄存器保留保留保留crc圖3 ds18b20字節(jié)定義由表1可見,ds18b20溫度轉(zhuǎn)換的時間比較長,而且分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時間越長。因此,在實際應(yīng)用中要將分辨率和轉(zhuǎn)換時間權(quán)衡考慮。高速暫存的第、字節(jié)保留未用,表現(xiàn)為全邏輯。第字節(jié)讀出前面所有字節(jié)的crc碼,可用來檢驗數(shù)據(jù),從而保證通信數(shù)據(jù)的正確性。當(dāng)ds18b20接收到溫度轉(zhuǎn)換命令后,開始啟動轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲在高速暫

9、存存儲器的第、字節(jié)。單片機(jī)可以通過單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時低位在先,高位在后,數(shù)據(jù)格式以0.0625lsb形式表示。當(dāng)符號位時,表示測得的溫度值為正值,可以直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)符號位時,表示測得的溫度值為負(fù)值,要先將補(bǔ)碼變成原碼,再計算十進(jìn)制數(shù)值。表2是一部分溫度值對應(yīng)的二進(jìn)制溫度數(shù)據(jù)。表1 ds18b20溫度轉(zhuǎn)換時間表 ds18b20完成溫度轉(zhuǎn)換后,就把測得的溫度值與ram中的th、t字節(jié)內(nèi)容作比較。若th或ttl,則將該器件內(nèi)的報警標(biāo)志位置位,并對主機(jī)發(fā)出的報警搜索命令作出響應(yīng)。因此,可用多只ds18b20同時測量溫度并進(jìn)行報警搜索。在64位rom的最高有效字節(jié)中存儲有循環(huán)冗

10、余檢驗碼(crc)。主機(jī)rom的前56位來計算crc值,并和存入ds18b20的crc值作比較,以判斷主機(jī)收到的rom數(shù)據(jù)是否正確。ds18b20的測溫原理是這樣的,器件中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號送給減法計數(shù)器;高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變,所產(chǎn)生的信號作為減法計數(shù)器的脈沖輸入。器件中還有一個計數(shù)門,當(dāng)計數(shù)門打開時,ds18b20就對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖進(jìn)行計數(shù)進(jìn)而完成溫度測量。計數(shù)門的開啟時間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將55所對應(yīng)的一個基數(shù)分別置入減法計數(shù)器、溫度寄存器中,計數(shù)器和溫度寄存器被預(yù)置在55所對應(yīng)

11、的一個基數(shù)值。減法計數(shù)器對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行減法計數(shù),當(dāng)減法計數(shù)器的預(yù)置值減到時,溫度寄存器的值將加,減法計數(shù)器的預(yù)置將重新被裝入,減法計數(shù)器重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行計數(shù),如此循環(huán)直到減法計數(shù)器計數(shù)到時,停止溫度寄存器的累加,此時溫度寄存器中的數(shù)值就是所測溫度值。其輸出用于修正減法計數(shù)器的預(yù)置值,只要計數(shù)器門仍未關(guān)閉就重復(fù)上述過程,直到溫度寄存器值大致被測溫度值。表2一部分溫度對應(yīng)值表溫度/二進(jìn)制表示十六進(jìn)制表示+850000 0101 0101 00000550h+25.06250000 0001 1001 00000191h+10.1250000 0000

12、1010 000100a2h+0.50000 0000 0000 00100008h00000 0000 0000 10000000h另外,由于ds18b20單線通信功能是分時完成的,它有嚴(yán)格的時隙概念,因此讀寫時序很重要。系統(tǒng)對ds18b20的各種操作按協(xié)議進(jìn)行。操作協(xié)議為:初使化ds18b20(發(fā)復(fù)位脈沖)發(fā)rom功能命令發(fā)存儲器操作命令處理數(shù)據(jù)。圖4 ds18b20與單片機(jī)的接口電路2.3 ds18b20溫度傳感器與單片機(jī)的接口電路ds18b20可以采用兩種方式供電,一種是采用電源供電方式,此時ds18b20的1腳接地,2腳作為信號線,3腳接電源。另一種是寄生電源供電方式,如圖4 所示單

13、片機(jī)端口接單線總線,為保證在有效的ds18b20時鐘周期內(nèi)提供足夠的電流,可用一個mosfet管來完成對總線的上拉。當(dāng)ds18b20處于寫存儲器操作和溫度a/d轉(zhuǎn)換操作時,總線上必須有強(qiáng)的上拉,上拉開啟時間最大為10us。采用寄生電源供電方式時vdd端接地。由于單線制只有一根線,因此發(fā)送接口必須是三態(tài)的。2.4 系統(tǒng)整體硬件電路2.4.1 主板電路系統(tǒng)整體硬件電路包括,傳感器數(shù)據(jù)采集電路,溫度顯示電路,上下限報警調(diào)整電路,單片機(jī)主板電路等,如圖5 所示。圖5中有三個獨立式按鍵可以分別調(diào)整溫度計的上下限報警設(shè)置,圖中蜂鳴器可以在被測溫度不在上下限范圍內(nèi)時,發(fā)出報警鳴叫聲音,同時led數(shù)碼管將沒有

14、被測溫度值顯示,這時可以調(diào)整報警上下限,從而測出被測的溫度值。圖5 中的按健復(fù)位電路是上電復(fù)位加手動復(fù)位,使用比較方便,在程序跑飛時,可以手動復(fù)位,這樣就不用在重起單片機(jī)電源,就可以實現(xiàn)復(fù)位。2.4.2 顯示電路顯示電路是使用的串口顯示,這種顯示最大的優(yōu)點就是使用口資源比較少,只用p3口的rxd,和txd,串口的發(fā)送和接收,四只數(shù)碼管采用74ls164右移寄存器驅(qū)動,顯示比較清晰。 圖5 單片機(jī)主板電路圖6 溫度顯示電路3系統(tǒng)軟件算法分析系統(tǒng)程序主要包括主程序,讀出溫度子程序,溫度轉(zhuǎn)換命令子程序,計算溫度子程序,顯示數(shù)據(jù)刷新子程序等。3.1主程序主程序的主要功能是負(fù)責(zé)溫度的實時顯示、讀出并處理

15、ds18b20的測量的當(dāng)前溫度值,溫度測量每1s進(jìn)行一次。這樣可以在一秒之內(nèi)測量一次被測溫度,其程序流程見圖7所示。y發(fā)ds18b20復(fù)位命令發(fā)跳過rom命令發(fā)讀取溫度命令讀取操作,crc校驗9字節(jié)完?crc校驗正?確?移入溫度暫存器結(jié)束nny初始化調(diào)用顯示子程序1s到?初次上電讀出溫度值溫度計算處理顯示數(shù)據(jù)刷新發(fā)溫度轉(zhuǎn)換開始命令nyny圖7 主程序流程圖 圖8讀溫度流程圖3.2讀出溫度子程序讀出溫度子程序的主要功能是讀出ram中的9字節(jié),在讀出時需進(jìn)行crc校驗,校驗有錯時不進(jìn)行溫度數(shù)據(jù)的改寫。其程序流程圖如圖8示發(fā)ds18b20復(fù)位命令發(fā)跳過rom命令發(fā)溫度轉(zhuǎn)換開始命令 結(jié)束圖9 溫度轉(zhuǎn)換

16、流程圖3.3溫度轉(zhuǎn)換命令子程序溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命令,當(dāng)采用12位分辨率時轉(zhuǎn)換時間約為750ms,在本程序設(shè)計中采用1s顯示程序延時法等待轉(zhuǎn)換的完成。溫度轉(zhuǎn)換命令子程序流程圖如上圖,圖9所示3.4 計算溫度子程序計算溫度子程序?qū)am中讀取值進(jìn)行bcd碼的轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值正負(fù)的判定,其程序流程圖如圖10所示。 開始溫度零下?溫度值取補(bǔ)碼置“”標(biāo)志計算小數(shù)位溫度bcd值 計算整數(shù)位溫度bcd值 結(jié)束置“+”標(biāo)志ny溫度數(shù)據(jù)移入顯示寄存器十位數(shù)0?百位數(shù)0?十位數(shù)顯示符號百位數(shù)不顯示百位數(shù)顯示數(shù)據(jù)(不顯示符號) 結(jié)束nnyy圖10計算溫度流程圖 圖11顯示數(shù)據(jù)刷新流程圖3

17、.5 顯示數(shù)據(jù)刷新子程序顯示數(shù)據(jù)刷新子程序主要是對顯示緩沖器中的顯示數(shù)據(jù)進(jìn)行刷新操作,當(dāng)最高顯示位為0時將符號顯示位移入下一位。程序流程圖如圖11。4總結(jié)與體會經(jīng)過兩周的電子課程設(shè)計,終于完成了我的數(shù)字溫度計的設(shè)計,雖然沒有完全達(dá)到設(shè)計要求,但從心底里說,還是高興的,畢竟這是我上大學(xué)以來真正的自己第一次做課程設(shè)計。在本次設(shè)計的過程中,我發(fā)現(xiàn)很多的問題,剛開始做的時候真的不知道該從何下手,雖然很多東西都在課堂上面學(xué)過,電路基礎(chǔ),模電,數(shù)電都已經(jīng)學(xué)過,并且考試也順利的通過了,自己在閑暇之余又自學(xué)了其他的一些課程,包括計算機(jī)的一些知識,當(dāng)然也看過一些關(guān)于單片機(jī)的專業(yè)書籍,然而當(dāng)自己真正開始做這個“數(shù)字溫度計”的時候,突然想起了一句話:書到用時方恨少。一開始做的時候真的不知道該從何下手,無奈只能從網(wǎng)上下載一些案例來仔細(xì)研究,認(rèn)真的捉摸,或是到圖書館借一些相關(guān)的書籍,以作參考。功夫不負(fù)有心人,自己慢慢的對自己所要設(shè)計的這個“數(shù)字溫度計”有了一定的了解,便慢慢的,一步一步的開始了自己的課程設(shè)計,做這個設(shè)計時,中途遇到了很多的問題,便不斷的翻閱著各種相關(guān)資料,功夫不負(fù)有心人,現(xiàn)在自己也親手做出了自己的第一個課程設(shè)計,雖然有個別地方還不是很理想,然而,自己任然會慶祝一番,經(jīng)過這次的課程設(shè)計,也讓我明白了一個一些

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論