畢業(yè)設(shè)計- 基于單片機(jī)的數(shù)字溫度計的電路設(shè)計_第1頁
已閱讀1頁,還剩29頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p>  題 目 基于單片機(jī)的數(shù)字溫度計的電路設(shè)計 </p><p><b>  目 錄</b></p><p><b>  摘要I</b></p><p>  AbstractII</p><p>  第一章 數(shù)字溫度計和DS18B201<

2、/p><p>  1.1 數(shù)字溫度計的優(yōu)越性1</p><p>  1.2 數(shù)字溫度計的內(nèi)部結(jié)構(gòu)和性能1</p><p>  第二章 系統(tǒng)總體設(shè)計方法2</p><p>  硬件系統(tǒng)設(shè)計方案 2</p><p><b>  電路系統(tǒng)組成 2</b></p>

3、<p>  2.1 硬件電路設(shè)計 3</p><p>  2.2 系統(tǒng)元器件的選擇4</p><p>  2.3 溫度傳感器與單片機(jī)的接口電路7</p><p>  2.4 單片機(jī)與溫度報警8</p><p><b>  2.5 小結(jié)8</b></p><p>  第

4、三章 部分硬件組成9</p><p>  3.1 80C51單片機(jī)的中斷系統(tǒng)9</p><p>  3.2 單片機(jī)的工作時鐘9</p><p>  3.3 數(shù)值溫度計DS18B209</p><p>  3.4 字符液晶顯示器簡介10</p><p>  3.5 字符液晶顯示部分與微處理機(jī)的接口12<

5、/p><p>  第四章 數(shù)字溫度計軟件13</p><p>  4.1 主程序模塊13</p><p>  4.2 主程序流程圖13</p><p>  4.3 DS18B20初始化14</p><p>  4.4仿真結(jié)果15</p><p><b>  4.5小結(jié)16<

6、;/b></p><p><b>  總 結(jié)17</b></p><p>  參考文獻(xiàn)(References)18</p><p><b>  致 謝19</b></p><p>  附錄一:源程序20</p><p>  附錄二:實(shí)物圖26</p>

7、;<p>  基于單片機(jī)的數(shù)字溫度計的電路設(shè)計</p><p>  摘要:電路系統(tǒng)的設(shè)計是主控制芯片微控制器,包括硬件電路設(shè)計和系統(tǒng)程序設(shè)計,通過數(shù)字溫度計實(shí)現(xiàn)溫度的測量,并通過測量溫度的LCD1602液晶顯示器。單片機(jī)系統(tǒng)的硬件電路包括采用STC89C51單片機(jī),數(shù)字溫度計采用美國公司的數(shù)字DALLAS半導(dǎo)體公司的芯片DS18B20,液晶顯示電路采用字符液晶LCD1602的單片機(jī)的溫度采集電路,液

8、晶顯示電路和過溫報警電路,系統(tǒng)主處理器。</p><p>  相較于傳統(tǒng)的數(shù)字溫度計,其讀數(shù)方便,控溫精度和溫度范圍寬等優(yōu)點(diǎn)。本文介紹了一種基于單片機(jī)STC89C51單片機(jī)溫度測量電路和超溫報警電路,該系統(tǒng)用作溫度檢測DS18B20的貼片元件,其溫度控制范圍為-50℃?+110℃,采用字符型液晶顯示模塊,可設(shè)定溫度報警限值。</p><p>  關(guān)鍵字:DS18B20,STC89C51,數(shù)

9、字溫度計,單片機(jī),溫度傳感器,LCD1602</p><p>  Circuit design based on single chip microcomputer digital thermometer</p><p>  Abstract:The design of the circuit system is the main control chip microcontroller,

10、 including the design of hardware circuit design and system procedures, realize the measurement of the temperature through digital thermometer, and through LCD1602 display of the measured temperature. SCM system hardware

11、 circuit includes a microcontroller, temperature acquisition circuits, liquid crystal display circuit and over-temperature alarm circuit, system host processor using SCM STC89C51, digital thermomet</p><p>  

12、In contrast to the traditional thermometer digital thermometer with easy reading, temperature precision and wide temperature range and other strengths. This article describes a microcontroller based STC89C51 temperature

13、measurement circuit and over-temperature alarm, the system uses as the temperature detection DS18B20 chip components, temperature control range is -50 ℃~ +110 ℃, using a character LCD display module can be set temperatur

14、e alarm limit. </p><p>  Keywords:  DS18B20, STC89C51, digital thermometer,MicroController Unit, temperature sensor,LCD1602</p><p>  第一章 數(shù)字溫度計和DS18B20</p><p>  1.1數(shù)字溫度計的優(yōu)越性<

15、;/p><p>  由于普通的監(jiān)控現(xiàn)場電磁環(huán)境都非常不理想,電磁干擾信號錯綜復(fù)雜,傳統(tǒng)的模擬溫度信號更容易受到電磁干擾而產(chǎn)生很大的測量誤差,這嚴(yán)重影響測量的精確度。</p><p>  加上傳統(tǒng)的溫度計設(shè)計繁雜,設(shè)計成本高,使用的環(huán)境條件要求較高,對于實(shí)時溫度的測量不精確。</p><p>  所以,數(shù)字溫度計就在這種情況下應(yīng)運(yùn)而生,獨(dú)特3引腳結(jié)構(gòu)以及抗電磁干擾能力強(qiáng)的

