基于DS18B20的溫度傳感器設(shè)計(課程設(shè)計)_第1頁
基于DS18B20的溫度傳感器設(shè)計(課程設(shè)計)_第2頁
基于DS18B20的溫度傳感器設(shè)計(課程設(shè)計)_第3頁
基于DS18B20的溫度傳感器設(shè)計(課程設(shè)計)_第4頁
基于DS18B20的溫度傳感器設(shè)計(課程設(shè)計)_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

摘要2009年6月14日隨著時代的進(jìn)步和開展,單片機技術(shù)已經(jīng)普及到我們生活、工作、科研、各個領(lǐng)域,已經(jīng)成為一種比擬成熟的技術(shù)。本文主要介紹了一個基于AT89C52單片機的測溫系統(tǒng),詳細(xì)描述了利用液晶顯示器件傳感器DS18B20開發(fā)測溫系統(tǒng)的過程,重點對傳感器在單片機下的硬件連接,軟件編程以及各模塊系統(tǒng)流程進(jìn)行了詳盡分析,特別是數(shù)字溫度傳感DS18B20的數(shù)據(jù)采集過程。對各局部的電路也一一進(jìn)行了介紹,該系統(tǒng)可以方便的實現(xiàn)實現(xiàn)溫度采集和顯示,并可根據(jù)需要任意設(shè)定上下限報警溫度,它使用起來相當(dāng)方便,具有精度高、量程寬、靈敏度高、體積小、功耗低等優(yōu)點,適合于我們?nèi)粘I詈凸ぁ⑥r(nóng)業(yè)生產(chǎn)中的溫度測量,也可以當(dāng)作溫度處理模塊嵌入其它系統(tǒng)中,作為其他主系統(tǒng)的輔助擴展。DS18B20與AT89C52結(jié)合實現(xiàn)最簡溫度檢測系統(tǒng),該系統(tǒng)結(jié)構(gòu)簡單,抗干擾能力強,適合于惡劣環(huán)境下進(jìn)行現(xiàn)場溫度測量,有廣泛的應(yīng)用前景。關(guān)鍵詞:單片機AT89C51;DS18B20溫度傳感器;液晶顯示LCD1602。目錄摘要 I第一章前言 1第二章設(shè)計任務(wù)及要求 22.1設(shè)計任務(wù) 22.2設(shè)計要求 2第三章課程設(shè)計方案及器材選用 33.1設(shè)計總體方案 3方案論證 33.1.2系統(tǒng)的具體設(shè)計與實現(xiàn) 43.2器材選用分析 53.2.1DS18B20溫度傳感器 53.2.2AT89S52單片機介紹 123.3軟件流程圖 153.3.1主程序 15讀出溫度子程序 153.3.3溫度轉(zhuǎn)換命令子程序 153.3.4計算溫度子程序 16第四章硬件電路的設(shè)計 174.1proteus簡介 174.2proteus仿真圖 17第五章調(diào)試性能及分析 19總結(jié) 20參考文獻(xiàn) 21附錄1源程序 22附錄2原理圖 26第一章前言目前,單片機已經(jīng)在測控領(lǐng)域中獲得了廣泛的應(yīng)用,它除了可以測量電信以外,還可以用于溫度、濕度等非電信號的測量,能獨立工作的單片機溫度檢測、溫度控制系統(tǒng)已經(jīng)廣泛應(yīng)用很多領(lǐng)域。單片機是一種特殊的計算機,它是在一塊半導(dǎo)體的芯片上集成了CPU,存儲器,RAM,ROM,及輸入與輸出接口電路,這種芯片稱為:單片機。由于單片機的集成度高,功能強,通用性好,特別是它具有體積小,重量輕,能耗低,價格廉價,可靠性高,抗干擾能力強和使用方便的優(yōu)點,使它迅速的得到了推廣應(yīng)用,目前已成為測量控制系統(tǒng)中的優(yōu)選機種和新電子產(chǎn)品中的關(guān)鍵部件。單片機已不僅僅局限于小系統(tǒng)的概念,現(xiàn)已廣泛應(yīng)用于家用電器,機電產(chǎn)品,辦公自動化用品,機器人,兒童玩具,航天器等領(lǐng)域。本次課程設(shè)計,就是用單片機實現(xiàn)溫度控制,傳統(tǒng)的溫度檢測大多以熱敏電阻為溫度傳感器,但熱敏電阻的可靠性差,測量溫度準(zhǔn)確率低,而且必須經(jīng)過專門的接口電路轉(zhuǎn)換成數(shù)字信號才能由單片機進(jìn)行處理。本次采用DS18B20數(shù)字溫度傳感器來實現(xiàn)基于51單片機的數(shù)字溫度計的設(shè)計。傳統(tǒng)的溫度計有反響速度慢、讀數(shù)麻煩、測量精度不高、誤差大等缺點而下面利用集成溫度傳感器AD590設(shè)計并制作了一款基于AT89C51的4位數(shù)碼管顯示的數(shù)字溫度計,其電路簡單,軟硬件結(jié)構(gòu)模塊化,易于實現(xiàn)。

