基于單片機的液晶溫度顯示器的設計_第1頁
基于單片機的液晶溫度顯示器的設計_第2頁
基于單片機的液晶溫度顯示器的設計_第3頁
基于單片機的液晶溫度顯示器的設計_第4頁
基于單片機的液晶溫度顯示器的設計_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選文檔基于單片機的液晶溫度顯示器的設計 摘要本文主要介紹了一個基于AT89C51單片機的測溫系統(tǒng),具體描述了利用液晶顯示器件LCD1602和傳感器DS18B20開發(fā)測溫系統(tǒng)的過程,對傳感器在單片機下的硬件連接,軟件編程以及各模塊系統(tǒng)流程進行了詳盡分析,特殊是數(shù)字溫度傳感DS18B20的數(shù)據(jù)采集過程。關鍵詞AT89C51;DS18B20 ;LCD1602Based on single chip microcomputer temperature of liquid crystal display designAuthor:Zhou WeiTao(Garde11 class4 Major Com

2、munication, 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 DS18B

3、20 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 data col

4、lection process.Key words AT89C51; DS18B20; LCD1602 引言溫度是生活及生產(chǎn)中最基本的物理量,它表征的是物體的冷熱程度。自然界中任何物理、化學過程都緊密地與溫度相聯(lián)系。在很多生產(chǎn)過程中,溫度的測量和把握都直接和平安生產(chǎn)、提高生產(chǎn)效率、保證產(chǎn)品質量、節(jié)省能源等重大技術經(jīng)濟指標相聯(lián)系。自18世紀工業(yè)革命以來,工業(yè)過程離不開溫度把握。溫度把握廣泛應用于社會生活的各個領域,如家電、汽車、材料、電力電子等。溫度把握的精度以及不同把握對象的把握方法選擇都起著至關重要的作用。隨著社會的進步和工業(yè)技術的進展,溫度因素在社會生活各個方面已不容忽視。由于很多產(chǎn)品對溫

5、度范圍要求嚴格,而目前市場上普遍存在的溫度檢測儀器大都是單點測量,同時有溫度信息傳遞不準時、精度不夠的缺點,不利于工業(yè)把握者依據(jù)溫度變化準時做出打算,在這樣的形式下,開發(fā)一種能夠同時測量多點,并且實時性高、精度高,能夠綜合處理多點溫度信息的測量系統(tǒng)就很有必要。在單片機技術已經(jīng)普及到我們生活、工作、科研、各個領域,已經(jīng)成為一種比較成熟的技術條件下,我們可以基于89S51單片機,利用液晶顯示器件以及DS18B20溫度傳感器等器件,通過溫度傳感器在單片機下的硬件連接,軟件編程即可設計DS18B20溫度傳感器系統(tǒng)。該系統(tǒng)可以便利的實現(xiàn)實現(xiàn)溫度采集和顯示,并可依據(jù)需要任意設定上下限報警溫度,它使用起來相

6、當便利,具有精度高、量程寬、靈敏度高、體積小、功耗低等優(yōu)點,適合于我們?nèi)粘I詈凸ぁ⑥r(nóng)業(yè)生產(chǎn)中的溫度測量,也可以當作溫度處理模塊嵌入其它系統(tǒng)中,作為其他主系統(tǒng)的幫助擴展。DS18B20與AT89C51結合實現(xiàn)最簡溫度檢測系統(tǒng),該系統(tǒng)結構簡潔,抗干擾力量強,適合于惡劣環(huán)境下進行現(xiàn)場溫度測量,有廣泛的應用前景。1內(nèi)容1.1課程設計題目 基于DS18B20的溫度傳感器1.2課程設計目的通過基于MCS-51系列單片機AT89C51和DS18B20溫度傳感器檢測溫度,生疏芯片的使用,溫度傳感器的功能,數(shù)碼顯示管的使用,匯編語言的設計;并且把我們這一年所學的數(shù)字和模擬電子技術、檢測技術、單片機應用等學問,

