版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
溫度傳感器設(shè)計(jì)方案第一章 緒論本課題研究的背景和意義及發(fā)展趨勢(shì)在人類的生活環(huán)境中,溫度扮演著極其重要的角色。無(wú)論你生活在哪里,從事,無(wú)時(shí)不刻不在與溫度打著交道。自 18世紀(jì)工業(yè)革命以來(lái), 工業(yè)發(fā)展與是否能掌握溫度有著密切的聯(lián)系。 在冶金、鋼鐵、石化、水泥、玻璃、醫(yī)藥等行業(yè),可以說(shuō)幾乎 80%的工業(yè)部門都不得不考慮著溫度的因素。溫度對(duì)于工業(yè)如此重要,由此推進(jìn)了溫度傳感器的發(fā)展。傳感器主要大體經(jīng)過(guò)了三個(gè)發(fā)展階段: 模擬集成溫度傳感器。 該傳感器是采用硅半導(dǎo)體集成工藝制成, 因此亦稱硅傳感器或單片集成溫度傳感器。 此種傳感器具有功能單一 (僅測(cè)量溫度 )、測(cè)溫誤差小、 價(jià)格低、響應(yīng)速度快、 傳輸距離遠(yuǎn)、體積小、微功耗等,適合遠(yuǎn)距離測(cè)溫、控溫,不需要進(jìn)行非線性校準(zhǔn),外圍電路簡(jiǎn)單。它是目前在國(guó)外應(yīng)用最為普遍的一種集成傳感器,典型產(chǎn)品有 AD590、AD592TMP17LM135等;模擬集成溫度控制器。模擬集成溫度控制器主要包括溫控開(kāi)關(guān)、可編程溫度控制器,典型產(chǎn)品有 LM56AD2210用口MAX6509某些增強(qiáng)型集成溫度控制器(例如TC652/653)中還包含了A/D轉(zhuǎn)換器以及固化好的程序,這與智能溫度傳感器有某些相似之處。但它自成系統(tǒng), 工作時(shí)并不受微處理器的控制,這是二者的主要區(qū)別;智能溫度傳感器。能溫度傳感器 (亦稱數(shù)字溫度傳感器)是在20世紀(jì)90年代中期問(wèn)世的。它是微電子技術(shù)、計(jì)算機(jī)技術(shù)和自動(dòng)測(cè)試技術(shù)(ATE)的結(jié)晶。智能溫度傳感器部都包含溫度傳感器、 A/D轉(zhuǎn)換器、信號(hào)處理器、存儲(chǔ)器 (或寄存器 )和接口電路。有的產(chǎn)品還帶多路選擇器、中央控制器(CPU)、隨機(jī)存取存儲(chǔ)器(RAM和只讀存儲(chǔ)器(ROM)智能溫度傳感器的特點(diǎn)是能輸出溫度數(shù)據(jù)及相關(guān)的溫度控制量,適配各種微控制器(MCU);并且它是在硬件的基礎(chǔ)上通過(guò)軟件來(lái)實(shí)現(xiàn)測(cè)試功能的, 其智能化程度也取決于軟件的開(kāi)發(fā)水溫度傳感器的研究意義:本課題研究的重要意義在于生產(chǎn)過(guò)程中隨著科技的不斷發(fā)展, 現(xiàn)代社會(huì)對(duì)各種信息參數(shù)的準(zhǔn)確度和精確度的要求都有了幾何級(jí)的增長(zhǎng), 而如何準(zhǔn)確而又迅速的獲得這些參數(shù), 就需要受制于現(xiàn)代信息基礎(chǔ)的發(fā)展水平。 在三大信息信息采集(即傳感器技術(shù)) 、信息傳輸(通信技術(shù))和信息處理(計(jì)算機(jī)技術(shù))中,傳感器屬于信息技術(shù)的前沿尖端產(chǎn)品, 尤其是數(shù)字溫度傳感器技術(shù), 在我國(guó)各領(lǐng)域已經(jīng)應(yīng)用的非常廣泛可以說(shuō)是滲透到社會(huì)的每一個(gè)領(lǐng)域, 與人民的生活和環(huán)境的溫度息息相關(guān)。溫度是一個(gè)和人們生活環(huán)境有著密切關(guān)系的物理量, 也是一種在生產(chǎn)、 科研、生活中需要測(cè)量和控制的重要物理量, 是國(guó)際單位制七個(gè)基本量之一。 其測(cè)量控制一般產(chǎn)用各式各樣形態(tài)的溫度傳感器。 [3]在傳統(tǒng)的溫度測(cè)量系統(tǒng)設(shè)計(jì)中,往往采用模擬技術(shù)進(jìn)行設(shè)計(jì), 這樣就不可避免地遇到諸如引線誤差補(bǔ)償、 多點(diǎn)測(cè)量中的切換誤差和信號(hào)調(diào)理電路的誤差等問(wèn)題; 而其中某一環(huán)節(jié)處理不當(dāng), 就可能造成整個(gè)系統(tǒng)性能的下降。 隨著現(xiàn)代科學(xué)技術(shù)的飛速發(fā)展, 特別是大規(guī)模集成電路設(shè)計(jì)技術(shù)的發(fā)展, 微型化、集成化、數(shù)字化正成為傳感器發(fā)展的一個(gè)重要方向。美國(guó)Dallas半導(dǎo)體公司推出的數(shù)字溫度傳感器DS18B20具有獨(dú)特的單總線接口,僅需要占用一個(gè)通用I/O端口即可完成與微處理器的通信;在-10?+85C溫度圍具有0.5c精度;用戶可編程設(shè)定9?12位的分辨率。以上特性使得DS18B20t常適用于構(gòu)建高精度、多點(diǎn)溫度測(cè)量系統(tǒng)。溫度傳感器的發(fā)展趨勢(shì):進(jìn)入21世紀(jì)后,溫度傳感器正朝著高精度、多功能、總線標(biāo)準(zhǔn)化、高可靠性及安全性、 開(kāi)發(fā)虛擬傳感器和網(wǎng)絡(luò)傳感器、 研制單片測(cè)溫系統(tǒng)等高科技的方向迅速發(fā)展。傳感器在溫度測(cè)控系統(tǒng)中的應(yīng)用。目前市場(chǎng)主要存在單點(diǎn)和多點(diǎn)兩種溫度測(cè)量?jī)x表。 對(duì)于單點(diǎn)溫測(cè)儀表, 主要采用傳統(tǒng)的模擬集成溫度傳感器, 其中又以熱電阻、 熱電偶等傳感器的測(cè)量精度高,測(cè)量圍大, 而得到了普遍的應(yīng)用。 此種產(chǎn)品測(cè)溫圍大都在 -200℃~800℃之間,分辨率12位,最小分辨溫度在0.001?0.01之間。自帶LED顯示模塊,顯示4位到16位不等。有的儀表還具有存儲(chǔ)功能,可存儲(chǔ)幾百到幾千組數(shù)據(jù)。該類儀表可很好的滿足單個(gè)用戶單點(diǎn)測(cè)量的需要。 多點(diǎn)溫度測(cè)量?jī)x表, 相對(duì)與單點(diǎn)的測(cè)量精度有一定的差距,雖然實(shí)現(xiàn)了多路溫度的測(cè)控,但價(jià)格昂貴。針對(duì)目前市場(chǎng)的現(xiàn)狀, 本課題提出了一種可滿足要求、 可擴(kuò)展的并且性價(jià)比高的單片機(jī)多路測(cè)溫系統(tǒng)。本課題的任務(wù)和系統(tǒng)設(shè)計(jì)目標(biāo)課題的主要任務(wù)是用 80C51設(shè)計(jì)一個(gè)多溫度檢測(cè)系統(tǒng), 整個(gè)系統(tǒng)由單片機(jī)控制,要能夠接收傳感器的數(shù)據(jù)并顯示出來(lái), 可以從軟件設(shè)計(jì)輸入命令, 系統(tǒng)根據(jù)命令,選擇對(duì)應(yīng)的傳感器, 并由驅(qū)動(dòng)電路驅(qū)動(dòng)溫度顯示。 根據(jù)該課題首先要解決的問(wèn)題是對(duì)相關(guān)軟硬件的熟悉和了解, 并學(xué)習(xí)相關(guān)知識(shí)。 然后對(duì)該檢測(cè)系統(tǒng)需要的模塊(包括單片機(jī)主控制器,四點(diǎn)溫度檢測(cè), A/D轉(zhuǎn)換電路的實(shí)現(xiàn),數(shù)碼顯示電路,蜂鳴器電路,等)進(jìn)行分析,最后用Proteus與KEIL連接并仿真,最終進(jìn)行調(diào)試運(yùn)行。開(kāi)發(fā)工具:Proteus仿真軟件,KEIL編程軟件。系統(tǒng)總體設(shè)計(jì)思想是以單片機(jī)為控制核心 ,整個(gè)系統(tǒng)硬件部分包括多個(gè)溫度檢測(cè)部分、 控制執(zhí)行部分、 顯示及鍵盤系統(tǒng)及最小系統(tǒng)基本電路。系統(tǒng)利用單片機(jī)獲得多個(gè)溫度傳感器數(shù)據(jù)并與系統(tǒng)設(shè)計(jì)值進(jìn)行比較 ,根據(jù)比較結(jié)果分別控制執(zhí)行系統(tǒng)。然后再進(jìn)行 Proteus仿真。本課題研究容(1)利用單片機(jī),確定系統(tǒng)的總體設(shè)計(jì)方案,包括其功能設(shè)計(jì);設(shè)計(jì)原則;組成與工作原理;(2)對(duì)單片機(jī)的應(yīng)用作進(jìn)一步的了解,對(duì)于溫度控制要有更進(jìn)一步的認(rèn)識(shí)。進(jìn)行智能傳感器的硬件電路設(shè)計(jì);包括硬件電路構(gòu)成及測(cè)量原理;溫度傳感器的選擇;單片機(jī)的選擇;輸入輸出通道設(shè)計(jì);(4)本系統(tǒng)采用層次化、模塊化設(shè)計(jì),整個(gè)系統(tǒng)由數(shù)據(jù)采集系統(tǒng)、單片機(jī)控制系統(tǒng)、計(jì)算機(jī)監(jiān)控系統(tǒng)組成。進(jìn)行了調(diào)試和仿真,包括硬件仿真和軟件仿真,完成數(shù)據(jù)的采集和處理。
第二章方案論證比較與選擇引言溫度測(cè)量的方案有很多種,可以采用傳統(tǒng)的分立式傳感器、模擬集成傳感器以及新興的智能型傳感器。對(duì)于控制系統(tǒng)可以采用單片機(jī)等。方案設(shè)計(jì)設(shè)計(jì)方案一采用模擬式分立元件,如電容、電感或晶體管等非線形元件,進(jìn)行A/D轉(zhuǎn)換后,就可以用單片機(jī)進(jìn)行數(shù)據(jù)的處理,實(shí)現(xiàn)多個(gè)點(diǎn)溫度的測(cè)量以及顯示, 該方案設(shè)計(jì)電路簡(jiǎn)單易懂,操作簡(jiǎn)單,且價(jià)格便宜,但采用分立元件分散性大,不便于集成數(shù)字化,而且測(cè)量誤差大。設(shè)計(jì)方案二本方案采用80C51單片機(jī)為核心,通過(guò)溫度傳感器AD590R集溫度信號(hào),經(jīng)信號(hào)放大器放大后,送到A/D轉(zhuǎn)換芯片,最終經(jīng)單片機(jī)檢測(cè)處理溫度信號(hào)單 LED>片< >顯示機(jī)圖2.1方案二的框圖如圖2.1,采用該方案技術(shù)已經(jīng)成熟, A/D轉(zhuǎn)換電路設(shè)計(jì)較煩瑣,而且使用AD590進(jìn)行溫度檢測(cè)必須對(duì)冷端進(jìn)行補(bǔ)償,以減小誤差。2.2.3設(shè)計(jì)方案三本方案采用 80C51作為該系統(tǒng)的單片機(jī)。 系統(tǒng)整體硬件電路包括 :電源電路,復(fù)位電路,晶振電路,傳感器電路,溫度顯示電路,上下限報(bào)警電路等。報(bào)警電路可以在被測(cè)溫度不在上下限圍時(shí),發(fā)出報(bào)警鳴叫聲音。當(dāng) DSl8B20采集到多個(gè)溫度信號(hào)后,進(jìn)行電信號(hào)轉(zhuǎn)換送至 80C51中處理,同時(shí)將溫度送到顯示數(shù)碼管顯示,單片機(jī)根據(jù)初始化設(shè)置的溫度上下限進(jìn)行判斷處理, 即如果溫度大于所設(shè)的最高溫度和小于所設(shè)定的最低溫度就啟動(dòng)報(bào)警裝置。整個(gè)系統(tǒng)由單片機(jī)控制, 要能夠接收傳感器的數(shù)據(jù)并顯示出來(lái), 可以從鍵盤輸入命令,系統(tǒng)根據(jù)命令,選擇對(duì)應(yīng)的傳感器,并由驅(qū)動(dòng)電路驅(qū)動(dòng)溫度顯示。并與預(yù)先設(shè)定值進(jìn)行比較,然后由單片機(jī)輸出信號(hào)去控制報(bào)警電路DS18B20PJ用單總線的特點(diǎn)可以方便的實(shí)現(xiàn)多點(diǎn)溫度的測(cè)量,輕松的組建傳感器網(wǎng)絡(luò),系統(tǒng)的抗干擾性好、設(shè)計(jì)靈活、方便,而且適合于在惡劣的環(huán)境下進(jìn)行現(xiàn)場(chǎng)溫度測(cè)量。系統(tǒng)框圖如下:
圖2.2方案三的系統(tǒng)框圖方案的比較與選擇基于數(shù)字式溫度計(jì)DS18B20勺溫度測(cè)量?jī)x的硬軟件開(kāi)發(fā)過(guò)程,DS18B20等溫度信號(hào)直接轉(zhuǎn)換為數(shù)字信號(hào),實(shí)現(xiàn)了與單片機(jī)的直接接口,從而省去了信號(hào)調(diào)理電路。該儀器電路簡(jiǎn)單、功能可靠、測(cè)量效率高,很好地彌補(bǔ)了傳統(tǒng)溫度測(cè)量方法的不足。 相對(duì)與方案 1,在功能、性能、可操作性等方面都有較大的提升。相對(duì)與方案 2,硬件電路簡(jiǎn)單,易于操作,具有更高的性價(jià)比,更大的市場(chǎng)。所以我采用方案 3完成本設(shè)計(jì)。方案的闡述與論證方案三以DS18B2的傳感器、80C51^片機(jī)為控制核心組成多點(diǎn)溫度測(cè)試系統(tǒng),該系統(tǒng)包括電源電路,復(fù)位電路,時(shí)鐘電路,傳感器電路,鍵盤與溫度顯示電路,上下限報(bào)警電路, 驅(qū)動(dòng)電路等組成部。采用美國(guó) Dallas半導(dǎo)體公司推出的數(shù)字溫度傳感器DS18B20屬于新一代適配微處理器的智能溫度傳感器。它具有獨(dú)特的單總線接口,僅需要占用一個(gè)通用 I/0端口即可完成與微處理器的通信。全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集要求通過(guò)簡(jiǎn)單的編程實(shí)現(xiàn)9?12位的數(shù)字值讀數(shù)方式。其可以分別93.75m手口750m交成9位和12位的數(shù)字量,最大分辨率為0.0625C,而且從DS18B2嵌出或?qū)懭隓S18B2的信息僅需要一根口線(單線接口)讀寫。它有如下的性能特點(diǎn):獨(dú)特的單線接口, 既可通過(guò)串行口線, 也可通過(guò)其它 I/O口線與微機(jī)接口,無(wú)需變換其它電路,直接輸出被測(cè)溫度值;多點(diǎn)能力使分布式溫度檢測(cè)應(yīng)用得以簡(jiǎn)化;不需要外部元件;既可用數(shù)據(jù)線供電,也可采用外部電源供電;不需備份電源;6)測(cè)量圍為-55?+125C,固有測(cè)溫分辨率為0.5c;7)通過(guò)編程可實(shí)現(xiàn)9?12位的數(shù)字讀數(shù)方式;用戶可定義非易失性的溫度告警設(shè)置;警告搜索命令能識(shí)別和尋址溫度在編定的極限之外的器件 (溫度警告情況);10)應(yīng)用圍包括恒溫控制、工業(yè)系統(tǒng)、消費(fèi)類產(chǎn)品、溫度計(jì)或任何熱敏系統(tǒng)。以上特性使得DS18B20上常適用于構(gòu)建高精度、多點(diǎn)溫度測(cè)量系統(tǒng)根據(jù)DS18B20Z上的特點(diǎn)我選用方案三來(lái)實(shí)現(xiàn)本課題。第三章 硬件設(shè)計(jì)本課題研究的多點(diǎn)測(cè)溫系統(tǒng)是以單片機(jī)和單總線數(shù)字溫度傳感器 DS18B20為核心,充分利用單片機(jī)優(yōu)越的部和外部資源及數(shù)字溫度傳感器 DS18B20勺優(yōu)越性能構(gòu)成一個(gè)完備的測(cè)溫系統(tǒng), 實(shí)現(xiàn)對(duì)溫度的多點(diǎn)測(cè)量。 整個(gè)系統(tǒng)由單片機(jī)控制,能夠接收傳感器的溫度數(shù)據(jù)并顯示出來(lái),可以從鍵盤輸入命令,系統(tǒng)根據(jù)命令,選擇對(duì)應(yīng)的溫度傳感器,并由驅(qū)動(dòng)電路驅(qū)動(dòng)溫度顯示。本課題設(shè)計(jì)了一種合理、可行的單片機(jī)監(jiān)控軟件, 完成測(cè)量和顯示的任務(wù)。 由于單片機(jī)具有強(qiáng)大的運(yùn)算和控制功能,使得整個(gè)系統(tǒng)具有模塊化、硬件電路簡(jiǎn)單以及操作方便等優(yōu)點(diǎn)。本課題的整個(gè)系統(tǒng)主要是由單片機(jī)、 顯示電路、 鍵盤電路、 驅(qū)動(dòng)電路等構(gòu)成。溫度傳感器溫度傳感器選用細(xì)則現(xiàn)代傳感器在原理與結(jié)構(gòu)上千差萬(wàn)別, 如何根據(jù)具體的測(cè)量目的、 測(cè)量對(duì)象以及測(cè)量環(huán)境合理地選用傳感器, 是在進(jìn)行某個(gè)量的測(cè)量時(shí)首先要解決的題。 當(dāng)傳感器確定之后, 與之相配套的測(cè)量方法和測(cè)量設(shè)備也就可以確定了。 測(cè)量結(jié)果的成敗,在很大程度上取決于傳感器的選用是否合理。根據(jù)測(cè)量對(duì)象與測(cè)量環(huán)境確定傳感器的類型要進(jìn)行—個(gè)具體的測(cè)量工作, 首先要考慮采用何種原理的傳感器, 這需要分析多方面的因素之后才能確定。 因?yàn)?,即使是測(cè)量同一物理量, 也有多種原理的傳感器可供選用, 哪一種原理的傳感器更為合適,則需要根據(jù)被測(cè)量的特點(diǎn)和傳感器的使用條件考慮以下一些具體問(wèn)題:量程的大?。?被測(cè)位置對(duì)傳感器體積的要求; 測(cè)量方式為接觸式還是非接觸式;信號(hào)的引出方法,有線或是非接觸測(cè)量;傳感器的來(lái)源,國(guó)產(chǎn)還是進(jìn)口,價(jià)格能否承受,還是自行研制。 2)靈敏度的選擇通常,在傳感器的線性圍,希望傳感器的靈敏度越高越好。 因?yàn)橹挥徐`敏度高時(shí),與被測(cè)量變化對(duì)應(yīng)的輸出信號(hào)的值才比較大,有利于信號(hào)處理。 但要注意的是,傳感器的靈敏度高, 與被測(cè)量無(wú)關(guān)的外界噪聲也容易混入, 也會(huì)被放大系統(tǒng)放大,影響測(cè)量精度。因此,要求傳感器本身應(yīng)具有較高的信噪比,盡員減少?gòu)耐饨缫氲拇當(dāng)_信號(hào)3)頻率響應(yīng)特性傳感器的頻率響應(yīng)特性決定了被測(cè)量的頻率圍, 必須在允許頻率圍保持不失真的測(cè)量條件,實(shí)際上傳感器的響應(yīng)總有—定延遲,希望延遲時(shí)間越短越好。傳感器的頻率響應(yīng)高,可測(cè)的信號(hào)頻率圍就寬,而由于受到結(jié)構(gòu)特性的影響,機(jī)械系統(tǒng)的慣性較大,因有頻率低的傳感器可測(cè)信號(hào)的頻率較低。4)線性圍傳感器的線形圍是指輸出與輸入成正比的圍。以理論上講,在此圍,靈敏度保持定值。傳感器的線性圍越寬,則其量程越大, 并且能保證一定的測(cè)量精度。在選擇傳感器時(shí),當(dāng)傳感器的種類確定以后首先要看其量程是否滿足要求。但實(shí)際上,任何傳感器都不能保證絕對(duì)的線性, 其線性度也是相對(duì)的。 當(dāng)所要求測(cè)量精度比較低時(shí), 在一定的圍, 可將非線性誤差較小的傳感器近似看作線性的,這會(huì)給測(cè)量帶來(lái)極大的方便。穩(wěn)定性傳感器使用一段時(shí)間后, 其性能保持不變化的能力稱為穩(wěn)定性。 影響傳感器長(zhǎng)期穩(wěn)定性的因素除傳感器本身結(jié)構(gòu)外,主要是傳感器的使用環(huán)境。因此, 要使傳感器具有良好的穩(wěn)定性, 傳感器必須要有較強(qiáng)的環(huán)境適應(yīng)能力。 在選擇傳感器之前,應(yīng)對(duì)其使用環(huán)境進(jìn)行調(diào)查, 并根據(jù)具體的使用環(huán)境選擇合適的傳感器, 或采取適當(dāng)?shù)拇胧瑴p小環(huán)境的影響。精度精度是傳感器的一個(gè)重要的性能指標(biāo), 它是關(guān)系到整個(gè)測(cè)量系統(tǒng)測(cè)量精度的一個(gè)重要環(huán)節(jié)。傳感器的精度越高,其價(jià)格越昂貴,因此,傳感器的精度只要滿足整個(gè)測(cè)量系統(tǒng)的精度要求就可以, 不必選得過(guò)高。 這樣就可以在滿足同一測(cè)量目的的諸多傳感器中選擇比較便宜和簡(jiǎn)單的傳感器。如果測(cè)量目的是定性分析的, 選用重復(fù)精度高的傳感器即可, 不宜選用絕對(duì)量值精度高的;如果是為了定量分析, 必須獲得精確的測(cè)量值, 就需選用精度等級(jí)能滿足要求的傳感器。對(duì)某些特殊使用場(chǎng)合, 無(wú)法選到合適的傳感器, 則需自行設(shè)計(jì)制造傳感器。自制傳感器的性能應(yīng)滿足使用要求。3.1.2溫度傳感器 DS18B20DS18B2型單線智能溫度傳感器,屬于新一代適配微處理器的智能溫度傳感器。全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路。 與傳統(tǒng)的熱敏電阻相比, 它能夠直接讀出被測(cè)溫度, 并且可根據(jù)實(shí)際要求通過(guò)簡(jiǎn)單的編程實(shí)現(xiàn)9?12位的數(shù)字值讀數(shù)方式。其可以分別93.75m手口750m交成9位和12位的數(shù)字量,最大分辨率為0.0625C,而且從DS18B201出或?qū)懭隓S18B2的信息僅需要一根口線 (單線接口 )讀寫。.DS18B2的性能特點(diǎn)單線數(shù)字化智能集成溫度的傳感器,其特點(diǎn)是:①DSI8B2M將被測(cè)溫度直接轉(zhuǎn)換成計(jì)算機(jī)能識(shí)別的數(shù)字信號(hào)輸出,溫度值不需要經(jīng)電橋電路先獲取電壓模擬量,再經(jīng)信號(hào)放大和A/D轉(zhuǎn)換成數(shù)字信號(hào),解決了傳統(tǒng)溫度傳感器存在的因參數(shù)不一致性,在更換傳感器時(shí)會(huì)因放大器零漂而必須對(duì)電路進(jìn)行重新調(diào)試的問(wèn)題,使用方便.②DS18B2能提供9到12位溫度讀數(shù),精度高,且其信息傳輸只需1根信號(hào)線,與計(jì)算機(jī)接口十分簡(jiǎn)便,讀寫及溫度變換的功率來(lái)自于數(shù)據(jù)線而不需額外的電源.
③每一個(gè)DS18B2都有一個(gè)惟一的序列號(hào),這就允許多個(gè)DS18B2硅接到同一總線上.尤其適合于多點(diǎn)溫度檢測(cè)系統(tǒng).④負(fù)壓特性:當(dāng)電源極性接反時(shí),DS18B201然不能正常工作,但不會(huì)因發(fā)熱而燒毀正是由于具有以上特點(diǎn),DS18B20E解決各種誤差、可靠性和實(shí)現(xiàn)系統(tǒng)優(yōu)化等方面與傳統(tǒng)各種溫度傳感器相比, 有無(wú)可比擬的優(yōu)越性,因而廣泛應(yīng)用于過(guò)程控制、環(huán)境控制、建筑物、過(guò)程控制、環(huán)境控制、建筑物、圖3.1DS18B20外部形狀及管腳圖⑵.DS18B201單片機(jī)的典型接口設(shè)計(jì)DS18B2測(cè)溫系統(tǒng)具有測(cè)溫系統(tǒng)簡(jiǎn)單、測(cè)溫精度高、連接方便、占用口線少等優(yōu)點(diǎn)。DS18B2叫單片機(jī)的硬件連接有兩種方法:一是VC援外部電源,GN接地,I/0與單片機(jī)的I/0線相連;二是用寄生電源供電,此時(shí),~UD甘口GN接地,I/0接單片機(jī)I/0。無(wú)論是哪種供電方式,I/0口線都要接4.7kQ左右的上拉電阻。圖4給出了DSl8B2(0t微處理器的典型連接。①DS18B2CW生電源供電方式:如下面圖3.2(a)所示,在寄生電源供電方式下,DS18B2彌單線信號(hào)線上汲取能量:在信號(hào)線DQt于高電平期間把能量?jī)?chǔ)存在部電容里, 在信號(hào)線處于低電平期間消耗電容上的電能工作,直到高電平到來(lái)再給寄生電源(電容)充電。獨(dú)特的寄生電源方式有三個(gè)好處:1)進(jìn)行遠(yuǎn)距離測(cè)溫時(shí),無(wú)需本地電源2)可以在沒(méi)有常規(guī)電源的條件下讀取 ROM3)電路更加簡(jiǎn)潔,僅用一根 I/O口實(shí)現(xiàn)測(cè)溫要想使DS18B2進(jìn)行精確的溫度轉(zhuǎn)換,I/O線必須保證在溫度轉(zhuǎn)換期間提供足夠的能量,由于每個(gè)DS18B2猊溫度轉(zhuǎn)換期間工作電流達(dá)到1mA當(dāng)幾個(gè)溫度傳感器掛在同一根I/O線上進(jìn)行多點(diǎn)測(cè)溫時(shí),只靠4.7K上拉電阻就無(wú)法提供足夠的能量,會(huì)造成無(wú)法轉(zhuǎn)換溫度或溫度誤差極大。因此,該電路只適應(yīng)于單一溫度傳感器測(cè)溫情況下使用, 不適宜采用電池供電系統(tǒng)中。并且工作電源VCC、須保證在5V,當(dāng)電源電壓下降時(shí),寄生電源能夠汲取的能量也降低,會(huì)使溫度誤差變大。②DS18B2CW生電源強(qiáng)上拉供電方式:改進(jìn)的寄生電源供電方式如下面圖3.2(b)所示,為了使DS18B2m動(dòng)態(tài)轉(zhuǎn)換周期中獲得足夠的電流供應(yīng),當(dāng)進(jìn)行溫度轉(zhuǎn)換或拷貝到 E2存儲(chǔ)器操作時(shí),用MOSFETI/O線直接拉到VCC就可提供足夠的電流,在發(fā)出任何涉及到拷貝到E2存儲(chǔ)器或啟動(dòng)溫度轉(zhuǎn)換的指令后,必須在最多 10小把I/O線轉(zhuǎn)換到強(qiáng)上拉狀態(tài)。在強(qiáng)上拉方式下可以解決電流供應(yīng)不走的問(wèn)題, 因此也適合于多點(diǎn)測(cè)溫應(yīng)用,缺點(diǎn)就是要多占用一根 I/O口線進(jìn)行強(qiáng)上拉切換。④DS18B20的外部電源供電方式:如下面圖3.2(c)所示,在外部電源供電方式下,DS18B2CT作電源由VDDH腳接入,其VD端用3?5.5Vt源供電,此時(shí)I/O線不需要強(qiáng)上拉,不存在電源電流不足的問(wèn)題,可以保證轉(zhuǎn)換精度,同時(shí)在總線上理論可以掛接任意多個(gè) DS18B20
傳感器,組成多點(diǎn)測(cè)溫系統(tǒng)。注意:在外部供電的方式下, DS18B2的GNDI腳不能懸空,否則不能轉(zhuǎn)換溫度,讀取的溫度總是85cVCC4.7KDS1852C一門7(a)DS18B201生電源供電方式(c)DS18B20卜部電源供電方式11FroVCC4.7KDS1852C一門7(a)DS18B201生電源供電方式(c)DS18B20卜部電源供電方式11Fro(b)DS18B20 溫度轉(zhuǎn)換期間的強(qiáng)上拉供電(寄生電源方式)圖3.2DS18B20與微處理器的典型連接圖DS18B20的部結(jié)構(gòu):圖3.3為DS18B20的部框圖,它主要包括寄生電源、溫度傳感器、64位激光ROMI線接口、存放中間數(shù)據(jù)的高速暫存器(含便箋式RAM)用于存儲(chǔ)用戶設(shè)定的溫度上下限值的TH和TL觸發(fā)器存儲(chǔ)與控制邏輯、8位循環(huán)冗余校驗(yàn)碼(CRC)發(fā)生器等七部分。64位光刻ROM的排列是:開(kāi)始8位是產(chǎn)品類型標(biāo)號(hào),接著的48
位是該DS18B201身的序列號(hào),最后8位是前面56位的循環(huán)冗余校驗(yàn)碼。光刻R0M的作用是使每一個(gè)DS18B20B各不相同,這可實(shí)現(xiàn)一根總線上掛接多個(gè)DS18B20的目的。暫存存儲(chǔ)器包含了8個(gè)連續(xù)字節(jié),前2個(gè)字節(jié)是測(cè)得的溫度信息,第1個(gè)字節(jié)的容是溫度的低8位,第2個(gè)字節(jié)是溫度的高8位。第3個(gè)和第4個(gè)字節(jié)是THTL的易失性拷貝,第5個(gè)字節(jié)是結(jié)構(gòu)寄存器的易失性拷貝,這3個(gè)字節(jié)的容在每一次上電復(fù)位時(shí)被刷新。第6、7、8個(gè)字節(jié)用于部計(jì)算。第9個(gè)字節(jié)是冗余檢驗(yàn)字節(jié).圖3.3DS18B20的部結(jié)構(gòu)DS18B20的測(cè)溫原理:DS1820M溫原理如下圖所示。圖中低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給計(jì)數(shù)器1。小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給計(jì)數(shù)器1。圖3.4DS18B20測(cè)溫原理高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變,所產(chǎn)生的信號(hào)作為計(jì)數(shù)器2的脈沖輸入。計(jì)數(shù)器1和溫度寄存器被預(yù)置在-55C所對(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í),DS18B20M量溫度原理停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即為所測(cè)溫度。
在正常測(cè)溫情況下,DS18B20的測(cè)溫分辨力為0.5C,可采用下述方法獲得高分辨率的溫度測(cè)量結(jié)果:首先用DS18B20提供的讀暫存器指令(BEH)讀出以0.5C為分辨率的溫度測(cè)量結(jié)果,然后切去測(cè)量結(jié)果中的最低有效位(LSB),得到所測(cè)實(shí)際溫度的整數(shù)部分TZ,然后再用BEH指令取計(jì)數(shù)器1的計(jì)數(shù)剩余值CS和每度計(jì)數(shù)值CD考慮到DS18B2測(cè)量溫度的整數(shù)部分以0.25C、0.75C為進(jìn)位界限的關(guān)系,實(shí)際溫度TS可用下式計(jì)算:TS=(TZ—0.25C)+(CD—CS)/CD(5)告警信號(hào):DS18B20完成溫度轉(zhuǎn)換后,就把測(cè)得的溫度值與THTL作比較。若T>TH或T<TL,則將該器件的告警標(biāo)志置位,并對(duì)主機(jī)發(fā)出的告警搜索命令作出響應(yīng)。因此,可用多只DS18B20同時(shí)測(cè)量溫度并進(jìn)行告警搜索。一旦某測(cè)溫點(diǎn)越限, 主機(jī)利用告警搜索命令即可識(shí)別正在告警的器件,并讀出其序號(hào),而不必考慮非告警器件。CRC的產(chǎn)生:在64位ROM的最高有效字節(jié)中存有循環(huán)冗余校驗(yàn)碼(CRC)。主機(jī)根據(jù)ROM勺前56位來(lái)計(jì)算CRC值,并和存入DS18B20中的CRC值作比較,以判斷主機(jī)收到的ROMR據(jù)是否正確。CRC的函數(shù)表達(dá)式為:CRC=X+X5+X4+1。止匕外,DS18B20尚需依上式為暫存器中的數(shù)據(jù)來(lái)產(chǎn)生一個(gè)8位CRC送給主機(jī),以確保暫存器數(shù)據(jù)傳送無(wú)誤。在本課題中采用四個(gè)數(shù)字式溫度傳感器DS18B201單片機(jī)89C5處接如下圖圖3.5 DS18B2多點(diǎn)溫度測(cè)量連接電路圖圖3.5 DS18B2多點(diǎn)溫度測(cè)量連接電路圖DS1820使用中注意事項(xiàng)DS18B2CS然具有測(cè)溫系統(tǒng)簡(jiǎn)單、測(cè)溫精度高、連接方便、占用口線少等優(yōu)點(diǎn),但在實(shí)際應(yīng)用中也應(yīng)注意以下幾方面的問(wèn)題:①較小的硬件開(kāi)銷需要相對(duì)復(fù)雜的軟件進(jìn)行補(bǔ)償,由于DS18B20W微處理器間采用串行數(shù)據(jù)傳送,因此,在對(duì)DS18B20S行讀寫編程時(shí),必須嚴(yán)格的保證讀寫時(shí)序,否則將無(wú)法讀取測(cè)溫結(jié)果。②在DS18B20勺有關(guān)資料中均未提及單總線上所掛DS18B2O量問(wèn)題,容易使人誤認(rèn)為可以掛任意多個(gè)DS18B20在實(shí)際應(yīng)用中并非如此。當(dāng)單總線上所掛DS18B20a過(guò)8個(gè)時(shí),就需要解決微處理器的總線驅(qū)動(dòng)問(wèn)題,這一點(diǎn)在進(jìn)行多點(diǎn)測(cè)溫系統(tǒng)設(shè)計(jì)時(shí)要加以注意。③連接DS18B20勺總線電纜是有長(zhǎng)度限制的。試驗(yàn)中,當(dāng)采用普通信號(hào)電纜傳輸長(zhǎng)度超過(guò)50m時(shí),讀取的測(cè)溫?cái)?shù)據(jù)將發(fā)生錯(cuò)誤。當(dāng)將總線電纜改為雙絞線帶屏蔽電纜時(shí),正常通訊距離可達(dá)150m當(dāng)采用每米絞合次數(shù)更多的雙絞線帶屏蔽電纜時(shí), 正常通訊距離進(jìn)一步加長(zhǎng)。 這種情況主要是由總線分布電容使信號(hào)波形產(chǎn)生畸變?cè)斐傻?。因此,在用DS18B2M行長(zhǎng)距離測(cè)溫系統(tǒng)設(shè)計(jì)時(shí)要充分考慮總線分布電容和阻抗匹配問(wèn)題。④在DS18B20H溫程序設(shè)計(jì)中,向DS18B2CK出溫度轉(zhuǎn)換命令后,程序總要等待DS18B20勺返回信號(hào),一旦某個(gè)DS18B2戢觸不好或斷線,當(dāng)程序讀該DS18B20寸,將沒(méi)有返回信號(hào),程序進(jìn)入死循環(huán)。這一點(diǎn)在進(jìn)行 DS18B208件連接和軟件設(shè)計(jì)時(shí)也要給予一定的重視。單片機(jī)系統(tǒng)設(shè)計(jì)在當(dāng)今新科學(xué)技術(shù)飛速發(fā)展的年代里, 單片機(jī)的應(yīng)用已越來(lái)越受到人們的重視,它被廣泛的應(yīng)用于家電、醫(yī)療、智能儀表、工業(yè)自動(dòng)化等各個(gè)領(lǐng)域。單片機(jī)全稱單片微型計(jì)算機(jī), 是將計(jì)算機(jī)的基本部分微型化, 使之集成在一塊芯片上的微機(jī)。目前市場(chǎng)上較為流行的單片機(jī)有 Intel公司和Philip公司的8051系列單片機(jī).Motorola公司的M6800系列單片機(jī)。Intel公司的MCS9陳列單片機(jī)以及Microchip公司的PIC系列單片機(jī)。片含有CPUROMRAM并行I/O口、串行I/O口、定時(shí)/計(jì)數(shù)器、A/D、D/A、中斷控制、系統(tǒng)時(shí)鐘及系統(tǒng)總線等。本課題是利用Intel的80C51控制整個(gè)系統(tǒng)。80C51單片機(jī)包含下列幾個(gè)部件:1個(gè)8位CPU1個(gè)片震蕩器及時(shí)鐘電路、4KBROM?序存儲(chǔ)器、128BRAMR據(jù)存儲(chǔ)器、可尋址64KB外部數(shù)據(jù)存儲(chǔ)器和64KB外部程序存儲(chǔ)器的控制電路、32條可編程的 I/O線、2個(gè)16位的定時(shí)/計(jì)數(shù)器、 1個(gè)可編程全雙工串行接口、 5個(gè)中斷源、2個(gè)優(yōu)先級(jí)嵌套中斷結(jié)構(gòu)。本課題運(yùn)用Intel公司的80C51進(jìn)行系統(tǒng)控制,運(yùn)用到了復(fù)位電路,時(shí)鐘電路,串口, I/O口。復(fù)位電路:無(wú)論哪種單片機(jī),都會(huì)涉及到復(fù)位電路。如果復(fù)位電路不可靠,在工作中就有可能出現(xiàn)“死機(jī)” ,“程序走飛”等現(xiàn)象。所以,一個(gè)單片機(jī)復(fù)位電路的好壞, 直接影響到整個(gè)系統(tǒng)工作的可靠性。 復(fù)位操作完成單片機(jī)片電路的初始化,使單片機(jī)從一種確定的狀態(tài)開(kāi)始運(yùn)行。當(dāng)80C51i1片機(jī)的復(fù)位引腳RSTB現(xiàn)5m劭上的高電平時(shí),單片機(jī)就完成了復(fù)位操作,如果 RST寺續(xù)為高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài), 而無(wú)法執(zhí)行程序, 因此要求單片機(jī)復(fù)位后能脫離復(fù)位狀態(tài)。復(fù)位操作通常有上電和開(kāi)關(guān)復(fù)位。 上電復(fù)位要求接通電源后, 自動(dòng)實(shí)現(xiàn)復(fù)位操作。開(kāi)關(guān)復(fù)位要求在電源接通的條件下,在單片機(jī)運(yùn)行期間,如果發(fā)生死機(jī),用按鈕開(kāi)關(guān)操作使單片機(jī)復(fù)位。常用的上電復(fù)位且開(kāi)關(guān)復(fù)位電路如圖 3.6所示,上電后,由于電容充電,使RST寺續(xù)一段高電平時(shí)間。當(dāng)單片機(jī)已在運(yùn)行之中時(shí),按下復(fù)位鍵也能使RST寺續(xù)一段時(shí)間的高電平,從而實(shí)現(xiàn)上電且開(kāi)關(guān)復(fù)位的操作。單片機(jī)的復(fù)位操作使單片機(jī)進(jìn)入初始化過(guò)程,其中包括是程序計(jì)數(shù)器 PC=0000H,P0-P3=FFHSP=07H其他寄存器處于零,程序從0000Hft址單元開(kāi)始執(zhí)行,單片機(jī)復(fù)位后不改變片RAM:中的容。圖3.6.復(fù)位電路時(shí)鐘電路:80C5憚片機(jī)的時(shí)鐘信號(hào)通常用部振蕩和外部振蕩方式。在引腳XTAL評(píng)口XTAX外接晶體振蕩器,就夠成了部振蕩方式。由于單片機(jī)部有一個(gè)高增益反相放大器,當(dāng)外接晶振后,就構(gòu)成了自激振蕩器并產(chǎn)生振蕩時(shí)鐘脈沖。 晶振通常選用6MHZ12MHz24MHz部振蕩器方式如下。如圖3.7,電容器C1、C2B穩(wěn)定振蕩頻率、快速起振的作用,電容值一般為5-30PF。部振蕩方式所得的時(shí)鐘信號(hào)比較穩(wěn)定。外部振蕩方式是把已有的時(shí)鐘信號(hào)引入單片機(jī),這種方式適于用于用來(lái)使單片機(jī)的時(shí)鐘與外部信號(hào)保持一致。3.7時(shí)鐘電路按鍵及顯示電路設(shè)計(jì)本課題要將傳感器的溫度信號(hào)和鍵盤輸入的控制信號(hào)都顯示出來(lái), 利用單片機(jī)80C51傳輸控制信號(hào)。鍵盤在單片機(jī)應(yīng)用系統(tǒng)中能實(shí)現(xiàn)向單片機(jī)輸人數(shù)據(jù)、 傳送命令等功能, 是人工干預(yù)單片機(jī)的主要手段 ,鍵盤實(shí)質(zhì)上是一組按鍵開(kāi)關(guān)集合 ,通常選用機(jī)械彈性開(kāi)關(guān),它們利用了機(jī)械觸點(diǎn)的合、斷作用。鍵的閉合與否,反映在輸出電壓上就是呈現(xiàn)低電平還是高電平, 通過(guò)對(duì)電平高低狀態(tài)的檢測(cè), 便可確認(rèn)是否有按鍵按下。為了確保CPU對(duì)一次按鍵動(dòng)作只確認(rèn)一次, 那就必須消除抖動(dòng)的影響,這樣才能使鍵盤在單片機(jī)系統(tǒng)中使用得更加穩(wěn)定。 常用的鍵盤接口分為獨(dú)立式按鍵接口和矩陣式鍵盤接口。在本系統(tǒng)中, 按鍵主要是用來(lái)設(shè)置溫度的上下限, 對(duì)其上限加和下限減操作,以達(dá)到所要求的溫度值。 因此采用獨(dú)立式鍵盤來(lái)完成這一功能。該溫控系統(tǒng)主要包括:時(shí)鐘模塊、復(fù)位模塊、報(bào)警模塊、鍵盤模塊、溫度采集模塊、 液晶顯示模塊以及溫度控制模塊等。 其中時(shí)鐘模塊和復(fù)位模塊是啟動(dòng)芯片80C51不可或缺的。溫度采集模塊只是采用DS18B20通過(guò)P1.0口對(duì)其初始化、讀操作和寫操作,控制DS18B2廓集數(shù)據(jù)并轉(zhuǎn)換后的數(shù)據(jù)傳到單片機(jī)里進(jìn)行處理。液晶顯示模塊是選用LCM1602來(lái)顯示實(shí)時(shí)溫度和所設(shè)定的溫度上下限值,其中數(shù)據(jù)命令選擇端RS接P3.7,讀寫選擇端R/W接P3.6,使能信號(hào)E接P3.5,而引腳VEE接在可變電阻器上,通過(guò)調(diào)整其電阻值來(lái)調(diào)節(jié)液晶顯示器對(duì)比度。鍵盤模塊是S0復(fù)位、按鈕S1、S2、S3和S4組成,其中S1是設(shè)定溫度上下限的確認(rèn)按鍵,而 S2、S3分別是對(duì)溫度上下限設(shè)定值進(jìn)行“加一” 、“減一”操作。報(bào)警模塊則是由三極管驅(qū)動(dòng)蜂鳴器報(bào)警。該系統(tǒng)中可以用DS18B2冰存儲(chǔ)設(shè)置溫度上下限的值。該系統(tǒng)硬件電路的主要原理圖見(jiàn)圖 1所示:W——U1-1_33P17FlFiIP15Pi4F1J3F12Fl-1P1J0EAALEIPSEMROTP3.T/R0P3F/WRP35ZT1P3-4/DP3J/WT1Pi2*TDF3.1JT7DF三P2.7W15P?.BZA1dP2.拿A13P24Al2P2.3/A11因3的P2.1陶PQ.7-PAD7PO.B'AraPO.§'AMLCD1LmoiolRP1RFSPACKB-圖3.8顯示電路圖及按鍵控制報(bào)警電路設(shè)計(jì)為了實(shí)現(xiàn)四點(diǎn)溫度檢測(cè)報(bào)警系統(tǒng),本課題采用80C5憚片機(jī)作為主控制器,采用掃描的方式對(duì)四點(diǎn)DS18B2媼度傳感器獲取對(duì)應(yīng)該位置的溫度值,經(jīng)處理后可以立即發(fā)送到單片機(jī),如只要四點(diǎn)溫度有一個(gè)不在設(shè)定的圍,給出報(bào)警信號(hào)。系統(tǒng)總體硬件電路如圖3.11所示。
圖3.9 圖3.9 溫度報(bào)警電路/□SOUNDER<TEXT>第四章 軟件設(shè)計(jì)軟件開(kāi)發(fā)工具的選擇要使單片機(jī)系統(tǒng)按照人的意圖辦事, 需設(shè)法讓人與計(jì)算機(jī)對(duì)話, 并聽(tīng)從人的指揮。程序設(shè)計(jì)語(yǔ)言是實(shí)現(xiàn)人機(jī)交換信息的最基本工具,可分為機(jī)器語(yǔ)言、 匯編語(yǔ)言和高級(jí)語(yǔ)言。機(jī)器語(yǔ)言用二進(jìn)制編碼表示每一條指令,是計(jì)算機(jī)能直接識(shí)別和執(zhí)行的語(yǔ)言。用機(jī)器語(yǔ)言編寫的程序成為機(jī)器語(yǔ)言程序或者指令程序(機(jī)器碼程序) 。因?yàn)闄C(jī)器只能識(shí)別和執(zhí)行這種機(jī)器碼程序, 所以又稱它為目標(biāo)程序。 用機(jī)器語(yǔ)言編寫程序不易記憶、不易查錯(cuò)、不易修改。為了克服機(jī)器語(yǔ)言的上述缺點(diǎn), 可采用有一定含義的符號(hào), 即指令助記符來(lái)表示,一般都采用某些有關(guān)的英文單詞的縮寫。 這樣就出現(xiàn)了另一種程序語(yǔ)言—匯編語(yǔ)言。匯編語(yǔ)言是用助記符、 符號(hào)和數(shù)字等來(lái)表示指令的程序語(yǔ)言, 容易理解和記憶,它與機(jī)器語(yǔ)言指令是一一對(duì)應(yīng)的。匯編語(yǔ)言不像高級(jí)語(yǔ)言(如 BASIC)那樣通用型強(qiáng),而是屬于某種計(jì)算機(jī)所獨(dú)有, 與計(jì)算機(jī)的部硬件結(jié)構(gòu)密切相關(guān)。 用匯編語(yǔ)言編寫的程序稱為匯編語(yǔ)言程序。以上兩種語(yǔ)言都是低級(jí)語(yǔ)言。 盡管匯編語(yǔ)言有不少優(yōu)點(diǎn), 但它仍存在著機(jī)器語(yǔ)言的某些缺陷:與CPU勺硬件結(jié)構(gòu)密切相關(guān),不同的CPE匯編語(yǔ)言是不同的。這使得匯編語(yǔ)言程序不能移植, 使用不便;其次,要使用匯編語(yǔ)言進(jìn)行程序設(shè)計(jì)必須了解所使用CP映件的結(jié)構(gòu)與性能,對(duì)程序設(shè)計(jì)人員有較高的要求。為此,又出現(xiàn)了對(duì)單片機(jī)進(jìn)行編程的高級(jí)語(yǔ)言,如PL\M,C等。KEILC51是美國(guó)KEILSoftware公司出品的51系列兼容單片機(jī)C語(yǔ)言軟件開(kāi)發(fā)系統(tǒng),與匯編相比,C語(yǔ)言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。用過(guò)匯編語(yǔ)言后再使用C來(lái)開(kāi)發(fā),體會(huì)更加深刻。KEILC51軟件提供豐富的庫(kù)函數(shù)和功能強(qiáng)大的集成開(kāi)發(fā)調(diào)試工具,全Window界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會(huì)到KEILC51生成的目標(biāo)代碼效率非常之高,多數(shù)語(yǔ)句生成的匯編代碼很緊湊,容易理解。在開(kāi)發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語(yǔ)言的優(yōu)勢(shì)。經(jīng)以上分析綜合得知,本課題采用CS言進(jìn)行編程。系統(tǒng)軟件設(shè)計(jì)的一般原則在單片機(jī)應(yīng)用開(kāi)發(fā)中代碼使用效率、 單片機(jī)的抗干擾性以及軟件可靠性是實(shí)際工程設(shè)計(jì)的重點(diǎn)。單片機(jī)應(yīng)用軟件系統(tǒng)設(shè)計(jì)包括功能模塊劃分、 程序流程確立、 模塊接口設(shè)計(jì)以及程序代碼編寫。 我們依據(jù)系統(tǒng)的功能要求, 將整體軟件系統(tǒng)分割成若干個(gè)獨(dú)立的程序模塊。 這些程序模塊可以是幾條語(yǔ)句的集合、功能函數(shù)或程序文件。隨后,根據(jù)個(gè)程序模塊的實(shí)現(xiàn)功能寫出流程,一般需要寫出具體的實(shí)現(xiàn)功能描述。程序代碼通常采用匯編語(yǔ)言或高級(jí)語(yǔ)言( C語(yǔ)言)編寫。本課題采用C語(yǔ)言編程,在此必須注意以下問(wèn)題:1)提高程序代碼效率必須熟悉當(dāng)前使用的C語(yǔ)言編譯器,試驗(yàn)每條C語(yǔ)言編譯以后對(duì)應(yīng)的匯編語(yǔ)言的語(yǔ)句行數(shù),這樣就可以很明確的知道代碼效率。2)減少程序錯(cuò)誤我們?cè)诰帉懗绦驎r(shí),要注重考慮如下方面。[1]物理參數(shù) [2]資源參數(shù) [3]應(yīng)用參數(shù) [4]過(guò)程參數(shù)(3)單片機(jī)的抗干擾性防止干擾最有效的方法是去除干擾源、 隔離干擾路徑。 單片機(jī)干擾最常見(jiàn)的現(xiàn)象就是復(fù)位,導(dǎo)致程序運(yùn)行異常。設(shè)計(jì)系統(tǒng)是一般需要添加一個(gè)“看門狗”監(jiān)控模塊,在系統(tǒng)出現(xiàn)不可逆轉(zhuǎn)的干擾時(shí), 監(jiān)控模塊將重啟系統(tǒng), 并從斷點(diǎn)處繼續(xù)執(zhí)行。(4)系統(tǒng)的可靠性要測(cè)試單片機(jī)軟件功能的完善性。上電、掉電測(cè)試。系統(tǒng)耗損測(cè)試。系統(tǒng)軟件設(shè)計(jì)的一般步驟系統(tǒng)進(jìn)行軟件設(shè)計(jì)時(shí), 先要對(duì)本課題硬件有一個(gè)熟練的掌握, 知道系統(tǒng)的組成,數(shù)據(jù)的傳輸, 信號(hào)是如何被控制的, 以及信號(hào)的顯示。 然后進(jìn)行軟件設(shè)計(jì)時(shí),先搞清楚各個(gè)部分的子程序及他們的流程圖,然后進(jìn)行C語(yǔ)言編程,最后將它們系統(tǒng)的編程軟件實(shí)現(xiàn)系統(tǒng)軟件設(shè)計(jì)主要包括系統(tǒng)程序和流程圖, 根據(jù)整個(gè)系統(tǒng)的要求, 完成溫度的測(cè)量與控制必須經(jīng)過(guò)以下幾個(gè)步驟:?jiǎn)纹瑱C(jī)接受傳感器的溫度信號(hào),并通過(guò)LCD液晶顯示器顯示出來(lái),單片機(jī)掃描按鍵,接受控制信號(hào),并將溫度上下限設(shè)定值顯示出來(lái),若溫度不在圍則發(fā)出報(bào)警。系統(tǒng)主程序流程圖首先要對(duì)系統(tǒng)的各個(gè)模塊初始化,先執(zhí)行測(cè)溫子程序,獲取外界的溫度值送單片機(jī)進(jìn)行處理,調(diào)用相應(yīng)的顯示子程序, 對(duì)獲取的溫度顯示。 然后單片機(jī)對(duì)按鍵所連接的引腳進(jìn)行巡回檢測(cè),若果為低電平,說(shuō)明有鍵被按下, 執(zhí)行相應(yīng)的按鍵功能,對(duì)溫度上下限的設(shè)定值進(jìn)行調(diào)整并顯示在 LCD夜晶顯示器。若檢測(cè)到返回鍵為低電平,則回到原來(lái)的測(cè)溫狀態(tài),此時(shí)的報(bào)警上下限的設(shè)定值已經(jīng)修改,系統(tǒng)根據(jù)此設(shè)定值和主程序,判斷是否需要調(diào)用報(bào)警子程序和蜂鳴器響起子程序。開(kāi)始測(cè)溫子程序系統(tǒng)初始化溫度顯示子程序顯示調(diào)整溫度報(bào)警子程序顯示溫度上下限蜂鳴器響起子程序圖4.1系統(tǒng)主程序流程圖傳感器程序設(shè)計(jì)DS18B20?程簡(jiǎn)介每一片單總線芯片部都有一個(gè)全球惟一的 64位編碼,在多路測(cè)溫時(shí)就是通過(guò)匹配每個(gè)芯片的ROMS碼(ID),來(lái)搜尋該路的溫度。DS18B20r9個(gè)可擦寫的部寄存器,稱為便箋式RAM所有的串行通訊,讀寫每一個(gè)bit位數(shù)據(jù)都必須嚴(yán)格遵守器件的時(shí)序邏輯來(lái)編程,同時(shí)還必須遵守總線命令序列,對(duì)單總線的 DS18B20芯片來(lái)說(shuō),訪問(wèn)每個(gè)器件都要遵守下列命令序列:首先是初始化;其次執(zhí)行ROM^T令;最后就是執(zhí)行功能命令(ROMfiT令和功能命令后面以表格形式給出 )。如果出現(xiàn)序列混亂,則單總線器件不會(huì)響應(yīng)主機(jī)。當(dāng)然,搜索ROM命令和報(bào)警搜索命令,在執(zhí)行兩者中任何一條命令之后,要返回初始化?;趩慰偩€上的所有傳輸過(guò)程都是以初始化開(kāi)始的, 初始化過(guò)程由主機(jī)發(fā)出的復(fù)位脈沖和從機(jī)響應(yīng)的應(yīng)答脈沖組成。 應(yīng)答脈沖使主機(jī)知道, 總線上有從機(jī)設(shè)備,且準(zhǔn)備就緒。每次訪問(wèn)任何單總線器件, 必須嚴(yán)格遵守這個(gè)命令序列 ;如果出現(xiàn)序列混亂,則單總線器件不會(huì)響應(yīng)主機(jī)。但是這個(gè)準(zhǔn)則對(duì)于搜索ROMT令和報(bào)警搜索命令例外,在執(zhí)行兩者中任何一條命令之后, 主機(jī)不能執(zhí)行其后的功能命令, 必須返回至第一步。在主機(jī)發(fā)出ROMT令,以訪問(wèn)某個(gè)指定的DS18B20接著就可以發(fā)出DS18B20£持的某個(gè)功能命令。這些命令允許主機(jī)寫人或讀出DS18B20W存器,啟動(dòng)溫度轉(zhuǎn)換以及判斷從機(jī)的供電方式。(2)軟件實(shí)現(xiàn)前面提及單總線器件的ROMT令,在主機(jī)檢測(cè)到應(yīng)答脈沖后,就可以發(fā)出ROM命令。這些命令與各個(gè)從機(jī)設(shè)備的唯一64位ROMfc碼相關(guān)。允許主機(jī)在單總線上連接多個(gè)從機(jī)設(shè)備時(shí), 指定操作某個(gè)從機(jī)設(shè)備。 這些命令還允許主機(jī)能夠檢測(cè)到總線上有多少個(gè)從機(jī)設(shè)備, 以及其設(shè)備類型或者有沒(méi)有設(shè)備處于報(bào)警狀態(tài)。 從機(jī)設(shè)備可能支持5種ROMT令(實(shí)際情況與具體型號(hào)有關(guān)),每種命令長(zhǎng)度為8位。主機(jī)在發(fā)出功能命令之前,必須發(fā)送合適的ROMr令。①搜索ROM[F0h]當(dāng)系統(tǒng)初始上電時(shí),主機(jī)必須找出總線上所有從機(jī)設(shè)備的RO膿碼,這樣主機(jī)就能夠判斷出從機(jī)的數(shù)目和類型。主機(jī)通過(guò)重復(fù)執(zhí)行搜索ROMf環(huán)(搜索ROMr令跟隨著位數(shù)據(jù)交換 )以找出總線上所有的從機(jī)設(shè)備。如果總線只有一個(gè)從機(jī)設(shè)備,則可以采用讀ROMr令來(lái)替代搜索ROMr令。在每次執(zhí)行完搜索ROMf環(huán)后,主機(jī)必須返回至命令序列的第一步 (初始化 )。②讀ROM[33h](僅適合于單節(jié)點(diǎn))該命令僅適用于總線上只有一個(gè)從機(jī)設(shè)備。它允許主機(jī)直接讀出從機(jī)的 64位RO優(yōu)碼,而無(wú)須執(zhí)行搜索ROMt程。如果該命令用于多節(jié)點(diǎn),系統(tǒng)則必然發(fā)生數(shù)據(jù)沖突,因?yàn)槊總€(gè)從機(jī)設(shè)備都會(huì)響應(yīng)該命令。③匹配ROM[55h]匹配ROMr令跟隨64位ROM;碼,從而允許主機(jī)訪問(wèn)多節(jié)點(diǎn)系統(tǒng)中某個(gè)指定的從機(jī)設(shè)備。僅當(dāng)從機(jī)完全匹配64位ROM;碼時(shí),才會(huì)響應(yīng)主機(jī)隨后發(fā)出的功能命令。其它設(shè)備將處于等待復(fù)位脈沖狀態(tài)。④跳越ROM[CCh]僅適合于單節(jié)點(diǎn))主機(jī)能夠采用該命令同時(shí)訪問(wèn)總線上的所有從機(jī)設(shè)備,而無(wú)須發(fā)出任何 ROM代碼信息。例如,主機(jī)通過(guò)在發(fā)出跳越ROMT令后跟隨轉(zhuǎn)換溫度命令[44h],就可以同時(shí)命令總線上所有的DS18B2肝始轉(zhuǎn)換溫度,這樣大大節(jié)省了主機(jī)的時(shí)間。值得注意的是,如果跳越ROMT令跟隨的是讀暫存器[BEh]的命令(包括其它讀操作命令),則該命令只能應(yīng)用于單節(jié)點(diǎn)系統(tǒng),否則將由于多個(gè)節(jié)點(diǎn)都響應(yīng)該命令而引起數(shù)據(jù)沖突。⑤報(bào)警搜索「ECh](僅少數(shù)1一Wire器件支持)除那些設(shè)置了報(bào)警標(biāo)志的從機(jī)響應(yīng)外,該命令的工作方式完全等同于搜索ROMT令。該命令允許主機(jī)設(shè)備判斷那些從機(jī)設(shè)備發(fā)生了報(bào)警(如最近的測(cè)量溫度過(guò)高或過(guò)低等)。同搜索ROMr令一樣,在完成報(bào)警搜索循環(huán)后,主機(jī)必須返回至命令序列的第一步。DS18B2施一根I/O線上讀寫數(shù)據(jù),因此,對(duì)讀寫的數(shù)據(jù)位有著嚴(yán)格的時(shí)序要求,只有嚴(yán)格遵守通訊協(xié)議才能保證數(shù)據(jù)傳輸?shù)恼_性和完整性。 所有時(shí)序均以主機(jī)為Master,單總線器件為Slave,每次數(shù)據(jù)的傳輸均從主機(jī)啟動(dòng)寫時(shí)序開(kāi)始,如果要求單總線器件回送數(shù)據(jù),則在寫命令后,主機(jī)需啟動(dòng)讀時(shí)序完成數(shù)據(jù)接收。數(shù)據(jù)和命令的傳輸都是低位在先。①DS18B20勺復(fù)位時(shí)序VDD主機(jī)接收所需肚短時(shí)間七機(jī)發(fā)出整位脈沖序?發(fā)出應(yīng)答肽中SO叫VDD主機(jī)接收所需肚短時(shí)間七機(jī)發(fā)出整位脈沖序?發(fā)出應(yīng)答肽中SO叫他貓3最大值;颯四圖4.2DS18B20復(fù)位時(shí)序〃該函數(shù)返回為0,表示有DS1820否則沒(méi)有bitreset(void){biterr;DQ=0; //在數(shù)據(jù)線上產(chǎn)生600us的低電平delay15(40);DQ=1; 〃數(shù)據(jù)線拉高delay15(4); // 延時(shí)60userr=DQ; //讀取數(shù)據(jù)線狀態(tài),err=0:復(fù)位成功delay15(18); // err=1: 復(fù)位失敗return(err);}②DS18B20勺讀時(shí)序圖4.3DS18B20讀時(shí)序DS18B2的讀時(shí)序分讀0時(shí)序和讀1時(shí)序兩個(gè)過(guò)程。讀時(shí)序是主機(jī)先把單總線拉低,在之后的15s必須釋放單總線,以便將數(shù)據(jù)傳輸?shù)絾慰偩€上。 DS18B20完成一個(gè)讀時(shí)序至少需要60sounsignedcharread_bit(void){unsignedchari;DQ=0; // 將DQ拉低開(kāi)始讀時(shí)間隙_nop_();_nop_();DQ=1; 〃thenreturnhighfor(i=0;i<3;i++); //延時(shí)15仙s
return(DQ);//返回DQ線上的電平值}ucharrdbyte(void)//{uchari;return(DQ);//返回DQ線上的電平值}ucharrdbyte(void)//{uchari;dat=0;for(i=8;i>0;i--){dat=dat>>1;DQ=0; //_nop_();DQ=1;delay15(1); //dat7=DQ;delay15(4); //}
return(dat);}③DS18B20的寫時(shí)序。從總線上讀取一個(gè)字節(jié)//讀出數(shù)據(jù)初值為0//循環(huán)讀8位(先低位,后高位)//讀出數(shù)據(jù)先右移一位產(chǎn)生1us的負(fù)脈沖//數(shù)據(jù)總線拉高//讀取數(shù)據(jù)延時(shí),為讀下一位做準(zhǔn)備圖4.4DS18B20寫0時(shí)序與寫1時(shí)序DS18B2的寫時(shí)序也分為寫0時(shí)序和寫1時(shí)序兩個(gè)過(guò)程。寫0時(shí)序和寫1時(shí)序的要求不同,寫0時(shí),單總線要被拉低至少60s,保證DS18B2能夠在15-45s之間正確采樣I/O總線上的“0”電平。寫1時(shí),單總線被拉低,在之后的15s必須釋放單總線
voidwrite_bit(charbitval){DQ=0; //將DQ拉低開(kāi)始寫時(shí)間隙_nop_();_nop_();if(bitval==1)DQ=1; //如果寫1,DQ返回高電平delay(8); //在時(shí)間隙保持電平值,DQ=1; //Delay 函數(shù)每次循環(huán)延時(shí)13仙s,因止匕delay(8)=105(is}voidwrbyte(uchard)//{uchari;}voidwrbyte(uchard)//{uchari;dat=d;for(i=8;i>0;i--){DQ=0;
delay15(1);DQ=dat0;dat=dat>>1;delay15(1);DQ=1;向總線寫入一個(gè)字節(jié)//循環(huán)寫 8位(先低位,后高位)//產(chǎn)生15us的負(fù)脈沖//將當(dāng)前數(shù)據(jù)位送數(shù)據(jù)線//將下一位要寫入的數(shù)據(jù)移到最低位//延時(shí)15us//數(shù)據(jù)線拉高,為寫入下一位做準(zhǔn)備}DS18B2艇位后,就可以編程控制讀到其部RA蜥采集到白溫度值(通過(guò)P0.7),并且讀取數(shù)據(jù)時(shí)低位在前,高位在后。 讀出數(shù)據(jù)后, 需判斷對(duì)應(yīng)的溫度是正值還是負(fù)值,當(dāng)溫度值為正值時(shí),直接將二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制溫度值 ;當(dāng)溫度值為負(fù)值時(shí)先將二進(jìn)制補(bǔ)碼變?yōu)樵a,再轉(zhuǎn)換為十進(jìn)制溫度值。本課題的溫度測(cè)量與讀取軟件流程:開(kāi)始延時(shí)圖4.5溫度測(cè)量程序流圖DS18B20U程注意事項(xiàng)(1)溫度換時(shí)間設(shè)置為750ms寸,靈敏度會(huì)大大提高,在需要較高精度要求下建議使用,而且回復(fù)性很好 ;Dsl8B20的讀寫時(shí)序須經(jīng)仔細(xì)調(diào)整,在反復(fù)的調(diào)試中找出合適的延時(shí)時(shí)間 ;(3)在程序等待DS18B20:出的存在信號(hào)時(shí),最好設(shè)置一個(gè)有限的等待時(shí)間,否則一旦有溫度傳感器損壞時(shí),程序?qū)⑦M(jìn)人無(wú)限等待的死循環(huán)中顯示程序設(shè)計(jì)根據(jù)系統(tǒng)的要求, 單片機(jī)不僅要能接收到溫度信號(hào), 還要將溫度信號(hào)顯示出來(lái),使系統(tǒng)一目了然。液晶顯示模塊與數(shù)碼管相比,顯得更為專業(yè)、漂亮。液晶顯示屏以其功耗低、體積小、顯示容豐富、超薄輕巧、使用方便等諸多優(yōu)點(diǎn),在儀器儀表、電子設(shè)備、 家用電器等低功耗應(yīng)用系統(tǒng)中得到越來(lái)越廣泛的應(yīng)用。 液品模塊分為字符型和點(diǎn)陣型兩類:字符型顯示模塊通常只能顯示ASCII碼表中的數(shù)字、字母等符號(hào);點(diǎn)陣型顯示模塊除了可以顯示ASCII字符,還能顯示漢字、繪制圖形。(一)引腳功能RT1602液晶模塊帶標(biāo)準(zhǔn)字庫(kù),部的字符發(fā)生存儲(chǔ)器(CGRQME經(jīng)存儲(chǔ)了192個(gè)5X7點(diǎn)陣字符,可顯示2行X16列共32個(gè)點(diǎn)陣字符,其外觀及引腳排列如圖6-8所示,其引腳功能說(shuō)明如下:VSS電源地VDD5V正電源V0:為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高,對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生陰影,使用時(shí)可以通過(guò)一個(gè)10K的電位器調(diào)整對(duì)比度。RS寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。R/W讀寫信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。E:使能控制信號(hào),當(dāng)該引腳由高電平跳變成低電平時(shí), 液晶模塊執(zhí)行命令。RS=0R/W=1E=1時(shí),讀取液晶模塊的狀態(tài)字。RS=0R/W=0E=1,向液晶模塊寫入命令字。RS=1R/W=1E=1時(shí),從液晶模塊讀取數(shù)據(jù)。RS=1R/W=0E=1時(shí),向液晶模塊寫入數(shù)據(jù)。DB3DB78位雙向數(shù)據(jù)線。BLA背光源正極。BLK背光源負(fù)極。讀時(shí)序?qū)憰r(shí)序
讀時(shí)序?qū)憰r(shí)序(二)顯示模塊的指令功能RT1602夜晶模塊部的控制器共有11條控制指令,單片機(jī)對(duì)液晶模塊的控制都是通過(guò)指令編程來(lái)實(shí)現(xiàn)的,指令的格式如表 6-3所示,現(xiàn)分別說(shuō)明如下1、清屏:指令碼01H,清屏后,光標(biāo)返回到地址00Ho2、光標(biāo)返回光標(biāo)返回到地址 00H。3、光標(biāo)和顯示模式設(shè)置I/D光標(biāo)移動(dòng)方向,高電平右移,低電平左移。S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無(wú)效4、顯示開(kāi) /關(guān)控制D:控制整體顯示的開(kāi)與關(guān),高電平表示開(kāi)顯示,低電平表示關(guān)顯示C:控制光標(biāo)的開(kāi)與關(guān),高電平表示有光標(biāo),低電平表示無(wú)光標(biāo)低電平不閃爍。顯示模塊的指令集B:低電平不閃爍。顯示模塊的指令集表4.8RT1602指令RSR/WD7D6D5D4D3D2D1D0清屏光標(biāo)返回置輸入模式I/D顯示開(kāi)/關(guān)控制光標(biāo)或字符移位S/CR/L置功能DL置數(shù)據(jù)存儲(chǔ)器地顯示數(shù)據(jù)存儲(chǔ)器地址(ADD)指令RSR/WD7D6D5D4D3D2D1D0清屏光標(biāo)返回置輸入模式I/D顯示開(kāi)/關(guān)控制光標(biāo)或字符移位S/CR/L置功能DL置數(shù)據(jù)存儲(chǔ)器地顯示數(shù)據(jù)存儲(chǔ)器地址(ADD)讀忙標(biāo)志或地址BF計(jì)數(shù)器地址( AC)寫數(shù)據(jù)要寫的數(shù)據(jù)寫數(shù)據(jù)讀出的數(shù)據(jù)讀數(shù)據(jù)讀出的數(shù)據(jù)5、光標(biāo)或顯示移位S/C:高電平時(shí)移動(dòng)顯示的文字,低電平時(shí)移動(dòng)光標(biāo)。R/L:移動(dòng)方向,高電平右移,低電平左移。6、置功能
DL高電平時(shí)為4位總線,低電平時(shí)為8位總線。N:低電平時(shí)為單行顯示,高電平時(shí)雙行顯示。F:低電平時(shí)顯示5X7的點(diǎn)陣字符,高電平時(shí)顯示5X10的點(diǎn)陣字符7、置數(shù)據(jù)存儲(chǔ)器地址:如圖4.9所示,液晶屏幕上的每個(gè)字符位置與部數(shù)據(jù)存儲(chǔ)器( DDRAM之間為了將字符顯示到屏幕指定位置,必須用該命令設(shè)置液晶模塊的數(shù)據(jù)存儲(chǔ)器地址。例如:為了能在第二行第二列(數(shù)據(jù)存儲(chǔ)器地址為 41H)顯示字符,必須首先置數(shù)據(jù)存儲(chǔ)器地址為41H,相應(yīng)的命令字為10000000B+01000001B=11000001B(C1H。8、讀忙標(biāo)志和光標(biāo)地址:BF為BF:BF為低電平表示不忙。AC為當(dāng)前計(jì)數(shù)器地址9、寫數(shù)據(jù):RT1602液晶模塊部的字符發(fā)生存儲(chǔ)器(CGROM)經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符圖形, 包括阿拉伯?dāng)?shù)字、 英文字母的大小寫、 常用的符號(hào)、 和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼, 一般為該字符的 ASCII碼,只要執(zhí)行寫數(shù)據(jù)指令,寫入該字符的代碼,就可在屏屏幕上顯示該字符。為了使程序清晰易讀, 將對(duì)命令口、 數(shù)據(jù)口的寫操作及等待操作完成設(shè)計(jì)成函數(shù),每次寫入指令碼或數(shù)據(jù)后必須等待忙標(biāo)志 BF為0后才返回;由于每次寫入數(shù)據(jù)后, 模塊的地址寄存器會(huì)自動(dòng)指向下個(gè)單元, 因此無(wú)需在每個(gè)字符輸出前都設(shè)置數(shù)據(jù)存儲(chǔ)器地址, 比如在顯示字符串 str1前,只要用“l(fā)cd_cmd(0x80);”語(yǔ)句設(shè)置一次即可,將strl的第一個(gè)字符'W寫入模塊地址為00H的單元,即顯示在第一行的第一個(gè)字符位置, 后續(xù)的其它字符就無(wú)需再設(shè)置地址了, 程序清單如下:#include<reg52.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedint#defineLCDP0//P0口作為總線端口sbitRS=P3A7;// 數(shù)據(jù)/命令寄存器選擇控制端sbitRW=P3A6;// 讀寫控制端sbitE=P3A5;//使能控制端sbitRDY=LCDA7;//就緒線BF,低電平有效voidlcd_cmd(ucharcmd)//向液晶屏發(fā)送指令{LCD=cmd;RS=0; //選擇命令寄存器RW=0; //執(zhí)行寫數(shù)據(jù)操作E=1;_nop_(); //延時(shí)}}}}E=0; //使能信號(hào)有效while(1){LCD=0xff;//總線變高RS=0; // 選擇命令寄存器RW=1; // 讀操作E=0; // 使能信號(hào)有效_nop_();//延時(shí)E=1; // 撤消使能信號(hào)if(RDY==0)break;//如果就緒,返回}}voidlcd_dat(uchardat)//向液晶屏寫入數(shù)據(jù){LCD=dat;// 顯示數(shù)據(jù)送總線RS=1; // 選擇數(shù)據(jù)寄存器RW=0; // 執(zhí)行寫數(shù)據(jù)操作E=1;_nop_();E=0; //使能信號(hào)有效while(1){LCD=0xff;// 總線變高RS=0;// 選擇命令寄存器RW=1;// 讀操作E=0; // 使能信號(hào)有效_nop_();// 延時(shí)E=1; // 撤消使能信號(hào)if(RDY==0)break;//如果就緒,返回dat=LCD;}}voidinit_lcd(void)//初始化液晶屏lcd_cmd(0x01);//清屏幕lcd_cmd(0x3c);//設(shè)置雙行顯示 ,5X10點(diǎn)陣lcd_cmd(0x0C);//開(kāi)顯示,關(guān)閉光標(biāo)voiddisp_str(ucharx,uchary,uchar*p)//在x行、y列顯示字符串 pif(x==0)//voidinit_lcd(void)//初始化液晶屏lcd_cmd(0x01);//清屏幕lcd_cmd(0x3c);//設(shè)置雙行顯示 ,5X10點(diǎn)陣lcd_cmd(0x0C);//開(kāi)顯示,關(guān)閉光標(biāo)voiddisp_str(ucharx,uchary,uchar*p)//在x行、y列顯示字符串 pif(x==0)//如果在第一行顯示lcd_cmd(0x80+y);//設(shè)置寫入地址else//如果在第二行顯示lcd_cmd(0xc0+y);//設(shè)置寫入地址while(*p)//將字符依次發(fā)送到液晶屏lcd_dat(*p++);鍵盤程序設(shè)計(jì)單片機(jī)將傳感器的溫度信號(hào)顯示以后, 要開(kāi)始按鍵處理, 單片機(jī)根據(jù)按鍵將溫度上下限設(shè)定值信號(hào)顯示出來(lái)或者是執(zhí)行其他相應(yīng)的功能。鍵盤電路雖然簡(jiǎn)單,但鍵盤的穩(wěn)定性、可靠性,應(yīng)引起足夠的重視。所以,當(dāng)檢測(cè)到有鍵按下或釋放時(shí),應(yīng)通過(guò)軟件延時(shí) 20-30ms左右,避開(kāi)觸點(diǎn)抖動(dòng)的影響。去抖時(shí)間既不能太短也不能太長(zhǎng):如果時(shí)間太短,無(wú)法起到去抖作用;如果時(shí)間太長(zhǎng),超過(guò)了鍵按下的持續(xù)時(shí)間,則會(huì)判不到按鍵。 軟件去抖時(shí)間不宜太短也不宜太長(zhǎng), 定為20ms。為確定是否有鍵按下,CPUfe通過(guò)并行輸出口使所有的行線為低電平, 然后通過(guò)并行輸入口讀入列信號(hào),若為全“ 1”,則沒(méi)有鍵按下,若有一個(gè)為“ 0”,則表示有一個(gè)鍵已按下。若有一個(gè)為“ 0”,則表示有一個(gè)鍵已按下。為消去按下時(shí)的抖動(dòng)現(xiàn)象,程序延遲20mSt再判斷具體是哪一個(gè)鍵按下先將第一行置為低電平,然后讀入列信號(hào),若有一個(gè)為“ 0”,則按下的鍵在此行;若為全“ 1”,則按下的鍵不在此行,再將下一行置為低電平,并測(cè)試列信號(hào)。根據(jù)本課題的系統(tǒng)要求,鍵盤主要是用來(lái)設(shè)置溫度的上下限, 因此采用獨(dú)立式鍵盤來(lái)完成這一功能。通過(guò)設(shè)置四個(gè)按鍵來(lái)控制溫度上下限的顯示和調(diào)整,程序清單如下所示:while(1){ inti,t;if(S2==0){debouncer();term_H=(0<term_H&&term_H<100)?++term_H:50;while(S2==0);debouncer();}if(S3==0){debouncer();term_L=(0<term_L&&term_L<100)?--term_L:50;debouncer();}debouncer();}for(i=0;i<1;i++)//{bitzf;zf=0;if(term_H<0)依次顯示報(bào)警溫度值TOC\o"1-5"\h\z//正負(fù)標(biāo)記 溫度在0度以下為 1,否則為 0//如果溫度小于 0{zf=1; //正負(fù)標(biāo)志置 1term_H=-term_H;//求出溫度的絕對(duì)值term_H=-term_H;//求出溫度的絕對(duì)值str[0]=term_H/100+0x30;term_H=term_H%100;str[1]=term_H/10+0x30;str[2]=term_H%10+0x30;if(zf==1){str[0]=term_H/100+0x30;term_H=term_H%100;str[1]=term_H/10+0x30;str[2]=term_H%10+0x30;if(zf==1){if(str[1]=='0'){str[0]='';str[1]='-';}elsestr[0]='-';}else{if(str[0]=='0'){if(str[1]=='0') //str[1]='';str[0]=''; ////求出百位的 ASCII碼//求出十位的 ASCII碼//求出個(gè)位的 ASCII碼//如果是負(fù)數(shù)//如果十位為 0//顯示格式為 '-x.x'//如果十位不為 0//顯示格式為 '-xx.x'//如果是正數(shù)//如果百位、十位都是 0顯示格式為 'x.x'//如果只有百位為 0顯示格式為 'xx.x'}}disp_str(i/2,(i%0x02)*9+2,str);// 將字符串在指定位置顯示出來(lái)for(t=1;t<2;t++)//依次顯示報(bào)警溫度值{TOC\o"1-5"\h\zbitzf; //正負(fù)標(biāo)記 溫度在0度以下為 1,否則為 0zf=0;if(term_L<0) //如果溫度小于 0{zf=1; //正負(fù)標(biāo)志置 1term_L=-term_L;//term_L=-term_L;//求出溫度的絕對(duì)值//求出百位的 ASCII //求出百位的 ASCII 碼//求出十位的 ASCII 碼//求出個(gè)位的 ASCII 碼//如果是負(fù)數(shù)//如果十位為 0//顯示格式為 '-x.x'//如果十位不為 0//顯示格式為 '-xx.x'如果是正數(shù)//如果百位、十位都是 0顯示格式為 'x.x'//如果只有百位為 0顯示格式為 'xx.x'將字符串在指定位置顯示出在屏幕指定位置顯示//A:}str[0]=term_L/100+0x30;term_L=term_L%100;str[1]=term_L/10+0x30;str[2]=term_L%10+0x30;if(zf==1){if(str[1]=='0'){str[0]='';str[1]='-';}elsestr[0]='-';}TOC\o"1-5"\h\zelse //{if(str[0]=='0'){if(str[1]=='0') //str[1]='';str[0]=''; //}}disp_str(t/2,(t%0x02)*9+2,str);//}if(S4==0){debouncer();str[1]=':';//for(i=0;i<4;i++)
//C://C:disp_str(i/2,(i%0x02)*9,str);}break;while(S4==0);debouncer();}}報(bào)警程序設(shè)計(jì)當(dāng)溫度大小或小于所設(shè)定的溫度是,蜂鳴器開(kāi)始響起,一直到溫度在設(shè)定溫度。聲音是由蜂鳴器的振動(dòng)產(chǎn)生,而蜂鳴器就像是一個(gè)電磁鐵,電流流過(guò)即可激磁,則蜂鳴器里發(fā)聲的簧片將被吸??;電流消失時(shí),簧片將被放開(kāi)。若要產(chǎn)生 f的頻率,則需于T時(shí)間(其中T=1/f),進(jìn)行吸、收各一次,換言之,激磁、斷磁的時(shí)間各為T/2,成為半周期。例如,要產(chǎn)生1khz的頻率,則半周期為0.5ms,P3.7所發(fā)送的彳S號(hào)中,0.5ms為高電平,0.5ms為低電平。若0.5ms為高電平與0.5ms為低電平為一組信號(hào),連續(xù)送出100組,即可得到1khz的聲音約為0.1s;停止輸出0.1s后,在連續(xù)送出10則可聽(tīng)到“嘩、嘩”兩聲。)0停止輸出0.1s后,在連續(xù)送出10則可聽(tīng)到“嘩、嘩”兩聲。)0組0.5ms為高電平與0.5ms為低電平的信號(hào),p 1讀入溫 gj—大于或小于設(shè)皆也報(bào)警器響起}}}}圖4.10報(bào)警流程圖程序清單:voidpulse(intcount,intTH,intTL){inti;for(i=0;i<count;i++){LS1=1;delay10ms(TH);LS1=0;delay10ms(TL);}}voidalarm(){if(((term_H<temp[0])||(temp[0]<term_L))||((term_H<temp[1])||(temp[1]<term_L))||((term_H<temp[2])||(temp[2]<term_L))||((term_H<temp[3])||(temp[3]<term_L )))//只要四點(diǎn)有一個(gè)大魚(yú)或低于溫度上下限,就報(bào)警{ pulse(5,1,1);delay10ms(50);第五章仿真調(diào)試及小節(jié)仿真結(jié)果在KEIL下編譯項(xiàng)目,進(jìn)入調(diào)試方式后全速運(yùn)行,然后切換到Proteus環(huán)境,此時(shí)在屏幕上將會(huì)顯示出各測(cè)溫點(diǎn)的溫度值,如圖 6-12所示。用鼠標(biāo)指向某傳感器的或點(diǎn)擊左鍵, 屏幕上對(duì)應(yīng)位置的溫度值將隨之增減, 如果某個(gè)傳感器的溫度值總是為 0,應(yīng)檢查它的序列號(hào)是否與數(shù)組二維數(shù)組 id中所定義的值一致。多路采樣周期的估算: 采樣周期由兩部分組成: (1)啟動(dòng)總線上所有的DS18B20W]時(shí)開(kāi)始轉(zhuǎn)換到轉(zhuǎn)換2束,最長(zhǎng)不超過(guò) 750ms(2)逐一選定總線上的DS18B20并讀取其溫度。根據(jù)讀寫時(shí)序,分析rdbyte()及wrbyte(),讀寫一字5.5.(3)圖5.3是按下按鍵S1后,LCD顯示的是溫度上下限初始值,H-代表溫度的上限值50,L-代表溫度的下限值10。5.3(4)如圖 5.4所示:此圖為調(diào)整溫度上下限之后的顯示數(shù)值,如果四點(diǎn)溫度在60和5之間單片機(jī)急不發(fā)出報(bào)警命令,只要有任意一點(diǎn)或多點(diǎn)溫度大于上限或低于下限,單片機(jī)就會(huì)發(fā)出報(bào)警命令,蜂鳴器響起,然后做出相關(guān)的操作。調(diào)試及小節(jié)本文利用Proteus與KEILC51對(duì)單片機(jī)多點(diǎn)溫度測(cè)量系統(tǒng)進(jìn)行了仿真設(shè)計(jì).從本文結(jié)果可以看出,利用 Proteus進(jìn)行單片機(jī)系統(tǒng)的仿真設(shè)計(jì)可以極簡(jiǎn)化單片機(jī)程序在目標(biāo)硬件上的調(diào)試工作, 大幅度節(jié)省制作電路板的時(shí)間, 對(duì)于提高產(chǎn)品的開(kāi)發(fā)效率、降低開(kāi)發(fā)成本等有重要作用.硬件電路的簡(jiǎn)單是以軟件的復(fù)雜為代價(jià)的, 所以在程序編寫和調(diào)試的過(guò)程中稍一粗心就會(huì)出現(xiàn)錯(cuò)誤,包括時(shí)間延時(shí)不夠, 設(shè)置參數(shù)的類型有誤, 按鍵子程序放置位置不妥等錯(cuò)誤。 本程序經(jīng)過(guò)反復(fù)的調(diào)試修改, 雖然能達(dá)到預(yù)期的基本目標(biāo),但是還有很多地方需要完善,如開(kāi)始仿真時(shí)機(jī)器會(huì)掃描錯(cuò)誤代碼而使電路報(bào)警,報(bào)警的同時(shí)可以使數(shù)碼管閃爍,還可以利用剩余的 I/O口掛接更多的DS18B2等。本課題通過(guò)分析對(duì)比各種不同的溫度傳感器,選定 DS18B20這種單總線數(shù)字溫度傳感器的通信方式比較獨(dú)特,軟件編寫要求的比較新穎,特點(diǎn)突出。 用其構(gòu)建的系統(tǒng)有很多優(yōu)點(diǎn): 硬件連線簡(jiǎn)單, 省去了使用模擬傳感器要進(jìn)行放大、 A/D轉(zhuǎn)換等工作, 由于它的級(jí)聯(lián)功能, 一條總線可掛接多個(gè)傳感器測(cè)量不同位置的溫度,根據(jù)DS18B2睢一的序號(hào)識(shí)別不同傳感器在各自位置的溫度。需要注意的是 ,在系統(tǒng)安裝及工作之前應(yīng)將主機(jī)逐個(gè)與 DS1820掛接,以讀出其序列號(hào)。另外,由于DS1820單線通信功能是分時(shí)完成的,遵循嚴(yán)格的時(shí)隙概念,因此,系統(tǒng)對(duì)DS1820和各種操作必須按協(xié)議進(jìn)行,即:初始化DS18B20(發(fā)復(fù)位脈沖)一發(fā)RO—能命令一發(fā)存儲(chǔ)器操作命令一處理數(shù)據(jù)?,F(xiàn)場(chǎng)溫度直接以“一線總線”的數(shù)字方式傳輸,每一個(gè)自帶地址,大大減少了系統(tǒng)的電纜數(shù),提高了系統(tǒng)的穩(wěn)定性和抗干擾性。通過(guò)調(diào)試成型系統(tǒng)發(fā)現(xiàn)了DS18B2除了上述優(yōu)點(diǎn)外,還有一些缺點(diǎn),如:簡(jiǎn)單的硬件連接的代價(jià)是復(fù)雜的軟件時(shí)序, DS18B2施測(cè)量溫度的時(shí)候,靈敏度不夠高,溫度快速變化時(shí)無(wú)法迅速顯示出其變化。通過(guò)一系列的實(shí)驗(yàn)發(fā)現(xiàn):由DS18B2峋建的測(cè)溫小系統(tǒng)適用于環(huán)境溫度監(jiān)控,對(duì)溫度小變化較敏感;不適合應(yīng)用于要時(shí)性強(qiáng)、溫度跨度大的測(cè)溫方本次畢業(yè)設(shè)計(jì)是在為相老師的細(xì)心認(rèn)真的指導(dǎo)下完成的,不論在選題、資料搜集還是在論文寫作方面,老師都給予了我很大的幫助。老師治學(xué)嚴(yán)謹(jǐn)、一絲不茍,對(duì)學(xué)生既嚴(yán)格要求,又可耐心指導(dǎo)、循循善誘,在繁忙的工作之余還經(jīng)常關(guān)心我的論文進(jìn)行情況,并且對(duì)我在設(shè)計(jì)中遇到的問(wèn)題耐心指導(dǎo),巧妙地激發(fā)我的求知欲來(lái)促使我對(duì)問(wèn)題進(jìn)行更深入的研究,使我的獨(dú)立探索解決問(wèn)題的能力有了很大的提高,老師用心良苦,讓我深深體會(huì)到為人師表的偉大與無(wú)私。在本次畢業(yè)設(shè)計(jì)中,我還得到了多位同學(xué)和老師的幫助,對(duì)我成功完成本次設(shè)計(jì)帶來(lái)了很大的幫助。在次論文完成之即,請(qǐng)接受我真誠(chéng)的感!衷心的感在百忙之中評(píng)閱論文和參加答辯的各位專家、教授!參考文獻(xiàn)新榮.基于單片機(jī)的多路溫度監(jiān)測(cè)系統(tǒng)設(shè)計(jì) [J].工業(yè)控制計(jì)算機(jī) ,2010年,23(7):95-98.周梅,廖承虎,愛(ài)祥.基于AT89C51的多路溫度檢測(cè)報(bào)警系統(tǒng)設(shè)計(jì) [J].電子測(cè)量技術(shù) ,2008,31(9):140-142.基于單片機(jī)的多點(diǎn)溫度檢測(cè)系統(tǒng) ..xuehi./docs/38504.html.包敬海.基于DS18B20的多點(diǎn)體溫檢測(cè)系統(tǒng)的研究 [J].自動(dòng)化與儀表 ,2010年.2,20-22.[5]周秀明,雋,春龍.基于DS18B20的單片機(jī)溫度檢測(cè)與調(diào)節(jié)系統(tǒng)設(shè)計(jì)實(shí)驗(yàn)室科學(xué),現(xiàn)代電子技術(shù) ,第14卷,第1期,2011年2月,第34卷,第9期.奚建榮.基于51單片機(jī)的多點(diǎn)溫度控制系統(tǒng)設(shè)計(jì) .現(xiàn)代電子技術(shù) ,2009年第2期,第289期程真.理工大學(xué)機(jī)控學(xué)院 .商場(chǎng)現(xiàn)代化 ,2007年4月(下旬刊)總第 501期.[8]黃小波.基于AT89S52^片機(jī)與DB18B20勺溫度監(jiān)控系統(tǒng)[J].單片機(jī)開(kāi)發(fā)與應(yīng)用,2008年,24(10):119-120.晁陽(yáng),爭(zhēng)剛,熊剛.基于單片機(jī)的溫度控制系統(tǒng)的設(shè)計(jì) ,凌職業(yè)技術(shù)學(xué)院學(xué)報(bào),第10卷,第1期,2011年3月.[10]海平.基于單片機(jī)和DS18B20的分布式多點(diǎn)溫度檢測(cè)系統(tǒng)的設(shè)計(jì)[J].自動(dòng)化技術(shù)與應(yīng)用 ,2008年,11:90-93.[11]杜珺.基于單片機(jī)控制的溫度監(jiān)測(cè)系統(tǒng) ,機(jī)械管理開(kāi)發(fā) ,第2期(總第120期),2011年4月.[12]冶,袁永超,羅平.基于DB18B20的單片機(jī)溫度測(cè)量系統(tǒng) [J].農(nóng)機(jī)化研究,2007年(10):160-164.董慧敏,朱智民.多點(diǎn)溫度檢測(cè)系統(tǒng)電路設(shè)計(jì) .職業(yè)技術(shù)學(xué)院學(xué)報(bào) ,第6卷,第3期,2007年7月.[14]玉潔.DS18B20溫度測(cè)量電路的設(shè)計(jì)與仿真[J].數(shù)字技術(shù)及應(yīng)用,2011年(04):156-157.[15]紅剛,方佳,王強(qiáng),錢雙艷.基于80C51的八路溫度巡回檢測(cè)系統(tǒng)設(shè)計(jì).熱帶農(nóng)業(yè)工程,2010年2月.第34卷,第1期.開(kāi)生,郭國(guó)法.MS-C51單片機(jī)溫度控制系統(tǒng)的設(shè)計(jì) [J].微計(jì)算機(jī)信息 ,2005年21(7):68-70.奚建榮.基于51單片機(jī)的多點(diǎn)溫度控制系統(tǒng)設(shè)計(jì) [J].現(xiàn)代電子技術(shù) ,2009年2月(289):186-1881原理圖2源代碼(一)主程序代碼#include<reg51.h>#defineucharunsignedchar#defineuintunsignedint#defineLCDP0voiddeouncer(void);voiddelay10ms(int);voidpulse(int,int,int);voidalarm(void);externvoidinit_lcd(void);〃 初始化液晶屏,在文件 1602DRV.C中externvoiddisp_str(ucharx,uchary,uchar*p);// 在x行、y列顯示字符串 pexternvoidgettemp(inttemp[]);// 巡回檢測(cè) 4個(gè)傳感器的溫度值送數(shù)組 tempexternvoidreadid(uchar*id); //讀取傳感器的序列號(hào)charterm_H=50,term_L=10;//報(bào)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 個(gè)體草莓經(jīng)銷商合作合同書(shū)版B版
- 智慧教育與學(xué)生自主學(xué)習(xí)能力的提升探索
- 2025年度高空作業(yè)安全責(zé)任免除協(xié)議范本兩份4篇
- 教育變革背景下學(xué)生自主學(xué)習(xí)的挑戰(zhàn)與機(jī)遇
- 2025年度裝配式建筑混凝土構(gòu)件生產(chǎn)與承包合同范本4篇
- 校園心理健康課程的學(xué)生反饋分析
- 推動(dòng)校園文化建設(shè)學(xué)校藝術(shù)及文化設(shè)施的采購(gòu)計(jì)劃
- 環(huán)保材料在建設(shè)綠色校園中的應(yīng)用研究
- GRC施工合同范本
- 技術(shù)創(chuàng)新引領(lǐng)下的工業(yè)互聯(lián)網(wǎng)平臺(tái)發(fā)展趨勢(shì)分析
- 新媒體論文開(kāi)題報(bào)告范文
- 2024年云南省中考數(shù)學(xué)試題含答案解析
- 國(guó)家中醫(yī)藥管理局發(fā)布的406種中醫(yī)優(yōu)勢(shì)病種診療方案和臨床路徑目錄
- 2024年全國(guó)甲卷高考化學(xué)試卷(真題+答案)
- 汽車修理廠管理方案
- 人教版小學(xué)數(shù)學(xué)一年級(jí)上冊(cè)小學(xué)生口算天天練
- (正式版)JBT 5300-2024 工業(yè)用閥門材料 選用指南
- 三年級(jí)數(shù)學(xué)添括號(hào)去括號(hào)加減簡(jiǎn)便計(jì)算練習(xí)400道及答案
- 蘇教版五年級(jí)上冊(cè)數(shù)學(xué)簡(jiǎn)便計(jì)算300題及答案
- 澳洲牛肉行業(yè)分析
- 計(jì)算機(jī)江蘇對(duì)口單招文化綜合理論試卷
評(píng)論
0/150
提交評(píng)論