該數(shù)字溫度計利用AD590集成溫度傳感器及其接口電路完成溫度的測量并轉(zhuǎn)換成模擬電壓信號,經(jīng)由模數(shù)轉(zhuǎn)換器ADC0804轉(zhuǎn)換成單片機能夠處理的數(shù)字信號,然后送到單片機AT89C51中進(jìn)行處理變換,最后將溫度值顯示在D4、D3、D2、D1共4位七段碼LED顯示器上。系統(tǒng)以AT89C51單片機為控制核心,加上AD590測溫電路、ADC模數(shù)轉(zhuǎn)換電路、4位溫度數(shù)據(jù)顯示電路以及外圍電源、時鐘電路等組成。第二章設(shè)計任務(wù)及要求2.1設(shè)計任務(wù)以MCS-51系列單片機為核心器件,組成一個數(shù)字溫度計,采用數(shù)字溫度傳感器DS18B20為檢測器件,進(jìn)行單點溫度檢測,檢測精度為±0.1攝氏度。溫度顯示采用LCD1602顯示,兩位整數(shù),一位小數(shù)如圖2.1。圖2.1系統(tǒng)總體方針圖2.2設(shè)計要求設(shè)計一個基于單片機的DS18B20數(shù)字溫度計。課程設(shè)計要求:5V供電;溫度采集采用DS18B20;1602LCD液晶顯示器;設(shè)計溫度控制器原理圖,學(xué)習(xí)用PROTEL畫出該原理圖,并用proteus進(jìn)行仿真;設(shè)計和繪制軟件流程圖,用C語言進(jìn)行程序編寫,然后進(jìn)行調(diào)試。第三章課程設(shè)計方案及器材選用3.1設(shè)計總體方案提及到溫度的檢測,我們首先會考慮傳統(tǒng)的測溫元件有熱電偶和熱電阻,而熱電偶和熱電阻測出的一般都是電壓,再轉(zhuǎn)換成對應(yīng)的溫度,需要比擬多的外部硬件支持,硬件電路復(fù)雜,軟件調(diào)試也復(fù)雜,制作本錢高。因此,本數(shù)字溫度計設(shè)計采用智能溫度傳感器DS18B20作為檢測元件,測溫范圍為-55°C至+125°C,最大分辨率可達(dá)0.0625°C。DS18B20可以直接讀出被測量的溫度值,而采用三線制與單片機相連,減少了外部的硬件電路,具有低本錢和易使用的特點。按照系統(tǒng)設(shè)計功能的要求,確定系統(tǒng)由三個模塊組成:主控制器STC89C51,溫度傳感器DS18B20,驅(qū)動顯示電路??傮w電路框圖3.1:主控制器主控制器STC89C52DS18B20LCD1602報警模塊圖3.1系統(tǒng)總體框圖3.1.1方案論證〔1〕溫度傳感模塊方案一:采用熱敏電阻,熱敏電阻精度、重復(fù)性、可靠性較差,對于檢測1攝氏度的信號是不適用的,也不能滿足測量范圍。在溫度測量系統(tǒng)中,也常采用單片溫度傳感器,比方AD590,LM35等。但這些芯片輸出的都是模擬信號,必須經(jīng)過A/D轉(zhuǎn)換后才能送給計算機,這樣就使測溫系統(tǒng)的硬件結(jié)構(gòu)較復(fù)雜。另外,這種測溫系統(tǒng)難以實現(xiàn)多點測溫,也要用到復(fù)雜的算法,一定程度上也增加了軟件實現(xiàn)的難度。

方案二:采用單總線數(shù)字溫度傳感器DS18B20測量溫度,直接輸出數(shù)字信號。便于單片機處理及控制,節(jié)省硬件電路。且該芯片的物理化學(xué)性很穩(wěn)定,此元件線形性能好,在0—100攝氏度時,最大線形偏差小于1攝氏度。DS18B20的最大特點之一采用了單總線的數(shù)據(jù)傳輸,由數(shù)字溫度計DS18B20和微控制器AT89C51構(gòu)成的溫度裝置,它直接輸出溫度的數(shù)字信號到微控制器。每只DS18B20具有一個獨有的不可修改的64位序列號,根據(jù)序列號可訪問不同的器件。這樣一條總線上可掛接多個DS18B20傳感器,實現(xiàn)多點溫度測量,輕松的組建傳感網(wǎng)絡(luò)。

