




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、基于AT89C51單片機(jī)的數(shù)字溫度計設(shè)計摘要 在日常生活及工業(yè)生產(chǎn)過程中,經(jīng)常要用到溫度的檢測及控制,溫度是生產(chǎn)過程和科學(xué)實(shí)驗中普遍而且重要的物理參數(shù)之一。在生產(chǎn)過程中,為了高效地進(jìn)行生產(chǎn),必須對它的主要參數(shù),如溫度、壓力、流量等進(jìn)行有效的控制。溫度控制在生產(chǎn)過程中占有相當(dāng)大的比例。溫度測量是溫度控制的基礎(chǔ),技術(shù)已經(jīng)比較成熟。傳統(tǒng)的測溫元件有熱電偶和二電阻。而熱電偶和熱電阻測出的一般都是電壓,再轉(zhuǎn)換成對應(yīng)的溫度,這些方法相對比較復(fù)雜,需要比較多的外部硬件支持。我們用一種相對比較簡單的方式來測量。本文介紹一種基于AT89C51單片機(jī)作為控制器、使用數(shù)字溫度傳感器DS18B20作為溫度采集器的數(shù)字
2、溫度計。重點(diǎn)闡述了AT89C51的結(jié)構(gòu)性能和引腳功能,DS18B20的性能結(jié)構(gòu)、工作原理和控制方法,以及單片機(jī)AT89C51和數(shù)字溫度傳感器DS18B20之間的接口、數(shù)據(jù)傳遞。該數(shù)字溫度計能夠測出-2070之間的溫度,適合日常生活、工業(yè)生產(chǎn)和科學(xué)研究等領(lǐng)域?qū)囟葴y量的需要。關(guān)鍵詞:溫度測量;DS18B20;AT89C51Design of Digital Thermomer Based on SCM AT89C51Abstract In daily life and industrial production process, often used in the detection and c
3、ontrol of temperature, temperature is the production process and scientific experiments in general and one of the important physical parameter. In the production process, in order to efficiently carry out the production, to be its main parameters, such as temperature, pressure, flow control, etc. Te
4、mperature control in the production process of a large proportion. Temperature measurement is the basis of temperature-controlled, more mature technology.Traditional thermocouple and temperature components are the second resistor.The thermocouple and thermal resistance are generally measured voltage
5、, and then replaced by the corresponding temperature, these methods are relatively complex, requiring a relatively large number of external hardware support. We use a relatively simple way to measure.A digital thermometer collection is designed, which uses SCM AT89C51 as a controller, digital temper
6、ature sensor DS18B20 as temperature collector. The structure, pin and function of the AT89C51, the performance of the structure, working principle and control methods of DS1B20, and the interface, data transmission between SCM AT89C51 and digital temperature sensor DS18B20 is introduced. This digita
7、l thermometer can detect the temperature from-20to70 .It is suitable for daily life, industrial production and scientific research in areas such as the temperature measurement needs.Keywords:Temperatur measurement; DS18B20; AT89C51 目錄摘要11緒論41.1選題背景及研究意義41.2 溫度測量的意義41.3 系統(tǒng)預(yù)期目標(biāo)42 開發(fā)工具Proteus與Keil52.1
8、Proteus軟件簡單應(yīng)用52.2 Keil軟件調(diào)試應(yīng)用53 系統(tǒng)設(shè)計概述63.1 方案確定63.2 系統(tǒng)設(shè)計原理63.3 系統(tǒng)組成框圖64 元器件介紹74.1 AT89C51單片機(jī)介紹74.1.1 AT89C51單片機(jī)主要特性84.1.2 AT89C51單片機(jī)管腳84.2 1602LCD 液晶模塊簡介94.3 DS18B20介紹94.3.1 DS18B20內(nèi)部結(jié)構(gòu)及功能104.3.2 測溫原理105 系統(tǒng)硬件設(shè)計115.1主板電路115.2液晶顯示部分與89C51的接口電路115.3 DS18B20溫度傳感器與單片機(jī)的接口電路126 系統(tǒng)軟件設(shè)計136.1 主程序設(shè)計136.2 DS18B2
9、0初始化136.3 讀出溫度子程序146.4 溫度轉(zhuǎn)換命令子程序146.5 計算溫度子程序156.6顯示數(shù)據(jù)刷新子程序157 系統(tǒng)仿真測試15結(jié)束語17參考文獻(xiàn)18附錄1 系統(tǒng)整體電路19附錄2 實(shí)物圖19附錄3 元件清單(名稱、型號、數(shù)量)20附錄4 全部程序清單201緒論1.1選題背景及研究意義隨著人們生活水平的不斷提高,單片機(jī)控制無疑是人們追求的目標(biāo)之一,它所給人帶來的方便也是不可否定的,其中數(shù)字溫度計就是一個典型的例子,但人們對它的要求越來越高,要為現(xiàn)代人工作、科研、生活提供更好的更方便的設(shè)施就需要從單片機(jī)技術(shù)入手,一切向著數(shù)字化控制,智能化控制方向發(fā)展。溫度測量在物理實(shí)驗、醫(yī)療衛(wèi)生、
10、食品生產(chǎn)等領(lǐng)域,尤其在熱學(xué)試驗(如:物體的比熱容、汽化熱、熱功當(dāng)量、壓強(qiáng)溫度系數(shù)等教學(xué)實(shí)驗)中,有特別重要的意義。現(xiàn)在所使用的溫度計通常都是精度為1和0.1的水銀、煤油或酒精溫度計。這些溫度計的刻度間隔通常都很密,不容易準(zhǔn)確分辨,讀數(shù)困難,而且他們的熱容量還比較大,達(dá)到熱平衡所需的時間較長,因此很難讀準(zhǔn),并且使用非常不方便。本設(shè)計所介紹的數(shù)字溫度計與傳統(tǒng)的溫度計相比,具有讀數(shù)方便,測溫范圍廣,測溫準(zhǔn)確等優(yōu)點(diǎn),其輸出溫度采用數(shù)字顯示,主要用于對測溫比較準(zhǔn)確的場所,或科研實(shí)驗室使用。本設(shè)計使用單片機(jī)作為核心進(jìn)行控制。單片機(jī)具有集成度高,通用性好,功能強(qiáng),特別是體積小,重量輕,耗能低,可靠性高,抗干
11、擾能力強(qiáng)和使用方便等獨(dú)特優(yōu)點(diǎn),在數(shù)字、智能化方面有廣泛的用途。1.2 溫度測量的意義溫度是一種最基本的環(huán)境參數(shù),人民的生活與環(huán)境的溫度息息相關(guān),隨著人們生活水平的不斷提高,對生活質(zhì)量的要求不斷提升,自然會更加關(guān)注跟人身體健康緊密聯(lián)系的溫度;同時在工業(yè)生產(chǎn)過程中經(jīng)常需要實(shí)時測量溫度,尤其是在高危生產(chǎn)行業(yè),如花炮生產(chǎn)、煤礦行業(yè)等。但依靠人工檢測既浪費(fèi)時間、物力、人力, 又有一定的危險性,且測量的數(shù)據(jù)也不準(zhǔn)確;在農(nóng)業(yè)生產(chǎn)中也離不開溫度的測量,各種農(nóng)作物的生長都跟溫度有直接的關(guān)系,掌握了溫度的變化就可以更好的控制農(nóng)作物的生長。因此研究溫度的測量方法和裝置具有重要的意義。1.3 系統(tǒng)預(yù)期目標(biāo) 本課題的研
12、究重點(diǎn)是設(shè)計一種基于單片機(jī)的數(shù)字溫度計控制系統(tǒng)。利用數(shù)字溫度傳感器DS18B20,此傳感器課讀取被測量溫度值,進(jìn)行轉(zhuǎn)換。(1)本范圍-20+70。(2)精度誤差0.5。(3)液晶屏顯示溫度信息。(4)溫度報警功能,當(dāng)溫度超過設(shè)定上下限溫度時,發(fā)出聲音報警。2 開發(fā)工具Proteus與Keil2.1 Proteus軟件簡單應(yīng)用 圖2-1 proteus繪圖界面1. 繪制原理圖:繪制原理圖要在原理圖編輯窗口中的藍(lán)色方框內(nèi)完成。原理圖編輯窗口的操作是不同于常用的WINDOWS應(yīng)用程序的,正確的操作是:用左鍵放置元件;右鍵選擇元件;雙擊右鍵刪除元件;右鍵拖選多個元件;先右鍵后左鍵編輯元件屬性;先右鍵后
13、左鍵拖動元件;連線用左鍵,刪除用右鍵;改連接線:先右擊連線,再左鍵拖動;中鍵放縮原理圖。2. 定制自己的元件:有三個個實(shí)現(xiàn)途徑,一是用PROTEUS VSM SDK開發(fā)仿真模型,并制作元件;另一個是在已有的元件基礎(chǔ)上進(jìn)行改造,比如把元件改為bus接口的;還有一個是利用已制作好(別人的)的元件,我們可以到網(wǎng)上下載一些新元件并把它們添加到自己的元件庫里面。3. Sub-Circuits應(yīng)用:用一個子電路可以把部分電路封裝起來,這樣可以節(jié)省原理圖窗口的空間。2.2 Keil軟件調(diào)試應(yīng)用應(yīng)用Keil進(jìn)行軟件仿真開發(fā)的主要步驟為:編寫源程序并保存建立工程并添加源文件設(shè)置工程編譯/匯編、連接,產(chǎn)生目標(biāo)文件
14、程序調(diào)試。3 系統(tǒng)設(shè)計概述3.1 方案確定該系統(tǒng)主要由溫度測量和數(shù)據(jù)采集兩部分電路組成,采用數(shù)字溫度芯片DS18B20 測量溫度,輸出信號全數(shù)字化。便于單片機(jī)處理及控制,省去傳統(tǒng)的測溫方法的很多外圍電路。且該芯片的物理化學(xué)性很穩(wěn)定,它能用做工業(yè)測溫元件,此元件線形較好。在-20+70 攝氏度時,最大線形偏差小于0.5 攝氏度。DS18B20 的最大特點(diǎn)之一采用了單總線的數(shù)據(jù)傳輸,由數(shù)字溫度計DS18B20和微控制器AT89C51構(gòu)成的溫度測量裝置,它直接輸出溫度的數(shù)字信號,可直接與計算機(jī)連接。這樣,測溫系統(tǒng)的結(jié)構(gòu)就比較簡單,體積也不大。采用51 單片機(jī)控制,軟件編程的自由度大,可通過編程實(shí)現(xiàn)各
15、種各樣的算術(shù)算法和邏輯控制,而且體積小,硬件實(shí)現(xiàn)簡單,安裝方便。既可以單獨(dú)對多DS18B20控制工作,還可以與PC 機(jī)通信上傳數(shù)據(jù),另外AT89S51 在工業(yè)控制上也有著廣泛的應(yīng)用,編程技術(shù)及外圍功能電路的配合使用都很成熟。3.2 系統(tǒng)設(shè)計原理利用溫度傳感器DS18B20可以直接讀取被測溫度值,進(jìn)行轉(zhuǎn)換的特性,模擬溫度值經(jīng)過DS18B20處理后轉(zhuǎn)換為數(shù)字值,然后送到單片機(jī)中進(jìn)行數(shù)據(jù)處理,并與設(shè)置的溫度報警限比較,超過限度后通過揚(yáng)聲器報警。同時處理后的數(shù)據(jù)送到LCD中顯示。3.3 系統(tǒng)組成框圖 圖3-1 系統(tǒng)基本方框圖1. 主控制器單片機(jī)AT89C51具有低電壓供電和體積小等特點(diǎn),四個端口只需要
16、兩個口就能滿足電路系統(tǒng)的設(shè)計需要,很適合便攜手持式產(chǎn)品的設(shè)計使用系統(tǒng)可用二節(jié)電池供電。2. 顯示電路顯示電路采用LCD液晶屏。3. 溫度傳感器溫度傳感器采用美國DALLAS半導(dǎo)體公司生產(chǎn)的DS18B20溫度傳感器。DS18B20輸出信號全數(shù)字化。便于單片機(jī)處理及控制,在-20+70 攝氏度時,最大線形偏差小于0.5 攝氏度,采用單總線的數(shù)據(jù)傳輸,可直接與計算機(jī)連接。用AT89C51芯片控制溫度傳感器DS18B20進(jìn)行實(shí)時溫度檢測并顯示,能夠?qū)崿F(xiàn)快速測量環(huán)境溫度,并可以根據(jù)需要設(shè)定上下限報警溫度。4 元器件介紹4.1 AT89C51單片機(jī)介紹T89系列單片機(jī)在內(nèi)部結(jié)構(gòu)上基本相同,其中不同型號的單
17、片機(jī)只不過在個別模塊和功能方面有些區(qū)別。AT89C51單片機(jī)內(nèi)部硬件結(jié)構(gòu)框圖如圖所示。它由一個8位中央處理器(CPU)、一個256B片內(nèi)RAM及4KB Flash ROM 、21個特殊功能寄存器、4個8位并行I/O口、兩個16位定時/計數(shù)器、一個串行I/O口以及中斷系統(tǒng)等部分組成,各功能部件通過片內(nèi)單一總線聯(lián)成一個整體,集成在一塊芯片上。 時序和振蕩電路程序存儲器 ROM數(shù)據(jù)存儲器RAM2個16位定時/計數(shù)器CPU內(nèi)部8位數(shù)據(jù)總線中斷系統(tǒng)并行I/O口 串行I/O口內(nèi)部中斷外部中斷 P0 P1 P2 P3 RXD TXD時鐘源外部事件 圖4-1 AT89C51單片機(jī)內(nèi)部結(jié)構(gòu)框圖4.1.1 AT8
18、9C51單片機(jī)主要特性1. 一個8 位的微處理器(CPU)。2. 片內(nèi)數(shù)據(jù)存儲器RAM(128B),用以存放可以讀寫的數(shù)據(jù),如運(yùn)算的中間結(jié)果、最終結(jié)果以及欲顯示的數(shù)據(jù)等,SST89 系列單片機(jī)最多提供1K 的RAM。3. 片內(nèi)程序存儲器ROM(4KB),用以存放程序、一些原始數(shù)據(jù)和表格。目前單片機(jī)的發(fā)展趨勢是將RAM 和ROM 都集成在單片機(jī)里面,這樣既方便了用戶進(jìn)行設(shè)計又提高了系統(tǒng)的抗干擾性。4. 四個8 位并行IO 接口P0P3,每個口既可以用作輸入,也可以用作輸出。5. 兩個定時器計數(shù)器,每個定時器計數(shù)器都可以設(shè)置成計數(shù)方式,用以對外部事件進(jìn)行計數(shù),也可以設(shè)置成定時方式,并可以根據(jù)計數(shù)或
19、定時的結(jié)果實(shí)現(xiàn)計算機(jī)控制。6. 五個中斷源的中斷控制系統(tǒng)。7. 一個全雙工UART(通用異步接收發(fā)送器)的串行IO 口,用于實(shí)現(xiàn)單片機(jī)之間或單機(jī)與微機(jī)之間的串行通信。8. 片內(nèi)振蕩器和時鐘產(chǎn)生電路,但石英晶體和微調(diào)電容需要外接。最高允許振蕩頻率為12MHz。4.1.2 AT89C51單片機(jī)管腳 圖4-2 AT89C51單片機(jī)管腳4.2 1602LCD 液晶模塊簡介1602LCD液晶模塊的引腳圖如圖4-3所示。圖4-3 1602LCD引腳圖 LCD1602引腳介紹:Vss(1腳):一般接地。Vdd(2腳):接電源。Vee(3腳):液晶顯示器對比度調(diào)整端,接電源時對比度最弱,接地時對比度最高(對比
20、度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度)。RS(4腳):RS為寄存器選擇,高電平1時選擇數(shù)據(jù)寄存器、低電平0時選擇指令寄存器。R/W(5腳):R/W為讀寫信號線,高電平(1)時進(jìn)行讀操作,低電平(0)時進(jìn)行寫操作。E(6腳):E(或EN)端為使能(enable)端,下降沿使能。DB 0-7(7-14腳):雙向數(shù)據(jù)總線 。4.3 DS18B20介紹DS18B20模塊引腳如圖4-4所示。圖4-4 DS18B20引腳圖DALLAS 最新單線數(shù)字溫度傳感器DS18B20是一種新型的“一線器件”,其體積更小、更適用于多種場合、且適用電壓更寬、更經(jīng)濟(jì)。DALLAS 半導(dǎo)體公司的
21、數(shù)字化溫度傳感器DS18B20是世界上第一片支持“一線總線”接口的溫度傳感器。溫度測量范圍為-55+125 攝氏度,可編程為9位12 位轉(zhuǎn)換精度,測溫分辨率可達(dá)0.0625攝氏度,分辨率設(shè)定參數(shù)以及用戶設(shè)定的報警溫度存儲在EEPROM 中,掉電后依然保存。被測溫度用符號擴(kuò)展的16位數(shù)字量方式串行輸出;其工作電源既可以在遠(yuǎn)端引入,也可以采用寄生電源方式產(chǎn)生;多個DS18B20可以并聯(lián)到3 根或2 根線上,CPU只需一根端口線就能與諸多DS18B20 通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。因此用它來組成一個測溫系統(tǒng),具有線路簡單,在一根通信線,可以掛很多這樣的數(shù)字溫度計,十分方
22、便。4.3.1 DS18B20內(nèi)部結(jié)構(gòu)及功能DS18B20的內(nèi)部結(jié)構(gòu)如圖4-5所示。主要包括:寄生電源,溫度傳感器,64位ROM和單總線接口,存放中間數(shù)據(jù)的高速暫存器RAM,用于存儲用戶設(shè)定溫度上下限值的TH和TL觸發(fā)器,存儲與控制邏輯,8位循環(huán)冗余校驗碼(CRC)發(fā)生器等7部分。圖4-5 DS18B20內(nèi)部結(jié)構(gòu)4.3.2 測溫原理DS18B20測溫原理:低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號送給計數(shù)器1。高溫度系數(shù)晶振 隨溫度變化其振蕩率明顯改變,所產(chǎn)生的信號作為計數(shù)器2的脈沖輸入。計數(shù)器1和溫度寄存器被預(yù)置在55所對應(yīng)的一個基數(shù)值。計數(shù)器1對 低溫度系數(shù)晶振產(chǎn)生
23、的脈沖信號進(jìn)行減法計數(shù),當(dāng)計數(shù)器1的預(yù)置值減到0時,溫度寄存器的值將加1,計數(shù)器1的預(yù)置將重新被裝入,計數(shù)器1重 新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行計數(shù),如此循環(huán)直到計數(shù)器2計數(shù)到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值即為所測溫度。5 系統(tǒng)硬件設(shè)計5.1主板電路 系統(tǒng)整體硬件電路包括:傳感器數(shù)據(jù)采集電路,溫度顯示電路,報警調(diào)整電路,單片機(jī)主板電路等。主板電路如圖5-1所示。 圖5-1 主板電路5.2液晶顯示部分與89C51的接口電路 如圖5-2所示,用89C51的P0口作為數(shù)據(jù)線,用P2.0、P2.1、P2.2分別作為LCD的E、R/W、RS。其中E是下降沿觸發(fā)的片選信號,
24、R/W是讀寫信號,RS是寄存器選擇信號本模塊設(shè)計要點(diǎn)如下:顯示模塊初始化:首先清屏,再設(shè)置接口數(shù)據(jù)位為8位,顯示行數(shù)為1行,字型為5×7點(diǎn)陣,然后設(shè)置為整體顯示,取消光標(biāo)和字體閃爍,最后設(shè)置為正向增量方式且不移位。向LCD的顯示緩沖區(qū)中送字符,程序中采用2個字符數(shù)組,一個顯示字符,另一個顯示電壓數(shù)據(jù),要顯示的字符或數(shù)據(jù)被送到相應(yīng)的數(shù)組中,完成后再統(tǒng)一顯示.圖5-2 液晶與89C51的接口5.3 DS18B20溫度傳感器與單片機(jī)的接口電路 DS18B20可以采用兩種方式供電,一種是采用電源供電方式,此時DS18B20的1腳接地,2腳作為信號線,3腳接電源。另一種是寄生電源供電方式,單片
25、機(jī)端口接單線總線,為保證在有效的DS18B20時鐘周期內(nèi)提供足夠的電流,可用一個MOSFET管來完成對總線的上拉。 當(dāng)DS18B20處于寫存儲器操作和溫度A/D轉(zhuǎn)換操作時,總線上必須有強(qiáng)的上拉,上拉開啟時間最大為10us。采用寄生電源供電方式時VDD端接地。由于單線制只有一根線,因此發(fā)送接口必須是三態(tài)的。 圖5-3 DS18B20溫度傳感器與單片機(jī)的接口電路6 系統(tǒng)軟件設(shè)計系統(tǒng)程序主要包括主程序,讀出溫度子程序,溫度轉(zhuǎn)換命令子程序,計算溫度子程序,顯示數(shù)據(jù)刷新子程序等。6.1 主程序設(shè)計主程序的主要功能是負(fù)責(zé)溫度的實(shí)時顯示、讀出并處理DS18B20的測量的當(dāng)前溫度值,溫度測量每1s進(jìn)行一次。這
26、樣可以在一秒之內(nèi)測量一次被測溫度,其程序流程見圖6-1所示。 圖6-1 程序流程圖6.2 DS18B20初始化DS18B20初始化流程圖見圖6-2。圖6-2 DS18B20初始化流程圖 6.3 讀出溫度子程序讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時需進(jìn)行CRC校驗,校驗有錯時不進(jìn)行溫度數(shù)據(jù)的改寫。6.4 溫度轉(zhuǎn)換命令子程序溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命令,當(dāng)采用12位分辨率時轉(zhuǎn)換時間約為750ms,在本程序設(shè)計中采用1s顯示程序延時法等待轉(zhuǎn)換的完成。圖6-3 溫度轉(zhuǎn)換流程圖6.5 計算溫度子程序計算溫度子程序?qū)AM中讀取值進(jìn)行BCD碼的轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值正負(fù)的判
27、定,其程序流程圖如圖6-4所示。圖6-4 計算溫度流程圖6.6顯示數(shù)據(jù)刷新子程序顯示數(shù)據(jù)刷新子程序主要是對顯示緩沖器中的顯示數(shù)據(jù)進(jìn)行刷新操作,當(dāng)最高顯示位為0時將符號顯示位移入下一位。7 系統(tǒng)仿真測試設(shè)置溫度上限為70度,溫度下限為-20度。1. 如圖7-1所示。此時溫度時70.5度,超出上限溫度,D1燈亮,實(shí)現(xiàn)報警。圖7-1 仿真12. 如圖7-2所示。此時溫度為-20.5度,低于下限溫度,D2燈亮,實(shí)現(xiàn)報警。圖7-2 仿真23. 如圖7-3所示。此時溫度為30.5度,在所設(shè)范圍內(nèi),兩燈都沒亮,說明溫度正常。圖7-3 仿真3結(jié)束語本文介紹了基于AT89C51單片機(jī)的數(shù)字溫度計控制系統(tǒng)的設(shè)計,
28、對整個硬件電路和軟件程序設(shè)計做了分析,文中介紹了數(shù)字溫度計的現(xiàn)狀及發(fā)展,介紹了仿真軟件proteus及keil的基本知識,學(xué)習(xí)了proteus的仿真方法和步驟,介紹了數(shù)字溫度計的設(shè)計方案選擇及原理介紹,加深了51單片機(jī)的知識了解,介紹51單片機(jī)的結(jié)構(gòu)、特點(diǎn)等。并學(xué)習(xí)了數(shù)字溫度傳感器DS18B20,設(shè)計軟件仿真,更直觀的反應(yīng)設(shè)計的正確性。本文對其中的一些基本原理也做了簡要的概述。其實(shí)寫完了本篇論文,也僅僅是對數(shù)字溫度計控制系統(tǒng)做出了一個簡單的設(shè)計方案,數(shù)字溫度計科利用在很多領(lǐng)域,在一些人不能直接進(jìn)入的場所,利用單片機(jī)控制的數(shù)字溫度計,可以設(shè)置并控制其中的溫度,數(shù)字溫度計還可以利用在溫室中,這樣就
29、可以方便的控制溫室中的溫度,當(dāng)溫度超過所要求的溫度時,可發(fā)生報警??傊?dāng)?shù)字溫度計利用在很多領(lǐng)域,本課題只是單片機(jī)控制數(shù)字溫度計系統(tǒng)的一種設(shè)計方法。參考文獻(xiàn)1 何立民著單片機(jī)高級教程北京:北京航空航天大學(xué)出版社,2000.2 李全利,仲偉峰,徐軍著.單片機(jī)原理及應(yīng)用.北京:清華大學(xué)社,2006.3 楊素行著.模擬電子技術(shù)基礎(chǔ)(第二版) .北京:高等教育出版社,2006.4 馬忠梅,籍順心,張凱等著.單片機(jī)的C語言應(yīng)用程序設(shè)計(第4版) .北京:北京航天航空大學(xué)出版社,2007.5 白駒珩,雷曉平著單片計算機(jī)及其應(yīng)用成都:電子科技大學(xué)出版社,1997.6 閻石著.數(shù)字電子技術(shù)基礎(chǔ)(第五版) .北京
30、:高等教育出版社,2006.7 譚浩強(qiáng)著程序設(shè)計與開發(fā)技術(shù)北京:清華大學(xué)出版社,19918 楊路明著C語言程序設(shè)計教程(第2版) 北京:北京郵電大學(xué)出版社,2005.9 梁翎著C語言程序設(shè)計實(shí)用技巧與程序?qū)嵗?上海:上??破粘霭嫔?,199810 鐘富昭著.8051單片機(jī)典型模塊設(shè)計與應(yīng)用.北京:人民郵電出版,2007.附錄1 系統(tǒng)整體電路附錄2 實(shí)物圖附錄3 元件清單(名稱、型號、數(shù)量)元件名稱型號數(shù)量單片機(jī)芯片AT89C511溫度傳感器DS18B201晶振12MHz1電源5V1液晶屏lcd16021電容30pF210uF(極性)1排阻1K1萬能板1開關(guān)3導(dǎo)線若干電阻1K4發(fā)光二極管綠色2蜂鳴
31、器1附錄4 全部程序清單程序代碼:#include <reg51.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned int#define delayNOP() _nop_();_nop_();_nop_();_nop_();sbit HI_LED = P23;sbit LO_LED = P26;sbit DQ = P33;sbit BEEP = P37;sbit LCD_RS = P20;sbit LCD_RW = P21;sbit LCD_EN = P22;sbit K1 =
32、P17;sbit K2 = P14;sbit K3 = P11;uchar code RomCodeStr="-ROM CODE-"uchar RomCode8=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00;uchar code Temp_Disp_Title ="Current Temp : "uchar Current_Temp_Display_Buffer="TEMP: "uchar code Temperature_Char8=0x0c,0x12,0x12,0x0c,0x00,0x00,0x0
33、0,0x00;uchar code Alarm_Temp="ALARM TEMP Hi Lo"uchar Alarm_HI_LO_STR="Hi: Lo: "uchar temp_data2=0x00,0x00;uchar temp_alarm2=0x00,0x00;uchar display5=0x00,0x00,0x00,0x00,0x00;uchar display13=0x00,0x00,0x00;uchar code df_Table=0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9;char Alarm_Temp_HL2=70,
34、-20;uchar CurrentT=0;uchar Temp_Value=0x00,0x00;uchar Display_Digit=0,0,0,0;bit HI_Alarm=0,LO_Alarm=0;bit DS18B20_IS_OK=1;uint Time0_Count=0;void DelayXus(int x) uchar i; while(x-) for(i=0;i<200;i+);bit LCD_Busy_Check() bit result; LCD_RS=0;LCD_RW=1;LCD_EN=1;delayNOP(); result=(bit)(P0 & 0x80
35、); LCD_EN=0; return result;void Write_LCD_Command(uchar cmd) while(LCD_Busy_Check(); LCD_RS=0;LCD_RW=0;LCD_EN=0;_nop_();_nop_(); P0=cmd; delayNOP(); LCD_EN=1;delayNOP();LCD_EN=0;void Write_LCD_Data(uchar dat) while(LCD_Busy_Check(); LCD_RS=1;LCD_RW=0;LCD_EN=0; P0=dat;delayNOP(); LCD_EN=1;delayNOP();
36、LCD_EN=0;void LCD_Initialise() Write_LCD_Command(0x01); DelayXus(5); Write_LCD_Command(0x38); DelayXus(5); Write_LCD_Command(0x0c); DelayXus(5); Write_LCD_Command(0x06); DelayXus(5);void Set_LCD_POS(uchar pos) Write_LCD_Command(pos | 0x80);/自定義字符寫CGRAMvoid Write_NEW_LCD_Char() uchar i; Write_LCD_Com
37、mand(0x40); for(i=0;i<8;i+) Write_LCD_Data(Temperature_Chari);/延時void Delay(uint num) while(-num);/在LCD上顯示當(dāng)前的溫度void Display_Temperature() uchar i; uchar t=150; uchar ng=0; char Signed_Current_Temp; if(Temp_Value1&0xF8)=0xF8) Temp_Value1=Temp_Value1; Temp_Value0=Temp_Value0+1; if(Temp_Value0=0
38、x00) Temp_Value1+; ng=1; Display_Digit0=df_TableTemp_Value0 & 0x0F; CurrentT=(Temp_Value0 & 0xF0)>>4)|(Temp_Value1 & 0x07)<<4); Signed_Current_Temp=ng?-CurrentT:CurrentT; HI_Alarm=Signed_Current_Temp>=Alarm_Temp_HL0?1:0; LO_Alarm=Signed_Current_Temp<=Alarm_Temp_HL1?1:0;
39、 Display_Digit3=CurrentT/100; Display_Digit2=CurrentT%100/10; Display_Digit1=CurrentT%10; Current_Temp_Display_Buffer11=Display_Digit0+'0' Current_Temp_Display_Buffer10='.' Current_Temp_Display_Buffer9=Display_Digit1+'0' Current_Temp_Display_Buffer8=Display_Digit2+'0'
40、 Current_Temp_Display_Buffer7=Display_Digit3+'0' if(Display_Digit3=0) Current_Temp_Display_Buffer7=' ' if(Display_Digit2=0 && Display_Digit3=0) Current_Temp_Display_Buffer8=' ' if(ng) if(Current_Temp_Display_Buffer8=' ') Current_Temp_Display_Buffer8='-'
41、; ; else if(Current_Temp_Display_Buffer7=' ') Current_Temp_Display_Buffer7='-' else Current_Temp_Display_Buffer6='-' Set_LCD_POS(0x00); for(i=0;i<16;i+) Write_LCD_Data(Temp_Disp_Titlei); Set_LCD_POS(0x40); for(i=0;i<16;i+) Write_LCD_Data(Current_Temp_Display_Bufferi); S
42、et_LCD_POS(0x4D);Write_LCD_Data(0x00); Set_LCD_POS(0x4E);Write_LCD_Data('C');/定時器中斷void_To_INT() interrupt 1 TH0=-1000 / 256; TL0=-1000 % 256; BEEP=!BEEP; if (+Time0_Count =400) Time0_Count=0; if (HI_Alarm) HI_LED=HI_LED;else HI_LED=0; if (HI_Alarm) LO_LED=LO_LED;else LO_LED=0; TR0=0; /rom的轉(zhuǎn)
43、換與顯示void Display_Rom_Code() uchar i,t; Set_LCD_POS(0X40); for(i=0;i<8;i+) t=(RomCodei & 0xF0) >> 4); if(t>9) t+=0x37; else t+='0' Write_LCD_Data(t); t=RomCodei & 0x0F; if(t>9) t+=0x37; else t+='0' Write_LCD_Data(t); uchar Init_DS18B20() uchar status; DQ=1;Delay
44、(8);DQ=0;Delay(90);DQ=1;Delay(8); status=DQ; Delay(100); DQ=1; return status;uchar ReadOneByte() uchar i,dat=0; DQ=1;_nop_(); for(i=0;i<8;i+) DQ=0;dat>>=1;DQ=1;_nop_();_nop_(); if(DQ) dat |=0x80; Delay(30); DQ=1; return dat;WriteOneByte(uchar dat) uchar i; for(i=0;i<8;i+) DQ=0;DQ=dat &am
45、p; 0x01;Delay(5);DQ=1;dat>>=1; void Read_Temperature() if( Init_DS18B20()=1 ) DS18B20_IS_OK=0; else WriteOneByte(0xCC); WriteOneByte(0x44); Init_DS18B20(); WriteOneByte(0xCC); WriteOneByte(0xBE); Temp_Value0=ReadOneByte(); Temp_Value1=ReadOneByte(); DS18B20_IS_OK=1; /讀64位序列碼void Read_Rom_Code(
46、) uchar i; Init_DS18B20(); WriteOneByte(0x33); for(i=0;i<8;i+) RomCodei=ReadOneByte();/顯示romcodevoid Display_RomCode() uchar i; Set_LCD_POS(0X00); for(i=0;i<16;i+) Write_LCD_Data(RomCodeStri); Read_Rom_Code(); Display_Rom_Code();/顯示報警溫度void Disp_Alarm_Temperature() uchar i,ng; ng=0; if(Alarm_T
47、emp_HL0<0) Alarm_Temp_HL0=Alarm_Temp_HL0+1; ng=1; Alarm_HI_LO_STR4=Alarm_Temp_HL0 / 100+'0' Alarm_HI_LO_STR5=Alarm_Temp_HL0 / 10 % 10+'0' Alarm_HI_LO_STR6=Alarm_Temp_HL0 % 10+'0' if(Alarm_HI_LO_STR4 = '0') Alarm_HI_LO_STR4=' ' if(Alarm_HI_LO_STR4 = ' ' &
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZSM 0052-2024“領(lǐng)跑者”評價技術(shù)要求 普通型立式帶鋸床
- T-ZSA 227-2024 低慢小無人駕駛航空器車載式預(yù)警處置系統(tǒng)
- 2025年度村級林業(yè)資源監(jiān)測村級護(hù)林員職責(zé)合同
- 2025年度美甲服務(wù)連鎖品牌合作協(xié)議
- 二零二五年度汽車維修保養(yǎng)抵押借款合同
- 2025年度美發(fā)店員工勞動合同及員工福利政策
- 二零二五年度個人心理咨詢服務(wù)合同
- 2025年度消防車輛抵押借款合同范本
- 二零二五年度直播平臺用戶行為數(shù)據(jù)分析合同
- 2025年度石材石材加工定制采購協(xié)議
- 2025年黑龍江林業(yè)職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫含答案
- 2025年01月吉林白山市長白朝鮮族自治縣事業(yè)單位公開招聘工作人員(含專項)和邊境村穩(wěn)邊固邊工作專干84人(1號)筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 課題申報參考:產(chǎn)教融合背景下護(hù)理專業(yè)技能人才“崗課賽證”融通路徑研究
- 2025年四川省阿壩州小金縣面向縣外考調(diào)事業(yè)單位人員13人歷年高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- 19S406建筑排水管道安裝-塑料管道
- 多介質(zhì)過濾器計算書
- 鑼鼓曲譜16762
- 三、QHLY系列——露頂式弧形門閘門液壓啟閉機(jī)
- 《病毒性肝炎》課件.ppt
- UCP600中英文對照版
- 泄露檢測負(fù)壓波檢漏
評論
0/150
提交評論