數(shù)字式溫度計(jì)的設(shè)計(jì)課程設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p><b>  課程設(shè)計(jì)說(shuō)明書</b></p><p>  課程設(shè)計(jì)名稱: 單片機(jī)課程設(shè)計(jì) </p><p>  課程設(shè)計(jì)題目: 數(shù)字式溫度計(jì)的設(shè)計(jì) </p><p>  學(xué) 院 名 稱: 電氣信息學(xué)院 </p><p>  專 業(yè) 班 級(jí):

2、 15電力(3)班 </p><p>  學(xué) 生 學(xué) 號(hào): </p><p>  學(xué) 生 姓 名: </p><p>  學(xué) 生 成 績(jī): </p><p>  指 導(dǎo) 教 師:

3、 </p><p>  課程設(shè)計(jì)時(shí)間: 2017.10.30 至 2017.11.5 </p><p><b>  課程設(shè)計(jì)任務(wù)書</b></p><p>  一、課程設(shè)計(jì)的任務(wù)和基本要求</p><p>  設(shè)計(jì)任務(wù)(從“單片機(jī)課程設(shè)計(jì)題目”匯總文檔中任選1題,根據(jù)所選課題的具體設(shè)計(jì)要求來(lái)填寫

4、此欄)</p><p>  1. 用DS18B20設(shè)計(jì)一款能夠顯示當(dāng)前溫度值的溫度計(jì); </p><p>  2. 通過(guò)切換按鈕可以切換華氏度和攝氏度顯示;</p><p>  3. 測(cè)量精度誤差在正負(fù)0.5攝氏度以內(nèi)。</p><p><b>  基本要求</b></p><p>  有硬件結(jié)構(gòu)

5、圖、電路圖及文字說(shuō)明;</p><p>  有程序設(shè)計(jì)的分析、思路說(shuō)明; </p><p>  有程序流程框圖、程序代碼及注釋說(shuō)明;</p><p>  完成系統(tǒng)調(diào)試(硬件系統(tǒng)可以借助實(shí)驗(yàn)裝置實(shí)現(xiàn),也可在Proteus軟件中仿真模擬);</p><p>  有程序運(yùn)行結(jié)果的截屏圖片。</p><p><b>

6、  二、進(jìn)度安排</b></p><p>  第9周,10.30~11.5</p><p>  1) 10.30 題目分析,文獻(xiàn)查閱</p><p>  2) 10.31 方案比較,確定設(shè)計(jì)方案</p><p>  3) 10.31~11.1 硬件電路設(shè)計(jì)</p><p>  4)

7、 11.2~11.4 程序設(shè)計(jì),程序調(diào)試,系統(tǒng)聯(lián)調(diào),系統(tǒng)改進(jìn)</p><p>  5) 11.5 課程設(shè)計(jì)說(shuō)明書撰寫</p><p>  三、參考資料或參考文獻(xiàn)</p><p>  1. 林立,張俊亮. 單片機(jī)原理及應(yīng)用——基于Proteus和Keil C [M].北京:電子工業(yè)出版社,2013</p><p>  2. 張毅剛

8、,彭喜元. 單片機(jī)原理與應(yīng)用設(shè)計(jì)[M]. 北京:電子工業(yè)出版社,2008</p><p>  3. 馬忠梅. 單片機(jī)的C語(yǔ)言應(yīng)用程序設(shè)計(jì)(第5版) [M].北京:北京航空航天大學(xué)出版社,2013</p><p>  4. 孫育才主編,MCS-51系列單片微型計(jì)算機(jī)及其應(yīng)用.東南大學(xué)出版社</p><p>  5. 樓然苗.單片機(jī)課程設(shè)計(jì)指導(dǎo).北京:北京航空航天大學(xué)出

9、版社.2002.</p><p>  本科生課程設(shè)計(jì)成績(jī)?cè)u(píng)定表</p><p><b>  目 錄</b></p><p><b>  第一章 引言1</b></p><p>  第二章 設(shè)計(jì)任務(wù)與要求2</p><p>  第三章 設(shè)計(jì)方案2</p>

