基于DS18B20的溫度系統(tǒng)的課程設(shè)計.doc_第1頁
基于DS18B20的溫度系統(tǒng)的課程設(shè)計.doc_第2頁
基于DS18B20的溫度系統(tǒng)的課程設(shè)計.doc_第3頁
基于DS18B20的溫度系統(tǒng)的課程設(shè)計.doc_第4頁
基于DS18B20的溫度系統(tǒng)的課程設(shè)計.doc_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

基于DS18B20的溫度系統(tǒng) 實驗?zāi)康牧私?DS1820數(shù)字溫度傳感器特性掌握單片機(jī)基本功能的運(yùn)用、簡單接口電路如鍵盤、 LED顯示電路或LCD顯示電路設(shè)計及其相應(yīng)驅(qū)動軟件的編制軟、硬件系統(tǒng)的調(diào)試 實驗任務(wù)設(shè)計一個具有基于DS1820數(shù)字溫度傳感器的溫度檢測及顯示的系統(tǒng)。要求系統(tǒng)具有以下功能: 兩路溫度檢測; 具有顯示功能; 具有用戶輸入功能; 可通過輸入補(bǔ)償溫度設(shè)定校準(zhǔn); 實驗原理 原理簡述:數(shù)字溫度傳感器DS1820把溫度信息轉(zhuǎn)換為數(shù)字格式;通過“1線協(xié)議”,單片機(jī)獲取指定傳感器的數(shù)字溫度信息,并顯示到顯示設(shè)備上。通過鍵盤,單片機(jī)可根據(jù)程序指令實現(xiàn)更靈活的功能,如單點(diǎn)檢測、輪轉(zhuǎn)檢測、越限檢測等?;贒S1820數(shù)字溫度傳感器的溫度檢測及顯示的系統(tǒng)原理圖如圖1圖 1 基于DS1820的溫度檢測系統(tǒng)框圖 硬件設(shè)計電路設(shè)計單片機(jī)基本系統(tǒng)電路: 圖 2 單片機(jī)基本系統(tǒng)電路原理圖 電路說明: 綜合考慮系統(tǒng)使用到的單片機(jī)內(nèi)部存儲資源、系統(tǒng)處理信號的種類、處理數(shù)據(jù)的速度、系統(tǒng)的 I/O口開銷,以及系統(tǒng)的可擴(kuò)展性能,本系統(tǒng)選用了ATMEL公司的8位低功耗,高性能CMOS單片機(jī),芯片內(nèi)集成有通用8位中央處理器(兼容標(biāo)準(zhǔn)MCS -51指令系統(tǒng)及80C51引腳結(jié)構(gòu))和4K/8K Bytes ISP Flash存儲單元(可實現(xiàn)在系統(tǒng)編程)。復(fù)位電路采用上電復(fù)位加按鍵復(fù)位的方式。采用無源晶體提供正弦振蕩信號為系統(tǒng)提供時鐘,其硬件原理圖如圖 2所示。溫度檢測電路:由于采用數(shù)字傳感器,電路不用考慮A/D轉(zhuǎn)換,只需設(shè)計指定某個I/O口作為與數(shù)字傳感器相連,電路原理圖如圖示。“1線協(xié)議”圖 3 溫度檢測電路原理圖 電路說明: DS18B20的數(shù)字溫度輸出通過 “ 一線 ” 總線( 1-Wire是被MAXIM公司收購的DALLAS公司新?lián)碛械囊环N獨(dú)特的數(shù)字信號總線協(xié)議,它將獨(dú)特的 電源線和信號線復(fù)合在一起,僅使用一條口線;每個芯片唯一編碼,支持聯(lián)網(wǎng)尋址、零功耗等待等,是所需硬件連線最少的一種總線)這種獨(dú)特的方式,使多個 DS18B20方便地組建成傳感器網(wǎng)絡(luò),為整個測量系統(tǒng)的建立和組合提供了更大可能性。DS18B20可以設(shè)置成兩種供電方式,即數(shù)據(jù)總線供電方式和外部供電方式。采取數(shù)據(jù)總線供電方式可以節(jié)省一根導(dǎo)線,但由此帶來的缺點(diǎn)是完成溫度測量的時間較長;而采取外部供電方式則多用一根導(dǎo)線,但測量速度較快。本設(shè)計采用一總線2路溫度測量使用外部供電,如圖3所示。 鍵盤控制電路: 圖 4 鍵盤控制電路原理圖 電路說明: 為了節(jié)約系統(tǒng)硬件開銷,設(shè)計方案中鍵盤模塊沒有采用ZLG7289或者ZLG7290等專用的鍵盤控制芯片。使用普通的行列掃描鍵盤的優(yōu)點(diǎn)是沒有更多的外圍電路,缺點(diǎn)是如果軟件調(diào)試不當(dāng)可能引起按鍵連擊,為系統(tǒng)的運(yùn)行帶來不穩(wěn)定。系統(tǒng)使用鍵盤電路為四行四列16個按鍵的行列掃描式鍵盤,其電路原理圖如圖4所示。 從圖中的硬件連接看來,鍵盤接口并沒有增加任何其他的附加驅(qū)動電路,而是直接和單片機(jī)的引腳相連。操作時直接用程序設(shè)置單片機(jī)相應(yīng)的端口驅(qū)動按鍵。 顯示電路: 圖 5 LED顯示電路原理圖電路說明:采用四位共陰極動態(tài)LED顯示單元。LED動態(tài)顯示的基本做法在于分時輪流選通數(shù)碼管的公共端,使得各數(shù)碼管輪流導(dǎo)通,在選通相應(yīng)LED后,即在顯示字段上得到顯示的字型碼。這種方式不但能夠提高數(shù)碼管的發(fā)光效率,而且由于各個數(shù)碼管的字段線是并聯(lián)使用的,從而大大簡化了硬件線路。 動態(tài)掃描顯示接口是單片機(jī)系統(tǒng)中應(yīng)用最為廣泛的一種顯示方式。其接口電路是把所有顯示器的 8個筆畫段adp同名端并聯(lián)在一起,而每一個顯示器的公共極COM是各自獨(dú)立地受I/O控制的。MPU向字段輸出口送出字型碼時,所有顯示器由于同名端并聯(lián)連接收到相同的字型碼,但究竟是哪個顯示器亮,則取決于COM端,而這一端是通過MPU對I/O編程控制的,所以就可以自行決定何時那一位顯示器被點(diǎn)亮了。這兒所說的動態(tài)就是在基于COM端選擇,可編程的基礎(chǔ)上,采用分時的方法輪流控制各個顯示器的COM端,使各個顯示器輪流點(diǎn)亮。在輪流點(diǎn)亮掃描過程中,每位顯示器的點(diǎn)亮?xí)r間是極為短暫的 (約1ms),由于人眼的視覺暫留現(xiàn)象及發(fā)光二極管的速度足夠快,給人的視覺誤差就是一組穩(wěn)定的顯示數(shù)據(jù),如果做的足夠好是不會有閃爍感。與液晶顯示器相比,動態(tài) LED顯示單元具有軟件編寫簡單的優(yōu)點(diǎn)。但是其功耗比LCD顯示大,為了達(dá)到最佳的顯示效果,硬件連接必須考慮段和位驅(qū)動的電路的設(shè)計;其次LED在顯示刷新率,顯示穩(wěn)定性方面也不及LCD顯示。在如圖 5的本設(shè)計方案中,使用的是四位共陰極LED顯示器。典型的硬件設(shè)計是使用74HC245提供段adp(圖中為PB1PB8)的驅(qū)動,74LS139提供位COM1COM4(圖中為LED1LED4)的驅(qū)動。使用雙向總線驅(qū)動器 74HC245作為段驅(qū)動,由于HC電路輸出電阻較大,外部可直接驅(qū)動而不需要限流電阻。位驅(qū)動使用24譯碼器,具有四個OC門輸出,輸出低電平有效,直接用來驅(qū)動四位公共陰極COM1COM4。 軟件設(shè)計 1).軟件設(shè)計工具及調(diào)試環(huán)境 系統(tǒng)軟件采用 C語言開發(fā),與匯編相比,使用C語言開發(fā)單片機(jī)軟件系統(tǒng),具有程序的可讀性、易維護(hù)性和可移植性好,對硬件的控制能力強(qiáng)等特點(diǎn)?,F(xiàn)代單片機(jī)集成大容量的程序存儲器一定程度上解決了部分C編譯器機(jī)器語言生成代碼效率低的缺點(diǎn),解決代碼效率問題最重要的還是得靠編譯器性能得不斷提高。KeilC51是美國Keil Software公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng)。 KeilC51軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全Windows界面。另外重要的一點(diǎn),通過查看編譯后生成的匯編代碼,我們就能體會到KeilC51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。C51中使用C語言編程與匯編語言編程相比,具有以下的優(yōu)勢。匯編語言雖然有執(zhí)行效率高的優(yōu)點(diǎn),但其可移植性和可讀性差,以及本身就是一種編程效率低下的低級語言,這些都使它的編程和維護(hù)極不方便,從而導(dǎo)致整個系統(tǒng)的可靠性也較差。而使用C語言進(jìn)行單片機(jī)應(yīng)用系統(tǒng)的開發(fā),有著匯編語言不可比擬的優(yōu)勢。當(dāng)前較好的C語言編譯系統(tǒng)的編譯效率已經(jīng)基本達(dá)到中高級程序開發(fā)人員的水平,尤其是用于開發(fā)較為復(fù)雜的單片機(jī)應(yīng)用系統(tǒng)時更具優(yōu)勢。2).主程序控制流程在軟件的設(shè)計過程中,為了進(jìn)一步提高軟件的透明度,作者將系統(tǒng)的一些功能菜單寫成子程序的形式供主程序(操作系統(tǒng))調(diào)用。此程序中主要包括系統(tǒng)開始狀態(tài)等待,系統(tǒng)工作模式選擇,多通道工作模式操作,單通道工作模式操作,通過鍵盤輸入 -9.99+9.99之間的誤差數(shù)據(jù),通過鍵盤查詢和重置各通道的誤差量。本文中詳細(xì)給出了操作子程序中部分功能模塊的流程圖,這樣有利于對系統(tǒng)工作的了解。圖6給出了系統(tǒng)開始等待程序的流程圖,圖7中給出了系統(tǒng)工作模式選擇流程圖,圖8中給出了系統(tǒng)的主函數(shù)流程圖。圖 6 系統(tǒng)開始等待程序的流程圖 圖 7 系統(tǒng)工作模式選擇流程圖 圖 8 系統(tǒng)的主函數(shù)流程圖 3).溫度檢測流程 DS18B20子程序是結(jié)合它的用戶使用資料編寫,主要完成的是初始化DS18B20,從DS18B20中讀出一個字節(jié)的數(shù)據(jù),向DS18B20中寫入一個字節(jié)的數(shù)據(jù),配置DS18B20包括警報溫度的上限和下限、溫度轉(zhuǎn)換的精度,讀出Scrachpad存儲器中的九個字節(jié)的數(shù)據(jù),讀出Rom中的64位Code值,對讀出的Scrachpad數(shù)據(jù)進(jìn)行CRC校驗,然后根據(jù)讀出的數(shù)據(jù)得到測量出的十進(jìn)制溫度值。從DS18B20中讀出九個字節(jié)數(shù)據(jù)的流程圖如圖9所示。 圖 9 從DS18B20中讀數(shù)據(jù)的流程圖 DS18B20數(shù)據(jù)的CRC校驗。為了解決單總線串行傳輸數(shù)據(jù)可能引起的錯誤,DS18B20內(nèi)部具有產(chǎn)生CRC校驗碼電路,這樣程序員可以通過對讀出的數(shù)據(jù)進(jìn)行CRC校驗碼,并用這個校驗碼和獲得的數(shù)據(jù)的最后一個字節(jié)比較,若兩者相同則證明數(shù)據(jù)傳送沒有錯誤,從而驗證通信過程中數(shù)據(jù)傳輸?shù)恼_性,使采集溫度信號的可靠性得到保證。本系統(tǒng)中 CRC校驗在程序中是通過查表來實現(xiàn)。CRC校驗數(shù)據(jù)表保存在程序代碼中的一個一維數(shù)組中。CRC檢驗的求法。M為一個k位長的信息幀。P為n+1位預(yù)先確定的用來生成校驗碼的二進(jìn)制序列其最高位和最低位必須為1,DS18B20中使用的序列為:P 1 0011 0001。F為位FCS,即校驗碼序列。T為k位被傳輸?shù)膸R驗镕是接在M信息幀之后的,因此T=M 2 n (2 n 為2的n次方)中,M 2 相當(dāng)于M左移位,后面添個零。設(shè)M 2 除以P的商和余數(shù)分別是Q和R,則有M 2 =P Q+R即M 2 /P=Q+R/P若設(shè)T=M 2 +R,則T定能被整除。因為按模2的加減運(yùn)算相當(dāng)于異或運(yùn)算,故有T/P=(M 2 +R)/P=(M 2 )/P+R/P =Q+R/P+R/P=Q這樣一來,校驗碼序列F就是M 2 除以P的余數(shù)R。通過計算可以得到 256個用于CRC檢驗的數(shù)據(jù)。4).鍵盤控制 鍵盤處理子程序主要完成的是通過特定的設(shè)置按鍵端口的狀態(tài),并對端口狀態(tài)進(jìn)行檢測,然后為按鍵設(shè)置特定的值,為主程序提供執(zhí)行判決。需考慮多鍵按下和去抖動的問題。圖 10給出了鍵盤掃描的程序流程圖。圖 10 鍵盤掃描流程圖 5).顯示控制: 系統(tǒng)硬件選擇的是四段共陰極 LED動態(tài)顯示,LED顯示子程序主要是完成對設(shè)定的LED段,并通過查七段碼表,使它顯示制定的圖樣。圖11中描述的是通過選定一段數(shù)碼管,顯示數(shù)據(jù)的程序流程圖。圖 11 LED顯示流程圖 6).數(shù)據(jù)處理 完成數(shù)據(jù)格式的轉(zhuǎn)換、保存;設(shè)置誤差值的補(bǔ)償?shù)葦?shù)據(jù)操作。根據(jù)不同的應(yīng)用要求定制,在此不作強(qiáng)制定義。 思考題 1、LED動態(tài)顯示時顯示的亮度與什么物理量有關(guān)? 2、顯示刷新率(單位時間內(nèi)顯示數(shù)據(jù)改變的次數(shù))和顯示穩(wěn)定性(閃爍感越?。┲g的關(guān)系? 3、通過怎樣的方法解決顯示刷新率和顯示穩(wěn)定性之間的關(guān)系?4、你有什么好的硬件方案解決LED顯示的驅(qū)動(增加流過LED段的電流)問題,請給出電路圖? 5、LCD顯示和動態(tài)LED顯示的區(qū)別? 6、在單片機(jī)的RAM中,30H單元存放著一個無符號類型數(shù)據(jù),請你通過編程得到這個數(shù)各位上的數(shù)字?如果是一個有符號數(shù)呢?如果是一個壓縮BCD編碼的數(shù)呢? 7、如果你使用的單

溫馨提示

  • 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

提交評論