16、新型數(shù)字溫度計能很好的解決電磁環(huán)境的各種信號干擾。</p><p>  1.2 數(shù)字溫度計的內(nèi)部結(jié)構(gòu)和性能</p><p>  美國達(dá)拉斯半導(dǎo)體公司生產(chǎn)的數(shù)字溫度計DS18B20使用單根總線通信,數(shù)字溫度計DS18B20的特點(diǎn)是可在沒有外部電源供電的情況下正常工作,當(dāng)總線處在高電平狀態(tài)時,DQ與上拉電阻連接通過數(shù)字溫度計單總線對器件進(jìn)行供電。同時讓高電平狀態(tài)的總線對電路內(nèi)部瓷片電容(Cpp

17、)進(jìn)行充電,一旦總線變?yōu)榈碗娖綘顟B(tài)時,該瓷片電容能持續(xù)不斷提供能量給系統(tǒng)元器件。數(shù)字溫度計這種提供能量的形式被稱做“寄生電源”。作為替代選擇,數(shù)字溫度計DS18B20同樣可以通過VDD引腳連接外部電源進(jìn)行供電。</p><p>  數(shù)字溫度計簡單的結(jié)構(gòu)、靈活的使用范圍和低廉的價格,使它被大量應(yīng)用各種工業(yè)生活場所。</p><p>  圖1.1 數(shù)字溫度計引腳封裝如圖</p>

18、<p>  第二章 系統(tǒng)總體設(shè)計方法</p><p>  該系統(tǒng)的電路組成主要有四部分分別是數(shù)據(jù)采集,溫度測量,溫度顯示和超溫報警,實(shí)現(xiàn)該電路的方法有如下兩種方法。</p><p><b>  方法一</b></p><p>  熱電偶溫差檢測法,該方法的基本原理是將兩種不同材料的導(dǎo)體或半導(dǎo)體焊接構(gòu)成一個閉合回路,該方法的優(yōu)點(diǎn)是測溫范

19、圍較寬,但缺點(diǎn)是電路輸出電壓小且容易受到外部噪聲干擾。利用單片機(jī)與字符液晶顯示器接口進(jìn)行數(shù)據(jù)A/D轉(zhuǎn)換,把被測實(shí)時環(huán)境溫度通過LCD1602液晶屏顯示出來。</p><p>  該電路系統(tǒng)示意圖如下</p><p>  圖2.1 熱電偶溫差測溫系統(tǒng)示意圖</p><p><b>  方法二</b></p><p>  用

20、數(shù)字溫度計DS18B20與STC89C51單片機(jī)實(shí)時檢測環(huán)境溫度,以達(dá)到環(huán)境溫度的功能快速準(zhǔn)確的測量,并且可以根據(jù)需要來控制不同的上限和下限報警溫度,用AT24C16芯片存儲設(shè)備作為一種方法來存儲溫度數(shù)據(jù)。</p><p><b>  電路系統(tǒng)設(shè)計方案</b></p><p>  DS18B20數(shù)字溫度計可以通過先將所測量的環(huán)境溫度進(jìn)行處理,然后發(fā)送給單片機(jī)進(jìn)行數(shù)據(jù)處

21、理,把處理后的溫度數(shù)據(jù)送給字符液晶顯示屏LCD1602進(jìn)行顯示,若超過所設(shè)的溫度報警上下限值,則通過蜂蜜器進(jìn)行揚(yáng)聲警報。</p><p><b>  電路系統(tǒng)組成</b></p><p>  本次設(shè)計電路系統(tǒng)構(gòu)成主體由微處理器模塊、復(fù)位電路模塊、時鐘電路模塊、超溫報警模塊、數(shù)字溫度計模塊、LCD1602液晶顯示模塊等組成。</p><p>&l

22、t;b>  2.1硬件電路設(shè)計</b></p><p>  數(shù)字溫度計電路系統(tǒng)總體設(shè)計框架圖如下圖所示。</p><p>  圖2.2 溫度計總體設(shè)計框圖</p><p><b>  主控制器</b></p><p>  微控制器STC89C51具有低電壓供電和電路系統(tǒng)占用體積小、低功耗等優(yōu)點(diǎn),該電路系

23、統(tǒng)只需兩節(jié)5號干電池就能提供系統(tǒng)所需的電源電壓需求,四個輸入輸出口只需兩個I/O口就能提供本電路系統(tǒng)的設(shè)計需要。</p><p><b>  顯示電路</b></p><p>  本次設(shè)計顯示電路采用字符液晶LCD1602,從P2口向字符液晶寫入實(shí)時溫度數(shù)據(jù)。字符液晶LCD1602顯示實(shí)時溫度的最大特點(diǎn)是減少對I/O口資源的使用,操作時序簡單,顯示溫度準(zhǔn)確清楚。<