10、<p>  表3.1 設(shè)計(jì)方案2</p><p>  1. 采集與放大2</p><p><b>  2. 數(shù)模轉(zhuǎn)換3</b></p><p><b>  3. 數(shù)碼顯示3</b></p><p>  第四章 設(shè)計(jì)電路與原理4</p><p>  1.

11、 溫度傳感器原理4</p><p>  圖4.1 DS18B20內(nèi)部結(jié)構(gòu)4</p><p>  圖4.2 64位ROM的結(jié)構(gòu)5</p><p>  2. AT89C52的介紹6</p><p>  圖4.3 AT89C52引腳圖7</p><p><b>  3. 數(shù)碼管8</b>&l

12、t;/p><p>  4. 結(jié)構(gòu)原理圖9</p><p><b>  5. 程序10</b></p><p>  第五章 電路的組裝與調(diào)試15</p><p>  第六章 設(shè)計(jì)心得16</p><p><b>  第一章 引言</b></p><p&g

13、t;  隨著時(shí)代的進(jìn)步和發(fā)展,單片機(jī)技術(shù)已經(jīng)普及到我們生活,工作,科研,各個(gè)領(lǐng)域,已經(jīng)成為一種比較成熟的技術(shù),單片機(jī)具有體積小、功耗低、控制功能強(qiáng)、擴(kuò)展靈活、微型化和使用方便等優(yōu)點(diǎn),廣泛應(yīng)用于儀器儀表中,結(jié)合不同種類的傳感器,可實(shí)現(xiàn)諸如電壓、濕度、溫度、速度、硬度、壓力等的物理量的測(cè)量。 本文主要介紹了一個(gè)基于AT89C52單片機(jī)的測(cè)溫系統(tǒng),詳細(xì)描述了利用數(shù)字溫度傳感器DS18B20開發(fā)測(cè)溫系統(tǒng)的過(guò)程。</p><p

14、>  當(dāng)今信息化時(shí)代展過(guò)程中,各種信息的感知、采集、轉(zhuǎn)換、傳輸和處理的功能器件已經(jīng)成為各個(gè)應(yīng)用領(lǐng)域中不可缺少的重要技術(shù)工具。傳感器是信息采集系統(tǒng)的首要部件,是實(shí)現(xiàn)現(xiàn)代化測(cè)量和自動(dòng)控制的主要環(huán)節(jié),是現(xiàn)代信息產(chǎn)業(yè)的源頭,又是信息社會(huì)賴以存在和發(fā)展的物質(zhì)與技術(shù)基礎(chǔ)。可見理解和撐握傳感器的知識(shí)與技術(shù)有著其極重要的意義。 </p><p>  測(cè)量溫度的關(guān)鍵是溫度傳感器,溫度傳感器隨著溫度而引起的物理參數(shù)變化有:膨脹

15、,電阻,電容,電動(dòng)勢(shì),磁性能,頻率,光學(xué)特性及熱噪聲等等。溫度傳感器的發(fā)展經(jīng)歷了三個(gè)發(fā)展階段: 傳統(tǒng)的分立式溫度傳感器 、模擬集成溫度傳感器、 智能集成溫度傳感器。 </p><p>  對(duì)采集的信息都希望用最直接的方式顯示出來(lái),但是傳感器所采集的信息是模擬的信號(hào),并且信號(hào)是非常微小的,需要用放大器進(jìn)行放大。模擬信號(hào)不能直接用數(shù)字儀器直接顯示,通過(guò)模數(shù)轉(zhuǎn)換之后就可以將模擬量轉(zhuǎn)變成數(shù)字量,在通過(guò)數(shù)碼管進(jìn)行顯示。有些

16、可以直接與單片機(jī)鏈接。數(shù)碼管有共陽(yáng)極與共陰極兩類,本次設(shè)計(jì)采用的是共陰極的七段數(shù)碼管。</p><p>  第二章 設(shè)計(jì)任務(wù)與要求</p><p>  1.設(shè)計(jì)任務(wù):設(shè)計(jì)一數(shù)字溫度計(jì),將測(cè)量的溫度值轉(zhuǎn)換為數(shù)字量并顯示出來(lái),即將收集的模擬的信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)。</p><p>  2.設(shè)計(jì)要求:必須選擇一個(gè)溫度傳感器,并且所設(shè)計(jì)的數(shù)字溫度計(jì)測(cè)量的范圍為0-100℃,采

