基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)_第1頁(yè)
基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)_第2頁(yè)
基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)_第3頁(yè)
基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)_第4頁(yè)
基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)論文 基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)摘要:本文設(shè)計(jì)了一種基于單片機(jī)控制的數(shù)字溫本設(shè)計(jì)度計(jì),本設(shè)計(jì)所介紹的數(shù)字溫度計(jì)與傳統(tǒng)溫度計(jì)相比,具有讀數(shù)方便,測(cè)溫范圍廣,輸出溫度采用數(shù)字顯示。該設(shè)計(jì)控制器使用單片機(jī)AT89S51,測(cè)溫傳感器使用DS18B20,用共陽(yáng)極LED數(shù)碼管顯示,能夠準(zhǔn)確達(dá)到要求。 溫度計(jì)電路設(shè)計(jì)控制器采用單片機(jī)AT89S51,具有低電壓供電和體積小等特點(diǎn),溫度傳感器采用DS18B20,DS18B20溫度傳感器是美國(guó)最新推出的一種溫度傳感器,它能直接讀出被測(cè)溫度,并且可根據(jù)實(shí)際要求通過(guò)簡(jiǎn)單的編程實(shí)現(xiàn)讀數(shù)方式,僅需要一個(gè)端口引腳進(jìn)行通信,內(nèi)

2、部存儲(chǔ)器還包括一個(gè)高速暫存RAM和一個(gè)非易失性的可電擦除的EERAM.顯示電路采用LED動(dòng)態(tài)顯示方式。 關(guān)鍵詞:?jiǎn)纹瑱C(jī) ;DS18B20 ;超限報(bào)警;LED顯示; 前言隨著人們生活水平的不斷提高,單片機(jī)控制無(wú)疑是人們追求的目標(biāo)之一,它所給人帶來(lái)的方便也是不可否定的,其中數(shù)字溫度計(jì)就是一個(gè)典型的例子,但人們對(duì)它的要求越來(lái)越高,要為現(xiàn)代人工作、科研、生活、提供更好的更方便的設(shè)施就需要從數(shù)單片機(jī)技術(shù)入手,一切向著數(shù)字化控制,智能化控制方向發(fā)展。溫度是日常生活、工業(yè)、醫(yī)學(xué)、環(huán)境保護(hù)、化工、石油等領(lǐng)域最常用到的一個(gè)物理量。測(cè)量溫度的基本方法是使用溫度計(jì)直接讀取溫度。最常見(jiàn)到得測(cè)量溫度的工具是各種各樣的溫

3、度計(jì),例如:水銀玻璃溫度計(jì),酒精溫度計(jì),熱電偶或熱電阻溫度計(jì)等。它們常常以刻度的形式表示溫度的高低,人們必須通過(guò)讀取刻度值的多少來(lái)測(cè)量溫度。利用單片機(jī)和溫度傳感器構(gòu)成的電子式智能溫度計(jì)就可以直接測(cè)量溫度,得到溫度的數(shù)字值,既簡(jiǎn)單方便,有直觀準(zhǔn)確。1 總體方案設(shè)計(jì)1.1設(shè)計(jì)方案論證針對(duì)本課題的設(shè)計(jì)任務(wù),進(jìn)行分析得到:本次設(shè)計(jì)用溫度傳感器進(jìn)行溫度的測(cè)量,轉(zhuǎn)化了的溫度信號(hào)由傳感器直接得到了數(shù)字信號(hào)。該數(shù)字溫度計(jì)的設(shè)計(jì),在總體上大致可分為以下幾個(gè)部分組成:1.單片機(jī)控制電路;2.溫度傳感器;3.開關(guān)控制電路;4.LED顯示電路。方案一由于本設(shè)計(jì)是測(cè)溫電路,可以使用熱敏電阻之類的器件利用其感溫效應(yīng),在將