7、通過理論聯(lián)系實際,從題目分析、電路設計調(diào)試、程序編制調(diào)試到傳感器的選定等這一完整的試驗過程,培育了同學正確的設計思想,使同學充分發(fā)揮主觀能動性,去獨立解決實際問題,以達到提升同學的綜合力量、動手力量、文獻資料查閱力量的作用,為畢業(yè)設計和以后工作打下一個良好的基礎。1.3設計任務和要求以MCS-51系列單片機為核心器件,組成一個數(shù)字溫度計,接受數(shù)字溫度傳感器DS18B20為檢測器件,進行單點溫度檢測,檢測精度為0.5攝氏度。溫度顯示接受LCD1602顯示,兩位整數(shù),一位小數(shù)。圖1.1 系統(tǒng)總體仿真圖1.4方案選擇與論證依據(jù)設計任務的總體要求,本系統(tǒng)可以劃分為以下幾個基本模塊,針對各個模塊的功能要

8、求,分別有以下一些不同的設計方案:1.4.1溫度傳感模塊方案一:接受熱敏電阻,熱敏電阻精度、重復性、牢靠性較差,對于檢測1攝氏度的信號是不適用的,也不能滿足測量范圍。在溫度測量系統(tǒng)中,也常接受單片溫度傳感器,比如AD590,LM35等。但這些芯片輸出的都是模擬信號,必需經(jīng)過A/D轉換后才能送給計算機,這樣就使測溫系統(tǒng)的硬件結構較簡單。另外,這種測溫系統(tǒng)難以實現(xiàn)多點測溫,也要用到簡單的算法,肯定程度上也增加了軟件實現(xiàn)的難度。 方案二:接受單總線數(shù)字溫度傳感器DS18B20測量溫度,直接輸出數(shù)字信號。便于單片機處理及把握,節(jié)省硬件電路。且該芯片的物理化學性很穩(wěn)定,此元件線形性能好,在0100攝氏度

9、時,最大線形偏差小于1攝氏度。DS18B20的最大特點之一接受了單總線的數(shù)據(jù)傳輸,由數(shù)字溫度計DS18B20和微把握器AT89C51構成的溫度裝置,它直接輸出溫度的數(shù)字信號到微把握器。每只DS18B20具有一個獨有的不行修改的64位序列號,依據(jù)序列號可訪問不同的器件。這樣一條總線上可掛接多個DS18B20傳感器,實現(xiàn)多點溫度測量,輕松的組建傳感網(wǎng)絡。 綜上分析,我選用其次種方案。圖1.2 溫度傳感模塊仿真圖1.4.2顯示模塊 方案一:接受8位段數(shù)碼管,將單片機得到的數(shù)據(jù)通過數(shù)碼管顯示出來。該方案簡潔易行,但所需的元件較多,且不簡潔進行操作,可讀性差,一旦設定后很難再加入其他的功能,顯示格式受限

10、制,且大耗電量大,不宜用電池給系統(tǒng)供電。 方案二:接受液晶顯示器件,液晶顯示平穩(wěn)、省電、美觀,更簡潔實現(xiàn)題目要求,對后續(xù)的園藝通兼容性高,只需將軟件作修改即可,可操作性強,也易于讀數(shù),接受RT1602兩行十六個字符的顯示,能同時顯示其它的信息如日期、時間、星期、溫度。 綜上分析,我們接受了其次個方案圖1.3 顯示模塊仿真圖2系統(tǒng)概述2.1系統(tǒng)的總體設計方案 8255PCD 微機系統(tǒng) 接受AT89S52單片機作為把握核心對溫度傳感器DS18B20把握,讀取溫度信號并進行計算處理,并送到液晶顯示器LCD1602顯示。 依據(jù)系統(tǒng)設計功能的要求,確定系統(tǒng)由3個模塊組成:主把握器、測溫電路和顯示電路。數(shù)