17、用數(shù)模轉(zhuǎn)換(單片機(jī)除外),LED數(shù)碼管進(jìn)行數(shù)字顯示。</p><p><b>  第三章 設(shè)計(jì)方案</b></p><p>  設(shè)計(jì)方案主要包括溫度的采集與信號(hào)的放大,數(shù)模轉(zhuǎn)換,數(shù)碼顯示三部分。 </p><p><b>  表3.1 設(shè)計(jì)方案</b></p><p><b>  采集與放

18、大</b></p><p>  溫度的改變會(huì)影響一些電阻的阻值,溫度傳感器是通過(guò)物體隨溫度變化而變化的特性來(lái)測(cè)量的。一般采用阻值的變化與溫度的變化有線性關(guān)系的電阻來(lái)采集溫度,最后通過(guò)阻值的變化來(lái)反映出溫度。Pt100鉑熱電阻與溫度之間存在著線性的關(guān)系,通過(guò)阻值的變化可以得到對(duì)應(yīng)的溫度。有些是采用熱電偶的方式,溫度檢測(cè)部分可以使用低溫?zé)崤?,熱電偶由兩個(gè)焊接在一起的異金屬導(dǎo)線所組成。熱電偶產(chǎn)生的熱電勢(shì)由兩

19、種金屬的接觸電勢(shì)和單一導(dǎo)體的溫差電勢(shì)組成。通過(guò)將參考結(jié)點(diǎn)保持在已知溫度并測(cè)量該電壓,便可推斷出檢測(cè)結(jié)點(diǎn)的溫度。</p><p><b>  數(shù)模轉(zhuǎn)換</b></p><p>  溫度的改變會(huì)影響一些電阻的阻值,溫度傳感器是通過(guò)物體隨溫度變化而變化的特性來(lái)測(cè)量的。一般采用阻值的變化與溫度的變化有線性關(guān)系的電阻來(lái)采集溫度,最后通過(guò)阻值的變化來(lái)反映出溫度。Pt100鉑熱電阻

20、與溫度之間存在著線性的關(guān)系,通過(guò)阻值的變化可以得到對(duì)應(yīng)的溫度。有些是采用熱電偶的方式,溫度檢測(cè)部分可以使用低溫?zé)崤?,熱電偶由兩個(gè)焊接在一起的異金屬導(dǎo)線所組成。熱電偶產(chǎn)生的熱電勢(shì)由兩種金屬的接觸電勢(shì)和單一導(dǎo)體的溫差電勢(shì)組成。通過(guò)將參考結(jié)點(diǎn)保持在已知溫度并測(cè)量該電壓,便可推斷出檢測(cè)結(jié)點(diǎn)的溫度。本次課程設(shè)計(jì)主要用LM35,溫度傳感器,它能集溫度的采集與放大于一身的傳感器,而且采用LM35的電路比較簡(jiǎn)單,于其內(nèi)部已將采集的信號(hào)進(jìn)行放大。 <

21、;/p><p><b>  數(shù)碼顯示</b></p><p>  數(shù)碼顯示就是將TC7107轉(zhuǎn)換成的數(shù)字信號(hào)進(jìn)行顯示。一般數(shù)碼管有共陽(yáng)極與共陰極兩類,共陽(yáng)與共陰的只要區(qū)別就是其公共端是接陽(yáng)極還是接陰極,如果接陰極就為共陰極,反之為共陽(yáng)極。數(shù)碼管根據(jù)不同的信號(hào)顯示不同的值,但是一個(gè)數(shù)碼管只能顯示0—9還有負(fù)號(hào)與小數(shù)點(diǎn)。0—9的顯示主要是其a-g管腳的組合顯示。 </p