4、隨被測(cè)溫度變化的電壓或電流采集過(guò)來(lái),進(jìn)行A/D轉(zhuǎn)換后,就可以用單片機(jī)進(jìn)行數(shù)據(jù)的處理,在顯示電路上,就可以將被測(cè)溫度顯示出來(lái),這種設(shè)計(jì)需要用到A/D轉(zhuǎn)換電路,感溫電路比較麻煩。 方案二 進(jìn)而考慮到用溫度傳感器,在單片機(jī)電路設(shè)計(jì)中,大多都是使用傳感器,所以這是非常容易想到的,所以可以采用一只溫度傳感器DS18B20,此傳感器,可以很容易直接讀取被測(cè)溫度值,進(jìn)行轉(zhuǎn)換,就可以滿足設(shè)計(jì)要求。從以上兩種方案,很容易看出,采用方案二,電路比較簡(jiǎn)單,軟件設(shè)計(jì)也比較簡(jiǎn)單,故采用了方案二。系統(tǒng)原理框圖如圖1所示。主 控 制 器LED顯 示溫 度 傳 感 器單片機(jī)復(fù)位時(shí)鐘振蕩報(bào)警點(diǎn)按鍵調(diào)整圖1 系統(tǒng)原理框圖1.2

5、硬件構(gòu)成1.21 主控制器AT89C51具有以下標(biāo)準(zhǔn)功能:8K字節(jié)FLASH,256字節(jié)RAM,32位I/O總線,看門狗定時(shí)器2個(gè)數(shù)據(jù)指針,3個(gè)16位定時(shí)器、計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。P0口:P0口是一個(gè)8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動(dòng)8個(gè)TTL邏輯電平。對(duì)P0口寫“1”時(shí),引腳用作高阻抗輸入。當(dāng)訪問(wèn)外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0也被作為低8位地址/數(shù)據(jù)使用。在這種模式下,P0具有內(nèi)部上拉電阻。在FLASH編程時(shí),P0口也用來(lái)接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn)時(shí),需要外部上拉電阻。P1口:P1口是一個(gè)具有內(nèi)部上拉電阻的8位

6、雙向I/O口,P1輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL邏輯電平。對(duì)P1端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入口使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流。P2口:P2口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口,P2口輸出緩沖器驅(qū)動(dòng)4個(gè)TTL邏輯電平。對(duì)P2端口寫1時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入口使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流。1.22 數(shù)碼管顯示顯示電路采用共陽(yáng)LED數(shù)碼管,從P3口RXD,TXD串口輸出段碼。1.23 溫度傳感器DS18B20溫度傳感器是美國(guó)DALLAS半導(dǎo)體公司最新推出的一種改進(jìn)型智能

7、溫度傳感器,與傳統(tǒng)的熱敏電阻等測(cè)溫元件相比,它能直接讀出被測(cè)溫度,并且可根據(jù)實(shí)際要求通過(guò)簡(jiǎn)單的編程實(shí)現(xiàn)位的數(shù)字值讀數(shù)方式。DS18B20的性能特點(diǎn)如下:a獨(dú)特的單線接口僅需要一個(gè)端口引腳進(jìn)行通信;b多個(gè)DS18B20可以并聯(lián)在惟一的三線上,實(shí)現(xiàn)多點(diǎn)組網(wǎng)功能;c無(wú)須外部器件;d可通過(guò)數(shù)據(jù)線供電,電壓范圍為3.05.5;e零待機(jī)功耗;f溫度以或位數(shù)字;g用戶可定義報(bào)警設(shè)置;h報(bào)警搜索命令識(shí)別并標(biāo)志超過(guò)程序限定溫度(溫度報(bào)警條件)的器件;i負(fù)電壓特性,電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,但不能正常工作; DS18B20溫度傳感器的內(nèi)部存儲(chǔ)器還包括一個(gè)高速暫存和一個(gè)非易失性的可電擦除的EERAM。

