久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 28310|回復: 6
打印 上一主題 下一主題
收起左側(cè)

基于單片機的數(shù)字溫度計設計論文

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:327868 發(fā)表于 2018-5-12 09:37 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
設計(論文)題目:
基于單片機的數(shù)字溫度計設計

摘 要
隨著現(xiàn)代工農(nóng)業(yè)技術的發(fā)展及人們對生活環(huán)境要求的提高,人們在生活的許多方面都有著對溫度進行感知和控制的需要。而傳統(tǒng)的溫度計由于各種原因,精度不能達到我們預期的效果,隨著現(xiàn)代微電子及信息科學的發(fā)展,數(shù)字溫度計無疑成為溫度計設計的最有效方案。
本文是介紹基于單片機的數(shù)字溫度計的設計,該溫度計由中央控制器、溫度檢測器、顯示器及報警部分組成。該溫度計的基本范圍為-50℃-110℃,精度誤差小于0.5℃,LCD液晶顯示器直接讀取溫度值顯示,當測量溫度超出報警門限時,系統(tǒng)將輸出光報警信號。
本文主要包括兩個方面的設計:一方面是硬件電路的設計,另一方面是系統(tǒng)程序的設計。其中,硬件電路各部分組成如下:中央控制器采用單片機AT89S51,溫度檢測部分采用DS18B20溫度傳感器,用LCD液晶1602作為顯示器。其次,系統(tǒng)軟件程序包括主程序,溫度值讀取、轉(zhuǎn)換及計算程序,顯示數(shù)據(jù)刷新程序等。
該溫度計整體功能的實現(xiàn)是通過溫度傳感器DS18B20采集溫度信號送該給單片機處理,單片機再把溫度數(shù)據(jù)送液晶顯示器1602顯示。

目  錄
前  言
第一章  數(shù)字溫度計的總體方案設計及論證
第二章  數(shù)字溫度計硬件電路的實現(xiàn)
第一節(jié)  復位電路及晶振電路設計
一、復位電路
二、晶振電路
第二節(jié)  溫度傳感器設計
一、概述
二、DS18B20的外形及內(nèi)部結構
三、DS18B20工作原理
四、DS18B20 溫度測量通信協(xié)議
五、DS18B2的外部電路圖
第三節(jié)  液晶顯示電路設計
一、1602的引腳功能介紹
二、1602的標準字庫
三、1602液晶模塊內(nèi)部的控制指令
四、1602的外部電路圖
第三章  數(shù)字溫度計軟件設計流程及程序
第一節(jié) 主程序設計
第二節(jié) 溫度值讀取程序設計
一、DS18B20的延時程序
二、DS18B20的初始化程序
三、DS18B20的讀時序程序
四、DS18B20的寫時序程序
第三節(jié) 計算溫度程序設計
第四節(jié)  顯示數(shù)據(jù)及刷新程序設計
第四章 程序調(diào)試
結  論
結束語
參考文獻
附  件
一、英文原文
二、英文翻譯
三、工程設計圖紙
四、源程序
    五、教學檔案

前  言

  信息科學和微電子技術的飛速發(fā)展給控制領域帶來了巨大的飛躍,控制技術更加趨向自動化和智能化,為無數(shù)的使用者帶來了方便。在控制領域里,溫度是一個常見的名詞,然而它所帶來的技術問題和所起的作用卻是非同一般的。在控制領域中,對溫度的控制有著舉足輕重的作用。例如陶瓷的燒烤,只有控制住溫度的適度,才能制作出一件完美的藝術品,否則只是一件廢品;還有如釀酒的過程,也需要對溫度進行控制。可見,在生活的許多方方面面都有著對溫度進行感知和控制的需要。

溫度是一個十分重要的物理量,對它的測量與控制有十分重要的意義。隨著現(xiàn)代工農(nóng)業(yè)技術的發(fā)展及人們對生活環(huán)境要求的提高,人們也迫切需要檢測與控制溫度。在人類的生活環(huán)境中,溫度扮演著極其重要的角色。無論你生活在哪里,從事什么工作,無時無刻不在與溫度打著交道。在冶金、鋼鐵、石化、水泥、玻璃、醫(yī)藥等等行業(yè),可以說幾乎80%的工業(yè)部門都不得不考慮著溫度的因素。溫度對于工業(yè)如此重要,由此推進了溫度傳感器的發(fā)展。   

測量溫度的基本方法是使用溫度計直接讀取溫度。最常見到的測量溫度的工具是各種各樣的溫度計,例如,水銀玻璃溫度計,酒精溫度計,熱電偶或熱電阻溫度計等。它們常常以刻度的形式表示溫度的高低,人們必須通過讀取刻度值的多少來測量溫度。而在傳統(tǒng)的模擬信號溫度測量系統(tǒng)中,測溫電路的電磁環(huán)境非常惡劣,各種干擾信號較強,模擬溫度信號容易受到干擾而產(chǎn)生測量誤差,影響測量精度,不能滿足數(shù)字化時代的需求。利用單片機和溫度傳感器構成的電子式智能溫度計精度高、抗干擾能力強,可擴展性強、集成方便得到了廣泛的應用。而且可以直接測量溫度,得到溫度的數(shù)字值,既簡單方便,又直觀準確,新型數(shù)字溫度傳感器是溫度計設計的最有效方案。

