




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、陜西理工學(xué)院課程設(shè)計(jì)基于單片機(jī)的液晶溫度顯示器的設(shè)計(jì) 摘要本文主要介紹了一個(gè)基于AT89C51單片機(jī)的測(cè)溫系統(tǒng),詳細(xì)描述了利用液晶顯示器件LCD1602和傳感器DS18B20開(kāi)發(fā)測(cè)溫系統(tǒng)的過(guò)程,對(duì)傳感器在單片機(jī)下的硬件連接,軟件編程以及各模塊系統(tǒng)流程進(jìn)行了詳盡分析,特別是數(shù)字溫度傳感DS18B20的數(shù)據(jù)采集過(guò)程。關(guān)鍵詞AT89C51;DS18B20 ;LCD1602Based on single chip microcomputer temperature of liquid crystal display designAuthor:Zhou WeiTao(Garde11 class4 Maj
2、or Communication, School of Physics and Telecommunication Engineering, Shaanxi University of Telechnology ,shaanxi hanzhong 723000)Tutor: Liu YafengAbstract This paper mainly introduces a temperature measurement system based on AT89C51, describes in detail using LCD1602 LCD display device and sensor
3、 DS18B20 temperature measurement and control system in the development process, focusing on sensor under the single chip microcomputer hardware connection, software programming and the flow diagram of each module system are analyzed in detail, especially the digital temperature sensor DS18B20 the da
4、ta collection process.Key words AT89C51; DS18B20; LCD1602 引言溫度是生活及生產(chǎn)中最基本的物理量,它表征的是物體的冷熱程度。自然界中任何物理、化學(xué)過(guò)程都緊密地與溫度相聯(lián)系。在很多生產(chǎn)過(guò)程中,溫度的測(cè)量和控制都直接和安全生產(chǎn)、提高生產(chǎn)效率、保證產(chǎn)品質(zhì)量、節(jié)約能源等重大技術(shù)經(jīng)濟(jì)指標(biāo)相聯(lián)系。自18世紀(jì)工業(yè)革命以來(lái),工業(yè)過(guò)程離不開(kāi)溫度控制。溫度控制廣泛應(yīng)用于社會(huì)生活的各個(gè)領(lǐng)域,如家電、汽車(chē)、材料、電力電子等。溫度控制的精度以及不同控制對(duì)象的控制方法選擇都起著至關(guān)重要的作用。隨著社會(huì)的進(jìn)步和工業(yè)技術(shù)的發(fā)展,溫度因素在社會(huì)生活各個(gè)方面已不容忽視。由于
5、許多產(chǎn)品對(duì)溫度范圍要求嚴(yán)格,而目前市場(chǎng)上普遍存在的溫度檢測(cè)儀器大都是單點(diǎn)測(cè)量,同時(shí)有溫度信息傳遞不及時(shí)、精度不夠的缺點(diǎn),不利于工業(yè)控制者根據(jù)溫度變化及時(shí)做出決定,在這樣的形式下,開(kāi)發(fā)一種能夠同時(shí)測(cè)量多點(diǎn),并且實(shí)時(shí)性高、精度高,能夠綜合處理多點(diǎn)溫度信息的測(cè)量系統(tǒng)就很有必要。在單片機(jī)技術(shù)已經(jīng)普及到我們生活、工作、科研、各個(gè)領(lǐng)域,已經(jīng)成為一種比較成熟的技術(shù)條件下,我們可以基于89S51單片機(jī),利用液晶顯示器件以及DS18B20溫度傳感器等器件,通過(guò)溫度傳感器在單片機(jī)下的硬件連接,軟件編程即可設(shè)計(jì)DS18B20溫度傳感器系統(tǒng)。該系統(tǒng)可以方便的實(shí)現(xiàn)實(shí)現(xiàn)溫度采集和顯示,并可根據(jù)需要任意設(shè)定上下限報(bào)警溫度,
6、它使用起來(lái)相當(dāng)方便,具有精度高、量程寬、靈敏度高、體積小、功耗低等優(yōu)點(diǎn),適合于我們?nèi)粘I詈凸?、農(nóng)業(yè)生產(chǎn)中的溫度測(cè)量,也可以當(dāng)作溫度處理模塊嵌入其它系統(tǒng)中,作為其他主系統(tǒng)的輔助擴(kuò)展。DS18B20與AT89C51結(jié)合實(shí)現(xiàn)最簡(jiǎn)溫度檢測(cè)系統(tǒng),該系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,抗干擾能力強(qiáng),適合于惡劣環(huán)境下進(jìn)行現(xiàn)場(chǎng)溫度測(cè)量,有廣泛的應(yīng)用前景。1內(nèi)容1.1課程設(shè)計(jì)題目 基于DS18B20的溫度傳感器1.2課程設(shè)計(jì)目的通過(guò)基于MCS-51系列單片機(jī)AT89C51和DS18B20溫度傳感器檢測(cè)溫度,熟悉芯片的使用,溫度傳感器的功能,數(shù)碼顯示管的使用,匯編語(yǔ)言的設(shè)計(jì);并且把我們這一年所學(xué)的數(shù)字和模擬電子技術(shù)、檢測(cè)技術(shù)、單片機(jī)
7、應(yīng)用等知識(shí),通過(guò)理論聯(lián)系實(shí)際,從題目分析、電路設(shè)計(jì)調(diào)試、程序編制調(diào)試到傳感器的選定等這一完整的實(shí)驗(yàn)過(guò)程,培養(yǎng)了學(xué)生正確的設(shè)計(jì)思想,使學(xué)生充分發(fā)揮主觀能動(dòng)性,去獨(dú)立解決實(shí)際問(wèn)題,以達(dá)到提升學(xué)生的綜合能力、動(dòng)手能力、文獻(xiàn)資料查閱能力的作用,為畢業(yè)設(shè)計(jì)和以后工作打下一個(gè)良好的基礎(chǔ)。1.3設(shè)計(jì)任務(wù)和要求以MCS-51系列單片機(jī)為核心器件,組成一個(gè)數(shù)字溫度計(jì),采用數(shù)字溫度傳感器DS18B20為檢測(cè)器件,進(jìn)行單點(diǎn)溫度檢測(cè),檢測(cè)精度為±0.5攝氏度。溫度顯示采用LCD1602顯示,兩位整數(shù),一位小數(shù)。圖1.1 系統(tǒng)總體仿真圖1.4方案選擇與論證根據(jù)設(shè)計(jì)任務(wù)的總體要求,本系統(tǒng)可以劃分為以下幾個(gè)基本模
8、塊,針對(duì)各個(gè)模塊的功能要求,分別有以下一些不同的設(shè)計(jì)方案:1.4.1溫度傳感模塊方案一:采用熱敏電阻,熱敏電阻精度、重復(fù)性、可靠性較差,對(duì)于檢測(cè)1攝氏度的信號(hào)是不適用的,也不能滿(mǎn)足測(cè)量范圍。在溫度測(cè)量系統(tǒng)中,也常采用單片溫度傳感器,比如AD590,LM35等。但這些芯片輸出的都是模擬信號(hào),必須經(jīng)過(guò)A/D轉(zhuǎn)換后才能送給計(jì)算機(jī),這樣就使測(cè)溫系統(tǒng)的硬件結(jié)構(gòu)較復(fù)雜。另外,這種測(cè)溫系統(tǒng)難以實(shí)現(xiàn)多點(diǎn)測(cè)溫,也要用到復(fù)雜的算法,一定程度上也增加了軟件實(shí)現(xiàn)的難度。 方案二:采用單總線數(shù)字溫度傳感器DS18B20測(cè)量溫度,直接輸出數(shù)字信號(hào)。便于單片機(jī)處理及控制,節(jié)省硬件電路。且該芯片的物理化學(xué)性很穩(wěn)定,此元件線形
9、性能好,在0100攝氏度時(shí),最大線形偏差小于1攝氏度。DS18B20的最大特點(diǎn)之一采用了單總線的數(shù)據(jù)傳輸,由數(shù)字溫度計(jì)DS18B20和微控制器AT89C51構(gòu)成的溫度裝置,它直接輸出溫度的數(shù)字信號(hào)到微控制器。每只DS18B20具有一個(gè)獨(dú)有的不可修改的64位序列號(hào),根據(jù)序列號(hào)可訪問(wèn)不同的器件。這樣一條總線上可掛接多個(gè)DS18B20傳感器,實(shí)現(xiàn)多點(diǎn)溫度測(cè)量,輕松的組建傳感網(wǎng)絡(luò)。 綜上分析,我選用第二種方案。圖1.2 溫度傳感模塊仿真圖1.4.2顯示模塊 方案一:采用8位段數(shù)碼管,將單片機(jī)得到的數(shù)據(jù)通過(guò)數(shù)碼管顯示出來(lái)。該方案簡(jiǎn)單易行,但所需的元件較多,且不容易進(jìn)行操作,可讀性差,一旦設(shè)定后很難再加入
10、其他的功能,顯示格式受限制,且大耗電量大,不宜用電池給系統(tǒng)供電。 方案二:采用液晶顯示器件,液晶顯示平穩(wěn)、省電、美觀,更容易實(shí)現(xiàn)題目要求,對(duì)后續(xù)的園藝通兼容性高,只需將軟件作修改即可,可操作性強(qiáng),也易于讀數(shù),采用RT1602兩行十六個(gè)字符的顯示,能同時(shí)顯示其它的信息如日期、時(shí)間、星期、溫度。 綜上分析,我們采用了第二個(gè)方案圖1.3 顯示模塊仿真圖2系統(tǒng)概述2.1系統(tǒng)的總體設(shè)計(jì)方案 8255PCD 微機(jī)系統(tǒng) 采用AT89S52單片機(jī)作為控制核心對(duì)溫度傳感器DS18B20控制,讀取溫度信號(hào)并進(jìn)行計(jì)算處理,并送到液晶顯示器LCD1602顯示。 按照系統(tǒng)設(shè)計(jì)功能的要求,確定系統(tǒng)由3個(gè)模塊組成:主控制器
11、、測(cè)溫電路和顯示電路。數(shù)字溫度計(jì)總體電路結(jié)構(gòu)框圖如圖2.1下所示。 DS18B20顯示電路圖2.1 總體電路結(jié)構(gòu)框圖2.2硬件電路設(shè)計(jì)2.2.1單片機(jī)控制模塊該模塊由AT89C51單片機(jī)組成在設(shè)計(jì)方面,AT89C51的EA接高電平,其外圍電路提供能使之工作的晶振脈沖、復(fù)位按鍵,四個(gè)I/O分別接8路的單列IP座方便與外圍設(shè)備連接。 當(dāng)AT89C51芯片接到來(lái)自溫度傳感器的信號(hào)時(shí),其內(nèi)部程序?qū)⒏鶕?jù)信號(hào)的類(lèi)型進(jìn)行處理,并且將處理的結(jié)果送到顯示模塊,發(fā)送控制信號(hào)控制各模塊。2.2.2溫度傳感器模塊圖2.2 DS18B20 2.2.2.1 DS18B20原理與分析 DS18B20是美國(guó)DALLAS半導(dǎo)體
12、公司繼DS1820之后最新推出的一種改進(jìn)型智能溫度傳感器。與傳統(tǒng)的熱敏電阻相比,它能夠直接讀出被測(cè)溫度并且可根據(jù)實(shí)際要求通過(guò)簡(jiǎn)單的編程實(shí)現(xiàn)912位的數(shù)字值讀數(shù)方式??梢苑謩e在93.75 ms和750 ms內(nèi)完成9位和12位的數(shù)字量,并且從DS18B20讀出的信息或?qū)懭隓S18B20的信息僅需要一根口線(單線接口)讀寫(xiě),溫度變換功率來(lái)源于數(shù)據(jù)總線,總線本身也可以向所掛接的DS18B20供電,而無(wú)需額外電源。因而使用DS18B20可使系統(tǒng)結(jié)構(gòu)更趨簡(jiǎn)單,可靠性更高。他在測(cè)溫精度、轉(zhuǎn)換時(shí)間、傳輸距離、分辨率等方面較DS1820有了很大的改進(jìn),給用戶(hù)帶來(lái)了更方便的使用和更令人滿(mǎn)意的效果。 以下是DS18
13、B20的特點(diǎn): (1)獨(dú)特的單線接口方式:DS18B20與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊。 (2)在使用中不需要任何外圍元件。 (3)可用數(shù)據(jù)線供電,電壓范圍:+3.0+5.5 V。 (4)測(cè)溫范圍:-55 - +125 。固有測(cè)溫分辨率為0.5 。 (5)通過(guò)編程可實(shí)現(xiàn)9-12位的數(shù)字讀數(shù)方式。 (6)用戶(hù)可自設(shè)定非易失性的報(bào)警上下限值。 (7)支持多點(diǎn)組網(wǎng)功能,多個(gè)DS18B20可以并聯(lián)在惟一的三線上,實(shí)現(xiàn)多點(diǎn)測(cè)溫。 (8)負(fù)壓特性,電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,但不能正常工作。 圖2.3 DS18B20的測(cè)溫原理2.2.2.2 DS18B
14、20的測(cè)溫原理 DS18B20的測(cè)溫原理如圖2.3所示,圖2.3低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給減法計(jì)數(shù)器1,高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,所產(chǎn)生的信號(hào)作為減法計(jì)數(shù)器2的脈沖輸入,圖2.3還隱含著計(jì)數(shù)門(mén),當(dāng)計(jì)數(shù)門(mén)打開(kāi)時(shí),DS18B20就對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖后進(jìn)行計(jì)數(shù),進(jìn)而完成溫度測(cè)量。計(jì)數(shù)門(mén)的開(kāi)啟時(shí)間由高溫度系數(shù)振蕩器來(lái)決定,每次測(cè)量前,首先將-55 所對(duì)應(yīng)的基數(shù)分別置入減法計(jì)數(shù)器1和溫度寄存器中,減法計(jì)數(shù)器1和溫度寄存器被預(yù)置在 -55 所對(duì)應(yīng)的一個(gè)基數(shù)值。減法計(jì)數(shù)器1對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)減法計(jì)數(shù)器1
15、的預(yù)置值減到0時(shí)溫度寄存器的值將加1,減法計(jì)數(shù)器1的預(yù)置將重新被裝入,減法計(jì)數(shù)器1重新開(kāi)始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到減法計(jì)數(shù)器2計(jì)數(shù)到0時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即為所測(cè)溫度。圖中的斜率累加器用于補(bǔ)償和修正測(cè)溫過(guò)程中的非線性,其輸出用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)門(mén)仍未關(guān)閉就重復(fù)上述過(guò)程,直至溫度寄存器值達(dá)到被測(cè)溫度值,這就是DS18B20的測(cè)溫原理。 另外,由于DS18B20單線通信功能是分時(shí)完成的,他有嚴(yán)格的時(shí)隙概念,因此讀寫(xiě)時(shí)序很重要。系統(tǒng)對(duì)DS18B20的各種操作必須按協(xié)議進(jìn)行。操作協(xié)議為:初始化DS18B20(發(fā)復(fù)位脈沖)發(fā)ROM
16、功能命令發(fā)存儲(chǔ)器操作命令處理數(shù)據(jù)。 DS18B20工作過(guò)程一般遵循以下協(xié)議:初始化ROM操作命令存儲(chǔ)器操作命令處理數(shù)據(jù) 初始化 單總線上的所有處理均從初始化序列開(kāi)始。初始化序列包括總線主機(jī)發(fā)出一復(fù)位脈沖,接著由從屬器件送出存在脈沖。存在脈沖讓總線控制器知道DS1820 在總線上且已準(zhǔn)備好操作。 ROM操作命令 一旦總線主機(jī)檢測(cè)到從屬器件的存在,它便可以發(fā)出器件ROM操作命令之一。所有ROM操作命令均為8位長(zhǎng)。這些命令如下: Read ROM(讀ROM)33h 此命令允許總線主機(jī)讀DS18B20的8位產(chǎn)品系列編碼,唯一的48位序列號(hào),以及8位的CRC。此命令只能在總線上僅有一個(gè)DS18B20的情
17、況下可以使用。如果總線上存在多于一個(gè)的從屬器件,那么當(dāng)所有從片企圖同時(shí)發(fā)送時(shí)將發(fā)生數(shù)據(jù)沖突的現(xiàn)象(漏極開(kāi)路會(huì)產(chǎn)生線與的結(jié)果)。 Match ROM( 符合ROM)55h 此命令后繼以64位的ROM數(shù)據(jù)序列,允許總線主機(jī)對(duì)多點(diǎn)總線上特定的DS1尋址。只有與64位ROM序列嚴(yán)格相符的DS18B20才能對(duì)后繼的存貯器操作命令作出響應(yīng)。所有與64位ROM序列不符的從片將等待復(fù)位脈沖。此命令在總線上有單個(gè)或多個(gè)器件的情況下均可使用。 Skip ROM( 跳過(guò)ROM )CCh 在單點(diǎn)總線系統(tǒng)中,此命令通過(guò)允許總線主機(jī)不提供64位ROM編碼而訪問(wèn)存儲(chǔ)器操作來(lái)節(jié)省時(shí)間。如果在總線上存在多于一個(gè)的從屬器件而且在
18、Skip ROM命令之后發(fā)出讀命令,那么由于多個(gè)從片同時(shí)發(fā)送數(shù)據(jù),會(huì)在總線上發(fā)生數(shù)據(jù)沖突(漏極開(kāi)路下拉會(huì)產(chǎn)生線與的效果)。 Search ROM( 搜索ROM)F0h 當(dāng)系統(tǒng)開(kāi)始工作時(shí),總線主機(jī)可能不知道單線總線上的器件個(gè)數(shù)或者不知道其64位ROM編碼。搜索ROM命令允許總線控制器用排除法識(shí)別總線上的所有從機(jī)的64位編碼。 Alarm Search(告警搜索)ECh 此命令的流程與搜索ROM命令相同。但是,僅在最近一次溫度測(cè)量出現(xiàn)告警的情況下,DS18B20才對(duì)此命令作出響應(yīng)。告警的條件定義為溫度高于TH 或低于TL。只要DS18B20一上電,告警條件就保持在設(shè)置狀態(tài),直到另一次溫度測(cè)量顯示出
19、非告警值或者改變TH或TL的設(shè)置,使得測(cè)量值再一次位于允許的范圍之內(nèi)。貯存在EEPROM內(nèi)的觸發(fā)器值用于告警。 存儲(chǔ)器操作命令 Write Scratchpad(寫(xiě)暫存存儲(chǔ)器)4Eh 這個(gè)命令向DS18B20的暫存器中寫(xiě)入數(shù)據(jù),開(kāi)始位置在地址2。接下來(lái)寫(xiě)入的兩個(gè)字節(jié)將被存到暫存器中的地址位置2和3。可以在任何時(shí)刻發(fā)出復(fù)位命令來(lái)中止寫(xiě)入。 Read Scratchpad(讀暫存存儲(chǔ)器)BEh 這個(gè)命令讀取暫存器的內(nèi)容。讀取將從字節(jié)0開(kāi)始,一直進(jìn)行下去,直到第9(字節(jié)8,CRC)字節(jié)讀完。如果不想讀完所有字節(jié),控制器可以在任何時(shí)間發(fā)出復(fù)位命令來(lái)中止讀取。 Copy Scratchpad(復(fù)制暫存存
20、儲(chǔ)器)48h 這條命令把暫存器的內(nèi)容拷貝到DS18B20的E2存儲(chǔ)器里,即把溫度報(bào)警觸發(fā)字節(jié)存入非易失性存儲(chǔ)器里。如果總線控制器在這條命令之后跟著發(fā)出讀時(shí)間隙,而DS18B20又正在忙于把暫存器拷貝到E2存儲(chǔ)器,DS18B20就會(huì)輸出一個(gè)“0”,如果拷貝結(jié)束的話(huà),DS18B20 則輸出“1”。如果使用寄生電源,總線控制器必須在這條命令發(fā)出后立即起動(dòng)強(qiáng)上拉并最少保持10ms。 Convert T(溫度變換)44h 這條命令啟動(dòng)一次溫度轉(zhuǎn)換而無(wú)需其他數(shù)據(jù)。溫度轉(zhuǎn)換命令被執(zhí)行,而后DS18B20保持等待狀態(tài)。如果總線控制器在這條命令之后跟著發(fā)出讀時(shí)間隙,而DS18B20又忙于做時(shí)間轉(zhuǎn)換的話(huà),DS18
21、B20將在總線上輸出“0”,若溫度轉(zhuǎn)換完成,則輸出“1”。如果使用寄生電源,總線控制器必須在發(fā)出這條命令后立即起動(dòng)強(qiáng)上拉,并保持500ms。 Recall E2(重新調(diào)整E2)B8h 這條命令把貯存在E2中溫度觸發(fā)器的值重新調(diào)至?xí)捍娲鎯?chǔ)器。這種重新調(diào)出的操作在對(duì)DS18B20上電時(shí)也自動(dòng)發(fā)生,因此只要器件一上電,暫存存儲(chǔ)器內(nèi)就有了有效的數(shù)據(jù)。在這條命令發(fā)出之后,對(duì)于所發(fā)出的第一個(gè)讀數(shù)據(jù)時(shí)間片,器件會(huì)輸出溫度轉(zhuǎn)換忙的標(biāo)識(shí):“0”=忙,“1”=準(zhǔn)備就緒。 Read Power Supply(讀電源)B4h 對(duì)于在此命令發(fā)送至DS18B20之后所發(fā)出的第一讀數(shù)據(jù)的時(shí)間片,器件都會(huì)給出其電源方式的信號(hào)
22、:“0”=寄生電源供電,“1”=外部電源供電。 處理數(shù)據(jù) DS18B20的高速暫存存儲(chǔ)器由9個(gè)字節(jié)組成,其分配如表2.1所示。當(dāng)溫度轉(zhuǎn)換命令發(fā)布后,經(jīng)轉(zhuǎn)換所得的溫度值以二字節(jié)補(bǔ)碼形式存放在高速暫存存儲(chǔ)器的第0和第1個(gè)字節(jié)。單片機(jī)可通過(guò)單線接口讀到該數(shù)據(jù),讀取時(shí)低位在前,高位在后。表2.1 DS18B20溫度數(shù)據(jù)表表2.1是DS18B20溫度采集轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲(chǔ)在DS18B20的兩個(gè)8比特的RAM中,二進(jìn)制中的前面5位是符號(hào)位,如果測(cè)得的溫度大于或等于0,這5位為0,只要將測(cè)到的數(shù)值乘于0.0625即可得到實(shí)際溫度;如果溫度小于0,這5位為1,測(cè)到的數(shù)值需要取反加1再乘于0.0625
23、即可得到實(shí)際溫度。 溫度轉(zhuǎn)換計(jì)算方法舉例: 例如當(dāng)DS18B20采集到+125的實(shí)際溫度后,輸出為07D0H,則:實(shí)際溫度=07D0H*0.0625=2000*0.0625=1250C。 例如當(dāng)DS18B20采集到-55的實(shí)際溫度后,輸出為FC90H,則應(yīng)先將11位數(shù)據(jù)位取反加1得370H(符號(hào)位不變,也不作為計(jì)算),則: 實(shí)際溫度=370H*0.0625=880*0.0625=550C。 2.2.2.3顯示模塊LCD1602資料(這里主要介紹下指令說(shuō)明及時(shí)序)表2.2 1602液晶模塊內(nèi)部的控制器控制指令序號(hào)指令RSR/WD7D6D5D4D3D2D1D01清顯示00000000012光標(biāo)返回
24、000000001*3置輸入模式00000001I/DS4顯示開(kāi)/關(guān)控制0000001DCB5光標(biāo)或字符移位000001S/CR/L*6置功能00001DLNF*7置字符發(fā)生存貯器地址0001字符發(fā)生存貯器地址8置數(shù)據(jù)存貯器地址001顯示數(shù)據(jù)存貯器地址9讀忙標(biāo)志或地址01BF計(jì)數(shù)器地址10寫(xiě)數(shù)到CGRAM或DDRAM)10要寫(xiě)的數(shù)據(jù)內(nèi)容11從CGRAM或DDRAM讀數(shù)11讀出的數(shù)據(jù)內(nèi)容1602液晶模塊的讀寫(xiě)操作、屏幕和光標(biāo)的操作都是通過(guò)指令編程來(lái)實(shí)現(xiàn)的。(說(shuō)明:1為高電平、0為低電平)指令1:清顯示,指令碼01H,光標(biāo)復(fù)位到地址00H位置。指令2:光標(biāo)復(fù)位,光標(biāo)返回到地址00H。指令3:光標(biāo)和
25、顯示模式設(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:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍。指令5:光標(biāo)或顯示移位 S/C:高電平時(shí)移動(dòng)顯示的文字,低電平時(shí)移動(dòng)光標(biāo)。指令6:功能設(shè)置命令 DL:高電平時(shí)為4位總線,低電平時(shí)為8位總線 N:低電平時(shí)為單行顯示,高電平時(shí)雙行顯示 F: 低電平時(shí)顯示5x7的點(diǎn)陣字符,高電平時(shí)顯示5x10的點(diǎn)陣字符。指令7:字符發(fā)生器RAM地址設(shè)
26、置。指令8:DDRAM地址設(shè)置。指令9:讀忙信號(hào)和光標(biāo)地址 BF:為忙標(biāo)志位,高電平表示忙,此時(shí)模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。指令10:寫(xiě)數(shù)據(jù)。指令11:讀數(shù)據(jù)。表2.3 與HD44780相兼容的芯片時(shí)序讀狀態(tài)輸入RS=L,R/W=H,E=H輸出D0D7=狀態(tài)字寫(xiě)指令輸入RS=L,R/W=L,D0D7=指令碼,E=高脈沖輸出無(wú)讀數(shù)據(jù)輸入RS=H,R/W=H,E=H輸出D0D7=數(shù)據(jù)寫(xiě)數(shù)據(jù)輸入RS=H,R/W=L,D0D7=數(shù)據(jù),E=高脈沖輸出無(wú)圖2.4 讀操作時(shí)序圖2.5 寫(xiě)操作時(shí)序3軟件設(shè)計(jì)系統(tǒng)程序主要包括主程序、讀出溫度子程序、溫度轉(zhuǎn)換子程序、計(jì)算溫度子程序、顯示等等。
27、3.1主程序主要功能是完成DS18B20的初始化工作,并進(jìn)行讀溫度,將溫度轉(zhuǎn)化成為壓縮BCD碼 并在顯示器上顯示傳感器所測(cè)得的實(shí)際溫度。3.2讀出溫度子程序讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時(shí)需要進(jìn)行CRC校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(shù)據(jù)的改寫(xiě)。其程序流程圖如圖3.1。圖3.1 DS18B20的初始化流程3.3溫度轉(zhuǎn)換命令子程序發(fā)DS18B20復(fù)位命令溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開(kāi)始命令,當(dāng)采用12位分辯率時(shí)轉(zhuǎn)換時(shí)間約為750ms,在本程序設(shè)計(jì)中采用1s顯示程序延時(shí)法等待轉(zhuǎn)換的完成。流程圖如圖3.2 發(fā)跳過(guò)ROM命令 圖3.2 延時(shí)流程圖發(fā)溫度轉(zhuǎn)換開(kāi)始命令結(jié)束3.4計(jì)算
28、溫度子程序計(jì)算溫度子程序?qū)AM中讀取值進(jìn)行BCD碼的轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值正負(fù)的判定。流程圖如圖3.3。圖3.3 正負(fù)溫度判定流程圖4系統(tǒng)測(cè)試4.1設(shè)計(jì)中的問(wèn)題通過(guò)這次基于DS18B20傳感器測(cè)量溫度的設(shè)計(jì),我學(xué)到了不少新的知識(shí)。首先,這次設(shè)計(jì)讓我把書(shū)本上學(xué)到的理論知識(shí)轉(zhuǎn)化成為現(xiàn)實(shí)生活中有價(jià)值的實(shí)物。如果沒(méi)有這次設(shè)計(jì)為我 搭建的平臺(tái),我就不能對(duì)書(shū)本上的知識(shí)進(jìn)行很好的理解,也不能熟練的把它們應(yīng)用到現(xiàn)實(shí)生活中。還有,我們學(xué)會(huì)不能手高眼低,要踏踏實(shí)實(shí),從基礎(chǔ)學(xué)起、做起。但是,具體到設(shè)計(jì)時(shí),我遇到了很多問(wèn)題。1. 如何將傳感器得到的溫度轉(zhuǎn)換成為對(duì)應(yīng)的電信號(hào);2. 如何將電信號(hào)輸送到單片機(jī)進(jìn)行控制;3
29、. 如何把測(cè)得的溫度用數(shù)字顯示出來(lái)。4.2系統(tǒng)改進(jìn)設(shè)想本次基于單片機(jī)的溫度監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)我感覺(jué)最大的缺陷就是沒(méi)有加入溫度上下限報(bào)警系統(tǒng)的設(shè)計(jì),聯(lián)系實(shí)際在程序中默認(rèn)設(shè)置系統(tǒng)的下限溫度為零下三十?dāng)z氏度。改進(jìn)設(shè)想如下:1. 在硬件方面應(yīng)該加上一個(gè)蜂鳴器和三個(gè)按鈕分別為溫度“+”、溫度“”和“確定”,根據(jù)不同的監(jiān)測(cè)環(huán)境的要求用三個(gè)按鈕來(lái)設(shè)置具體的上限溫度;2. 在軟件方面分別加上設(shè)置系統(tǒng)默認(rèn)下限溫度的代碼、根據(jù)不同的環(huán)境設(shè)置系統(tǒng)上限溫度的代碼、當(dāng)達(dá)到上限溫度是蜂鳴器就報(bào)警的代碼。參考文獻(xiàn)1梁森,歐陽(yáng)三泰,王侃夫. 自動(dòng)檢測(cè)技術(shù)及應(yīng)用M.北京:機(jī)械工業(yè)出版社.2012(2).2萬(wàn)隆.單片機(jī)原理及應(yīng)用技術(shù)
30、.M.北京:清華大學(xué)出版社.2010.3李朝青.單片機(jī)原理及接口技術(shù)(簡(jiǎn)明修訂版).M.杭州:北京航空航天大學(xué)出版社.2013(4).4李廣弟.單片機(jī)基礎(chǔ)M.北京:北京航空航天大學(xué)出版社.2007(3). 5康華光.數(shù)字電子技術(shù)基礎(chǔ)(第四版)M.北京:高等教育出版社.2008(5)6 張希影.基于74LS595驅(qū)動(dòng)的溫度顯示器設(shè)計(jì)J.微型計(jì)算機(jī)應(yīng)用,2013,32(23):83-89.7馮若曄,沈大偉,祖靜.基于ARM微處理器LPC2148的LED溫度顯示器設(shè)計(jì)J.電子測(cè)試,2010,23(10):60-63.8洪連環(huán).基于Proteus的液晶溫度顯示器仿真設(shè)計(jì)J.電子設(shè)計(jì)工程,2011,19
31、(5):186-189.9張志奎,劉強(qiáng).淺析溫度計(jì)位置對(duì)測(cè)溫的影響J.變壓器,2012,49(11):46-47.10郭天祥. 51單片機(jī)C語(yǔ)言教程M.北京:電子出版社. 2009(3).11周鵬. 基于STC89C52單片機(jī)的溫度檢測(cè)系統(tǒng)設(shè)計(jì)J. 現(xiàn)代電子技術(shù),2012,35(22):10-13.附錄附錄A:仿真總體電路圖附錄B:程序源代碼#include <intrins.h> typedef unsigned char uint8;#define uint unsigned int#define uchar unsigned charsbit DQ = P33; / 定義DQ
32、引腳為P3.3uchar code Bw10= 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39;/百位編碼ucharcodeXsw16=0x30,0x31,0x31,0x32,0x33,0x33,0x34,0x34,0x35,0x36,0x36,0x37,0x38,0x38,0x39,0x39;/小數(shù)位編碼sbit RS = P20 ;sbit RW = P21 ;sbit EN = P22 ;sbit BUSY = P07;uchar wendu;uchar temp_g,temp_d;unsigned char code word1=&q
33、uot;Temperature:"void delay(uint xms)uint i,j;for(i=xms;i>0;-i)for(j=110;j>0;-j);void Delayus(int t) /在11.059MHz的晶振條件下調(diào)用本函數(shù)需要24s ,然后每次計(jì)數(shù)需16s int s; for (s=0; s<t;s+);void wait(void)/ 等待繁忙標(biāo)志P0 = 0xFF;doRS = 0;RW = 1;EN = 0;EN = 1;while (BUSY = 1);EN = 0;void w_dat(uint8 dat)/ 寫(xiě)數(shù)據(jù)wait();
34、EN = 0;P0 = dat;RS = 1;RW = 0;EN = 1;EN = 0;void w_cmd(uint8 cmd)/ 寫(xiě)命令wait();EN = 0;P0 = cmd;RS = 0;RW = 0;EN = 1;EN = 0;void w_string(uint8 addr_start, uint8 *p)/ 發(fā)送字符串到LCDw_cmd(addr_start);while (*p != '0')w_dat(*p+);void Init_LCD1602(void)/ 初始化1602w_cmd(0x38); / 16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù)接口w_cmd(0
35、x0c); / 顯示器開(kāi)、光標(biāo)開(kāi)、光標(biāo)允許閃爍w_cmd(0x06); / 文字不動(dòng),光標(biāo)自動(dòng)右移w_cmd(0x01); / 清屏uchar Reset()/完成單總線的復(fù)位操作。 uchar d; DQ = 0; / 將 DQ 線拉低 Delayus(29); / 保持 480s .復(fù)位時(shí)間為480s,因此延時(shí)時(shí)間為(480-24)/16 = 28.5,取29s。 DQ = 1; / DQ返回高電平 Delayus(3); / 等待存在脈沖.經(jīng)過(guò)70s之后檢測(cè)存在脈沖,因此延時(shí)時(shí)間為(70-24)/16 = 2.875,取3s。 d = DQ; / 獲得存在信號(hào) Delayus(25);
36、/ 等待時(shí)間隙結(jié)束 return(d); / 返回存在信號(hào),0 = 器件存在, 1 = 無(wú)器件void write_bit(uchar bitval)/向單總線寫(xiě)入1位值:bitval DQ = 0; / 將DQ 拉低開(kāi)始寫(xiě)時(shí)間隙 if(bitval=1) DQ =1; / 如果寫(xiě)1,DQ 返回高電平 Delayus(5);/ 在時(shí)間隙內(nèi)保持電平值, DQ = 1; / Delayus函數(shù)每次循環(huán)延時(shí)16s,因此Delayus(5)=5*16+24=104svoid ds18write_byte(char val)/向單總線寫(xiě)入一個(gè)字節(jié)值:val uchar i; uchar temp; fo
37、r (i=0; i<8; i+)/ 寫(xiě)入字節(jié), 每次寫(xiě)入一位 temp = val>>i; temp &= 0x01; write_bit(temp); Delayus(5);uchar read_bit()/從單總線上讀取一位信號(hào),所需延時(shí)時(shí)間為15s,因此無(wú)法調(diào)用前面定義 /的Delayus()函數(shù),而采用一個(gè)for()循環(huán)來(lái)實(shí)現(xiàn)延時(shí)。 uchar i; DQ = 0; /將DQ 拉低開(kāi)始讀時(shí)間隙 DQ = 1; / 然后返回高電平 for (i=0; i<3; i+); / 延時(shí)15s return(DQ); / 返回 DQ 線上的電平值uchar ds18read_byte()/從單總線讀取一個(gè)字節(jié)的值 uchar i; uchar value = 0; for (i=0;i<8;i+) / 讀取字節(jié),每次讀取一個(gè)字節(jié) if(read_bit() value|=0x01<<i;
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 同行合作合同范本
- 綠化苗木栽植合同范本
- 廠區(qū)圍網(wǎng)維修合同范本
- 合同違約金合同范本-
- 業(yè)務(wù)變更合同范本
- 木門(mén)及木飾面制作安裝合同范本
- 健身公司合同范本
- 卡丁車(chē)加盟合同范本
- 吊車(chē)司機(jī)聘用合同范本
- 合同范例主播
- 2025年01月中國(guó)疾控中心信息中心公開(kāi)招聘1人筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 北京市豐臺(tái)區(qū)2024-2025學(xué)年高二上學(xué)期期末英語(yǔ)試題
- 2025年高三第二學(xué)期物理備課組教學(xué)工作計(jì)劃
- 丁香園:2024年12月全球新藥月度報(bào)告-數(shù)據(jù)篇
- 生產(chǎn)與運(yùn)作管理-第5版 課件全套 陳志祥 第1-14章 生產(chǎn)系統(tǒng)與生產(chǎn)運(yùn)作管理概述 -豐田生產(chǎn)方式與精益生產(chǎn)
- 2025年湖南理工職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測(cè)試近5年常考版參考題庫(kù)含答案解析
- 2024年西安航空職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試歷年參考題庫(kù)含答案解析
- 2024年港作拖輪項(xiàng)目可行性研究報(bào)告
- 人教版小學(xué)數(shù)學(xué)三年級(jí)下冊(cè)第一單元位置與方向一單元測(cè)試
- 雅禮中學(xué)2024-2025學(xué)年初三創(chuàng)新人才選拔數(shù)學(xué)試題及答案
- 2023年蘇州衛(wèi)生職業(yè)技術(shù)學(xué)院高職單招(語(yǔ)文)試題庫(kù)含答案解析
評(píng)論
0/150
提交評(píng)論