24、;/p><p><b>  溫度傳感器</b></p><p>  本次設(shè)計的數(shù)字溫度計具有工作穩(wěn)定性好,靈明度高,單總線的數(shù)據(jù)傳輸協(xié)議,可直接與計算機(jī)串口連接,體積小,電路簡單等特點(diǎn)。</p><p>  微處理機(jī)與數(shù)字溫度計進(jìn)行實(shí)時溫度數(shù)據(jù)傳送處理,測量到的實(shí)時環(huán)境溫度通過字符液晶顯示屏進(jìn)行實(shí)時顯示。</p><p> 

25、 2.2系統(tǒng)元器件的選擇</p><p>  2.2.1 51單片機(jī) </p><p>  本次畢業(yè)設(shè)計的運(yùn)用功能是實(shí)時對數(shù)字溫度計的數(shù)據(jù)進(jìn)行實(shí)時采樣處理,并通過字符液晶進(jìn)行顯示,功能運(yùn)用相對簡單,運(yùn)算量相對不是很大。考慮到各種電路設(shè)計因素,選用國產(chǎn)宏晶科技公司生產(chǎn)的STC89C51單片機(jī)。</p><p>  80C51單片機(jī)系統(tǒng)包括4K字節(jié)的程序存儲器

26、(ROM)和128字節(jié)的數(shù)據(jù)存儲器(RAM)的組成,與四組工作寄存器和特殊功能寄存器(SFR)組成。MCU(微控制器)是基于哈佛結(jié)構(gòu)的系統(tǒng),在ROM和RAM的哈佛架構(gòu)下單獨(dú)處理與單獨(dú)存放,也就是說程序和數(shù)據(jù)可以對不同的指令訪問地址進(jìn)行區(qū)分,并同時接入的這樣的系統(tǒng)結(jié)構(gòu)有利于提高下的各種操作指令微控制器的執(zhí)行速度。</p><p>  80C51單片機(jī)結(jié)構(gòu)圖如下</p><p>  圖2.3

27、單片機(jī)結(jié)構(gòu)</p><p>  微控制器由以下幾部分組成:</p><p>  1個8位的微處理器,可由自身的內(nèi)部晶振電路提供工作時鐘,也可外接外部時鐘震蕩源,外部時鐘頻率根據(jù)電路應(yīng)用的功能不同提供多種選擇,單片機(jī)內(nèi)部有數(shù)據(jù)總線,地址總線,控制總線,三種總線協(xié)調(diào)工作于單片機(jī)的各種指令操作。</p><p>  本次設(shè)計使用的51單片機(jī)是一個擁有4K字節(jié)ROM,128

28、字節(jié)RAM的存儲器系統(tǒng),</p><p>  特殊功能寄存器SFR在P3口上,它使得單片機(jī)具有不同的操作功能。</p><p>  本次設(shè)計電路使用的單片機(jī)是雙列直插式的,其擁有4組8位的I/O口,51單片機(jī)可工作與內(nèi)部定時或者外部計數(shù),這由它的兩組16位定時計數(shù)器決定。</p><p>  它還擁有一個RXD和一個TXD,即一個串行接收和發(fā)送口。</p>

29、;<p>  單品機(jī)的中斷系統(tǒng)可以給各個不同的中斷源分配不同的優(yōu)先級去響應(yīng)中斷請求。</p><p>  圖2.4 80C51單片機(jī)管腳圖</p><p>  2.2.2單片機(jī)部分引腳功能說明:</p><p>  微處理器的時鐘電路引腳:</p><p>  XTAL2(18 腳):單片機(jī)的第18腳是反相放大器的輸出端,如果

30、單片機(jī)應(yīng)用電路使用外部時鐘,那么應(yīng)該向該引腳輸入外部時鐘脈沖,使得單片機(jī)獲得穩(wěn)定的起振頻率。</p><p>  XTAL1(19 腳):如果單片機(jī)使用的是外部時鐘時,那么此微處理器的第19引腳引腳必須接GND。</p><p>  微處理器的控制信號引腳:</p><p>  RST/VPD(9 腳):單片機(jī)的自動復(fù)位引腳,當(dāng)單片機(jī)上電后,可以自動復(fù)位,也可以對單

31、片機(jī)進(jìn)行手動復(fù)位,手動復(fù)位只需按一下復(fù)位電路上相應(yīng)的復(fù)位按鈕單片機(jī)即可實(shí)現(xiàn)復(fù)位。</p><p>  ALE/PROG(30 腳):如若程序執(zhí)行的操作地址指向外部地址時,單片機(jī)的第30引腳將輸出脈沖鎖存外部地址的低8位。</p><p>  該位置位后, MOVX和MOVC指令可以用于激活A(yù)LE。</p><p>  PSEN(29 腳):當(dāng)程序執(zhí)行的是外部地址空間

32、的程序存儲器時,此單片機(jī)的第29引腳將定時輸出負(fù)脈沖使得片外存儲器被選通。</p><p>  EA/Vpp(31 腳):EA 引腳始終高電平,即該引腳始終被拉高,單片機(jī)只對片內(nèi)EPROM/ROM進(jìn)行操作,當(dāng)程序計數(shù)器的值超過0FFFH時,處理器將自動跳轉(zhuǎn)到片外地址空間相應(yīng)程序。</p><p>  4組通用并行I/O口:</p><p>  4組通用I/O口都有輸

