版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
./機(jī)電職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)課題名稱(chēng)基于DS18B20的多路溫度采集系統(tǒng)設(shè)計(jì)院系電氣工程學(xué)院學(xué)生禹濤專(zhuān)業(yè)機(jī)電一體化班級(jí)機(jī)電1202指導(dǎo)老師朱光耀評(píng)閱老師20XX10月23日 目錄TOC\o"1-3"\f\h\u16954畢業(yè)設(shè)計(jì)〔論文任務(wù)書(shū)-2-25536畢業(yè)設(shè)計(jì)〔論文進(jìn)度計(jì)劃表-3-20654摘要-4-201801緒論-5-64621.1課題研究的背景和意義-5-287631.2本設(shè)計(jì)的主要要求 -5-310132系統(tǒng)方案設(shè)計(jì)與選型-6-247913主要硬件介紹-6-241313.1DS18B20-6-226303.2AT89C51-10-89553.3LCD1602-10-101633.4DS1302-11-322093.524C02C-11-229334軟件介紹-12-192314.1Proteus-12-190574.2Keil-12-269755硬件設(shè)計(jì)-12-112225.1溫度采集電路-13-258215.2單片機(jī)最小系統(tǒng)-13-240565.3按鍵輸入電路-14-219585.4報(bào)警電路-15-56125.5LCD顯示電路-14-112555.624C02存儲(chǔ)電路-16-160835.7DS1302時(shí)鐘電路-17-158625.8串行通訊電路-18-136576軟件設(shè)計(jì)-18-238006.1功能概述-18-143886.2系統(tǒng)軟件流程圖-19-322327實(shí)驗(yàn)結(jié)果-19-321307.1溫度顯示仿真-19-183737.2溫度存儲(chǔ)與串行通訊-20-7225總結(jié)-21-6612參考文獻(xiàn)-22-12814致-23-28789附錄A電路原理圖-24-12655附錄B主要程序-25-.畢業(yè)設(shè)計(jì)〔論文任務(wù)書(shū)題目:基于DS18B20的多路溫度采集系統(tǒng)設(shè)計(jì)任務(wù)與要求:以MCS-51系列單片機(jī)為處理器,利用數(shù)字式測(cè)溫儀DS18B20實(shí)現(xiàn)對(duì)4路溫度檢測(cè);利用顯示裝置顯示4路溫度,并能實(shí)現(xiàn)溫度超限報(bào)警,便于送到計(jì)算機(jī)處理系統(tǒng),進(jìn)行必要的控制,主要技術(shù)指標(biāo)有:1、采集路數(shù),4路;2、測(cè)溫精度較高,達(dá)0.10C;3、采樣時(shí)間,每隔一秒采樣一次;4、可以通過(guò)鍵盤(pán)設(shè)置系統(tǒng)參數(shù),用四行漢字顯示溫度;5、溫度可存儲(chǔ)?;疽?、硬件系統(tǒng)設(shè)計(jì):包括MCS-51的I/O接口,LED顯示電路,信號(hào)輸入處理和輸出驅(qū)動(dòng)電路的設(shè)計(jì)。2、軟件部分設(shè)計(jì):包括系統(tǒng)流程圖,系統(tǒng)初始化編程和功能軟件編程3、系統(tǒng)調(diào)試:在硬、軟件設(shè)計(jì)好的前提下,進(jìn)行系統(tǒng)安裝、調(diào)試并改進(jìn),直到達(dá)到控制要求為止.畢業(yè)設(shè)計(jì)〔論文進(jìn)度計(jì)劃表日期工作容執(zhí)行情況指導(dǎo)教師簽字9月25號(hào)—9月27號(hào)論述畢業(yè)設(shè)計(jì)的實(shí)施方案。9月28號(hào)—9月30號(hào)查找DS18B20的多路溫度采集系統(tǒng)方面知識(shí),完成初稿。10月7號(hào)—10月14號(hào)向?qū)熖岢隹尚邢敕?與導(dǎo)師共同確定設(shè)計(jì)。通過(guò)實(shí)驗(yàn)和文獻(xiàn)獲取所需數(shù)據(jù)。11月6號(hào)—11月16號(hào)通過(guò)反復(fù)驗(yàn)證,確定設(shè)計(jì)可行性,完善論文。11月17號(hào)—11月20號(hào)完成論文的最后作者聲明部分,申請(qǐng)答辯交由導(dǎo)師打分。指導(dǎo)教師對(duì)進(jìn)度計(jì)劃實(shí)施情況總評(píng)簽名年月日.摘要本文基于DS18B20設(shè)計(jì)了一種多路溫度數(shù)據(jù)采集系統(tǒng),系統(tǒng)主要由單片機(jī)電路和一組DS18B20數(shù)字傳感器構(gòu)成,同時(shí)具有溫度顯示、數(shù)據(jù)存儲(chǔ)和串行通訊模塊。軟件方面,我們采用keil軟件對(duì)程序進(jìn)行編寫(xiě)以及調(diào)試,硬件方面,我們通過(guò)Proteus軟件對(duì)硬件電路進(jìn)行仿真以及測(cè)試,該系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,功耗較低,測(cè)溫圍為-55℃~+125℃,通過(guò)LCD1602顯示所測(cè)溫度。同時(shí),可以實(shí)現(xiàn)高低溫報(bào)警,若所測(cè)溫度超出設(shè)定圍,相關(guān)器件就會(huì)自動(dòng)報(bào)警。我們也可以通過(guò)對(duì)按鍵的處理來(lái)改變顯示不同通道的溫度。我們還可以把測(cè)得的溫度存儲(chǔ)到24C02芯片中,并且可以實(shí)現(xiàn)串行通訊,把溫度傳送到上位機(jī)。該系統(tǒng)硬件分為3部分:DS18B20溫度測(cè)量模塊、單片機(jī)模塊、溫度顯示模塊、數(shù)據(jù)存儲(chǔ)模塊、上位機(jī)與單片機(jī)通訊接口電路。系統(tǒng)的測(cè)溫精度可以達(dá)到±0.5℃,并且能穩(wěn)定的與單片機(jī)和上位機(jī)通訊。關(guān)鍵詞:DS18B20、多路溫度測(cè)控、高低溫報(bào)警、串行通訊1緒論1.1課題研究的背景和意義在工業(yè)生產(chǎn)中,電流、電壓、溫度、壓力、流量、流速和開(kāi)關(guān)量都是常用的主要被控參數(shù)。其中,溫度控制也越來(lái)越重要。在工業(yè)生產(chǎn)的很多領(lǐng)域中,人們都需要對(duì)各類(lèi)加熱爐、熱處理爐、反應(yīng)爐和鍋爐中的溫度進(jìn)行檢測(cè)和控制。采用單片機(jī)對(duì)溫度進(jìn)行控制不僅具有控制方便、簡(jiǎn)單和靈活性大等優(yōu)點(diǎn),而且可以大幅度提高被控溫度的技術(shù)指標(biāo),從而大大提高產(chǎn)品的質(zhì)量和數(shù)量。因此,單片機(jī)對(duì)溫度的控制問(wèn)題是工業(yè)生產(chǎn)中經(jīng)常會(huì)遇到的控制問(wèn)題。目前應(yīng)用的溫度檢測(cè)系統(tǒng)大多采用由模擬溫度傳感器、多路模擬開(kāi)關(guān)、A/D轉(zhuǎn)換器及單片機(jī)等組成的傳輸系統(tǒng)。這種溫度采集系統(tǒng)需要大量的測(cè)溫電纜,才能把現(xiàn)場(chǎng)傳感器的信號(hào)送到采集卡上.安裝和拆卸繁雜,成本也高。同時(shí)線路上傳送的是模擬信號(hào),易受干擾和損耗,測(cè)量誤差也比較大,不利于控制者根據(jù)溫度變化及時(shí)做出決定。針對(duì)這種情況,本文提出一種采用數(shù)字化單總線技術(shù)的溫度采集系統(tǒng),并利用Proteus和Keil軟件對(duì)設(shè)計(jì)電路進(jìn)行綜合虛擬仿真,實(shí)現(xiàn)了溫度實(shí)時(shí)測(cè)量和顯示。1.2本設(shè)計(jì)的主要要求設(shè)計(jì)一多路溫度測(cè)控系統(tǒng),能實(shí)現(xiàn)8路及以上的溫度點(diǎn)測(cè)量和實(shí)時(shí)顯示,可根據(jù)設(shè)定的上下限輸出報(bào)警及顯示,具有RS485或RS232總線接口。設(shè)計(jì)完整的電路原理圖和編寫(xiě)相關(guān)程序。用MCS-51系列單片機(jī)或其它CPU作為控制器設(shè)計(jì)一完整測(cè)控儀器,包括以下容:溫度可采用標(biāo)準(zhǔn)系列熱電耦或標(biāo)準(zhǔn)熱電阻或DS18B20;用LCD1602顯示或用LED顯示;用輸入按鍵可以暫停、轉(zhuǎn)換、通道的顯示;日歷時(shí)鐘顯示;數(shù)據(jù)記錄存貯功能RS485或RS232通訊PROTEUS仿真以上一種功能2系統(tǒng)方案設(shè)計(jì)與選型系統(tǒng)主要由硬件和軟件兩大部分構(gòu)成,當(dāng)接收到系統(tǒng)發(fā)出的溫度轉(zhuǎn)換命令后,DS18B20開(kāi)始進(jìn)行溫度轉(zhuǎn)換操作并把轉(zhuǎn)化后的結(jié)果放到16位暫存寄存器中的溫度寄存器,然后與系統(tǒng)進(jìn)行數(shù)據(jù)通信,系統(tǒng)將溫度讀出并驅(qū)動(dòng)LCD顯示。如果溫度值低于設(shè)定下限值或高于設(shè)定上限值,則自動(dòng)啟動(dòng)報(bào)警裝置。同時(shí),基于本設(shè)計(jì)的設(shè)計(jì)要求,存儲(chǔ)芯片選用了24C02C,時(shí)鐘芯片選用了DS1302,顯示模塊選擇的是LCD顯示。由于DS18B20單總線通信功能是分時(shí)完成的,它有嚴(yán)格的時(shí)隙概念,因此讀寫(xiě)時(shí)序很重要。該系統(tǒng)結(jié)構(gòu)圖單片機(jī)按鍵輸入電路單片機(jī)按鍵輸入電路測(cè)溫電路時(shí)鐘電路顯示電路串行通訊報(bào)警電路3主要硬件介紹3.1DS18B20DSl820數(shù)字溫度計(jì)是美國(guó)Dallas公司生產(chǎn)的數(shù)字溫度計(jì),它提供9位<二進(jìn)制>溫度讀數(shù),指示器件的溫度。信息經(jīng)過(guò)單線接口送入DSl8B20或從DSl8B20送出,因此從主機(jī)CPU到DSl8B20僅需一條線。DSl820的電源可以由數(shù)據(jù)線本身提供而不需要外部電源。因?yàn)槊恳粋€(gè)DSl820在出廠時(shí)已經(jīng)給定了唯一的序號(hào),因此任意多DSl820可以存放在同一條單線總線上。這允許在許多不同的地方放置溫度敏感器件。DSl820的測(cè)量圍從-55到+125,增量值為0.5,可在ls<典型值>把溫度變換成數(shù)字。每一個(gè)DSl820包括一個(gè)唯一的64位長(zhǎng)的序號(hào),該序號(hào)值存放在DSl820部ROM<只讀存貯器>中。開(kāi)始8位是產(chǎn)品類(lèi)型編碼<DSl820編碼均為10H>。接著的48位是每個(gè)器件唯一的序號(hào),最后8位是前面56位的CRC〔CRC=X8+X5+X4+1碼。下圖為DS18B20的實(shí)物圖。圖2、DS18B20DS1820方框圖〔圖1存儲(chǔ)器和控制邏輯64位ROM和單線端口存儲(chǔ)器和控制邏輯64位ROM和單線端口暫存器溫度傳感器部VDD暫存器溫度傳感器上限觸發(fā)TH上限觸發(fā)TH下限觸發(fā)TL電源探測(cè)下限觸發(fā)TL電源探測(cè)8位CRC產(chǎn)生器8位CRC產(chǎn)生器DS1820溫度轉(zhuǎn)換期間的強(qiáng)上拉供電〔圖2+5VDS1820μP+5VGNDVDD4.7KI/O圖3、DS18B20部結(jié)構(gòu)溫度/數(shù)據(jù)關(guān)系〔表1TEMPERATUREDIGITALOUTPUT<Binary>DIGITALOUTPUT<Hex>+125℃000001111101000007D0h+85℃00000101010100000550h*+25.0625℃00000001100100010191h+10.125℃000000001010001000A2h+0.5℃00000000000010000008h+0℃00000000000000000000h—0.5℃1111111111111000FFF8h—10.125℃1111111101011110FF5Eh—25.0625℃1111111001011111FF6Fh—55℃1111110010010000FC90h根據(jù)DS18B20的通訊協(xié)議,主機(jī)控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過(guò)三個(gè)步驟:每一次讀寫(xiě)之前都要對(duì)DS18B20進(jìn)行復(fù)位,復(fù)位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對(duì)DS18B20進(jìn)行預(yù)定的操作。復(fù)位要求主CPU將數(shù)據(jù)線下拉500微秒,然后釋放,DS18B20收到信號(hào)后等待16~60微秒左右,后發(fā)出60~240微秒的存在低脈沖,主CPU收到此信號(hào)表示復(fù)位成功。指令約定代碼功能讀ROM33H讀DS1820ROM中的編碼〔即64位地址符合ROM55H發(fā)出此命令之后,接著發(fā)出64位ROM編碼,訪問(wèn)單線總線上與該編碼相對(duì)應(yīng)的DS1820使之作出響應(yīng),為下一步對(duì)該DS1820的讀寫(xiě)作準(zhǔn)備。搜索ROMOFOH用于確定掛接在同一總線上DS1820D的個(gè)數(shù)和識(shí)別64位ROM地址,為操作各器件作好準(zhǔn)備。跳過(guò)ROMOCCH忽略64位ROM地址,直接向DS1820發(fā)溫度變換命令,適用于單片工作。告警搜索命令OECE執(zhí)行后,只有溫度超過(guò)設(shè)定值上限或下限的片子才做出響應(yīng)。指令約定代碼功能溫度變換44H啟動(dòng)DS1820進(jìn)行溫度轉(zhuǎn)換,轉(zhuǎn)換時(shí)間最長(zhǎng)500m,〔典型為200m,結(jié)果存入部9字節(jié)RAM中。讀暫存器OBEH讀部RAM中9字節(jié)容寫(xiě)暫存器4EH發(fā)出向部RAM的第3、4字節(jié)寫(xiě)上、下限溫度數(shù)據(jù)命令,緊跟該命令之后,是傳送兩字節(jié)的數(shù)據(jù)復(fù)制暫存器48H將RAM中第3、4字容復(fù)制到EPRAM中重調(diào)EPRAMOBBH將EPRAM中容恢復(fù)到RAM中的第3、4字節(jié)讀供電方式OB4H讀DS1820的供電模式,寄生供電時(shí)DS1820發(fā)送"0",外接電源供電DS1820發(fā)送"1"。圖4、DS18B20部指令3.2AT89C51AT89C51是美國(guó)ATMEL公司生產(chǎn)的低電壓,高性能CMOS8位單片機(jī),片含4kbytes的可反復(fù)擦寫(xiě)的只讀程序存儲(chǔ)器〔PEROM和128bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器〔RAM,器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片置通用8位中央處理器〔CPU和Flash存儲(chǔ)單元,功能強(qiáng)大AT89C51單片機(jī)可為您提供許多高性?xún)r(jià)比的應(yīng)用場(chǎng)合,可靈活應(yīng)用于各種控制領(lǐng)域。ATC9C51實(shí)物圖如圖3。主要參數(shù)如下:·與MCS-51產(chǎn)品指令系統(tǒng)完全兼容·4k字節(jié)可重擦寫(xiě)Flash閃速存儲(chǔ)器·1000次擦寫(xiě)周期·全靜態(tài)操作:0Hz-24MHz·三級(jí)加密程序存儲(chǔ)器·128×8字節(jié)部RAM圖5丶單片機(jī)·32個(gè)可編程I/O口線·2個(gè)16位定時(shí)/計(jì)數(shù)器·6個(gè)中斷源·可編程串行UART通道·低功耗空閑和掉電模式3.3LCD1602由于液晶顯示器每一個(gè)點(diǎn)在收到信號(hào)后就一直保持那種色彩和亮度,恒定發(fā)光,而不像陰極射線管顯示器〔CRT那樣需要不斷刷新新亮點(diǎn)。因此,液晶顯示器畫(huà)質(zhì)高且不會(huì)閃爍。數(shù)字式接口液晶顯示器都是數(shù)字式的,和單片機(jī)系統(tǒng)的接口更加簡(jiǎn)單可靠,操作更加方便。體積小、重量輕液晶顯示器通過(guò)顯示屏上的電極控制液晶分子狀態(tài)來(lái)達(dá)到顯示的目的,在重量上比相同顯示面積的傳統(tǒng)顯示器要輕得多。功耗低相對(duì)而言,液晶顯示器的功耗主要消耗在其部的電極和驅(qū)動(dòng)IC上,因而耗電量比其它顯示器要少得多。LCD1602的實(shí)物圖如圖4,主要參數(shù)如下:·顯示容量:16×2個(gè)字符·芯片工作電壓:4.5—5.5V圖6丶·工作電流:2.0mA<5.0V>·模塊最佳工作電壓:5.0V·字符尺寸:2.95×4.35<W×H>mm3.4DS1302DS1302是美國(guó)DALLAS公司推出的一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘芯片,它可以對(duì)年、月、日、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為2.5V~5.5V。采用三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或RAM數(shù)據(jù)。DS1302部有一個(gè)31×8的用于臨時(shí)性存放數(shù)據(jù)的RAM寄存器。DS1302是DS1202的升級(jí)產(chǎn)品,與DS1202兼容,但增加了主電源/后背電源雙電源引腳,同時(shí)提供了對(duì)后背電源進(jìn)行涓細(xì)電流充電的能力。X1,X232.768kHz晶振引腳GND/RST地/復(fù)位SCLK串行時(shí)鐘VCC1電池引腳VCC2主電源引腳3.524C02C24C02是低工作電壓的2K位串行電可擦除只讀存儲(chǔ)器,部組織為256個(gè)字節(jié),每個(gè)字節(jié)8位,該芯片被廣泛應(yīng)用于低電壓及低功耗的工商業(yè)領(lǐng)域。主要特性工作電壓:1.8V~5.5V輸入/輸出引腳兼容5V應(yīng)用在部結(jié)構(gòu):256x8<2K>二線串行接口輸入引腳經(jīng)施密特觸發(fā)器濾波抑制噪聲雙向數(shù)據(jù)傳輸協(xié)議兼容400KHz〔1.8V,2.5V,2.7V,3.6V支持硬件寫(xiě)保護(hù)高可靠性:讀寫(xiě)次數(shù):1,000,000次–數(shù)據(jù)保存:100年4軟件介紹4.1ProteusProteus是英國(guó)Labeenterelectronics公司研發(fā)的EDA工具軟件。Proteus不僅是模擬電路、數(shù)字電路、模/數(shù)混合電路的設(shè)計(jì)與仿真平臺(tái),更是目前世界最先進(jìn)、最完整的多種型號(hào)微控制器系統(tǒng)的設(shè)計(jì)與仿真平臺(tái)。它真正實(shí)現(xiàn)了在計(jì)算機(jī)上完成從原理圖設(shè)計(jì)、電路分析與仿真、單片機(jī)代碼級(jí)調(diào)試與仿真、系統(tǒng)測(cè)試與功能驗(yàn)證到形成PCB的完整電子設(shè)計(jì)與研發(fā)過(guò)程。Proteus產(chǎn)品系列也包含了革命性的VSM技術(shù),可以對(duì)基于微控制器的設(shè)計(jì)連同所有的外圍電子器件一起仿真。4.2KeilKeilC51美國(guó)KeilSoftware公司出品的51系列兼容單片機(jī)C語(yǔ)言軟件開(kāi)發(fā)系統(tǒng),與匯編相比,C語(yǔ)言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。Keil提供了包括C編譯器、宏匯編、連接器、庫(kù)管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在的完整開(kāi)發(fā)方案,通過(guò)一個(gè)集成開(kāi)發(fā)環(huán)境〔uVision將這些部分組合在一起。運(yùn)行Keil軟件需要WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。如果你使用C語(yǔ)言編程,那么Keil幾乎就是你的不二之選,即使不使用C語(yǔ)言而僅用匯編語(yǔ)言編程,其方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會(huì)令你事半功倍。5硬件設(shè)計(jì)系統(tǒng)硬件設(shè)計(jì)包括溫度采集設(shè)計(jì)、單片機(jī)控制電路設(shè)計(jì)、通信接口電路設(shè)計(jì)。采用數(shù)字溫度芯片DS18B20測(cè)量溫度,輸出信號(hào)全數(shù)字化。便于單片機(jī)處理及控制,省去傳統(tǒng)的測(cè)溫方法的很多外圍電路。且該芯片的物理化學(xué)性很穩(wěn)定,它能用做工業(yè)測(cè)溫元件,此元件線形較好。DS18B20的最大特點(diǎn)之一采用了單總線的數(shù)據(jù)傳輸,由數(shù)字溫度計(jì)DS18B20和單片機(jī)構(gòu)成的溫度測(cè)量裝置,它直接輸出溫度的數(shù)字信號(hào),可直接與計(jì)算機(jī)連接。這樣,測(cè)溫系統(tǒng)的結(jié)構(gòu)就比較簡(jiǎn)單,體積也不大。采用DS1302時(shí)鐘芯片可以方便地得到系統(tǒng)時(shí)間并且輸出方便。采用了24C02這種應(yīng)用廣泛的芯片進(jìn)行數(shù)據(jù)存儲(chǔ)。采用51單片機(jī)控制,軟件編程的自由度大,可通過(guò)編程實(shí)現(xiàn)各種各樣的算術(shù)算法和邏輯控制,而且體積小,硬件實(shí)現(xiàn)簡(jiǎn)單,安裝方便。該系統(tǒng)利用單片機(jī)控制溫度傳感器DS18B20進(jìn)行實(shí)時(shí)溫度檢測(cè)并顯示,能夠?qū)崿F(xiàn)快速測(cè)量環(huán)境溫度,并可以根據(jù)需要設(shè)定上下限報(bào)警溫度。下面分別介紹了各個(gè)硬件部分的電路連接圖。5.1溫度采集電路采用DS18B20一線制芯片,其中1腳接地,3接電源,2為數(shù)據(jù)傳輸線,每個(gè)傳感器有一個(gè)獨(dú)立的光刻地址,用于區(qū)分?jǐn)?shù)據(jù)傳輸次序。理論上說(shuō),這個(gè)電路最多能連接8個(gè)DS18B20,但是要連接更多,DQ端需要外加驅(qū)動(dòng)電源。圖7.溫度采集電路5.2單片機(jī)最小系統(tǒng)單片機(jī)最小系統(tǒng)包括51系列單片機(jī)、晶振電路、復(fù)位電路。如下所示:圖8.單片機(jī)最小系統(tǒng)5.3按鍵輸入電路按鍵輸入如下,其中按下"開(kāi)始/暫停"按鈕LCD開(kāi)始顯示通道的溫度,"通道+"用于向上切換測(cè)量通道,"通道-"用于向下切換測(cè)量通道。圖9.按鍵輸入電路5.4報(bào)警電路如下所示,LED-H為當(dāng)高限報(bào)警時(shí)報(bào)警,LED-L為當(dāng)?shù)拖迗?bào)警時(shí)的報(bào)警。圖10.報(bào)警電路5.5LCD顯示電路本設(shè)計(jì)中,LCD只用了四線,實(shí)現(xiàn)四線顯示。圖11.LCD顯示電路5.624C02存儲(chǔ)電路圖12.24C02電路5.7DS1302時(shí)鐘電路圖13.DS1302電路5.8串行通訊電路圖14.串行通訊電路圖中模擬了一個(gè)上位機(jī)和一個(gè)RS232串行接口。6軟件設(shè)計(jì)6.1功能概述本系統(tǒng)的軟件由C語(yǔ)言編寫(xiě),程序的主要功能是負(fù)責(zé)溫度的實(shí)時(shí)測(cè)量、顯示、存儲(chǔ)并讀出存儲(chǔ)器中的當(dāng)前溫度值給上位機(jī)。6.2系統(tǒng)軟件流程圖開(kāi)始開(kāi)始執(zhí)行初始化程序系統(tǒng)時(shí)間為2MS獲取溫度值掃描按鍵顯示、發(fā)送、存儲(chǔ)溫度,并判斷報(bào)警NY系統(tǒng)時(shí)間為2MS系統(tǒng)時(shí)間為2MS系統(tǒng)時(shí)間為2MST0,T1計(jì)數(shù)器圖15.系統(tǒng)軟件流程圖7實(shí)驗(yàn)結(jié)果7.1溫度顯示仿真圖中可以看出,LCD第一行顯示"027.0"表示0通道的溫度為27.0度,第二行顯示"22:04:19"表示測(cè)量溫度時(shí)的時(shí)間。圖16.溫度顯示仿真7.2溫度存儲(chǔ)與串行通訊如圖所示,左邊對(duì)話框?yàn)?4C02存空間,其中"00001B00"意義是"00"為0通道,"00"為正溫度,"1B"為十六進(jìn)制溫度〔27,"00"為小數(shù)部分為0。右邊對(duì)話框中模擬的是上位機(jī)顯示,也是十六進(jìn)制表示。圖17.溫度存儲(chǔ)與串行通訊總結(jié)經(jīng)過(guò)兩周多的設(shè)計(jì)以及調(diào)試,實(shí)現(xiàn)實(shí)驗(yàn)的部分設(shè)計(jì)要求,能讀出并顯示DS18B20采集的溫度,并且能夠?qū)崿F(xiàn)高低溫報(bào)警,能夠?qū)崿F(xiàn)溫度數(shù)據(jù)的存儲(chǔ)和串行通訊,能通過(guò)對(duì)按鍵的處理來(lái)切換需要顯示的通道溫度,使得1條總線上可以讀取到8個(gè)溫度傳感器的溫度值并將其依次顯示在液晶屏幕上,同時(shí)液晶屏幕可以清楚顯示溫度傳感器溫度值的具體時(shí)間。我在這為期兩周多的設(shè)計(jì)性實(shí)驗(yàn)中,我們?cè)诶蠋煹闹笇?dǎo)下,有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。我希望自己能在今后的深入學(xué)習(xí)中設(shè)計(jì)出更好的,力求創(chuàng)新,努力地提升自己,尋求更大的進(jìn)步!最后用一句話來(lái)結(jié)束吧。"實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn)"。參考文獻(xiàn)[1]DS18B20、lcdLM1602說(shuō)明書(shū)、DS1302說(shuō)明書(shū)、24C02說(shuō)明書(shū);[2]黃惟公等單片機(jī)原理與應(yīng)用技術(shù)電子科大2007;[3]周潤(rùn)景等基于PROTEUS的電路及單片機(jī)系統(tǒng)設(shè)計(jì)與仿真北航2006.5[4]常敏等單片機(jī)應(yīng)用程序開(kāi)發(fā)與實(shí)踐電子工業(yè)2009;[5]馬建國(guó)、孟憲元.電子設(shè)計(jì)自動(dòng)化技術(shù)基礎(chǔ).清華大學(xué)出版,2004[6]威.實(shí)用電子系統(tǒng)設(shè)計(jì)基礎(chǔ),2008[7]威.單片機(jī)系統(tǒng)的PROTEUS設(shè)計(jì)與仿真,2007[8]小忠等單片機(jī)接口技術(shù)實(shí)用子程序.:人民郵電2005.9[9]徐愛(ài)鈞,秀華編著KeilCx51V7.0單片機(jī)高級(jí)語(yǔ)言編程與μVision2應(yīng)用實(shí)踐:
電子工業(yè)出版致為期兩周的課程設(shè)計(jì)也接近了尾聲。此次課程設(shè)計(jì)的完成,凝聚著許多人的關(guān)懷和幫助。首先要感我敬愛(ài)的指導(dǎo)教師朱光耀。他們?cè)趯W(xué)術(shù)上的精心指導(dǎo)和嚴(yán)格要求,在系統(tǒng)研究和調(diào)試過(guò)程中給予的及時(shí)幫助。在完成設(shè)計(jì)期間給我許多幫助和建議,他們兢兢業(yè)業(yè)、對(duì)工作認(rèn)真負(fù)責(zé)的態(tài)度為我們做出了好的表率,時(shí)刻鞭策著我們向他們學(xué)習(xí)。這些使我的課程設(shè)計(jì)得以順利完成,并激勵(lì)著我們?cè)诮窈蟮娜松缆飞喜粩嚅_(kāi)拓進(jìn)取,勇往直前。在此,我再一次對(duì)老師的培養(yǎng)和關(guān)懷表示誠(chéng)摯的意!同時(shí),非常感我的同學(xué)們,在與他們共同的學(xué)習(xí)、工作、生活過(guò)程中,他們給予了我及時(shí)的幫助和建議,開(kāi)拓了我的思路。我對(duì)他們致以真誠(chéng)的意和衷心的祝福。最后,向所有幫助過(guò)我的人致以最誠(chéng)摯的意!.附錄A電路原理圖附錄B主要程序.IIC驅(qū)動(dòng)電路:#include"iic.h"ucharslaw=0xa0;ucharslar=0xa1;voiddelay<ucharn>{uchari;for<i=0;i<n;i++>{ nop;}}/***********************************功能:毫秒延時(shí)函數(shù)參數(shù):當(dāng)晶振為11.0592時(shí)x為毫秒數(shù)********************************/voiddelayms<unsignedintx>{ucharj;while<x-->{ for<j=0;j<113;j++>{;}}}/***********************************功能:起始信號(hào)函數(shù)說(shuō)明:***********************************/voidsta<void>{ SDA=0; SCL=1; SDA=1; delay<4>; SDA=0; SCL=0; delay<4>;}/***********************************功能:停止信號(hào)函數(shù)說(shuō)明:***********************************/voidstop<>{SDA=0; //SDA初始化為低電平"0"_nSCL=1; /*這兩句順序不可以改變*/ delay<4>; SDA=1; delay<4>;}/*發(fā)送應(yīng)答位函數(shù)*/voidack<>{SDA=0; SCL=1; nop; SCL=0; SDA=1; }/*發(fā)送應(yīng)答非位函數(shù)*/voidnack<>{SDA=1; SCL=1; nop; SCL=0; SDA=0;}/***********************************功能:應(yīng)答檢查參數(shù):返回檢查值=1表示返回異常說(shuō)明:每次發(fā)送一個(gè)數(shù)據(jù)后,從即會(huì)發(fā)送一個(gè)0的信號(hào)應(yīng)答這里先讓SDA=1;沒(méi)有返回值則一直=1應(yīng)答異常***********************************/bitcack<>{bitrdflag;SDA=1; //先釋放SDASCL=1;nop;nop;if<SDA==1>{ rdflag=1;}else{ rdflag=0;}SCL=0;returnrdflag;}/***********************************功能:寫(xiě)入當(dāng)前位置的一個(gè)字節(jié)的函數(shù)寫(xiě)入順序7--0;說(shuō)明:調(diào)用此函數(shù)前使用sta<void>;已經(jīng)讓SCL為0在上升沿寫(xiě)入數(shù)據(jù)***********************************/voidWrbytCurrent<uchardat>{uchari; for<i=0;i<8;i++> { nop; SDA=<bit><dat&0x80>; nop; SCL=1; dat<<=1; nop;nop; SCL=0; }}/***********************************功能:在address寫(xiě)入一個(gè)字節(jié)的函數(shù)寫(xiě)入位順序7--0;說(shuō)明:調(diào)用此函數(shù)前使用sta<void>;已經(jīng)讓SCL為0在上升沿讀取數(shù)據(jù)***********************************/voidwrbyt<ucharaddress,uchardat>{bitflag; do { sta<>; //開(kāi)始 WrbytCurrent<slaw>; flag=cack<>;//應(yīng)答 }while<flag==1>; WrbytCurrent<address>; flag=cack<>;//應(yīng)答 while<flag==1>; WrbytCurrent<dat>; flag=cack<>;//應(yīng)答 while<flag==1>; stop<>; delayms<5>;}voidWriteSetN<ucharaddress,ucharwr[],ucharn>{uchari; bitflag; do { sta<>; //開(kāi)始 WrbytCurrent<slaw>; //器件地址 flag=cack<>;//應(yīng)答 }while<flag==1>; //一直發(fā)送到應(yīng)答成功 WrbytCurrent<address>;//數(shù)據(jù)地址 flag=cack<>;//應(yīng)答 while<flag==1>; for<i=0;i<n;i++> //從address開(kāi)始寫(xiě)入n個(gè)字節(jié)數(shù) { WrbytCurrent<wr[i]>; flag=cack<>;//應(yīng)答 while<flag==1>; } stop<>; delayms<5>;}/***********************************功能:讀取當(dāng)前位置的一個(gè)字節(jié)的函數(shù)讀取順序7--0;說(shuō)明:調(diào)用此函數(shù)前使用sta<void>;已經(jīng)讓SCL為0在下降沿讀取數(shù)據(jù)***********************************/ucharRdbytCurrent<>{uchardat,i; for<i=0;i<8;i++> { SCL=1; nop;nop; dat=<dat<<1>|SDA; SCL=0; nop;nop; } returndat;}ucharReadByte<ucharaddress>{uchardat;sta<>; //開(kāi)始 WrbytCurrent<slaw>; //器件地址 ack<>;//應(yīng)答 WrbytCurrent<address>;//寫(xiě)入數(shù)據(jù)地址 ack<>; sta<>; //應(yīng)答 WrbytCurrent<slar>; //器件地址 ack<>; dat=RdbytCurrent<>; //讀取數(shù)據(jù) nack<>; stop<>; delayms<5>; returndat;}Timer.c驅(qū)動(dòng)函數(shù):#include<reg52.h>#include"const.h"#include"Timer.h"bitg_systTime2Ms=0;bitg_time10Ms=0;bitg_time50Ms=0;voidTimer0__Init<>{ TMOD=0X21; SCON=0xd0; TH0=0XF8; TL0=0XCC; ET0=1; TR0=1; TH1=0xfd;//波特率設(shè)置為9600 TL1=0xfd; TR1=1;//開(kāi)定時(shí)器T1運(yùn)行控制位}voidTimer0<>interrupt1{ statics_countFor10Ms=0; statics_countFor50Ms=0; TH0=0XF8; TL0=0XCC; g_systTime2Ms=1; if<++s_countFor10Ms>=5> { s_countFor10Ms=0; g_time10Ms=1; } if<++s_countFor50Ms>=25> { s_countFor50Ms=0; g_time50Ms=1; }}主函數(shù)main.c:#include"reg52.h"#include"LCD1602_4.h"http://四線LCD#include"18b20.h"#include"key.h"#include"Timer.h"#include"ds1302.h"#include"iic.h"sbitHight_Warning=P2^0;sbitLow_Warning=P2^1;ucharDispArray[6]; //儲(chǔ)存顯示字符charT_num;bitStart;uint8datadisp[5];ucharRT_data[6];externstruct//定義日歷時(shí)間結(jié)構(gòu){ uint8Second; uint8Minute; uint8Hour; uint8Day; uint8Week; uint8Month; uint8Year;}CurrentTime;voidLcdShow<uchardat>//LCD顯示函數(shù){uint8temp;temp=dat/16*10+dat%16;disp[0]=temp/10+0x30;disp[1]=temp%10+'0';disp[2]='\0';}voidShow_Time<void>{ v_ClockUpdata_f<>; LcdShow<CurrentTime.Hour>; //顯示時(shí)間 LCD_Prints<0,1,disp>; LcdShow<CurrentTime.Minute>; LCD_Prints<3,1,disp>; LcdShow<CurrentTime.Second>; LCD_Prints<6,1,disp>;}staticcodeunsignedcharget_serial[]={ //獲取的八個(gè)DS18B20部RAM64位序列號(hào) 185,0,0,0,184,197,49,40,224,0,0,0,184,197,50,40, //e0.0.0.0b8,c5,32,28b8,c5,32romserialnumber28family number 215,0,0,0,184,197,51,40,82,0,0,0,184,197,52,40,101,0,0,0,184,197,53,40, 60,0,0,0,184,197,54,40, 11,0,0,0,184,197,55,40, 47,0,0,0,184,197,56,40, };voidGet_Temperature<ucharn> //獲取溫度的函數(shù)有關(guān)變量均為全局變量{ Tm=read0<get_serial+n*8>;}voidShow_Temperature<void>{ if<fushu==0> { //判斷是否加負(fù)號(hào) DispArray[0]=T_num+0x30;//通道號(hào) DispArray[1]=''; //空格 DispArray[2]=''; //溫度正負(fù) if<<Tm%1000>/100==0> DispArray[3]=''; if<<Tm%1000>/100!=0> DispArray[3]=<<Tm%1000>/100>+0x30; DispArray[4]=<<Tm%100>/10>+0x30; DispArray[5]=<Tm%10>+0x30; DispArray[6]='.'; DispArray[7]=dian/10+0x30; DispArray[8]=dian%10+0x30; DispArray[9]='\0'; LCD_Prints<0,0,DispArray>; } if<fushu==1> { //判斷是否加負(fù)號(hào) DispArray[0]=T_num+0x30;//通道號(hào) DispArray[1]=''; //空格 DispArray[2]='-'; //溫度正負(fù) if<<Tm%1000>/100==0> DispArray[3]=''; if<<Tm%1000>/100!=0> DispArray[3]=<<Tm%1000>/100>+0x30; DispArray[4]=<<Tm%100>/10>+0x30; DispArray[5]=<Tm%10>+0x30; DispArray[6]='.'; DispArray[7]=dian/10+0x30; DispArray[8]=dian%10+0x30; DispArray[9]='\0'; LCD_Prints<0,0,DispArray>; }}voidEErom_PC<void>{ uchari;
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度排水設(shè)施保險(xiǎn)合同4篇
- 二零二五版飯店蔬菜肉類(lèi)產(chǎn)地直供合作合同2篇
- 二零二五年度全新科技項(xiàng)目居間合作費(fèi)合同模板下載2篇
- 二零二五年度內(nèi)蒙古肉牛產(chǎn)業(yè)鏈人才培養(yǎng)與引進(jìn)合同
- 2025年度汽車(chē)銷(xiāo)售促銷(xiāo)活動(dòng)執(zhí)行合同模板
- 二零二五年度學(xué)校室內(nèi)外體育設(shè)施一體化采購(gòu)合同范本3篇
- 2025年度民間借貸合同監(jiān)督與委托管理服務(wù)合同4篇
- 2025年度面粉加工企業(yè)二零二五年度綠色有機(jī)面粉采購(gòu)合同4篇
- 2025年度新能源汽車(chē)抵押擔(dān)保服務(wù)合同
- 二零二五年度公共綠地養(yǎng)護(hù)管理合同范本3篇
- 廣東省茂名市電白區(qū)2024-2025學(xué)年七年級(jí)上學(xué)期期末質(zhì)量監(jiān)測(cè)生物學(xué)試卷(含答案)
- 2024版?zhèn)€人私有房屋購(gòu)買(mǎi)合同
- 2024爆炸物運(yùn)輸安全保障協(xié)議版B版
- 2025年度軍人軍事秘密保護(hù)保密協(xié)議與信息安全風(fēng)險(xiǎn)評(píng)估合同3篇
- 《食品與食品》課件
- 讀書(shū)分享會(huì)《白夜行》
- 光伏工程施工組織設(shè)計(jì)
- DB4101-T 121-2024 類(lèi)家庭社會(huì)工作服務(wù)規(guī)范
- 化學(xué)纖維的鑒別與測(cè)試方法考核試卷
- 2024-2025學(xué)年全國(guó)中學(xué)生天文知識(shí)競(jìng)賽考試題庫(kù)(含答案)
- 自動(dòng)駕駛汽車(chē)道路交通安全性探討研究論文
評(píng)論
0/150
提交評(píng)論