11、字溫度計總體電路結構框圖如圖2.1下所示。 DS18B20顯示電路圖2.1 總體電路結構框圖2.2硬件電路設計2.2.1單片機把握模塊該模塊由AT89C51單片機組成在設計方面,AT89C51的EA接高電平,其外圍電路供應能使之工作的晶振脈沖、復位按鍵,四個I/O分別接8路的單列IP座便利與外圍設備連接。 當AT89C51芯片接到來自溫度傳感器的信號時,其內(nèi)部程序將依據(jù)信號的類型進行處理,并且將處理的結果送到顯示模塊,發(fā)送把握信號把握各模塊。2.2.2溫度傳感器模塊圖2.2 DS18B20 2.2.2.1 DS18B20原理與分析 DS18B20是美國DALLAS半導體公司繼DS1820之后最

12、新推出的一種改進型智能溫度傳感器。與傳統(tǒng)的熱敏電阻相比,它能夠直接讀出被測溫度并且可依據(jù)實際要求通過簡潔的編程實現(xiàn)912位的數(shù)字值讀數(shù)方式。可以分別在93.75 ms和750 ms內(nèi)完成9位和12位的數(shù)字量,并且從DS18B20讀出的信息或寫入DS18B20的信息僅需要一根口線(單線接口)讀寫,溫度變換功率來源于數(shù)據(jù)總線,總線本身也可以向所掛接的DS18B20供電,而無需額外電源。因而使用DS18B20可使系統(tǒng)結構更趨簡潔,牢靠性更高。他在測溫精度、轉換時間、傳輸距離、辨別率等方面較DS1820有了很大的改進,給用戶帶來了更便利的使用和更令人滿足的效果。 以下是DS18B20的特點: (1)獨

13、特的單線接口方式:DS18B20與微處理器連接時僅需要一條口線即可實現(xiàn)微處理器與DS18B20的雙向通訊。 (2)在使用中不需要任何外圍元件。 (3)可用數(shù)據(jù)線供電,電壓范圍:+3.0+5.5 V。 (4)測溫范圍:-55 - +125 。固有測溫辨別率為0.5 。 (5)通過編程可實現(xiàn)9-12位的數(shù)字讀數(shù)方式。 (6)用戶可自設定非易失性的報警上下限值。 (7)支持多點組網(wǎng)功能,多個DS18B20可以并聯(lián)在惟一的三線上,實現(xiàn)多點測溫。 (8)負壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作。 圖2.3 DS18B20的測溫原理2.2.2.2 DS18B20的測溫原理 DS18

14、B20的測溫原理如圖2.3所示,圖2.3低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號送給減法計數(shù)器1,高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯轉變,所產(chǎn)生的信號作為減法計數(shù)器2的脈沖輸入,圖2.3還隱含著計數(shù)門,當計數(shù)門打開時,DS18B20就對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖后進行計數(shù),進而完成溫度測量。計數(shù)門的開啟時間由高溫度系數(shù)振蕩器來打算,每次測量前,首先將-55 所對應的基數(shù)分別置入減法計數(shù)器1和溫度寄存器中,減法計數(shù)器1和溫度寄存器被預置在 -55 所對應的一個基數(shù)值。減法計數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行減法計數(shù),當減法計數(shù)器1的預置值減到0時溫度寄存

15、器的值將加1,減法計數(shù)器1的預置將重新被裝入,減法計數(shù)器1重新開頭對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行計數(shù),如此循環(huán)直到減法計數(shù)器2計數(shù)到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值即為所測溫度。圖中的斜率累加器用于補償和修正測溫過程中的非線性,其輸出用于修正減法計數(shù)器的預置值,只要計數(shù)門仍未關閉就重復上述過程,直至溫度寄存器值達到被測溫度值,這就是DS18B20的測溫原理。 另外,由于DS18B20單線通信功能是分時完成的,他有嚴格的時隙概念,因此讀寫時序很重要。系統(tǒng)對DS18B20的各種操作必需按協(xié)議進行。操作協(xié)議為:初始化DS18B20(發(fā)復位脈沖)發(fā)ROM功能命令發(fā)存儲器操作命令