綜上分析,我們選用第二種方案圖3.2。圖3.2溫度傳感模塊仿真圖(2)顯示模塊方案一:采用8位段數(shù)碼管,將單片機得到的數(shù)據(jù)通過數(shù)碼管顯示出來。該方案簡單易行,但所需的元件較多,且不容易進(jìn)行操作,可讀性差,一旦設(shè)定后很難再參加其他的功能,顯示格式受限制,且大耗電量大,不宜用電池給系統(tǒng)供電。

方案二:采用液晶顯示器件,液晶顯示平穩(wěn)、省電、美觀,更容易實現(xiàn)題目要求,對后續(xù)的園藝通兼容性高,只需將軟件作修改即可,可操作性強,也易于讀數(shù),采用RT1602兩行十六個字符的顯示,能同時顯示其它的信息如日期、時間、星期、溫度。

綜上分析,我們采用了第二個方案圖3.3圖3.3顯示模塊仿真圖系統(tǒng)的具體設(shè)計與實現(xiàn)采用AT89S52單片機作為控制核心對溫度傳感器DS18B20控制,讀取溫度信號并進(jìn)行計算處理,并送到液晶顯示器LCD1602顯示。按照系統(tǒng)設(shè)計功能的要求,確定系統(tǒng)由3個模塊組成:主控制器、測溫電路和顯示電路。數(shù)字溫度計總體電路結(jié)構(gòu)框圖如圖3.4所示。

主控制器主控制器LCD1062顯示溫度傳感器單片機復(fù)位時鐘振蕩圖3.4總體設(shè)計方框圖3.2器材選用分析3.2.1DS18B20溫度傳感器1.DS18B20的特點本設(shè)計的測溫系統(tǒng)采用芯片DS18B20,DS18B20是DALLAS公司的最新單線數(shù)字溫度傳感器,它的體積更小,適用電壓更寬,更經(jīng)濟。實現(xiàn)方法簡介DS18B20采用外接電源方式工作,一線測溫一線與STC89C51連接,測出的數(shù)據(jù)放在存放器中,將數(shù)據(jù)經(jīng)過BCD碼轉(zhuǎn)換后送到LED顯示。DS18B20溫度傳感器是美國DALLAS半導(dǎo)體公司最新推出的一種改良型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據(jù)實際要求通過簡單的編程實現(xiàn)9~12位的數(shù)字值讀數(shù)方式。DS18B20的性能特點如下:●獨特的單線接口僅需要一個端口引腳進(jìn)行通信;●多個DS18B20可以并聯(lián)在惟一的三線上,實現(xiàn)多點組網(wǎng)功能;●無須外部器件;●可通過數(shù)據(jù)線供電,電壓范圍為3.0~5.5V;●零待機功耗;●溫度以9或12位數(shù)字;●用戶可定義報警設(shè)置;●報警搜索命令識別并標(biāo)志超過程序限定溫度〔溫度報警條件〕的器件;●負(fù)電壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作;DS18B20內(nèi)部結(jié)構(gòu)主要由四局部組成:64位光刻ROM,溫度傳感器,非揮發(fā)的溫度報警觸發(fā)器TH和TL,高速暫存器。DS18B20的管腳排列如圖3.5所示。64位光刻ROM是出廠前被光刻好的,它可以看作是該DS18B20的地址序列號。不同的器件地址序列號不同。CC64位ROM和單線接口高速緩存存儲器與控制邏輯溫度傳感器高溫觸發(fā)器TH低溫觸發(fā)器TL配置存放器8位CRC發(fā)生器Vdd圖3.5DS18B20的內(nèi)部結(jié)構(gòu)圖3.6DS18B20的引腳分布圖64位ROM的結(jié)構(gòu)開始8位是產(chǎn)品類型的編號,接著是每個器件的惟一的序號,共有48位,最后8位是前面56位的CRC檢驗碼,這也是多個DS18B20可以采用一線進(jìn)行通信的原因。溫度報警觸發(fā)器TH和TL,可通過軟件寫入戶報警上下限。DS18B20溫度傳感器的內(nèi)部存儲器還包括一個高速暫存RAM和一個非易失性的可電擦除的EERAM。高速暫存RAM的結(jié)構(gòu)為8字節(jié)的存儲器,結(jié)構(gòu)如圖3.6所示。頭2個字節(jié)包含測得的溫度信息,第3和第4字節(jié)TH和TL的拷貝,是易失的,每次上電復(fù)位時被刷新。第5個字節(jié),為配置存放器,它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。DS18B20工作時存放器中的分辨率轉(zhuǎn)換為相應(yīng)精度的溫度數(shù)值。該字節(jié)各位的定義如圖3.7所示。低5位一直為1,TM是工作模式位,用于設(shè)置DS18B20在工作模式還是在測試模式,DS18B20出廠時該位被設(shè)置為0,用戶要去改動,R1和R0決定溫度轉(zhuǎn)換的精度位數(shù),來設(shè)置分辨率。圖3.7DS18B20的字節(jié)定義DS18B20高速暫存器共9個存存單元,如表3-1所示:表3-1DS18B20的引腳分布圖序號存放器名稱作