22、><p>  第四章 設(shè)計(jì)電路與原理</p><p><b>  溫度傳感器原理</b></p><p>  DS18B20數(shù)字溫度計(jì)是DALLAS公司生產(chǎn)的1-Wire,即單總線器件,具有線路簡(jiǎn)單、體積小的特點(diǎn)。因此用它來(lái)組成一個(gè)測(cè)溫系統(tǒng),線路簡(jiǎn)單,在一根通信線上,可以掛很多這樣的數(shù)字溫度計(jì),十分方便。DS18B20是美國(guó)DALLAS公司新推出的

23、一種可組網(wǎng)數(shù)字式溫度傳感器,與DS1820相似,DS18B20也能夠直接讀取被測(cè)物體的溫度值。但是與DS1820相比,DS18B20的功能更強(qiáng)大些。它體積小,電壓適用范圍寬(3~5V),用戶還可以通過(guò)編程實(shí)現(xiàn)9~12位的溫度讀數(shù),即具有可調(diào)的溫度分辨率,因此它的實(shí)用性和可靠性比同類產(chǎn)品更高。</p><p>  DS18B20內(nèi)部結(jié)構(gòu)如圖4.1所示,主要由4部分組成:溫度傳感器、64位ROM、非揮發(fā)的溫度報(bào)警觸發(fā)

24、器TH和TI、配置寄存器。由圖4.1可見,DS18B20只有一個(gè)數(shù)據(jù)輸入輸出口,屬于單總線專用芯片之一。DS18B20工作時(shí)被測(cè)溫度值直接以“單總線”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾能力。其內(nèi)部采用在線溫度測(cè)量技術(shù),測(cè)量范圍為55~125°C,在-10~85℃時(shí),精度為±0.5°C。每個(gè)DS18B20在出廠時(shí)都已具有唯一的64位序列號(hào),因此一條總線上可以同時(shí)掛接多個(gè)DS18B20,而不會(huì)出現(xiàn)混亂現(xiàn)象。

25、另外用戶還可自設(shè)定非易失性溫度報(bào)警上下限值TH和TL(掉電后依然保存)。DS18B20在完成溫度變換后,所測(cè)溫度值將自動(dòng)與存儲(chǔ)在TH和TL內(nèi)的觸發(fā)值相比較,如果測(cè)溫結(jié)果高于TH或低于TL, DS18B20內(nèi)部的告警標(biāo)志就會(huì)被置位,表示溫值超出了測(cè)量范圍,同時(shí)還有報(bào)警搜索命令識(shí)別出溫度超限的DS18B20。</p><p>  圖4.1 DS18B20內(nèi)部結(jié)構(gòu)</p><p>  64位閃存

26、ROM的結(jié)構(gòu)如圖4.2所示</p><p>  MSB LSB MSB LSB MSB LSB</p><p>  圖4.2 64位ROM的結(jié)構(gòu)</p><p>  首先是8位的產(chǎn)品單線系列編碼,接著是每個(gè)器件的唯一的序號(hào),共有48位,最重要的8位是前面56位的C

27、RC校驗(yàn)碼(循環(huán)冗余校驗(yàn)碼),這也是多個(gè)DS18B20可以采用一線進(jìn)行通信的原因。</p><p>  非易失性溫度報(bào)警觸發(fā)器TH和TL,可通過(guò)軟件寫人用戶報(bào)警上下限。</p><p>  DS18B20的內(nèi)部測(cè)溫電路框圖如圖4.2所示,圖中低溫度系數(shù)振蕩器的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給減法計(jì)數(shù)器1,高溫度系數(shù)振蕩器隨溫度變化其振蕩頻率明顯改變,所產(chǎn)生的信號(hào)作為

