




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、摘 要環(huán)境溫度對工業(yè)、農(nóng)業(yè)、商業(yè)和人們的日常生活都有很大的影響,而溫度的測量也就成為人們生產(chǎn)生活中一項必不可少的工作。傳統(tǒng)的測溫儀測量費時,準(zhǔn)確度也較低,數(shù)字溫度計與傳統(tǒng)的溫度計相比,具有讀數(shù)方便,測溫范圍廣,測溫準(zhǔn)確,其輸出溫度采用數(shù)字顯示。本設(shè)計所介紹的多點數(shù)字溫度計使用AT89C52單片機(jī),測溫傳感器使用DS1621, LCD1602液晶顯示屏實現(xiàn)溫度顯示。DS1621數(shù)字溫度傳感器與AT89C52單片機(jī)組成的測溫系統(tǒng),具有線路簡單、體積小等特點,而且可以掛接多個DS1621,因此可以構(gòu)成多點溫度測控系統(tǒng)。關(guān)鍵詞:單片機(jī);DS1621;多點;數(shù)字溫度計AbstractThe ambien
2、t temperature has a great impact on industry, agriculture, business and peoples daily lives, and temperature measurement has become an essential work for people to produce life. Traditional thermometer measuring time-consuming,accuracy is also low,digital thermometer compared with the traditional th
3、ermometer,with easy reading,temperature wide range, accurate temperature measurement, the output temperature digital display.Multi-point digital thermometer system described in this design include AT89C52 microcontroller, the DS1621 temperature sensor and LCD1602 liquid crystal display. This system
4、has simple lines, small size and other good characteristics, it can be attached to multiple DS1621.Keywords: Microcontroller;DS1621;multi-point;digital thermometer目 錄摘 要IAbstract第1章緒論11.1研究背景11.2溫度計的原理與發(fā)展11.3電子溫度計的概述21.4開發(fā)軟件41.5仿真軟件41.6本論文主要工作6第2章系統(tǒng)總體方案設(shè)計12.1引言12.2系統(tǒng)概述12.3硬件電路介紹1單片機(jī)1復(fù)位電路2時鐘振蕩電路3按鍵電路
5、4顯示電路5數(shù)字溫度傳感器DS16216I2C總線8第3章系統(tǒng)軟件設(shè)計113.1主程序113.2顯示子程序143.3溫度轉(zhuǎn)換命令子程序16第4章系統(tǒng)調(diào)試與仿真204.1利用Keil和Proteus進(jìn)行調(diào)試20Proteus原理圖繪制20Keil程序編譯20Proteus仿真214.2仿真結(jié)果22第5章總結(jié)24參考文獻(xiàn)25致 謝26附 錄27第1章 緒論1.1 研究背景21世紀(jì),科學(xué)技術(shù)的發(fā)展日新月異,科技的進(jìn)步帶動了測量技術(shù)的發(fā)展,現(xiàn)代控制設(shè)備的性能和結(jié)構(gòu)發(fā)生了翻天覆地的變化。我們已經(jīng)進(jìn)入了高速發(fā)展的信 息時代,測量技術(shù)也成為當(dāng)今科技的一個主流,廣泛地深入到研究和應(yīng)用工程的各個領(lǐng)域。 溫度計作
6、為測溫器件廣泛應(yīng)用于日常生活、工業(yè)、農(nóng)業(yè)、軍事、教育、航天航空等領(lǐng)域,是應(yīng)用最廣泛的產(chǎn)品之一。傳統(tǒng)溫度計采用水銀熱脹冷縮原理制成,價格便宜,但使用、保存、運輸、攜帶都十分不便,并伴有環(huán)境污染。而數(shù)字溫度計正好滿足了這個需求。電子數(shù)字溫度計以單片機(jī)為核心,以溫度傳感器為基礎(chǔ),具有使用方便,操作簡單,測溫范圍大,測量精確,輸出溫度數(shù)字顯示等特點。它不僅使用方便,而且調(diào)節(jié)靈活,給人們的生產(chǎn)生活帶來極大方便,近幾年來被廣泛用于單片機(jī)控制的儀器儀表和低功耗電子產(chǎn)品中,是未來工業(yè)生產(chǎn)家庭顯示器發(fā)展的主流方向。分布式溫度傳感器在電力工業(yè)、煤礦、森林、火災(zāi)、高層建筑、航空、航天飛行器等有著重要的應(yīng)用前景,引起
7、研究人員的廣泛關(guān)注。近年來,已經(jīng)有不少分布式溫度傳感器的報道,包括基于光纖非線性效應(yīng)的拉曼溫度傳感器等,但由于其昂貴的成本而無法得到廣泛的應(yīng)用。1.2 溫度計的原理與發(fā)展兩個冷熱不同的物體放在一起,互相接觸,經(jīng)過一段時間后,兩個溫度就會達(dá)到相同的冷熱程度。這時用科學(xué)術(shù)語說,它們相互達(dá)到了熱平衡。再進(jìn)一步,如果有三個物體A、B、C,其冷熱程度不同,A 和B 互相隔開,并使A 和B 與物體C 相接觸。經(jīng)過一段時間后,A 和C 及B 和C 都達(dá)到了熱平衡。這時,如果再使A 和B 相接觸,則會發(fā)現(xiàn)A 和B 之間不發(fā)生熱傳遞,各自的溫度也不發(fā)生變化。這說明A 和B 在開始接觸時就處于熱平衡狀態(tài)。由此會得
8、到一個結(jié)論:如果物體A 和B 都跟第三個物體C 處于熱平衡狀態(tài),則A 和B 也必定處于熱平衡狀態(tài),即一切互為熱平衡的物體都具有相同的溫度。這就是用溫度計測定物體溫度的依據(jù)。最早的溫度計是在 1593 年由意大利科學(xué)家伽利略(15641642)發(fā)明的。他的第一只溫度計是一根一端敞口的玻璃管,另一端帶有核桃大的玻璃泡。使用時先給玻璃泡加熱,然后把玻璃管插入水中。隨著溫度的變化,玻璃管中的水面就會上下移, 根據(jù)移動的多少就可以判定溫度的變化和溫度的高低。這種溫度計,受外界大氣壓強(qiáng)等環(huán)境因素的影響較大,所以測量誤差大。以后荷蘭人華倫海特在1709 年利用酒精,在1714 年又利用水銀作為測量物質(zhì),制造
9、了更精確的溫度計。他觀察了水的沸騰溫度、水和冰混合時的溫度、鹽水和冰混合時的溫度,經(jīng)過反復(fù)實驗與核準(zhǔn),最后把一定濃度的鹽水凝固時的溫度定為0,把純水凝固時的溫度定為32,把標(biāo)準(zhǔn)大氣壓下水沸騰的溫度定為212,用代表華氏溫度,這就是華氏溫度計。在華氏溫度計出現(xiàn)的同時,法國人列繆爾(16831757)也設(shè)計制造了一種溫度計。他認(rèn)為水銀的膨脹系數(shù)太小,不宜做測溫物質(zhì)。他專心研究用酒精作為測溫物質(zhì)的優(yōu)點。他反復(fù)實踐發(fā)現(xiàn),含有1/5 水的酒精,在水的結(jié)冰溫度和沸騰溫度之間,其體積的膨脹是從1000 個體積單位增大到1080 個體積單位。因此他把冰點和沸點之間分成80 份,定為自己溫度計的溫度分度,這就是
10、列氏溫度計。華氏溫度計制成后又經(jīng)過30 多年,瑞典人攝爾修斯于1742 年改進(jìn)了華倫海特溫度計的刻度,他把水的沸點定為零度,把水的冰點定為100 度。后來他的同事施勒默爾把兩個溫度點的數(shù)值又倒過來,就成了現(xiàn)在的百分溫度,即攝氏溫度,用表示。華氏溫度與攝氏溫度的關(guān)系為:9/5+32,或59(-32)。 現(xiàn)在英、美國家多用華氏溫度,德國多用列氏溫度,而世界科技界和工農(nóng)業(yè)生產(chǎn)中,以及我國、法國等大多數(shù)國家則多用攝氏溫度。隨著科學(xué)技術(shù)的發(fā)展和現(xiàn)代工業(yè)技術(shù)的需要,測溫技術(shù)也不斷地改進(jìn)和提高。由于測溫范圍越來越廣,根據(jù)不同的要求,又制造出滿足不同需要的測溫儀器。1.3 電子溫度計的概述電子溫度計以單片機(jī)為
11、核心,以溫度傳感器為基礎(chǔ),具有使用方便,操作簡單,測溫范圍大,測量準(zhǔn)確,輸出溫度數(shù)字顯示等特點,它不僅使用方便,而且調(diào)節(jié)靈活,給人們的生活帶來極大的方便。近幾年來被廣泛用于單片機(jī)控制的儀器儀表和低功耗電子產(chǎn)品,是未來工業(yè)生產(chǎn)和家庭顯示器發(fā)展的主流。溫度測量涉及各行各業(yè),而傳統(tǒng)的溫度測量儀器有酒精溫度計、煤油溫度計、水銀溫度計等,都需人工手動測量。在科學(xué)技術(shù)發(fā)展的今天很多場合(有毒、高溫、無人等),用傳統(tǒng)的溫度測量技術(shù)就顯得比較麻煩,所以數(shù)字化溫度計的需求就變得非常迫切。單片機(jī)的出現(xiàn),電子技術(shù)的飛速發(fā)展,使溫度計的自動化、數(shù)字化就變得容易實現(xiàn)。數(shù)字溫度計的應(yīng)用主要是在溫度控制上。凡需加熱的場合,
12、往往都需要對加熱功率、加熱溫度和加熱時間進(jìn)行控制、調(diào)節(jié)和顯示。而電熱控制元件按其控制目的分成溫度控制、功率控制和時間控制三種方式。其中溫度控制又分熱雙金屬溫控元件、磁性溫控元件,功率控制分開關(guān)調(diào)位和可控硅調(diào)位。時間控制分機(jī)械式定時器和電子式定時器。熱雙金屬溫控元件控溫精度l0,本身結(jié)構(gòu)和應(yīng)用系統(tǒng)均較簡單,價格便宜,控溫點調(diào)節(jié)方便。但精度較差,適用于家用電熱器。磁性溫控元件控溫精度1,結(jié)構(gòu)簡單,溫度控制精度高,但是控溫點調(diào)節(jié)不方便。熱電阻和熱電偶溫控元件溫控精度分別可達(dá)1、0.5,溫度控制精度高,本身結(jié)構(gòu)不復(fù)雜,但系統(tǒng)復(fù)雜,價格較貴,控溫點調(diào)節(jié)方便,可實現(xiàn)自動化,適合于工業(yè)電熱裝置。特別是熱電阻
13、能夠真實地反映被測點的溫度,信號傳輸受干擾較小,應(yīng)用最趨于廣泛。熱電阻的R t =R0(1+At+Bt2+Ct3+),式中R00時的電阻件(),t被測介質(zhì)溫度,A、B、C分度常數(shù)。開關(guān)調(diào)位控溫精度約10,溫度控制精度低、溫度波動較大,但系統(tǒng)簡單、價格低、故障少、可靠性強(qiáng)。可控硅調(diào)位溫度控制精度3,比開關(guān)調(diào)位高、無噪聲、無觸點,但移相能發(fā)電路對電網(wǎng)波形有干擾。零位觸發(fā)線路系統(tǒng)較復(fù)雜。機(jī)械式定時控溫精度10,定時精度不高,但動作可靠性較高。維修方便,價格便宜。電子定時器控溫精度士5%,定時精度較高,但系統(tǒng)較復(fù)雜,價格較貴。此外,還有溫包式溫控元件,電接點水銀溫度計溫控元件等等。數(shù)字顯示溫度調(diào)節(jié)儀還
14、有TA091097、DB500、DBl000 等型號。為了滿足生產(chǎn)工藝的要求。還有數(shù)字式程序調(diào)節(jié)儀,如上海大華儀表公司的KP系列產(chǎn)品??勺疃噘A藏19種程序段,每個程序段最多能由19個步進(jìn)組成,程序段可以隨意連接和反復(fù)??伸`活地進(jìn)行程序段的組合,在每個步進(jìn)中8種PID常數(shù)可任意選擇,另8種PID常數(shù)由SV值自動選擇,在廣泛的溫度范圍內(nèi)可實現(xiàn)最佳的程序控制。1.4 開發(fā)軟件Keil C51是美國Keil Software公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。Keil提供了包括C編譯器、宏匯編、連接器、庫管理
15、和一個功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uVision)將這些部分組合在一起。Keil C51軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全Windows界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。下面詳細(xì)介紹Keil C51開發(fā)系統(tǒng)各部分功能和使用。C51工具包的整體結(jié)構(gòu),uVision與Ishell分別是C51 for Windows和for Dos的集成開發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等
16、整個開發(fā)流程。開發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51及C51編譯器編譯生成目標(biāo)文件(.OBJ)。目標(biāo)文件可由LIB51創(chuàng)建生成庫文件,也可以與庫文件一起經(jīng)L51連接定位生成絕對目標(biāo)文件(.ABS)。ABS文件由OH51轉(zhuǎn)換成標(biāo)準(zhǔn)的Hex文件,以供調(diào)試器dScope51或tScope51使用進(jìn)行源代碼級調(diào)試,也可由仿真器使用直接對目標(biāo)板進(jìn)行調(diào)試,也可以直接寫入程序存貯器如EPROM中。Keil的優(yōu)點:1.Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。2.與匯編相比,C語言在功能上、結(jié)構(gòu)性
17、、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。用過匯編語言后再使用C來開發(fā),體會更加深刻。Keil C51軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全Windows界面。1.5 仿真軟件目前,存在的仿真軟件有WAVE、SKYEYE、ARMULATOR、KEIL 等。其中南京偉福實業(yè)有限公司的WAVE 軟件既可配合仿真器使用,也可脫機(jī)仿真,仿真的是51、PIC、ARM 等系列單片機(jī)。SKYEYE 是一個在Linux 和Windows平臺上實現(xiàn)純軟件仿真的IDE,是指令級仿真器,可仿真多款MCU 硬件系統(tǒng),但要針對相應(yīng)的開發(fā)板硬件。ARM 公司的IDE-ADS 中的指令集模擬器ARMUL
18、ATOR,仿真的對象是ARM 核,仿真了特定的硬件。德國KEIL 公司的KEIL 軟件是基于5051 的單片機(jī)編譯、仿真軟件,其功能強(qiáng)大,但價格昂貴。本次設(shè)計使用的是 Proteus 仿真軟件。Proteus 是英國Labcenter 公司開發(fā)的電路分析與仿真軟件,用于仿真、分析各種模擬器件和集成電路,該軟件的特點是:1)實現(xiàn)了單片機(jī)仿真和Spice 電路仿真相結(jié)合。具有模擬電路仿真、數(shù)字電路仿真、單片機(jī)及其外圍電路組成的系統(tǒng)的仿真、RS 232 動態(tài)仿真、I2C 調(diào)試器、SPI 調(diào)試器、鍵盤和LCD 系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號發(fā)生器等。2)支持主流單片機(jī)系統(tǒng)的
19、仿真。目前支持的單片機(jī)類型有:68000 系列、8051系列、AVR 系列、PIC12 系列、PIC16 系列、PIC18 系列、Z80 系列、HC11 系列以及各種外圍芯片。3)提供軟件調(diào)試功能。在硬件仿真系統(tǒng)中具有全速、單步、設(shè)置斷點等調(diào)試功能,同時可以觀察各個變量、寄存器等的當(dāng)前狀態(tài),因此在該軟件仿真系統(tǒng)中,也必須具有這些功能; 同時支持第三方的軟件編譯和調(diào)試環(huán)境, 如KeilC51Vision 2 等軟件。4)具有強(qiáng)大的原理圖繪制功能。啟動Proteus 后將出現(xiàn)ISIS 的設(shè)計窗口。包括:標(biāo)題欄、主菜單、標(biāo)準(zhǔn)工具欄、繪圖工具欄、狀態(tài)欄、對象選擇按鈕、預(yù)覽對象方位控制按鈕、仿真進(jìn)程控制
20、按鈕(最下面一行)、預(yù)覽窗口、對象選擇器窗口、圖形編輯窗口。Proteus 與其它單片機(jī)仿真軟件不同的是,它不僅能仿真單片機(jī)CPU 的工作情況, 也能仿真單片機(jī)外圍電路或沒有單片機(jī)參與的其它電路的工作情況。因此在仿真和程序調(diào)試時, 關(guān)心的不再是某些語句執(zhí)行時單片機(jī)寄存器和存儲器內(nèi)容的改變, 而是從工程的角度直接看程序運行和電路工作的過程和結(jié)果。對于這樣的仿真實驗, 從某種意義上講, 是彌補(bǔ)了實驗和工程應(yīng)用間脫節(jié)的矛盾和現(xiàn)象。同時, 當(dāng)硬件調(diào)試成功后, 利用Proteus ARES 軟件, 很容易獲得其PCB 圖,為今后的制造提供了方便。1.6 本論文主要工作本文將介紹一種基于單片機(jī) AT89C
21、52 控制的多點數(shù)字溫度計,以DS1621 為溫度傳感器、LCD1602液晶顯示器顯示溫度。通過Keil軟件來進(jìn)行程序編寫,最后通過proteus軟件對整個系統(tǒng)進(jìn)行仿真。第2章 系統(tǒng)總體方案設(shè)計2.1 引言隨著計算科學(xué)的迅速發(fā)展,設(shè)計一個數(shù)字溫度計的方法也變的多種多樣??梢杂肁RM,有的基于數(shù)字電路,有的則是利用CPLD 設(shè)計溫度計,像這樣的設(shè)計很多,而本設(shè)計所選擇的方案是利用單片AT89C52 來設(shè)計一個簡單的多點數(shù)字溫度計。2.2 系統(tǒng)概述此設(shè)計介紹的數(shù)字溫度計與傳統(tǒng)的溫度計相比,具有讀數(shù)方便,測溫范圍廣,測溫準(zhǔn)確的優(yōu)點??刂破魇褂玫氖菃纹瑱C(jī)AT89C52,測溫傳感器使用的是DS1621,
22、LCD液晶顯示屏實現(xiàn)溫度顯示。系統(tǒng)構(gòu)成如圖單片機(jī)時鐘電路切換按鍵LCD顯示溫度檢測電路復(fù)位電路圖 2.12.3 硬件電路介紹2.3.1 單片機(jī)單片機(jī)采用美國ATMEL公司生產(chǎn)的AT89C52 單片機(jī)。AT89C52是一種低功耗、高性能CMOS8位微控制器,具有8K 在系統(tǒng)可編程Flash 存儲器。AT89C52使用Atmel 公司高密度非易失性存儲器技術(shù)制造,與工業(yè)89C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,AT89C52擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得AT89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效
23、的解決方案。AT89C52主要功能參數(shù):1、兼容MCS51指令系統(tǒng)2、8k可反復(fù)擦寫(大于1000次)Flash ROM;3、32個雙向I/O口;4、256x8bit內(nèi)部RAM;5、3個16位可編程定時/計數(shù)器中斷;6、時鐘頻率0-24MHz;7、2個串行中斷,可編程UART串行通道;8、2個外部中斷源,共8個中斷源;9、2個讀寫中斷口線,3級加密位;10、低功耗空閑和掉電模式,軟件設(shè)置睡眠和喚醒功能;11、有PDIP、PQFP、TQFP及PLCC等幾種封裝形式,以適應(yīng)不同產(chǎn)品的需求。AT89C52 的引腳圖如圖2.1所示:圖2.2 AT89C52引腳示意圖2.3.2 復(fù)位電路復(fù)位電路采用RC
24、充電電路組成上電復(fù)位單片機(jī)電路,當(dāng)系統(tǒng)上電時,在上電初期,電容C充電,使復(fù)位腳持續(xù)高電平,當(dāng)C充電到達(dá)一定程度復(fù)位腳電位會慢慢變低,最后被電阻R 完全拉低,高電平復(fù)位的時間由充電的時間決定,充電時間又由R 與C 的阻值和容值之積決定。在復(fù)位輸入端出現(xiàn)高電平的時候?qū)崿F(xiàn)單片機(jī)復(fù)位和初始化。在振蕩器運行的情況下,要實現(xiàn)復(fù)位操作,必須使復(fù)位腳至少保持兩個機(jī)器周期(24 個振蕩周期)的高電平。CPU 在第二個機(jī)器周期內(nèi)執(zhí)行內(nèi)部復(fù)位操作,以后每個機(jī)器周期重復(fù)一次,直到復(fù)位端電平變低。復(fù)位期間不產(chǎn)生ALE 和PSEN 信號。內(nèi)部復(fù)位操作使得堆棧指示器SP 為07H,各端口都為1(P0P3 口全部都是0FFH
25、)。特殊功能寄存器都復(fù)位為0,但不影響內(nèi)部RAM 的狀態(tài),當(dāng)RST 腳返回低電平以后,CPU 從0 地址開始執(zhí)行程序。加電瞬間 復(fù)位端的電位與 VCC 相同,隨著RC 電路充電電流減小,復(fù)位端的電位逐漸下降。只要復(fù)位端保持10 豪秒以上的高電平就能使AT89C52 單片機(jī)有效的復(fù)位。復(fù)位電路中的RC 參數(shù)通常都由實驗調(diào)整,當(dāng)振蕩頻率選用11.0592M 的時候,C選用10u 電容,R選用200,便能可靠地實現(xiàn)加電自動復(fù)位。若采用RC 電路接斯密特電路的輸入端,斯密特電路輸出端接AT89C52 單片機(jī)和外圍電路的復(fù)位端,能使系統(tǒng)可靠的同步復(fù)位。圖 2.32.3.3 時鐘振蕩電路AT89C52內(nèi)部
26、有一個用于構(gòu)成震蕩器的高增益反向放大器,此放大器的輸入端和輸出端分別是XTAL1和XTAL2,在XTAL1和XTAL2上外接晶振可構(gòu)成時鐘電路。時鐘電路在單片機(jī)系統(tǒng)中起著非常重要的作用,是保證系統(tǒng)正常工作的基礎(chǔ)。晶振頻率的大小決定了單片機(jī)系統(tǒng)工作的快慢。本次設(shè)計采用內(nèi)部方式的外部時鐘接法。為達(dá)到振蕩周期是12MHZ的要求,這里要采用12MHZ的晶振,電容C1、C2對頻率有微調(diào)作用,故外接晶振時,C1和C2在本設(shè)計中選擇20pF,振蕩頻率取12MHz。晶振的兩個引腳分別連到XTAL1和XTAL2振蕩脈沖輸入引腳。具體連接圖如圖所示:圖2.42.3.4 按鍵電路按鍵電路主要功能是對多個溫度傳感器進(jìn)
27、行切換,從而是各個溫度傳感器的溫度可以顯示在LCD屏幕上。按鍵采用動態(tài)掃描方式得到鍵值。如圖:P1.0 的電位在沒有按鍵按下的時候是高電平,當(dāng)KEY1 按下后,P1.0 會迅速拉低成低電平,然后再判斷KEY1 鍵是不是松開,若松開得到鍵值后調(diào)用鍵盤按下功能程序。圖2.52.3.5 顯示電路顯示屏是最常用的輸出設(shè)備。特別是發(fā)光二極管顯示器(LED)和液晶顯示器(LCD),由于結(jié)構(gòu)簡單,價格便宜,接口容易等特點得到廣泛的應(yīng)用。尤其是單片機(jī)系統(tǒng)中大量使用。本設(shè)計選用的LCD1602液晶顯示屏,1602LCD微功耗、體積小、顯示內(nèi)容豐富、超薄輕巧,常用在袖珍式儀表和低功耗應(yīng)用系統(tǒng)中。1602液晶也叫1
28、602字符型液晶它是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊它有若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符。每位之間有一個點距的間隔每行之間也有間隔起到了字符間距和行間距的作用,正因為如此所以他不能顯示圖形。1602LCD是指顯示的內(nèi)容為16X2,即可以顯示兩行,每行16個字符液晶模塊(顯示字符和數(shù)字)。目前市面上字符液晶絕大多數(shù)是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780寫的控制程序可以很方便地應(yīng)用于市面上大部分的字符型液晶。1602LCD特性:l +5V電壓,對比度可調(diào)l 內(nèi)含復(fù)位電路l 提供各種控制命令,如:清屏、
29、字符閃爍、光標(biāo)閃爍、顯示移位等多種功能l 有80字節(jié)顯示數(shù)據(jù)存儲器DDRAMl 內(nèi)建有192個5X7點陣的字型的字符發(fā)生器CGROMl 8個可由用戶自定義的5X7的字符發(fā)生器CGRAM圖2.62.3.6 數(shù)字溫度傳感器DS1621DS1621是DALLAS公司生產(chǎn)的一種功能較強(qiáng)的數(shù)字式溫度傳感器和恒溫控制器。與同系列的DS1620相比控制更為簡單,接口與I2C總線兼容,且可以使用一片控制器控制多達(dá)8片的DS1621。其數(shù)字溫度輸出達(dá)9位,精度為0.5。通過讀取內(nèi)部的計數(shù)值和用于溫度補(bǔ)償?shù)拿繑z氏度計數(shù)值,利用公式計算還可提高溫度值的精度。DS1621可工作在最低2.7V電壓下,適用于低功耗應(yīng)用系
30、統(tǒng)。利用DS1621和一片2051單片機(jī)即可構(gòu)成一個簡潔但功能強(qiáng)大的低電壓溫度測量控制系統(tǒng)。1. DS1621基本特性DS1621無需外圍元件即可測量溫度,將結(jié)果以9位數(shù)字量(兩字節(jié)傳輸)給出,測量范圍為55155,精度為0.5;典型轉(zhuǎn)換時間為1s;用戶可自行設(shè)置恒溫計的溫度值,且將該設(shè)置值存儲在非易失存儲器中。數(shù)據(jù)的讀出和寫入通過一個2線串行接口完成,DS1621采用8腳DIP或SOIC封裝。DS1621的引腳描述如下所示:引腳符號描述1SDA2-線串行數(shù)據(jù)輸入/輸出端2SCL2-線串行時鐘端3Tout恒溫計輸出端。當(dāng)溫度超過TH時置位,當(dāng)溫度降到TL之下是復(fù)位4GND接地端5A2片選地址輸
31、入A26A1片選地址輸入A17A0片選地址輸入A08Vdd電源端2. DS1621的工作方式DS1621既可獨立工作(此時作為恒溫控制器),也可通過2線接口在MPU的控制下完成溫度的測量和計算。DS1621的工作方式是由片上的設(shè)置/狀態(tài)寄存器來決定的,該寄存器的定義如下:其中DONE為轉(zhuǎn)換完成位,溫度轉(zhuǎn)換結(jié)束時置1,正在進(jìn)行轉(zhuǎn)換時為0;THF為高溫標(biāo)志位,當(dāng)溫度超過TH預(yù)置值時置1;TLF為低溫標(biāo)志位,當(dāng)溫度低于TL預(yù)置值時置1;NVB為非易失存儲器忙位,向片內(nèi)E2PROM寫入時置1,寫入結(jié)束后復(fù)位寫入E2PROM通常需要10ms;PCL為輸出極性位,為1時激活狀態(tài)為邏輯高電平,為0時激活狀態(tài)
32、為邏輯低電平,該位是非易失的;1SHOT為一次模式位,該位為1時每次收到開始轉(zhuǎn)換命令執(zhí)行一次溫度轉(zhuǎn)換,為0時執(zhí)行連續(xù)溫度轉(zhuǎn)換,該位亦是非易失的。DS1621在嵌入一個系統(tǒng)前,需由MPU將設(shè)置/狀態(tài)寄存器值通過2線接口寫入該寄存器,之后DS1261或作為恒溫計獨立工作,或在MPU控制下進(jìn)行溫度測量和計算。MPU對DS1621的控制和寫入是通過2線接口進(jìn)行數(shù)據(jù)傳輸?shù)?,MPU對DS1621發(fā)命令字,之后完成對DS1621的讀或?qū)?。由于?shù)據(jù)傳輸協(xié)議滿足I2C總線規(guī)范,MPU可將DS1621作為具有I2C總線接口的從器件對待,器件地址為1001A2A1A0R/W,通過A2A1A0編碼,一次可控制最多8片
33、DS1621,完成8點溫度采樣。寫入和讀出數(shù)據(jù)格式和時序完成按串行通訊接口規(guī)范,SCL和SDA線滿足串口通訊啟動條件,MPU發(fā)出器件地址字節(jié),其中R/W決定讀/寫方向。MPU發(fā)出DS1621的命令字,DS1621發(fā)出ACK信號,之后為從器件的數(shù)據(jù)字節(jié),主器件的ACK信號,最后為串口通訊結(jié)束條件,完成一次數(shù)據(jù)通訊。DS1621的命令集包含下述8個命令字:DONETHFTLFNVB10PCL1SHOT 讀溫度命令A(yù)Ah該命令讀出最近一次溫度轉(zhuǎn)換的結(jié)果。DS1621將送出兩字節(jié)數(shù)據(jù):第一字節(jié)為8位二進(jìn)制溫度值(攝氏溫度),該數(shù)據(jù)以二進(jìn)制補(bǔ)碼形式給出,其中最高位為溫度符號位(0為高于0,1為低于0),
34、第二字節(jié)最高位為精度位(0為0.0,1為0.5),其余位不用。讀寫TH寄存器命令A(yù)1h若R/W為0,該命令寫入高溫寄存器TH,之后MPU發(fā)出兩字節(jié)溫度上限值以確定DS1621的恒溫上限;若R/W為1,DS1621送出兩字節(jié)的TH寄存器值。讀寫TL寄存器命令A(yù)2h若R/W為0,該命令寫入低溫寄存器TL,之后MPU發(fā)出兩字節(jié)溫度下限值以確定DS1621的恒溫下限;若R/W為1,DS1621送出兩字節(jié)的TL寄存器值。讀寫設(shè)置命令A(yù)Ch若R/W為0,該命令寫入設(shè)置/狀態(tài)寄存器,之后MPU發(fā)出一字節(jié)設(shè)置/狀態(tài)寄存器值以確定DS1621的工作方式;若R/W為1,DS1621送出設(shè)置/狀態(tài)寄存器值。讀計數(shù)器
35、命令A(yù)8h該命令只在R/W為1時有效,發(fā)出命令后,DS1621送出計數(shù)器計數(shù)值COUNT_REMAIN。讀斜率命令A(yù)9h該命令只在R/W為1時有效,發(fā)出命令后,DS1621送出用于溫度補(bǔ)償?shù)男甭视嫈?shù)器值,即前面提到的每攝氏度計數(shù)值COUNT_RER桟。開始溫度轉(zhuǎn)換命令EEh該命令啟動溫度轉(zhuǎn)換,無需更多數(shù)據(jù)。在一次工作方式下,該命令啟動轉(zhuǎn)換,DS1621完成之后保持空閑;在連續(xù)工作方式下,該命令啟動DS1621連續(xù)進(jìn)行溫度轉(zhuǎn)換。結(jié)束溫度轉(zhuǎn)換命令22h該命令結(jié)束溫度轉(zhuǎn)換,無需更多數(shù)據(jù)。在連續(xù)工作方式下,該命令停止DS1621的溫度轉(zhuǎn)換,之后DS1621保持空閑直到MPU發(fā)出新的開始溫度轉(zhuǎn)換命令來繼
36、續(xù)溫度轉(zhuǎn)換。通過該命令集可以看出,DS1621既可以作為獨立的恒溫控制器單獨工作(利用命令A(yù)1h、A2h、ACh),也可以進(jìn)行實時的溫度測量(利用命令A(yù)Ah、ACh、EEh、22h,精度為0.5),還可配合命令A(yù)8h、A9h,通過軟件計算得到更高的溫度精度,計算公式為:T=TR0.25(NM)/N式中,T2為讀出溫度值,N為計數(shù)器計數(shù)值COUNT_RER_C,M為每攝氏度計數(shù)值COUNT_REMAIN。2.3.7 I2C總線I2C(InterIntegrated Circuit)總線是由PHILIPS公司開發(fā)的兩線式串行總線,用于連接微控制器及其外圍設(shè)備。是微電子通信控制領(lǐng)域廣泛采用的一種總線
37、標(biāo)準(zhǔn)。它是同步通信的一種特殊形式,具有接口線少,控制方式簡單,器件封裝形式小,通信速率較高等優(yōu)點。1、I2C總線特征:(1)只要求兩條總線線路:一條串行數(shù)據(jù)線SDA,一條串行時鐘線SCL。 (2)每個連接到總線的器件都可以通過唯一的地址和一直存在的簡單的主機(jī)/從機(jī)關(guān)系軟件設(shè)定地址,主機(jī)可以作為主機(jī)發(fā)送器或主機(jī)接收器。(3)它是一個真正的多主機(jī)總線,如果兩個或更多主機(jī)同時初始化,數(shù)據(jù)傳輸可以通過沖突檢測和仲裁防止數(shù)據(jù)被破壞。(4)串行的8 位雙向數(shù)據(jù)傳輸位速率在標(biāo)準(zhǔn)模式下可達(dá)100kbit/s,快速模式下可達(dá)400kbit/s,高速模式下可達(dá)3.4Mbit/s。(5)連接到相同總線的IC 數(shù)量只
38、受到總線的最大電容400pF 限制。2、I2C總線位傳輸由于連接到I2C 總線的器件有不同種類的工藝(CMOS、NMOS、雙極性),邏輯0(低)和邏輯1(高)的電平不是固定的,它由電源VCC的相關(guān)電平?jīng)Q定,每傳輸一個數(shù)據(jù)位就產(chǎn)生一個時鐘脈沖。 SDA 線上的數(shù)據(jù)必須在時鐘的高電平周期保持穩(wěn)定。數(shù)據(jù)線的高或低電平狀態(tài)只 有在SCL 線的時鐘信號是低電平時才能改變 。圖2.73、起始和停止條件SCL 線是高電平時,SDA 線從高電平向低電平切換,這個情況表示起始條件; SCL 線是高電平時,SDA 線由低電平向高電平切換,這個情況表示停止條件。 起始和停止條件一般由主機(jī)產(chǎn)生,總線在起始條件后被認(rèn)為
39、處于忙的狀態(tài) ,在停止條件的某段時間后總線被認(rèn)為再次處于空閑狀態(tài)。 如果產(chǎn)生重復(fù)起始條件而不產(chǎn)生停止條件,總線會一直處于忙的狀態(tài),此時的起始條件(S)和重復(fù)起始條件(Sr) 在功能上是一樣的。圖2.8 第3章 系統(tǒng)軟件設(shè)計系統(tǒng)程序主要包括主程序,溫度轉(zhuǎn)換命令子程序,顯示數(shù)據(jù)子程序,按鍵切換子程序等。3.1 主程序主程序的主要功能是負(fù)責(zé)溫度的實時顯示,讀出并處理當(dāng)前DS1621的溫度值。其流程如下圖所示:YNY逐個配置并啟動DS1621溫度采集溫度轉(zhuǎn)化LCD初始化顯示第一個DS1621溫度值Time=1KEY按鈕是否按下Time=5顯示下一個DS1621溫度值Time+1N開始圖3.1 主程序流
40、程圖/*/主函數(shù)*/void main() uchar times=1,SenNum=1; /定義局部變量LCD_Initial(); /LCD進(jìn)行初始化LCD_WriteStringFlash(8,1,DS1621); /LCD顯示“DS1621”LCD_WriteStringFlash(3,2,System Initial);/LCD顯示“System Initial”LCD_WriteStringFlash(1,3,); /LCD顯示“”WriteConfig(sen1,0x02);/配置第一個DS1621StartConversion(sen1); /啟動第一個DS1621LCD_Wr
41、iteStringFlash(5,3,); /LCD顯示“”WriteConfig(sen2,0x02);/配置第2個DS1621StartConversion(sen2);/啟動第2個DS1621LCD_WriteStringFlash(9,3,);/LCD顯示“”WriteConfig(sen3,0x02); /配置第3個DS1621StartConversion(sen3); /啟動第3個DS1621LCD_WriteStringFlash(13,3,); /LCD顯示“”WriteConfig(sen4,0x02); /配置第4個DS1621StartConversion(sen4);
42、 /啟動第4個DS1621LCD_CleanPanel(); /清除LCD顯示LCD_WriteStringFlash(8,1,DS1621);/LCD顯示“DS1621”LCD_WriteStringFlash(3,2,System Running);/LCD顯示“System Running”while(1) delayms(50); /延時50msif(Key=0) /判斷按鍵是否按下delayms(10); /延時10ms,防抖if(Key=0)times+; /按鍵次數(shù)加1while(Key=0); /等待按鍵松開switch(times) /判斷按鍵次數(shù)case1: SenNum=
43、sen1;LCD_WriteStringFlash(2,4,Sensor1=);break;/times=1,顯示第1個DS1621的測試case2: SenNum=sen2;LCD_WriteStringFlash(2,4,Sensor2=);break;/顯示第2個DS1621的測試case3: SenNum=sen3;LCD_WriteStringFlash(2,4,Sensor3=);break; /顯示第3個DS1621的測試case4: SenNum=sen4;LCD_WriteStringFlash(2,4,Sensor4=);break; /顯示第4個DS1621的測試case
44、5: times=1;SenNum=sen1;LCD_WriteStringFlash(2,4,Sensor1=);break;/顯示第1個DS1621的測試default: SenNum=sen1;LCD_WriteStringFlash(2,4,Sensor1=);break; /顯示第1個DS1621的測試ReadTemp(SenNum);/讀取當(dāng)前DS1621的溫度DispTemp();/顯示當(dāng)前DS1621的溫度3.2 顯示子程序 顯示數(shù)據(jù)子程序主要對溫度傳感器對溫度進(jìn)行轉(zhuǎn)換后在LCD液晶屏上顯示。其流程圖如下所示:N是否零下顯示“”不顯示“”計算整數(shù)位計算小數(shù)位是否有小數(shù)位顯示“.
45、0”顯示“.5”YNY開始結(jié)束圖3.2 顯示子程序流程圖/*/顯示當(dāng)前DS1621的溫度子函數(shù)*/void DispTemp(void)unsigned char i,val;val=Temp1; if(val200) /判斷是否是零下溫度 val = 255-val;LCD_WriteStringFlash(10,4,-);/是零下溫度顯示“-”if(!point) /判斷是否帶小數(shù)val+=1;/溫度值+1else LCD_WriteStringFlash(10,4, ); /零上溫度,不顯示“-”i=(Array(val/10)/10); /轉(zhuǎn)換溫度值的百位數(shù)據(jù)LCD_SramChar(
46、11,4,i); /顯示溫度值的百位數(shù)據(jù)i=(Array(val/10)%10); /轉(zhuǎn)換溫度值的十位數(shù)據(jù)LCD_SramChar(12,4,i); /顯示溫度值的十位數(shù)據(jù)i=(Arrayval%10); /轉(zhuǎn)換溫度值的個位數(shù)據(jù)LCD_SramChar(13,4,i); /顯示溫度值的個位數(shù)據(jù)LCD_WriteStringFlash(14,4,.);/顯示小數(shù)點if(point)LCD_WriteStringFlash(15,4,5);/帶小數(shù)時,顯示“.5”elseLCD_WriteStringFlash(15,4,0); /不帶小數(shù)時,顯示“.0”LCD_WriteStringFlash(
47、17,4,C); /顯示溫度標(biāo)識void SetTemperatureLimit(unsigned char sen,uchar HI,uchar LO)command_data4 = HI;command_data5= 0;command_data7 = LO;command_data8 = 0;SendData(sen,3,5);delayms(10);SendData(sen,6,8);3.3 溫度轉(zhuǎn)換命令子程序 溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命令,溫度轉(zhuǎn)換命令子程序流程圖如下:是否判斷I2C總線是否在忙傳送從機(jī)地址,連接設(shè)定需要訪問的從機(jī)DS1621溫度轉(zhuǎn)換啟動DS1621設(shè)置
48、忙標(biāo)志 圖3.3 溫度轉(zhuǎn)換子程序/*/傳送一個字節(jié)子函數(shù)*/void SendByte(uchar wd) uchar i;a = wd;for(i=0;i8;i+)/一個字節(jié)包括8個位,需要傳送8次 SCL = 0;/SCL設(shè)置為低電平_nop_();_nop_();SDA = MSB; /傳送出當(dāng)前的最高位a = 1; /傳送的數(shù)據(jù)左移一位,為下一次傳送做準(zhǔn)備_nop_();_nop_();SCL = 1;/SCL設(shè)置為高電平_nop_();_nop_();SCL = 0; /SCL設(shè)置為低電平SDA = 1; /傳送完設(shè)置默認(rèn)狀態(tài),等待DS1621的回應(yīng)SCL = 1; / 傳送完設(shè)置默
49、認(rèn)狀態(tài)_nop_();_nop_();if(!SDA) SCL = 0; /DS1621 有響應(yīng)_nop_();_nop_();else /DS1621 無響應(yīng) NO_Ack = 1; /設(shè)置無響應(yīng)標(biāo)志SCL = 0;_nop_();_nop_();/*/傳送從機(jī)地址子函數(shù)*/void Master(uchar slave_addr) I2C_Busy = 1; /設(shè)置忙標(biāo)志NO_Ack = 0;Bus_Fault = 0;/清除標(biāo)志if(!SCL | !SDA)/判斷IIC總線是否在忙Bus_Fault = 1; /如果忙,設(shè)置標(biāo)志else /如果不忙,傳送從機(jī)地址 SDA = 0;_nop
50、_();_nop_();SCL = 0;_nop_();_nop_();SendByte(slave_addr); /傳送從機(jī)地址/*/傳送數(shù)據(jù)給DS1621子函數(shù)*/void SendData(uchar slave_address,uchar start,uchar end) Master(slave_address); /連接設(shè)定需要訪問的從機(jī)DS1621for(i=start;i=end;i+) /發(fā)送操作指令給DS1621SendByte(command_datai);SendStop();/停止傳送/*/開始DS1621的溫度轉(zhuǎn)換子函數(shù)*/void StartConversion(unsigned char sen) SendData(sen,2,2); /發(fā)送需要測試的DS1621參數(shù)delayms(7
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醬油食醋的個性化定制服務(wù)考核試卷
- 鋰電池安全性與質(zhì)量管理考核試卷
- 小兒潰瘍性口腔炎護(hù)理
- 施工現(xiàn)場常用應(yīng)急救援知識
- 冠心病病人的急救與護(hù)理
- 科室安全管理的實效策略
- 大類資產(chǎn)配置報告2025年6月份總第86期:平衡穩(wěn)健配置資產(chǎn)防御外部風(fēng)險沖擊
- 2025年廣播媒體融合傳播中的媒體融合與綠色可持續(xù)發(fā)展報告
- 2025年廢舊輪胎資源化利用項目市場拓展與技術(shù)創(chuàng)新路徑研究報告
- 2025年天然植物精油護(hù)膚品牌市場占有率預(yù)測報告
- 行政前臺面試試題及答案
- 2024衡水桃城區(qū)中小學(xué)教師招聘考試試題及答案
- 2025年版村規(guī)民約
- 文旅知識培訓(xùn)課件
- 2025年行政執(zhí)法人員行政執(zhí)法資格證考試必考題庫及答案(共340題)
- 資源編排視角下立訊精密連續(xù)并購的價值創(chuàng)造研究
- 2023西寧中考物理試題(附參考答案)
- 北師大版歷史七年級下冊第2課《唐太宗與貞觀之治》聽課評課記錄
- 2025年中考化學(xué)二輪復(fù)習(xí)熱點題型訓(xùn)練:化學(xué)思維方法(原卷版)
- 電大《11872國際經(jīng)濟(jì)法》期末終考題庫及答案
- 貴州貴安發(fā)展集團(tuán)有限公司筆試
評論
0/150
提交評論