本課題就是一個對溫度進行檢測,采集和顯示的溫度檢測系統(tǒng)。它以單片機(AT89S51)為主要控制器件,DS18B20為溫度傳感器,并通過LCD液晶1602直接顯示所測溫度的新型數(shù)字溫度計。由于本人所學知識有限,設計過程中難免會出現(xiàn)錯誤,還請各位老師指正。


第一章  數(shù)字溫度計的總體方案設計及論證

根據(jù)系統(tǒng)設計的功能,本時鐘溫度系統(tǒng)的設計必須采用單片機軟件系統(tǒng)實現(xiàn),用單片機的自動控制能力來測量、顯示溫度數(shù)值。

初步確定設計系統(tǒng)由單片機主控模塊、測溫模塊、顯示模塊、報警模塊共4個模塊組成,電路系統(tǒng)框圖如圖1.1所示。

圖1.1 系統(tǒng)基本方框圖

對于單片機的選擇,如果用8051系列,由于它沒有內(nèi)部RAM,系統(tǒng)又需要一定的內(nèi)存存儲數(shù)據(jù)。AT89S51是一個低功耗、高性能CMOS 8位的單片機,片內(nèi)含8k Bytes ISP的可反復擦寫1000次的Flash只讀程序存儲器,兼容標準MCS-51指令系統(tǒng)及80C51引腳結構,功能強大的AT89S51可為許多嵌入式控制應用系統(tǒng)提供高性價比的解決方案。而AT89S51與AT89C51相比,外型管腳完全相同,AT89C51的HEX程序無須任何轉(zhuǎn)換可直接在AT89S51運行,且AT89S51比AT89C51新增了一些功能,相比較后,在本設計中選用AT89S51更能很好的實現(xiàn)溫度計控制功能。

測溫電路可以使用熱敏電阻之類的器件,利用其感溫效應,將被測溫度變化的電壓或電流采集過來,進行A/D轉(zhuǎn)換后,就可以用單片機進行數(shù)據(jù)處理。但是這種感溫電路比較復雜,且采用熱敏電阻精度低,重復性、可靠性都比較差。

如果采用溫度傳感器DS18B20可以減少外部硬件電路,而且可以很容易直接讀取被測溫度值,進而轉(zhuǎn)換,還可以在高溫報警,且成本低、易使用,可以很好的滿足設計要求。所以本文采用傳感器DS18B20代替?zhèn)鹘y(tǒng)的測溫電路。

溫度的顯示可以采用LED數(shù)碼管來顯示,LED亮度高、醒目,但是電路復雜,占用資

源多且信息量小。而采用液晶顯示器有明顯的優(yōu)點:工作電流比LED小幾個數(shù)量級,功耗低;尺寸小,厚度約為LED的1/3;字跡清晰、美觀、使人舒服;壽命長,使用方便,可得性強。故本設計采用LCD來顯示溫度。

第二章  數(shù)字溫度計硬件電路的實現(xiàn)
第一節(jié)  復位電路及晶振電路設計

根據(jù)方案的設計,系統(tǒng)硬件電路主要由主控單片機AT80S51、溫度傳感器DS18B20、液晶顯示器1602等組成。

影響單片機系統(tǒng)運行穩(wěn)定性的內(nèi)部因素包括復位電路和振蕩源的穩(wěn)定性,振蕩源的穩(wěn)定性主要由起振時間、頻率穩(wěn)定度和占空比穩(wěn)定度決定,起振時間可由電路參數(shù)整定,穩(wěn)定度受振蕩器類型、溫度和電壓等參數(shù)影響。

一、復位電路

復位電路的基本功能是:系統(tǒng)上電時提供復位信號,直至系統(tǒng)電源穩(wěn)定后,撤銷復位信號。在本系統(tǒng)中,上電復位采用電平方式開關復位,具體電路如圖2.1所示。上電復位采用RC電路,其中電容為10F,電阻為10K

二、晶振電路

單片機系統(tǒng)里晶振的作用非常大,它結合單片機內(nèi)部的電路,產(chǎn)生單片機所必須的時鐘頻率,單片機的一切指令的執(zhí)行都是建立在這個基礎上的,晶振提供的十種頻率越高,單片機運行的速度也就越快。單片機的晶振頻率應低于40MHZ,本設計中采用的晶振頻率為12MHZ,具體電路如2.2所示,在晶振上并聯(lián)兩個30F電容。



第二節(jié)  溫度傳感器設計