用序號存放器名稱0溫度低字節(jié)以16位補碼形式存放4、5保存字節(jié)1、21溫度高字節(jié)6計數(shù)器余值2TH/用戶字節(jié)1存放溫度上限7計數(shù)器/℃3HL/用戶字節(jié)2存放溫度下限8CRC以12位轉(zhuǎn)化為例說明溫度上下字節(jié)存放形式及計算:12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲在18B20的兩個上下兩個8位的RAM中,二進(jìn)制中的前面5位是符號位表3-2所示。如果測得的溫度大于0,這5位為0,只要將測到的數(shù)值乘于0.0625即可得到實際溫度;如果溫度小于0,這5位為1,測到的數(shù)值需要取反加1再乘于0.0625才能得到實際溫度表3-2。表3-2DS18B20的字節(jié)存放表高8位SSSSSSSS低8位232221202-12-22-32-4由圖3.7可以看到,DSl8B20的內(nèi)部存儲器是由8個單元組成,其中第0、1個存放測量溫度值,第2、3分別存放報警溫度的上下限值,第4單元為配置單元,5、6、7單元在DSl8B20這里沒有被用到。對于第4個存放器,用戶可以設(shè)置溫度轉(zhuǎn)換精度,系統(tǒng)默認(rèn)12bit轉(zhuǎn)換精度,相當(dāng)于十進(jìn)制的0.0625℃,其轉(zhuǎn)換時間大約為750us。。圖3.7內(nèi)部存儲器結(jié)構(gòu)圖表3-3溫度精度配置R1R0轉(zhuǎn)換精度〔16進(jìn)制〕轉(zhuǎn)換精度〔十進(jìn)制〕轉(zhuǎn)換時間009bit0.593.75ms0110bit0.25187.5ms1011bit0.125375ms1112bit0.0625750ms由表3-3可見,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位帶符號擴展的二進(jìn)制補碼形式存儲在高速暫存存儲器的第1、2字節(jié)。單片機可以通過單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時低位在先,高位在后,數(shù)據(jù)格式以0.0625℃/LSB形式表示。當(dāng)符號位S=0時,表示測得的溫度值為正值,可以直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)符號位S=1時,表示測得的溫度值為負(fù)值,要先將補碼變成原碼,再計算十進(jìn)制數(shù)值。表3-4是一局部溫度值對應(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)換后,就把測得的溫度值與RAM中的TH、TL字節(jié)內(nèi)容作比擬。假設(shè)T>TH或T<TL,則將該器件內(nèi)的報警標(biāo)志位置位,并對主機發(fā)出的報警搜索命令作出響應(yīng)。因此,可用多只DS18B20同時測量溫度并進(jìn)行報警搜索。在64位ROM的最高有效字節(jié)中存儲有循環(huán)冗余檢驗碼〔CRC〕。主機ROM的前56位來計算CRC值,并和存入DS18B20的CRC值作比擬,以判斷主機收到的ROM數(shù)據(jù)是否正確。DS18B20的測溫原理是這這樣的,器件中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號送給減法計數(shù)器1;高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變,所產(chǎn)生的信號作為減法計數(shù)器2的脈沖輸入。器件中還有一個計數(shù)門,當(dāng)計數(shù)門翻開時,DS18B20就對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖進(jìn)行計數(shù)進(jìn)而完成溫度測量。計數(shù)門的開啟時間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將-55℃所對應(yīng)的一個基數(shù)分別置入減法計數(shù)器1、溫度存放器中,計數(shù)器1和溫度存放器被預(yù)置在-55℃所對應(yīng)的一個基數(shù)值。減法計數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行減法計數(shù),當(dāng)減法計數(shù)器1的預(yù)置值減到0時,溫度存放器的值將加1,減法計數(shù)器1的預(yù)置將重新被裝入,減法計數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行計數(shù),如此循環(huán)直到減法計數(shù)器計數(shù)到0時,停止溫度存放器的累加,此時溫度存放器中的數(shù)值就是所測溫度值。其輸出用于修正減法計數(shù)器的預(yù)置值,只要計數(shù)器門仍未關(guān)閉就重復(fù)上述過程,直到溫度存放器值大致被測溫度值。另外,由于DS18B20單線通信功能是分時完成的,它有嚴(yán)格的時隙概念,因此讀寫時序很重要。系統(tǒng)對DS18B20的各種操作按協(xié)議進(jìn)行。操作協(xié)議為:初使化DS18B20〔發(fā)復(fù)位脈沖〕→發(fā)ROM功能命令→發(fā)存儲器操作命令→處理數(shù)據(jù)。由于DS18B20采用的“一線總線〞結(jié)構(gòu),所以數(shù)據(jù)的傳輸與命令的通訊只要通過微處理器的一根雙向I/o口就可以實現(xiàn)。DSl8B20約定在每次通信前必須對其復(fù)位,具體的復(fù)位時序如圖3.8圖3.8復(fù)位時序圖圖3.8,tRSTL為主機發(fā)出的低電平信號,本文中有AT89S52提供,tRSTL的最小時延為480us,然后釋放總線,檢查DSl8B20的返回信號,看其是否已準(zhǔn)備接受其他操作,其中tPDHIGH時間最小為15us,過60us為DS18B20沒有準(zhǔn)備好,主機應(yīng)繼續(xù)復(fù)位,直到檢測到返回信號變?yōu)榈碗娖綖橹?。?-5DS18B20的ROM操作指令操作指令33H55HCCHF0HECH含義讀ROM匹配ROM跳過ROM搜索ROM報警搜索ROM表3-6DS18B20的存儲器操作指令操作指令4EHBEH48H44HD8HB4H含義寫讀內(nèi)部復(fù)制溫度轉(zhuǎn)換重新調(diào)出讀電源主機一旦檢測到DS18B20的存在,根據(jù)DS18B2的工作協(xié)議,就應(yīng)對ROM進(jìn)行操作,接著對存儲器操作,最后進(jìn)行數(shù)據(jù)處理。在DS18B20中規(guī)定了5條對ROM的操作命令。見表3-5。主機在發(fā)送完ROM操作指令之后,就可以對DS18B20內(nèi)部的存儲器進(jìn)行操作,同樣DS18B20規(guī)定了6條操作指令。見表3-6。DS18B20的讀、寫時序圖見圖3.9。圖3.9DS18B20的讀寫時序圖2.DS18B20的使用方法由于DS18B20采用的是1-Wire總線協(xié)議方式,即在一根數(shù)據(jù)線實現(xiàn)數(shù)據(jù)的雙向傳輸,而對AT89S52單片機來說,硬件上并不支持單總線協(xié)議,因此,我們必須采用軟件的方法來模擬單總線的協(xié)議時序來完成對DS18B20芯片的訪問。由于DS18B20是在一根I/O線上讀寫數(shù)據(jù),因此,對讀寫的數(shù)據(jù)位有著嚴(yán)格的時序要求。DS18B20有嚴(yán)格的通信協(xié)議來保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了幾種信號的時序:初始化時序、讀時序、寫時序。所有時序都是將主機作為主設(shè)備,單圖3.10DS18B20的復(fù)位時序圖3.11DS18B20的讀時序圖3.12DS18B20的寫時序總線器件作為從設(shè)備。而每一次命令和數(shù)據(jù)的傳輸都是從主機主動啟動寫時序開始,如果要求單總線器件回送數(shù)據(jù),在進(jìn)行寫命令后,主機需啟動讀時序完成數(shù)據(jù)接收。數(shù)據(jù)和命令的傳輸都是低位在先。對于DS18B20的讀時序分為讀0時序和讀1時序兩個過程圖3.11和圖3.12。