28、減法計(jì)數(shù)器2的脈沖輸入。圖中還隱含著計(jì)數(shù)門,當(dāng)計(jì)數(shù)門打開時(shí),DS18B20就對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖進(jìn)行計(jì)數(shù),進(jìn)而完成溫度測(cè)量。計(jì)數(shù)門的開啟時(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的預(yù)置值減到。時(shí)溫度寄存器的值將加1,減法計(jì)數(shù)器1的預(yù)置

29、將重新被裝人,減法計(jì)數(shù)器1重新開始對(duì)低溫度系數(shù)振蕩器產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到減法計(jì)數(shù)器2計(jì)數(shù)到0時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即為所測(cè)溫度。圖4.2中的斜率累加器用于補(bǔ)償和修正測(cè)溫過(guò)程中的非線性,其輸出用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)門仍未關(guān)閉就重復(fù)上述過(guò)程,直至溫度寄存器值達(dá)到被測(cè)溫度值,這就是DS18B20的測(cè)溫原理</p><p>  圖4.2 DS18B20的內(nèi)部測(cè)溫電

30、路框圖</p><p>  由于DS18B20是在一根I/O線上讀寫數(shù)據(jù),因此,對(duì)讀寫的數(shù)據(jù)位有著嚴(yán)格的時(shí)序要求。DS18B20有嚴(yán)格的通信協(xié)議來(lái)保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了幾種信號(hào)的時(shí)序:初始化時(shí)序、讀時(shí)序、寫時(shí)序。所有時(shí)序都是將主機(jī)作為主設(shè)備,單總線器件作為從設(shè)備。而每一次命令和數(shù)據(jù)的傳輸都是從主機(jī)主動(dòng)啟動(dòng)寫時(shí)序開始,如果要求單總線器件回送數(shù)據(jù),在進(jìn)行寫命令后,主機(jī)需啟動(dòng)讀時(shí)序完成數(shù)據(jù)接收。

31、數(shù)據(jù)和命令的傳輸都是低位在先。</p><p>  AT89C52的介紹</p><p>  AT89C52是美國(guó)Atmel公司生產(chǎn)的低電壓、高性能CMOS 8位單片機(jī),片內(nèi)含8KB的可反復(fù)擦寫的程序存儲(chǔ)器和12B的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用Atmel公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)配置通用8位中央處理器(CPU)和Flash存儲(chǔ)單元,功能

32、強(qiáng)大的AT89C52單片機(jī)可靈活應(yīng)用于各種控制領(lǐng)域。AT89C52單片機(jī)屬于AT89C51單片機(jī)的增強(qiáng)型,與Intel公司的80C52在引腳排列、硬件組成、工作特點(diǎn)和指令系統(tǒng)等方面兼容。其主要工作特性是: ① 片內(nèi)程序存儲(chǔ)器內(nèi)含8KB的Flash程序存儲(chǔ)器,可擦寫壽命為1000次; ② 片內(nèi)數(shù)據(jù)存儲(chǔ)器內(nèi)含256字節(jié)的RAM; ③ 具有32根可編程I/O口線; ④ 具有3個(gè)可編程定時(shí)器;⑤ 中斷系統(tǒng)是具有8個(gè)中斷源、6個(gè)中斷矢量、2個(gè)級(jí)優(yōu)

33、先權(quán)的中斷結(jié)構(gòu); ⑥ 串行口是具有一個(gè)全雙工的可編程串行通信口; ⑦ 具有一個(gè)數(shù)據(jù)指針DPTR; ⑧ 低功耗工作模式有空閑模式和掉電模式; ⑨ 具有可編程的3級(jí)程序鎖定位; ⑩ 工作電源電壓為5V,最高工作頻率為24MHz。</p><p>  軟件部分具體分為音樂程序和流水燈程序,利用C語(yǔ)言進(jìn)行編寫。 有發(fā)聲模塊、數(shù)碼管顯示模塊、電阻模塊。研究方法: 單片機(jī)音樂流水燈系統(tǒng)總體功能的實(shí)現(xiàn)與各個(gè)模塊的基本功能密不可

34、分,因此必須要從各個(gè)模塊的單獨(dú)設(shè)計(jì)入手。 (1) 晶振電路模塊 晶振是晶體振蕩器的簡(jiǎn)稱,在電氣上它可以等效成一個(gè)電容和一個(gè)電阻并聯(lián)再串聯(lián)一個(gè)電容的二端網(wǎng)絡(luò),電工學(xué)上這個(gè)網(wǎng)絡(luò)有兩個(gè)諧振點(diǎn),以頻率的高低分其中較低的頻率是串聯(lián)諧振,較高的頻率是并聯(lián)諧振。由于晶體自身的特性致使這兩個(gè)頻率的距離相當(dāng)?shù)慕咏?,在這個(gè)極窄的頻率范圍內(nèi),晶振等效為一個(gè)電感,所以只要晶振的兩端并聯(lián)上合適的電容它就會(huì)組成并聯(lián)諧振電路。這個(gè)并聯(lián)諧振電路加到一個(gè)負(fù)反饋電路中就可