16、處理數(shù)據(jù)。 DS18B20工作過程一般遵循以下協(xié)議:初始化ROM操作命令存儲器操作命令處理數(shù)據(jù) 初始化 單總線上的全部處理均從初始化序列開頭。初始化序列包括總線主機發(fā)出一復位脈沖,接著由從屬器件送出存在脈沖。存在脈沖讓總線把握器知道DS1820 在總線上且已預備好操作。 ROM操作命令 一旦總線主機檢測到從屬器件的存在,它便可以發(fā)出器件ROM操作命令之一。全部ROM操作命令均為8位長。這些命令如下: Read ROM(讀ROM)33h 此命令允許總線主機讀DS18B20的8位產(chǎn)品系列編碼,唯一的48位序列號,以及8位的CRC。此命令只能在總線上僅有一個DS18B20的狀況下可以使用。假如總線上

17、存在多于一個的從屬器件,那么當全部從片企圖同時發(fā)送時將發(fā)生數(shù)據(jù)沖突的現(xiàn)象(漏極開路會產(chǎn)生線與的結果)。 Match ROM( 符合ROM)55h 此命令后繼以64位的ROM數(shù)據(jù)序列,允許總線主機對多點總線上特定的DS1尋址。只有與64位ROM序列嚴格相符的DS18B20才能對后繼的存貯器操作命令作出響應。全部與64位ROM序列不符的從片將等待復位脈沖。此命令在總線上有單個或多個器件的狀況下均可使用。 Skip ROM( 跳過ROM )CCh 在單點總線系統(tǒng)中,此命令通過允許總線主機不供應64位ROM編碼而訪問存儲器操作來節(jié)省時間。假如在總線上存在多于一個的從屬器件而且在Skip ROM命令之后

18、發(fā)出讀命令,那么由于多個從片同時發(fā)送數(shù)據(jù),會在總線上發(fā)生數(shù)據(jù)沖突(漏極開路下拉會產(chǎn)生線與的效果)。 Search ROM( 搜尋ROM)F0h 當系統(tǒng)開頭工作時,總線主機可能不知道單線總線上的器件個數(shù)或者不知道其64位ROM編碼。搜尋ROM命令允許總線把握器用排解法識別總線上的全部從機的64位編碼。 Alarm Search(告警搜尋)ECh 此命令的流程與搜尋ROM命令相同。但是,僅在最近一次溫度測量消滅告警的狀況下,DS18B20才對此命令作出響應。告警的條件定義為溫度高于TH 或低于TL。只要DS18B20一上電,告警條件就保持在設置狀態(tài),直到另一次溫度測量顯示出非告警值或者轉變TH或T

19、L的設置,使得測量值再一次位于允許的范圍之內(nèi)。貯存在EEPROM內(nèi)的觸發(fā)器值用于告警。 存儲器操作命令 Write Scratchpad(寫暫存存儲器)4Eh 這個命令向DS18B20的暫存器中寫入數(shù)據(jù),開頭位置在地址2。接下來寫入的兩個字節(jié)將被存到暫存器中的地址位置2和3??梢栽谌魏螘r刻發(fā)出復位命令來中止寫入。 Read Scratchpad(讀暫存存儲器)BEh 這個命令讀取暫存器的內(nèi)容。讀取將從字節(jié)0開頭,始終進行下去,直到第9(字節(jié)8,CRC)字節(jié)讀完。假如不想讀完全部字節(jié),把握器可以在任何時間發(fā)出復位命令來中止讀取。 Copy Scratchpad(復制暫存存儲器)48h 這條命令把