33、入和輸出功能,但是P0口在作輸出時要外接上拉電阻,這四組I/O口都可以驅(qū)動一定數(shù)量的TTL型負(fù)載,當(dāng)單片機(jī)訪問外部程序存儲器時,P0口作為高8位地址,P2口作為低8位地址供單片機(jī)使用,另外P3口與其它幾個I/O 端口功能也有區(qū)別,P3口不同與其他I/O口的地方在于它的特殊第二功能,各個通信口的功能如,P3.0口用不串行接收,P3.1口用于串行發(fā)送,這是一組串口。而P3.2、P3.3口是單片機(jī)的外部中斷0和1的輸入口,P3.4和P3.5口

34、分別是定時計數(shù)器0和1的輸入端口,微處理器的P3.6口用于寫選通,P3.7口用與數(shù)據(jù)存儲器的讀選通。</p><p>  表2.1 單片機(jī)P3口引腳說明</p><p>  2.3 溫度傳感器與單片機(jī)的接口電路</p><p>  數(shù)字溫度計若使用寄生電源供電方式時第三引腳必須接地, 數(shù)字溫度計DS18B20可以采用兩種方式供電,即數(shù)字溫度計可以使用外接電源供電也可

35、以使用寄生電源供電,這兩種電路的選擇各有優(yōu)缺點(diǎn),具體電路的選擇還得看與單片機(jī)接口電路的功能作用。</p><p>  圖2.5 數(shù)字溫度計與單片機(jī)的接口電路</p><p>  2.4 單片機(jī)與溫度報警</p><p>  系統(tǒng)中的報警電路是由蜂鳴器和發(fā)光二極管組成,系統(tǒng)正常工作時,P1.0口控制發(fā)光二極管綠燈亮,超溫時,紅燈亮,系統(tǒng)中的蜂鳴器實(shí)現(xiàn)超溫鳴叫報警功能。

36、</p><p>  圖2.6 發(fā)光二極管與蜂鳴器報警</p><p><b>  2.5小結(jié)</b></p><p>  本章節(jié)主要講解了單片機(jī)與數(shù)字溫度計之間的功能控制,并簡單介紹了數(shù)字溫度傳感器DS18B20在工業(yè)控制中的優(yōu)缺點(diǎn),以及在此次設(shè)計中是如何有效利用的。通過結(jié)合框圖形式更直觀、更形象地介紹了系統(tǒng)的整體組成以及各個模塊之間的協(xié)調(diào)工

37、作。</p><p>  第三章 部分硬件組成</p><p>  3.1 微控制器的中斷系統(tǒng)</p><p>  微處理機(jī)能在程序設(shè)計時進(jìn)行中斷服務(wù)程序嵌套,中斷允許寄存器IE決定是否響應(yīng)中斷請求;中斷優(yōu)先級寄存器IP給各個中斷請求提供先后順序;同一優(yōu)先級內(nèi)若出現(xiàn)不同的中斷請求,由微控制器按照從上到下的自然順序響應(yīng)中斷。</p><p> 

38、 3.2單片機(jī)的工作時鐘</p><p>  單片機(jī)在一定的時鐘頻率下工作,如圖3.1所示。Crystal為晶振,為單片機(jī)提供工作所需的振蕩頻率。XTAL1為單片機(jī)內(nèi)部時鐘振蕩器的輸入端,XTAL2為單片機(jī)內(nèi)部時鐘的輸出端。本次設(shè)計使用的是12MHZ晶振。C1、C2為振蕩補(bǔ)償瓷片電容,起到放寬起振頻率,可讓時鐘更容易起振。</p><p><b>  圖3.1 時鐘頻率</

39、b></p><p>  3.3 數(shù)字溫度計DS18B20</p><p>  數(shù)字溫度計只有三個引腳,1腳接GND,2腳與單片機(jī)通信口相連,3腳接VCC。單片機(jī)與數(shù)字溫度計DS18B20僅需一條線連接,如下圖所示。</p><p>  圖3.2 數(shù)字溫度計管腳圖</p><p><b>  字符液晶顯示器簡介</b&g

40、t;</p><p>  字符液晶顯示器是通過自身對光的反應(yīng),改變其透明度或者由于外部電磁場的電磁效應(yīng),改變其顯示顏色,使得液晶顯示器上顯示出各種不同的字符。</p><p>  顯示部分用來顯示所測的實(shí)時環(huán)境溫度數(shù)據(jù),本次畢業(yè)設(shè)計電路顯示模塊用的是字符液晶LCD1602,它是一個16列×2行的字符型液晶顯示模塊,即該液晶屏可顯示2行,每行可顯示16個字符,每屏總共可顯示32個字

41、符。</p><p>  圖3.3 字符液晶顯示地址</p><p>  3.4.1液晶屏的結(jié)構(gòu)以及功能:</p><p>  液晶屏是一種有機(jī)化合物,它內(nèi)部有兩個核心芯片HD44780,它的操作時序簡單易懂,但指令功能強(qiáng)大,它可以與單片機(jī)進(jìn)行通信,單片機(jī)可通過I/O口把各種要顯示的數(shù)據(jù)傳送到字符液晶顯示屏上進(jìn)行顯示,擁有背光功能的液晶顯示屏,在晚上可以發(fā)揮出像白天