8、高速暫存RAM的結(jié)構(gòu)為字節(jié)的存儲(chǔ)器,結(jié)構(gòu)如圖3所示。頭個(gè)字節(jié)包含測(cè)得的溫度信息,第和第字節(jié)和的拷貝,是易失的,每次上電復(fù)位時(shí)被刷新。第個(gè)字節(jié),為配置寄存器,它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。DS18B20工作時(shí)寄存器中的分辨率轉(zhuǎn)換為相應(yīng)精度的溫度數(shù)值。該字節(jié)各位的定義如圖3所示。低位一直為,是工作模式位,用于設(shè)置DS18B20在工作模式還是在測(cè)試模式,DS18B20出廠時(shí)該位被設(shè)置為,用戶要去改動(dòng),R1和0決定溫度轉(zhuǎn)換的精度位數(shù),來(lái)設(shè)置分辨率。溫度 LSB溫度 MSBTH用戶字節(jié)1TL用戶字節(jié)2配置寄存器保留保留保留CRC圖2 DS18B20字節(jié)定義DS18B20溫度轉(zhuǎn)換的時(shí)間比較長(zhǎng),而

9、且分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時(shí)間越長(zhǎng)。因此,在實(shí)際應(yīng)用中要將分辨率和轉(zhuǎn)換時(shí)間權(quán)衡考慮。高速暫存的第、字節(jié)保留未用,表現(xiàn)為全邏輯。第字節(jié)讀出前面所有字節(jié)的CRC碼,可用來(lái)檢驗(yàn)數(shù)據(jù),從而保證通信數(shù)據(jù)的正確性。當(dāng)DS18B20接收到溫度轉(zhuǎn)換命令后,開始啟動(dòng)轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲(chǔ)在高速暫存存儲(chǔ)器的第、字節(jié)。單片機(jī)可以通過(guò)單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時(shí)低位在先,高位在后,數(shù)據(jù)格式以0.0625LSB形式表示。當(dāng)符號(hào)位時(shí),表示測(cè)得的溫度值為正值,可以直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)符號(hào)位時(shí),表示測(cè)得的溫度值為負(fù)值,要先將補(bǔ)碼變成原碼,再計(jì)算十進(jìn)制數(shù)值。表2是一部

10、分溫度值對(duì)應(yīng)的二進(jìn)制溫度數(shù)據(jù)。DS18B20完成溫度轉(zhuǎn)換后,就把測(cè)得的溫度值與RAM中的TH、T字節(jié)內(nèi)容作比較。若TH或TTL,則將該器件內(nèi)的報(bào)警標(biāo)志位置位,并對(duì)主機(jī)發(fā)出的報(bào)警搜索命令作出響應(yīng)。因此,可用多只DS18B20同時(shí)測(cè)量溫度并進(jìn)行報(bào)警搜索。在64位ROM的最高有效字節(jié)中存儲(chǔ)有循環(huán)冗余檢驗(yàn)碼(CRC)。主機(jī)ROM的前56位來(lái)計(jì)算CRC值,并和存入DS18B20的CRC值作比較,以判斷主機(jī)收到的ROM數(shù)據(jù)是否正確。DS18B20的測(cè)溫原理是這這樣的,器件中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給減法計(jì)數(shù)器;高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變,所產(chǎn)生

11、的信號(hào)作為減法計(jì)數(shù)器的脈沖輸入。器件中還有一個(gè)計(jì)數(shù)門,當(dāng)計(jì)數(shù)門打開時(shí),DS18B20就對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖進(jìn)行計(jì)數(shù)進(jìn)而完成溫度測(cè)量。計(jì)數(shù)門的開啟時(shí)間由高溫度系數(shù)振蕩器來(lái)決定,每次測(cè)量前,首先將55所對(duì)應(yīng)的一個(gè)基數(shù)分別置入減法計(jì)數(shù)器、溫度寄存器中,計(jì)數(shù)器和溫度寄存器被預(yù)置在55所對(duì)應(yīng)的一個(gè)基數(shù)值。減法計(jì)數(shù)器對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)減法計(jì)數(shù)器的預(yù)置值減到時(shí),溫度寄存器的值將加,減法計(jì)數(shù)器的預(yù)置將重新被裝入,減法計(jì)數(shù)器重新開始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到減法計(jì)數(shù)器計(jì)數(shù)到時(shí),停止溫度寄存器的累加,此時(shí)溫度寄存器中的數(shù)值就是所測(cè)溫度值。其輸出用于