20、暫存器的內(nèi)容拷貝到DS18B20的E2存儲器里,即把溫度報警觸發(fā)字節(jié)存入非易失性存儲器里。假如總線把握器在這條命令之后跟著發(fā)出讀時間隙,而DS18B20又正在忙于把暫存器拷貝到E2存儲器,DS18B20就會輸出一個“0”,假如拷貝結束的話,DS18B20 則輸出“1”。假如使用寄生電源,總線把握器必需在這條命令發(fā)出后馬上起動強上拉并最少保持10ms。 Convert T(溫度變換)44h 這條命令啟動一次溫度轉換而無需其他數(shù)據(jù)。溫度轉換命令被執(zhí)行,而后DS18B20保持等待狀態(tài)。假如總線把握器在這條命令之后跟著發(fā)出讀時間隙,而DS18B20又忙于做時間轉換的話,DS18B20將在總線上輸出“0

21、”,若溫度轉換完成,則輸出“1”。假如使用寄生電源,總線把握器必需在發(fā)出這條命令后馬上起動強上拉,并保持500ms。 Recall E2(重新調(diào)整E2)B8h 這條命令把貯存在E2中溫度觸發(fā)器的值重新調(diào)至暫存存儲器。這種重新調(diào)出的操作在對DS18B20上電時也自動發(fā)生,因此只要器件一上電,暫存存儲器內(nèi)就有了有效的數(shù)據(jù)。在這條命令發(fā)出之后,對于所發(fā)出的第一個讀數(shù)據(jù)時間片,器件會輸出溫度轉換忙的標識:“0”=忙,“1”=預備就緒。 Read Power Supply(讀電源)B4h 對于在此命令發(fā)送至DS18B20之后所發(fā)出的第一讀數(shù)據(jù)的時間片,器件都會給出其電源方式的信號:“0”=寄生電源供電,

22、“1”=外部電源供電。 處理數(shù)據(jù) DS18B20的高速暫存存儲器由9個字節(jié)組成,其安排如表2.1所示。當溫度轉換命令發(fā)布后,經(jīng)轉換所得的溫度值以二字節(jié)補碼形式存放在高速暫存存儲器的第0和第1個字節(jié)。單片機可通過單線接口讀到該數(shù)據(jù),讀取時低位在前,高位在后。表2.1 DS18B20溫度數(shù)據(jù)表表2.1是DS18B20溫度采集轉化后得到的12位數(shù)據(jù),存儲在DS18B20的兩個8比特的RAM中,二進制中的前面5位是符號位,假如測得的溫度大于或等于0,這5位為0,只要將測到的數(shù)值乘于0.0625即可得到實際溫度;假如溫度小于0,這5位為1,測到的數(shù)值需要取反加1再乘于0.0625即可得到實際溫度。 溫度

23、轉換計算方法舉例: 例如當DS18B20采集到+125的實際溫度后,輸出為07D0H,則:實際溫度=07D0H*0.0625=2000*0.0625=1250C。 例如當DS18B20采集到-55的實際溫度后,輸出為FC90H,則應先將11位數(shù)據(jù)位取反加1得370H(符號位不變,也不作為計算),則: 實際溫度=370H*0.0625=880*0.0625=550C。 2.2.2.3顯示模塊LCD1602資料(這里主要介紹下指令說明準時序)表2.2 1602液晶模塊內(nèi)部的把握器把握指令序號指令RSR/WD7D6D5D4D3D2D1D01清顯示00000000012光標返回000000001*3置

24、輸入模式00000001I/DS4顯示開/關把握0000001DCB5光標或字符移位000001S/CR/L*6置功能00001DLNF*7置字符發(fā)生存貯器地址0001字符發(fā)生存貯器地址8置數(shù)據(jù)存貯器地址001顯示數(shù)據(jù)存貯器地址9讀忙標志或地址01BF計數(shù)器地址10寫數(shù)到CGRAM或DDRAM)10要寫的數(shù)據(jù)內(nèi)容11從CGRAM或DDRAM讀數(shù)11讀出的數(shù)據(jù)內(nèi)容1602液晶模塊的讀寫操作、屏幕和光標的操作都是通過指令編程來實現(xiàn)的。(說明:1為高電平、0為低電平)指令1:清顯示,指令碼01H,光標復位到地址00H位置。指令2:光標復位,光標返回到地址00H。指令3:光標和顯示模式設置 I/D:光