42、一樣的顯示各種數(shù)據(jù)的功能,但不具有背光功能的字符液晶顯示屏只能在白天進(jìn)行數(shù)據(jù)顯示。液晶顯示模塊是一個慢顯示器件,在液晶顯示屏初始化完成后,在執(zhí)行每條指令之前,要確保模塊的忙標(biāo)志為低電平,即先判斷表示不忙,否則此指令失效,無法執(zhí)行相關(guān)的讀寫命令操作。</p><p>  液晶顯示屏引腳功能如下;</p><p>  圖3.4 1602引腳圖</p><p>  液晶顯

43、示屏引腳的功能講解:液晶器件VSS引腳,即數(shù)字溫度計的第一引腳一般接地,液晶器件VDD引腳,即數(shù)字溫度計的第二引腳一般外接電源,液晶器件VEE腳,此第三引腳是液晶顯示器的對比度調(diào)節(jié)端,液晶器件RS腳,此第四引腳又叫數(shù)據(jù)命令選擇端,液晶器件R/W腳,該第五引腳是讀寫信號選擇線,當(dāng)該引腳被寫入高電平1時程序?qū)⑦M(jìn)行讀操作,若該引腳被寫入低電平0時則程序?qū)⑦M(jìn)行寫操作,液晶器件第6腳是E(或EN)端,該引腳為字符液晶LCD1602的使能(enab

44、le)端,DB0~DB7為字符液晶LCD1602與單片機(jī)進(jìn)行傳輸數(shù)據(jù)的數(shù)據(jù)口,通過這八個口,溫度數(shù)據(jù)將被穩(wěn)定精確的顯示在字符液晶上。</p><p>  寄存器選擇控制如下圖所示;</p><p>  表3.1 各引腳使用說明</p><p>  表3.2 操作時序說明</p><p>  3.5字符液晶顯示部分與微處理機(jī)的接口</p&

45、gt;<p>  單片機(jī)的的P2口作為數(shù)據(jù)傳輸口,液晶顯示器LCD的E、R/W、RS端分別位定義為P3.2、P3.1、P3.0。通過軟硬件設(shè)計,把所側(cè)到的實(shí)時環(huán)境溫度通過字符液晶顯示屏進(jìn)行實(shí)時溫度控制。</p><p><b>  如下圖所示。</b></p><p>  圖3.5 液晶與89C51的接口</p><p>  溫度

46、報警控制電路的工作過程為:單片機(jī)定時采集DS18B20溫度傳感器所測得到的被測對象的實(shí)時表面溫度,并將采集的溫度數(shù)據(jù)通過單片機(jī)I/O口通信顯示在字符液晶上,同時將采集到的實(shí)時溫度數(shù)據(jù)與單片機(jī)內(nèi)設(shè)定的溫度上下限進(jìn)行比較,如在正常的溫度范圍,則正常顯示綠燈,若高出或低于設(shè)定的值,則發(fā)出蜂鳴器警告。</p><p>  第四章 數(shù)字溫度計軟件</p><p>  4.1主程序模塊 </p

47、><p>  通過keil軟件編寫程序,軟件仿真通過后,使用protues硬件仿真軟件實(shí)現(xiàn)聯(lián)調(diào),測試各個功能模塊的作用是否能夠在硬件電路上一一實(shí)現(xiàn)。</p><p><b>  4.2主程序流程圖</b></p><p>  圖4.1 主程序流程圖</p><p>  4.3 DS18B20初始化</p>&l

48、t;p>  圖4.2 DS18B20初始化流程圖</p><p><b>  4.4仿真結(jié)果</b></p><p>  本次程序上限超溫報警溫度為30度,下限低溫報警溫度為0度。</p><p>  由下圖仿真一中數(shù)據(jù)可看出,當(dāng)實(shí)時溫度為零上31度時,超出程序設(shè)定的上限報警溫度,則電路中紅燈亮,繼而蜂鳴器鳴叫報警。</p>

49、<p><b>  圖4.3 仿真圖一</b></p><p>  由下圖仿真二中數(shù)據(jù)可看出,當(dāng)實(shí)時溫度為零下負(fù)一度時,低于程序設(shè)定的下限報警溫度,則電路中紅燈也亮,繼而蜂鳴器也實(shí)現(xiàn)鳴叫報警。</p><p><b>  圖4.4 仿真圖二</b></p><p>  如下圖仿真三所示溫度數(shù)據(jù)。此時實(shí)時溫度數(shù)據(jù)

50、為零上25度,該被測溫度值在程序所允許的溫度范圍內(nèi),所以綠燈亮,表明一切工作正常,溫度正常。</p><p><b>  圖4.5 仿真圖三</b></p><p><b>  4.5小結(jié)</b></p><p>  通過本章節(jié)的學(xué)習(xí),我們學(xué)習(xí)了如何從開始的硬件電路設(shè)計,再到結(jié)合軟件的編寫,讓硬件電路通過軟件代碼實(shí)現(xiàn)真正的