12、修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)器門仍未關(guān)閉就重復(fù)上述過(guò)程,直到溫度寄存器值大致被測(cè)溫度值。2 硬件電路設(shè)計(jì)2.1 主控制器 單片機(jī)AT89S51具有低電壓供電和體積小等特點(diǎn),四個(gè)端口只需要兩個(gè)口就能滿足電路系統(tǒng)的設(shè)計(jì)需要,很適合便攜手持式產(chǎn)品的設(shè)計(jì)使用系統(tǒng)可用二節(jié)電池供電。AT89C51是一種低功耗,高性能的8位微控制器,具有8K在系統(tǒng)可編程FLASH存儲(chǔ)器。使用Atmel公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上FLASH允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程FLASH,使得AT89S52為眾多嵌入式

13、控制應(yīng)用系統(tǒng)提供高靈活,超有效的解決方案。圖3 主控制器電路2.2 顯示電路 顯示電路采用集成的數(shù)碼管,為共陽(yáng)極結(jié)構(gòu),采用動(dòng)態(tài)顯示,P1口作為輸出編碼端,P2.0到P2.7作為位選控制端,其中P1做輸出端口需要上拉電阻,通過(guò)設(shè)置不同的段碼可以顯示溫度,可以對(duì)溫度進(jìn)行實(shí)時(shí)檢測(cè)。 圖4 顯示電路2.3 數(shù)據(jù)采集電路DS18B20的內(nèi)部結(jié)構(gòu)主要包括:寄生電源,溫度傳感器,64位激光ROM和單總線接口,存放中間數(shù)據(jù)的高速暫存器RAM,用于存儲(chǔ)用戶設(shè)定溫度上下限值得TH和TL觸發(fā)器,存儲(chǔ)和邏輯控制,8位循環(huán)冗余碼發(fā)生器等七部分。DS18B20測(cè)量溫度時(shí)使用特有的溫度測(cè)量技術(shù),將被測(cè)溫度轉(zhuǎn)換成數(shù)值信號(hào),測(cè)

14、量結(jié)果將存入溫度寄存器中。圖5 數(shù)據(jù)采集電路2.4 報(bào)警電路 當(dāng)溫度超過(guò)設(shè)定的上下限溫度時(shí),蜂鳴器會(huì)發(fā)出聲響,下圖為報(bào)警電路。圖6 報(bào)警電路 3 軟件設(shè)計(jì)3.1 主程序設(shè)計(jì)系統(tǒng)的主程序主要用來(lái)初始化一些參數(shù),對(duì)DS18B20的配置數(shù)據(jù)進(jìn)行一系列的設(shè)定。另外對(duì)DS18B20的狀態(tài)不斷的查詢,以讀取當(dāng)前的溫度值,并對(duì)溫度進(jìn)行處理,溫度值的BCD碼處理后,將其段碼送顯示緩沖區(qū),以備定時(shí)掃描服務(wù)程序處理。調(diào)用顯示子程序讀取溫度 轉(zhuǎn)換溫度初始化 溫度顯示 溫度比較 檢測(cè)返回圖7 主程序流程圖3.2 溫度轉(zhuǎn)換程序讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時(shí)需進(jìn)行CRC校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度