35、以構(gòu)成正弦波振蕩電路,由于晶振等效為電感的頻率范圍很窄,所以即使其他元件的參數(shù)變化很大,這個(gè)振蕩器的頻率也不會(huì)有很大的變化。晶振有一個(gè)重要的參數(shù),那就是負(fù)載電容值,選擇與負(fù)載電容值相等的并聯(lián)電容,就可以得到晶振標(biāo)稱的諧振頻率。一般的晶振的負(fù)載電容為15p或12.5p ,如果再考慮元件引腳的等效輸入電容,則兩個(gè)22p的電容構(gòu)成晶振的振蕩電路就是比較好的選擇。(2)復(fù)位電路模塊這個(gè)模塊主要進(jìn)</p><p>  AT

36、89C52并非所有的地址都被定義,從80H—FFH 共128 個(gè)字節(jié)只有一部分被定義,還有相當(dāng)一部分沒有定義。對(duì)沒有定義的單元讀寫將是無(wú)效的,讀出的數(shù)值將不確定,而寫入的數(shù)據(jù)也將丟失。不應(yīng)將數(shù)據(jù)寫入未定義的單元,由于這些單元在將來(lái)的產(chǎn)品中可能賦予新的功能,在這種情況下,復(fù)位后這些單元數(shù)值總是“0”。</p><p>  圖4.3 AT89C52引腳圖</p><p><b>  

37、7段數(shù)碼管</b></p><p>  數(shù)碼管的一種是半導(dǎo)體發(fā)光器件,數(shù)碼管可分為七段數(shù)碼管和八段數(shù)碼管,區(qū)別在于八段數(shù)碼管比七段數(shù)碼管多一個(gè)用于顯示小數(shù)點(diǎn)的發(fā)光二極管單元DP(decimal point),其基本單元是發(fā)光二極管。數(shù)碼管是一類價(jià)格便宜 使用簡(jiǎn)單,通過(guò)對(duì)其不同的管腳輸入相對(duì)的電流,使其發(fā)亮,從而顯示出數(shù)字能夠顯示 時(shí)間、日期、溫度等所有可用數(shù)字表示的參數(shù)的器件。</p>

38、<p>  驅(qū)動(dòng)方式有直流驅(qū)動(dòng)和動(dòng)態(tài)顯示驅(qū)動(dòng)。直流驅(qū)動(dòng)是指每個(gè)數(shù)碼管的每一個(gè)段碼都由一個(gè)單片機(jī)的I/O端口進(jìn)行驅(qū)動(dòng),或者使用如BCD碼二-十進(jìn)制譯碼器譯碼進(jìn)行驅(qū)動(dòng)。優(yōu)點(diǎn)是編程簡(jiǎn)單,顯示亮度高,缺點(diǎn)是占用I/O端口多。動(dòng)態(tài)顯示驅(qū)動(dòng)是將所有數(shù)碼管通過(guò)分時(shí)輪流控制各個(gè)數(shù)碼管的的COM端,就使各個(gè)數(shù)碼管輪流受控顯示。將所有數(shù)碼管的8個(gè)顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個(gè)數(shù)碼管的公

39、共極COM增加位選通控制電路,位選通由各自獨(dú)立的I/O線控制,當(dāng)單片機(jī)輸出字形碼時(shí),所有數(shù)碼管都接收到相同的字形碼,但究竟是那個(gè)數(shù)碼管會(huì)顯示出字形,取決于單片機(jī)對(duì)位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會(huì)亮。</p><p>  圖4.4 7段數(shù)碼管引腳圖</p><p><b>  結(jié)構(gòu)原理圖</b&