25、標移動方向,高電平右移,低電平左移 S:屏幕上全部文字是否左移或者右移。高電平表示有效,低電平則無效。指令4:顯示開關把握。 D:把握整體顯示的開與關,高電平表示開顯示,低電平表示關顯示 C:把握光標的開與關,高電平表示有光標,低電平表示無光標 B:把握光標是否閃爍,高電平閃爍,低電平不閃爍。指令5:光標或顯示移位 S/C:高電平常移動顯示的文字,低電平常移動光標。指令6:功能設置命令 DL:高電平常為4位總線,低電平常為8位總線 N:低電平常為單行顯示,高電平常雙行顯示 F: 低電平常顯示5x7的點陣字符,高電平常顯示5x10的點陣字符。指令7:字符發(fā)生器RAM地址設置。指令8:DDRAM地

26、址設置。指令9:讀忙信號和光標地址 BF:為忙標志位,高電平表示忙,此時模塊不能接收命令或者數(shù)據(jù),假如為低電平表示不忙。指令10:寫數(shù)據(jù)。指令11:讀數(shù)據(jù)。表2.3 與HD44780相兼容的芯片時序讀狀態(tài)輸入RS=L,R/W=H,E=H輸出D0D7=狀態(tài)字寫指令輸入RS=L,R/W=L,D0D7=指令碼,E=高脈沖輸出無讀數(shù)據(jù)輸入RS=H,R/W=H,E=H輸出D0D7=數(shù)據(jù)寫數(shù)據(jù)輸入RS=H,R/W=L,D0D7=數(shù)據(jù),E=高脈沖輸出無圖2.4 讀操作時序圖2.5 寫操作時序3軟件設計系統(tǒng)程序主要包括主程序、讀出溫度子程序、溫度轉換子程序、計算溫度子程序、顯示等等。 3.1主程序主要功能是完

27、成DS18B20的初始化工作,并進行讀溫度,將溫度轉化成為壓縮BCD碼 并在顯示器上顯示傳感器所測得的實際溫度。3.2讀出溫度子程序讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時需要進行CRC校驗,校驗有錯時不進行溫度數(shù)據(jù)的改寫。其程序流程圖如圖3.1。圖3.1 DS18B20的初始化流程3.3溫度轉換命令子程序發(fā)DS18B20復位命令溫度轉換命令子程序主要是發(fā)溫度轉換開頭命令,當接受12位分辯率時轉換時間約為750ms,在本程序設計中接受1s顯示程序延時法等待轉換的完成。流程圖如圖3.2 發(fā)跳過ROM命令 圖3.2 延時流程圖發(fā)溫度轉換開頭命令結束3.4計算溫度子程序計算溫度子程序

28、將RAM中讀取值進行BCD碼的轉換運算,并進行溫度值正負的判定。流程圖如圖3.3。圖3.3 正負溫度判定流程圖4系統(tǒng)測試4.1設計中的問題通過這次基于DS18B20傳感器測量溫度的設計,我學到了不少新的學問。首先,這次設計讓我把書本上學到的理論學問轉化成為現(xiàn)實生活中有價值的實物。假如沒有這次設計為我 搭建的平臺,我就不能對書本上的學問進行很好的理解,也不能嫻熟的把它們應用到現(xiàn)實生活中。還有,我們學會不能手高眼低,要踏踏實實,從基礎學起、做起。但是,具體到設計時,我遇到了很多問題。1. 如何將傳感器得到的溫度轉換成為對應的電信號;2. 如何將電信號輸送到單片機進行把握;3. 如何把測得的溫度用數(shù)