51、功能應(yīng)用,這也讓我們學(xué)習(xí)了51單片機(jī)的編程方式,以及如何正確使用protues軟件實(shí)現(xiàn)硬件的仿真。</p><p><b>  總結(jié)</b></p><p>  通過本次畢業(yè)設(shè)計使我對電路系統(tǒng)中的一些基本原理有了簡單的理解 ,從選題到硬件電路的完成,感覺自己的收獲很大。首先,我在確定選題后查找和閱讀了很多相關(guān)的理論知識,尤其是對DS18B20這個器件做了很多的了解。其

52、次,也提高了我使用 proteus 軟件做軟件仿真的能力和技巧。</p><p>  本次畢業(yè)設(shè)計的硬件電路設(shè)計與實(shí)物制作讓我更是深深體會到這一點(diǎn),只有自己親自動手操作,自己動手制作的作品才是真正意義上屬于自己的成果,才能真正體會到理論聯(lián)系實(shí)踐的總要性,在結(jié)合keil編程軟件編寫程序過程中,進(jìn)一步加強(qiáng)了我對整體硬件電路的理解。最后,完成硬件作品也是很關(guān)鍵的步驟,再多的理論知識也只有通過其產(chǎn)生的實(shí)物應(yīng)用才能體現(xiàn)它的

53、價值。因而制作出完美的實(shí)物作品是必不可少的,經(jīng)過自己幾個月的努力,通過焊接、調(diào)試、檢修,我最終制作出了設(shè)計作品,驗(yàn)證了自己在本次設(shè)計中學(xué)習(xí)到的知識和設(shè)計的正確性。 </p><p>  參考文獻(xiàn)(References)</p><p>  《電工電子實(shí)踐指導(dǎo)》.王港元.江西科學(xué)技術(shù)出版社,2009.3.</p><p>  《電子元器件應(yīng)用手冊》.黃繼昌.人民郵電出

54、榜社,2004.7.</p><p>  《電路》第5版.邱關(guān)源.羅先覺.高等教育出版社 ,2006. 5.</p><p>  《數(shù)字電子技術(shù)基礎(chǔ) 》.張申科.電子工業(yè)出版社,2005.5.</p><p>  《模電數(shù)電基礎(chǔ)實(shí)驗(yàn)及Multisim7仿真》.黃培根.浙江大學(xué)出版社,2007.3.</p><p>  《微型計算機(jī)系統(tǒng)原理及應(yīng)

55、用》.楊素行.清華大學(xué)出版社,2004. 2.</p><p>  《綜合電子設(shè)計與實(shí)踐》.王振紅.張常年.清華大學(xué)出版社 ,2005. 3.</p><p>  《單片機(jī)原理及應(yīng)用教程》第2版.趙金利.肖興達(dá).機(jī)械工業(yè)出版社,2007.7.</p><p>  《電子技術(shù)基礎(chǔ)》模擬部分(第四版).康華光.高等教育出版社, 1999.</p><

56、p>  《電子技術(shù)實(shí)驗(yàn)與課程設(shè)計》.蔡忠法.浙江大學(xué)出版社,2003.</p><p><b>  致謝</b></p><p>  通過這幾個月的研究學(xué)習(xí)以及在導(dǎo)師的幫助下,我成功的完成了自己畢業(yè)設(shè)計實(shí)物的制作以及論文的編寫?;厥鬃约哼@四年大學(xué)生活,有笑有淚,有花有果,想感謝的人很多,多到自己都無從說起。</p><p>  從去年的基

57、本理論知識整理,到最近幾個月的電路設(shè)計,從剛開始的源程序編寫,接著仿真成功,再到最后的畫PCB板,焊板子,在我們電子系指導(dǎo)老師*老師的耐心指導(dǎo)下,我完成了本次畢業(yè)設(shè)計的全部工作。這次設(shè)計不僅涉及到對單片機(jī)系統(tǒng)基本原理的理解,也涉及到如何對電路中出現(xiàn)的問題的分析和解決能力。</p><p>  **老師多次詢問畢業(yè)設(shè)計的進(jìn)程,并為我指點(diǎn)迷津,陳老師一絲不茍的作風(fēng),嚴(yán)謹(jǐn)求實(shí)的態(tài)度,不僅授我以文,幫助我開拓電路設(shè)計思路

58、,而且教我做人,給我以終生受益無窮之道。正是在*老師的指點(diǎn)下,我才能如此順利地完成本次畢業(yè)設(shè)計。</p><p>  所以,再一次表達(dá)我對學(xué)科部領(lǐng)導(dǎo)以及無論是在學(xué)習(xí)上還是在生活中幫助過我的老師最衷心的感謝,是你們在我前進(jìn)的道路上給我以正確的人生引導(dǎo),并無私的教授予我專業(yè)知識以及各種為人處世之道。</p><p><b>  附錄一:源程序</b></p>

59、<p><b>  全部程序清單</b></p><p>  #include<reg52.h></p><p>  #define uchar unsigned char </p><p>  #define uint unsigned int </p>&

60、lt;p><b>  uchar i;</b></p><p>  sbit lcdrs=P3^0;</p><p>  sbit lcdrw=P3^1;</p><p>  sbit lcden=P3^2;</p><p>  sbit d1=P1^0;</p><p>  sbit

