




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 PAGE29 / NUMPAGES31目錄TOC o 1-3 h z uHYPERLINK l _Toc3613210231.引言 PAGEREF _Toc361321023 h 1HYPERLINK l _Toc3613210241.1緒論 PAGEREF _Toc361321024 h 1HYPERLINK l _Toc3613210251.2課程設(shè)計(jì)任務(wù)書 PAGEREF _Toc361321025 h 1HYPERLINK l _Toc3613210262.設(shè)計(jì)方案 PAGEREF _Toc361321026 h 4HYPERLINK l _Toc3613210273.硬件設(shè)計(jì)方案
2、PAGEREF _Toc361321027 h 4HYPERLINK l _Toc3613210283.1最小系統(tǒng)的設(shè)計(jì) PAGEREF _Toc361321028 h 4HYPERLINK l _Toc3613210293.2 LED發(fā)光報(bào)警電路 PAGEREF _Toc361321029 h 6HYPERLINK l _Toc3613210303.3 DS18B20的簡(jiǎn)介與在本次設(shè)計(jì)中的應(yīng)用 PAGEREF _Toc361321030 h 6HYPERLINK l _Toc3613210313.3.1 DS18B20的外部結(jié)構(gòu)與管腳排列 PAGEREF _Toc361321031 h 6H
3、YPERLINK l _Toc3613210323.3.2 DS18B20的工作原理 PAGEREF _Toc361321032 h 7HYPERLINK l _Toc3613210333.3.3 DS18B20的主要特性 PAGEREF _Toc361321033 h 8HYPERLINK l _Toc3613210343.3.4 DS18B20的測(cè)溫流程 PAGEREF _Toc361321034 h 9HYPERLINK l _Toc3613210353.3.5 DS18B20與單片機(jī)的連接 PAGEREF _Toc361321035 h 9HYPERLINK l _Toc3613210
4、363.4 報(bào)警溫度的設(shè)置 PAGEREF _Toc361321036 h 9HYPERLINK l _Toc3613210373.5 數(shù)碼管顯示 PAGEREF _Toc361321037 h 10HYPERLINK l _Toc3613210383.5.1數(shù)碼管工作原理 PAGEREF _Toc361321038 h 10HYPERLINK l _Toc3613210393.5.2數(shù)碼管顯示電路 PAGEREF _Toc361321039 h 12HYPERLINK l _Toc3613210403.6 硬件電路總體設(shè)計(jì) PAGEREF _Toc361321040 h 12HYPERLIN
5、K l _Toc3613210414.軟件設(shè)計(jì)方案 PAGEREF _Toc361321041 h 13HYPERLINK l _Toc3613210424.1主程序介紹 PAGEREF _Toc361321042 h 13HYPERLINK l _Toc3613210434.1.1主程序流程圖 PAGEREF _Toc361321043 h 13HYPERLINK l _Toc3613210444.1.2主流程的C語(yǔ)言程序 PAGEREF _Toc361321044 h 14HYPERLINK l _Toc3613210454.2部分子程序 PAGEREF _Toc361321045 h 1
6、8HYPERLINK l _Toc3613210464.2.1 DS18B20復(fù)位子程序 PAGEREF _Toc361321046 h 18HYPERLINK l _Toc3613210474.2.2 寫DS18B20命令子程序 PAGEREF _Toc361321047 h 19HYPERLINK l _Toc3613210484.2.3讀溫度子程序 PAGEREF _Toc361321048 h 21HYPERLINK l _Toc3613210494.2.4計(jì)算溫度子程序 PAGEREF _Toc361321049 h 23HYPERLINK l _Toc3613210504.2.5顯
7、示掃描過(guò)程子程序 PAGEREF _Toc361321050 h 24HYPERLINK l _Toc3613210515.基于DS18B20的溫度采集顯示系統(tǒng)的調(diào)試 PAGEREF _Toc361321051 h 26HYPERLINK l _Toc3613210526.收獲和體會(huì) PAGEREF _Toc361321052 h 28HYPERLINK l _Toc3613210537.參考文獻(xiàn) PAGEREF _Toc361321053 h 291.引言1.1緒論隨著科學(xué)技術(shù)的發(fā)展,溫度的實(shí)時(shí)顯示系統(tǒng)應(yīng)用越來(lái)越廣泛,比如空調(diào)遙控器上當(dāng)前室溫的顯示,熱水器溫度的顯示等等,同時(shí)溫度的控制在各個(gè)
8、領(lǐng)域也都有積極的意義。采用單片機(jī)對(duì)溫度進(jìn)行控制不僅具有控制方便、簡(jiǎn)單、靈活性大等特點(diǎn),而且還可以大幅度提高被控溫度的技術(shù)指標(biāo)。本文介紹了基于DS18B20的溫度實(shí)時(shí)采集與顯示系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。設(shè)計(jì)中選取單片機(jī)AT89C51作為系統(tǒng)控制中心,數(shù)字溫度傳感器DS18B20作為單片機(jī)外部信號(hào)源,實(shí)現(xiàn)溫度的實(shí)時(shí)采集。并且用精度較好的數(shù)碼管作為溫度的實(shí)時(shí)顯示模塊。利用單片機(jī)程序來(lái)完成對(duì)DS18B20與AT89C51的控制,最終實(shí)現(xiàn)溫度的實(shí)時(shí)采集與顯示。采用單片機(jī)對(duì)溫度進(jìn)行控制不僅具有控制方便、簡(jiǎn)單、靈活性大等特點(diǎn),而且還可以大幅度提高被控溫度的技術(shù)指標(biāo)。1.2課程設(shè)計(jì)任務(wù)書微機(jī)原理與接口技術(shù)課程設(shè)計(jì)任務(wù)
9、書(二)題目:基于DS18B20的溫度采集顯示系統(tǒng)的設(shè)計(jì)一、課程設(shè)計(jì)任務(wù)傳統(tǒng)的溫度傳感器,如熱電偶溫度傳感器,具有精度高,測(cè)量圍大,響應(yīng)快等優(yōu)點(diǎn)。但由于其輸出的是模擬量,而現(xiàn)在的智能儀表需要使用數(shù)字量,有些時(shí)候還要將測(cè)量結(jié)果以數(shù)字量輸入計(jì)算機(jī),由于要將模擬量轉(zhuǎn)換為數(shù)字量,其實(shí)現(xiàn)環(huán)節(jié)就變得非常復(fù)雜。硬件上需要模擬開(kāi)關(guān)、恒流源、D/A轉(zhuǎn)換器,放大器等,結(jié)構(gòu)龐大,安裝困難,造價(jià)昂貴。新興的IC溫度傳感器如DS18B20,由于可以直接輸出溫度轉(zhuǎn)換后的數(shù)字量,可以在保證測(cè)量精度的情況下,大大簡(jiǎn)化系統(tǒng)軟硬件設(shè)計(jì)。這種傳感器的測(cè)溫圍有一定限制(大多在50120),多適用于環(huán)境溫度的測(cè)量。DS18B20可以在
10、一根數(shù)據(jù)線上掛接多個(gè)傳感器,只需要三根線就可以實(shí)現(xiàn)遠(yuǎn)距離多點(diǎn)溫度測(cè)量。本課題要求設(shè)計(jì)一基于DS18B20的溫度采集顯示系統(tǒng),該系統(tǒng)要求包含溫度采集模塊、溫度顯示模塊(可用數(shù)碼管或液晶顯示)和鍵盤輸入模塊與報(bào)警模塊。所設(shè)計(jì)的系統(tǒng)可以從鍵盤輸入設(shè)定溫度值,當(dāng)所采集的溫度高于設(shè)定溫度時(shí),進(jìn)行報(bào)警,同時(shí)能實(shí)時(shí)顯示溫度值。二、課程設(shè)計(jì)目的通過(guò)本次課程設(shè)計(jì)使學(xué)生掌握:1)單總線溫度傳感器DS18B20與單片機(jī)的接口與DS18B20的編程;2)矩陣式鍵盤的設(shè)計(jì)與編程;3)經(jīng)單片機(jī)為核心的系統(tǒng)的實(shí)際調(diào)試技巧。從而提高學(xué)生對(duì)微機(jī)實(shí)時(shí)控制系統(tǒng)的設(shè)計(jì)和調(diào)試能力。三、課程設(shè)計(jì)要求1、要求可以從鍵盤上接收溫度設(shè)定值,當(dāng)
11、所采集的溫度高于設(shè)定值時(shí),進(jìn)行報(bào)警(可以是聲音報(bào)警,也可是光報(bào)警)2、能實(shí)時(shí)顯示溫度值,要求保留一位小數(shù);四、課程設(shè)計(jì)容1、人機(jī)“界面”設(shè)計(jì);2、單片機(jī)端口與外設(shè)的設(shè)計(jì);3、硬件電路原理圖、軟件清單。五、課程設(shè)計(jì)報(bào)告要求報(bào)告中提供如下容:1、目錄2、正文(1)課程設(shè)計(jì)任務(wù)書;(2)總體設(shè)計(jì)方案(3)針對(duì)人機(jī)對(duì)話“界面”要有操作使用說(shuō)明,以便用戶能夠正確使用本產(chǎn)品;(4)硬件原理圖,以便廠家生成產(chǎn)(可手畫也可用protel軟件);(5)程序流程圖與清單(子程序不提供清單,但應(yīng)列表反映每一個(gè)子程序的名稱與其功能);(6)調(diào)試、運(yùn)行與其結(jié)果;3、收獲、體會(huì)4、參考文獻(xiàn)六、課程設(shè)計(jì)進(jìn)度安排周次工作日工
12、作容第一周1布置課程設(shè)計(jì)任務(wù),查找相關(guān)資料2熟悉相關(guān)芯片與使用方法3完成總體設(shè)計(jì)方案4畫出硬件原理圖與程序流程圖5完成硬件接線,編寫程序并調(diào)試第二周1編寫程序并調(diào)試2編寫程序并調(diào)試3編寫程序并調(diào)試與準(zhǔn)備課程設(shè)計(jì)報(bào)告4完成課程設(shè)計(jì)報(bào)告并于下午兩點(diǎn)之前上交5答辯本課題共需兩周時(shí)間七、課程設(shè)計(jì)考核辦法本課程設(shè)計(jì)滿分為100分,從課程設(shè)計(jì)平時(shí)表現(xiàn)、課程設(shè)計(jì)報(bào)告與課程設(shè)計(jì)答辯三個(gè)方面進(jìn)行評(píng)分,其所占比例分別為20%、40%、40%。2.設(shè)計(jì)方案本次的課題設(shè)計(jì)要基于DS18B20的溫度采集顯示系統(tǒng),該系統(tǒng)要求包含溫度采集模塊、溫度顯示模塊和鍵盤輸入模塊與報(bào)警模塊。其中溫度采集模塊所選用的是DS18B20數(shù)
13、字溫度傳感器進(jìn)行溫度采集,溫度顯示模塊用的四位八段共陰極數(shù)碼管進(jìn)行溫度的實(shí)時(shí)顯示,鍵盤輸入模塊采用的是按鈕進(jìn)行溫度的設(shè)置,報(bào)警模塊用的是LED燈光報(bào)警。具體方案見(jiàn)圖2-1。 AT89C51 P0 P2 P2P1 P3最小系統(tǒng)蜂鳴器報(bào)警段選四位共陰極數(shù)碼管顯示溫度報(bào)警溫度的設(shè)定DS18B20溫度傳感器位選圖2-1 總體設(shè)計(jì)方案3.硬件設(shè)計(jì)方案3.1最小系統(tǒng)的設(shè)計(jì)本次設(shè)計(jì)單片機(jī)采用的是AT89C51系列的,它由一個(gè)8位中央處理器(CPU),4k HYPERLINK :/baike.baidu /view/60408.htm t _blank 字節(jié)Flash HYPERLINK :/baike.ba
14、idu /view/600209.htm t _blank 閃速存儲(chǔ)器,128字節(jié)部RAM,32 個(gè)I/O 口線,兩個(gè)16位定時(shí)/計(jì)數(shù)器,一個(gè)串行I/O口與中斷系統(tǒng)等部分組成。其結(jié)構(gòu)如圖3-1所示:圖3-1 AT89C51系列單片機(jī)引腳排列XTAL1XTAL2RSTEA圖3-2 單片機(jī)最小系統(tǒng)接線圖圖3-2為單片機(jī)最小系統(tǒng)的接線圖,其中C1、C2均選用20PF的,晶振X1用的是11.0592MHZ的。晶振電路中外接電容C1,C2的作用是對(duì)振蕩器進(jìn)行頻率微調(diào),使振蕩信號(hào)頻率與晶振頻率一致,同時(shí)起到穩(wěn)定頻率的作用,一般選用1030pF的瓷片電容。并且電容離晶振越近越好,晶振離單片機(jī)越近越好。晶振的
15、取值圍一般為024MHz,常用的晶振頻率有6MHz、12 MHz、11.0592 MHz、24 MHz等。晶振的振蕩頻率直接影響單片機(jī)的處理速度,頻率越大處理速度越快。圖3-2中C3,R1與按鍵構(gòu)成了最小系統(tǒng)中的復(fù)位電路,本次設(shè)計(jì)選擇的是手動(dòng)按鈕復(fù)位,手動(dòng)按鈕復(fù)位需要人為在復(fù)位輸入端RST上加入高電平。一般采用的辦法是在RST端和正電源Vcc之間接一個(gè)按鈕。當(dāng)人為按下按鈕時(shí),則Vcc的+5V電平就會(huì)直接加到RST端。由于人的動(dòng)作再快也會(huì)使按鈕保持接通達(dá)數(shù)十毫秒,所以,完全能夠滿足復(fù)位的時(shí)間要求。在單片機(jī)最小系統(tǒng)中還要將EA的非接高電平,如圖3-2也有體現(xiàn)出來(lái)。3.2 LED發(fā)光報(bào)警電路P1.7
16、圖3-3 LED發(fā)光報(bào)警電路圖3-3為L(zhǎng)ED報(bào)警電路的接法,其中一根線接單片機(jī)的8號(hào)P1.7口,另外一根接地。當(dāng)溫度超過(guò)預(yù)設(shè)溫度值時(shí)LED燈被接通發(fā)光報(bào)警。3.3 DS18B20的簡(jiǎn)介與在本次設(shè)計(jì)中的應(yīng)用3.3.1 DS18B20的外部結(jié)構(gòu)與管腳排列DS18B20的管腳排列如圖3-4所示:DS18B20引腳定義:(1)DQ為數(shù)字信號(hào)輸入/輸出端;(2)GND為電源地;(3)VDD為外接供電電源輸入端(在寄生電源接線方式時(shí)接地)圖3-4 DS18B20的引腳排列與封裝3.3.2 DS18B20的工作原理DS18B20的讀寫時(shí)序和測(cè)溫原理與DS1820一樣,只是得到的溫度值的位數(shù)因分辨率不同而不同
17、,且溫度轉(zhuǎn)換時(shí)的延時(shí)時(shí)間由2s減為750ms。 DS18B20測(cè)溫原理如圖3-5所示。圖中低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給計(jì)數(shù)器1。高溫度系數(shù)晶振隨溫度變化其振蕩率明顯改變,所產(chǎn)生的信號(hào)作為計(jì)數(shù)器2的脈沖輸入。計(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ù)器2計(jì)數(shù)到0時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即為所測(cè)溫度。圖中的斜率累加器用于補(bǔ)
18、償和修正測(cè)溫過(guò)程中的非線性,其輸出用于修正計(jì)數(shù)器1的預(yù)置值。斜率累加器預(yù)置比較計(jì)數(shù)器1低溫度系數(shù)晶振=0溫度寄存器計(jì)數(shù)器2高溫度系數(shù)晶振=0預(yù)置加1LSB置位/清除停止圖3-5 DS18B20測(cè)溫原理圖3.3.3 DS18B20的主要特性(1)適應(yīng)電壓圍更寬,電壓圍:3.05.5V,在寄生電源方式下可由數(shù)據(jù)線供電;(2)獨(dú)特的單線接口方式,DS18B20在與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊;(3)DS18B20支持多點(diǎn)組網(wǎng)功能,多個(gè)DS18B20可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)組網(wǎng)多點(diǎn)測(cè)溫;(4)DS18B20在使用中不需要任何外圍元件,全部傳感元件與轉(zhuǎn)換電路
19、集成在形如一只三極管的集成電路;(5)溫圍55125,在-10+85時(shí)精度為0.5;(6)可編程的分辨率為912位,對(duì)應(yīng)的可分辨溫度分別為0.5、0.25、0.125和0.0625,可實(shí)現(xiàn)高精度測(cè)溫;(7)在9位分辨率時(shí)最多在93.75ms把溫度轉(zhuǎn)換為數(shù)字,12位分辨率時(shí)最多在750ms把溫度值轉(zhuǎn)換為數(shù)字,速度更快;(8)測(cè)量結(jié)果直接輸出數(shù)字溫度信號(hào),以一線總線串行傳送給CPU,同時(shí)可傳送CRC校驗(yàn)碼,具有極強(qiáng)的抗干擾糾錯(cuò)能力;(9)負(fù)壓特性:電源極性接反時(shí),芯片不會(huì)因發(fā)熱而燒毀,但不能正常工作。3.3.4 DS18B20的測(cè)溫流程初始化DS18B20跳過(guò)ROM匹配溫度變換延時(shí)1S跳過(guò)ROM匹
20、配讀暫存器轉(zhuǎn)換成顯示碼數(shù)碼管顯示圖3-6 DS18B20的測(cè)溫流程圖3.3.5 DS18B20與單片機(jī)的連接P3.7圖3-7 DS18B20與單片機(jī)的連接電路圖如上圖為DS18B20溫度傳感器與單片機(jī)之間的接法,其中2號(hào)接單片機(jī)的17號(hào)P3.7接口。DS18B20通過(guò)P3.7口將采集到的溫度實(shí)時(shí)送入單片機(jī)中。3.4 報(bào)警溫度的設(shè)置P2.5P2.6P2.7圖3-8 報(bào)警溫度的設(shè)置電路圖3-8為報(bào)警溫度的設(shè)置電路,其中K1,K2,K3分別接到單片機(jī)的P2.5,P2.6,P2.7口。其中K1用于報(bào)警溫度設(shè)定開(kāi)關(guān),K2用于報(bào)警溫度的設(shè)置時(shí)候的加溫度(每次加一),K3用于報(bào)警溫度的設(shè)置時(shí)的減溫度(每次減
21、一)。實(shí)現(xiàn)了報(bào)警溫度的手動(dòng)設(shè)置。3.5 數(shù)碼管顯示3.5.1數(shù)碼管工作原理圖3-9 數(shù)碼管的引腳排列與結(jié)構(gòu)圖3-9為數(shù)碼管的外形與引腳排列和兩種接法(共陰極和共陽(yáng)極)的結(jié)構(gòu)圖。共陽(yáng)極數(shù)碼管的8個(gè)發(fā)光二極管的陽(yáng)極(二極管正端)連接在一起。通常,公共陽(yáng)極接高電平(一般接電源),其它管腳接段驅(qū)動(dòng)電路輸出端。當(dāng)某段驅(qū)動(dòng)電路的輸出端為低電平時(shí),則該端所連接的字段導(dǎo)通并點(diǎn)亮。根據(jù)發(fā)光字段的不同組合可顯示出各種數(shù)字或字符。此時(shí),要求段驅(qū)動(dòng)電路能吸收額定的段導(dǎo)通電流,還需根據(jù)外接電源與額定段導(dǎo)通電流來(lái)確定相應(yīng)的限流電阻。共陰極數(shù)碼管的8個(gè)發(fā)光二極管的陰極(二極管負(fù)端)連接在一起。通常,公共陰極接低電平(一般接
22、地),其它管腳接段驅(qū)動(dòng)電路輸出端。當(dāng)某段驅(qū)動(dòng)電路的輸出端為高電平時(shí),則該端所連接的字段導(dǎo)通并點(diǎn)亮,根據(jù)發(fā)光字段的不同組合可顯示出各種數(shù)字或字符。此時(shí),要求段驅(qū)動(dòng)電路能提供額定的段導(dǎo)通電流,還需根據(jù)外接電源與額定段導(dǎo)通電流來(lái)確定相應(yīng)的限流電阻。要使數(shù)碼管顯示出相應(yīng)的數(shù)字或字符,必須使段數(shù)據(jù)口輸出相應(yīng)的字形編碼。字型碼各位定義為:數(shù)據(jù)線D0與a字段對(duì)應(yīng),D1與b字段對(duì)應(yīng),依此類推。如使用共陽(yáng)極數(shù)碼管,數(shù)據(jù)為0表示對(duì)應(yīng)字段亮,數(shù)據(jù)為1表示對(duì)應(yīng)字段暗;如使用共陰極數(shù)碼管,數(shù)據(jù)為0表示對(duì)應(yīng)字段暗,數(shù)據(jù)為1表示對(duì)應(yīng)字段亮。如要顯示“0”,共陽(yáng)極數(shù)碼管的字型編碼應(yīng)為:11000000B(即C0H);共陰極數(shù)
23、碼管的字型編碼應(yīng)為:00111111B(即3FH)。依此類推,可求得數(shù)碼管字形編碼如表3-5所示。表3-5數(shù)碼管字符表顯示數(shù)字共陰順序小數(shù)點(diǎn)暗共陰逆序小數(shù)點(diǎn)暗共陽(yáng)順序小數(shù)點(diǎn)亮共陽(yáng)順序小數(shù)點(diǎn)暗Dp g f e d c b a16進(jìn)制a b c d e f g Dp16進(jìn)制00 0 1 1 1 1 1 13FH1 1 1 1 1 1 0 0FCH40HC0H10 0 0 0 0 1 1 006H0 1 1 0 0 0 0 060H79HF9H20 1 0 1 1 0 1 15BH1 1 0 1 1 0 1 0DAH24HA4H30 1 0 0 1 1 1 14FH1 1 1 1 0 0 1 0F2
24、H30HB0H40 1 1 0 0 1 1 066H0 1 1 0 0 1 1 066H19H99H50 1 1 0 1 1 0 16DH1 0 1 1 0 1 1 0B6H12H92H60 1 1 1 1 1 0 17DH1 0 1 1 1 1 1 0BEH02H82H70 0 0 0 0 1 1 107H1 1 1 0 0 0 0 0E0H78HF8H80 1 1 1 1 1 1 17FH1 1 1 1 1 1 1 0FEH00H80H90 1 1 0 1 1 1 16FH1 1 1 1 0 1 1 0F6H10H90H顯示的具體實(shí)施是通過(guò)編程將需要顯示的字型碼存放在程序存儲(chǔ)器的固定區(qū)域中
25、,構(gòu)成顯示字型碼表。當(dāng)要顯示某字符時(shí),通過(guò)查表指令獲取該字符所對(duì)應(yīng)的字型碼。3.5.2數(shù)碼管顯示電路P0.1P0.2P0.3P0.4P0.5P0.6P0.7P2.0P2.1P2.2P2.3圖3-10 四位八段數(shù)碼管動(dòng)態(tài)顯示電路圖3-10為本次設(shè)計(jì)所用到的四位八段數(shù)碼管動(dòng)態(tài)顯示,其中段選接到單片機(jī)的P0口,位選接到單片機(jī)的P2口的低四位。其中P0口也接的有上拉電阻,圖中未標(biāo)示出來(lái),會(huì)在下面的總體電路中標(biāo)示出來(lái)。采用的是動(dòng)態(tài)顯示方式。3.6 硬件電路總體設(shè)計(jì)圖3-11為本次設(shè)計(jì)的硬件總體設(shè)計(jì)圖,其中利用K1,K2,K3處進(jìn)行報(bào)警溫度的設(shè)置,然后有DS18B20進(jìn)行實(shí)時(shí)溫度采集,并在數(shù)碼管上同步顯示
26、,若采集到的溫度達(dá)到或者超過(guò)預(yù)設(shè)的報(bào)警溫度,則LED燈會(huì)發(fā)光報(bào)警,若低于該報(bào)警溫度,則不會(huì)報(bào)警。圖3-11 硬件電路總體設(shè)計(jì)圖4.軟件設(shè)計(jì)方案4.1主程序介紹4.1.1主程序流程圖本次設(shè)計(jì)首先對(duì)程序進(jìn)行初始化,然后打開(kāi)報(bào)警溫度設(shè)定開(kāi)關(guān),對(duì)報(bào)警溫度進(jìn)行設(shè)定,確認(rèn)設(shè)定值后,DS18B20溫度傳感器進(jìn)行溫度采集并送入單片機(jī)中,單片機(jī)將傳感器所檢測(cè)到的溫度同步顯示在數(shù)碼管上,并且與設(shè)置的報(bào)警溫度進(jìn)行比較,若達(dá)到或者超過(guò)報(bào)警溫度時(shí),LED燈發(fā)光報(bào)警,如果沒(méi)有達(dá)到,則繼續(xù)進(jìn)行溫度采集。開(kāi)始初始化程序進(jìn)行報(bào)警溫度設(shè)定并確認(rèn)傳感器采集溫度并實(shí)時(shí)顯示判斷達(dá)到報(bào)警溫度?燈光報(bào)警Y繼續(xù)溫度采集N圖4-1主程序流程圖
27、4.1.2主流程的C語(yǔ)言程序main () ALERT=0; LED=0; flag=0; sheding=30; disdata=0 xff;/ 初始化端口 discan=0 xff; for(h=0;h4;h+) /開(kāi)機(jī)顯示“8888”scan(); displayh=8; ow_reset(); /開(kāi)機(jī)先轉(zhuǎn)換一次 write_byte(0 xcc);/skip ROM write_byte(0 x44);/發(fā)轉(zhuǎn)換命令 for(h=0;h1) /溫度顯示界面 LED1=0;if(display1+display2*10=sheding) /比較 ALERT=1;/報(bào)警elseALERT=0
28、; if(flag=0 & flag21) read_temp(); /讀出溫度數(shù)據(jù) work_temp(); /處理溫度數(shù)據(jù) ge= display3; shi= display2; if(K1=0) flag2+; /flag2=0時(shí)為初始界面 flag2=1時(shí)為設(shè)定 if(flag21)flag2=2; if(flag=0) /flag=0 時(shí) 溫度顯示 flag=1 設(shè)定顯示flag=1;else if(flag=1)flag=0;LED=LED;key_delay(20);if(flag=1)sheding=30;ge=0;shi=3;/display0= ge; / 個(gè)位設(shè)定好的溫
29、度用于顯示 /display2 =shi; /十位 if(flag=1) LED1=1; if(K2=0) /+ ge+;if(ge9)ge=0;shi+;if(shi9)shi=0;sheding=ge+shi*10; key_delay(20);if(K3=0) /- ge-;if(ge0)ge=9;shi-;if(shi0)shi=9;sheding=ge+shi*10; key_delay(20); display1= ge; / 個(gè)位設(shè)定好的溫度用于顯示 display2 =shi; /十位 for(h=0;h0;i-) DQ=1;_nop_();_nop_(); DQ=0;_nop
30、_();_nop_();_nop_();_nop_();_nop_(); DQ=val&0 x01; /最低位移出 delay(6); val=val/2; /右移1位 DQ=1; delay(1); 4.2.3讀溫度子程序讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時(shí)需進(jìn)行CRC校驗(yàn),驗(yàn)有錯(cuò)時(shí),不進(jìn)行溫度數(shù)據(jù)的改寫。其程序流程圖如圖4-4所示DS18B20的各個(gè)命令對(duì)時(shí)序的要求特別嚴(yán)格,所以必須按照所要求的時(shí)序才能達(dá)到預(yù)期的目的,同時(shí),要注意讀進(jìn)來(lái)的是高位在后低位在前, 共有12位數(shù),小數(shù)4位,整數(shù)7位,還有一位符號(hào)位。DS18B20復(fù)位、應(yīng)答子程序跳過(guò)ROM匹配命令寫入子程序溫度
31、轉(zhuǎn)換命令寫入子程序顯示子程序(延時(shí))DS18B20復(fù)位、應(yīng)答子程序跳過(guò)ROM匹配命令寫入子程序讀溫度命令子程序結(jié)束圖4-4 讀溫度子程序讀溫度的C語(yǔ)言程序如下:read_temp() ow_reset(); write_byte(0 xcc); write_byte(0 xbe); temp_data0=read_byte(); temp_data1=read_byte(); ow_reset(); write_byte(0 xcc); write_byte(0 x44); 4.2.4計(jì)算溫度子程序流程圖如圖4-5所示:開(kāi)始溫度零下?溫度值取補(bǔ)碼置“”標(biāo)志計(jì)算小數(shù)位溫度BCD值計(jì)算整數(shù)位溫度B
32、CD值結(jié)束NY圖4-5 計(jì)算溫度子程序計(jì)算溫度的C語(yǔ)言程序如下:work_temp() uchar n=0; if(temp_data1127) temp_data1=(255-temp_data1); temp_data0=(255-temp_data0); n=1; /負(fù)溫度求補(bǔ)碼 display4=temp_data0&0 x0f;display0=ditabdisplay4; display4=(temp_data0&0 xf0)4)|(temp_data1&0 x0f)4) ; display3=display4/100; display1=display4%100; display
33、2=display1/10; display1=display1%10; if(!display3)display3=0 x0a; if(!display2)display2=0 x0a; /最高位為0時(shí)不顯示 if(n)display3=0 x0b; /負(fù)溫度是最高為顯示“-” 4.2.5顯示掃描過(guò)程子程序流程圖如圖4-6所示:開(kāi)始送位選碼送段選碼延時(shí)圖4-6 顯示掃描過(guò)程子程序顯示掃描的C語(yǔ)言程序如下:scan() char k; for(k=0;k4;k+) /4位LED掃描控制 disdata=dis_7displayk; if(k=1)DIN=0; /當(dāng)K=1時(shí),P07為低電平顯示小
34、數(shù)點(diǎn) discan=scan_conk; /列掃描 delay(30); discan=0 xFF; 5.基于DS18B20的溫度采集顯示系統(tǒng)的調(diào)試運(yùn)行后,按下K1鍵,開(kāi)始進(jìn)入報(bào)警溫度設(shè)置過(guò)程,按下K2則溫度增加一度,按下K3則溫度減少一度,剛開(kāi)始調(diào)試時(shí),由于接的LED報(bào)警燈是高電平點(diǎn)亮,程序一運(yùn)行時(shí),AT89C51給各個(gè)引腳都是高電平,所以LED燈一運(yùn)行就會(huì)發(fā)光,違背了超過(guò)報(bào)警溫度才發(fā)光的要求,所以在子程序中加上了一條開(kāi)始時(shí)將LED所連引腳置0的程序。之后運(yùn)行過(guò)程中又發(fā)現(xiàn)按下報(bào)警溫度的設(shè)置鍵K1,K2,K3都不是很靈敏,有時(shí)按下的時(shí)間太短甚至?xí)](méi)有反應(yīng),經(jīng)過(guò)與小組成員討論,發(fā)現(xiàn)是由于按鍵沒(méi)有進(jìn)行消抖,在顯示掃描子程序中加入了延時(shí)函數(shù)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣告安裝承包合同
- 旅游產(chǎn)品規(guī)劃與開(kāi)發(fā)作業(yè)指導(dǎo)書
- 企業(yè)年度工作總結(jié)與報(bào)告手冊(cè)
- 億峰地坪施工方案
- 野外鋼架平臺(tái)施工方案
- 多層水泥路面鋪貼施工方案
- 園林圓石鋪路施工方案
- 鋁合金圍墻施工方案
- 小學(xué)一年級(jí)家長(zhǎng)會(huì)發(fā)言稿
- 幼兒園環(huán)境升級(jí)施工方案
- 《Spring框架》教學(xué)課件
- 七年級(jí)下冊(cè)《平行線的判定》課件與練習(xí)
- 2025年中考英語(yǔ)時(shí)文閱讀 6篇有關(guān)電影哪吒2和 DeepSeek的英語(yǔ)閱讀(含答案)
- 修高速土方合同范例
- 完整版臨時(shí)用水用電施工方案
- 2024年形勢(shì)與政策復(fù)習(xí)題庫(kù)含答案(綜合題)
- 江蘇省南通市2025屆高三第一次調(diào)研測(cè)試數(shù)學(xué)試題(南通一模)(含答案)
- DCMM數(shù)據(jù)管理師練習(xí)測(cè)試卷
- 油氣行業(yè)人才需求預(yù)測(cè)-洞察分析
- 檢修安全知識(shí)培訓(xùn)課件
- 學(xué)校心理健康教育存在的問(wèn)題及改進(jìn)措施
評(píng)論
0/150
提交評(píng)論