版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、 目 錄摘要8關鍵詞8Abstract8Key words81 單片機在相關領域的應用與其發(fā)展91.1 單片機的相關介紹91.2 單片機的發(fā)展趨勢9121 低功耗CMOS化9122 微型單片化9123 主流與多種品種共存101.3 單片機在相關領域的應用102 設計方案102.1 設計方案論證102.1.1 方案一102.1.2 方案二112.1.3 方案三112.2 方案的比較與選擇113 系統(tǒng)設計113.1 系統(tǒng)功能簡介113.2 相關芯片介紹123.2.1 AT89S52單片機的介紹123.2.2 DS18B20的介紹163.2.3 LED數(shù)碼管213.3 硬件設計243.3.1 單片機
2、最小系統(tǒng)電路243.3.2 DS18B20測溫電路253.3.3 報警電路263.3.4 四位數(shù)碼管顯示電路273.3.5報警溫度設定按鍵電路273.3.6 ISP程序下載接口電路283.4 軟件設計283.4.1 程序流程圖283.4.2 開機數(shù)碼管顯示設置293.4.3 DS18B20采集溫度程序293.4.4 讀取溫度程序313.4.5顯示溫度程序324 調(diào)試過程334.1數(shù)碼管顯示亂碼334.2 按鍵處理問題334.3 DS18B20時序問題335 結(jié)論33參考文獻34附錄:35附錄1:系統(tǒng)硬件原理圖35附錄二:系統(tǒng)源程序3532 / 32基于單片機的溫度報警系統(tǒng)的設計摘要:溫度是與人
3、類的生活和工作關系最密切的物理量之一,也是各門學科與工程研究設計中經(jīng)常遇到和必須測定的物理量,隨著單片機技術的應用和發(fā)展,對于溫度的檢測已經(jīng)開始向智能化方向發(fā)展。本文以AT89S52單片機為主控元件,通過DS18S20溫度傳感器測溫,以4位共陽極LED數(shù)碼管為顯示電路,實現(xiàn)了一個小型溫度智能化報警系統(tǒng),具有低成本、易使用和制作簡單等優(yōu)點,具有廣闊的市場前景。關鍵詞:AT89S52;單片機;溫度傳感器;數(shù)字溫度計;The design of Temperature alarm System which is based on Single Chip MicrocontrollerAbstract
4、:The temperature is one of the physical quantities which are the most closely related with the life and work of human, and its the physical quantities that each subject and engineering research and design frequently encountered in and must determine. With the development of single-chip microcontroll
5、er technology, for the temperature testing has started to intelligent direction. The MSC-51 single chip microcontroller is the core, though the temperature sensor DS18S20 and 4 bit common cathode LED ,we implements a small temperature intelligent alarming system. With low cost ,easy to use and easy
6、fabrication etc, so it has a broad market prospect.Keywords: AT89S52;Single-chip microcontroller;Temperature sensor;Digital thermometer;1 單片機在相關領域的應用與其發(fā)展1.1 單片機的相關介紹單片機全片微型計算機,是把中央處理器、存儲器、定時計數(shù)器、輸入輸出接口都集成在一塊電路芯片上的微型計算機。與應用在個人電腦中的通用型微處理器相比,它更強調(diào)自供應(不用外接硬件)和節(jié)約成本。它的最大優(yōu)點就是體積小,可放在儀表部,但存儲量小,輸入輸出接口簡單,功能較低。隨著
7、電子技術的發(fā)展,舊的單片機的定義已經(jīng)不能全面概況目前單片機的狀況,所以如今在很多場合被稱為圍更廣的微控制器,英文名為single chip microcontroller。1.2 單片機的發(fā)展趨勢121 低功耗CMOS化隨著當今人們對單片機功耗要求越來越高,現(xiàn)在的各個單片機制造商基本都采用COMS(互補金屬氧化物半導體)工藝。COMS雖然功耗較低,但由于其物理特征決定了其工作速度不夠高,而CHOMS則具備了高速和低功耗的特點,這些特點更能適應現(xiàn)代社會的要求,所以這種工藝將是今后一段時間單片機技術發(fā)展的主要途徑。122 微型單片化現(xiàn)在的電子產(chǎn)品普遍向著小體積、輕重量方向發(fā)展,這就要求單片機除了功
8、能強和功耗低外,還要求其體積要小?,F(xiàn)在的許多單片機都具有多種封裝形式,其中SMD(表面封裝)技術越來越受歡迎,使得單片機向著微型化方向發(fā)展。123 主流與多種品種共存現(xiàn)在市面上,單片機品種繁多,各具特色,其中以89C51為核心的單片機是主流,而Microchip公司的PIC精簡指令集(RISC)單片機,中國HOLTEK公司近年來的單片機產(chǎn)量與日俱增,與其低價質(zhì)優(yōu)的優(yōu)勢,占據(jù)了一定的市場份額。在一定的時期,這種情形將得以延續(xù)和發(fā)展,將不存在某個品牌的單片機一統(tǒng)天下的壟斷局面,現(xiàn)在和未來的趨勢必然是依存互補,相輔相成,共同發(fā)展。1.3 單片機在相關領域的應用在信息高速發(fā)展的21世紀,科學技術的發(fā)展
9、日新月異,科技的進步帶動了測量技術的發(fā)展,現(xiàn)代控制設備的性能和結(jié)構(gòu)發(fā)生了翻天覆地的變化。我們進入了高速發(fā)展的信息時代,測量技術也成為當今科技的一個主流,廣泛地深入研究和應用工程的各個領域。隨著科學技術日益迅速的發(fā)展,數(shù)字監(jiān)控系統(tǒng)已經(jīng)深入到生活的各個方面。數(shù)字溫度計作為數(shù)字監(jiān)控系統(tǒng)的重要組成部分發(fā)揮著極其重要的作用。它克服了接觸式溫度計對傳感器的耐熱性能要求比較苛刻的缺點,使溫度計無論在使用圍還是測量精度上都有了長足的進步。2 設計方案2.1 設計方案論證2.1.1 方案一由于本設計是測溫電路,可以使用熱敏電阻之類的器件利用其感溫效應,在將隨被測溫度變化的電壓或電流采集過來,進行A/D轉(zhuǎn)換后,就
10、可以用單片機進行數(shù)據(jù)的處理,在顯示電路上,就可以將被測溫度顯示出來,這種設計需要用到A/D轉(zhuǎn)換電路,感溫電路比較麻煩。如下圖:圖2-1 熱敏電阻2.1.2 方案二選定了溫度傳感器之后,再來考慮它的控制核,因為數(shù)字溫度計的設計并不復雜,單片機完全可以處理的了,DSP是比較高端的控制核應用成本相對較高,所以選用單片機是即經(jīng)濟又實惠的選擇。2.1.3 方案三進而考慮到用溫度傳感器,在設計中,大多都是使用傳感器,所以這是非常容易想到的,所以可以采用一只溫度傳感器DS18B20,此傳感器,可以很容易直接讀取被測溫度值,進行轉(zhuǎn)換,就可以滿足設計要求。2.2 方案的比較與選擇從以上三種方案,很容易看出,采用
11、方案三,電路比較簡單,軟件設計也比較簡單,故采用了方案三。3 系統(tǒng)設計3.1 系統(tǒng)功能簡介本系統(tǒng)利用單片機采集溫度,溫度值精確到小數(shù)點一位,用4位數(shù)碼管顯示溫度值,設置三個按鍵調(diào)整報警溫度值,當溫度超出所設定的上下限圍時,蜂鳴器開始報警。系統(tǒng)框圖如圖3-1所示。單片機復位電路報警電路時鐘振蕩溫度傳感器LED顯示蜂鳴器報警圖3-1 總體設計方框圖3.2 相關芯片介紹3.2.1 AT89S52單片機的介紹AT89S52單片機有40個引腳,如圖3-2所示,4k bytes flash片程序存儲器,128 bytes的隨機存取數(shù)據(jù)存儲器(ram),32個外部雙向輸入/輸出(i/o)口,5個中斷優(yōu)先級2
12、層中斷嵌套中斷,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,看門狗(wdt)電路,片時鐘振蕩器。AT89S52單片機是一種低功耗高性能的CMOS8位微控制器,置8KB可在線編程閃存。該器件采用Atmel公司的高密度非易失性存儲技術生產(chǎn),其指令與工業(yè)標準的80C51指令集兼容。片程序存儲器允許重復在線編程,允許程序存儲器在系統(tǒng)通過SPI串行口改寫或用同用的非易失性存儲器改寫。通過把通用的8位CPU與可在線下載的Flash集成在一個芯片上,AT89S52便成為一個高效的微型計算機。它的應用圍廣,可用于解決復雜的控制問題,且成本較低。其結(jié)構(gòu)框圖如圖3-2所示。圖3-2 AT89S52引腳圖3-
13、3 AT89S52結(jié)構(gòu)框圖 此外,AT89S52設計和配置了震蕩頻率可為12MHZ并可通過軟件設置省電模式??臻e模式下,cpu暫停工作,而ram定時計數(shù)器,串行口,外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結(jié)振蕩器而保存ram的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復位。同時該芯片還具有pdip、tqfp和plcc等三種封裝形式,以適應不同產(chǎn)品的需求。(1) AT89S52主要功能特性a、兼容mcs-51指令系統(tǒng)b、4k可反復擦寫(1000次)isp flash romc、32個雙向i/o口 d、4.5-5.5v工作電壓e、2個16位可編程定時/計數(shù)器 f、時鐘頻率0-33mhzg、全雙工uart串
14、行中斷口線 h、128x8bit部rami、2個外部中斷源 j、低功耗空閑和省電模式k、中斷喚醒省電模式 l、3級加密位m、看門狗(wdt)電路 n、軟件設置空閑和省電功能o、靈活的isp字節(jié)和分頁編程 p、雙數(shù)據(jù)寄存器指針(2)AT89S52各引腳介紹按照功能,AT89S52的引腳可分為主電源、外接晶體振蕩或振蕩器、多功能I/O口、控制和復位等。a、多功能I/O口AT89S52共有四個8位的并行I/O口:P0、P1、P2、P3端口,對應的引腳分別是P0.0 P0.7,P1.0 P1.7,P2.0 P2.7,P3.0 P3.7,共32根I/O線。每根線可以單獨用作輸入或輸出。P0端口,該口是一
15、個8位漏極開路的雙向I/O口。在作為輸出口時,每根引腳可以帶動8個TTL輸入負載。當把“1”寫入P0時,則它的引腳可用作高阻抗輸入。當對外部程序或數(shù)據(jù)存儲器進行存取時,P0可用作多路復用的低字節(jié)地址/數(shù)據(jù)總線,在該模式,P0口擁有部上拉電阻。在對Flash存儲器進行編程時,P0用于接收代碼字節(jié);在校驗時,則輸出代碼字節(jié);此時需要外加上拉電阻。P1端口,該口是帶有部上拉電阻的8位雙向I/O端口,P1口的輸出緩沖器可驅(qū)動(吸收或輸出電流方式)4個TTL輸入。對端口寫“1”時,通過部的上拉電阻把端口拉到高電位,此時可用作輸入口。P1口作輸入口使用時,因為有部的上拉電阻,那些被外部信號拉低的引腳會輸出
16、一個電流。在對Flash編程和程序校驗時,P1口接收低8位地址。另外,P1.0與P1.1可以配置成定時/計數(shù)器2的外部計數(shù)輸入端(P1.0/T2)與定時/計數(shù)器2的觸發(fā)輸入端(P1.0/T2EX),如表3-1所示。端口引腳復用功能P1.0T2(定時器/計算器2的外部輸入端)P1.1T2EX(定時器/計算器2的外部觸發(fā)端和雙向控制)P1.5MOSI(用于在線編程)P1.6MISO(用于在線編程)P1.7SCK(用于在線編程)表3-1 P1口管腳復用功能 P2端口,該口是帶有部上拉電阻的8位雙向I/O端口,P2口的輸出緩沖器可驅(qū)動(吸收或輸出電流方式)4個TTL輸入。對端口寫“1”時,通過部的上拉
17、電阻把端口拉到高電位,此時可用作輸入口。P2口作輸入口使用時,因為有部的上拉電阻,那些被外部信號拉低的引腳會輸出一個電流。在訪問外部程序存儲器或16位的外部數(shù)據(jù)存儲器時,P2口送出高8位地址,在訪問8位地址的外部數(shù)據(jù)存儲器時,P2口引腳上的容(就是專用寄存器(SFR)區(qū)中P2寄存器的容),在整個訪問期間不會改變。在對Flash編程和程序校驗期間,P2口也接收高位地址或一些控制信號。 P3端口,該口是帶有部上拉電阻的8位雙向I/O端口,P3口的輸出緩沖器可驅(qū)動(吸收或輸出電流方式)4個TTL輸入。對端口寫“1”時,通過部的上拉電阻把端口拉到高電位,此時可用作輸入口。P3口作輸入口使用時,因為有部
18、的上拉電阻,那些被外部信號拉低的引腳會輸出一個電流。在AT89S52中,同樣P3口還用于一些復用功能,如表3-2所列。在對Flash編程和程序校驗期間,P3口還接收一些控制信號。端口引腳復用功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2INT0(外部中斷0)P3.3INT1(外部中斷1)P3.4T0(定時器0的外部輸入)P3.5T1(定時器1的外部輸入)P3.6WR(外部數(shù)據(jù)存儲器寫選通)P3.7RD(外部數(shù)據(jù)存儲器讀選通)表3-2 P3端口引腳與復用功能表b、RST復位輸入端在振蕩器運行時,在此腳上出現(xiàn)兩個機器周期的高電平將使其單片機復位??撮T狗定時器(Watchdog
19、)溢出后,該引腳會保持98個振蕩周期的高電平。在SFR AUXR(地址8EH)寄存器中的DISRTO位可以用于屏蔽這種功能。DISRTO位的默認狀態(tài),是復位高電平輸出功能使能。c、ALE/PROG地址鎖存允許信號在存取外部存儲器時,這個輸出信號用于鎖存低字節(jié)地址。在對Flash存儲器編程時,這條引腳用于輸入編程脈沖PROG。一般情況下,ALE是振蕩器頻率的6分頻信號,可用于外部定時或時鐘。但是,在對外部數(shù)據(jù)存儲器每次存取中,會跳過一個ALE脈沖。在需要時,可以把地址8EH中的SFR寄存器的0位置為“1”,從而屏蔽ALE的工作;而只有在MOVX或MOVC指令執(zhí)行時ALE才被激活。在單片機處于外部
20、執(zhí)行方式時,對ALE屏蔽位置“1”并不起作用。d、PSEN程序存儲器允許信號它用于讀外部程序存儲器。當AT89S52在執(zhí)行來自外部存儲器的指令時,每一個機器周期PSEN被激活2次。在對外部數(shù)據(jù)存儲器的每次存取中,PSEN的2次激活會被跳過。e、EA/Vpp外部存取允許信號為了確保單片機從地址為0000HFFFFH的外部程序存儲器中讀取代碼,故要把EA接到GND端,即地端。但是,如果鎖定位1被編程,則EA在復位時被鎖存。當執(zhí)行部程序時,EA應接到Vcc。在對Flash存儲器編程時,這條引腳接收12V編程電壓Vpp。f、XTAL1振蕩器的反相放大器輸入,部時鐘工作電路的輸入。g、XTAL2振蕩器的
21、反相放大器輸出。3.2.2DS18B20的介紹(1)DS18B20主要功能特性DS18B20溫度傳感器是美國DALLAS半導體公司最新推出的一種改進型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據(jù)實際要求通過簡單的編程實現(xiàn)位的數(shù)字值讀數(shù)方式。TO92封裝的DS18B20的引腳排列見圖3-4,其引腳功能描述見表3-3。 圖3-4 DS18B20 (底視圖)序號名稱引腳功能描述1GND地信號2DQ數(shù)據(jù)輸入/輸出引腳。開漏單總線接口引腳。當被用著在寄生電源下,也可以向器件提供電源。3VDD可選擇的VDD引腳。當工作于寄生電源時,此引腳必須接地。表3-3 DS18B2
22、0詳細引腳功能描述DS18B20的性能特點如下:a、獨特的單線接口僅需要一個端口引腳進行通信;b、多個DS18B20可以并聯(lián)在惟一的三線上,實現(xiàn)多點組網(wǎng)功能;c、無須外部器件;d、可通過數(shù)據(jù)線供電,電壓圍為3.05.5;e、零待機功耗;f、溫度以或位數(shù)字;g、用戶可定義報警設置;h、報警搜索命令識別并標志超過程序限定溫度(溫度報警條件)的器件;i、負電壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作; DS18B20采用腳PR35封裝或腳SOIC封裝,其部結(jié)構(gòu)框圖如圖3-5所示。C64 位ROM和單線接口高速緩存存儲器與控制邏輯溫度傳感器高溫觸發(fā)器TH低溫觸發(fā)器TL配置寄存器8位
23、CRC發(fā)生器VddI/O圖3-5 DS18B20部結(jié)構(gòu)64位ROM的結(jié)構(gòu)開始位是產(chǎn)品類型的編號,接著是每個器件的惟一的序號,共有48位,最后位是前面56位的CRC檢驗碼,這也是多個DS18B20可以采用一線進行通信的原因。溫度報警觸發(fā)器和,可通過軟件寫入戶報警上下限。DS18B20溫度傳感器的部存儲器還包括一個高速暫存和一個非易失性的可電擦除的EERAM。高速暫存RAM的結(jié)構(gòu)為字節(jié)的存儲器,結(jié)構(gòu)如圖3-5所示。頭個字節(jié)包含測得的溫度信息,第和第字節(jié)和的拷貝,是易失的,每次上電復位時被刷新。第個字節(jié),為配置寄存器,它的容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。DS18B20工作時寄存器中的分辨率轉(zhuǎn)換為相
24、應精度的溫度數(shù)值。該字節(jié)各位的定義如圖3-6所示。低位一直為,是工作模式位,用于設置DS18B20在工作模式還是在測試模式,DS18B20出廠時該位被設置為,用戶要去改動,R1和0決定溫度轉(zhuǎn)換的精度位數(shù),來設置分辨率。溫度 LSB溫度 MSBTH用戶字節(jié)1TL用戶字節(jié)2配置寄存器保留保留保留CRC圖3-6 DS18B20字節(jié)定義由表3-2可見,DS18B20溫度轉(zhuǎn)換的時間比較長,而且分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時間越長。因此,在實際應用中要將分辨率和轉(zhuǎn)換時間權衡考慮。高速暫存的第、字節(jié)保留未用,表現(xiàn)為全邏輯。第字節(jié)讀出前面所有字節(jié)的CRC碼,可用來檢驗數(shù)據(jù),從而保證通信數(shù)據(jù)的正確性。當DS
25、18B20接收到溫度轉(zhuǎn)換命令后,開始啟動轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號擴展的二進制補碼形式存儲在高速暫存存儲器的第、字節(jié)。單片機可以通過單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時低位在先,高位在后,數(shù)據(jù)格式以0.0625LSB形式表示。當符號位時,表示測得的溫度值為正值,可以直接將二進制位轉(zhuǎn)換為十進制;當符號位時,表示測得的溫度值為負值,要先將補碼變成原碼,再計算十進制數(shù)值。表3-4是一部分溫度值對應的二進制溫度數(shù)據(jù)。R1R0分辨率/位溫度最大轉(zhuǎn)換時間/ms00993.750110187.510113751112750表3-4 DS18B20溫度轉(zhuǎn)換時間表DS18B20的測溫原理是這這樣的,器件中
26、低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號送給減法計數(shù)器;高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變,所產(chǎn)生的信號作為減法計數(shù)器的脈沖輸入。器件中還有一個計數(shù)門,當計數(shù)門打開時,DS18B20就對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖進行計數(shù)進而完成溫度測量。計數(shù)門的開啟時間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將55所對應的一個基數(shù)分別置入減法計數(shù)器、溫度寄存器中,計數(shù)器和溫度寄存器被預置在55所對應的一個基數(shù)值。減法計數(shù)器對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行減法計數(shù),當減法計數(shù)器的預置值減到時,溫度寄存器的值將加,減法計數(shù)器的預置將重新被裝入,減法計數(shù)器重新開始對低溫度
27、系數(shù)晶振產(chǎn)生的脈沖信號進行計數(shù),如此循環(huán)直到減法計數(shù)器計數(shù)到時,停止溫度寄存器的累加,此時溫度寄存器中的數(shù)值就是所測溫度值。其輸出用于修正減法計數(shù)器的預置值,只要計數(shù)器門仍未關閉就重復上述過程,直到溫度寄存器值大致被測溫度值。溫度/二進制表示十六進制表示+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 10000000H-0
28、.51111 1111 1111 0000FFF8H-10.1251111 1111 0101 1110FF5EH-25.06251111 1110 0110 1111FE6FH-551111 1100 1001 0000FC90H表3-5一部分溫度對應值表(2) DS18B20溫度傳感器與單片機的接口電路DS18B20可以采用兩種方式供電,一種是采用電源供電方式,此時DS18B20的1腳接地,2腳作為信號線,3腳接電源。另一種是寄生電源供電方式,如圖4 所示單片機端口接單線總線,為保證在有效的DS18B20時鐘周期提供足夠的電流,可用一個MOSFET管來完成對總線的上拉。當DS18B20處于
29、寫存儲器操作和溫度A/D轉(zhuǎn)換操作時,總線上必須有強的上拉,上拉開啟時間最大為10us。采用寄生電源供電方式時VDD端接地。由于單線制只有一根線,因此發(fā)送接口必須是三態(tài)的。由于DS18B20是在一根I/O線上讀寫數(shù)據(jù),因此,對讀寫的數(shù)據(jù)位有著嚴格的時序要求。DS18B20有嚴格的通信協(xié)議來保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了幾種信號的時序:初始化時序、讀時序、寫時序。所有時序都是將主機作為主設備,單總線器件作為從設備。而每一次命令和數(shù)據(jù)的傳輸都是從主機主動啟動寫時序開始,如果要求單總線器件回送數(shù)據(jù),在進行寫命令后,主機需啟動讀時序完成數(shù)據(jù)接收。數(shù)據(jù)和命令的傳輸都是低位在先。(3) DS
30、18B20的控制方法DS18B20有六條控制命令,指令約定代碼操作說明 。CCH:跳過掃描溫度傳感芯片序列號44H: 啟動DS18B20進行溫度轉(zhuǎn)換 BEH :讀度溫度值a、DS18B20的復位時序 圖3-7 DS18B20復位時序圖先將數(shù)據(jù)線置高電平“1”;延時(該時間要求的不是很嚴格,但是盡可能的短一點);數(shù)據(jù)線拉到低電平“0”;延時750微秒(該時間的時間圍可以從480到960微秒);數(shù)據(jù)線拉到高電平“1”;延時等待(如果初始化成功則在15到60毫秒時間之產(chǎn)生一個由DS18B20所返回的低電平“0”。據(jù)該狀態(tài)可以來確定它的存在,但是應注意不能無限的進行等待,不然會使程序進入死循環(huán),所以要
31、進行超時控制);若CPU讀到了數(shù)據(jù)線上的低電平“0”后,還要做延時,其延時的時間從發(fā)出的高電平算起(第(5)步的時間算起)最少要480微秒;將數(shù)據(jù)線再次拉高到高電平“1”后結(jié)束。b、DS18B20的讀時序?qū)τ贒S18B20的讀時序分為讀0時序和讀1時序兩個過程。對于DS18B20的讀時隙是從主機把單總線拉低之后,在15秒之就得釋放單總線,以讓DS18B20把數(shù)據(jù)傳輸?shù)絾慰偩€上。DS18B20在完成一個讀時序過程,至少需要60us才能完成。圖3-8 DS18B20讀時序過程將數(shù)據(jù)線拉高“1”;延時2微秒;將數(shù)據(jù)線拉低“0”;延時15微秒;將數(shù)據(jù)線拉高“1”;延時15微秒;讀數(shù)據(jù)線的狀態(tài)得到1個狀
32、態(tài)位,并進行數(shù)據(jù)處理;延時30微秒。c、DS18B20的寫時序?qū)τ贒S18B20的寫時序仍然分為寫0時序和寫1時序兩個過程。對于DS18B20寫0時序和寫1時序的要求不同,當要寫0時序時,單總線要被拉低至少60us,保證DS18B20能夠在15us到45us之間能夠正確地采樣IO總線上的“0”電平,當要寫1時序時,單總線被拉低之后,在15us之就得釋放單總線。圖3-9 DS18B20寫時序過程數(shù)據(jù)線先置低電平“0”;延時確定的時間為15微秒;按從低位到高位的順序發(fā)送字節(jié)(一次只發(fā)送一位);延時時間為45微秒;將數(shù)據(jù)線拉到高電平;重復上到的操作直到所有的字節(jié)全部發(fā)送完為止;最后將數(shù)據(jù)線拉高。(4
33、)DS18B20注意事項DS18B20雖然有測溫簡單的特點,單在實際應用中應注意一下幾點:a、較小的硬件開銷需要相對復雜的軟件進行補償,由于DS18B20與微處理器間采用串行數(shù)據(jù)傳送,因此,在對DS18B20進行讀寫編程時,必須嚴格的保證讀寫時序,否則將無法讀取測溫結(jié)果。在使用PL/M、C等高級語言進行系統(tǒng)程序設計時,對DS18B20 操作部分最好采用C語言實現(xiàn)。b、在DS18B20的有關資料中均未提與單總線上所掛DS18B20數(shù)量問題,容易使人誤認為可以掛任意多個DS18B20,在實際應用中并非如此。當單總線上所掛DS18B20 超過8個時鐘,就需要解決微處理器的總線驅(qū)動問題,這一點在進行多
34、點測溫系統(tǒng)設計時要加以注意。c、連接DS18B20的總線電纜是有長度限制的。試驗中,當采用普通信號電纜傳輸長度超過50m時,讀取的測溫數(shù)據(jù)將發(fā)生錯誤。當將總線電纜改為雙絞線帶屏蔽電纜時,正常通訊距離可達150m,當采用每米絞合次數(shù)更多的雙絞線帶屏蔽電纜時,正常通訊距離進一步加長。這種情況主要是由總線分布電容使信號波形產(chǎn)生畸變造成的。因此,在用DS18B20進行長距離測溫系統(tǒng)設計時要充分考慮總線分布電容和阻抗匹配問題。d、在DS18B20 測溫程序設計中,向DS18B20 發(fā)出溫度轉(zhuǎn)換命令后,程序總要等待DS18B20 的返回信號,一旦某個DS18B20 接觸不好或斷線,當程序讀該DS18B20
35、 時,將沒有返回信號,程序進入死循環(huán)。這一點在進行DS18B20 硬件連接和軟件設計時也要給予一定的重視。3.2.3 LED數(shù)碼管(1)LED數(shù)碼管主要技術參數(shù)圖3-10 數(shù)碼管數(shù)碼管使用條件:a、段與小數(shù)點上加限流電阻;b、使用電壓:段:根據(jù)發(fā)光顏色決定;c、使用電流:靜態(tài):總電流 80mA(每段 10mA);動態(tài):平均電流 4-5mA; 峰值電流 100mA。上面這個只是七段數(shù)碼管引腳圖,其中共陽極數(shù)碼管引腳圖和共陰極的是一樣的,4位數(shù)(2)LED數(shù)碼管的引腳說明這類數(shù)碼管可以分為共陽極與共陰極兩種,共陽極就是把所有LED的陽極連接到共同接點com,而每個LED的陰極分別為a、b、c、d、
36、e、f、g與dp(小數(shù)點);共陰極則是把所有LED的陰極連接到共同接點com,而每個LED的陽極分別為a、b、c、d、e、f、g與dp(小數(shù)點),如圖3-11、3-12所示。圖中的8個LED分別與上面那個圖中的ADP各段相對應,通過控制各個LED的亮滅來顯示數(shù)字。圖3-11 共陽數(shù)碼管部結(jié)構(gòu)圖3-12 共陰數(shù)碼管部結(jié)構(gòu)對于單個數(shù)碼管來說,從它的正面看進去,左下角那個腳為1腳,以逆時針方向依次為110腳,左上角那個腳便是10腳了,上面兩個圖中的數(shù)字分別與這10個管腳一一對應。注意,3腳和8腳是連通的,這兩個都是公共腳。還有一種比較常用的是四位數(shù)碼管,部的4個數(shù)碼管共用adp這8根數(shù)據(jù)線,為人們的
37、使用提供了方便,因為里面有4個數(shù)碼管,所以它有4個公共端,加上adp,共有12個引腳,下面便是一個共陰的四位數(shù)碼管的部結(jié)構(gòu)圖(共陽的與之相反)。引腳排列依然是從左下角的那個腳(1腳)開始,以逆時針方向依次為112腳,圖3-13中的數(shù)字與之一一對應。圖3-13 4位共陽數(shù)碼管部結(jié)構(gòu)(3)數(shù)碼管編碼說明 4位數(shù)碼管編碼說明,如表3-6所示:P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0eddpcgbfa00010100028H111101011EBH20011001032H310100010A2H411100001E1H510100100A4H60010010024H711101
38、010EAH80010000020H910100000A0HH0110000161HL001100013DH-11110111F7HC001111003CH表3-6 控制命令表(4)碼管引腳圖數(shù)碼管使用注意事項a、數(shù)碼管表面不要用手觸摸,不要用手去弄引角;b、焊接溫度:度;焊接時間:;c、表面有保護膜的產(chǎn)品,可以在使用前撕下來。3.3 硬件設計3.3.1 單片機最小系統(tǒng)電路圖3-14 單片機最小系統(tǒng)(1)單片機9腳接復位電路,可按復位按鈕S1給單片機復位。(2)晶振采用12MHZ。(3)由于單片機只訪問片F(xiàn)lash ROM并執(zhí)行部程序存儲器中的指令,因此單片機的31腳接高電平VCC。3.3.2
39、 DS18B20測溫電路圖3-15 DS18B20電路DS18B20的1腳接地,2腳數(shù)據(jù)端接單片機的P3.4,3腳接VCC,為了確保DS18B20工作可靠,2腳要接10K的上拉電阻。3.3.3 報警電路圖3-16 蜂鳴器電路本系統(tǒng)中采用蜂鳴器報警,由于單片機輸出電流較小,所以用三極管9013驅(qū)動蜂鳴器發(fā)出聲音。3.3.4 四位數(shù)碼管顯示電路圖3-17 數(shù)碼管顯示電路4位數(shù)碼管為共陽管,由于單片機輸出電流比較小,故用4個PNP型的三極管9015來驅(qū)動數(shù)碼管。單片機輸出低電平時三極管導通,使數(shù)碼管的4各公共端1、4、5和12腳為高電平,此時數(shù)碼管的數(shù)據(jù)端輸入低電平后數(shù)碼管被點亮,120歐電阻R12
40、到R19為三極管的限流電阻。3.3.5報警溫度設定按鍵電路圖3-18 按鍵電路 報警溫度用按鍵S2,S3,S4來設置,S2為調(diào)整鍵,按一次可調(diào)整報警上限溫度值,按兩次可調(diào)整報警下限溫度值,按三次數(shù)碼管恢復到正常溫度顯示。3.3.6 ISP程序下載接口電路圖3-19 下載電路 本系統(tǒng)才用AT89S52單片機,故可以采用ISP方式下載程序。3.4 軟件設計3.4.1 程序流程圖開始初始化示化獲取溫度值與溫度上下限比較報警轉(zhuǎn)換并顯示YESY發(fā)DS18B20復位命令發(fā)跳過ROM命令發(fā)讀取溫度命令讀取操作,CRC校驗9字節(jié)完?CRC校驗正?確?移入溫度暫存器結(jié)束NNY圖3-20 主程序流程圖 圖3-21
41、 讀溫度流程圖3.4.2 開機數(shù)碼管顯示設置/*顯示開機初始化等待畫面*/Disp_init() P2 = 0xfe; /顯示-P0 = 0xbf;Delay(200);P0 = 0xef;Delay(200); P0 = 0xfb;Delay(200);P0 = 0xfe;Delay(200);P0 = 0xff; /關閉顯示給單片機上電后,18B20讀取溫度值需要一定的時間,故上數(shù)碼管顯示一定時間的“-”。3.4.3 DS18B20采集溫度程序#define DQ P3_4 /定義DS18B20總線I/O/*延時子程序*/void Delay_DS18B20(int num)while(n
42、um-) ;/*初始化DS18B20*/void Init_DS18B20(void)unsigned char x=0;DQ = 1; /DQ復位Delay_DS18B20(8); /稍做延時DQ = 0; /單片機將DQ拉低Delay_DS18B20(80); /精確延時,大于480usDQ = 1; /拉高總線Delay_DS18B20(14);x = DQ; /稍做延時后,如果x=0則初始化成功,x=1則初始化失敗Delay_DS18B20(20);/*讀一個字節(jié)*/unsigned char ReadOneChar(void)unsigned char i=0;unsigned ch
43、ar dat = 0;for (i=8;i0;i-) DQ = 0; / 給脈沖信號 dat=1; DQ = 1; / 給脈沖信號 if(DQ) dat|=0x80; Delay_DS18B20(4);return(dat);/*寫一個字節(jié)*/void WriteOneChar(unsigned char dat)unsigned char i=0;for (i=8; i0; i-) DQ = 0; DQ = dat&0x01; Delay_DS18B20(5); DQ = 1; dat=1;/*讀取溫度*/unsigned int ReadTemperature(void)unsigned
44、char a=0;unsigned char b=0;unsigned int t=0;float tt=0;Init_DS18B20();WriteOneChar(0xCC); /跳過讀序號列號的操作WriteOneChar(0x44); /啟動溫度轉(zhuǎn)換Init_DS18B20();WriteOneChar(0xCC); /跳過讀序號列號的操作WriteOneChar(0xBE); /讀取溫度寄存器a=ReadOneChar(); /讀低8位b=ReadOneChar(); /讀高8位t=b;t=8;t=t|a;tt=t*0.0625;t= tt*10+0.5; /放大10倍輸出并四舍五入r
45、eturn(t);/*END*/讀取18B20的程序,需要單片機發(fā)送讀命令和寫命令。讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時需進行CRC校驗,校驗有錯時不進行溫度數(shù)據(jù)的改寫。其程序流程圖如圖3-22所示。發(fā)DS18B20復位命令發(fā)跳過ROM命令發(fā)溫度轉(zhuǎn)換開始命令 結(jié)束 圖3-22 溫度轉(zhuǎn)換流程圖3.4.4 讀取溫度程序/*讀取溫度*/void check_wendu(void)uint a,b,c;c=ReadTemperature()-5; /獲取溫度值并減去DS18B20的溫漂誤差a=c/100; /計算得到十位數(shù)字b=c/10-a*10; /計算得到個位數(shù)字m=c/10;
46、 /計算得到整數(shù)位n=c-a*100-b*10; /計算得到小數(shù)位if(m99)m=99;n=9; /設置溫度顯示上限 讀取的18B20程序需要轉(zhuǎn)換出要顯示的溫度值。3.4.5顯示溫度程序/*顯示溫度子程序*/Disp_Temperature() /顯示溫度P2 =0x27; /顯示CP0 = 0xfe;Delay(300);P2 =LEDDatan; /顯示個位P0 = 0xfb;Delay(300);P2 =LEDDatam%10; /顯示十位DIAN =0; /顯示小數(shù)點P0 = 0xef;Delay(300);P2 =LEDDatam/10; /顯示百位P0 = 0xbf;Delay(
47、300);P0 = 0xff; /關閉顯示/*顯示報警溫度子程序*/Disp_alarm(uchar baojing)P2 =0x27; /顯示CP0 = 0xfe;Delay(200);P2 =LEDDatabaojing%10; /顯示十位P0 = 0xfb;Delay(200);P2 =LEDDatabaojing/10; /顯示百位P0 = 0xef;Delay(200);if(set_st=1)P2 =0x8c;else if(set_st=2)P2 =0xa7; /上限H、下限L標示P0 = 0xbf;Delay(200);P0 = 0xff; /關閉顯示根據(jù)數(shù)碼管和單片機管腳的連
48、接順序,算出P2口發(fā)送的數(shù)據(jù)為LEDData=0x28,0xeb,0x32,0xa2,0xe1,0xa4,0x24,0xea,0x20,0xa0;分別對應0 1 2 3 4 5 6 7 8 9.4 調(diào)試過程4.1數(shù)碼管顯示亂碼由于P2口的P2.0到P2.7并沒有按照順序和數(shù)碼管的a,b,c,d,e,f,g相連,所以需要重新編碼,因為用的是共陽數(shù)碼管,所以數(shù)據(jù)端低電平亮,故LEDData=0x28,0xeb,0x32,0xa2,0xe1,0xa4,0x24,0xea,0x20,0xa0;。4.2 按鍵處理問題 由于按鍵采用的是機械按鍵,會發(fā)生抖動,所以程序中要加延時,去抖動。4.3 DS18B2
49、0時序問題DS18B20對于時序要求很嚴格,所以讀寫數(shù)據(jù)時要嚴格按照時序圖上的時間來編寫程序。5 結(jié)論本文詳細講述了系統(tǒng)設計方案,并給出了相關程序流程。本設計應用性比較強,可以應用在倉庫溫度、大棚溫度、機房溫度等的監(jiān)控。另外,如果把本設計方案擴展為多點溫度控制,加上上位機,則可以實現(xiàn)遠程溫度監(jiān)控系統(tǒng),將具有更大的應用價值。本文的創(chuàng)新點在于詳細設計了基于單片機AT89C51的溫度監(jiān)控系統(tǒng),并且已經(jīng)在硬件平臺上成功運行此系統(tǒng)可廣泛用于溫度在DSl8820測溫圍之的場合,有良好的應用前景。經(jīng)過四年的學習,終于完成了我的溫度報警系統(tǒng)的設計,雖然沒有完全達到設計要求,但從心底里說,還是比較高興的。過程當
50、中用到的單片機作為控制核,四段數(shù)碼管作為顯示部分,與其他電路,共同組成了我的成果。首先設計的是它的硬件電路,最重要的部分是89S52控制核,所有的數(shù)據(jù)處理都是采用的單片機,其次是DS18B20溫度采集電路,其他還有晶振電路,復位電路,報警點與上下限溫度調(diào)整電路。其次我們設計了它的靈魂軟件電路,通過用C語言編程實現(xiàn)對器件的控制。從這次的課程設計中,我真真正正的意識到,在以后的學習中,要理論聯(lián)系實際,把我們所學的理論知識用到實際當中,不僅使我真正的學會了數(shù)字溫度計的設計,而且我相信通過這次的學習我能夠達到舉一反三的效果,同時這次的不足之處是在有些細節(jié)方面剛開始做的很不詳細,我想原因在于自己平時對自
51、己的學習要求的不夠嚴格,才造成遇到一些問題顯得驚慌失措,在日后我會克服這些缺點的。參考文獻1 朝青.單片機原理與接口技術(簡明修訂版).:航空航天大學,19982 廣弟.單片機基礎.:航空航天大學,19943 閻石.數(shù)字電子技術基礎(第三版). :高等教育,19894石東海等.單片機數(shù)據(jù)通信技術從入門到精通.:電子科技大學, 2002.148150. 5 王忠飛,胥芳MCS一51單片機原理與嵌入式系統(tǒng)應用M.:電子科技大學,2007P268-2736蔡朝洋,單片機控制實習與專題制作M.:航空航天大學,20067毅剛,喜源,譚曉昀等.MSC-51單片機應用設計M.:工業(yè)大學,19998周堅.單片機C語言輕松
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024幼兒園租賃合同(包括幼兒園特色課程開發(fā)及教學成果展示)3篇
- 2016-2020年印度尼西亞投資環(huán)境分析及前景預測報告
- 出差管理制度及出差標準
- 2024年租房付款條款3篇
- 2025年度離婚協(xié)議書定制與婚姻財產(chǎn)分割法律援助合同3篇
- 2024版消防安裝工程施工合同書
- 重慶旅游職業(yè)學院《病原微生物學實驗》2023-2024學年第一學期期末試卷
- 2025年度15%股權轉(zhuǎn)讓與市場推廣服務合同2篇
- 山西大學《航空計算機組成與結(jié)構(gòu)》2023-2024學年第一學期期末試卷
- 2025年度餐廳智能化改造承包經(jīng)營合同3篇
- 商業(yè)銀行風險偏好和限額管理管理辦法
- 《數(shù)學課程論》課件
- 2024年國家公安部直屬事業(yè)單位招錄人民警察及工作人員696人筆試(高頻重點復習提升訓練)共500題附帶答案詳解
- 初中必背古詩文138首
- 車站調(diào)度員(技師)技能鑒定理論考試題庫(含答案)
- 2024年房屋交接確認書
- 【深信服】PT1-AF認證考試復習題庫(含答案)
- 反芻動物消化道排泄物原蟲診斷技術規(guī)范
- 開放系統(tǒng)10861《理工英語(4)》期末機考真題及答案(第102套)
- 2024年國家能源集團招聘筆試參考題庫含答案解析
- GB/T 43824-2024村鎮(zhèn)供水工程技術規(guī)范
評論
0/150
提交評論