61、d2=P1^1;</p><p>  uchar code table1[]="wendu:" ;</p><p>  uchar code table2[]="H: L:";</p><p>  uchar code wendu[]="0123456789"; //利用一個溫度表解決溫度顯

62、示亂碼</p><p>  sbit DQ = P3^7;//定義ds18B20總線IO</p><p>  sbit beep=P3^5;</p><p>  uchar fuhao=0;//;標(biāo)記溫度正負(fù) 1為負(fù)數(shù) 0為正數(shù)</p><p>  int HIGH_temp=0,LOW_temp=0,temp,l; </p>

63、<p>  uint num=0; </p><p>  uchar bai,shi,ge,xiaoshu,k=0;</p><p><b>  //延時模塊</b></p><p>  void delay(uint z)</p><p><b>  {&

64、lt;/b></p><p><b>  uint x,y;</b></p><p>  for(x=100;x>1;x--)</p><p>  for(y=z;y>1;y--);</p><p><b>  }</b></p><p><b>

65、  //液晶顯示模塊</b></p><p>  void write_com(uchar com)</p><p><b>  {</b></p><p>  lcdrs=0;//寫命令</p><p><b>  P2=com;</b></p><p>&l

66、t;b>  delay(5);</b></p><p><b>  lcden=1;</b></p><p><b>  delay(5);</b></p><p><b>  lcden=0;</b></p><p><b>  }</b&g

67、t;</p><p>  void write_data(uchar date)</p><p><b>  {</b></p><p><b>  lcdrs=1;</b></p><p><b>  P2=date;</b></p><p><

68、b>  delay(5);</b></p><p><b>  lcden=1;</b></p><p><b>  delay(5);</b></p><p><b>  lcden=0;</b></p><p><b>  }</b>

69、</p><p>  void init_lcd() //初始化液顯</p><p><b>  {</b></p><p><b>  uchar i;</b></p><p>  lcden=0;//en開始時拉低</p><p>  lcdrw=0;//寫</p&

70、gt;<p>  write_com(0x38);</p><p>  write_com(0x01);</p><p>  write_com(0x0c);//開顯示,顯示光標(biāo)</p><p>  write_com(0x06);</p><p>  write_com(0x80);</p><p> 

71、 for(i=0;table1[i]!='\0';i++)</p><p>  write_data(table1[i]);</p><p>  write_com(0xC0);</p><p>  for(i=0;table2[i]!='\0';i++)</p><p>  write_data(table2

72、[i]);</p><p><b>  }</b></p><p><b>  //溫度采集模塊</b></p><p>  void tmpDelay(int num)//延時函數(shù)</p><p><b>  {</b></p><p>  whil

73、e(num--) ;</p><p><b>  }</b></p><p>  /*************************************************************************/</p><p>  void Init_DS18B20()//初始化ds1820</p><

74、;p><b>  {</b></p><p>  uchar x=0;</p><p>  DQ = 1; //DQ復(fù)位</p><p>  tmpDelay(8); //稍做延時</p><p>  DQ = 0; //單片機(jī)將DQ拉低</p><p>  tmpDelay(

75、80); //精確延時 大于 480us</p><p>  DQ = 1; //拉高總線</p><p>  tmpDelay(14);</p><p>  x=DQ; //稍做延時后 如果x=0則初始化成功 x=1則初始化失敗</p><p>  tmpDelay(20);</p><p><

76、b>  }</b></p><p>  uchar ReadOneChar()//讀一個字節(jié)</p><p><b>  {</b></p><p>  uchar i=0;</p><p>  uchar dat=0;</p><p>  for (i=8;i>0;i--

77、)</p><p><b>  {</b></p><p>  DQ = 0; // 給脈沖信號</p><p><b>  dat>>=1;</b></p><p>  DQ = 1; // 給脈沖信號</p><p><b>  if(DQ)<

78、/b></p><p>  dat|=0x80;</p><p>  tmpDelay(4);</p><p><b>  }</b></p><p>  return(dat);</p><p><b>  }</b></p><p>  vo

79、id WriteOneChar(unsigned char dat)//寫一個字節(jié)</p><p><b>  {</b></p><p>  uchar i=0;</p><p>  for (i=8; i>0; i--)</p><p><b>  {</b></p><

80、;p><b>  DQ = 0;</b></p><p>  DQ = dat&0x01;</p><p>  tmpDelay(5);</p><p><b>  DQ = 1;</b></p><p><b>  dat>>=1;</b></

81、p><p><b>  }</b></p><p><b>  }</b></p><p>  unsigned int Readtemp()//讀取溫度</p><p><b>  {</b></p><p>  uchar a=0;</p>

82、<p>  uchar b=0;</p><p><b>  uint t=0;</b></p><p>  float tt=0;</p><p>  Init_DS18B20();</p><p>  WriteOneChar(0xCC); // 跳過讀序號列號的操作</p><p&

83、gt;  WriteOneChar(0x44); // 啟動溫度轉(zhuǎn)換</p><p>  delay(750);</p><p>  Init_DS18B20();</p><p>  WriteOneChar(0xCC); //跳過讀序號列號的操作</p><p>  WriteOneChar(0xBE); //讀取溫度寄存器</p&

