




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、任務(wù)書學(xué)牛學(xué)姓名號(hào)班級(jí)專業(yè)設(shè)計(jì)(或論文)題目基于單片機(jī)的數(shù)字溫度計(jì)的設(shè)計(jì)指導(dǎo)教師姓名職稱工作單位及所從事專業(yè)聯(lián)系方式備注設(shè)計(jì)(論文)內(nèi)容:運(yùn)用電子技術(shù)知識(shí)、技能設(shè)計(jì)一個(gè)溫度度計(jì)功能要求如下:1. 采用ds18b20溫度傳感器實(shí)現(xiàn)溫度的采集工作,并用16位lcd顯示溫度。2. 具有采集溫度,顯示當(dāng)前溫度的功能。3. 溫度采集的范圍在-20-110攝氏度。要求完成:選擇各單元電路結(jié)構(gòu)并闡述工作原理,繪制整機(jī)電路原理圖(a4圖紙),寫出c 語(yǔ)言源程序;準(zhǔn)確計(jì)算或估算電路參數(shù),正確選擇電路元件與設(shè)備,給出元件、設(shè)備明細(xì)表; 撰寫設(shè)計(jì)說(shuō)明書,要求準(zhǔn)確闡述電路選擇依據(jù),反映計(jì)算方法、元件、設(shè)備選擇等設(shè)計(jì)過(guò)
2、程, 并使用軟件進(jìn)行仿真或制作實(shí)物。進(jìn)度安排:5月45月11日:查找資料,選擇參考方案5月115月18日:確定方案5月185月25日:查找資料,進(jìn)行單元電路的設(shè)計(jì)5月255月31日:整機(jī)電路分析5月316月7 口:整理報(bào)告,確定初稿6月76月14 口:檢查定稿主要參考文獻(xiàn)、資料(與清楚參考文獻(xiàn)名稱、作者、出版單位):1 蘇平.單片機(jī)原理與接口技術(shù).電子工業(yè)出版社.2003年5月2 林伸茂.8051單片機(jī)徹底研究實(shí)習(xí)篇.人民郵電出版社.2005年8月3 王靜霞.單片機(jī)應(yīng)用技術(shù)(c語(yǔ)言版)電子工業(yè)出版社.2009年1月4 陳坤、張義中等.電子設(shè)計(jì)技術(shù).電子科技大學(xué)出版社.1997年5月5 鄭應(yīng)光.
3、模擬電子線路(一).東南大學(xué)出版社.2005年3月李秀忠.單片機(jī)應(yīng)用技術(shù).人民郵電出版社.2007年1月7肖洪兵.跟我學(xué)單片機(jī).北京航空航天大學(xué)出版社.2002年3月審 批 意 見教研室負(fù)責(zé)人:年刀 日溫度的檢測(cè)與控制是工業(yè)生產(chǎn)過(guò)程中比較典型的應(yīng)用之一,隨著傳感器在生產(chǎn) 和?;钪械母訌V泛的應(yīng)用,利用新型單總線式數(shù)字溫度傳感器實(shí)現(xiàn)對(duì)溫度的測(cè)試與控 制得到更快的開發(fā)。在這里介紹了一種基于ds18b20和at89c52單片機(jī)的溫度測(cè)量及 控制系統(tǒng)的硬件結(jié)構(gòu)以及c語(yǔ)言程序設(shè)計(jì),該系統(tǒng)設(shè)計(jì)和布線簡(jiǎn)單,結(jié)構(gòu)緊湊,體積小, 重量輕,抗干擾能力強(qiáng),性價(jià)比高,擴(kuò)展方便,在大型倉(cāng)庫(kù),工廠,智能化建筑等領(lǐng)域 的多
4、點(diǎn)溫度檢測(cè)中有廣闊的應(yīng)用前景。關(guān)鍵詞 ds18b20; at89c52;溫度測(cè)量;控制摘要1第1章緒論1第2章 系統(tǒng)方案論證與比較22.1方案比較22. 2方案論證3第3章硬件設(shè)計(jì)53. 1主控芯片介紹53.2復(fù)位屯路73.3時(shí)鐘屯路83.4矩陣屯路93. 5顯示屯路103.6測(cè)溫屯路123.6.1 ds18b20單線數(shù)字溫度傳感器123.6.2 ds18b20i 作原理123.6.3 ds18b20的性能特點(diǎn)133.6.4 ds18b20 內(nèi)部結(jié)構(gòu)133.7整機(jī)工作原理15第4章軟件設(shè)計(jì)16第5章仿真與調(diào)試285. 1仿真與調(diào)試285. 2調(diào)試與運(yùn)行28結(jié)論29參考文獻(xiàn)30附錄1 源程序31
5、附錄2元器件名細(xì)表45附錄3仿真電路圖46第1章緒論隨著人們生活水平的不斷提高,單片機(jī)控制無(wú)疑是人們追求的目標(biāo)之一,它所給人 帶來(lái)的方便也是不可否定的。溫度測(cè)控技術(shù)也在各個(gè)領(lǐng)域應(yīng)用越來(lái)越廣泛,同時(shí)溫度測(cè) 量也被人們異常關(guān)注,一時(shí)間涌現(xiàn)出大量各式各樣的測(cè)試溫度儀器,這些儀器的原理到 底是怎樣的呢?說(shuō)到底也是所以溫度測(cè)控的范疇,其中數(shù)字溫度計(jì)就是一個(gè)典型的例 子,但人們對(duì)它的要求越來(lái)越高,要為現(xiàn)代人工作、科研、學(xué)習(xí)、生活提供更好的更方 便的設(shè)施就需要從數(shù)字單片機(jī)技術(shù)入手,一切想著數(shù)字化,智能化控制方向發(fā)展。本設(shè)計(jì)所介紹的數(shù)字溫度計(jì)與傳統(tǒng)數(shù)字溫度計(jì)相比,具有讀數(shù)方便,測(cè)溫范圍廣, 測(cè)量準(zhǔn)確,其輸出采
6、用數(shù)字顯示,主要用于對(duì)測(cè)溫比較準(zhǔn)確的地方,或科研實(shí)驗(yàn)室使用, 測(cè)溫傳感器使用ds18b20,用lcd實(shí)現(xiàn)溫度顯示。第2章 系統(tǒng)方案論證與比較2.1方案比較方案一:采用熱電偶溫差電路測(cè)溫,溫度檢測(cè)部分可以采用低溫?zé)崤?,熱電偶由兩個(gè)焊接在 一起的異金屬導(dǎo)線組成(熱電偶的組成如圖2-1),熱電偶產(chǎn)牛的熱電勢(shì)由兩種金屬的接 觸電勢(shì)和單一導(dǎo)體的溫差電勢(shì)組成。通過(guò)將參考結(jié)點(diǎn)保持在已知溫度并測(cè)量該電壓,便 可以推測(cè)出檢測(cè)結(jié)點(diǎn)的溫度。數(shù)據(jù)采集部分則使用帶有a/d通道的單片機(jī),在將隨被溫 度變化的屯壓或屯流采集過(guò)來(lái),進(jìn)行a/d轉(zhuǎn)換后,就可以用單片機(jī)進(jìn)行數(shù)據(jù)處理了,在 顯示電路上就可以將北側(cè)溫度顯示出來(lái)。熱電偶的
7、優(yōu)點(diǎn)是工作溫度寬,且體積小,但是 也存在輸出電壓小,容易遭受來(lái)自導(dǎo)線環(huán)路噪音的影響以及漂移較高的缺點(diǎn)并且這種電 路需要用到a/d轉(zhuǎn)換電路,感溫電路比較麻煩。2-1方案一框圖方案二:采用數(shù)字溫度芯片ds18b20測(cè)量溫度,輸出信號(hào)全數(shù)字化。便于單片機(jī)處理和控 制,省去傳統(tǒng)的測(cè)溫方法的很多外圍電路。且該芯片的物理化學(xué)性質(zhì)穩(wěn)定,它溫用作工 業(yè)測(cè)溫元件,此元件線性較好。在0100攝氏度時(shí),最大線性偏差小于1攝氏度ods18b20 的最大特點(diǎn)之一是采用了單總數(shù)的數(shù)據(jù)傳輸,由數(shù)學(xué)溫度計(jì)ds18b20和微控制器 at89c52構(gòu)成溫度測(cè)量裝置,它直接輸出溫度的數(shù)字信號(hào),可直接和計(jì)算機(jī)連接。這樣 溫度系統(tǒng)的結(jié)
8、構(gòu)就比較簡(jiǎn)單,體積也不大。采用51單片機(jī)控制軟件編程的自由度大, 而且體積小,硬件實(shí)現(xiàn)簡(jiǎn)單,安裝方便。該系統(tǒng)利用at89c51芯片控制溫度傳感器ds18b20進(jìn)行溫度的實(shí)時(shí)檢測(cè)并顯示, 能夠?qū)崿F(xiàn)快速測(cè)量環(huán)境溫度,并可以根據(jù)需要設(shè)置上限報(bào)警溫度。圖2-2方案二框圖從以上兩總方案,容易看出方案一的溫測(cè)裝置可測(cè)溫度范圍廣,體積小,但是單線 性誤差大。方案二的溫測(cè)裝置電路簡(jiǎn)單,精準(zhǔn)度較高,實(shí)現(xiàn)方便,軟件設(shè)計(jì)也比較簡(jiǎn)單,故本 次設(shè)計(jì)采用方案二。顯示屯路可以采用兩種方案:第一種是通過(guò)單片機(jī)控制譯碼器將譯碼器輸出的數(shù)據(jù) 送給數(shù)碼管進(jìn)行顯示,但是要單獨(dú)增加一個(gè)顯示電路,使設(shè)計(jì)比較復(fù)雜。另一種是直接 運(yùn)用lcd
9、液晶顯示,即直接通過(guò)單片對(duì)其進(jìn)行顯示以及數(shù)據(jù)處理較多;因此選擇第二 種方案。2.2方案論證在日常牛活及工農(nóng)業(yè)牛產(chǎn)中經(jīng)常要檢測(cè)溫度,傳統(tǒng)的方式是采用熱電偶或熱電阻。 其碩件電路和軟件調(diào)試比較復(fù)雜,制作成本較高。近年來(lái)隨著科技的飛速發(fā)展,單片機(jī) 的應(yīng)用正不斷走向深入。所以我們選用單片機(jī)作為核心部件進(jìn)行邏輯控制及信號(hào)的產(chǎn) 生,用單片機(jī)本生的優(yōu)勢(shì)節(jié)約成本,使屯路更簡(jiǎn)單。根據(jù)題目的要求,本次設(shè)計(jì)采用由at89c51單片機(jī)及ds18b20溫度傳感器組成數(shù) 據(jù)采集電路,加上顯示電路和控制電路等,根據(jù)溫度數(shù)據(jù)測(cè)量,通過(guò)控制電路對(duì)溫度進(jìn)行控 制。本系統(tǒng)具有快速顯示、測(cè)量準(zhǔn)確、精度高、可調(diào)溫控范圍、碩件結(jié)構(gòu)簡(jiǎn)單等
10、優(yōu)點(diǎn), 是一種比較經(jīng)濟(jì)的溫度控制系統(tǒng)。a/d轉(zhuǎn)換器將溫度傳感器采集的溫度模擬信號(hào)轉(zhuǎn)化成數(shù)字信號(hào),送入單片機(jī)的1/0 數(shù)據(jù)接口,然后通過(guò)單片機(jī)讀回i/o數(shù)據(jù)進(jìn)行溫度的判斷,最后將數(shù)據(jù)送入顯示譯碼單 元。顯示時(shí),譯碼電路是將單片機(jī)輸出的bcd碼送入譯碼器,通過(guò)其譯碼后送入lcd 顯示電路。第3章硬件設(shè)計(jì)3.1主控芯片介紹單片機(jī)at89c2051具有低電壓供電和體積小等特點(diǎn),四個(gè)端口只需要兩個(gè)口就能 滿足電路系統(tǒng)的設(shè)計(jì)需要,很適合便攜手持式產(chǎn)品的設(shè)計(jì)使用系統(tǒng)可用二節(jié)電池供電。at89c51是一個(gè)低電壓,高性能cmos 8位單片機(jī),片內(nèi)含4k bytes的可反復(fù)擦寫 的flash只讀程序存儲(chǔ)器和128
11、 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(ram),器件采用atmel 公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)mcs-51指令系統(tǒng),片內(nèi)置通用8位 中央處理器和flash存儲(chǔ)單元,內(nèi)置功能強(qiáng)大的微型計(jì)算機(jī)的at89c51提供了高性價(jià)比 的解決方案。at89c51是一個(gè)低功耗高性能單片機(jī),40個(gè)引腳,32個(gè)外部雙向輸入/輸出(i/o) 端口,同時(shí)內(nèi)含2個(gè)外中斷口,2個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口, at89c51可以按照常規(guī)方法進(jìn)行編程,也可以在線編程。其將通用的微處理器和flash 存儲(chǔ)器結(jié)合在一起,特別是可反復(fù)擦寫的flash存儲(chǔ)器可有效地降低開發(fā)成本。=>=<:&
12、gt;=<嗤垮1|-=1zsdldidiu2xtal1xtal2rstpsenaleea01234567pppppppppo.o/adop0.1/ad1p0.2/ad2p0.3/ad3p0.4/ad4p0.5/adcp0.6/ad6p0.7/ad7p2.0xa8p2.1/aqp2/a10p2.3/a11p2.4/a12p2.5/a13p2.6/a14p2.7/a15p3.0/rxdp3.1/txdp3 2/1nt0p3.3/1nt1p3 4zt0p3.5/t1p3 6zwrp3.7/rdat89c51<text>圖3-1 at89c51單片機(jī)的管腳圖表3-1at89c51單片
13、機(jī)的管腳功能。兼容mcs-51指令系統(tǒng)4k可反復(fù)擦寫(>1000次)flash rom32個(gè)雙向i/o 口可編程uarl通道兩個(gè)16位可編程定時(shí)/計(jì)數(shù)器全靜態(tài)操作0-24mhz1個(gè)串行中斷128x8bit 內(nèi)部 ram兩個(gè)外部中斷源共6個(gè)屮斷源可直接驅(qū)動(dòng)led3級(jí)加密位低功耗空閑和掉電模式軟件設(shè)置睡眠和喚醒功能vcc:供電電壓。gnd:接地。pod: p0 口為一個(gè)8位漏級(jí)開路雙向i/o 口,每腳可吸收8ttl門電流。當(dāng)p1 口的管 腳第一次寫1時(shí),被定義為高阻輸入。p0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定 義為數(shù)據(jù)/地址的第八位。在fiash編程時(shí),p0 口作為原碼輸入口,當(dāng)fias
14、h進(jìn)行校 驗(yàn)時(shí),p0輸出原碼,此時(shí)*p0外部必須被拉高。p1 口: p1 口是一個(gè)內(nèi)部提供上拉電阻的8位雙向i/o 口,p1 口緩沖器能接收輸出4ttl 門電流。p1 口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,p1 口被外部下拉為低電 平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在flash編程和校驗(yàn)時(shí),p1 口作為第 八位地址接收。p2 : p2 口為一個(gè)內(nèi)部上拉電阻的8位雙向i/o 口,p2 口緩沖器可接收,輸出4個(gè)ttl 門電流,當(dāng)p2 口被寫“1呻寸,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸 入時(shí),p2 口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。p2 口當(dāng)用于
15、外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),p2 口輸出地址的高八位。在 給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),p2 口輸出其特殊功能寄存器的內(nèi)容。p2 口在flash編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和 控制信號(hào)。p3 口: p3 口是8個(gè)帶內(nèi)部上拉電阻的雙向i/o 口,可接收輸出4個(gè)ttl門電流。當(dāng)p3 口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低 屯平,p3 口將輸出電流(ill)這是由于上拉的緣故。p3 口也可作為at89c51的一些特殊功能口,如下所示:p3 口管腳備選功能p3.0 rxd (串行輸入口)p3
16、txd (串行輸出口)p3.2 /into (外部中斷0)p3.3 /int1 (外部中斷1)p3.4 to (計(jì)時(shí)器0外部輸入)p3.5t1 (計(jì)時(shí)器1外部輸入)p3.6/wr (外部數(shù)據(jù)存儲(chǔ)器寫選通)p3.7/rd (外部數(shù)據(jù)存儲(chǔ)器讀選通)p3 口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。rst:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持rst腳兩個(gè)機(jī)器周期的高電平時(shí)間。 ale/prog:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。 在flash編程期間,此引腳用于輸入編程脈沖。在平時(shí),ale端以不變的頻率周期輸 出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外
17、部輸出的脈沖或用于定 時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一個(gè)ale脈沖。如想 禁止ale的輸出可在sfr8eh地址上置0。此時(shí),ale只有在執(zhí)行movx, movc 指令是ale才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ale 禁止,置位無(wú)效。/psen:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩 次/psen有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/psen信號(hào)將不出現(xiàn)。 /ea/vpp:當(dāng)/ea保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(ooooh-ffffh),不管是 否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/ea將內(nèi)部鎖定
18、為reset;當(dāng)/ea端保持高 電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在flash編程期間,此引腳也用于施加12v編程電源(vpp)oxtal1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。xtal2:來(lái)自反向振蕩器的輸出。3.2復(fù)位電路為確保兩點(diǎn)間溫度控制系統(tǒng)中電路穩(wěn)定可靠工作,復(fù)位電路是必不可少的一部分, 復(fù)位電路的第一功能是上電復(fù)位。一般電路正常工作需要供電電源為5v±5%,即4.755.25vo復(fù)位是單片機(jī)的初始化操作,其fl的是使cpu及各專用寄存器處于一個(gè)確定的初 始狀態(tài)。如:把pc的內(nèi)容初始化為0000h,使單片機(jī)從0000h單元開始執(zhí)行程序。除 了進(jìn)入系統(tǒng)的正常初始化之外,當(dāng)
19、單片機(jī)系統(tǒng)在運(yùn)行出錯(cuò)或操作錯(cuò)誤使系統(tǒng)處于死鎖狀 態(tài)時(shí),為擺脫困境,也需要復(fù)位以使其恢復(fù)正常工作狀態(tài)。rst端的外部復(fù)位電路有兩種操作方式:上電自動(dòng)復(fù)位和按鍵手動(dòng)復(fù)位。按鍵手動(dòng) 復(fù)位有電平方式和脈沖方式兩種,本系統(tǒng)設(shè)計(jì)采用上電復(fù)位,如圖23所示。上電復(fù)位 是直接將rst端通過(guò)電阻接高電平來(lái)實(shí)現(xiàn)單片機(jī)的復(fù)位。圖3-2復(fù)位電路3.3時(shí)鐘電路單片機(jī)的時(shí)鐘信號(hào)用來(lái)提供單片機(jī)內(nèi)各種微操作的時(shí)間基準(zhǔn),時(shí)鐘電路用于產(chǎn)生單 片機(jī)工作所需要的時(shí)鐘信號(hào)。單片機(jī)的時(shí)鐘信號(hào)用來(lái)提供單片機(jī)片內(nèi)各種微操作的時(shí)間基準(zhǔn),時(shí)鐘信號(hào)通常'用兩 種電路形式得到:內(nèi)部振蕩和外部振蕩。本系統(tǒng)設(shè)計(jì)采用內(nèi)部振蕩方式,如圖24所示。
20、mcs-51單片機(jī)內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反向放大器,引腳xtal1和xtal2 分別是此放大電器的輸入端和輸出端,由于采用內(nèi)部方式時(shí),電路簡(jiǎn)單,所得的時(shí)鐘信 號(hào)比較穩(wěn)定,實(shí)際使用屮常采用這種方式。x1t30-crystal<text>第8頁(yè)3.4矩陣電路按照鍵盤與單片機(jī)的連接方式可分為獨(dú)立式鍵盤與矩陣式鍵盤。矩陣式鍵盤是一種 常見的輸入裝置,在h常生活中,矩陣式鍵盤在計(jì)數(shù)機(jī)、電話、手機(jī)、微波爐等各式電 子產(chǎn)品上已經(jīng)被廣泛應(yīng)用。在鍵盤中按鍵較多時(shí),為了減少i/o 口的占用,通常將按鍵 排列成矩陣形式。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連接,而是通 過(guò)一個(gè)按鍵加
21、以連接。這樣,一個(gè)端口就可以構(gòu)成4x4=16個(gè)按鍵,比之直接將端口線 用于鍵盤多出了一倍,而r線數(shù)越多,區(qū)別越明顯,比如再多加一條線就可以構(gòu)成20 的鍵盤,而直接用端口線則只能多出一鍵。所以本次設(shè)計(jì)采用的是矩陣式鍵盤,確定矩 陣式鍵盤上的何鍵被按下可以采用行掃描法。判斷鍵盤屮有無(wú)鍵按下:將全部行線置低電平,然后檢測(cè)列線的狀態(tài)。只要有一列的電平為低,則表示鍵盤 中有鍵被按下,而且閉合的鍵位低于電平線與4根行線相交叉的4個(gè)按鍵之中。若所有 列線均為高電平,則按鍵中無(wú)鍵按下。判斷閉合鍵所在位置:在確認(rèn)有鍵按下后,即可進(jìn)入確定具體閉合鍵的過(guò)程。其方法是:依次將行線置為 低電平,即在置某根行線為低電平時(shí)
22、,其它線為高電平。在確定某根行線位置為低電平 后,在逐行檢測(cè)各列線的電平狀態(tài)。若某列為低,則該列線與置為低電平的行線交叉處 的按鍵就是閉合的按鍵。圖3-4矩陣鍵盤3.5顯示電路在單片機(jī)應(yīng)用系統(tǒng)中,對(duì)于系統(tǒng)的運(yùn)行狀態(tài)和運(yùn)行結(jié)果,通常都需要直觀交互顯示 出來(lái)。單片機(jī)應(yīng)用系統(tǒng)中最常用的顯示器有l(wèi)ed和lcd兩種。這兩種顯示器都可以顯 示數(shù)字、字符及系統(tǒng)的狀態(tài),led和led數(shù)碼顯示最為普遍,本設(shè)計(jì)采用的是更為環(huán) 保的lcd顯示器。字符型液晶顯示模塊是一種專門用于顯示字母,數(shù)字,字符等點(diǎn)陣式lcd,目前常 用的有16x1,16x2,20x2,40x2行等模塊。點(diǎn)陣字符型lcd的接口特性點(diǎn)陣字符型lcd
23、是專門用于顯示數(shù)字,字母,圖形符號(hào)及少量自定義字號(hào)的液晶 顯示器。這類顯示器把lcd控制器,點(diǎn)陣驅(qū)動(dòng)器,字符存儲(chǔ)器,顯示體及少量的組容 元件等集成一個(gè)液晶顯示模塊,鑒于字符型液晶顯示模塊目前在國(guó)際上已經(jīng)規(guī)范化,其 電特性及接口特性是統(tǒng)一的。因此,只要設(shè)計(jì)出一種字號(hào)的接口電路,在指令上稍加修 改即可使用各種規(guī)格的字符型液晶顯示模塊。字符型液晶顯示模塊的控制器大多數(shù)為fi 立公司生產(chǎn)的hd44780及其兼容的控制器。點(diǎn)陣型液晶顯示模塊的基本特點(diǎn)(1) 液晶顯示屏是以若干5x8或5x11點(diǎn)陣塊組成的顯示字符群。每個(gè)點(diǎn)陣塊為一個(gè) 字符位,字符間距和行距都為一個(gè)點(diǎn)的寬度。(2) 主控電路電路為hd447
24、80-及其他公司的全兼容電路。因此從程序員的角度來(lái)說(shuō), lcd的顯示接口與編程是面向hd44780的,只要了解hd44780的編程結(jié)構(gòu)即可進(jìn)行 lcd的顯示編程。(3) 內(nèi)部具有字符發(fā)生器rom,可顯示192種字符。(4) 具有64字節(jié)的自定義字符ram,可以定義8個(gè)5x8點(diǎn)陣字符或4個(gè)5x11點(diǎn)陣 字符。(5) 具有64字節(jié)的數(shù)據(jù)顯示ram,共進(jìn)行顯示編程時(shí)使用。(6) 標(biāo)準(zhǔn)接口,與m68hc08系列mcu容易接口。(7) 模塊結(jié)構(gòu)緊湊,輕巧,裝備容易。(8) 單+5v電源供電。(9) 低功耗,高可靠性。(10) hd44780的引腳與時(shí)序(11 )hd44780的外部接口信號(hào)一般有16條,
25、與mcu的接口有8條數(shù)據(jù)線dbodb7和3條控制線rs,rw,e,hd44780的引腳功能如表3-2所示。表3-2 hd47780的引腳功能表引腳符號(hào)狀態(tài)功能1vss電源地2vdd電源正,接+5v3vl液晶顯示偏壓4rs輸入寄存器選擇:為1時(shí)選擇數(shù)據(jù)寄存器;為0時(shí)選擇指令寄存器5rw輸入r/w為讀寫選擇線:為1時(shí)進(jìn)行讀操作,為0時(shí)進(jìn)行寫操作6e輸入使能信號(hào)7dbo三態(tài)數(shù)據(jù)總線(lsb)8db1三態(tài)數(shù)據(jù)總線9db2三態(tài)數(shù)據(jù)總線10db3三態(tài)數(shù)據(jù)總線11db4三態(tài)數(shù)據(jù)總線12db5三態(tài)數(shù)據(jù)總線13db6三態(tài)數(shù)據(jù)總線14db7三態(tài)數(shù)據(jù)總線15a背光源正極16k背光源負(fù)極控制器hd44780的信號(hào)功能
26、控制如表3-33-3控制器hd44780的信號(hào)功能rsr/we功能00下降沿寫指令代碼01高電平讀忙標(biāo)志和ac值10下降沿寫數(shù)據(jù)11讀數(shù)據(jù)-m016lq2> > >ct iz luqqqqqqqqcm1co*寸90卜co0oxcmcos <'2rp110k383374365356347338329212223圖35 lcd顯示電路3.6測(cè)溫電路3.6.1 ds18b20單線數(shù)字溫度傳感器由dallas半導(dǎo)體公司生產(chǎn)的ds18b20型單線智能溫度傳感器,屬于新一代適配 微處理器的智能溫度傳感器,可廣泛用于工業(yè)、民用、軍事等領(lǐng)域的溫度測(cè)量及控制儀 器、測(cè)控系統(tǒng)和大型
27、設(shè)備屮。它具有體積小,接口方便,傳輸距離遠(yuǎn)等特點(diǎn)。產(chǎn)品的主要技術(shù)指標(biāo):(1) 測(cè)量范圍:55°c+125°c;(2) 測(cè)量精度:0.5°c;(3) 反應(yīng)時(shí)間500mso3.6.2 ds18b20t 作原理溫度傳感器ds18b20將被測(cè)環(huán)境溫度轉(zhuǎn)化成帶符號(hào)的數(shù)字信號(hào)(以十六位補(bǔ)碼形 式,占兩個(gè)字節(jié))在通過(guò)單片機(jī)發(fā)出命令送給顯示器。它的輸出腳i/o直接與單片機(jī)相 連,并接一個(gè)上拉電阻,傳感器采用外部電源供電。傳感器控制程序是按照ds18b20 的通信協(xié)議編制。系統(tǒng)的工作是在程序控制下,完成對(duì)傳感器的讀寫和對(duì)溫度的顯示。3.6.3 ds18b20的性能特點(diǎn)(1)采用單總
28、線專用技術(shù),既可通過(guò)串行口線,也可通過(guò)其它i/o 口線與微機(jī)接口,無(wú) 須經(jīng)過(guò)其它變換電路,直接輸出被測(cè)溫度值(9位二進(jìn)制數(shù),含符號(hào)位); 測(cè)溫范圍為55°c+125°c,測(cè)量分辨率為0.0625°c; 內(nèi)含64位經(jīng)過(guò)激光修正的只讀存儲(chǔ)器rom;(4) 適配各種單片機(jī)或系統(tǒng)機(jī);(5) 用戶可分別設(shè)定各路溫度的上、下限;(6) 內(nèi)含寄生電源。3.6.4 ds18b20內(nèi)部結(jié)構(gòu)ds18b20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻rom,溫度傳感器,非揮發(fā)的溫 度報(bào)警觸發(fā)器th和tl,高速暫存器。ds18b20的管腳排列如圖3 5所示。64位光刻 rom是岀廠前被光刻好的,
29、它可以看作是該ds18b20的地址序列號(hào)。不同的器件地址 序列號(hào)不同。i/o 一18gnd_27ds 18b20nc 一36nc 一45_ nc一 nc£031封裝ncpr35封裝圖3-6ds18b20引腳分布圖表34 ds18b20引腳功能序號(hào)寄存器名稱作用序號(hào)寄存器名稱0溫度低字節(jié)以16位補(bǔ)碼形式存放4、5保留字節(jié)1、21溫度高字節(jié)以16位補(bǔ)碼形式存放6計(jì)數(shù)器余值2th/用戶字節(jié)1存放溫度上限7計(jì)數(shù)器/°c3hl/用戶字節(jié)2存放溫度下限8crc表35 ds18b20信號(hào)功能指令約定代碼操作說(shuō)明溫度轉(zhuǎn)換44h啟動(dòng)ds18b20進(jìn)行溫度轉(zhuǎn)換讀暫存器beh讀暫存器9個(gè)字節(jié)內(nèi)容
30、寫暫存器4eh將數(shù)據(jù)寫入暫存器的th、tl字節(jié)復(fù)制祈存器48h把暫存器的th、tl字節(jié)寫到e2ram中重新調(diào)e2ramb8h把e2ram中的th、tl字節(jié)寫到暫存器th、tl字節(jié)讀電源供電方式b4h啟動(dòng)ds18b20發(fā)送電源供電方式的信號(hào)給主cpu以12位轉(zhuǎn)化為例說(shuō)明溫度高低字節(jié)存放形式及計(jì)算:12位轉(zhuǎn)化后得到的12位數(shù)據(jù), 存儲(chǔ)在ds18b20的兩個(gè)高低兩個(gè)8位的ram中,二進(jìn)制中的前面5位是符號(hào)位。如果 測(cè)得的溫度大于0,這5位為0,只要將測(cè)到的數(shù)值乘于0.0625即可得到實(shí)際溫度;如 果溫度小于0,這5位為1,測(cè)到的數(shù)值需要取反加1再乘于0.0625才能得到實(shí)際溫度。3.6.5 ds18
31、b20控制方法在硬件上,ds18b20與單片機(jī)的連接有兩種方法,一種是vcc接外部電源,gnd 接地,i/o與單片機(jī)的i/o線相連;另一種是用寄生電源供屯,此吋udd、gnd接地, i/o接單片機(jī)i/o。無(wú)論是內(nèi)部寄牛電源還是外部供電,i/o 口線要接5kq左右的上拉電 阻。此次設(shè)計(jì)選擇的是前面一種控制。表3-2 ds18b20有六條控制命令cpu對(duì)ds18b20的訪問流程是:先對(duì)ds18b20初始化,再進(jìn)行rom操作命令, 最后才能對(duì)存儲(chǔ)器操作,數(shù)據(jù)操作。ds18b20每一步操作都要遵循嚴(yán)格的工作時(shí)序和通 信協(xié)議。如主機(jī)控制ds18b20完成溫度轉(zhuǎn)換這一過(guò)程,根據(jù)ds18b20的通訊協(xié)議,須
32、 經(jīng)三個(gè)步驟:每一次讀寫之前都要對(duì)ds18b20進(jìn)行復(fù)位,復(fù)位成功后發(fā)送一條rom指 令,最后發(fā)送ram指令,這樣才能對(duì)ds18b20進(jìn)行預(yù)定的操做。r24. 7kg、dgnd圖3-7測(cè)溫電路3.7整機(jī)工作原理當(dāng)接通電源以后,溫度傳感器止常工作,溫度傳感器將根據(jù)被測(cè)溫度的不同來(lái)米集 不同的數(shù)據(jù),然后將所采集到的數(shù)據(jù)傳送到比較器到中,然后由比較器將采集到的數(shù)據(jù) 轉(zhuǎn)變成高低屯平,在送入單片機(jī),單片機(jī)通過(guò)控制各個(gè)引腳屯平的高低來(lái)來(lái)控制溫度的 顯示輸出,當(dāng)溫度顯示th為110°c, tl為20°c,通過(guò)矩陣鍵盤電路可以調(diào)節(jié)th和 tl的初始值,并且還可以調(diào)節(jié)當(dāng)前的顯示的溫度值,按一
33、次鍵盤th和tl的值自加一 或自減一,當(dāng)減到低于2(tc或高于110。時(shí),將自動(dòng)返回初始值。整機(jī)電路圖如圖38 所示an i icxp» c pl 6 hl txtal1xtal5rp1rzftaip21.a> 刃2sr 刃;皿們 陀4" 12 4am w 7zpj ?<rx0plu3vcc co cm021002圖3-8整機(jī)電路圖第4章軟件設(shè)計(jì)整個(gè)系統(tǒng)的功能是由硬件電路配合軟件來(lái)實(shí)現(xiàn)的,當(dāng)硬件基木定型的時(shí)候軟件也基 本定下拉了,從軟件的功能不同,可以分為兩的類:一是主程序,它是整個(gè)軟件的核心, 專門用來(lái)協(xié)調(diào)各個(gè)執(zhí)行模塊和操作者的聯(lián)系。二是子程序,它是用來(lái)完成各
34、種實(shí)質(zhì)性的 工作的,如測(cè)量、計(jì)算、顯示、通訊等。每一個(gè)執(zhí)行軟件就是一個(gè)小的執(zhí)行模塊,這里 將每-個(gè)模塊-一列出來(lái),并為每個(gè)執(zhí)行模塊進(jìn)行功能定義和接口定義。各執(zhí)行模塊規(guī) 劃好以后,就可以規(guī)劃監(jiān)控軟件了。首先要根據(jù)系統(tǒng)的總體功能選擇一種最合適的主程 序結(jié)構(gòu),然后根據(jù)實(shí)時(shí)性的條件,合理安排監(jiān)控軟件和執(zhí)行軟件之間的調(diào)度關(guān)系。4.1主程序模塊主程序主要完成碩件初始化,子程序調(diào)用等功能圖41主程序流程圖主程序函數(shù)如下:void main() setdsl8b20(th,tl,rs);delay(loo);while(l)pt=readtemperature(); temper_lcd();user_tem
35、per_lcd(user_temper); alarm_lcd(th,tl);lcdnitial();lcd_print(o,o,tempbuffero);lcd_print(o,l ,tcmpbuftcrl); scan_full();if(key_ok)key_value=key_scan();設(shè)置上下限報(bào)警溫度和分辨率看有無(wú)鍵按下如有鍵按下則看到底哪個(gè)鍵按下調(diào)用鍵盤掃描程序鍵盤命令處理函數(shù)keycommand(keyvalue);圖4-2 ds18b20初始化流程圖ds18b20初始化函數(shù)void init ds 18b20(void)unsigned char x=0;dq = 0;單
36、片機(jī)將dq拉低delay_18b20(80);精確延時(shí)大于480usdq=1;拉高總線delay_18b20(14);x=dq;delay_18b20(20);/*ds 8b20個(gè)字節(jié)*/unsigned char rcadoncchar(void)unsigned char i=0;unsigned char dat = 0;for (i=8;i>0;i-)dq = 0; /給脈沖信號(hào)dat»= 1;dq= 1;/給脈沖信號(hào)if(dq)dat|=0x80;delay_18b20(4);return(dat);溫度測(cè)量的結(jié)果以二進(jìn)補(bǔ)碼形式來(lái)存放,分辨力12位的測(cè)量結(jié)果用帶5個(gè)符
37、號(hào) 的16位二進(jìn)制格式來(lái)表示,高低8位分別存儲(chǔ)在兩個(gè)ram單元中,前面5位s代 表符號(hào)位,ds18b20函數(shù)的作用就是完成這一過(guò)程的圖4-3ds18b20寫字節(jié)流程圖ds18b20寫函數(shù)void setdsl 8b20(unsigned char th,unsigned char tl,unsigned char rs) init_ds18b20();writeonechar(oxcc); /跳過(guò)讀序號(hào)列號(hào)的操作writeonechar(ox4e);writeonechar(th);寫入想設(shè)定的溫度報(bào)警上限writeonechar(tl);寫入想設(shè)定的溫度報(bào)警下限writeonechar(rs
38、);lcd上電時(shí),都必須按照一定的時(shí)序?qū)cd進(jìn)行初始化操作,主要任務(wù)是設(shè)置lcd顯示狀態(tài),清屏,輸入方式,光標(biāo)位置等。的工作方式,圖4-3lcd初始化流程圖lcd初始化程序void lcd initial ()lcden=0;lcd_write (lcd_comiand, 0x38) ;/8 位數(shù)據(jù)端口 lcd write(lcd command, 0x38);lcd_setdi splay (lcd_sh0w | lcd_no_cursor) ;/開啟顯示,無(wú)光標(biāo)lcd_write (lcd_com1and, lcd_clear_screen) ;/清屏lcd_setinput (lcd_
39、ac_up | lcd_no_move) ; /ac 遞增, 畫面不動(dòng)void gotoxy(unsigned char x, unsigned char y)if (y=0)lcd_write(lcd_command, 0x80 x);if (y=l)lcd write (lcd command, 0x801 (x-0x40);void print (unsigned char *str) while(*str!二'0')lcd_write(lcd_data, *str);str+;要想把顯示字符顯示在某一指定位置,就必須先將顯示數(shù)據(jù)寫在相應(yīng)的ddram地 址中,寫數(shù)據(jù)操作函
40、數(shù)就是完成這一過(guò)程的函數(shù)圖4-4lcd寫數(shù)據(jù)流程圖void lcd wait(void)lcdrs=0;/rs=0表示選擇指令寄存器lcdrw=l; _nop_();/rw=l 表示進(jìn)行讀操作lcden=l; _nop_(); 在en為下降沿的時(shí)候鎖存據(jù) while(dbport&0x80)lcden=0;_nop_();0p_()lcden=l;_nop_();_nop_();lcden=0;lcd要能讀寫數(shù)據(jù),必須對(duì)lcd進(jìn)行讀寫操作,讀操作時(shí),先設(shè)置rs和r/w狀態(tài),在設(shè)置e信號(hào)為高,這時(shí)從數(shù)據(jù)口讀取數(shù)據(jù),寫操作時(shí),使能e信號(hào)下降沿有效圖4-5lcd讀寫操作流程圖 lcd寫指令函
41、數(shù)#define lcd command#define lcd data#define lcd_clear_screen/ 清屏#define lcd_homing/光標(biāo)返回原點(diǎn)void lcd_write(bit style, unsigned char input)lcden=0;lcdrs=style;lcdrw=0;_nop_();dbport=input;_nop_();lcden=l;op_();lcden=0;_nop_();lcd_wait();f j a卜 f/ / 久/|占/>c金斥 t存存存存存存存存存存存存存存存存存存存存存存存存存存存存存存存存存存存存存存存存存
42、存存存存存存存存存存存存存存存存存存存#define lcd_show業(yè)不刃#define lcd hide/顯示關(guān)#define lcd cursor顯示光標(biāo)#define lcd_no_cursor/無(wú)光標(biāo)#define lcd flash光標(biāo)閃動(dòng)#define lcd no flash光標(biāo)不閃動(dòng)void lcd_setdisplay(unsigned char displaymode)lcd_write(lcd_command, 0x08|displaymode);#define lcd_ac_up#define lcd_ac_down#define lcd move/畫面可平移#def
43、ine lcd_no_movevoid lcd_setinput(unsigned char inputmode)lcd_write(lcd_command, 0x04|inputmode);最常見的矩陣式鍵盤按鍵識(shí)別方法是編程掃描,這里釆用的是列掃描方法。圖45矩陣鍵盤流程圖鍵盤掃描函數(shù)sfr keyjport=0x90;定義pl 口為鍵盤掃描口/p0=0x80,pl=0x90,p2=0xa0,p3=0xb0.數(shù)據(jù)端口bit key_ok=0;有鍵按下的標(biāo)志/*延時(shí) 了 程序 * *祁祁調(diào)用一次用時(shí)18微秒,t每加1,用時(shí)增加6微秒*/ void delay(unsigned char t)
44、while(t);unsigned char r_left(unsigned char x)x«= 1;x+;rctum(x);*粗判 有無(wú)鍵按下 * *¥扌安卜貝寸*各 key ok*/void scan full(void)unsigned char temp; key_port=oxfd;temp=p 1; if(temp!=oxfo) kcy_ok= 1;else key_ok=0;*鍵盤掃描稈序* * *功能:返回鍵值,當(dāng)無(wú)鍵按卜時(shí),返回o*/unsigned char key_scan(void)unsigned char temp,count=0x01 ,ke
45、y_value;unsigned char x_scan=0xfe,y_scan=0xef;unsigned char i,j,y; while(l)粗判是否有鍵按下延時(shí)去抖動(dòng)再次粗判是否有鍵按下scan_full();if(key_ok=l)key_ok=0;delay(200);scan_full(); if(key_ok=l) fbr(i=0;i<4;i+)key_port=x_scan;for(j=0;j<4;j+)temp=key_port;temp=temp&oxfo;y=y_sca n&o xfd;if(temp=y)while(key_ok!=0)等
46、待按鍵松開scan_full();/key_value=count;retum(key_value);elsecount+;y_scan=r_left(y_scan);y_scan=oxef;x_scan=r_left(x_scan);retum(key_value);第5章仿真與調(diào)試5.1仿真與調(diào)試此設(shè)計(jì)的電路在proteus軟件中進(jìn)行仿真,運(yùn)行proteus的isis程序后,進(jìn)入該仿 真軟件的主界面。主界面由菜單欄、工具欄、預(yù)覽窗口、元件選擇按鈕、元件列表窗口、 原理圖繪制窗口和仿真進(jìn)程控制按鈕組成(如圖72所示)。通過(guò)元件選擇按鈕p (從庫(kù) 中選擇元件命令)命令,在彈出的pick dev
47、ices窗口中選擇電路所需的元件,放置元件 并調(diào)整其相對(duì)位置,對(duì)元件參數(shù)設(shè)置及元器件間連線,完成單片機(jī)系統(tǒng)的硬件原理圖繪 制。仿真電路圖見附錄35.2調(diào)試與運(yùn)行(1)首先啟動(dòng)keilc51軟件的集成開發(fā)環(huán)境,從桌而上雙擊uvision圖標(biāo)以啟動(dòng)軟件。(2)建立工程文件。通常單片機(jī)應(yīng)用系統(tǒng)軟件包含多個(gè)源程序文件,keilc51使用工 程這一概念,將這些參數(shù)設(shè)置和所需的所有文件都加在一個(gè)工程中。因此,需要建立一 個(gè)工程文件,并為這個(gè)工程選擇cpu,確定編譯,匯編,連接的參數(shù),指定調(diào)試的方式。(3)建立并添加源文件。使用菜單或者單擊工具欄的新建文件按鈕,出現(xiàn)文本便捷窗 口,在該窗口中輸入新編制的源程
48、序并保存該文件。然后,我打開已經(jīng)畫好的仿真圖,再將生成的hex文件導(dǎo)入單片機(jī)里,點(diǎn)擊開始 按鈕,電路正常工作,并且能夠?qū)崿F(xiàn)預(yù)先設(shè)想的所有功能,而且效果很好,從而驗(yàn)證了 我的程序的正確性。在我的畢業(yè)設(shè)計(jì)中,主要是以at89c51單片機(jī)為核心的,對(duì)溫度的檢測(cè)與顯示進(jìn) 行了簡(jiǎn)單的設(shè)計(jì)與闡述。本次設(shè)計(jì)可以說(shuō)是軟硬結(jié)合,又以硬件為主。當(dāng)今科技發(fā)展迅 速,單片機(jī)嵌入式開發(fā)有著光明的前景。由于單片機(jī)經(jīng)濟(jì)實(shí)用、開發(fā)簡(jiǎn)便等特點(diǎn)依然在 工業(yè)控制、家電等領(lǐng)域占據(jù)了廣泛的市場(chǎng)。所以我選擇這樣的畢業(yè)設(shè)計(jì)課題,并且能通 過(guò)此次設(shè)計(jì)來(lái)提高自己軟件編制和硬件電路設(shè)計(jì)的能力。在我完成這次畢業(yè)設(shè)計(jì)的過(guò)程 中,當(dāng)看到自己將專業(yè)知識(shí)
49、用于解決實(shí)際的問題吋,那份成就感和喜悅感是難以形容的。 但是,在實(shí)際的編程以及調(diào)試程序過(guò)程中,我發(fā)現(xiàn)自己應(yīng)該學(xué)的太多太多。光靠自己在 書本上所學(xué)過(guò)的這點(diǎn)知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,真正地認(rèn)識(shí)到了工作就是學(xué)習(xí)的道理。由于我以前對(duì)51單片機(jī)的c語(yǔ)言沒有認(rèn)真鉆研過(guò),所以感覺畢業(yè)設(shè)計(jì)的任務(wù)十分 緊迫。通過(guò)對(duì)本系統(tǒng)的設(shè)計(jì),我學(xué)習(xí)到了硬件開發(fā)和軟件開發(fā)的基木流程并有了一定的 駕御此開發(fā)過(guò)程的能力。編程的過(guò)程中,雖然不乏辛苦,但更多的是程序調(diào)試成功后的 喜悅??傊@次畢業(yè)設(shè)計(jì)對(duì)我來(lái)說(shuō)是一次比較全面的、富有創(chuàng)造性和探索性的鍛煉,完 成了我選題時(shí)的心愿。令我深有感觸,對(duì)于我今后的學(xué)習(xí)、工作和生活都將是受益非淺 的!參考
50、文獻(xiàn)1 王靜霞.單片機(jī)應(yīng)用技術(shù)電子工業(yè)出版社,20092 何立民.單片機(jī)高等教程.北京航空航天大學(xué)出版社,2000雄建云.«protel99 se eda技術(shù)及應(yīng)用.北京機(jī)械工業(yè)出版社,20074 華永平,陳松編著.電子線路課程設(shè)計(jì).東南大學(xué)出版社5 林春方.電子線路學(xué)習(xí)指導(dǎo)與實(shí)訓(xùn).北京電子工業(yè)出版社,20046 楊寶清,宋文貴主編.實(shí)用電路手冊(cè).機(jī)械工業(yè)出版社20027 張存禮,韓愛娟主編.電子技術(shù)綜合實(shí)訓(xùn).北京師范大學(xué)出版社附錄1源程序/include <at89x51 .h>/用 at89c51 時(shí)就用這個(gè)頭文件 include <reg52.h>/用華
51、邦w78e58b時(shí)必須用這個(gè)頭文件 sbit dq = p3a7;定義 dq 引腳為 p3.7/*dsi8b20 延遲子函數(shù)(晶振 12mhz ) */ /*dsi8b20對(duì)時(shí)間要求很嚴(yán),但只能長(zhǎng)不能短在11.0592m下也行,因?yàn)閰奸g長(zhǎng)些*/void delay l 8b20(unsigned int i)whilc(i);/*dsi8b20 初始化函數(shù)void init_ds 18b20(void)unsigned char x=0;dq = 0;單片機(jī)將dq拉低delay_18b20(80); 精確延時(shí) 大于 480usdq = 1;拉高總線delay_18b20(14);x=dq;de
52、lay_18b20(20);z"dsl8b20讀一個(gè)字節(jié)unsigned char rcadoncchar(void)unsigned char i=0; unsigned char dat = 0; for (i=8;i>0;i-)dq = o;dat»= 1;dq=1;if(dq)dat|=0x80; delay_18b20(4);rctum(dat);給脈沖信號(hào)給脈沖信號(hào)7 7void writeonechar(unsigned char dat) unsigned char i=0;for (i=8; i>0; i-)dq = 0;dq = dat&am
53、p;oxo 1;delay_18b20(5);dq=1;dat»=l;/*設(shè)置 ds18b20 工作狀態(tài)th和tl分別是上限報(bào)警和下限報(bào)警溫度,rs是顯示分辨率的設(shè)置 void setds 18b20(unsigned char th,unsigned char tl,unsigned char rs) init_ds18b20();writeonechar(oxcc);跳過(guò)讀序號(hào)列號(hào)的操作writeonechar(ox4e);writeonechar(th);寫入想設(shè)定的溫度報(bào)警上限writeonechar(tl);寫入想設(shè)定的溫度報(bào)警下限writeonechar(rs);寫配置寄存器,格式為 0 r1 r0 1,1 1 1 1r1ro=oo分辨率婁9位,r1ro=11分辨率為12位/*讀取 dsl8b20 當(dāng)前溫度unsigned char *readtemperature(void) unsigned char tt2
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 墻體加固施工方案
- 砌體結(jié)構(gòu)施工方案
- 橋墩基礎(chǔ)施工方案
- 土工布施工方案
- 校園綜合布線施工方案
- 新疆?dāng)r水壩施工方案
- 水下填筑沉箱施工方案
- TSHJX 076-2024 上海市域鐵路客流預(yù)測(cè)規(guī)范
- 二零二五年度離婚協(xié)議書:房產(chǎn)各半分割及婚姻解除后共同財(cái)產(chǎn)處理合同
- 二零二五年度酒店客房經(jīng)營(yíng)權(quán)及服務(wù)質(zhì)量標(biāo)準(zhǔn)合同
- 2025年黑龍江林業(yè)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)審定版
- 中國(guó)家用通風(fēng)電器具制造行業(yè)分析報(bào)告
- 生物-天一大聯(lián)考2025屆高三四省聯(lián)考(陜晉青寧)試題和解析
- 天津2025年天津市住房公積金管理中心招聘9人筆試歷年參考題庫(kù)附帶答案詳解-1
- 2025成人禮暨高三百日誓師校長(zhǎng)演講稿-追夢(mèng)不覺天涯遠(yuǎn) 奮斗深感百日短
- 區(qū)間價(jià)格突破策略(TB版)
- 2024廣西公務(wù)員考試及答案(筆試、申論A、B類、行測(cè))4套 真題
- 川教版六年級(jí)《生命.生態(tài).安全》下冊(cè)第1課《我們的閑暇時(shí)光》課件
- 汽車坡道玻璃雨棚施工方案
- 中國(guó)旅游地理(高職)全套教學(xué)課件
- 跨文化商務(wù)交際導(dǎo)論 課件 Unit 1 Culture
評(píng)論
0/150
提交評(píng)論