對于DS18B20的讀時隙是從主機把單總線拉低之后,在15秒之內(nèi)就得釋放單總線,以讓DS18B20把數(shù)據(jù)傳輸?shù)絾慰偩€上。DS18B20在完成一個讀時序過程,至少需要60us才能完成。 DS18B20的寫時序,對于DS18B20的寫時序仍然分為寫0時序和寫1時序兩個過程,對于DS18B20寫0時序和寫1時序的要求不同,當(dāng)要寫0時序時,單總線要被拉低至少60us,保證DS18B20能夠在15us到45us之間能夠正確地采樣IO總線上的“0〞電平,當(dāng)要寫1時序時,單總線被拉低之后,在15us之內(nèi)就得釋放單線。3.2.2AT89S52單片機介紹1.AT89S52的主要性能與MCS-51單片機產(chǎn)品兼容,8K字節(jié)在系統(tǒng)可編程Flash存儲器、1000次擦寫周期、全靜態(tài)操作:0Hz~33Hz、三級加密程序存儲器、32個可編程I/O口線、三個16位定時器/計數(shù)器八個中斷源、全雙工UART串行通道、低功耗空閑和掉電模式、掉電后中斷可喚醒、看門狗定時器、雙數(shù)據(jù)指針、掉電標(biāo)識符。2.AT89S52的功能特性AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲器。使用Atmel公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(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口線,看門狗定時器,2個數(shù)據(jù)指針,三個16位定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時鐘電路。另外,AT89S52可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機一切工作停止,直到下一個中斷或硬件復(fù)位為止。8位微控制器8K字節(jié)在系統(tǒng)可編程FlashAT89S52P0口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動8個TTL邏輯電平。對P0端口寫“1〞時,引腳用作高阻抗輸入。當(dāng)訪問外部程序和數(shù)據(jù)存儲器時,P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0具有內(nèi)部上拉電阻。在flash編程時,P0口也用來接收指令字節(jié);在程序校驗時,輸出指令字節(jié)。程序校驗時,需要外部上拉電阻。P1口:P1口是一個具有內(nèi)部上拉電阻的8位雙向I/O口,P1輸出緩沖器能驅(qū)動4個TTL邏輯電平。對P1端口寫“1〞時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流〔IIL〕。此外,P1.0和P1.2分別作定時器/計數(shù)器2的外部計數(shù)輸入〔P1.0/T2〕和時器/計數(shù)器2的觸發(fā)輸入〔P1.1/T2EX〕,具體如下所示。在flash編程和校驗時,P1口接收低8位地址字節(jié)。引腳號第二功能P1.0T2〔定時器/計數(shù)器T2的外部計數(shù)輸入〕,時鐘輸出P1.1T2EX〔定時器/計數(shù)器T2的捕捉/重載觸發(fā)信號和方向控制〕P1.5MOSI〔在系統(tǒng)編程用〕P1.6MISO〔在系統(tǒng)編程用〕P1.7SCK〔在系統(tǒng)編程用〕P2口:P2口是一個具有內(nèi)部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅(qū)動4個TTL邏輯電平。對P2端口寫“1〞時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流〔IIL〕。在訪問外部程序存儲器或用16位地址讀取外部數(shù)據(jù)存儲器〔例如執(zhí)行MOVX@DPTR〕時,P2口送出高八位地址。在這種應(yīng)用中,P2口使用很強的內(nèi)部上拉發(fā)送1。在使用8位地址〔如MOVX@RI〕訪問外部數(shù)據(jù)存儲器時,P2口輸出P2鎖存器的內(nèi)容。在flash編程和校驗時,P2口也接收高8位地址字節(jié)和一些控制信號。P3口:P3口是一個具有內(nèi)部上拉電阻的8位雙向I/O口,p2輸出緩沖器能驅(qū)動4個TTL邏輯電平。對P3端口寫“1〞時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流〔IIL〕。P3口亦作為AT89S52特殊功能〔第二功能〕使用,如下所示。在flash編程和校驗時,P3口也接收一些控制信號。P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2INT0(外中斷0)P3.3INT1(外中斷1)P3.4T0(定時/計數(shù)器0)P3.5T1(定時/計數(shù)器1)P3.6WR(外部數(shù)據(jù)存儲器寫選通)P3.7RD(外部數(shù)據(jù)存儲器讀選通)此外,P3口還接收一些用于FLASH閃存編程和程序校驗的控制信號。RST——復(fù)位輸入。當(dāng)振蕩器工作時,RST引腳出現(xiàn)兩個機器周期以上高電平將是單片機復(fù)位。ALE/PROG——當(dāng)訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE〔地址鎖存允許〕輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時鐘振蕩頻率的1/6輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。對FLASH存儲器編程期間,該引腳還用于輸入編程脈沖〔PROG〕。如有必要,可通過對特殊功能存放器〔SFR〕區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活。此外,該引腳會被微弱拉高,單片機執(zhí)行外部程序時,應(yīng)設(shè)置ALE禁止位無效。PSEN——程序儲存允許〔PSEN〕輸出是外部程序存儲器的讀選通信號,當(dāng)AT89C52由外部程序存儲器取指令〔或數(shù)據(jù)〕時,每個機器周期兩次PSEN有效,即輸出兩個脈沖,在此期間,當(dāng)訪問外部數(shù)據(jù)存儲器,將跳過兩次PSEN信號。EA/VPP——外部訪問允許,欲使CPU僅訪問外部程序存儲器〔地址為0000H-FFFFH〕,EA端必須保持低電平〔接地〕。需注意的是:如果加密位LB1被編程,復(fù)位時內(nèi)部會鎖存EA端狀態(tài)。如EA端為高電平〔接Vcc端〕,CPU則執(zhí)行內(nèi)部程序存儲器的指令。FLASH存儲器編程時,該引腳加上+12V的編程允許電源Vpp,當(dāng)然這必須是該器件是使用12V編程電壓Vpp。3.3軟件流程圖系統(tǒng)程序主要包括主程序、讀出溫度子程序、溫度轉(zhuǎn)換子程序、計算溫度子程序、顯示等等。3.3.1主程序主要功能是完成DS18B20的初始化工作,并進(jìn)行讀溫度,將溫度轉(zhuǎn)化成為壓縮BCD碼并在顯示器上顯示傳感器所測得的實際溫度。3.3.2讀出溫度子程序讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時需要進(jìn)行CRC校驗,校驗有錯時不進(jìn)行溫度數(shù)據(jù)的改寫。其程序流程圖如圖3.12所示。返回返回DS18B20復(fù)位跳過ROM命令讀取溫度命令讀取操作CRC檢驗9字節(jié)完?CRC檢驗正確?移入溫度存放器NYNY圖3.12讀出溫度子程序3.3.3溫度轉(zhuǎn)換命令子程序溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命令,當(dāng)采用12位分辯率時轉(zhuǎn)換時間約為750ms,在本程序設(shè)計中采用1s顯示程序延時法等待轉(zhuǎn)換的完成。流程圖如圖3.13發(fā)DS18B20復(fù)位命令發(fā)DS18B20復(fù)位命令發(fā)跳過ROM命令發(fā)溫度轉(zhuǎn)換開始命令返回圖3.13溫度轉(zhuǎn)換流程圖3.3.4計算溫度子程序計算溫度子程序?qū)AM中讀取值進(jìn)行BCD碼的轉(zhuǎn)換運算,并進(jìn)行溫度值正負(fù)的判定,其程序流程圖如圖3.14所示YYN開始溫度零下?溫度取值補碼置“—〞標(biāo)志計算小數(shù)位溫度計算整數(shù)位溫度置“+〞標(biāo)志返回圖3.14計算溫度子程序第四章硬件電路的設(shè)計程序編寫完以后,我們先對其進(jìn)行仿真,初步驗證電路圖和程序的可行性和正確性。4.1proteus簡介Proteus是英國Labcenter公司開發(fā)的電路分析與實物仿真軟件。它運行于Windows操作系統(tǒng)上,可以仿真、分析(SPICE)各種模擬器件和集成電路,該軟件的特點是:

