




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、工 學(xué) 院 畢 業(yè) 設(shè) 計(jì)( 論 文 )題 目: 數(shù)字溫度顯示報(bào)警系統(tǒng) 專 業(yè): 電子信息工程 班 級(jí): 06(2)班 姓 名: 曹乾坤 學(xué) 號(hào): 2006654212 指導(dǎo)教師: 葉愛(ài)芹 日 期: 2010年6月5日 目 錄引言22. 設(shè)計(jì)要求22.1基本功能22.2擴(kuò)展功能23. 總體設(shè)計(jì)方案33.1數(shù)字溫度計(jì)設(shè)計(jì)方案論證33.1.1 方案一33.1.2 方案二33.2 總體設(shè)計(jì)框圖33.3單片機(jī)的選擇33.4 溫度傳感器的選擇53.4.1 ds18b20的介紹53.5 顯示模塊選擇73.5.1數(shù)碼管的分類83.5.2數(shù)碼管驅(qū)動(dòng)原理84. 系統(tǒng)硬件電路設(shè)計(jì)94.1系統(tǒng)整體電路圖94.2 單
2、片機(jī)最小系統(tǒng)104.3 溫度傳感器系統(tǒng)104.3.1 ds18b20的測(cè)溫原理114.4 報(bào)警電路設(shè)計(jì)124.5 顯示電路設(shè)計(jì)124.6電源電路設(shè)計(jì)135. 系統(tǒng)軟件設(shè)計(jì)145.1主程序145.2讀出溫度子程序155.3溫度轉(zhuǎn)換命令子程序155.4 計(jì)算溫度子程序155.4 鍵盤(pán)掃描流程圖176. 測(cè)試與結(jié)果分析176.1仿真軟件介紹176.2 仿真結(jié)果186.2.1 用keil進(jìn)行程序編譯186.2.2 在proteus中仿真197. 總結(jié)與致謝22參考文獻(xiàn):23英文摘要:24附錄:源程序25數(shù)字溫度顯示報(bào)警系統(tǒng)摘要:隨著時(shí)代的進(jìn)步和發(fā)展,單片機(jī)技術(shù)已經(jīng)普及到我們生活,工作,科研,各個(gè)領(lǐng)域,
3、已經(jīng)成為一種比較成熟的技術(shù),本文將介紹一種基于單片機(jī)控制的數(shù)字溫度計(jì),利用單片機(jī)at89s52設(shè)計(jì)了一種數(shù)字溫度計(jì),它由單片機(jī)、ds18b20傳感器以及l(fā)ed 數(shù)碼管等部件組成,本溫度計(jì)屬于多功能溫度計(jì),功能較強(qiáng),可以設(shè)置上下限報(bào)警溫度,且測(cè)量準(zhǔn)確、誤差小。當(dāng)測(cè)量溫度超過(guò)設(shè)定的溫度上下限時(shí),啟動(dòng)蜂鳴器和指示燈報(bào)警。 關(guān)鍵詞:?jiǎn)纹瑱C(jī)at89s52;溫度計(jì);ds18b20;溫度顯示引言溫度是工業(yè)控制中主要的被控參數(shù)之一,特別是在冶金、化工、建材、食品、機(jī)械、石油等工業(yè)中,具有舉足重輕的作用。對(duì)于不同場(chǎng)所、不同工藝、所需溫度高低范圍不同、精度不同,則采用的測(cè)溫元件、測(cè)溫方法以及對(duì)溫度的控制方法也將不
4、同;產(chǎn)品工藝不同、控制溫度的精度不同、時(shí)效不同,則對(duì)數(shù)據(jù)采集的精度和采用的控制算法也不同,因而,對(duì)溫度的測(cè)控方法多種多樣。隨著電子技術(shù)和微型計(jì)算機(jī)的迅速發(fā)展,微機(jī)測(cè)量和控制技術(shù)也得到了迅速的發(fā)展和廣泛的應(yīng)用1。利用微機(jī)對(duì)溫度進(jìn)行測(cè)控的技術(shù),也便隨之而生,并得到日益發(fā)展和完善,越來(lái)越顯示出其優(yōu)越性。隨著人們生活水平的不斷提高,單片機(jī)控制無(wú)疑是人們追求的目標(biāo)之一,它所給人帶來(lái)的方便也是不可否定的,其中數(shù)字溫度計(jì)就是一個(gè)典型的例子,但人們對(duì)它的要求越來(lái)越高,要為現(xiàn)代人工作、科研、生活、提供更好的更方便的設(shè)施就需要從數(shù)單片機(jī)技術(shù)入手,一切向著數(shù)字化控制,智能化控制方向發(fā)展2。本設(shè)計(jì)即用單片機(jī)對(duì)溫度進(jìn)行
5、實(shí)時(shí)檢測(cè)與控制,本文所介紹的數(shù)字溫度計(jì)與傳統(tǒng)的溫度計(jì)相比,具有讀數(shù)方便,測(cè)溫范圍廣,測(cè)溫準(zhǔn)確,其輸出溫度采用數(shù)字顯示,主要用于對(duì)測(cè)溫比較準(zhǔn)確的場(chǎng)所,或科研實(shí)驗(yàn)室使用,該設(shè)計(jì)控制器使用單片機(jī)at89s52,測(cè)溫傳感器使用ds18b20,用4位共陽(yáng)極led數(shù)碼管以串口傳送數(shù)據(jù),實(shí)現(xiàn)溫度顯示,能準(zhǔn)確達(dá)到設(shè)計(jì)要求。本溫度計(jì)屬于多功能溫度計(jì),功能較強(qiáng),可以設(shè)置上下限報(bào)警溫度,且測(cè)量準(zhǔn)確、誤差小。當(dāng)測(cè)量溫度超過(guò)設(shè)定的溫度上下限時(shí),啟動(dòng)蜂鳴器和指示燈報(bào)警。2. 設(shè)計(jì)要求2.1基本功能 基本范圍0-99 精度誤差小于0.5 led數(shù)碼直讀顯示2.2擴(kuò)展功能 實(shí)現(xiàn)聲光報(bào)警 可以任意設(shè)定溫度的上下限報(bào)警功能3.
6、總體設(shè)計(jì)方案3.1數(shù)字溫度計(jì)設(shè)計(jì)方案論證3.1.1 方案一由于本設(shè)計(jì)是測(cè)溫電路,根據(jù)設(shè)計(jì)要求可以使用熱敏電阻之類的感溫器件利用其感溫效應(yīng),然后將隨被測(cè)溫度變化的電壓或電流采集過(guò)來(lái),經(jīng)過(guò)a/d轉(zhuǎn)換后,將數(shù)據(jù)傳輸?shù)絾纹瑱C(jī)進(jìn)行數(shù)據(jù)的處理,然后在顯示電路上顯示,這樣就可以將被測(cè)溫度顯示出來(lái),這種設(shè)計(jì)需要用到a/d轉(zhuǎn)換電路,感溫電路比較麻煩。3.1.2 方案二 在單片機(jī)電路設(shè)計(jì)中,大多都是使用傳感器,這是非常容易想到利用數(shù)字溫度傳感器,所以可以采用一只溫度傳感器ds18b20,此傳感器,可以很容易直接讀取被測(cè)溫度值,進(jìn)行轉(zhuǎn)換,然后傳輸給單片機(jī)進(jìn)行數(shù)據(jù)處理,就可以滿足設(shè)計(jì)要求。從以上兩種方案,很容易看出,
7、采用方案二,電路設(shè)計(jì)比較簡(jiǎn)潔,軟件設(shè)計(jì)也比較簡(jiǎn)單,故采用方案二。3.2 總體設(shè)計(jì)框圖溫度計(jì)電路設(shè)計(jì)總體設(shè)計(jì)方框圖如圖3.2.1所示,控制器采用單片機(jī)at89s52,溫度傳感器采用ds18b20,用4位led數(shù)碼管以串口傳送數(shù)據(jù)實(shí)現(xiàn)溫度顯示。led顯 示主 控 制 器單片機(jī)復(fù)位報(bào)警點(diǎn)按鍵蜂鳴器報(bào)警ds18b20傳感器圖3.2.1總體設(shè)計(jì)方框圖3.3單片機(jī)的選擇方案一:選擇microchip公司的pic系列單片機(jī)作為世界上最為頂尖的單片機(jī)研發(fā)與生產(chǎn)企業(yè),微芯公司設(shè)計(jì)的pic系列單片機(jī)一度風(fēng)靡全球,其優(yōu)秀的性能和卓越的品質(zhì)受到了許多人的青睞,其優(yōu)點(diǎn)毋庸贅述。但是,高知名度的缺點(diǎn)也顯而易見(jiàn),價(jià)格昂貴,
8、性價(jià)比不高是其軟肋3。方案二:選擇德州儀器的msp430系列單片機(jī)msp430單片機(jī)是一個(gè) 16 位的、具有精簡(jiǎn)指令集的混合型單片機(jī),它具有極低的功耗、豐富的片內(nèi)外設(shè)和方便靈活的開(kāi)發(fā)手段。但是,由于msp430單片機(jī)系列價(jià)格較高,比較適合于較為復(fù)雜的應(yīng)用系統(tǒng)4。方案三:選擇atmel公司的at89s52單片機(jī)at89s52單片機(jī)是一個(gè)低功耗,高性能cmos 8位單片機(jī),片內(nèi)含8k bytes isp(in-system programmable)的可反復(fù)擦寫(xiě)1000次的flash只讀程序存儲(chǔ)器,器件采用atmel公司的高密度、非易失性存儲(chǔ)技術(shù)制造,兼容標(biāo)準(zhǔn)mcs-51指令系統(tǒng)及80c51引腳結(jié)
9、構(gòu),芯片內(nèi)集成了通用8位中央處理器和isp flash存儲(chǔ)單元,片上flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于 常規(guī)編程器,在功能強(qiáng)大的微型計(jì)算機(jī)的at89s52單芯片上,擁有靈巧的8 位cpu 和在系統(tǒng)可編程flash,使得at89s52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價(jià)比的解決方案5。at89s52引腳結(jié)構(gòu)圖如圖3.3.1:圖3.3.1 at89s52結(jié)構(gòu)圖at89s52 實(shí)物圖如圖3.3.2:圖 3.3.2 at89s52 實(shí)物圖基于對(duì)成本和性能的比較,我們選擇at89s52單片機(jī)。3.4 溫度傳感器的選擇3.4.1 ds18b20
10、的介紹溫度傳感器的種類眾多,在應(yīng)用與高精度、高可靠性的場(chǎng)合時(shí) dallas(達(dá)拉斯)公司生產(chǎn)的 ds18b20 溫度傳感器當(dāng)仁不讓。超小的體積,超低的硬件開(kāi)消,抗干擾能力強(qiáng),精度高,附加功能強(qiáng),使得 ds18b20 更受歡迎。ds18b20 的主要特征: 全數(shù)字溫度轉(zhuǎn)換及輸出; 最高 12 位分辨率,精度可達(dá)土 0.5攝氏度; 12 位分辨率時(shí)的最大工作周期為 750 毫秒; 可選擇寄生工作方式; 檢測(cè)溫度范圍為55c+125c (67f +257f); 內(nèi)置 eeprom,限溫報(bào)警功能。用戶可定義報(bào)警設(shè)置 ; 64 位光刻 rom,內(nèi)置產(chǎn)品序列號(hào),方便多機(jī)掛接; 多樣封裝形式,適應(yīng)不同硬件系
11、統(tǒng); 獨(dú)特的單線接口僅需要一個(gè)端口引腳進(jìn)行通信; 多個(gè)ds18b20 可以并聯(lián)在惟一的三線上,實(shí)現(xiàn)多點(diǎn)組網(wǎng)功能; 無(wú)須外部器件; 可通過(guò)數(shù)據(jù)線供電,電壓范圍為3.05.5v; 零待機(jī)功耗; 溫度以9 或12 位數(shù)字; 報(bào)警搜索命令識(shí)別并標(biāo)志超過(guò)程序限定溫度(溫度報(bào)警條件)的器件; 負(fù)電壓特性,電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,但不能正常工作;ds18b20它有64 位rom 的結(jié)構(gòu)開(kāi)始8 位是產(chǎn)品類型的編號(hào),接著是每個(gè)器件的惟一的序號(hào),共有48 位,最后8 位是前面56位的crc 檢驗(yàn)碼,這也是多個(gè)ds18b20 可以采用一線進(jìn)行通信的原因。溫度報(bào)警觸發(fā)器th 和tl,可通過(guò)軟件寫(xiě)入戶報(bào)
12、警上下限6。另外,由于ds18b20 單線通信功能是分時(shí)完成的,它有嚴(yán)格的時(shí)隙概念,因此讀寫(xiě)時(shí)序很重要。系統(tǒng)對(duì)ds18b20 的各種操作按協(xié)議進(jìn)行。操作協(xié)議為:初始化ds18b20(發(fā)復(fù)位脈沖)發(fā)rom 功能命令發(fā)存儲(chǔ)器操作命令處理數(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和單線接口高速緩存存儲(chǔ)器與控制邏輯溫度傳感器高溫觸發(fā)器th低溫觸發(fā)器tl配置寄存器8位crc發(fā)生器vdd圖 3.4.2 ds18b20內(nèi)部結(jié)構(gòu)框ds18b20 工作原
13、理 ds18b20 的溫度檢測(cè)與數(shù)字?jǐn)?shù)據(jù)輸出全集成于一個(gè)芯片之上,從而抗干擾力更強(qiáng)。其一個(gè)工作周期可分為兩個(gè)部分,即溫度檢測(cè)和數(shù)據(jù)處理。在講解其工作流程之前我們有必要了解18b20的內(nèi)部存儲(chǔ)器資源。ds18b20 共有三種形態(tài)的存儲(chǔ)器資源,它們分別是: rom 只讀存儲(chǔ)器,用于存放 ds18b20id 編碼,其前 8 位是單線系列編碼(ds18b20 的編碼是19h),后面48 位是芯片唯一的序列號(hào),最后 8位是以上 56的位的 crc碼(冗余校驗(yàn))。數(shù)據(jù)在出產(chǎn)時(shí)設(shè)置不由用戶更改。ds18b20 共 64 位 rom。 ram 數(shù)據(jù)暫存器,用于內(nèi)部計(jì)算和數(shù)據(jù)存取,數(shù)據(jù)在掉電后丟失,ds18b2
14、0 共9 個(gè)字節(jié) ram,每個(gè)字節(jié)為 8 位。第1、2 個(gè)字節(jié)是溫度轉(zhuǎn)換后的數(shù)據(jù)值信息,第 3、4 個(gè)字節(jié)是用戶 eeprom(常用于溫度報(bào)警值儲(chǔ)存)的鏡像。在上電復(fù)位時(shí)其值將被刷新。第 5 個(gè)字節(jié)則是用戶第 3 個(gè) eeprom的鏡像。第 6、7、8 個(gè)字節(jié)為計(jì)數(shù)寄存器,是為了讓用戶得到更高的溫度分辨率而設(shè)計(jì)的,同樣也是內(nèi)部溫度轉(zhuǎn)換、計(jì)算的暫存單元。第 9 個(gè)字節(jié)為前 8個(gè)字節(jié)的 crc碼。eeprom 非易失性記憶體,用于存放長(zhǎng)期需要保存的數(shù)據(jù),上下限溫度報(bào)警值和校驗(yàn)數(shù)據(jù),ds18b20共3位eeprom,并在 ram 都存在鏡像,以方便用戶操作7。ds18b20工作時(shí)寄存器中的分辨率轉(zhuǎn)換
15、為相應(yīng)精度的溫度數(shù)值。該字節(jié)各位的定義如圖3.4.3所示。低5位一直為,tm是工作模式位,用于設(shè)置ds18b20在工作模式還是在測(cè)試模式,ds18b20出廠時(shí)該位被設(shè)置為0,用戶要去改動(dòng),r1和r0決定溫度轉(zhuǎn)換的精度位數(shù),來(lái)設(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ù)碼管多一個(gè)發(fā)光二極管單元(多一個(gè)小數(shù)點(diǎn)顯示);按能顯示多少個(gè)“8”可分為1
16、位、2位、4位等等數(shù)碼管;按發(fā)光二極管單元連接方式分為共陽(yáng)極數(shù)碼管和共陰極數(shù)碼管。共陽(yáng)數(shù)碼管是指將所有發(fā)光二極管的陽(yáng)極接到一起形成公共陽(yáng)極(com)的數(shù)碼管。共陽(yáng)數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極com接到+5v,當(dāng)某一字段發(fā)光二極管的陰極為低電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陰極為高電平時(shí),相應(yīng)字段就不亮。共陰數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極(com)的數(shù)碼管。共陰數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極com接到地線gnd上,當(dāng)某一字段發(fā)光二極管的陽(yáng)極為高電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陽(yáng)極為低電平時(shí),相應(yīng)字段就不亮8。如圖3.5.1 圖3.5.1 八段數(shù)碼管事物圖3.5.2數(shù)碼管驅(qū)動(dòng)原理
17、 數(shù)碼管要正常顯示,就要用驅(qū)動(dòng)電路來(lái)驅(qū)動(dòng)數(shù)碼管的各個(gè)段碼,從而顯示出我們要的數(shù)字,在有些時(shí)候需要做一個(gè)簡(jiǎn)單的顯示系統(tǒng)。那么在單片機(jī)i/o資源夠用的情況下可以直接用單片機(jī)的i/o口驅(qū)動(dòng)數(shù)碼管,也可以根據(jù)數(shù)碼管的驅(qū)動(dòng)方式的不同,可以分為靜態(tài)式和動(dòng)態(tài)式兩類。(1)靜態(tài)顯示驅(qū)動(dòng):靜態(tài)驅(qū)動(dòng)也稱直流驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)是指每個(gè)數(shù)碼管的每一個(gè)段碼都由一個(gè)單片機(jī)的i/o端口進(jìn)行驅(qū)動(dòng),或者使用如bcd碼二-十進(jìn)制譯碼器譯碼進(jìn)行驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)的優(yōu)點(diǎn)是編程簡(jiǎn)單,顯示亮度高,缺點(diǎn)是占用i/o端口多,如驅(qū)動(dòng)5個(gè)數(shù)碼管靜態(tài)顯示則需要5840根i/o端口來(lái)驅(qū)動(dòng),要知道一個(gè)89s51單片機(jī)可用的i/o端口才32個(gè)呢),實(shí)際應(yīng)用時(shí)必
18、須增加譯碼驅(qū)動(dòng)器進(jìn)行驅(qū)動(dòng),增加了硬件電路的復(fù)雜性8。(2)動(dòng)態(tài)顯示驅(qū)動(dòng):數(shù)碼管動(dòng)態(tài)顯示接口是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式之一,動(dòng)態(tài)驅(qū)動(dòng)是將所有數(shù)碼管的8個(gè)顯示筆劃a,b,c,d,e,f,g,dp的同名端連在一起,另外為每個(gè)數(shù)碼管的公共極com增加位選通控制電路,位選通由各自獨(dú)立的i/o線控制,當(dāng)單片機(jī)輸出字形碼時(shí),所有數(shù)碼管都接收到相同的字形碼,但究竟是那個(gè)數(shù)碼管會(huì)顯示出字形,取決于單片機(jī)對(duì)位選通com端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開(kāi),該位就顯示出字形,沒(méi)有選通的數(shù)碼管就不會(huì)亮9。通過(guò)分時(shí)輪流控制各個(gè)數(shù)碼管的的com端,就使各個(gè)數(shù)碼管輪流受控顯示,這就是動(dòng)態(tài)驅(qū)動(dòng)
19、。在輪流顯示過(guò)程中,每位數(shù)碼管的點(diǎn)亮?xí)r間為12ms,由于人的視覺(jué)暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位數(shù)碼管并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會(huì)有閃爍感,動(dòng)態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的i/o端口,而且功耗更低10。靜態(tài)驅(qū)動(dòng)方式簡(jiǎn)單不容易出錯(cuò),如果電路設(shè)計(jì)合適,也能夠用較少的線完成多個(gè)數(shù)碼管的驅(qū)動(dòng)。但是動(dòng)態(tài)驅(qū)動(dòng)方式省單片機(jī)的資源,如今已經(jīng)有很多這樣成熟的基于動(dòng)態(tài)掃描的芯片。所以能滿足本文顯示設(shè)計(jì)要求,采用lg3641bh led數(shù)碼管做為顯示電路,數(shù)碼管顯示電路采用4位共陽(yáng)led數(shù)碼管從p14,p15,p16,p17串口輸出段碼。
20、4. 系統(tǒng)硬件電路設(shè)計(jì)4.1系統(tǒng)整體電路圖該系統(tǒng)電路主要包括:?jiǎn)纹瑱C(jī)最小系統(tǒng)、ds18b20溫度傳感器系統(tǒng)、報(bào)警系統(tǒng)、led顯示模塊電路及電源接口和數(shù)據(jù)下載接口等電路,如圖 4.1.1所示。圖中有三個(gè)獨(dú)立式按鍵可以分別調(diào)整溫度計(jì)的上下限報(bào)警設(shè)置,圖中蜂鳴器可以在被測(cè)溫度不在上下限范圍內(nèi)時(shí),發(fā)出報(bào)警鳴叫聲音,同時(shí)led數(shù)碼管將沒(méi)有被測(cè)溫度值顯示,這時(shí)可以調(diào)整報(bào)警上下限,從而測(cè)出被測(cè)的溫度值。圖中的按健復(fù)位電路是上電復(fù)位加手動(dòng)復(fù)位,使用比較方便,在程序跑飛時(shí),可以手動(dòng)復(fù)位,這樣就不用在重起單片機(jī)電源,就可以實(shí)現(xiàn)復(fù)位。 圖 4.1.1 系統(tǒng)整體電路圖4.2 單片機(jī)最小系統(tǒng)最小系統(tǒng)包括晶振電路、復(fù)位電
21、路、按鍵設(shè)置部分,at89s52單片機(jī)最小系統(tǒng)的電路如圖:4.2.1單片機(jī)at89s52具有低電壓供電和體積小等特點(diǎn),四個(gè)端口只需要兩個(gè)口就能滿足電路系統(tǒng)的設(shè)計(jì)需要11,很適合便攜手持式產(chǎn)品的設(shè)計(jì)使用系統(tǒng)可用二節(jié)電池供電。 圖 4.2.1 單片機(jī)最小系統(tǒng)電路4.3 溫度傳感器系統(tǒng)ds18b20溫度傳感器電路,如圖 4.3.1。圖 4.3.1 ds18b20溫度傳感器系統(tǒng)ds18b20采用單線進(jìn)行數(shù)據(jù)傳輸,外接一個(gè)4.7k上拉電阻與單片機(jī)的p10口相連進(jìn)行數(shù)據(jù)的雙向傳輸12。4.3.1 ds18b20的測(cè)溫原理器件中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給減法計(jì)數(shù)
22、器1;高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變,所產(chǎn)生的信號(hào)作為減法計(jì)數(shù)器2的脈沖輸入。器件中還有一個(gè)計(jì)數(shù)門(mén),當(dāng)計(jì)數(shù)門(mén)打開(kāi)時(shí),ds18b20就對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖進(jìn)行計(jì)數(shù)進(jìn)而完成溫度測(cè)量。計(jì)數(shù)門(mén)的開(kāi)啟時(shí)間由高溫度系數(shù)振蕩器來(lái)決定,每次測(cè)量前,首先將55所對(duì)應(yīng)的一個(gè)基數(shù)分別置入減法計(jì)數(shù)器1、溫度寄存器中,計(jì)數(shù)器1和溫度寄存器被預(yù)置在55所對(duì)應(yīng)的一個(gè)基數(shù)值。減法計(jì)數(shù)器1對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)減法計(jì)數(shù)器1的預(yù)置值減到0時(shí),溫度寄存器的值將加1,減法計(jì)數(shù)器1的預(yù)置將重新被裝入,減法計(jì)數(shù)器1重新開(kāi)始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到減法計(jì)數(shù)器計(jì)數(shù)到
23、0時(shí),停止溫度寄存器的累加,此時(shí)溫度寄存器中的數(shù)值就是所測(cè)溫度值。其輸出用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)器門(mén)仍未關(guān)閉就重復(fù)上述過(guò)程,直到溫度寄存器值大致被測(cè)溫度值13。由表1可見(jiàn),ds18b20溫度轉(zhuǎn)換的時(shí)間比較長(zhǎng),而且分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時(shí)間越長(zhǎng)。因此,在實(shí)際應(yīng)用中要將分辨率和轉(zhuǎn)換時(shí)間權(quán)衡考慮。高速暫存ram的第6、7、8字節(jié)保留未用,表現(xiàn)為全邏輯1。第9字節(jié)讀出前面所有8字節(jié)的crc碼,可用來(lái)檢驗(yàn)數(shù)據(jù),從而保證通信數(shù)據(jù)的正確性。當(dāng)ds18b20接收到溫度轉(zhuǎn)換命令后,開(kāi)始啟動(dòng)轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲(chǔ)在高速暫存存儲(chǔ)器的第1、2字節(jié)。單片機(jī)
24、可以通過(guò)單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時(shí)低位在先,高位在后,數(shù)據(jù)格式以0.0625lsb形式表示。當(dāng)符號(hào)位s=0時(shí),表示測(cè)得的溫度值為正值,可以直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)符號(hào)位s=1時(shí),表示測(cè)得的溫度值為負(fù)值,要先將補(bǔ)碼變成原碼,再計(jì)算十進(jìn)制數(shù)值。表2是一部分溫度值對(duì)應(yīng)的二進(jìn)制溫度數(shù)據(jù)14。表1 ds18b20溫度轉(zhuǎn)換時(shí)間表r1r0分辨率/位溫度最大轉(zhuǎn)向時(shí)間/ms00993.750110187.510113751112750ds18b20完成溫度轉(zhuǎn)換后,就把測(cè)得的溫度值與ram中的th、tl字節(jié)內(nèi)容作比較。若tth或ttl,則將該器件內(nèi)的報(bào)警標(biāo)志位置位,并對(duì)主機(jī)發(fā)出的報(bào)警搜索命令作出響應(yīng)。因此
25、,可用多只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ù)是否正確。表2一部分溫度對(duì)應(yīng)值表溫度/二進(jìn)制表示十六進(jìn)制表示+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 報(bào)警電路設(shè)計(jì)報(bào)警電路中加一pnp三極管驅(qū)動(dòng),基極接單片機(jī)p11口,當(dāng)端口變成低電平時(shí),驅(qū)動(dòng)三極管會(huì)導(dǎo)通,vcc電壓加載到蜂鳴器使其發(fā)聲、報(bào)警發(fā)光二極管亮,如圖4.4.1。圖 4.4.1 報(bào)警電路4.5 顯示電路設(shè)計(jì)如圖4.5.1,采用lg3641bh led數(shù)碼管顯示電路采用4位共陽(yáng)led數(shù)碼管從p14,p15,p16,p17串口輸出段
27、碼。用pnp三極管進(jìn)行驅(qū)動(dòng),當(dāng)相應(yīng)的端口變成低電平時(shí),驅(qū)動(dòng)相應(yīng)的三極管會(huì)導(dǎo)通,驅(qū)動(dòng)三極管給數(shù)碼管相應(yīng)的位供電,這時(shí)只要p0口送出數(shù)字的顯示代碼,數(shù)碼管就能正常顯示數(shù)字。圖 4.5.1 數(shù)碼管顯示電路4.6電源電路設(shè)計(jì)我們選用的是串聯(lián)起來(lái)的4節(jié)1.5v的5號(hào)電池,從經(jīng)濟(jì)的角度考慮的,干電池比較便宜,但其還有不足之處,干電池存儲(chǔ)的是電量。隨著電量的消耗,它的供電電壓就會(huì)不斷的下降,所有我們需要使用一個(gè)穩(wěn)壓器,來(lái)保證電源供給的是標(biāo)準(zhǔn)的5v電壓。4節(jié)1.5v串聯(lián)起來(lái)產(chǎn)生的和電壓最大是6v,而本文的at89s52單片機(jī)工作電壓的范圍是4v5.5v,在該系統(tǒng)中我們使用的電壓是5v。這時(shí)我們可以用lm780
28、5穩(wěn)壓器來(lái)產(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左右,在實(shí)際使用中容易出現(xiàn)電壓過(guò)低的狀態(tài),此時(shí)提供的電源達(dá)不到系統(tǒng)的電源要求,會(huì)出現(xiàn)程序跑飛的現(xiàn)象,而另一款lm2904的穩(wěn)壓壓差可以達(dá)到40mv,效果比lm7805好很多,但考慮到經(jīng)濟(jì)原因我們采用lm7805,只要在穩(wěn)壓前端提供較大的電源供應(yīng)即可。5. 系統(tǒng)軟件設(shè)計(jì)系統(tǒng)程序主要包括主程序,讀出溫度子程序,溫度轉(zhuǎn)換命令子程序,計(jì)算溫度子程序,按鍵掃
29、描。5.1主程序主程序的主要功能是負(fù)責(zé)讀出并處理ds18b20的測(cè)量的當(dāng)前溫度值,溫度的實(shí)時(shí)顯示,并根據(jù)設(shè)置的上下限判斷是否報(bào)警。系統(tǒng)開(kāi)始運(yùn)行時(shí),溫度傳感器測(cè)量并計(jì)算溫度值通過(guò)p1.0口傳輸進(jìn)單片機(jī)里進(jìn)行處理,經(jīng)過(guò)處理后的數(shù)據(jù)再通過(guò)p0口傳輸?shù)綌?shù)碼管進(jìn)行顯示。通過(guò)按鍵設(shè)置溫度報(bào)警界限,當(dāng)超過(guò)報(bào)警界限時(shí)單片機(jī)將相應(yīng)的數(shù)據(jù)通過(guò)p1.1口傳輸進(jìn)行聲光報(bào)警。溫度測(cè)量每1s進(jìn)行一次。這樣可以在一秒之內(nèi)測(cè)量一次被測(cè)溫度,其程序流程見(jiàn)圖5.1.1所示。初始化調(diào)用溫度模塊程序ds18b20存在?是處理溫度值轉(zhuǎn)換bcd碼送at89s52處理按鍵掃描模塊顯示模塊,led顯示溫度是否越限?開(kāi)始是報(bào)警否否錯(cuò)誤處理,顯
30、示8.8.8.8.圖5.1.1 主程序流程圖5.2讀出溫度子程序讀出溫度子程序的主要功能是讀出ram中的9字節(jié),在讀出時(shí)需進(jìn)行crc校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(shù)據(jù)的改寫(xiě)。其程序流程圖如圖5.2.1示 開(kāi)始發(fā)ds18b20復(fù)位命令發(fā)跳過(guò)rom命令發(fā)讀取溫度命令讀取操作,crc校驗(yàn)結(jié)束nyyn移入溫度緩存器9字節(jié)完?crc校驗(yàn)?圖5.2.1讀溫度流程圖5.3溫度轉(zhuǎn)換命令子程序溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開(kāi)始命令,當(dāng)采用12位分辨率時(shí)轉(zhuǎn)換時(shí)間約為750ms,在本程序設(shè)計(jì)中采用1s顯示程序延時(shí)法等待轉(zhuǎn)換的完成16。溫度轉(zhuǎn)換命令子程序流程圖如上圖,圖5.3.1所示5.4 計(jì)算溫度子程序計(jì)算溫度子程
31、序?qū)am中讀取值進(jìn)行bcd碼的轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值正負(fù)的判定,其程序流程圖如圖5.4.1所示。發(fā)ds18b20復(fù)位命令開(kāi)始發(fā)跳過(guò)rom命令發(fā)溫度轉(zhuǎn)換開(kāi)始命令結(jié)束圖 5.3.1 溫度轉(zhuǎn)換流程圖 開(kāi)始溫度零下?溫度值取補(bǔ)碼置“”標(biāo)志計(jì)算小數(shù)位溫度bcd值 計(jì)算整數(shù)位溫度bcd值 結(jié)束置“+”標(biāo)志ny圖 5.4.1計(jì)算溫度流程圖5.4 鍵盤(pán)掃描流程圖開(kāi)始enter_flag為1是否有up按下display顯示退出子程序(ret)返回主程序enter子程序flag=1down子程序否是是否否是否否是是enter按鍵是否按下是否有enter按下是否有down按下up子程序圖 5.4.1 按鍵掃描流程
32、圖6. 測(cè)試與結(jié)果分析6.1仿真軟件介紹本次仿真用了proteus軟件,proteus(海神)的isis是一款labcenter出品的電路分析實(shí)物仿真系統(tǒng),可仿真各種電路和ic,并支持單片機(jī),元件庫(kù)齊全,使用方便,是不可多得的專業(yè)的單片機(jī)軟件仿真系統(tǒng)17。該軟件的特點(diǎn):(1)全部滿足我們提出的單片機(jī)軟件仿真系統(tǒng)的標(biāo)準(zhǔn),并在同類產(chǎn)品中具有明顯的優(yōu)勢(shì)。(2)具有模擬電路仿真、數(shù)字電路仿真、單片機(jī)及其外圍電路組成的系統(tǒng)的仿真、rs一232動(dòng)態(tài)仿真、1 c調(diào)試器、spi調(diào)試器、鍵盤(pán)和lcd系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號(hào)發(fā)生器等。(3)目前支持的單片機(jī)類型有:68000系列、
33、8051系列、avr系列、pic12系列、pic16系列、pic18系列、z80系列、hc11系列以及各種外圍芯片。(4)支持大量的存儲(chǔ)器和外圍芯片??傊撥浖且豢罴瘑纹瑱C(jī)和spice分析于一身的仿真軟件,功能極其強(qiáng)大 ,可仿真51、avr、pic。proteus與其它單片機(jī)仿真軟件不同的是,它不僅能仿真單片機(jī)cpu的工作情況,也能仿真單片機(jī)外圍電路或沒(méi)有單片機(jī)參與的其它電路的工作情況。因此在仿真和程序調(diào)試時(shí),關(guān)心的不再是某些語(yǔ)句執(zhí)行時(shí)單片機(jī)寄存器和存儲(chǔ)器內(nèi)容的改變,而是從工程的角度直接看程序運(yùn)行和電路工作的過(guò)程和結(jié)果。對(duì)于這樣的仿真實(shí)驗(yàn),從某種意義上講,是彌補(bǔ)了實(shí)驗(yàn)和工程應(yīng)用間脫節(jié)的矛盾和
34、現(xiàn)象18。程序編譯用keil軟件, keil c51生成的目標(biāo)代碼效率非常之高,多數(shù)語(yǔ)句生成的匯編代碼很緊湊,容易理解。在開(kāi)發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語(yǔ)言的優(yōu)勢(shì)。6.2 仿真結(jié)果6.2.1 用keil進(jìn)行程序編譯運(yùn)用keil軟件編譯c語(yǔ)言程序,其結(jié)果如下圖6.2.1和圖6.2.2所示,在結(jié)果欄顯示“cao cx”0 error(s),0 warning(s).說(shuō)明此程序在軟件編譯上無(wú)語(yǔ)法等錯(cuò)誤。將此程序生成*.hex文件調(diào)入硬件中用proteus進(jìn)行調(diào)試仿真。圖6.1.1 keil編譯c語(yǔ)言程序圖6.1.2 keil編譯c語(yǔ)言程序6.2.2 在proteus中仿真將生成的cao.hex文件調(diào)入p
35、roteus電路圖的單片機(jī)中,點(diǎn)擊圖左下角的開(kāi)始鍵運(yùn)行,程序的開(kāi)始界面如圖6.2.1,數(shù)碼管顯示“ ”。圖6.2.1 仿真程序初始化程序初始化后通過(guò)調(diào)節(jié)ds18b20溫度傳感器的數(shù)值,數(shù)碼管會(huì)顯示相應(yīng)的數(shù)值,例如10,其結(jié)果如圖6.2.2所示。圖6.2.2 仿真程序正常運(yùn)行結(jié)果在設(shè)置系統(tǒng)報(bào)警溫度上下限時(shí),按下按鍵s1,數(shù)碼管會(huì)顯示“h38c”(系統(tǒng)默認(rèn)上限為38),此時(shí)進(jìn)入溫度上限設(shè)置模式,可通過(guò)調(diào)節(jié)s2和s3分別增加和減小數(shù)碼管上顯示的數(shù)字,例如設(shè)置上限為39,如圖6.2.3所示。接著再次按下鍵s1,數(shù)碼管會(huì)顯示“l(fā)05c”(系統(tǒng)默認(rèn)下限為5),此時(shí)進(jìn)入溫度下限設(shè)置模式,可通過(guò)調(diào)節(jié)s2和s3
36、分別增加和減小數(shù)碼管上顯示的數(shù)字,例如設(shè)置下限為5,如圖6.2.4所示。圖6.2.3 仿真設(shè)置最高溫度報(bào)警線圖6.2.4仿真設(shè)置溫度報(bào)警最低線當(dāng)溫度超過(guò)設(shè)置的上下限時(shí),系統(tǒng)會(huì)進(jìn)行聲光報(bào)警,蜂鳴器會(huì)發(fā)出“滴滴滴”蜂鳴聲,同時(shí)led燈會(huì)閃爍。當(dāng)系統(tǒng)未檢測(cè)的到ds18b20溫度傳感器或運(yùn)行錯(cuò)誤時(shí),數(shù)碼管會(huì)顯示錯(cuò)誤的數(shù)字“8.8.8.8”,如圖6.2.5所示。圖6.2.5 仿真程序出錯(cuò)7. 總結(jié)與致謝做為對(duì)大學(xué)四年所學(xué)知識(shí)的總結(jié),通過(guò)本次的畢業(yè)論文設(shè)計(jì),我學(xué)到了很多東西,同時(shí)在做的過(guò)程中也發(fā)現(xiàn)很多的問(wèn)題,從最初的課題選擇到對(duì)相關(guān)課題資料的搜集與摘選,再到自己論文內(nèi)容的思路的設(shè)計(jì)、編寫(xiě)以致最后階段的修改
37、與完善。在這一過(guò)程中,我對(duì)我們大學(xué)四年所學(xué)習(xí)的相關(guān)電子知識(shí)又有了更深一層的學(xué)習(xí)和理解,讓我對(duì)自己所學(xué)的又有了更深的掌握。雖然以前還做過(guò)這樣的設(shè)計(jì)但這次設(shè)計(jì)真的讓我長(zhǎng)進(jìn)了很多,單片機(jī)課程設(shè)計(jì)重點(diǎn)就在于軟件算法的設(shè)計(jì),需要有很巧妙的程序算法,雖然以前寫(xiě)過(guò)幾次程序,但我覺(jué)的寫(xiě)好一個(gè)程序并不是一件簡(jiǎn)單的事,舉個(gè)例子,以前寫(xiě)的那幾次,數(shù)據(jù)加減時(shí),我用的都是bcd碼,這一次,我全部用的都是16進(jìn)制的數(shù)直接加減,顯示處理時(shí)在用除法去刪分,感覺(jué)效果比較好,有好多的東西,只有我們?nèi)ピ囍隽耍拍苷嬲恼莆?,只學(xué)習(xí)理論有些東西而不結(jié)合實(shí)踐是很難理解的,更談不上掌握。從這次的畢業(yè)設(shè)計(jì)中,我真真正正的意識(shí)到,在以后的
38、學(xué)習(xí)中,要理論聯(lián)系實(shí)際,把我們所學(xué)的理論知識(shí)用到實(shí)際當(dāng)中,學(xué)習(xí)單機(jī)片機(jī)更是如此,程序只有在經(jīng)常的寫(xiě)與讀的過(guò)程中才能提高,這就是我在這次課程設(shè)計(jì)中的最大收獲。在此過(guò)程中,我也要感謝對(duì)我一直悉心指導(dǎo)和幫助的指導(dǎo)教師葉愛(ài)芹老師。正是在她不厭其煩的指導(dǎo)和對(duì)我們的啟發(fā)中,讓我對(duì)我的論文設(shè)計(jì)思路逐漸清晰明朗,每當(dāng)在我論文設(shè)計(jì)中遇到困難時(shí)充滿希望,總能迎刃而解,總之非常感謝她這段時(shí)間對(duì)我們的鼓勵(lì)和指導(dǎo)。參考文獻(xiàn):1 李朝青.單片機(jī)原理及接口技術(shù)(簡(jiǎn)明修訂版).杭州:北京航空航天大學(xué)出版社,19982 李廣弟.單片機(jī)基礎(chǔ).北京:北京航空航天大學(xué)出版社,19943 江力.單片機(jī)原理與應(yīng)用技術(shù) .清華大學(xué)出版社
39、.20064 蔡美琴等mcs一51系列單片機(jī)系統(tǒng)及其應(yīng)用m北京:高等教育出版社,19995 王樹(shù)勛mcs一51單片微型計(jì)算機(jī)原理與開(kāi)發(fā)北京:機(jī)械工業(yè)出版社,19956 何希才傳感器及其應(yīng)用電路北京:電子工業(yè)出版社,20017 劉迎春、葉湘濱傳感器原理設(shè)計(jì)與應(yīng)用(第三版) m長(zhǎng)沙:國(guó)防科技大學(xué)出版社,19978 靳達(dá).單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)實(shí)例導(dǎo)航.北京:人民郵電出版社,2003. 9 潘新民,王燕芳.微型計(jì)算機(jī)實(shí)用系統(tǒng)設(shè)計(jì)m.北京:人民郵電出版社,1992.10 胡漢才單片機(jī)原理及接口技術(shù)北京:清華大學(xué)出版社,199611 何力民mcs一51系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)北京:北京航空航天大學(xué)出版社,19
40、9312 江曉安.等數(shù)字電子技術(shù) . 編著. 西安電子科技大學(xué)出版社 .199313 閻石.數(shù)字電子技術(shù)基礎(chǔ)(第三版). 北京:高等教育出版社,198914 廖常初.現(xiàn)場(chǎng)總線概述j.電工技術(shù),1999.15 靳達(dá).單片機(jī)典型模塊設(shè)計(jì)實(shí)例導(dǎo)航.北京:人民郵電出版社,2003.16 王松武,于鑫,武思軍.電子創(chuàng)新設(shè)計(jì)與實(shí)踐.北京:國(guó)防工業(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溫度測(cè)量、報(bào)警系統(tǒng)簡(jiǎn)要說(shuō)明:ds18b20溫度計(jì),溫度測(cè)量范圍099.9攝氏度 可設(shè)置上限報(bào)警溫度、下限報(bào)警溫度 即高于上限值或者低
44、于下限值時(shí)蜂鳴器報(bào)警 默認(rèn)上限報(bào)警溫度為38、默認(rèn)下限報(bào)警溫度為5 報(bào)警值可設(shè)置范圍:最低上限報(bào)警值等于當(dāng)前下限報(bào)警值 最高下限報(bào)警值等于當(dāng)前上限報(bào)警值 將下限報(bào)警值調(diào)為0時(shí)為關(guān)閉下限報(bào)警功能 */#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ù)點(diǎn)uchar x=0; /計(jì)數(shù)器signed char m; /溫度值全局變量uchar n; /溫度值全局變量uchar set_st=0; /狀態(tài)標(biāo)志signed char shangxian=38; /上限報(bào)警溫度,默認(rèn)值為38signed char xiaxian=5; /下限報(bào)警溫度,默認(rèn)值為5uchar code leddata=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff;/*延時(shí)子程序*/void delay(uint num) w
46、hile( -num );/*初始化定時(shí)器0*/void inittimer(void) tmod=0x1; th0=0x3c; tl0=0xb0; /50ms(晶振12m)/*定時(shí)器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; /計(jì)算得到十位數(shù)字 b=c/10-a*10; /計(jì)算得到個(gè)位數(shù)字 m=c/10; /計(jì)算得到整數(shù)位 n=c-a*100-b*10; /計(jì)算得到小數(shù)位 if(m99)m=99;n=
48、9; /設(shè)置溫度顯示上限 /*顯示開(kāi)機(jī)初始化等待畫(huà)面*/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; /顯示個(gè)位 p1 = 0xfb; delay(300); p2 =leddatam%10; /顯
49、示十位 dian = 0; /顯示小數(shù)點(diǎn) p1 = 0xfd; delay(300); p2 =leddatam/10; /顯示百位 p1 = 0xfe; delay(300); p1 = 0xff; /關(guān)閉顯示/*顯示報(bào)警溫度子程序*/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)閉顯示/*報(bào)警子程序*/void alarm() if(x=10)beep_st=beep_st;x=0;
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 出攤貨架轉(zhuǎn)讓合同范本
- 農(nóng)村田地征用合同范本
- 臨時(shí)股合同范本
- 代課老師合同范本
- 冰箱采購(gòu)談判合同范本
- 半永久加盟合同范本
- 健身器合同范本
- 養(yǎng)殖鴿子合作合同范本
- 制作商家廣告合同范本
- 出租協(xié)議合同范本
- 社團(tuán)活動(dòng)情況登記表
- 2025屆湖北武漢武昌區(qū)武漢大學(xué)附屬中學(xué)數(shù)學(xué)高三上期末達(dá)標(biāo)測(cè)試試題含解析
- 山東省濰坊市2023-2024學(xué)年高二下學(xué)期期末測(cè)試+英語(yǔ)試卷
- 2023年北京市初三一模數(shù)學(xué)試題匯編:選擇壓軸(第8題)
- AIGC視域下非遺文創(chuàng)產(chǎn)品的數(shù)字化轉(zhuǎn)型升級(jí)路徑研究
- 生涯規(guī)劃與就業(yè)創(chuàng)業(yè)全套課件電子教案板
- 公司投資占股協(xié)議書(shū)模板
- 石油采油井場(chǎng)水土保持方案報(bào)告書(shū)
- 湘少版六年級(jí)英語(yǔ)下冊(cè)《全冊(cè)課件》
- 2024-2030年中國(guó)護(hù)眼臺(tái)燈行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略分析報(bào)告
- 《土壤肥料學(xué)通論》課程教學(xué)大綱
評(píng)論
0/150
提交評(píng)論