一、概述
    DS18B20溫度傳感器是一種改進型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據(jù)實際要求通過簡單的編程實現(xiàn)9~12位的數(shù)字值讀數(shù)方式。DS18B20的性能特點如下:
    ①獨特的單線接口僅需要一個端口引腳進行通信;
    ②多個DS18B20可以并聯(lián)在惟一的三線上,實現(xiàn)多點組網(wǎng)功能;
    ③無須外部器件;
    ④可通過數(shù)據(jù)線供電,電壓范圍為3.0~5.5V;
    ⑤零待機功耗;
    ⑥溫度以9或12位數(shù)字;
    ⑦用戶可定義報警設置;
    ⑧報警搜索命令識別并標志超過程序限定溫度(溫度報警條件)的器件;
    ⑨負電壓特性,電極接反時,溫度計不會因發(fā)熱而燒毀,只是不能正常工作

二、DS18B20的外形及內(nèi)部結構

1DS18B20引腳定義及電源工作方式

DS18B20的外形及引腳如圖2.3所示。

DS18B20引腳功能的詳細描述如表2.1所示。

DS18B20的電源供電方式有兩種,一種為寄生電源供電方

式,另一種為外部電源工作方式。其中,在寄生電源供電方式

下,DS18B20從單線信號線上汲取能量:在信號線DQ處于高電

平期間把能量儲存在內(nèi)部電容里,在信號線處于低電平期間消耗

電容上的電能工作,直到高電平到來再給寄生電源(電容)充電。   圖2.3 DS18B20的引腳

其具體電路如圖2.4。

                                                



表2.1  DS18B20詳細引腳功能描述圖
名稱
引腳功能描述
GND
地信號
DQ
數(shù)據(jù)輸入/輸出引腳。開漏單總線接口引腳。當被用在寄生電源下,可以向器件提供電源。
VDD
可選擇的VDD引腳。當工作于寄生電源時,此引腳必須接地。


                                         

圖2.4 寄生電源工作方式

DS18B20獨特的寄生電源方式有如下三個好處:
     ①進行遠距離測溫時,無需本地電源;
     ②可在沒有常規(guī)電源的條件下讀取ROM;
     ③電路更簡潔,僅用一根I/O口實現(xiàn)測溫
     要使DS18B20進行精確的溫度轉(zhuǎn)換,I/O線必須保證在溫度轉(zhuǎn)換期間提供足夠的能量,由于每個DS18B20在溫度轉(zhuǎn)換期間工作電流要達到1mA,當幾個溫度傳感器掛在同一根I/O線上進行多點測溫時,只靠4.7K上拉電阻就無法提供足夠的能量,會造成無法轉(zhuǎn)換溫度或溫度誤差大。
    因此,圖2.4的寄生電源電路只適應于單一溫度傳感器測溫情況下使用,不適宜采用電池供電系統(tǒng)中。并且工作電源VCC必須保證在5V,當電源電壓下降時,寄生電源能夠汲取的能量也降低,會使溫度誤差變大。
    DS18B20外部電源供電方式如圖2.5所示,其工作電源由VDD引腳接入,此時I/O線不需要強上拉,不存在電源電流不足的問題,可以保證轉(zhuǎn)換精度,同時在總線理論上可以掛接任意多個DS18B20傳感器,組成多點測溫系統(tǒng)。注意:在外部供電的方式下,DS18B20的GND引腳不能懸空,否則不能轉(zhuǎn)換溫度,讀取的溫度總是85℃。

外部電源供電方式是DS18B20最佳的工作方式,工作穩(wěn)定可靠,抗干擾能力強,而且電路也比較簡單,本設計中使用外部電源供電方式。在外接電源方式下,可以充分發(fā)揮DS18B20寬

電源電壓范圍的優(yōu)點,即使電源電壓VCC降到3V時,依然能夠保證溫度量精度。

圖2.5 外部電源工作方式

2、DS18B20內(nèi)部結構

DS18B20內(nèi)部結構如圖2.6,它主要由四部分組成:64位光刻ROM、溫度傳感器、存儲器、非揮發(fā)的溫度報警觸發(fā)器TH和TL。


圖2.6 DS18B20內(nèi)部結構圖

(1)光刻ROM

光刻ROM中的64位序列號是出廠前被光刻好的,它可以看作是該DS18B20的地址序列碼。64位光刻ROM的排列是:開始8位(28H)是產(chǎn)品類型標號,接著的48位是該DS18B20自身的序列號,最后8位是前面56位的循環(huán)冗余校驗碼(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一個DS18B20都各不相同,這樣就可以實現(xiàn)一根總線上掛接多個DS18B20的目的。

2)、溫度傳感器