40、gt;</p><p><b>  圖4.5 接線圖</b></p><p><b>  程序</b></p><p>  #include<reg51.h></p><p>  #include <intrins.h> //包含NOP函數(shù)</p><

41、p>  #define uchar unsigned char</p><p>  #define uint unsigned int</p><p>  #define AlarmTemper 60 //溫度報(bào)警限設(shè)置</p><p>  sbit DQ=P1^0;</p><p>  sbit LED=P1^6;</p>

42、<p>  uchar code table[]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F};</p><p>  uchar temperature,ten,bits; //全局變量</p><p>  // 延時(shí)50us函數(shù)</p><p>  void delay_50us(uint

43、t) //每次50us延時(shí),最大誤差13us</p><p><b>  {</b></p><p><b>  uchar j;</b></p><p>  for(;t>0;t--)</p><p>  for(j=19;j>0;j--);</p><p

44、><b>  }</b></p><p>  // 延時(shí)2us函數(shù)</p><p>  void delay_2us(unsigned char i) //每次2us精確延時(shí),最大誤差6us</p><p><b>  {</b></p><p>  while(--i);</p

45、><p><b>  }</b></p><p>  // 蜂鳴器報(bào)警函數(shù)</p><p>  void alarm()</p><p><b>  {</b></p><p>  if(temperature >= AlarmTemper)</p><

46、p><b>  LED=1;</b></p><p><b>  else </b></p><p><b>  LED=0;</b></p><p><b>  }</b></p><p>  // 數(shù)碼管顯示函數(shù)</p><p

47、>  void LEDDisplay() </p><p><b>  { </b></p><p>  P2=table[ten];</p><p><b>  P3=0xfb;</b></p><p>  delay_50us(20);//十位 延時(shí)1ms</p>

48、<p>  P3 = 0xff;</p><p>  P2=table[bits];</p><p><b>  P3=0xf7;</b></p><p>  delay_50us(20);//個(gè)位 延時(shí)1ms</p><p>  P3 = 0xff;</p><p><b&g

49、t;  }</b></p><p>  // DS18B20初始化函數(shù)</p><p>  void DS18B20Reset() </p><p><b>  {</b></p><p><b>  DQ=0;</b></p><p>  delay

50、_50us(10); //延時(shí)513us</p><p><b>  DQ=1;</b></p><p>  delay_50us(1);//延時(shí)50us</p><p>  while(!DQ);</p><p><b>  _nop_();</b></p><p><

51、;b>  }</b></p><p>  //讀DS18B20函數(shù)</p><p>  uchar DS18B20ReadByte() </p><p><b>  {</b></p><p><b>  uint i; </b></p><p&