15、數(shù)據(jù)的改寫。其程序流程圖如下所示。發(fā)DS18B20復(fù)位命令發(fā)跳過(guò)ROM命令發(fā)溫度轉(zhuǎn)換開始命令 結(jié)束 圖8 溫度轉(zhuǎn)換流程圖3.3 溫度顯示程序和報(bào)警電路程序 此程序是將采集到得數(shù)據(jù)用LED數(shù)碼管顯示,然后將實(shí)際溫度與設(shè)置的報(bào)警上下限進(jìn)行比較,決定是否發(fā)出報(bào)警信號(hào)。由于T為實(shí)際溫度的絕對(duì)值,TH,TL也是溫度的絕對(duì)值,因此判斷大小關(guān)系時(shí),要通過(guò)正負(fù)號(hào)來(lái)確定。開始 數(shù)據(jù)采集接收數(shù)據(jù) 溫度轉(zhuǎn)換LED顯示圖9溫度顯示流程圖 開始T>=0TH>=0T<=THTL>=0報(bào)警 報(bào)警 結(jié)束T>=TL結(jié)束T>=TLTL>=0T>=THTH>=0NNNYYYYN

16、NYNYNYNYYYN圖10報(bào)警程序流程圖4 調(diào)試分析4.1 軟件調(diào)試本次設(shè)計(jì)采用的是keil仿真器進(jìn)行軟件調(diào)試,此系統(tǒng)可以開發(fā)應(yīng)用軟件,以及對(duì)硬件電路進(jìn)行診斷、調(diào)試等。它的具體功能是可以進(jìn)行CPU仿真,可以單步、跟蹤、斷點(diǎn)和全速運(yùn)行,而且,程序的編譯過(guò)程中,可以對(duì)設(shè)計(jì)軟件進(jìn)行自診斷,并自動(dòng)給出故障原因。同時(shí)用戶調(diào)試程序時(shí),可以通過(guò)窗口觀察寄存器的工作狀況,以便及時(shí)發(fā)現(xiàn)和排除編程中可能出現(xiàn)的錯(cuò)誤。軟件的調(diào)試是利用keil軟件,模塊化調(diào)試,通過(guò)觀察存儲(chǔ)單元數(shù)據(jù)的變化,查找并解決程序的語(yǔ)法和邏輯錯(cuò)誤,具體的調(diào)試步驟如下:1. 把系統(tǒng)的各個(gè)模塊在仿真軟件中逐個(gè)調(diào)試,如數(shù)據(jù)采集模塊、顯示模塊等。2.

17、對(duì)各個(gè)需要賦值模塊調(diào)試時(shí),賦入初值,單步調(diào)試,觀察數(shù)據(jù)窗口,看輸出結(jié)果是否為設(shè)計(jì)時(shí)想要的結(jié)果。3. 把各個(gè)模塊組合起來(lái),全速運(yùn)行,看程序是否能流暢的,是否能實(shí)現(xiàn)設(shè)計(jì)的系統(tǒng)的所有功能。4.1 軟硬聯(lián)調(diào)本設(shè)計(jì)是采用Proteus軟件實(shí)現(xiàn)電路圖設(shè)計(jì)和仿真的,Proteus軟件與Keil軟件聯(lián)合使用,實(shí)現(xiàn)設(shè)計(jì)要求。在Keil軟件中創(chuàng)建新文件,輸入所編寫的c語(yǔ)言程序并保存,在編譯源程序無(wú)誤后,會(huì)產(chǎn)出相應(yīng)的”.HEX”文件;將所生成的”.HEX”文件加載到已繪制好的Proteus原理圖中,使Proteus與Keil真正連接起來(lái),實(shí)現(xiàn)聯(lián)合調(diào)試。調(diào)試結(jié)果下15所示。、圖11仿真測(cè)試圖 5 結(jié)論及進(jìn)一步設(shè)想根據(jù)