DS18B20中的溫度傳感器可完成對溫度的測量,以12位轉(zhuǎn)化為例:用16位符號擴展的二進制補碼讀數(shù)形式提供,以0.0625℃/LSB形式表達,其中S為符號位,12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲在DS18B20的兩個8比特的RAM中。DS18B20溫度值格式如二進制表2.2所示,其中,前5位是符號位,如果測得的溫度大于0,這5位為0,只要將測得的數(shù)值乘以0.0625即可得到實際溫度;如果溫度小于0,這5位為1,測到的數(shù)值需要取反加1再乘于 0.0625即可得到實際溫度。

例如+125℃的數(shù)字輸出為07D0H,+25.0625℃的數(shù)字輸出為0191H,-25.0625℃的數(shù)字輸出為FF6FH,-55℃的數(shù)字輸出為FC90H。

表2.2 DS18B20溫度值格式表

LSB

MSB          (unit=℃)             LSB

S

S

S

S

S

MSB



3)、DS18B20存儲器

DS18B20溫度傳感器的內(nèi)部存儲器包括一個高速暫存RAM和一個非易失性的可電擦除的EEPRAM,后者存放高溫度和低溫度觸發(fā)器的TH、TL。

配置寄存器
DS18B20配置寄存器各字節(jié)意義如表2.3下:

表2.3  DS18B20寄存器中各位內(nèi)容

BIT7

BIT6

BIT5

BIT4

BIT3

BIT2

BIT1

BIT0

TM

R1

RO

1

1

1

1

1

其中,低五位一直都是"1",TM是測試模式位,用于設置DS18B20在工作模式還是在測試模式。在DS18B20出廠時該位被設置為0,用戶不要去改動。其中,R1和R0用來設置分辨率,具體設置如表2.4所示:(DS18B20出廠時被設置為12位)。

表2.4 溫度分辨率設置表

RR1

RRO

分辨率

溫度最大轉(zhuǎn)換時間

00

00

99位

93.75ms

00

11

110位

187.5ms

11

00

111位

375ms

11

11

112位

750ms



、高速暫存存儲器
     高速暫存存儲器由9個字節(jié)組成,其分配如表2.5所示。當溫度轉(zhuǎn)換命令發(fā)布后,經(jīng)轉(zhuǎn)換所得的溫度值以二進制補碼形式存放在高速暫存存儲器的第0和第1個字節(jié)。單片機可通過單線接口讀到該數(shù)據(jù),讀取時低位在前,高位在后,數(shù)據(jù)格式如表2.2所示。對應的溫度計算:當符號位S=0時,直接將二進制位轉(zhuǎn)換為十進制;當S=1時,先將補碼變?yōu)樵a,再計算十進制值。第九個字節(jié)是冗余檢驗字節(jié)。

表2.5 DS18B20暫存寄存器分布

寄存器內(nèi)容

字節(jié)地址

溫度值低位(LS Byte)

0

溫度值高位(MS Byte)

1

高溫限值(TH)

2

低溫限值(TL)

3

配置寄存器

4

保留

5

保留

6

保留

7

CRC校驗值

8



三、DS18B20工作原理
DS18B20溫度值的位數(shù)因分辨率不同而不同,溫度轉(zhuǎn)換時的最大延時為750msDS18B20測溫原理如圖2.7所示。圖中低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號送給計數(shù)器1。高溫度系數(shù)晶振隨溫度變化其振蕩率明顯改變,所產(chǎn)生的信號作為計數(shù)器2的脈沖輸入。計數(shù)器1和溫度寄存器被預置在-55℃所對應的一個基數(shù)值。計數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行減法計數(shù),當計數(shù)器1的預置值減到0時,溫度寄存器的值將加1,計數(shù)器1的預置將重新被裝入,計數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行計數(shù),如此循環(huán)直到計數(shù)器2計數(shù)到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值即為所測溫度。圖中的斜率累加器用于補償和修正測溫過程中的非線性,其輸出用于修正計數(shù)器1的預置值。

圖2.7  DS18B20測溫原理


四、DS18B20 溫度測量通信協(xié)議

由于DS18B20采用的是1-Wire總線協(xié)議方式,即在一根數(shù)據(jù)線實現(xiàn)數(shù)據(jù)的雙向傳輸,而對AT89S51單片機來說,硬件上并不支持單總線協(xié)議,因此,我們必須采用軟件的方法來模擬單總線的協(xié)議時序來完成對DS18B20芯片的訪問。
  由于DS18B20是在一根I/O線上讀寫數(shù)據(jù),因此,對讀寫的數(shù)據(jù)位有著嚴格的時序要求。

DS18B20有嚴格的通信協(xié)議來保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了幾種信號的

時序:初始化時序、讀時序、寫時序。所有時序都是將主機作為主設備,單總線器件作為從設備。而每一次命令和數(shù)據(jù)的傳輸都是從主機主動啟動寫時序開始,如果要求單總線器件回送數(shù)據(jù),在進行寫命令后,主機需啟動讀時序完成數(shù)據(jù)接收。數(shù)據(jù)和命令的傳輸都是低位在先。
    DS18B20的復位時序如圖2.8所示:

                        圖2.8 DS18B20的復位時序