52、gt;  uchar dat=0;</p><p>  for(i=0;i<8;i++)</p><p><b>  { </b></p><p><b>  DQ=0;</b></p><p>  _nop_(); //延時(shí)1us</p><p><b>

53、;  dat>>=1;</b></p><p>  DQ=1; //釋放</p><p>  delay_2us(2); </p><p><b>  if(DQ)</b></p><p>  dat |= 0x80;</p><p>  delay_2us(20)

54、; // 延時(shí)40到45us</p><p>  DQ=1; //釋放總線</p><p><b>  }</b></p><p>  return(dat);</p><p><b>  }</b></p><p>  // 寫DS18B20函數(shù)</p&

55、gt;<p>  void DS18B20WriteByte(uchar dat)</p><p><b>  {</b></p><p><b>  uchar j;</b></p><p>  for(j=0;j<8;j++)</p><p><b>  {<

56、/b></p><p><b>  DQ=0;</b></p><p>  delay_2us(5); //拉低電平10到15us</p><p>  if(dat & 0x01)</p><p><b>  DQ=1; </b></p><p>  dela

57、y_2us(15); //延時(shí)20到45us</p><p><b>  dat>>=1;</b></p><p>  DQ=1; //釋放總線</p><p><b>  _nop_(); </b></p><p><b>  }</b><

58、/p><p><b>  }</b></p><p><b>  // 溫度轉(zhuǎn)換函數(shù)</b></p><p>  void temperConvert()</p><p><b>  { </b></p><p>  DS18B20Reset();

59、 </p><p>  DS18B20WriteByte(0xcc);// 跳過(guò)讀序號(hào)列號(hào)的操作</p><p>  DS18B20WriteByte(0x44);// 啟動(dòng)溫度轉(zhuǎn)換</p><p><b>  }</b></p><p><b>  // 讀出溫度函數(shù)</b></p>

60、<p>  void temperRead()</p><p><b>  {</b></p><p>  uchar temph, templ; </p><p>  DS18B20Reset();</p><p>  DS18B20WriteByte(0xcc);// 跳過(guò)讀序號(hào)列號(hào)的操作</p&g

61、t;<p>  DS18B20WriteByte(0xBE);// 讀RAM數(shù)據(jù)</p><p>  templ = DS18B20ReadByte();//溫度的低八位</p><p>  temph = DS18B20ReadByte();//溫度的高八位</p><p>  temperature = (temph<<4)|(temp

62、l>>4);</p><p>  ten = temperature%100/10; //十位</p><p>  bits = temperature%10; //個(gè)位 </p><p><b>  }</b></p><p><b>  // 主函數(shù)</b></p>

63、;<p>  void main()</p><p><b>  { </b></p><p><b>  uchar j;</b></p><p><b>  while(1)</b></p><p><b>  {</b></p&g

64、t;<p>  temperConvert();</p><p>  for(j=0;j<250;j++)</p><p>  LEDDisplay();</p><p>  temperRead(); //將讀RAM的函數(shù)放到這兒是因?yàn)闇囟鹊霓D(zhuǎn)換要用750ms時(shí)間,這里用Display()函數(shù)來(lái)達(dá)到延時(shí)效果</p><p&

65、gt;<b>  alarm();</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  第五章 電路的組裝與調(diào)試</p><p>  按照電路圖對(duì)相關(guān)元件進(jìn)行連接,其中注意芯片各管腳的作用以及該如何進(jìn)行接線。</p&

66、gt;<p> ?。?)當(dāng)上步驟完成后,接通電源,觀察數(shù)碼管和二極管是否亮,若不亮?xí)r,要對(duì)電路電源進(jìn)行檢測(cè),看是否線路接觸不良或者電路短路。 </p><p> ?。?)完成之后,觀察數(shù)碼管是否顯示數(shù)值,然后改變DS18B20的溫度值,觀察數(shù)碼管是否隨著溫度變化而變化。 </p><p> ?。?)若數(shù)碼管數(shù)值與溫度值相差太大,則要檢查信號(hào)采集電路中各元件值是否對(duì)。 <

67、/p><p>  為了驗(yàn)證設(shè)計(jì)電路的正確性以及它的實(shí)驗(yàn)數(shù)據(jù),我們對(duì)實(shí)物進(jìn)行驗(yàn)證。用帶有溫度測(cè)量的數(shù)字萬(wàn)用表和本次設(shè)計(jì)的電路對(duì)相同溫度下物體進(jìn)行相應(yīng)的測(cè)量并繪成表格進(jìn)行比較。 </p><p><b>  結(jié)果如圖</b></p><p><b>  圖5.1 原理圖</b></p><p><b&

68、gt;  第六章 設(shè)計(jì)心得</b></p><p>  在這次實(shí)驗(yàn)中,我學(xué)到很多東西,加強(qiáng)了我的動(dòng)手能力,并且培養(yǎng)了我的獨(dú)立思考能力。特別是在做實(shí)驗(yàn)報(bào)告時(shí),因?yàn)樵谧鲇布r(shí)出現(xiàn)很多問題,如果不解決的話,將會(huì)很難的繼續(xù)下去。還有畫圖時(shí),也要用軟件畫圖,還有動(dòng)手這次實(shí)驗(yàn),使測(cè)試技術(shù)這門課的一些理論知識(shí)與實(shí)踐相結(jié)合,更加深刻了我對(duì)測(cè)試技術(shù)這門課的認(rèn)識(shí),鞏固了我的理論知識(shí)。</p><p&g

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論