1實現(xiàn)了單片機仿真和SPICE電路仿真相結(jié)合。具有模擬電路仿真、數(shù)字電路仿真、單片機及其外圍電路組成的系統(tǒng)的仿真、RS232動態(tài)仿真、I2C調(diào)試器、SPI調(diào)試器、鍵盤和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號發(fā)生器等。

2支持主流單片機系統(tǒng)的仿真。目前支持的單片機類型有:ARM7(LPC21xx)、8051/52系列、AVR系列、PIC10/12/16/18系列、HC11系列以及多種外圍芯片。

3提供軟件調(diào)試功能。在硬件仿真系統(tǒng)中具有全速、單步、設(shè)置斷點等調(diào)試功能,同時可以觀察各個變量、存放器等的當(dāng)前狀態(tài),因此在該軟件仿真系統(tǒng)中,也必須具有這些功能;同時支持第三方的軟件編譯和調(diào)試環(huán)境,如KeilC51uVision2、MPLAB等軟件。具有強大的原理圖繪制功能??傊?,該軟件是一款集單片機和SPICE分析于一身的仿真軟件,功能極其強大。proteus6.5是目前最好的模擬單片機外圍器件的工具,真的很不錯。可以仿真51系列、AVR,PIC等常用的MCU及其外圍電路〔如LCD,RAM,ROM,鍵盤,馬達(dá),LED,AD/DA,局部SPI器件,局部IIC器件,...〕其實proteus與multisim比擬類似,只不過它可以仿真MCU。4.2proteus仿真圖開始顯示時顯示的是學(xué)號如圖4.1所示。圖4.1顯示學(xué)號顯示正常溫度如圖4.2所示圖4.2顯示正常溫度超過設(shè)計的溫度上下限〔這里設(shè)上限和下限分別為100℃和90℃.〕蜂鳴器響報警如圖4.3所示圖4.3超過溫度線報警第五章調(diào)試性能及分析系統(tǒng)的性能調(diào)試以主程序為主。硬件調(diào)試比擬簡單,直接插上電,軟件調(diào)試可以先編寫顯示程序并進(jìn)行硬件的正確性檢驗,然后分別進(jìn)行主程序、從程序的編寫和調(diào)試,由于DS18B20與單片機采用串行數(shù)據(jù)傳送,因此對DS18B20進(jìn)行編程時必須嚴(yán)格地保證讀寫時序,否則將無法讀取測量結(jié)果。性能測試可用制作的溫度計和已有的成品溫度計來同時測量比擬,由于DS18B20精度較高,所以誤差指標(biāo)可以限制在0.1°C以內(nèi),另外,-55°C至+125°C的測溫范圍使得該溫度計完全適用于一般的應(yīng)用場合,其低電壓供電的特性可做成電池供電的手持電子溫度計如圖5.1。圖5.1調(diào)式結(jié)果總結(jié)本次的課程設(shè)計共五周時間,分別進(jìn)行了BS18D20電路原理圖的設(shè)計,電路仿真圖的設(shè)計以及實物電路板的演示三個過程。經(jīng)過這次的課程設(shè)計,我們不僅加深了對Proteus仿真軟件的了解和使用,還學(xué)到了許多課本上沒有涉及知識,練習(xí)了電路原理圖的設(shè)計和仿真運行,同時對上學(xué)期學(xué)習(xí)的單片機課程進(jìn)行了一次全面的復(fù)習(xí)和穩(wěn)固,收益很大。我們知道,課程設(shè)計一般強調(diào)能力培養(yǎng)為主,在獨立完成設(shè)計任務(wù)的同時,還要注意其他幾方面能力的培養(yǎng)與提高,如獨立工作能力與創(chuàng)造力;綜合運用專業(yè)及根底知識的能力,解決實際工程技術(shù)問題的能力;查閱圖書資料、產(chǎn)品手冊和各種工具書的能力;工程繪圖的能力;書寫技術(shù)報告和編制技術(shù)資料的能力。在專業(yè)知識與研究方法方面為日后的畢業(yè)設(shè)計乃至畢業(yè)后的工作奠定良好的根底這次課設(shè)讓我對單片機有了進(jìn)一步的了解,而且對Proteus仿真軟件的有了一定了解。體會到了Proteus仿真軟件的強大。通過本次課設(shè),能夠使我們熟練掌握單片機控制電路的設(shè)計、程序編寫和系統(tǒng)調(diào)試,從而全面地提高我們對單片機的軟件、硬件等方面的理解,進(jìn)而增強我們在實踐環(huán)節(jié)的動手操作能力。譬如,我們可以根據(jù)實驗指導(dǎo)書的要求,完成DS18B20電路的硬件設(shè)計、電路器件的選擇、單片機軟件的運行、以及整體系統(tǒng)調(diào)試,并寫出完善的設(shè)計報告。在進(jìn)行課設(shè)之前,要求我們具備數(shù)字電路、模擬電路、電路根底、微機原理、電力電子、電機學(xué)和單片機等相關(guān)課程的知識,并具備一些根本的實踐操作水平,為以后的就業(yè)打好一定的根底??偟膩碚f,這次的課程設(shè)計自己還是很滿意的,感覺收獲了不少東西,相信此次學(xué)到的知識在以后的生活和學(xué)習(xí)中對我會有很大的幫助!參考文獻(xiàn)[1]張五一,張道光.微機原理與接口技術(shù).鄭州:河南科學(xué)技術(shù)出版社,2006[2]李廣弟.單片機根底.北京:北京航空航天大學(xué)出版社,1994[3]廖常初.現(xiàn)場總線概述.電工技術(shù),1999.[4]倪曉軍.單片機原理與接口技術(shù)教程.北京:清華大學(xué)出版社,2009[5]姚年春向華Protel99SE根底教程.北京.人民名郵電出版社,2009[6]韓穎;Proteus在單片機技術(shù)實訓(xùn)教學(xué)中的應(yīng)用[J];中國科教創(chuàng)新導(dǎo)刊;2008年31期[7]周靈彬;張靖武.PROTEUS的單片機教學(xué)與應(yīng)用仿真[J].單片機與嵌入式系統(tǒng)應(yīng)用;2008年01期[8]張友德,涂時亮.單片微型機原理、應(yīng)用與實驗[M].復(fù)旦大學(xué)出版社.[9]譚浩強.C程序設(shè)計教程[M].清華大學(xué)出版社,2007.[10]余孟嘗.數(shù)字電子技術(shù)根底[M].高等教育出版社.[11]賈振國,許琳.智能化儀器儀表原理及應(yīng)用[M].中國水利水電出版社.附錄1源程序#include<reg52.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintsbitDQ=P1^6;//ds18b20與單片機連接口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)//延時1毫秒{ uinti,j; for(i=0;i<ms;i++) for(j=0;j<114;j++);}//*************************報警程序**************************/voidbaojing(void){unsignedintj; BEEP=0;for(j=49;j>0;j--)//響30ms{BEEP=~BEEP;//輸出頻率800Hzdelay1ms(10);//延時310us} BEEP=0;}voidwr_com(ucharcom)//寫指令//{ delay1ms(1); RS=0; RW=0; EN=0; P0=com; delay1ms(1); EN=1; delay1ms(1); EN=0;}voidwr_dat(uchardat)//寫數(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)//延時1微秒{while(i--);}voidds1820rst()/*ds1820復(fù)位*/{ DQ=1;//DQ復(fù)位 delay_18B20(4);//延時 DQ=0;//DQ拉低 delay_18B20(100);//精確延時大于480us DQ=1;//拉高 delay_18B20(40);}uchards1820rd()/*讀數(shù)據(jù)*/{ uchari=0; uchardat=0; for(i=8;i>0;i--) {

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論