




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
摘要2009年6月14日隨著時(shí)代的進(jìn)步和開(kāi)展,單片機(jī)技術(shù)已經(jīng)普及到我們生活、工作、科研、各個(gè)領(lǐng)域,已經(jīng)成為一種比擬成熟的技術(shù)。本文主要介紹了一個(gè)基于AT89C52單片機(jī)的測(cè)溫系統(tǒng),詳細(xì)描述了利用液晶顯示器件傳感器DS18B20開(kāi)發(fā)測(cè)溫系統(tǒng)的過(guò)程,重點(diǎn)對(duì)傳感器在單片機(jī)下的硬件連接,軟件編程以及各模塊系統(tǒng)流程進(jìn)行了詳盡分析,特別是數(shù)字溫度傳感DS18B20的數(shù)據(jù)采集過(guò)程。對(duì)各局部的電路也一一進(jìn)行了介紹,該系統(tǒng)可以方便的實(shí)現(xiàn)實(shí)現(xiàn)溫度采集和顯示,并可根據(jù)需要任意設(shè)定上下限報(bào)警溫度,它使用起來(lái)相當(dāng)方便,具有精度高、量程寬、靈敏度高、體積小、功耗低等優(yōu)點(diǎn),適合于我們?nèi)粘I詈凸ぁ⑥r(nóng)業(yè)生產(chǎn)中的溫度測(cè)量,也可以當(dāng)作溫度處理模塊嵌入其它系統(tǒng)中,作為其他主系統(tǒng)的輔助擴(kuò)展。DS18B20與AT89C52結(jié)合實(shí)現(xiàn)最簡(jiǎn)溫度檢測(cè)系統(tǒng),該系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,抗干擾能力強(qiáng),適合于惡劣環(huán)境下進(jìn)行現(xiàn)場(chǎng)溫度測(cè)量,有廣泛的應(yīng)用前景。關(guān)鍵詞:?jiǎn)纹瑱C(jī)AT89C51;DS18B20溫度傳感器;液晶顯示LCD1602。目錄摘要 I第一章前言 1第二章設(shè)計(jì)任務(wù)及要求 22.1設(shè)計(jì)任務(wù) 22.2設(shè)計(jì)要求 2第三章課程設(shè)計(jì)方案及器材選用 33.1設(shè)計(jì)總體方案 3方案論證 33.1.2系統(tǒng)的具體設(shè)計(jì)與實(shí)現(xiàn) 43.2器材選用分析 53.2.1DS18B20溫度傳感器 53.2.2AT89S52單片機(jī)介紹 123.3軟件流程圖 153.3.1主程序 15讀出溫度子程序 153.3.3溫度轉(zhuǎn)換命令子程序 153.3.4計(jì)算溫度子程序 16第四章硬件電路的設(shè)計(jì) 174.1proteus簡(jiǎn)介 174.2proteus仿真圖 17第五章調(diào)試性能及分析 19總結(jié) 20參考文獻(xiàn) 21附錄1源程序 22附錄2原理圖 26第一章前言目前,單片機(jī)已經(jīng)在測(cè)控領(lǐng)域中獲得了廣泛的應(yīng)用,它除了可以測(cè)量電信以外,還可以用于溫度、濕度等非電信號(hào)的測(cè)量,能獨(dú)立工作的單片機(jī)溫度檢測(cè)、溫度控制系統(tǒng)已經(jīng)廣泛應(yīng)用很多領(lǐng)域。單片機(jī)是一種特殊的計(jì)算機(jī),它是在一塊半導(dǎo)體的芯片上集成了CPU,存儲(chǔ)器,RAM,ROM,及輸入與輸出接口電路,這種芯片稱為:單片機(jī)。由于單片機(jī)的集成度高,功能強(qiáng),通用性好,特別是它具有體積小,重量輕,能耗低,價(jià)格廉價(jià),可靠性高,抗干擾能力強(qiáng)和使用方便的優(yōu)點(diǎn),使它迅速的得到了推廣應(yīng)用,目前已成為測(cè)量控制系統(tǒng)中的優(yōu)選機(jī)種和新電子產(chǎn)品中的關(guān)鍵部件。單片機(jī)已不僅僅局限于小系統(tǒng)的概念,現(xiàn)已廣泛應(yīng)用于家用電器,機(jī)電產(chǎn)品,辦公自動(dòng)化用品,機(jī)器人,兒童玩具,航天器等領(lǐng)域。本次課程設(shè)計(jì),就是用單片機(jī)實(shí)現(xiàn)溫度控制,傳統(tǒng)的溫度檢測(cè)大多以熱敏電阻為溫度傳感器,但熱敏電阻的可靠性差,測(cè)量溫度準(zhǔn)確率低,而且必須經(jīng)過(guò)專門(mén)的接口電路轉(zhuǎn)換成數(shù)字信號(hào)才能由單片機(jī)進(jìn)行處理。本次采用DS18B20數(shù)字溫度傳感器來(lái)實(shí)現(xiàn)基于51單片機(jī)的數(shù)字溫度計(jì)的設(shè)計(jì)。傳統(tǒng)的溫度計(jì)有反響速度慢、讀數(shù)麻煩、測(cè)量精度不高、誤差大等缺點(diǎn)而下面利用集成溫度傳感器AD590設(shè)計(jì)并制作了一款基于AT89C51的4位數(shù)碼管顯示的數(shù)字溫度計(jì),其電路簡(jiǎn)單,軟硬件結(jié)構(gòu)模塊化,易于實(shí)現(xiàn)。
該數(shù)字溫度計(jì)利用AD590集成溫度傳感器及其接口電路完成溫度的測(cè)量并轉(zhuǎn)換成模擬電壓信號(hào),經(jīng)由模數(shù)轉(zhuǎn)換器ADC0804轉(zhuǎn)換成單片機(jī)能夠處理的數(shù)字信號(hào),然后送到單片機(jī)AT89C51中進(jìn)行處理變換,最后將溫度值顯示在D4、D3、D2、D1共4位七段碼LED顯示器上。系統(tǒng)以AT89C51單片機(jī)為控制核心,加上AD590測(cè)溫電路、ADC模數(shù)轉(zhuǎn)換電路、4位溫度數(shù)據(jù)顯示電路以及外圍電源、時(shí)鐘電路等組成。第二章設(shè)計(jì)任務(wù)及要求2.1設(shè)計(jì)任務(wù)以MCS-51系列單片機(jī)為核心器件,組成一個(gè)數(shù)字溫度計(jì),采用數(shù)字溫度傳感器DS18B20為檢測(cè)器件,進(jìn)行單點(diǎn)溫度檢測(cè),檢測(cè)精度為±0.1攝氏度。溫度顯示采用LCD1602顯示,兩位整數(shù),一位小數(shù)如圖2.1。圖2.1系統(tǒng)總體方針圖2.2設(shè)計(jì)要求設(shè)計(jì)一個(gè)基于單片機(jī)的DS18B20數(shù)字溫度計(jì)。課程設(shè)計(jì)要求:5V供電;溫度采集采用DS18B20;1602LCD液晶顯示器;設(shè)計(jì)溫度控制器原理圖,學(xué)習(xí)用PROTEL畫(huà)出該原理圖,并用proteus進(jìn)行仿真;設(shè)計(jì)和繪制軟件流程圖,用C語(yǔ)言進(jìn)行程序編寫(xiě),然后進(jìn)行調(diào)試。第三章課程設(shè)計(jì)方案及器材選用3.1設(shè)計(jì)總體方案提及到溫度的檢測(cè),我們首先會(huì)考慮傳統(tǒng)的測(cè)溫元件有熱電偶和熱電阻,而熱電偶和熱電阻測(cè)出的一般都是電壓,再轉(zhuǎn)換成對(duì)應(yīng)的溫度,需要比擬多的外部硬件支持,硬件電路復(fù)雜,軟件調(diào)試也復(fù)雜,制作本錢高。因此,本數(shù)字溫度計(jì)設(shè)計(jì)采用智能溫度傳感器DS18B20作為檢測(cè)元件,測(cè)溫范圍為-55°C至+125°C,最大分辨率可達(dá)0.0625°C。DS18B20可以直接讀出被測(cè)量的溫度值,而采用三線制與單片機(jī)相連,減少了外部的硬件電路,具有低本錢和易使用的特點(diǎn)。按照系統(tǒng)設(shè)計(jì)功能的要求,確定系統(tǒng)由三個(gè)模塊組成:主控制器STC89C51,溫度傳感器DS18B20,驅(qū)動(dòng)顯示電路??傮w電路框圖3.1:主控制器主控制器STC89C52DS18B20LCD1602報(bào)警模塊圖3.1系統(tǒng)總體框圖3.1.1方案論證〔1〕溫度傳感模塊方案一:采用熱敏電阻,熱敏電阻精度、重復(fù)性、可靠性較差,對(duì)于檢測(cè)1攝氏度的信號(hào)是不適用的,也不能滿足測(cè)量范圍。在溫度測(cè)量系統(tǒng)中,也常采用單片溫度傳感器,比方AD590,LM35等。但這些芯片輸出的都是模擬信號(hào),必須經(jīng)過(guò)A/D轉(zhuǎn)換后才能送給計(jì)算機(jī),這樣就使測(cè)溫系統(tǒng)的硬件結(jié)構(gòu)較復(fù)雜。另外,這種測(cè)溫系統(tǒng)難以實(shí)現(xiàn)多點(diǎn)測(cè)溫,也要用到復(fù)雜的算法,一定程度上也增加了軟件實(shí)現(xiàn)的難度。
方案二:采用單總線數(shù)字溫度傳感器DS18B20測(cè)量溫度,直接輸出數(shù)字信號(hào)。便于單片機(jī)處理及控制,節(jié)省硬件電路。且該芯片的物理化學(xué)性很穩(wěn)定,此元件線形性能好,在0—100攝氏度時(shí),最大線形偏差小于1攝氏度。DS18B20的最大特點(diǎn)之一采用了單總線的數(shù)據(jù)傳輸,由數(shù)字溫度計(jì)DS18B20和微控制器AT89C51構(gòu)成的溫度裝置,它直接輸出溫度的數(shù)字信號(hào)到微控制器。每只DS18B20具有一個(gè)獨(dú)有的不可修改的64位序列號(hào),根據(jù)序列號(hào)可訪問(wèn)不同的器件。這樣一條總線上可掛接多個(gè)DS18B20傳感器,實(shí)現(xiàn)多點(diǎn)溫度測(cè)量,輕松的組建傳感網(wǎng)絡(luò)。
綜上分析,我們選用第二種方案圖3.2。圖3.2溫度傳感模塊仿真圖(2)顯示模塊方案一:采用8位段數(shù)碼管,將單片機(jī)得到的數(shù)據(jù)通過(guò)數(shù)碼管顯示出來(lái)。該方案簡(jiǎn)單易行,但所需的元件較多,且不容易進(jìn)行操作,可讀性差,一旦設(shè)定后很難再參加其他的功能,顯示格式受限制,且大耗電量大,不宜用電池給系統(tǒng)供電。
方案二:采用液晶顯示器件,液晶顯示平穩(wěn)、省電、美觀,更容易實(shí)現(xiàn)題目要求,對(duì)后續(xù)的園藝通兼容性高,只需將軟件作修改即可,可操作性強(qiáng),也易于讀數(shù),采用RT1602兩行十六個(gè)字符的顯示,能同時(shí)顯示其它的信息如日期、時(shí)間、星期、溫度。
綜上分析,我們采用了第二個(gè)方案圖3.3圖3.3顯示模塊仿真圖系統(tǒng)的具體設(shè)計(jì)與實(shí)現(xiàn)采用AT89S52單片機(jī)作為控制核心對(duì)溫度傳感器DS18B20控制,讀取溫度信號(hào)并進(jìn)行計(jì)算處理,并送到液晶顯示器LCD1602顯示。按照系統(tǒng)設(shè)計(jì)功能的要求,確定系統(tǒng)由3個(gè)模塊組成:主控制器、測(cè)溫電路和顯示電路。數(shù)字溫度計(jì)總體電路結(jié)構(gòu)框圖如圖3.4所示。
主控制器主控制器LCD1062顯示溫度傳感器單片機(jī)復(fù)位時(shí)鐘振蕩圖3.4總體設(shè)計(jì)方框圖3.2器材選用分析3.2.1DS18B20溫度傳感器1.DS18B20的特點(diǎn)本設(shè)計(jì)的測(cè)溫系統(tǒng)采用芯片DS18B20,DS18B20是DALLAS公司的最新單線數(shù)字溫度傳感器,它的體積更小,適用電壓更寬,更經(jīng)濟(jì)。實(shí)現(xiàn)方法簡(jiǎn)介DS18B20采用外接電源方式工作,一線測(cè)溫一線與STC89C51連接,測(cè)出的數(shù)據(jù)放在存放器中,將數(shù)據(jù)經(jīng)過(guò)BCD碼轉(zhuǎn)換后送到LED顯示。DS18B20溫度傳感器是美國(guó)DALLAS半導(dǎo)體公司最新推出的一種改良型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測(cè)溫元件相比,它能直接讀出被測(cè)溫度,并且可根據(jù)實(shí)際要求通過(guò)簡(jiǎn)單的編程實(shí)現(xiàn)9~12位的數(shù)字值讀數(shù)方式。DS18B20的性能特點(diǎn)如下:●獨(dú)特的單線接口僅需要一個(gè)端口引腳進(jìn)行通信;●多個(gè)DS18B20可以并聯(lián)在惟一的三線上,實(shí)現(xiàn)多點(diǎn)組網(wǎng)功能;●無(wú)須外部器件;●可通過(guò)數(shù)據(jù)線供電,電壓范圍為3.0~5.5V;●零待機(jī)功耗;●溫度以9或12位數(shù)字;●用戶可定義報(bào)警設(shè)置;●報(bào)警搜索命令識(shí)別并標(biāo)志超過(guò)程序限定溫度〔溫度報(bào)警條件〕的器件;●負(fù)電壓特性,電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,但不能正常工作;DS18B20內(nèi)部結(jié)構(gòu)主要由四局部組成:64位光刻ROM,溫度傳感器,非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL,高速暫存器。DS18B20的管腳排列如圖3.5所示。64位光刻ROM是出廠前被光刻好的,它可以看作是該DS18B20的地址序列號(hào)。不同的器件地址序列號(hào)不同。CC64位ROM和單線接口高速緩存存儲(chǔ)器與控制邏輯溫度傳感器高溫觸發(fā)器TH低溫觸發(fā)器TL配置存放器8位CRC發(fā)生器Vdd圖3.5DS18B20的內(nèi)部結(jié)構(gòu)圖3.6DS18B20的引腳分布圖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)警上下限。DS18B20溫度傳感器的內(nèi)部存儲(chǔ)器還包括一個(gè)高速暫存RAM和一個(gè)非易失性的可電擦除的EERAM。高速暫存RAM的結(jié)構(gòu)為8字節(jié)的存儲(chǔ)器,結(jié)構(gòu)如圖3.6所示。頭2個(gè)字節(jié)包含測(cè)得的溫度信息,第3和第4字節(jié)TH和TL的拷貝,是易失的,每次上電復(fù)位時(shí)被刷新。第5個(gè)字節(jié),為配置存放器,它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。DS18B20工作時(shí)存放器中的分辨率轉(zhuǎn)換為相應(yīng)精度的溫度數(shù)值。該字節(jié)各位的定義如圖3.7所示。低5位一直為1,TM是工作模式位,用于設(shè)置DS18B20在工作模式還是在測(cè)試模式,DS18B20出廠時(shí)該位被設(shè)置為0,用戶要去改動(dòng),R1和R0決定溫度轉(zhuǎn)換的精度位數(shù),來(lái)設(shè)置分辨率。圖3.7DS18B20的字節(jié)定義DS18B20高速暫存器共9個(gè)存存單元,如表3-1所示:表3-1DS18B20的引腳分布圖序號(hào)存放器名稱作
用序號(hào)存放器名稱0溫度低字節(jié)以16位補(bǔ)碼形式存放4、5保存字節(jié)1、21溫度高字節(jié)6計(jì)數(shù)器余值2TH/用戶字節(jié)1存放溫度上限7計(jì)數(shù)器/℃3HL/用戶字節(jié)2存放溫度下限8CRC以12位轉(zhuǎn)化為例說(shuō)明溫度上下字節(jié)存放形式及計(jì)算:12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲(chǔ)在18B20的兩個(gè)上下兩個(gè)8位的RAM中,二進(jìn)制中的前面5位是符號(hào)位表3-2所示。如果測(cè)得的溫度大于0,這5位為0,只要將測(cè)到的數(shù)值乘于0.0625即可得到實(shí)際溫度;如果溫度小于0,這5位為1,測(cè)到的數(shù)值需要取反加1再乘于0.0625才能得到實(shí)際溫度表3-2。表3-2DS18B20的字節(jié)存放表高8位SSSSSSSS低8位232221202-12-22-32-4由圖3.7可以看到,DSl8B20的內(nèi)部存儲(chǔ)器是由8個(gè)單元組成,其中第0、1個(gè)存放測(cè)量溫度值,第2、3分別存放報(bào)警溫度的上下限值,第4單元為配置單元,5、6、7單元在DSl8B20這里沒(méi)有被用到。對(duì)于第4個(gè)存放器,用戶可以設(shè)置溫度轉(zhuǎn)換精度,系統(tǒng)默認(rèn)12bit轉(zhuǎn)換精度,相當(dāng)于十進(jìn)制的0.0625℃,其轉(zhuǎn)換時(shí)間大約為750us。。圖3.7內(nèi)部存儲(chǔ)器結(jié)構(gòu)圖表3-3溫度精度配置R1R0轉(zhuǎn)換精度〔16進(jìn)制〕轉(zhuǎn)換精度〔十進(jìn)制〕轉(zhuǎn)換時(shí)間009bit0.593.75ms0110bit0.25187.5ms1011bit0.125375ms1112bit0.0625750ms由表3-3可見(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ī)可以通過(guò)單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時(shí)低位在先,高位在后,數(shù)據(jù)格式以0.0625℃/LSB形式表示。當(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ù)值。表3-4是一局部溫度值對(duì)應(yīng)的二進(jìn)制溫度數(shù)據(jù)。表3-4溫度精度配置溫度/℃二進(jìn)制表示十六進(jìn)制表示+125000001111101000007D0H+8500000101010100000550H+25.062500000001100100000191H+10.125000000001010000100A2H+0.500000000000000100008H000000000000010000000H-0.51111111111110000FFF8H-10.1251111111101011110FF5EH-25.06251111111001101111FE6FH-551111110010010000FC90HDS18B20完成溫度轉(zhuǎn)換后,就把測(cè)得的溫度值與RAM中的TH、TL字節(jié)內(nèi)容作比擬。假設(shè)T>TH或T<TL,則將該器件內(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ù)器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ù)到0時(shí),停止溫度存放器的累加,此時(shí)溫度存放器中的數(shù)值就是所測(cè)溫度值。其輸出用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)器門(mén)仍未關(guān)閉就重復(fù)上述過(guò)程,直到溫度存放器值大致被測(cè)溫度值。另外,由于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),所以數(shù)據(jù)的傳輸與命令的通訊只要通過(guò)微處理器的一根雙向I/o口就可以實(shí)現(xiàn)。DSl8B20約定在每次通信前必須對(duì)其復(fù)位,具體的復(fù)位時(shí)序如圖3.8圖3.8復(fù)位時(shí)序圖圖3.8,tRSTL為主機(jī)發(fā)出的低電平信號(hào),本文中有AT89S52提供,tRSTL的最小時(shí)延為480us,然后釋放總線,檢查DSl8B20的返回信號(hào),看其是否已準(zhǔn)備接受其他操作,其中tPDHIGH時(shí)間最小為15us,過(guò)60us為DS18B20沒(méi)有準(zhǔn)備好,主機(jī)應(yīng)繼續(xù)復(fù)位,直到檢測(cè)到返回信號(hào)變?yōu)榈碗娖綖橹埂1?-5DS18B20的ROM操作指令操作指令33H55HCCHF0HECH含義讀ROM匹配ROM跳過(guò)ROM搜索ROM報(bào)警搜索ROM表3-6DS18B20的存儲(chǔ)器操作指令操作指令4EHBEH48H44HD8HB4H含義寫(xiě)讀內(nèi)部復(fù)制溫度轉(zhuǎn)換重新調(diào)出讀電源主機(jī)一旦檢測(cè)到DS18B20的存在,根據(jù)DS18B2的工作協(xié)議,就應(yīng)對(duì)ROM進(jìn)行操作,接著對(duì)存儲(chǔ)器操作,最后進(jìn)行數(shù)據(jù)處理。在DS18B20中規(guī)定了5條對(duì)ROM的操作命令。見(jiàn)表3-5。主機(jī)在發(fā)送完ROM操作指令之后,就可以對(duì)DS18B20內(nèi)部的存儲(chǔ)器進(jìn)行操作,同樣DS18B20規(guī)定了6條操作指令。見(jiàn)表3-6。DS18B20的讀、寫(xiě)時(shí)序圖見(jiàn)圖3.9。圖3.9DS18B20的讀寫(xiě)時(shí)序圖2.DS18B20的使用方法由于DS18B20采用的是1-Wire總線協(xié)議方式,即在一根數(shù)據(jù)線實(shí)現(xiàn)數(shù)據(jù)的雙向傳輸,而對(duì)AT89S52單片機(jī)來(lái)說(shuō),硬件上并不支持單總線協(xié)議,因此,我們必須采用軟件的方法來(lái)模擬單總線的協(xié)議時(shí)序來(lái)完成對(duì)DS18B20芯片的訪問(wèn)。由于DS18B20是在一根I/O線上讀寫(xiě)數(shù)據(jù),因此,對(duì)讀寫(xiě)的數(shù)據(jù)位有著嚴(yán)格的時(shí)序要求。DS18B20有嚴(yán)格的通信協(xié)議來(lái)保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了幾種信號(hào)的時(shí)序:初始化時(shí)序、讀時(shí)序、寫(xiě)時(shí)序。所有時(shí)序都是將主機(jī)作為主設(shè)備,單圖3.10DS18B20的復(fù)位時(shí)序圖3.11DS18B20的讀時(shí)序圖3.12DS18B20的寫(xiě)時(shí)序總線器件作為從設(shè)備。而每一次命令和數(shù)據(jù)的傳輸都是從主機(jī)主動(dòng)啟動(dòng)寫(xiě)時(shí)序開(kāi)始,如果要求單總線器件回送數(shù)據(jù),在進(jìn)行寫(xiě)命令后,主機(jī)需啟動(dòng)讀時(shí)序完成數(shù)據(jù)接收。數(shù)據(jù)和命令的傳輸都是低位在先。對(duì)于DS18B20的讀時(shí)序分為讀0時(shí)序和讀1時(shí)序兩個(gè)過(guò)程圖3.11和圖3.12。
對(duì)于DS18B20的讀時(shí)隙是從主機(jī)把單總線拉低之后,在15秒之內(nèi)就得釋放單總線,以讓DS18B20把數(shù)據(jù)傳輸?shù)絾慰偩€上。DS18B20在完成一個(gè)讀時(shí)序過(guò)程,至少需要60us才能完成。 DS18B20的寫(xiě)時(shí)序,對(duì)于DS18B20的寫(xiě)時(shí)序仍然分為寫(xiě)0時(shí)序和寫(xiě)1時(shí)序兩個(gè)過(guò)程,對(duì)于DS18B20寫(xiě)0時(shí)序和寫(xiě)1時(shí)序的要求不同,當(dāng)要寫(xiě)0時(shí)序時(shí),單總線要被拉低至少60us,保證DS18B20能夠在15us到45us之間能夠正確地采樣IO總線上的“0〞電平,當(dāng)要寫(xiě)1時(shí)序時(shí),單總線被拉低之后,在15us之內(nèi)就得釋放單線。3.2.2AT89S52單片機(jī)介紹1.AT89S52的主要性能與MCS-51單片機(jī)產(chǎn)品兼容,8K字節(jié)在系統(tǒng)可編程Flash存儲(chǔ)器、1000次擦寫(xiě)周期、全靜態(tài)操作:0Hz~33Hz、三級(jí)加密程序存儲(chǔ)器、32個(gè)可編程I/O口線、三個(gè)16位定時(shí)器/計(jì)數(shù)器八個(gè)中斷源、全雙工UART串行通道、低功耗空閑和掉電模式、掉電后中斷可喚醒、看門(mén)狗定時(shí)器、雙數(shù)據(jù)指針、掉電標(biāo)識(shí)符。2.AT89S52的功能特性AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲(chǔ)器。使用Atmel公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。AT89S52具有以下標(biāo)準(zhǔn)功能:8k字節(jié)Flash,256字節(jié)RAM,32位I/O口線,看門(mén)狗定時(shí)器,2個(gè)數(shù)據(jù)指針,三個(gè)16位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,AT89S52可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。空閑模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。8位微控制器8K字節(jié)在系統(tǒng)可編程FlashAT89S52P0口:P0口是一個(gè)8位漏極開(kāi)路的雙向I/O口。作為輸出口,每位能驅(qū)動(dòng)8個(gè)TTL邏輯電平。對(duì)P0端口寫(xiě)“1〞時(shí),引腳用作高阻抗輸入。當(dāng)訪問(wèn)外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0具有內(nèi)部上拉電阻。在flash編程時(shí),P0口也用來(lái)接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn)時(shí),需要外部上拉電阻。P1口:P1口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口,P1輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL邏輯電平。對(duì)P1端口寫(xiě)“1〞時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流〔IIL〕。此外,P1.0和P1.2分別作定時(shí)器/計(jì)數(shù)器2的外部計(jì)數(shù)輸入〔P1.0/T2〕和時(shí)器/計(jì)數(shù)器2的觸發(fā)輸入〔P1.1/T2EX〕,具體如下所示。在flash編程和校驗(yàn)時(shí),P1口接收低8位地址字節(jié)。引腳號(hào)第二功能P1.0T2〔定時(shí)器/計(jì)數(shù)器T2的外部計(jì)數(shù)輸入〕,時(shí)鐘輸出P1.1T2EX〔定時(shí)器/計(jì)數(shù)器T2的捕捉/重載觸發(fā)信號(hào)和方向控制〕P1.5MOSI〔在系統(tǒng)編程用〕P1.6MISO〔在系統(tǒng)編程用〕P1.7SCK〔在系統(tǒng)編程用〕P2口:P2口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL邏輯電平。對(duì)P2端口寫(xiě)“1〞時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流〔IIL〕。在訪問(wèn)外部程序存儲(chǔ)器或用16位地址讀取外部數(shù)據(jù)存儲(chǔ)器〔例如執(zhí)行MOVX@DPTR〕時(shí),P2口送出高八位地址。在這種應(yīng)用中,P2口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。在使用8位地址〔如MOVX@RI〕訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口輸出P2鎖存器的內(nèi)容。在flash編程和校驗(yàn)時(shí),P2口也接收高8位地址字節(jié)和一些控制信號(hào)。P3口:P3口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口,p2輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL邏輯電平。對(duì)P3端口寫(xiě)“1〞時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流〔IIL〕。P3口亦作為AT89S52特殊功能〔第二功能〕使用,如下所示。在flash編程和校驗(yàn)時(shí),P3口也接收一些控制信號(hào)。P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2INT0(外中斷0)P3.3INT1(外中斷1)P3.4T0(定時(shí)/計(jì)數(shù)器0)P3.5T1(定時(shí)/計(jì)數(shù)器1)P3.6WR(外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通)P3.7RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)此外,P3口還接收一些用于FLASH閃存編程和程序校驗(yàn)的控制信號(hào)。RST——復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將是單片機(jī)復(fù)位。ALE/PROG——當(dāng)訪問(wèn)外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE〔地址鎖存允許〕輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時(shí)鐘振蕩頻率的1/6輸出固定的脈沖信號(hào),因此它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過(guò)一個(gè)ALE脈沖。對(duì)FLASH存儲(chǔ)器編程期間,該引腳還用于輸入編程脈沖〔PROG〕。如有必要,可通過(guò)對(duì)特殊功能存放器〔SFR〕區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活。此外,該引腳會(huì)被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置ALE禁止位無(wú)效。PSEN——程序儲(chǔ)存允許〔PSEN〕輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng)AT89C52由外部程序存儲(chǔ)器取指令〔或數(shù)據(jù)〕時(shí),每個(gè)機(jī)器周期兩次PSEN有效,即輸出兩個(gè)脈沖,在此期間,當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器,將跳過(guò)兩次PSEN信號(hào)。EA/VPP——外部訪問(wèn)允許,欲使CPU僅訪問(wèn)外部程序存儲(chǔ)器〔地址為0000H-FFFFH〕,EA端必須保持低電平〔接地〕。需注意的是:如果加密位LB1被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存EA端狀態(tài)。如EA端為高電平〔接Vcc端〕,CPU則執(zhí)行內(nèi)部程序存儲(chǔ)器的指令。FLASH存儲(chǔ)器編程時(shí),該引腳加上+12V的編程允許電源Vpp,當(dāng)然這必須是該器件是使用12V編程電壓Vpp。3.3軟件流程圖系統(tǒng)程序主要包括主程序、讀出溫度子程序、溫度轉(zhuǎn)換子程序、計(jì)算溫度子程序、顯示等等。3.3.1主程序主要功能是完成DS18B20的初始化工作,并進(jìn)行讀溫度,將溫度轉(zhuǎn)化成為壓縮BCD碼并在顯示器上顯示傳感器所測(cè)得的實(shí)際溫度。3.3.2讀出溫度子程序讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時(shí)需要進(jìn)行CRC校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(shù)據(jù)的改寫(xiě)。其程序流程圖如圖3.12所示。返回返回DS18B20復(fù)位跳過(guò)ROM命令讀取溫度命令讀取操作CRC檢驗(yàn)9字節(jié)完?CRC檢驗(yàn)正確?移入溫度存放器NYNY圖3.12讀出溫度子程序3.3.3溫度轉(zhuǎn)換命令子程序溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開(kāi)始命令,當(dāng)采用12位分辯率時(shí)轉(zhuǎn)換時(shí)間約為750ms,在本程序設(shè)計(jì)中采用1s顯示程序延時(shí)法等待轉(zhuǎn)換的完成。流程圖如圖3.13發(fā)DS18B20復(fù)位命令發(fā)DS18B20復(fù)位命令發(fā)跳過(guò)ROM命令發(fā)溫度轉(zhuǎn)換開(kāi)始命令返回圖3.13溫度轉(zhuǎn)換流程圖3.3.4計(jì)算溫度子程序計(jì)算溫度子程序?qū)AM中讀取值進(jìn)行BCD碼的轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值正負(fù)的判定,其程序流程圖如圖3.14所示YYN開(kāi)始溫度零下?溫度取值補(bǔ)碼置“—〞標(biāo)志計(jì)算小數(shù)位溫度計(jì)算整數(shù)位溫度置“+〞標(biāo)志返回圖3.14計(jì)算溫度子程序第四章硬件電路的設(shè)計(jì)程序編寫(xiě)完以后,我們先對(duì)其進(jìn)行仿真,初步驗(yàn)證電路圖和程序的可行性和正確性。4.1proteus簡(jiǎn)介Proteus是英國(guó)Labcenter公司開(kāi)發(fā)的電路分析與實(shí)物仿真軟件。它運(yùn)行于Windows操作系統(tǒng)上,可以仿真、分析(SPICE)各種模擬器件和集成電路,該軟件的特點(diǎn)是:
1實(shí)現(xiàn)了單片機(jī)仿真和SPICE電路仿真相結(jié)合。具有模擬電路仿真、數(shù)字電路仿真、單片機(jī)及其外圍電路組成的系統(tǒng)的仿真、RS232動(dòng)態(tài)仿真、I2C調(diào)試器、SPI調(diào)試器、鍵盤(pán)和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號(hào)發(fā)生器等。
2支持主流單片機(jī)系統(tǒng)的仿真。目前支持的單片機(jī)類型有:ARM7(LPC21xx)、8051/52系列、AVR系列、PIC10/12/16/18系列、HC11系列以及多種外圍芯片。
3提供軟件調(diào)試功能。在硬件仿真系統(tǒng)中具有全速、單步、設(shè)置斷點(diǎn)等調(diào)試功能,同時(shí)可以觀察各個(gè)變量、存放器等的當(dāng)前狀態(tài),因此在該軟件仿真系統(tǒng)中,也必須具有這些功能;同時(shí)支持第三方的軟件編譯和調(diào)試環(huán)境,如KeilC51uVision2、MPLAB等軟件。具有強(qiáng)大的原理圖繪制功能。總之,該軟件是一款集單片機(jī)和SPICE分析于一身的仿真軟件,功能極其強(qiáng)大。proteus6.5是目前最好的模擬單片機(jī)外圍器件的工具,真的很不錯(cuò)??梢苑抡?1系列、AVR,PIC等常用的MCU及其外圍電路〔如LCD,RAM,ROM,鍵盤(pán),馬達(dá),LED,AD/DA,局部SPI器件,局部IIC器件,...〕其實(shí)proteus與multisim比擬類似,只不過(guò)它可以仿真MCU。4.2proteus仿真圖開(kāi)始顯示時(shí)顯示的是學(xué)號(hào)如圖4.1所示。圖4.1顯示學(xué)號(hào)顯示正常溫度如圖4.2所示圖4.2顯示正常溫度超過(guò)設(shè)計(jì)的溫度上下限〔這里設(shè)上限和下限分別為100℃和90℃.〕蜂鳴器響報(bào)警如圖4.3所示圖4.3超過(guò)溫度線報(bào)警第五章調(diào)試性能及分析系統(tǒng)的性能調(diào)試以主程序?yàn)橹鳌S布{(diào)試比擬簡(jiǎn)單,直接插上電,軟件調(diào)試可以先編寫(xiě)顯示程序并進(jìn)行硬件的正確性檢驗(yàn),然后分別進(jìn)行主程序、從程序的編寫(xiě)和調(diào)試,由于DS18B20與單片機(jī)采用串行數(shù)據(jù)傳送,因此對(duì)DS18B20進(jìn)行編程時(shí)必須嚴(yán)格地保證讀寫(xiě)時(shí)序,否則將無(wú)法讀取測(cè)量結(jié)果。性能測(cè)試可用制作的溫度計(jì)和已有的成品溫度計(jì)來(lái)同時(shí)測(cè)量比擬,由于DS18B20精度較高,所以誤差指標(biāo)可以限制在0.1°C以內(nèi),另外,-55°C至+125°C的測(cè)溫范圍使得該溫度計(jì)完全適用于一般的應(yīng)用場(chǎng)合,其低電壓供電的特性可做成電池供電的手持電子溫度計(jì)如圖5.1。圖5.1調(diào)式結(jié)果總結(jié)本次的課程設(shè)計(jì)共五周時(shí)間,分別進(jìn)行了BS18D20電路原理圖的設(shè)計(jì),電路仿真圖的設(shè)計(jì)以及實(shí)物電路板的演示三個(gè)過(guò)程。經(jīng)過(guò)這次的課程設(shè)計(jì),我們不僅加深了對(duì)Proteus仿真軟件的了解和使用,還學(xué)到了許多課本上沒(méi)有涉及知識(shí),練習(xí)了電路原理圖的設(shè)計(jì)和仿真運(yùn)行,同時(shí)對(duì)上學(xué)期學(xué)習(xí)的單片機(jī)課程進(jìn)行了一次全面的復(fù)習(xí)和穩(wěn)固,收益很大。我們知道,課程設(shè)計(jì)一般強(qiáng)調(diào)能力培養(yǎng)為主,在獨(dú)立完成設(shè)計(jì)任務(wù)的同時(shí),還要注意其他幾方面能力的培養(yǎng)與提高,如獨(dú)立工作能力與創(chuàng)造力;綜合運(yùn)用專業(yè)及根底知識(shí)的能力,解決實(shí)際工程技術(shù)問(wèn)題的能力;查閱圖書(shū)資料、產(chǎn)品手冊(cè)和各種工具書(shū)的能力;工程繪圖的能力;書(shū)寫(xiě)技術(shù)報(bào)告和編制技術(shù)資料的能力。在專業(yè)知識(shí)與研究方法方面為日后的畢業(yè)設(shè)計(jì)乃至畢業(yè)后的工作奠定良好的根底這次課設(shè)讓我對(duì)單片機(jī)有了進(jìn)一步的了解,而且對(duì)Proteus仿真軟件的有了一定了解。體會(huì)到了Proteus仿真軟件的強(qiáng)大。通過(guò)本次課設(shè),能夠使我們熟練掌握單片機(jī)控制電路的設(shè)計(jì)、程序編寫(xiě)和系統(tǒng)調(diào)試,從而全面地提高我們對(duì)單片機(jī)的軟件、硬件等方面的理解,進(jìn)而增強(qiáng)我們?cè)趯?shí)踐環(huán)節(jié)的動(dòng)手操作能力。譬如,我們可以根據(jù)實(shí)驗(yàn)指導(dǎo)書(shū)的要求,完成DS18B20電路的硬件設(shè)計(jì)、電路器件的選擇、單片機(jī)軟件的運(yùn)行、以及整體系統(tǒng)調(diào)試,并寫(xiě)出完善的設(shè)計(jì)報(bào)告。在進(jìn)行課設(shè)之前,要求我們具備數(shù)字電路、模擬電路、電路根底、微機(jī)原理、電力電子、電機(jī)學(xué)和單片機(jī)等相關(guān)課程的知識(shí),并具備一些根本的實(shí)踐操作水平,為以后的就業(yè)打好一定的根底??偟膩?lái)說(shuō),這次的課程設(shè)計(jì)自己還是很滿意的,感覺(jué)收獲了不少東西,相信此次學(xué)到的知識(shí)在以后的生活和學(xué)習(xí)中對(duì)我會(huì)有很大的幫助!參考文獻(xiàn)[1]張五一,張道光.微機(jī)原理與接口技術(shù).鄭州:河南科學(xué)技術(shù)出版社,2006[2]李廣弟.單片機(jī)根底.北京:北京航空航天大學(xué)出版社,1994[3]廖常初.現(xiàn)場(chǎng)總線概述.電工技術(shù),1999.[4]倪曉軍.單片機(jī)原理與接口技術(shù)教程.北京:清華大學(xué)出版社,2009[5]姚年春向華Protel99SE根底教程.北京.人民名郵電出版社,2009[6]韓穎;Proteus在單片機(jī)技術(shù)實(shí)訓(xùn)教學(xué)中的應(yīng)用[J];中國(guó)科教創(chuàng)新導(dǎo)刊;2008年31期[7]周靈彬;張靖武.PROTEUS的單片機(jī)教學(xué)與應(yīng)用仿真[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用;2008年01期[8]張友德,涂時(shí)亮.單片微型機(jī)原理、應(yīng)用與實(shí)驗(yàn)[M].復(fù)旦大學(xué)出版社.[9]譚浩強(qiáng).C程序設(shè)計(jì)教程[M].清華大學(xué)出版社,2007.[10]余孟嘗.數(shù)字電子技術(shù)根底[M].高等教育出版社.[11]賈振國(guó),許琳.智能化儀器儀表原理及應(yīng)用[M].中國(guó)水利水電出版社.附錄1源程序#include<reg52.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintsbitDQ=P1^6;//ds18b20與單片機(jī)連接口sbitRS=P1^0;sbitRW=P1^1;sbitEN=P1^2;sbitBEEP=P1^7;ucharcodestr1[]={"Temperatureis"};ucharcodestr2[]={"studentN0:"};ucharcodestr3[]={"0967112127"};uchardatadisdata[5];ucharp=0;uinttvalue;//溫度值uchartflag;//溫度正負(fù)標(biāo)志//*************************lcd1602程序**************************/voiddelay1ms(uintms)//延時(shí)1毫秒{ uinti,j; for(i=0;i<ms;i++) for(j=0;j<114;j++);}//*************************報(bào)警程序**************************/voidbaojing(void){unsignedintj; BEEP=0;for(j=49;j>0;j--)//響30ms{BEEP=~BEEP;//輸出頻率800Hzdelay1ms(10);//延時(shí)310us} BEEP=0;}voidwr_com(ucharcom)//寫(xiě)指令//{ delay1ms(1); RS=0; RW=0; EN=0; P0=com; delay1ms(1); EN=1; delay1ms(1); EN=0;}voidwr_dat(uchardat)//寫(xiě)數(shù)據(jù)//{ delay1ms(1); RS=1; RW=0; EN=0; P0=dat; delay1ms(1); EN=1; delay1ms(1); EN=0;}voidlcd_init()//初始化設(shè)置//{ wr_com(0x38);delay1ms(5); wr_com(0x08);delay1ms(5); wr_com(0x01);delay1ms(5); wr_com(0x06);delay1ms(5); wr_com(0x0c);delay1ms(5);}voiddisplay(uchar*p)//顯示//{ while(*p!='\0') { wr_dat(*p); p++; delay1ms(1); }} voidinit_play()//初始化顯示{ lcd_init(); wr_com(0x80); display(str2); wr_com(0xc0); display(str3); delay1ms(3000); lcd_init();wr_com(0x80); display(str1);}/***************************ds18b20程序****************************/voiddelay_18B20(uinti)//延時(shí)1微秒{while(i--);}voidds1820rst()/*ds1820復(fù)位*/{ DQ=1;//DQ復(fù)位 delay_18B20(4);//延時(shí) DQ=0;//DQ拉低 delay_18B20(100);//精確延時(shí)大于480us DQ=1;//拉高 delay_18B20(40);}uchards1820rd()/*讀數(shù)據(jù)*/{ uchari=0; uchardat=0; for(i=8;i>0;i--) {
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 以新促老活動(dòng)方案
- 廣東省佛山市順德區(qū)2023-2024學(xué)年五年級(jí)下學(xué)期數(shù)學(xué)期末試卷(含答案)
- 仲秋服裝活動(dòng)方案
- QBT-制鹽工業(yè)檢測(cè)方法 微量溴的測(cè)定編制說(shuō)明
- 企業(yè)專場(chǎng)招聘會(huì)活動(dòng)方案
- 企業(yè)體能活動(dòng)方案
- 企業(yè)公司團(tuán)購(gòu)活動(dòng)方案
- 企業(yè)分散活動(dòng)方案
- 貴州省黔南布依族苗族自治州三都水族自治縣2022-2023學(xué)年五年級(jí)下學(xué)期數(shù)學(xué)期末試卷(含答案)
- 企業(yè)團(tuán)體減壓活動(dòng)方案
- 《肝衰竭診治指南(2024版)》解讀
- 幼兒園教育綜合理論知識(shí)考試題及答案(新版)
- 【MOOC】計(jì)量經(jīng)濟(jì)學(xué)-南京財(cái)經(jīng)大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- 車間培訓(xùn)課件教學(xué)課件
- 新生兒科等多部門(mén)QC小組運(yùn)用PDCA降低新生兒內(nèi)科血培養(yǎng)標(biāo)本陽(yáng)性率品管圈成果匯報(bào)
- 無(wú)人機(jī)植保技術(shù)課件:無(wú)人機(jī)植保經(jīng)驗(yàn)與案例
- 植物生理學(xué)(李合成)四川農(nóng)業(yè)大學(xué)版課后答案
- 桂林市2023-2024學(xué)年數(shù)學(xué)五年級(jí)第二學(xué)期期末質(zhì)量檢測(cè)試題含解析
- 絨花非遺文化傳承與商業(yè)開(kāi)發(fā)計(jì)劃書(shū)2024年
- 初中自薦信范文
- 2024年消毒防腐藥劑項(xiàng)目合作計(jì)劃書(shū)
評(píng)論
0/150
提交評(píng)論