18、實(shí)驗(yàn)結(jié)果,本設(shè)計(jì)基本完成了設(shè)計(jì)要求,但上下限閾值的設(shè)置過(guò)于繁瑣,在原有結(jié)構(gòu)的基礎(chǔ)上,可以更簡(jiǎn)化。本課程設(shè)計(jì)的主要任務(wù)是設(shè)計(jì)一個(gè)89C51單片機(jī)為核心的數(shù)字溫度計(jì)。從確定課設(shè)題目,到查閱質(zhì)料確定總體方案設(shè)計(jì),硬件電路仿真的設(shè)計(jì),硬件電路的優(yōu)化,軟件的設(shè)計(jì),軟件的優(yōu)化,檢驗(yàn)仿真電路,調(diào)試軟件程序,到最后的軟硬件聯(lián)調(diào),都是我努力去完成的。在最后的仿真電路圖中達(dá)到了我想要的結(jié)果,并且對(duì)串口通訊有了更一步的認(rèn)識(shí)。對(duì)單片機(jī)也有了更加深刻的了解。對(duì)以后很好的應(yīng)用單片機(jī)打下了深刻的基礎(chǔ)。參考文獻(xiàn)1 劉復(fù)華.單片機(jī)及其應(yīng)用系統(tǒng).北京:清華大學(xué)出版社,19922 韓志軍.單片機(jī)系統(tǒng)設(shè)計(jì)與應(yīng)用實(shí)例.北京:機(jī)械工業(yè)出

19、版社,20103 余永全.ATMEL89系列單片機(jī)應(yīng)用技術(shù).北京:北京航空航天大學(xué)出版社,20024 馬中梅.單片機(jī)的C語(yǔ)言程序設(shè)計(jì).北京:北京航空航天大學(xué)出版社,19995 胡汗才.單片機(jī)原理及系統(tǒng)設(shè)計(jì).北京:清華大學(xué)出版社,20026 李華.MCS-51單片機(jī)實(shí)用接口技術(shù).北京:北京航空航天出版社大學(xué),19997 方彥軍,孫建.智能儀器技術(shù)及其應(yīng)用.北京:化學(xué)工業(yè)出版社,20038 孫傳友.測(cè)控系統(tǒng)原理與設(shè)計(jì).北京:北京航空航天大學(xué)出版社,20029 劉守義等.單片機(jī)應(yīng)用技術(shù).西安:西安電子科技大學(xué)出版社,200210 何立民.單片機(jī)高級(jí)教程.北京:北京航空航天大學(xué)出版社,2000課設(shè)體會(huì)

20、經(jīng)過(guò)了兩個(gè)星期的課設(shè),讓我對(duì)以前學(xué)的理論知識(shí)有了較深的體會(huì),要用理論指導(dǎo)實(shí)踐,在實(shí)踐中發(fā)現(xiàn)自己的不足之處,不斷完善自己。這一周的課程設(shè)計(jì)讓我體會(huì)到很多東西,不僅僅是知識(shí)本身的,更多的是自己動(dòng)手能力和邏輯思維能力的鍛煉,同時(shí),也知道自己還有許多要學(xué)的東西。在社會(huì)實(shí)踐中,單片機(jī)是一個(gè)熱門的話題,所以我要認(rèn)真學(xué)習(xí)單片機(jī)的知識(shí),這對(duì)我們找工作是很有幫組的,遇到問(wèn)題并不可怕關(guān)鍵是我們要找到方法去解決問(wèn)題,一定要勤于動(dòng)手,這樣自己才會(huì)有提高。當(dāng)然在這次寶貴的課程設(shè)計(jì)活動(dòng)中,經(jīng)驗(yàn)才是對(duì)于我們最大的收獲,而且還增強(qiáng)了自身對(duì)未知問(wèn)題以及對(duì)知識(shí)的深化認(rèn)識(shí)的能力,用受益匪淺這個(gè)詞語(yǔ)來(lái)概括這次難忘的活動(dòng)我覺(jué)得再合適不

