![數(shù)字溫度顯示報警系統(tǒng)_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-5/4/7ea5cce7-2bc7-40e8-803e-a9d472ce8362/7ea5cce7-2bc7-40e8-803e-a9d472ce83621.gif)
![數(shù)字溫度顯示報警系統(tǒng)_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-5/4/7ea5cce7-2bc7-40e8-803e-a9d472ce8362/7ea5cce7-2bc7-40e8-803e-a9d472ce83622.gif)
![數(shù)字溫度顯示報警系統(tǒng)_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-5/4/7ea5cce7-2bc7-40e8-803e-a9d472ce8362/7ea5cce7-2bc7-40e8-803e-a9d472ce83623.gif)
![數(shù)字溫度顯示報警系統(tǒng)_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-5/4/7ea5cce7-2bc7-40e8-803e-a9d472ce8362/7ea5cce7-2bc7-40e8-803e-a9d472ce83624.gif)
![數(shù)字溫度顯示報警系統(tǒng)_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-5/4/7ea5cce7-2bc7-40e8-803e-a9d472ce8362/7ea5cce7-2bc7-40e8-803e-a9d472ce83625.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、工 學(xué) 院 畢 業(yè) 設(shè) 計( 論 文 )題 目: 數(shù)字溫度顯示報警系統(tǒng) 專 業(yè): 電子信息工程 班 級: 06(2)班 姓 名: 曹乾坤 學(xué) 號: 2006654212 指導(dǎo)教師: 葉愛芹 日 期: 2010年6月5日 目 錄引言22. 設(shè)計要求22.1基本功能22.2擴展功能23. 總體設(shè)計方案33.1數(shù)字溫度計設(shè)計方案論證33.1.1 方案一33.1.2 方案二33.2 總體設(shè)計框圖33.3單片機的選擇33.4 溫度傳感器的選擇53.4.1 ds18b20的介紹53.5 顯示模塊選擇73.5.1數(shù)碼管的分類83.5.2數(shù)碼管驅(qū)動原理84. 系統(tǒng)硬件電路設(shè)計94.1系統(tǒng)整體電路圖94.2 單
2、片機最小系統(tǒng)104.3 溫度傳感器系統(tǒng)104.3.1 ds18b20的測溫原理114.4 報警電路設(shè)計124.5 顯示電路設(shè)計124.6電源電路設(shè)計135. 系統(tǒng)軟件設(shè)計145.1主程序145.2讀出溫度子程序155.3溫度轉(zhuǎn)換命令子程序155.4 計算溫度子程序155.4 鍵盤掃描流程圖176. 測試與結(jié)果分析176.1仿真軟件介紹176.2 仿真結(jié)果186.2.1 用keil進行程序編譯186.2.2 在proteus中仿真197. 總結(jié)與致謝22參考文獻(xiàn):23英文摘要:24附錄:源程序25數(shù)字溫度顯示報警系統(tǒng)摘要:隨著時代的進步和發(fā)展,單片機技術(shù)已經(jīng)普及到我們生活,工作,科研,各個領(lǐng)域,
3、已經(jīng)成為一種比較成熟的技術(shù),本文將介紹一種基于單片機控制的數(shù)字溫度計,利用單片機at89s52設(shè)計了一種數(shù)字溫度計,它由單片機、ds18b20傳感器以及l(fā)ed 數(shù)碼管等部件組成,本溫度計屬于多功能溫度計,功能較強,可以設(shè)置上下限報警溫度,且測量準(zhǔn)確、誤差小。當(dāng)測量溫度超過設(shè)定的溫度上下限時,啟動蜂鳴器和指示燈報警。 關(guān)鍵詞:單片機at89s52;溫度計;ds18b20;溫度顯示引言溫度是工業(yè)控制中主要的被控參數(shù)之一,特別是在冶金、化工、建材、食品、機械、石油等工業(yè)中,具有舉足重輕的作用。對于不同場所、不同工藝、所需溫度高低范圍不同、精度不同,則采用的測溫元件、測溫方法以及對溫度的控制方法也將不
4、同;產(chǎn)品工藝不同、控制溫度的精度不同、時效不同,則對數(shù)據(jù)采集的精度和采用的控制算法也不同,因而,對溫度的測控方法多種多樣。隨著電子技術(shù)和微型計算機的迅速發(fā)展,微機測量和控制技術(shù)也得到了迅速的發(fā)展和廣泛的應(yīng)用1。利用微機對溫度進行測控的技術(shù),也便隨之而生,并得到日益發(fā)展和完善,越來越顯示出其優(yōu)越性。隨著人們生活水平的不斷提高,單片機控制無疑是人們追求的目標(biāo)之一,它所給人帶來的方便也是不可否定的,其中數(shù)字溫度計就是一個典型的例子,但人們對它的要求越來越高,要為現(xiàn)代人工作、科研、生活、提供更好的更方便的設(shè)施就需要從數(shù)單片機技術(shù)入手,一切向著數(shù)字化控制,智能化控制方向發(fā)展2。本設(shè)計即用單片機對溫度進行
5、實時檢測與控制,本文所介紹的數(shù)字溫度計與傳統(tǒng)的溫度計相比,具有讀數(shù)方便,測溫范圍廣,測溫準(zhǔn)確,其輸出溫度采用數(shù)字顯示,主要用于對測溫比較準(zhǔn)確的場所,或科研實驗室使用,該設(shè)計控制器使用單片機at89s52,測溫傳感器使用ds18b20,用4位共陽極led數(shù)碼管以串口傳送數(shù)據(jù),實現(xiàn)溫度顯示,能準(zhǔn)確達(dá)到設(shè)計要求。本溫度計屬于多功能溫度計,功能較強,可以設(shè)置上下限報警溫度,且測量準(zhǔn)確、誤差小。當(dāng)測量溫度超過設(shè)定的溫度上下限時,啟動蜂鳴器和指示燈報警。2. 設(shè)計要求2.1基本功能 基本范圍0-99 精度誤差小于0.5 led數(shù)碼直讀顯示2.2擴展功能 實現(xiàn)聲光報警 可以任意設(shè)定溫度的上下限報警功能3.
6、總體設(shè)計方案3.1數(shù)字溫度計設(shè)計方案論證3.1.1 方案一由于本設(shè)計是測溫電路,根據(jù)設(shè)計要求可以使用熱敏電阻之類的感溫器件利用其感溫效應(yīng),然后將隨被測溫度變化的電壓或電流采集過來,經(jīng)過a/d轉(zhuǎn)換后,將數(shù)據(jù)傳輸?shù)絾纹瑱C進行數(shù)據(jù)的處理,然后在顯示電路上顯示,這樣就可以將被測溫度顯示出來,這種設(shè)計需要用到a/d轉(zhuǎn)換電路,感溫電路比較麻煩。3.1.2 方案二 在單片機電路設(shè)計中,大多都是使用傳感器,這是非常容易想到利用數(shù)字溫度傳感器,所以可以采用一只溫度傳感器ds18b20,此傳感器,可以很容易直接讀取被測溫度值,進行轉(zhuǎn)換,然后傳輸給單片機進行數(shù)據(jù)處理,就可以滿足設(shè)計要求。從以上兩種方案,很容易看出,
7、采用方案二,電路設(shè)計比較簡潔,軟件設(shè)計也比較簡單,故采用方案二。3.2 總體設(shè)計框圖溫度計電路設(shè)計總體設(shè)計方框圖如圖3.2.1所示,控制器采用單片機at89s52,溫度傳感器采用ds18b20,用4位led數(shù)碼管以串口傳送數(shù)據(jù)實現(xiàn)溫度顯示。led顯 示主 控 制 器單片機復(fù)位報警點按鍵蜂鳴器報警ds18b20傳感器圖3.2.1總體設(shè)計方框圖3.3單片機的選擇方案一:選擇microchip公司的pic系列單片機作為世界上最為頂尖的單片機研發(fā)與生產(chǎn)企業(yè),微芯公司設(shè)計的pic系列單片機一度風(fēng)靡全球,其優(yōu)秀的性能和卓越的品質(zhì)受到了許多人的青睞,其優(yōu)點毋庸贅述。但是,高知名度的缺點也顯而易見,價格昂貴,
8、性價比不高是其軟肋3。方案二:選擇德州儀器的msp430系列單片機msp430單片機是一個 16 位的、具有精簡指令集的混合型單片機,它具有極低的功耗、豐富的片內(nèi)外設(shè)和方便靈活的開發(fā)手段。但是,由于msp430單片機系列價格較高,比較適合于較為復(fù)雜的應(yīng)用系統(tǒng)4。方案三:選擇atmel公司的at89s52單片機at89s52單片機是一個低功耗,高性能cmos 8位單片機,片內(nèi)含8k bytes isp(in-system programmable)的可反復(fù)擦寫1000次的flash只讀程序存儲器,器件采用atmel公司的高密度、非易失性存儲技術(shù)制造,兼容標(biāo)準(zhǔn)mcs-51指令系統(tǒng)及80c51引腳結(jié)
9、構(gòu),芯片內(nèi)集成了通用8位中央處理器和isp flash存儲單元,片上flash允許程序存儲器在系統(tǒng)可編程,亦適于 常規(guī)編程器,在功能強大的微型計算機的at89s52單芯片上,擁有靈巧的8 位cpu 和在系統(tǒng)可編程flash,使得at89s52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價比的解決方案5。at89s52引腳結(jié)構(gòu)圖如圖3.3.1:圖3.3.1 at89s52結(jié)構(gòu)圖at89s52 實物圖如圖3.3.2:圖 3.3.2 at89s52 實物圖基于對成本和性能的比較,我們選擇at89s52單片機。3.4 溫度傳感器的選擇3.4.1 ds18b20
10、的介紹溫度傳感器的種類眾多,在應(yīng)用與高精度、高可靠性的場合時 dallas(達(dá)拉斯)公司生產(chǎn)的 ds18b20 溫度傳感器當(dāng)仁不讓。超小的體積,超低的硬件開消,抗干擾能力強,精度高,附加功能強,使得 ds18b20 更受歡迎。ds18b20 的主要特征: 全數(shù)字溫度轉(zhuǎn)換及輸出; 最高 12 位分辨率,精度可達(dá)土 0.5攝氏度; 12 位分辨率時的最大工作周期為 750 毫秒; 可選擇寄生工作方式; 檢測溫度范圍為55c+125c (67f +257f); 內(nèi)置 eeprom,限溫報警功能。用戶可定義報警設(shè)置 ; 64 位光刻 rom,內(nèi)置產(chǎn)品序列號,方便多機掛接; 多樣封裝形式,適應(yīng)不同硬件系
11、統(tǒng); 獨特的單線接口僅需要一個端口引腳進行通信; 多個ds18b20 可以并聯(lián)在惟一的三線上,實現(xiàn)多點組網(wǎng)功能; 無須外部器件; 可通過數(shù)據(jù)線供電,電壓范圍為3.05.5v; 零待機功耗; 溫度以9 或12 位數(shù)字; 報警搜索命令識別并標(biāo)志超過程序限定溫度(溫度報警條件)的器件; 負(fù)電壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作;ds18b20它有64 位rom 的結(jié)構(gòu)開始8 位是產(chǎn)品類型的編號,接著是每個器件的惟一的序號,共有48 位,最后8 位是前面56位的crc 檢驗碼,這也是多個ds18b20 可以采用一線進行通信的原因。溫度報警觸發(fā)器th 和tl,可通過軟件寫入戶報
12、警上下限6。另外,由于ds18b20 單線通信功能是分時完成的,它有嚴(yán)格的時隙概念,因此讀寫時序很重要。系統(tǒng)對ds18b20 的各種操作按協(xié)議進行。操作協(xié)議為:初始化ds18b20(發(fā)復(fù)位脈沖)發(fā)rom 功能命令發(fā)存儲器操作命令處理數(shù)據(jù)。ds18b20芯片封裝結(jié)構(gòu)如圖3.4.1: 圖 3.4.1 ds18b20芯片封裝結(jié)構(gòu) ds18b20采用3腳pr35封裝或8腳soic封裝,其內(nèi)部結(jié)構(gòu)框圖如圖3.4.2所示。i/oc64位rom和單線接口高速緩存存儲器與控制邏輯溫度傳感器高溫觸發(fā)器th低溫觸發(fā)器tl配置寄存器8位crc發(fā)生器vdd圖 3.4.2 ds18b20內(nèi)部結(jié)構(gòu)框ds18b20 工作原
13、理 ds18b20 的溫度檢測與數(shù)字?jǐn)?shù)據(jù)輸出全集成于一個芯片之上,從而抗干擾力更強。其一個工作周期可分為兩個部分,即溫度檢測和數(shù)據(jù)處理。在講解其工作流程之前我們有必要了解18b20的內(nèi)部存儲器資源。ds18b20 共有三種形態(tài)的存儲器資源,它們分別是: rom 只讀存儲器,用于存放 ds18b20id 編碼,其前 8 位是單線系列編碼(ds18b20 的編碼是19h),后面48 位是芯片唯一的序列號,最后 8位是以上 56的位的 crc碼(冗余校驗)。數(shù)據(jù)在出產(chǎn)時設(shè)置不由用戶更改。ds18b20 共 64 位 rom。 ram 數(shù)據(jù)暫存器,用于內(nèi)部計算和數(shù)據(jù)存取,數(shù)據(jù)在掉電后丟失,ds18b2
14、0 共9 個字節(jié) ram,每個字節(jié)為 8 位。第1、2 個字節(jié)是溫度轉(zhuǎn)換后的數(shù)據(jù)值信息,第 3、4 個字節(jié)是用戶 eeprom(常用于溫度報警值儲存)的鏡像。在上電復(fù)位時其值將被刷新。第 5 個字節(jié)則是用戶第 3 個 eeprom的鏡像。第 6、7、8 個字節(jié)為計數(shù)寄存器,是為了讓用戶得到更高的溫度分辨率而設(shè)計的,同樣也是內(nèi)部溫度轉(zhuǎn)換、計算的暫存單元。第 9 個字節(jié)為前 8個字節(jié)的 crc碼。eeprom 非易失性記憶體,用于存放長期需要保存的數(shù)據(jù),上下限溫度報警值和校驗數(shù)據(jù),ds18b20共3位eeprom,并在 ram 都存在鏡像,以方便用戶操作7。ds18b20工作時寄存器中的分辨率轉(zhuǎn)換
15、為相應(yīng)精度的溫度數(shù)值。該字節(jié)各位的定義如圖3.4.3所示。低5位一直為,tm是工作模式位,用于設(shè)置ds18b20在工作模式還是在測試模式,ds18b20出廠時該位被設(shè)置為0,用戶要去改動,r1和r0決定溫度轉(zhuǎn)換的精度位數(shù),來設(shè)置分辨率。溫度 lsb溫度 msbth用戶字節(jié)1tl用戶字節(jié)2配置寄存器保留保留保留crctmr1r011111圖3.4.3ds18b20字節(jié)定義3.5 顯示模塊選擇數(shù)碼管是一種半導(dǎo)體發(fā)光器件,其基本單元是發(fā)光二極管。 3.5.1數(shù)碼管的分類數(shù)碼管按段數(shù)分為七段數(shù)碼管和八段數(shù)碼管,八段數(shù)碼管比七段數(shù)碼管多一個發(fā)光二極管單元(多一個小數(shù)點顯示);按能顯示多少個“8”可分為1
16、位、2位、4位等等數(shù)碼管;按發(fā)光二極管單元連接方式分為共陽極數(shù)碼管和共陰極數(shù)碼管。共陽數(shù)碼管是指將所有發(fā)光二極管的陽極接到一起形成公共陽極(com)的數(shù)碼管。共陽數(shù)碼管在應(yīng)用時應(yīng)將公共極com接到+5v,當(dāng)某一字段發(fā)光二極管的陰極為低電平時,相應(yīng)字段就點亮。當(dāng)某一字段的陰極為高電平時,相應(yīng)字段就不亮。共陰數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極(com)的數(shù)碼管。共陰數(shù)碼管在應(yīng)用時應(yīng)將公共極com接到地線gnd上,當(dāng)某一字段發(fā)光二極管的陽極為高電平時,相應(yīng)字段就點亮。當(dāng)某一字段的陽極為低電平時,相應(yīng)字段就不亮8。如圖3.5.1 圖3.5.1 八段數(shù)碼管事物圖3.5.2數(shù)碼管驅(qū)動原理
17、 數(shù)碼管要正常顯示,就要用驅(qū)動電路來驅(qū)動數(shù)碼管的各個段碼,從而顯示出我們要的數(shù)字,在有些時候需要做一個簡單的顯示系統(tǒng)。那么在單片機i/o資源夠用的情況下可以直接用單片機的i/o口驅(qū)動數(shù)碼管,也可以根據(jù)數(shù)碼管的驅(qū)動方式的不同,可以分為靜態(tài)式和動態(tài)式兩類。(1)靜態(tài)顯示驅(qū)動:靜態(tài)驅(qū)動也稱直流驅(qū)動。靜態(tài)驅(qū)動是指每個數(shù)碼管的每一個段碼都由一個單片機的i/o端口進行驅(qū)動,或者使用如bcd碼二-十進制譯碼器譯碼進行驅(qū)動。靜態(tài)驅(qū)動的優(yōu)點是編程簡單,顯示亮度高,缺點是占用i/o端口多,如驅(qū)動5個數(shù)碼管靜態(tài)顯示則需要5840根i/o端口來驅(qū)動,要知道一個89s51單片機可用的i/o端口才32個呢),實際應(yīng)用時必
18、須增加譯碼驅(qū)動器進行驅(qū)動,增加了硬件電路的復(fù)雜性8。(2)動態(tài)顯示驅(qū)動:數(shù)碼管動態(tài)顯示接口是單片機中應(yīng)用最為廣泛的一種顯示方式之一,動態(tài)驅(qū)動是將所有數(shù)碼管的8個顯示筆劃a,b,c,d,e,f,g,dp的同名端連在一起,另外為每個數(shù)碼管的公共極com增加位選通控制電路,位選通由各自獨立的i/o線控制,當(dāng)單片機輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究竟是那個數(shù)碼管會顯示出字形,取決于單片機對位選通com端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮9。通過分時輪流控制各個數(shù)碼管的的com端,就使各個數(shù)碼管輪流受控顯示,這就是動態(tài)驅(qū)動
19、。在輪流顯示過程中,每位數(shù)碼管的點亮?xí)r間為12ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實際上各位數(shù)碼管并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感,動態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的i/o端口,而且功耗更低10。靜態(tài)驅(qū)動方式簡單不容易出錯,如果電路設(shè)計合適,也能夠用較少的線完成多個數(shù)碼管的驅(qū)動。但是動態(tài)驅(qū)動方式省單片機的資源,如今已經(jīng)有很多這樣成熟的基于動態(tài)掃描的芯片。所以能滿足本文顯示設(shè)計要求,采用lg3641bh led數(shù)碼管做為顯示電路,數(shù)碼管顯示電路采用4位共陽led數(shù)碼管從p14,p15,p16,p17串口輸出段碼。
20、4. 系統(tǒng)硬件電路設(shè)計4.1系統(tǒng)整體電路圖該系統(tǒng)電路主要包括:單片機最小系統(tǒng)、ds18b20溫度傳感器系統(tǒng)、報警系統(tǒng)、led顯示模塊電路及電源接口和數(shù)據(jù)下載接口等電路,如圖 4.1.1所示。圖中有三個獨立式按鍵可以分別調(diào)整溫度計的上下限報警設(shè)置,圖中蜂鳴器可以在被測溫度不在上下限范圍內(nèi)時,發(fā)出報警鳴叫聲音,同時led數(shù)碼管將沒有被測溫度值顯示,這時可以調(diào)整報警上下限,從而測出被測的溫度值。圖中的按健復(fù)位電路是上電復(fù)位加手動復(fù)位,使用比較方便,在程序跑飛時,可以手動復(fù)位,這樣就不用在重起單片機電源,就可以實現(xiàn)復(fù)位。 圖 4.1.1 系統(tǒng)整體電路圖4.2 單片機最小系統(tǒng)最小系統(tǒng)包括晶振電路、復(fù)位電
21、路、按鍵設(shè)置部分,at89s52單片機最小系統(tǒng)的電路如圖:4.2.1單片機at89s52具有低電壓供電和體積小等特點,四個端口只需要兩個口就能滿足電路系統(tǒng)的設(shè)計需要11,很適合便攜手持式產(chǎn)品的設(shè)計使用系統(tǒng)可用二節(jié)電池供電。 圖 4.2.1 單片機最小系統(tǒng)電路4.3 溫度傳感器系統(tǒng)ds18b20溫度傳感器電路,如圖 4.3.1。圖 4.3.1 ds18b20溫度傳感器系統(tǒng)ds18b20采用單線進行數(shù)據(jù)傳輸,外接一個4.7k上拉電阻與單片機的p10口相連進行數(shù)據(jù)的雙向傳輸12。4.3.1 ds18b20的測溫原理器件中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號送給減法計數(shù)
22、器1;高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變,所產(chǎn)生的信號作為減法計數(shù)器2的脈沖輸入。器件中還有一個計數(shù)門,當(dāng)計數(shù)門打開時,ds18b20就對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖進行計數(shù)進而完成溫度測量。計數(shù)門的開啟時間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將55所對應(yīng)的一個基數(shù)分別置入減法計數(shù)器1、溫度寄存器中,計數(shù)器1和溫度寄存器被預(yù)置在55所對應(yīng)的一個基數(shù)值。減法計數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行減法計數(shù),當(dāng)減法計數(shù)器1的預(yù)置值減到0時,溫度寄存器的值將加1,減法計數(shù)器1的預(yù)置將重新被裝入,減法計數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行計數(shù),如此循環(huán)直到減法計數(shù)器計數(shù)到
23、0時,停止溫度寄存器的累加,此時溫度寄存器中的數(shù)值就是所測溫度值。其輸出用于修正減法計數(shù)器的預(yù)置值,只要計數(shù)器門仍未關(guān)閉就重復(fù)上述過程,直到溫度寄存器值大致被測溫度值13。由表1可見,ds18b20溫度轉(zhuǎn)換的時間比較長,而且分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時間越長。因此,在實際應(yīng)用中要將分辨率和轉(zhuǎn)換時間權(quán)衡考慮。高速暫存ram的第6、7、8字節(jié)保留未用,表現(xiàn)為全邏輯1。第9字節(jié)讀出前面所有8字節(jié)的crc碼,可用來檢驗數(shù)據(jù),從而保證通信數(shù)據(jù)的正確性。當(dāng)ds18b20接收到溫度轉(zhuǎn)換命令后,開始啟動轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號擴展的二進制補碼形式存儲在高速暫存存儲器的第1、2字節(jié)。單片機
24、可以通過單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時低位在先,高位在后,數(shù)據(jù)格式以0.0625lsb形式表示。當(dāng)符號位s=0時,表示測得的溫度值為正值,可以直接將二進制位轉(zhuǎn)換為十進制;當(dāng)符號位s=1時,表示測得的溫度值為負(fù)值,要先將補碼變成原碼,再計算十進制數(shù)值。表2是一部分溫度值對應(yīng)的二進制溫度數(shù)據(jù)14。表1 ds18b20溫度轉(zhuǎn)換時間表r1r0分辨率/位溫度最大轉(zhuǎn)向時間/ms00993.750110187.510113751112750ds18b20完成溫度轉(zhuǎn)換后,就把測得的溫度值與ram中的th、tl字節(jié)內(nèi)容作比較。若tth或ttl,則將該器件內(nèi)的報警標(biāo)志位置位,并對主機發(fā)出的報警搜索命令作出響應(yīng)。因此
25、,可用多只ds18b20同時測量溫度并進行報警搜索。在64位rom的最高有效字節(jié)中存儲有循環(huán)冗余檢驗碼(crc)。主機rom的前56位來計算crc值,并和存入ds18b20的crc值作比較,以判斷主機收到的rom數(shù)據(jù)是否正確。表2一部分溫度對應(yīng)值表溫度/二進制表示十六進制表示+1250000 0111 1101 000007d0h+850000 0101 0101 00000550h+25.06250000 0001 1001 00000191h+10.1250000 0000 1010 000100a2h+0.50000 0000 0000 00100008h00000 0000 0000
26、10000000h-0.51111 1111 1111 0000fff8h-10.1251111 1111 0101 1110ff5eh-25.06251111 1110 0110 1111fe6fh-551111 1100 1001 0000fc90h4.4 報警電路設(shè)計報警電路中加一pnp三極管驅(qū)動,基極接單片機p11口,當(dāng)端口變成低電平時,驅(qū)動三極管會導(dǎo)通,vcc電壓加載到蜂鳴器使其發(fā)聲、報警發(fā)光二極管亮,如圖4.4.1。圖 4.4.1 報警電路4.5 顯示電路設(shè)計如圖4.5.1,采用lg3641bh led數(shù)碼管顯示電路采用4位共陽led數(shù)碼管從p14,p15,p16,p17串口輸出段
27、碼。用pnp三極管進行驅(qū)動,當(dāng)相應(yīng)的端口變成低電平時,驅(qū)動相應(yīng)的三極管會導(dǎo)通,驅(qū)動三極管給數(shù)碼管相應(yīng)的位供電,這時只要p0口送出數(shù)字的顯示代碼,數(shù)碼管就能正常顯示數(shù)字。圖 4.5.1 數(shù)碼管顯示電路4.6電源電路設(shè)計我們選用的是串聯(lián)起來的4節(jié)1.5v的5號電池,從經(jīng)濟的角度考慮的,干電池比較便宜,但其還有不足之處,干電池存儲的是電量。隨著電量的消耗,它的供電電壓就會不斷的下降,所有我們需要使用一個穩(wěn)壓器,來保證電源供給的是標(biāo)準(zhǔn)的5v電壓。4節(jié)1.5v串聯(lián)起來產(chǎn)生的和電壓最大是6v,而本文的at89s52單片機工作電壓的范圍是4v5.5v,在該系統(tǒng)中我們使用的電壓是5v。這時我們可以用lm780
28、5穩(wěn)壓器來產(chǎn)生穩(wěn)定的5v電壓15。穩(wěn)壓電路如下圖4.6.1所示:圖4.6.1 lm7805穩(wěn)壓電路在該電路中,c12是極性電容,起到穩(wěn)壓的作用,而c2是非極性電容,它起的作用是濾除輸出電壓中不是直流的成分,即濾波。lm7805穩(wěn)壓芯片的穩(wěn)壓壓差為2v左右,在實際使用中容易出現(xiàn)電壓過低的狀態(tài),此時提供的電源達(dá)不到系統(tǒng)的電源要求,會出現(xiàn)程序跑飛的現(xiàn)象,而另一款lm2904的穩(wěn)壓壓差可以達(dá)到40mv,效果比lm7805好很多,但考慮到經(jīng)濟原因我們采用lm7805,只要在穩(wěn)壓前端提供較大的電源供應(yīng)即可。5. 系統(tǒng)軟件設(shè)計系統(tǒng)程序主要包括主程序,讀出溫度子程序,溫度轉(zhuǎn)換命令子程序,計算溫度子程序,按鍵掃
29、描。5.1主程序主程序的主要功能是負(fù)責(zé)讀出并處理ds18b20的測量的當(dāng)前溫度值,溫度的實時顯示,并根據(jù)設(shè)置的上下限判斷是否報警。系統(tǒng)開始運行時,溫度傳感器測量并計算溫度值通過p1.0口傳輸進單片機里進行處理,經(jīng)過處理后的數(shù)據(jù)再通過p0口傳輸?shù)綌?shù)碼管進行顯示。通過按鍵設(shè)置溫度報警界限,當(dāng)超過報警界限時單片機將相應(yīng)的數(shù)據(jù)通過p1.1口傳輸進行聲光報警。溫度測量每1s進行一次。這樣可以在一秒之內(nèi)測量一次被測溫度,其程序流程見圖5.1.1所示。初始化調(diào)用溫度模塊程序ds18b20存在?是處理溫度值轉(zhuǎn)換bcd碼送at89s52處理按鍵掃描模塊顯示模塊,led顯示溫度是否越限?開始是報警否否錯誤處理,顯
30、示8.8.8.8.圖5.1.1 主程序流程圖5.2讀出溫度子程序讀出溫度子程序的主要功能是讀出ram中的9字節(jié),在讀出時需進行crc校驗,校驗有錯時不進行溫度數(shù)據(jù)的改寫。其程序流程圖如圖5.2.1示 開始發(fā)ds18b20復(fù)位命令發(fā)跳過rom命令發(fā)讀取溫度命令讀取操作,crc校驗結(jié)束nyyn移入溫度緩存器9字節(jié)完?crc校驗?圖5.2.1讀溫度流程圖5.3溫度轉(zhuǎn)換命令子程序溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命令,當(dāng)采用12位分辨率時轉(zhuǎn)換時間約為750ms,在本程序設(shè)計中采用1s顯示程序延時法等待轉(zhuǎn)換的完成16。溫度轉(zhuǎn)換命令子程序流程圖如上圖,圖5.3.1所示5.4 計算溫度子程序計算溫度子程
31、序?qū)am中讀取值進行bcd碼的轉(zhuǎn)換運算,并進行溫度值正負(fù)的判定,其程序流程圖如圖5.4.1所示。發(fā)ds18b20復(fù)位命令開始發(fā)跳過rom命令發(fā)溫度轉(zhuǎn)換開始命令結(jié)束圖 5.3.1 溫度轉(zhuǎn)換流程圖 開始溫度零下?溫度值取補碼置“”標(biāo)志計算小數(shù)位溫度bcd值 計算整數(shù)位溫度bcd值 結(jié)束置“+”標(biāo)志ny圖 5.4.1計算溫度流程圖5.4 鍵盤掃描流程圖開始enter_flag為1是否有up按下display顯示退出子程序(ret)返回主程序enter子程序flag=1down子程序否是是否否是否否是是enter按鍵是否按下是否有enter按下是否有down按下up子程序圖 5.4.1 按鍵掃描流程
32、圖6. 測試與結(jié)果分析6.1仿真軟件介紹本次仿真用了proteus軟件,proteus(海神)的isis是一款labcenter出品的電路分析實物仿真系統(tǒng),可仿真各種電路和ic,并支持單片機,元件庫齊全,使用方便,是不可多得的專業(yè)的單片機軟件仿真系統(tǒng)17。該軟件的特點:(1)全部滿足我們提出的單片機軟件仿真系統(tǒng)的標(biāo)準(zhǔn),并在同類產(chǎn)品中具有明顯的優(yōu)勢。(2)具有模擬電路仿真、數(shù)字電路仿真、單片機及其外圍電路組成的系統(tǒng)的仿真、rs一232動態(tài)仿真、1 c調(diào)試器、spi調(diào)試器、鍵盤和lcd系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號發(fā)生器等。(3)目前支持的單片機類型有:68000系列、
33、8051系列、avr系列、pic12系列、pic16系列、pic18系列、z80系列、hc11系列以及各種外圍芯片。(4)支持大量的存儲器和外圍芯片。總之該軟件是一款集單片機和spice分析于一身的仿真軟件,功能極其強大 ,可仿真51、avr、pic。proteus與其它單片機仿真軟件不同的是,它不僅能仿真單片機cpu的工作情況,也能仿真單片機外圍電路或沒有單片機參與的其它電路的工作情況。因此在仿真和程序調(diào)試時,關(guān)心的不再是某些語句執(zhí)行時單片機寄存器和存儲器內(nèi)容的改變,而是從工程的角度直接看程序運行和電路工作的過程和結(jié)果。對于這樣的仿真實驗,從某種意義上講,是彌補了實驗和工程應(yīng)用間脫節(jié)的矛盾和
34、現(xiàn)象18。程序編譯用keil軟件, keil c51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。6.2 仿真結(jié)果6.2.1 用keil進行程序編譯運用keil軟件編譯c語言程序,其結(jié)果如下圖6.2.1和圖6.2.2所示,在結(jié)果欄顯示“cao cx”0 error(s),0 warning(s).說明此程序在軟件編譯上無語法等錯誤。將此程序生成*.hex文件調(diào)入硬件中用proteus進行調(diào)試仿真。圖6.1.1 keil編譯c語言程序圖6.1.2 keil編譯c語言程序6.2.2 在proteus中仿真將生成的cao.hex文件調(diào)入p
35、roteus電路圖的單片機中,點擊圖左下角的開始鍵運行,程序的開始界面如圖6.2.1,數(shù)碼管顯示“ ”。圖6.2.1 仿真程序初始化程序初始化后通過調(diào)節(jié)ds18b20溫度傳感器的數(shù)值,數(shù)碼管會顯示相應(yīng)的數(shù)值,例如10,其結(jié)果如圖6.2.2所示。圖6.2.2 仿真程序正常運行結(jié)果在設(shè)置系統(tǒng)報警溫度上下限時,按下按鍵s1,數(shù)碼管會顯示“h38c”(系統(tǒng)默認(rèn)上限為38),此時進入溫度上限設(shè)置模式,可通過調(diào)節(jié)s2和s3分別增加和減小數(shù)碼管上顯示的數(shù)字,例如設(shè)置上限為39,如圖6.2.3所示。接著再次按下鍵s1,數(shù)碼管會顯示“l(fā)05c”(系統(tǒng)默認(rèn)下限為5),此時進入溫度下限設(shè)置模式,可通過調(diào)節(jié)s2和s3
36、分別增加和減小數(shù)碼管上顯示的數(shù)字,例如設(shè)置下限為5,如圖6.2.4所示。圖6.2.3 仿真設(shè)置最高溫度報警線圖6.2.4仿真設(shè)置溫度報警最低線當(dāng)溫度超過設(shè)置的上下限時,系統(tǒng)會進行聲光報警,蜂鳴器會發(fā)出“滴滴滴”蜂鳴聲,同時led燈會閃爍。當(dāng)系統(tǒng)未檢測的到ds18b20溫度傳感器或運行錯誤時,數(shù)碼管會顯示錯誤的數(shù)字“8.8.8.8”,如圖6.2.5所示。圖6.2.5 仿真程序出錯7. 總結(jié)與致謝做為對大學(xué)四年所學(xué)知識的總結(jié),通過本次的畢業(yè)論文設(shè)計,我學(xué)到了很多東西,同時在做的過程中也發(fā)現(xiàn)很多的問題,從最初的課題選擇到對相關(guān)課題資料的搜集與摘選,再到自己論文內(nèi)容的思路的設(shè)計、編寫以致最后階段的修改
37、與完善。在這一過程中,我對我們大學(xué)四年所學(xué)習(xí)的相關(guān)電子知識又有了更深一層的學(xué)習(xí)和理解,讓我對自己所學(xué)的又有了更深的掌握。雖然以前還做過這樣的設(shè)計但這次設(shè)計真的讓我長進了很多,單片機課程設(shè)計重點就在于軟件算法的設(shè)計,需要有很巧妙的程序算法,雖然以前寫過幾次程序,但我覺的寫好一個程序并不是一件簡單的事,舉個例子,以前寫的那幾次,數(shù)據(jù)加減時,我用的都是bcd碼,這一次,我全部用的都是16進制的數(shù)直接加減,顯示處理時在用除法去刪分,感覺效果比較好,有好多的東西,只有我們?nèi)ピ囍隽?,才能真正的掌握,只學(xué)習(xí)理論有些東西而不結(jié)合實踐是很難理解的,更談不上掌握。從這次的畢業(yè)設(shè)計中,我真真正正的意識到,在以后的
38、學(xué)習(xí)中,要理論聯(lián)系實際,把我們所學(xué)的理論知識用到實際當(dāng)中,學(xué)習(xí)單機片機更是如此,程序只有在經(jīng)常的寫與讀的過程中才能提高,這就是我在這次課程設(shè)計中的最大收獲。在此過程中,我也要感謝對我一直悉心指導(dǎo)和幫助的指導(dǎo)教師葉愛芹老師。正是在她不厭其煩的指導(dǎo)和對我們的啟發(fā)中,讓我對我的論文設(shè)計思路逐漸清晰明朗,每當(dāng)在我論文設(shè)計中遇到困難時充滿希望,總能迎刃而解,總之非常感謝她這段時間對我們的鼓勵和指導(dǎo)。參考文獻(xiàn):1 李朝青.單片機原理及接口技術(shù)(簡明修訂版).杭州:北京航空航天大學(xué)出版社,19982 李廣弟.單片機基礎(chǔ).北京:北京航空航天大學(xué)出版社,19943 江力.單片機原理與應(yīng)用技術(shù) .清華大學(xué)出版社
39、.20064 蔡美琴等mcs一51系列單片機系統(tǒng)及其應(yīng)用m北京:高等教育出版社,19995 王樹勛mcs一51單片微型計算機原理與開發(fā)北京:機械工業(yè)出版社,19956 何希才傳感器及其應(yīng)用電路北京:電子工業(yè)出版社,20017 劉迎春、葉湘濱傳感器原理設(shè)計與應(yīng)用(第三版) m長沙:國防科技大學(xué)出版社,19978 靳達(dá).單片機應(yīng)用系統(tǒng)開發(fā)實例導(dǎo)航.北京:人民郵電出版社,2003. 9 潘新民,王燕芳.微型計算機實用系統(tǒng)設(shè)計m.北京:人民郵電出版社,1992.10 胡漢才單片機原理及接口技術(shù)北京:清華大學(xué)出版社,199611 何力民mcs一51系列單片機應(yīng)用系統(tǒng)設(shè)計北京:北京航空航天大學(xué)出版社,19
40、9312 江曉安.等數(shù)字電子技術(shù) . 編著. 西安電子科技大學(xué)出版社 .199313 閻石.數(shù)字電子技術(shù)基礎(chǔ)(第三版). 北京:高等教育出版社,198914 廖常初.現(xiàn)場總線概述j.電工技術(shù),1999.15 靳達(dá).單片機典型模塊設(shè)計實例導(dǎo)航.北京:人民郵電出版社,2003.16 王松武,于鑫,武思軍.電子創(chuàng)新設(shè)計與實踐.北京:國防工業(yè)出版社,200517 artori s,zhang g x. geometric error measurement and compensation of machines.annals of the cirp. 199518 bolton w. instrum
41、entation&process measurement. longman scientific&technical. 1991英文摘要:digital temperature display alarming systemabstract: along with the progress of the times and development, technology has spread to our life, work, scientific research, each domain, has become a more mature technology, this paper i
42、ntroduces a method based on single-chip microcomputer control, the digital thermometer at89s52 scm design using a digital thermometer, it by mcu, led digital sensors and ds18b20 pipe etc components, this thermometer belongs to the multi-function thermometer, function, can install strong upper temper
43、ature, and the measurement accuracy alarm and small error. when measuring temperature exceeds the upper limit set temperature, light buzzer and alarm.keywords: scm at89s52; thermometer; ds18b20; temperature display附錄:源程序/*程序名稱:ds18b20溫度測量、報警系統(tǒng)簡要說明:ds18b20溫度計,溫度測量范圍099.9攝氏度 可設(shè)置上限報警溫度、下限報警溫度 即高于上限值或者低
44、于下限值時蜂鳴器報警 默認(rèn)上限報警溫度為38、默認(rèn)下限報警溫度為5 報警值可設(shè)置范圍:最低上限報警值等于當(dāng)前下限報警值 最高下限報警值等于當(dāng)前上限報警值 將下限報警值調(diào)為0時為關(guān)閉下限報警功能 */#include #include ds18b20.h #define uint unsigned int#define uchar unsigned char /宏定義#define set p3_1 /定義調(diào)整鍵#define dec p3_2 /定義減少鍵#define add p3_3 /定義增加鍵#define beep p3_7 /定義蜂鳴器bit shanshuo_st; /閃爍間隔標(biāo)
45、志bit beep_st; /蜂鳴器間隔標(biāo)志sbit dian = p27; /小數(shù)點uchar x=0; /計數(shù)器signed char m; /溫度值全局變量uchar n; /溫度值全局變量uchar set_st=0; /狀態(tài)標(biāo)志signed char shangxian=38; /上限報警溫度,默認(rèn)值為38signed char xiaxian=5; /下限報警溫度,默認(rèn)值為5uchar code leddata=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff;/*延時子程序*/void delay(uint num) w
46、hile( -num );/*初始化定時器0*/void inittimer(void) tmod=0x1; th0=0x3c; tl0=0xb0; /50ms(晶振12m)/*定時器0中斷服務(wù)程序*/void timer0(void) interrupt 1 th0=0x3c; tl0=0xb0; x+;/*外部中斷0服務(wù)程序*/void int0(void) interrupt 0 ex0=0; /關(guān)外部中斷0 if(dec=0&set_st=1) shangxian-; if(shangxianxiaxian)shangxian=xiaxian; else if(dec=0&set_st
47、=2) xiaxian-; if(xiaxian99)shangxian=99; else if(add=0&set_st=2) xiaxian+; if(xiaxianshangxian)xiaxian=shangxian; /*讀取溫度*/void check_wendu(void) uint a,b,c; c=readtemperature()-5; /獲取溫度值并減去ds18b20的溫漂誤差 a=c/100; /計算得到十位數(shù)字 b=c/10-a*10; /計算得到個位數(shù)字 m=c/10; /計算得到整數(shù)位 n=c-a*100-b*10; /計算得到小數(shù)位 if(m99)m=99;n=
48、9; /設(shè)置溫度顯示上限 /*顯示開機初始化等待畫面*/disp_init() p2 = 0xbf; /顯示- p1 = 0xf7; delay(200); p1 = 0xfb; delay(200); p1 = 0xfd; delay(200); p1 = 0xfe; delay(200); p1 = 0xff; /關(guān)閉顯示/*顯示溫度子程序*/disp_temperature() /顯示溫度 p2 =0xc6; /顯示c p1 = 0xf7; delay(300); p2 =leddatan; /顯示個位 p1 = 0xfb; delay(300); p2 =leddatam%10; /顯
49、示十位 dian = 0; /顯示小數(shù)點 p1 = 0xfd; delay(300); p2 =leddatam/10; /顯示百位 p1 = 0xfe; delay(300); p1 = 0xff; /關(guān)閉顯示/*顯示報警溫度子程序*/disp_alarm(uchar baojing) p2 =0xc6; /顯示c p1 = 0xf7; delay(200); p2 =leddatabaojing%10; /顯示十位 p1 = 0xfb; delay(200); p2 =leddatabaojing/10; /顯示百位 p1 = 0xfd; delay(200); if(set_st=1)p2 =0x89; else if(set_st=2)p2 =0xc7; /上限h、下限l標(biāo)示 p1 = 0xfe; delay(200); p1 = 0xff; /關(guān)閉顯示/*報警子程序*/void alarm() if(x=10)beep_st=beep_st;x=0;
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年公有房產(chǎn)租賃權(quán)續(xù)租協(xié)議格式
- 2025年農(nóng)村豪華住宅贈與協(xié)議
- 2025年企業(yè)個體合作協(xié)議樣本
- 2025年二手車購買合同電子版變更協(xié)議
- 2025年二手車買賣合同協(xié)議規(guī)范
- 2025年企業(yè)發(fā)展規(guī)劃合同
- 2025年汽車維修策劃質(zhì)量保障標(biāo)準(zhǔn)協(xié)議
- 2025年農(nóng)村社會養(yǎng)老保險合同模板
- 2025年大型活動食堂供餐合同
- 2025年古建筑群保護維修合同樣本
- 長江委水文局2025年校園招聘17人歷年高頻重點提升(共500題)附帶答案詳解
- 2025年湖南韶山干部學(xué)院公開招聘15人歷年高頻重點提升(共500題)附帶答案詳解
- 廣東省廣州市番禺區(qū)2023-2024學(xué)年七年級上學(xué)期期末數(shù)學(xué)試題
- 不可切除肺癌放療聯(lián)合免疫治療專家共識(2024年版)j解讀
- DB23/T 3657-2023醫(yī)養(yǎng)結(jié)合機構(gòu)服務(wù)質(zhì)量評價規(guī)范
- 教科版科學(xué)六年級下冊14《設(shè)計塔臺模型》課件
- 智研咨詢發(fā)布:2024年中國MVR蒸汽機械行業(yè)市場全景調(diào)查及投資前景預(yù)測報告
- 法規(guī)解讀丨2024新版《突發(fā)事件應(yīng)對法》及其應(yīng)用案例
- JGJ46-2024 建筑與市政工程施工現(xiàn)場臨時用電安全技術(shù)標(biāo)準(zhǔn)
- 煙花爆竹重大危險源辨識AQ 4131-2023知識培訓(xùn)
- 企業(yè)動火作業(yè)安全管理制度范文
評論
0/150
提交評論