DS18B20的讀時序如圖2.9所示:

圖2.9 DS18B20的讀時序

對于DS18B20的讀時序分為讀0時序和讀1時序兩個過程。
  對于DS18B20的讀時隙是從主機把單總線拉低之后,在15um之內(nèi)就得釋放單總線,以讓DS18B20把數(shù)據(jù)傳輸?shù)絾慰偩上。DS18B20在完成一個讀時序過程,至少需要60us才能完成。
    DS18B20的寫時序如圖2.10所示:


圖2.10 DS18B20的寫時序

對于DS18B20的寫時序仍然分為寫0時序和寫1時序兩個過程。
  對于DS18B20寫0和寫1時序的要求不同,當要寫0時序時,單總線要被拉低至少60us,保證DS18B20能夠在15us到45us之間能夠正確地采樣I/O總線上的“0”電平,當要寫1時序時,單總線被拉低之后,在15us之內(nèi)就得釋放單總線。
    系統(tǒng)對 DS18B20 的各種操作必須按協(xié)議進行。根據(jù) DS18B20 的協(xié)議規(guī)定,微控制器控制 DS18B20 完成溫度的轉(zhuǎn)換必須經(jīng)過以下 4 個步驟 :

①每次讀寫前對 DS18B20 進行復位初始化。復位要求主 CPU 將數(shù)據(jù)線下拉 500us ,然后釋放, DS18B20 收到信號后等待 16us~60ms 左右,然后發(fā)出60us~240us 的存在低脈沖,主 CPU 收到此信號后表示復位成功。

②發(fā)送一條 ROM 指令,具體ROM指令如表2.6所示:

表2.6 DS18B20的ROM指令集

指令名稱

指令代碼

指令功能

讀 ROM

33H

讀 DS18B20ROM 中的編碼(即讀 64 位地址)

ROM 匹配(符合 ROM )

55H

發(fā)出此命令之后,接著發(fā)出 64 位 ROM 編碼,訪問單總線上與編碼相對應 DS18B20 使之作出響應,為下一步對該 DS18B20 的讀寫作準備

搜索 ROM

0F0H

用于確定掛接在同一總線上 DS18B20 的個數(shù)和識別 64 位 ROM 地址,為操作各器件作好準備

跳過 ROM

0CCH

忽略 64 位 ROM 地址,直接向 DS18B20 發(fā)溫度變換命令,適用于單片機工作

警報搜索

0ECH

該指令執(zhí)行后,只有溫度超過設定值上限或下限的片子才做出響應


③發(fā)送存儲器指令,具體存儲器指令如表2.7所示。

④進行數(shù)據(jù)通信。

表2.7 DS18B20 的存儲器指令集

指令名稱

指令代碼

指令功能

溫度變換

44H

啟動 DS18B20 進行溫度轉(zhuǎn)換,轉(zhuǎn)換時間最長為 500us (典型為 200us ),結果存入內(nèi)部 9 字節(jié) RAM 中

讀暫存器

0BEH

讀內(nèi)部 RAM 中 9 字節(jié)的內(nèi)容

寫暫存器

4EH

發(fā)出向內(nèi)部 RAM 的第 3 、 4 字節(jié)寫上、下限溫度數(shù)據(jù)命令,緊跟該命令之后,是傳送兩字節(jié)的數(shù)據(jù)

復制暫存器

48H

將 RAM 中第 3 、 4 字節(jié)的內(nèi)容復制到 EEPROM 中

重調(diào) EEPROM

0B8H

EEPROM 中的內(nèi)容恢復到 RAM 中的第 3 、4 字節(jié)

讀供電方式

0B4H

讀 DS18B20 的供電模式,寄生供電時 DS18B20 發(fā)送“ 0 ”,外接電源供電 DS18B20 發(fā)送“ 1 ”


五、DS18B2的外部電路圖

根據(jù)設計要求,傳感器的硬件電路圖如圖2.11所示。

圖2.11 DS18B20外部電路圖


三節(jié)  液晶顯示電路設計

液晶屏顯示模塊與數(shù)碼管相比,它顯得更為專業(yè)、漂亮。液晶顯示屏以其微功耗、體積小、顯示內(nèi)容豐富、超薄輕巧、使用方便等諸多優(yōu)點,在通訊、儀器儀表、電子設備、家用電器等低功耗應用系統(tǒng)中得到越來越廣泛的應用,使這些電子設備的人機界面變得越來越直觀形象,目前已廣泛應用于電子表、計算器、IC卡電話機、液晶電視機、便攜式電腦、掌上型電子玩具、復

印機、傳真機等許多方面。1602字符型液晶模塊(帶背光),是目前工控系統(tǒng)中使用最為廣泛的液晶屏之一。

一、1602的引腳功能介紹

1602采用標準的16腳接口,其引腳功能如下:

第1腳:VSS為電源地,接GND。
   第2腳:VDD接5V正電源。
   第3腳:VL為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度。
   第4腳:RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。
   第5腳:RW為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當RS和RW共同為低電平時可以寫入指令或者顯示地址,當RS為低電平RW為高電平時可以讀忙信號,當RS為高電平RW為低電平時可以寫入數(shù)據(jù)。
   第6腳:E端為使能端,當E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。
   第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。
   第15腳:BLA背光電源正極(+5V)輸入引腳。
   第16腳:BLK背光源負極,接GND

二、1602的標準字庫
1602液晶模塊內(nèi)帶標準字庫,內(nèi)部的字符發(fā)生存儲器(CGROM)已經(jīng)存儲了192個5×7點陣字符,這些字符如表3.1所示

另外還有字符生成RAM(CGRAM)512字節(jié),供用戶自定義字符,這些字符有:阿拉伯數(shù)字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時模塊把地址41H中的點陣字符圖形顯示出來,我們就能看到字母“A”。



指令4:顯示開關控制。 D:控制整體顯示的開與關,高電平表示開顯示,低電平表示關顯示 C:控制光標的開與關,高電平表示有光標,低電平表示無光標 B:控制光標是否閃爍,高電平閃爍,低電平不閃爍;

指令5:光標或顯示移位 S/C:高電平時移動顯示的文字,低電平時移動光標;

指令6:功能設置命令 DL:高電平時為4位總線,低電平時為8位總線 N:低電平時為單行顯示,高電平時雙行顯示 F: 低電平時顯示5x7的點陣字符,高電平時顯示5x10的點陣字符;

指令7:字符發(fā)生器RAM地址設置;

指令8:DDRAM地址設置;

指令9:讀忙信號和光標地址 BF:為忙標志位,高電平表示忙,此時模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙;

指令10:寫數(shù)據(jù);

指令11:讀數(shù)據(jù);

液晶顯示模塊是一個慢顯示器件,所以在執(zhí)行每條指令之前一定要確認模塊的忙標志為低電平,表示不忙,否則此指令失效。要顯示字符時要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符。表3.3是1602的內(nèi)部顯示地址。

表3.3 1602的內(nèi)部顯示地址

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16


00

01

02

03

04

05

06

07

08

09

0A

0B

0C

0D

0E

0F

第一行

40

41

42

43

44

45

46

47

48

49

4A

4B

4C

4D

4E

4F

第二行


比如第二行第一個字符的地址是40H,那么是否直接寫入40H就可以將光標定位在第二行第一個字符的位置呢?這樣不行,因為寫入顯示地址時要求最高位D7恒定為高電平1所以實際寫入的數(shù)據(jù)應該是01000000B(40H)+10000000B(80H)=11000000B(C0H)。

四、1602的外部電路圖

根據(jù)設計要求,1602液晶顯示器的硬件電路圖如圖3.1所示。

圖3.1 LCD1602外部連接圖

第三章  數(shù)字溫度計軟件設計流程及程序

單片機應用系統(tǒng)軟件可采用匯編語言和C語言進行編寫,由于匯編語言的可讀性和可移植性都較差,采用匯編語言編寫的單片機應用程序不但周期長,而且調(diào)試和排錯也比較困難。為了提高編制單片機應用程序的效率,改善程序的可讀性和可移植性,采用C語言無疑是一種最好的選擇。C語言具有一般高級語言的特點,還能直接對計算機的硬件進行操作,表達和運算能力也較強。所以,本設計采用C語言編寫程序。

第一節(jié) 主程序設計

主程序的主要功能是負責讀出并處理DS18B20的測量的當前溫度值、實時顯示溫度值。溫度測量每1s進行一次,這樣可以在一秒之內(nèi)測量一次被測溫度。系統(tǒng)主程序首先對系統(tǒng)進行初始化,然后顯示開機畫面。由于單片機沒有停止指令,所以可以設計系統(tǒng)程序不斷地循環(huán)執(zhí)行上述顯示結果。其程序流程如圖3.1所示。

第二節(jié) 溫度值讀取程序設計

讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時需進行CRC校驗,校驗有錯時不進行溫度數(shù)據(jù)的改寫。其程序流程圖如圖2.1。溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命令,當采用12位分辨率時轉(zhuǎn)換時間約為750毫秒,在本程序設計中采用1秒顯示程序延時法等待轉(zhuǎn)換的完成。

由于DS18B20有嚴格的通信協(xié)議來保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了三種時序:初始化時序、讀時序、寫時序。我們應很好的理解和完成DS18B20各時序程序設計。

一、DS18B20的延時程序

首先,設置DS18B20的延時子程序,以利于各時序的精確延時等待,其具體程序如下。

void delay_18B20(unsigned int i)

{
while(i--);

}

該延時的指令條數(shù)為2×i+5,每一條指令的周期為2us。

二、DS18B20的初始化程序