21、過(guò)了。但是,光是完成了作品還是不可以自我滿足的,在從一開始的時(shí)候就懷著將作品制作得更加人性化,更加令人滿意,更加地使功能完美又方便地被應(yīng)用領(lǐng)域這個(gè)最終目的下,隨著對(duì)單片機(jī)這門學(xué)科的認(rèn)識(shí)加深,到達(dá)了拓展的程度,我想這個(gè)目的將在不遠(yuǎn)的時(shí)期內(nèi)被實(shí)現(xiàn)。最后感謝老師及同學(xué)在這兩個(gè)星期對(duì)我的幫助。、附錄1 電路原理圖附錄2 元件清單元件名稱型號(hào)數(shù)量單片機(jī)AT89C511溫度傳感器DS18B20數(shù)碼管7SEG-MPX8-CA1按鍵BUTTON16電阻RES10三極管2N29261蜂鳴器SOUNDER1附錄3 程序源#include<reg51.h>#define uchar unsigned c

22、har#define uint unsigned intuchar code table=0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0xee,0x3e,0x9c,0x7a,0x9e,0x8e;uchar code address=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;sbit DQ=P30; sbit dot=P10;sbit fm=P35;uchar a,i,temp1,temp2,c,t1,t2,yz1,yz2;bit flag,flag1;uint temp;void delay(uint

23、 m) while(m-);void Init() uchar i=0; DQ=1; delay(8); DQ=0; delay(80); DQ=1; delay(14); i=DQ; delay(20); uchar read_byte() uchar byte=0; for (i=0;i<8;i+) /先傳低位 DQ=0; byte>>=1; DQ=1; if(DQ) byte|=0x80; delay(4); return(byte);void write_byte(uchar byte) for (i=0;i<8;i+) /先傳低位 DQ=0; byte>

24、>=1; DQ=CY; delay(5); DQ=1; void read_temp()Init();write_byte(0xcc); / Skip ROMwrite_byte(0x44); / 啟動(dòng)溫度轉(zhuǎn)換delay(10);Init();write_byte(0xcc); /Skip ROMwrite_byte(0xbe); /讀取溫度寄存器temp1=read_byte(); /低位temp2=read_byte(); /高位void ds() read_temp(); temp=temp1&0x0f; if(temp2>127) flag=1; temp1=tem

25、p1; temp2=temp2; temp=temp1&0x0f; temp+=0x01; temp=temp*625; temp1=temp1&0xf0; /取整數(shù)部分 temp1=temp1/16; temp2=temp2*16; temp1+=temp2; if(flag) temp1+=0x01;void xs() for(i=0;i<4;i+) /顯示小數(shù)部分 P2=addressi; P1=tabletemp%10; delay(750); temp/=10; P2=0xef; /顯示整數(shù)部分 P1=tabletemp1%10; dot=1; delay(75

26、0); if(temp1/100|temp1/10) /高位去0 P2=0xdf; P1=tabletemp1/10%10; delay(750); if(temp1/100) /高位去0 P2=0xbf; P1=tabletemp1/100%10; delay(800); if(flag) /加負(fù)號(hào) P2=0x7f; P1=0x02; delay(750); flag=0; void bj() fm=1; delay(100); fm=0; delay(100); void jp() uchar t,tempt,p; P0=0xfe; tempt=P0; tempt=tempt&0x

27、f0; if(tempt!=0xf0) switch(tempt) case(0xe0):flag1=0;flag=0;p=1;break; /shangxian case(0xd0):flag1=0;flag=1;p=2;break; /xiaxian case(0xb0):flag1=0;a+;t=1;break; case(0x70):flag1=0;a+;t=2;break; while(temp!=0xf0) tempt=P0; tempt=tempt&0xf0; P0=0xfd; tempt=P0; tempt=tempt&0xf0; if(tempt!=0xf0) switch(tempt) case(0xe0):flag1=0;a+;t=3;break; case(0xd0):flag1=0;a+;t=4;break; case(0xb0):flag1=0;a+;t=5;break; case(0x70):flag1=0;a+;t=6;break; while(tempt!=0xf0) tempt=P0; tempt=tempt

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論