29、字顯示出來。4.2系統(tǒng)改進設想本次基于單片機的溫度監(jiān)測系統(tǒng)的設計我感覺最大的缺陷就是沒有加入溫度上下限報警系統(tǒng)的設計,聯(lián)系實際在程序中默認設置系統(tǒng)的下限溫度為零下三十攝氏度。改進設想如下:1. 在硬件方面應當加上一個蜂鳴器和三個按鈕分別為溫度“+”、溫度“”和“確定”,依據(jù)不同的監(jiān)測環(huán)境的要求用三個按鈕來設置具體的上限溫度;2. 在軟件方面分別加上設置系統(tǒng)默認下限溫度的代碼、依據(jù)不同的環(huán)境設置系統(tǒng)上限溫度的代碼、當達到上限溫度是蜂鳴器就報警的代碼。參考文獻1梁森,歐陽三泰,王侃夫. 自動檢測技術及應用M.北京:機械工業(yè)出版社.2012(2).2萬隆.單片機原理及應用技術.M.北京:清華高校出版

30、社.2010.3李朝青.單片機原理及接口技術(簡明修訂版).M.杭州:北京航空航天高校出版社.2013(4).4李廣弟.單片機基礎M.北京:北京航空航天高校出版社.2007(3). 5康華光.數(shù)字電子技術基礎(第四版)M.北京:高等教育出版社.2008(5)6 張希影.基于74LS595驅動的溫度顯示器設計J.微型計算機應用,2013,32(23):83-89.7馮若曄,沈大偉,祖靜.基于ARM微處理器LPC2148的LED溫度顯示器設計J.電子測試,2010,23(10):60-63.8洪連環(huán).基于Proteus的液晶溫度顯示器仿真設計J.電子設計工程,2011,19(5):186-189.

31、9張志奎,劉強.淺析溫度計位置對測溫的影響J.變壓器,2012,49(11):46-47.10郭天祥. 51單片機C語言教程M.北京:電子出版社. 2009(3).11周鵬. 基于STC89C52單片機的溫度檢測系統(tǒng)設計J. 現(xiàn)代電子技術,2012,35(22):10-13.附錄附錄A:仿真總體電路圖附錄B:程序源代碼#include typedef unsigned char uint8;#define uint unsigned int#define uchar unsigned charsbit DQ = P33; / 定義DQ引腳為P3.3uchar code Bw10= 0x30,0

32、x31,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=Temperature:;void delay(uint xms

33、)uint i,j;for(i=xms;i0;-i)for(j=110;j0;-j);void Delayus(int t) /在11.059MHz的晶振條件下調(diào)用本函數(shù)需要24s ,然后每次計數(shù)需16s int s; for (s=0; st;s+);void wait(void)/ 等待繁忙標志P0 = 0xFF;doRS = 0;RW = 1;EN = 0;EN = 1;while (BUSY = 1);EN = 0;void w_dat(uint8 dat)/ 寫數(shù)據(jù)wait();EN = 0;P0 = dat;RS = 1;RW = 0;EN = 1;EN = 0;void w_cm

34、d(uint8 cmd)/ 寫命令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點陣,8位數(shù)據(jù)接口w_cmd(0x0c); / 顯示器開、光標開、光標允許閃爍w_cmd(0x06); / 文字不動,光標自動右移w_cmd(0x01); /

35、 清屏uchar Reset()/完成單總線的復位操作。 uchar d; DQ = 0; / 將 DQ 線拉低 Delayus(29); / 保持 480s .復位時間為480s,因此延時時間為(480-24)/16 = 28.5,取29s。 DQ = 1; / DQ返回高電平 Delayus(3); / 等待存在脈沖.經(jīng)過70s之后檢測存在脈沖,因此延時時間為(70-24)/16 = 2.875,取3s。 d = DQ; / 獲得存在信號 Delayus(25); / 等待時間隙結束 return(d); / 返回存在信號,0 = 器件存在, 1 = 無器件void write_bit(uchar bitval)/向單總線寫入1位值:bitval DQ = 0; / 將DQ 拉低開頭寫時間隙 if(bitval=1) DQ =1; / 假如寫1,DQ 返回高電平 Delayus(5);/ 在時間隙內(nèi)保持電平值, DQ = 1; / Delay

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論