由第二章對DS18B20的介紹可知,對DS18B20的初始化要求主 CPU 將數(shù)據(jù)線下拉 500us ,然后釋放,DS18B20 收到信號后等待16us~60us 左右,然后發(fā)出 60us~240us 的存在低脈沖,主 CPU 收到此信號后表示復位成功。根據(jù)初始化時序的要求編寫初始化子程序如下:

void Init_DS18B20(void)
{
  DQ = 1;                       //復位 DS18B20通信端口
  delay_18B20(8);            //稍做延時
  DQ = 0;                       //單片機將DQ拉低,準備復位DS18B20
  delay_18B20(125);          //精確延時510us

delay_18B20(125);

DQ = 1;                      //拉高數(shù)據(jù)線
  delay_18B20(4);         //稍做延時后

while(DQ)              

{

NOP() ;                  //等待DS18B20的ACK信號,如果DQ =0則初始化成功;DQ =1則初始化失敗

}

}
  delay_18B20(60);

DQ=1;                   //拉高數(shù)據(jù)線,準備數(shù)據(jù)傳輸
}

三、DS18B20的讀時序程序

DS18B20的讀時序分為讀0時序和讀1時序兩個過程,對于DS18B20的讀時隙是從主機把單總線拉低之后,在15秒之內(nèi)就得釋放單總線,以讓DS18B20把數(shù)據(jù)傳輸?shù)絾慰偩上。DS18B20在完成一個讀時序過程,至少需要60us才能完成。由此,DS18B20的寫一個字節(jié)程序如下。
    static void ReadOneChar(void)
   {
      uchar i=0;
      uchar dat = 0;
      for (i=8;i>0;i--)            //每次讀取一位,8個字節(jié)需要讀取8次
         {

dat>>=1;          //低位先發(fā)
             DQ = 0;          // 高電平拉成低電平時讀周期開始
             NOP();              
             DQ = 1;          // 必須寫一,否則讀出的數(shù)據(jù)將是不預期的數(shù)據(jù)

delay_18B20(2);
if(DQ)
dat︱=0x80;  

delay_18B20(30);

DQ=1;

NOP();          //恢復一線總線

}
       return(dat);
        }

四、DS18B20的寫時序程序

DS18B20的寫時序仍然分為寫0時序和寫1時序兩個過程。對于DS18B20寫0時序和寫1時序的要求不同,當要寫0時序時,單總線要被拉低至少60us,保證DS18B20能夠在15us到45us之間能夠正確地采樣I/O總線上的“0”電平,當要寫1時序時,單總線被拉低之后,在15us之內(nèi)就得釋放單總線。由此,DS18B20的讀字一個節(jié)程序如下。
    void WriteOneChar(uchar cmd)
    {
       unsigned char i=0;

for (i=8; i>0; i--)
          {

if(cmd&0x01)           //地位在前
              {DQ = 0;              //從高電平拉至低電平時,寫周期的開始
                 delay_18B20(20);    //60us到120us延時
                 DQ = 1;}               //發(fā)送數(shù)據(jù)

else

{ DQ = 0;

delay_18B20(20);

DQ = 0;}

delay_18B20(30);       //等待DS18B20采樣

cmd>>=1;             //從最低位到最高位傳入
            }

}

第三節(jié) 計算溫度程序設計

計算溫度子程序?qū)AM中讀取值進行BCD碼的轉(zhuǎn)換運算,并進行溫度值正負的判定,其程序流程圖如圖3.3。

   

第四節(jié)  顯示數(shù)據(jù)及刷新程序設計

顯示數(shù)據(jù)刷新子程序主要時對顯示緩沖器中的顯示數(shù)據(jù)進行刷新操作,當最高顯示位為零時將符號顯示位移入下一位。程序流程圖如圖4.1。


結  論

   溫度的檢測和控制是一個經(jīng)典的課題,生活中的各個領域里經(jīng)常需要檢測和控制某一特定環(huán)境的溫度,使之能夠穩(wěn)定在一定的溫度范圍之內(nèi)。這就要求系統(tǒng)對溫度的檢測具有足夠的精度和實時性,控制要有足夠的精度,并且盡可能具有較低的成本,這樣的產(chǎn)品才具有實用價值。DS18B20恰好具有這樣的優(yōu)勢,由于其可直接輸出數(shù)字量,不需要AD轉(zhuǎn)換,測溫范圍大,與單片機容易接口,成為原來廣為使用的熱電阻、熱電偶的理想替代品。因此本設計可以應用于多種溫度控制場合。

本設計敘述了智能溫度計的設計,包括硬件組成和軟件的設計。該系統(tǒng)在硬件設計上主要是通過其核心控制器件AT89S51將采集到的數(shù)字溫度電壓值經(jīng)單片機處理得到相應的溫度值,送到LCD顯示器,以數(shù)字形式顯示測量的溫度。整個系統(tǒng)的軟件編程就是通過C語言對單片機AT89S51實現(xiàn)其控制功能,整個系統(tǒng)結構緊湊,簡單可靠,操作靈活,功能強大,性能價格比高,較好的滿足了現(xiàn)代農(nóng)業(yè)生產(chǎn)和科研的需要。