84、gt;<p>  a=ReadOneChar(); //連續(xù)讀兩個字節(jié)數(shù)據(jù) //讀低8位 </p><p>  b=ReadOneChar(); //讀高8位</p><p><b>  t=b;</b></p><p><b>  t<<=8;<

85、;/b></p><p>  t=t|a; //兩字節(jié)合成一個整型變量。</p><p>  if(t&0x8000)</p><p><b>  {</b></p><p><b>  fuhao=1;</b></p><p>  t=(~t)+1; <

86、/p><p><b>  }</b></p><p>  t=t*10/16;//屏蔽低四位</p><p>  return(t);</p><p><b>  }</b></p><p><b>  //報警模塊</b></p><p

87、>  void Alarm(uchar t)</p><p><b>  {</b></p><p>  uchar i,j;</p><p>  for(i=0;i<200;i++)</p><p><b>  {</b></p><p>  beep = ~b

88、eep;</p><p>  for(j=0;j<t;j++);</p><p><b>  }</b></p><p><b>  } </b></p><p>  void dis(uchar a,int b)</p><p><b>  {</b&

89、gt;</p><p><b>  if(a==1)</b></p><p><b>  {</b></p><p>  write_com(0xC0+2);</p><p><b>  if(b<0) </b></p><p><b>

90、  {</b></p><p><b>  b=0-b;</b></p><p>  write_data('-');</p><p><b>  }</b></p><p>  else if(b>0)</p><p><b>

91、  {</b></p><p>  write_data('+');</p><p><b>  }</b></p><p><b>  }</b></p><p>  else if(a==2)</p><p><b>  {</

92、b></p><p>  write_com(0xC0+10);</p><p><b>  if(b<0) </b></p><p><b>  {</b></p><p><b>  b=0-b;</b></p><p>  write_

93、data('-');</p><p><b>  }</b></p><p>  else if(b>0)</p><p><b>  {</b></p><p>  write_data('+');</p><p><b>

94、  }</b></p><p><b>  }</b></p><p>  bai=b/1000;</p><p>  shi=b/100%10;</p><p>  ge=b/10%10;</p><p>  xiaoshu=b%10;</p><p&g

95、t;  write_data(wendu[bai]);</p><p>  write_data(wendu[shi]);</p><p>  write_data(wendu[ge]);</p><p>  write_data(0x2e);</p><p>  write_data(wendu[xiaoshu]);</p>

96、<p><b>  }</b></p><p>  void display()</p><p><b>  { </b></p><p>  num=Readtemp();</p><p>  bai=num/1000;</p><p>  shi=n

97、um/100%10;</p><p>  ge=num/10%10;</p><p>  xiaoshu=num%10;</p><p>  write_com(0x80+6);</p><p>  if(fuhao) write_data('-');</p><p>  else write_data

98、('+');</p><p>  write_data(wendu[bai]);</p><p>  write_data(wendu[shi]);</p><p>  write_data(wendu[ge]);</p><p>  write_data(0x2e);</p><p>  write_

99、data(wendu[xiaoshu]);</p><p>  if((fuhao==0)&&(shi>=3))</p><p><b>  {</b></p><p><b>  if(ge>0)</b></p><p><b>  {</b>&l

100、t;/p><p>  d1=1;d2=0;Alarm(90);Alarm(120);delay(500);</p><p><b>  }</b></p><p><b>  else</b></p><p>  {d1=0;d2=1;}</p><p><b>  }

101、</b></p><p>  else if((fuhao==1)&&(shi>=0))</p><p><b>  {</b></p><p><b>  if(ge>0)</b></p><p><b>  {</b></p&g

102、t;<p>  d1=1;d2=0;Alarm(90);Alarm(120);delay(500);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p><p>  {d1=0;d

103、2=1;}</p><p>  if(fuhao) temp=0-num;</p><p>  else temp=num;</p><p><b>  if(k==0) </b></p><p><b>  {</b></p><p>  LOW_temp=temp;<

104、;/p><p>  dis(2,LOW_temp); </p><p><b>  k++;</b></p><p><b>  }</b></p><p>  else if(k==1) </p><p><b>  {</b></p>&l

105、t;p>  HIGH_temp=temp;</p><p>  if(HIGH_temp<LOW_temp)</p><p><b>  {</b></p><p>  l=HIGH_temp;HIGH_temp=LOW_temp;LOW_temp=l;</p><p><b>  }</b&

106、gt;</p><p>  dis(1,HIGH_temp);</p><p><b>  k++;</b></p><p><b>  } </b></p><p>  else if(k==2)</p><p><b>  {</b></p&

107、gt;<p>  if(temp>HIGH_temp) HIGH_temp=temp;</p><p>  else if(temp<LOW_temp) LOW_temp=temp;</p><p>  dis(1,HIGH_temp);</p><p>  dis(2,LOW_temp);</p><p><

108、b>  }</b></p><p><b>  fuhao=0;</b></p><p><b>  }</b></p><p>  void main()</p><p><b>  {</b></p><p>  init_lcd(

109、);</p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  display();</p><p>  delay(100);</p><p><b>  }</b></p><

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論