通過仿真軟件Proteus仿真后,很好的實現(xiàn)了溫度值得顯示,滿足課程要求,具體的仿真圖如下:

結束語

畢業(yè)設計完成了,在這個過程中使我覺得不論從理論知識還是從實際設計中都學到了不少知識。首先我要感謝我的導師劉雙臨老師,他在我完成論文的過程中,給予了我很大的幫助。

在論文開始的初期,由于對于溫度計的認識很少,我對于論文的結構以及文獻選取等方面都有很多問題,通過對溫度計原理的認識,并比較多種不同的設計方案,最后確定了設計溫度計的功能以及各類功能模塊的器件選擇。并在導師的幫助下,找到相應的各類資料,并大致整理,粗略閱讀了一遍。認識到很多知識以前都沒有接觸過,所以制定了一個大致的計劃,希望能夠很好的完成論文。

在接下來的畢業(yè)設計中,由于在公司實習,相對在畢業(yè)設計的時間少了很多。主要是深入對前期溫度設計方案的認識。在這期間,很多知識都是第一次接觸,通過查找了很多知識,認真閱讀,有了一定的認識。相對困難最大的還是硬件的設計和程序編寫方面。這些都需要很多的實際設計經(jīng)驗,第一次設計起來覺得相當吃力,剛開始不知道從何下手。后來,通過老師的指導,在實際的設計過程中,都有了很大進步。

在畢業(yè)設計的過程中,還認識到理論知識對實踐有很大的指導作用,只有在正確的理論指導下,才能設計出合乎實際需要的硬件電路。但同時,實際的應用中與理論又會有一定出入,所以要很好的掌握好理論與實際的矛盾。

這次畢業(yè)設計是對大學三年所學知識的一次實際應用與檢閱,同時對自學能力提出了很高的要求,所以平時的學習離開思考,就是嚴重的錯誤,不能只為了考試而學習。并且在學習的過程中更要廣闊的接觸各方面的知識,才能更好的為以后的工作打好基礎。

在我寫論文的過程中,劉雙臨老師給我提供了許多資料,并對實踐中出現(xiàn)的問題給予了耐心的解答,完稿之后在百忙中仔細閱讀,給出修改意見。在設計過程中,還有很多同學給予我各方面的支持,在此對他們都表示誠摯感謝!


基于單片機的數(shù)字溫度計設計(終稿).doc

1.03 MB, 下載次數(shù): 125, 下載積分: 黑幣 -5

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:429267 發(fā)表于 2018-11-19 16:37 | 只看該作者
有仿真程序嗎

回復

使用道具 舉報

板凳
ID:470695 發(fā)表于 2019-1-19 20:51 | 只看該作者
牛逼啊
回復

使用道具 舉報

地板
ID:571641 發(fā)表于 2019-6-25 12:47 | 只看該作者

求仿真程序!!
回復

使用道具 舉報

5#
ID:662058 發(fā)表于 2019-12-13 13:56 | 只看該作者
有源代碼嗎?
回復

使用道具 舉報

6#
ID:662058 發(fā)表于 2019-12-14 14:11 | 只看該作者
剛剛花了5黑幣已下載,里面有仿真圖和源代碼唯獨沒有原理圖!大家下載需慎重啊。我算是白下了,[大哭]
回復

使用道具 舉報

7#
ID:733555 發(fā)表于 2020-4-20 15:42 | 只看該作者
沒有指令123嗎 直接是指令4
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久久久免费毛片精品 | 日韩www视频| 精品一级| 日本精品一区二区三区在线观看 | 欧美激情视频一区二区三区在线播放 | 二区视频 | 日本不卡一区二区三区在线观看 | 不卡一二区 | 国产成人区 | 一级毛片免费完整视频 | 91直接看| 男人天堂国产 | 亚洲精品欧美一区二区三区 | 国产欧美日韩在线一区 | 91一区二区 | 一区二区久久电影 | 欧美在线一区二区视频 | 国产激情一区二区三区 | 亚洲精品9999 | 日韩欧美不卡 | 成人免费影院 | 美女黄视频网站 | 黄色一级视频 | 亚洲精品18 | 国产一区二 | 成人一区精品 | 国产精品久久久久久福利一牛影视 | 日韩视频在线免费观看 | 亚洲欧美成人影院 | 精品视频一区在线 | 国产精品久久久久久婷婷天堂 | 国产精品免费高清 | 啪啪免费网站 | 精品久久久久久中文字幕 | 在线日韩视频 | 亚洲午夜精品一区二区三区 | 99久久夜色精品国产亚洲96 | 国产精品一区二区在线免费观看 | 中文字幕在线网 | 99热这里有精品 | 精品久久电影 |