

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 題 目 基于單片機(jī)的數(shù)字溫度計(jì)的電路設(shè)計(jì) </p><p><b> 目 錄</b></p><p><b> 摘要I</b></p><p> AbstractII</p><p> 第一章 數(shù)字溫度計(jì)和DS18B201<
2、/p><p> 1.1 數(shù)字溫度計(jì)的優(yōu)越性1</p><p> 1.2 數(shù)字溫度計(jì)的內(nèi)部結(jié)構(gòu)和性能1</p><p> 第二章 系統(tǒng)總體設(shè)計(jì)方法2</p><p> 硬件系統(tǒng)設(shè)計(jì)方案 2</p><p><b> 電路系統(tǒng)組成 2</b></p>
3、<p> 2.1 硬件電路設(shè)計(jì) 3</p><p> 2.2 系統(tǒng)元器件的選擇4</p><p> 2.3 溫度傳感器與單片機(jī)的接口電路7</p><p> 2.4 單片機(jī)與溫度報(bào)警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ī)的工作時(shí)鐘9</p><p> 3.3 數(shù)值溫度計(jì)DS18B209</p><p> 3.4 字符液晶顯示器簡(jiǎn)介10</p><p> 3.5 字符液晶顯示部分與微處理機(jī)的接口12<
5、/p><p> 第四章 數(shù)字溫度計(jì)軟件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ù)字溫度計(jì)的電路設(shè)計(jì)</p><p> 摘要:電路系統(tǒng)的設(shè)計(jì)是主控制芯片微控制器,包括硬件電路設(shè)計(jì)和系統(tǒng)程序設(shè)計(jì),通過(guò)數(shù)字溫度計(jì)實(shí)現(xiàn)溫度的測(cè)量,并通過(guò)測(cè)量溫度的LCD1602液晶顯示器。單片機(jī)系統(tǒng)的硬件電路包括采用STC89C51單片機(jī),數(shù)字溫度計(jì)采用美國(guó)公司的數(shù)字DALLAS半導(dǎo)體公司的芯片DS18B20,液晶顯示電路采用字符液晶LCD1602的單片機(jī)的溫度采集電路,液
8、晶顯示電路和過(guò)溫報(bào)警電路,系統(tǒng)主處理器。</p><p> 相較于傳統(tǒng)的數(shù)字溫度計(jì),其讀數(shù)方便,控溫精度和溫度范圍寬等優(yōu)點(diǎn)。本文介紹了一種基于單片機(jī)STC89C51單片機(jī)溫度測(cè)量電路和超溫報(bào)警電路,該系統(tǒng)用作溫度檢測(cè)DS18B20的貼片元件,其溫度控制范圍為-50℃?+110℃,采用字符型液晶顯示模塊,可設(shè)定溫度報(bào)警限值。</p><p> 關(guān)鍵字:DS18B20,STC89C51,數(shù)
9、字溫度計(jì),單片機(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ù)字溫度計(jì)和DS18B20</p><p> 1.1數(shù)字溫度計(jì)的優(yōu)越性<
15、;/p><p> 由于普通的監(jiān)控現(xiàn)場(chǎng)電磁環(huán)境都非常不理想,電磁干擾信號(hào)錯(cuò)綜復(fù)雜,傳統(tǒng)的模擬溫度信號(hào)更容易受到電磁干擾而產(chǎn)生很大的測(cè)量誤差,這嚴(yán)重影響測(cè)量的精確度。</p><p> 加上傳統(tǒng)的溫度計(jì)設(shè)計(jì)繁雜,設(shè)計(jì)成本高,使用的環(huán)境條件要求較高,對(duì)于實(shí)時(shí)溫度的測(cè)量不精確。</p><p> 所以,數(shù)字溫度計(jì)就在這種情況下應(yīng)運(yùn)而生,獨(dú)特3引腳結(jié)構(gòu)以及抗電磁干擾能力強(qiáng)的
16、新型數(shù)字溫度計(jì)能很好的解決電磁環(huán)境的各種信號(hào)干擾。</p><p> 1.2 數(shù)字溫度計(jì)的內(nèi)部結(jié)構(gòu)和性能</p><p> 美國(guó)達(dá)拉斯半導(dǎo)體公司生產(chǎn)的數(shù)字溫度計(jì)DS18B20使用單根總線通信,數(shù)字溫度計(jì)DS18B20的特點(diǎn)是可在沒(méi)有外部電源供電的情況下正常工作,當(dāng)總線處在高電平狀態(tài)時(shí),DQ與上拉電阻連接通過(guò)數(shù)字溫度計(jì)單總線對(duì)器件進(jìn)行供電。同時(shí)讓高電平狀態(tài)的總線對(duì)電路內(nèi)部瓷片電容(Cpp
17、)進(jìn)行充電,一旦總線變?yōu)榈碗娖綘顟B(tài)時(shí),該瓷片電容能持續(xù)不斷提供能量給系統(tǒng)元器件。數(shù)字溫度計(jì)這種提供能量的形式被稱做“寄生電源”。作為替代選擇,數(shù)字溫度計(jì)DS18B20同樣可以通過(guò)VDD引腳連接外部電源進(jìn)行供電。</p><p> 數(shù)字溫度計(jì)簡(jiǎn)單的結(jié)構(gòu)、靈活的使用范圍和低廉的價(jià)格,使它被大量應(yīng)用各種工業(yè)生活場(chǎng)所。</p><p> 圖1.1 數(shù)字溫度計(jì)引腳封裝如圖</p>
18、<p> 第二章 系統(tǒng)總體設(shè)計(jì)方法</p><p> 該系統(tǒng)的電路組成主要有四部分分別是數(shù)據(jù)采集,溫度測(cè)量,溫度顯示和超溫報(bào)警,實(shí)現(xiàn)該電路的方法有如下兩種方法。</p><p><b> 方法一</b></p><p> 熱電偶溫差檢測(cè)法,該方法的基本原理是將兩種不同材料的導(dǎo)體或半導(dǎo)體焊接構(gòu)成一個(gè)閉合回路,該方法的優(yōu)點(diǎn)是測(cè)溫范
19、圍較寬,但缺點(diǎn)是電路輸出電壓小且容易受到外部噪聲干擾。利用單片機(jī)與字符液晶顯示器接口進(jìn)行數(shù)據(jù)A/D轉(zhuǎn)換,把被測(cè)實(shí)時(shí)環(huán)境溫度通過(guò)LCD1602液晶屏顯示出來(lái)。</p><p> 該電路系統(tǒng)示意圖如下</p><p> 圖2.1 熱電偶溫差測(cè)溫系統(tǒng)示意圖</p><p><b> 方法二</b></p><p> 用
20、數(shù)字溫度計(jì)DS18B20與STC89C51單片機(jī)實(shí)時(shí)檢測(cè)環(huán)境溫度,以達(dá)到環(huán)境溫度的功能快速準(zhǔn)確的測(cè)量,并且可以根據(jù)需要來(lái)控制不同的上限和下限報(bào)警溫度,用AT24C16芯片存儲(chǔ)設(shè)備作為一種方法來(lái)存儲(chǔ)溫度數(shù)據(jù)。</p><p><b> 電路系統(tǒng)設(shè)計(jì)方案</b></p><p> DS18B20數(shù)字溫度計(jì)可以通過(guò)先將所測(cè)量的環(huán)境溫度進(jìn)行處理,然后發(fā)送給單片機(jī)進(jìn)行數(shù)據(jù)處
21、理,把處理后的溫度數(shù)據(jù)送給字符液晶顯示屏LCD1602進(jìn)行顯示,若超過(guò)所設(shè)的溫度報(bào)警上下限值,則通過(guò)蜂蜜器進(jìn)行揚(yáng)聲警報(bào)。</p><p><b> 電路系統(tǒng)組成</b></p><p> 本次設(shè)計(jì)電路系統(tǒng)構(gòu)成主體由微處理器模塊、復(fù)位電路模塊、時(shí)鐘電路模塊、超溫報(bào)警模塊、數(shù)字溫度計(jì)模塊、LCD1602液晶顯示模塊等組成。</p><p>&l
22、t;b> 2.1硬件電路設(shè)計(jì)</b></p><p> 數(shù)字溫度計(jì)電路系統(tǒng)總體設(shè)計(jì)框架圖如下圖所示。</p><p> 圖2.2 溫度計(jì)總體設(shè)計(jì)框圖</p><p><b> 主控制器</b></p><p> 微控制器STC89C51具有低電壓供電和電路系統(tǒng)占用體積小、低功耗等優(yōu)點(diǎn),該電路系
23、統(tǒng)只需兩節(jié)5號(hào)干電池就能提供系統(tǒng)所需的電源電壓需求,四個(gè)輸入輸出口只需兩個(gè)I/O口就能提供本電路系統(tǒng)的設(shè)計(jì)需要。</p><p><b> 顯示電路</b></p><p> 本次設(shè)計(jì)顯示電路采用字符液晶LCD1602,從P2口向字符液晶寫入實(shí)時(shí)溫度數(shù)據(jù)。字符液晶LCD1602顯示實(shí)時(shí)溫度的最大特點(diǎn)是減少對(duì)I/O口資源的使用,操作時(shí)序簡(jiǎn)單,顯示溫度準(zhǔn)確清楚。<
24、;/p><p><b> 溫度傳感器</b></p><p> 本次設(shè)計(jì)的數(shù)字溫度計(jì)具有工作穩(wěn)定性好,靈明度高,單總線的數(shù)據(jù)傳輸協(xié)議,可直接與計(jì)算機(jī)串口連接,體積小,電路簡(jiǎn)單等特點(diǎn)。</p><p> 微處理機(jī)與數(shù)字溫度計(jì)進(jìn)行實(shí)時(shí)溫度數(shù)據(jù)傳送處理,測(cè)量到的實(shí)時(shí)環(huán)境溫度通過(guò)字符液晶顯示屏進(jìn)行實(shí)時(shí)顯示。</p><p>
25、 2.2系統(tǒng)元器件的選擇</p><p> 2.2.1 51單片機(jī) </p><p> 本次畢業(yè)設(shè)計(jì)的運(yùn)用功能是實(shí)時(shí)對(duì)數(shù)字溫度計(jì)的數(shù)據(jù)進(jìn)行實(shí)時(shí)采樣處理,并通過(guò)字符液晶進(jìn)行顯示,功能運(yùn)用相對(duì)簡(jiǎn)單,運(yùn)算量相對(duì)不是很大??紤]到各種電路設(shè)計(jì)因素,選用國(guó)產(chǎn)宏晶科技公司生產(chǎn)的STC89C51單片機(jī)。</p><p> 80C51單片機(jī)系統(tǒng)包括4K字節(jié)的程序存儲(chǔ)器
26、(ROM)和128字節(jié)的數(shù)據(jù)存儲(chǔ)器(RAM)的組成,與四組工作寄存器和特殊功能寄存器(SFR)組成。MCU(微控制器)是基于哈佛結(jié)構(gòu)的系統(tǒng),在ROM和RAM的哈佛架構(gòu)下單獨(dú)處理與單獨(dú)存放,也就是說(shuō)程序和數(shù)據(jù)可以對(duì)不同的指令訪問(wèn)地址進(jìn)行區(qū)分,并同時(shí)接入的這樣的系統(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個(gè)8位的微處理器,可由自身的內(nèi)部晶振電路提供工作時(shí)鐘,也可外接外部時(shí)鐘震蕩源,外部時(shí)鐘頻率根據(jù)電路應(yīng)用的功能不同提供多種選擇,單片機(jī)內(nèi)部有數(shù)據(jù)總線,地址總線,控制總線,三種總線協(xié)調(diào)工作于單片機(jī)的各種指令操作。</p><p> 本次設(shè)計(jì)使用的51單片機(jī)是一個(gè)擁有4K字節(jié)ROM,128
28、字節(jié)RAM的存儲(chǔ)器系統(tǒng),</p><p> 特殊功能寄存器SFR在P3口上,它使得單片機(jī)具有不同的操作功能。</p><p> 本次設(shè)計(jì)電路使用的單片機(jī)是雙列直插式的,其擁有4組8位的I/O口,51單片機(jī)可工作與內(nèi)部定時(shí)或者外部計(jì)數(shù),這由它的兩組16位定時(shí)計(jì)數(shù)器決定。</p><p> 它還擁有一個(gè)RXD和一個(gè)TXD,即一個(gè)串行接收和發(fā)送口。</p>
29、;<p> 單品機(jī)的中斷系統(tǒng)可以給各個(gè)不同的中斷源分配不同的優(yōu)先級(jí)去響應(yīng)中斷請(qǐng)求。</p><p> 圖2.4 80C51單片機(jī)管腳圖</p><p> 2.2.2單片機(jī)部分引腳功能說(shuō)明:</p><p> 微處理器的時(shí)鐘電路引腳:</p><p> XTAL2(18 腳):?jiǎn)纹瑱C(jī)的第18腳是反相放大器的輸出端,如果
30、單片機(jī)應(yīng)用電路使用外部時(shí)鐘,那么應(yīng)該向該引腳輸入外部時(shí)鐘脈沖,使得單片機(jī)獲得穩(wěn)定的起振頻率。</p><p> XTAL1(19 腳):如果單片機(jī)使用的是外部時(shí)鐘時(shí),那么此微處理器的第19引腳引腳必須接GND。</p><p> 微處理器的控制信號(hào)引腳:</p><p> RST/VPD(9 腳):?jiǎn)纹瑱C(jī)的自動(dòng)復(fù)位引腳,當(dāng)單片機(jī)上電后,可以自動(dòng)復(fù)位,也可以對(duì)單
31、片機(jī)進(jìn)行手動(dòng)復(fù)位,手動(dòng)復(fù)位只需按一下復(fù)位電路上相應(yīng)的復(fù)位按鈕單片機(jī)即可實(shí)現(xiàn)復(fù)位。</p><p> ALE/PROG(30 腳):如若程序執(zhí)行的操作地址指向外部地址時(shí),單片機(jī)的第30引腳將輸出脈沖鎖存外部地址的低8位。</p><p> 該位置位后, MOVX和MOVC指令可以用于激活A(yù)LE。</p><p> PSEN(29 腳):當(dāng)程序執(zhí)行的是外部地址空間
32、的程序存儲(chǔ)器時(shí),此單片機(jī)的第29引腳將定時(shí)輸出負(fù)脈沖使得片外存儲(chǔ)器被選通。</p><p> EA/Vpp(31 腳):EA 引腳始終高電平,即該引腳始終被拉高,單片機(jī)只對(duì)片內(nèi)EPROM/ROM進(jìn)行操作,當(dāng)程序計(jì)數(shù)器的值超過(guò)0FFFH時(shí),處理器將自動(dòng)跳轉(zhuǎn)到片外地址空間相應(yīng)程序。</p><p> 4組通用并行I/O口:</p><p> 4組通用I/O口都有輸
33、入和輸出功能,但是P0口在作輸出時(shí)要外接上拉電阻,這四組I/O口都可以驅(qū)動(dòng)一定數(shù)量的TTL型負(fù)載,當(dāng)單片機(jī)訪問(wèn)外部程序存儲(chǔ)器時(shí),P0口作為高8位地址,P2口作為低8位地址供單片機(jī)使用,另外P3口與其它幾個(gè)I/O 端口功能也有區(qū)別,P3口不同與其他I/O口的地方在于它的特殊第二功能,各個(gè)通信口的功能如,P3.0口用不串行接收,P3.1口用于串行發(fā)送,這是一組串口。而P3.2、P3.3口是單片機(jī)的外部中斷0和1的輸入口,P3.4和P3.5口
34、分別是定時(shí)計(jì)數(shù)器0和1的輸入端口,微處理器的P3.6口用于寫選通,P3.7口用與數(shù)據(jù)存儲(chǔ)器的讀選通。</p><p> 表2.1 單片機(jī)P3口引腳說(shuō)明</p><p> 2.3 溫度傳感器與單片機(jī)的接口電路</p><p> 數(shù)字溫度計(jì)若使用寄生電源供電方式時(shí)第三引腳必須接地, 數(shù)字溫度計(jì)DS18B20可以采用兩種方式供電,即數(shù)字溫度計(jì)可以使用外接電源供電也可
35、以使用寄生電源供電,這兩種電路的選擇各有優(yōu)缺點(diǎn),具體電路的選擇還得看與單片機(jī)接口電路的功能作用。</p><p> 圖2.5 數(shù)字溫度計(jì)與單片機(jī)的接口電路</p><p> 2.4 單片機(jī)與溫度報(bào)警</p><p> 系統(tǒng)中的報(bào)警電路是由蜂鳴器和發(fā)光二極管組成,系統(tǒng)正常工作時(shí),P1.0口控制發(fā)光二極管綠燈亮,超溫時(shí),紅燈亮,系統(tǒng)中的蜂鳴器實(shí)現(xiàn)超溫鳴叫報(bào)警功能。
36、</p><p> 圖2.6 發(fā)光二極管與蜂鳴器報(bào)警</p><p><b> 2.5小結(jié)</b></p><p> 本章節(jié)主要講解了單片機(jī)與數(shù)字溫度計(jì)之間的功能控制,并簡(jiǎn)單介紹了數(shù)字溫度傳感器DS18B20在工業(yè)控制中的優(yōu)缺點(diǎn),以及在此次設(shè)計(jì)中是如何有效利用的。通過(guò)結(jié)合框圖形式更直觀、更形象地介紹了系統(tǒng)的整體組成以及各個(gè)模塊之間的協(xié)調(diào)工
37、作。</p><p> 第三章 部分硬件組成</p><p> 3.1 微控制器的中斷系統(tǒng)</p><p> 微處理機(jī)能在程序設(shè)計(jì)時(shí)進(jìn)行中斷服務(wù)程序嵌套,中斷允許寄存器IE決定是否響應(yīng)中斷請(qǐng)求;中斷優(yōu)先級(jí)寄存器IP給各個(gè)中斷請(qǐng)求提供先后順序;同一優(yōu)先級(jí)內(nèi)若出現(xiàn)不同的中斷請(qǐng)求,由微控制器按照從上到下的自然順序響應(yīng)中斷。</p><p>
38、 3.2單片機(jī)的工作時(shí)鐘</p><p> 單片機(jī)在一定的時(shí)鐘頻率下工作,如圖3.1所示。Crystal為晶振,為單片機(jī)提供工作所需的振蕩頻率。XTAL1為單片機(jī)內(nèi)部時(shí)鐘振蕩器的輸入端,XTAL2為單片機(jī)內(nèi)部時(shí)鐘的輸出端。本次設(shè)計(jì)使用的是12MHZ晶振。C1、C2為振蕩補(bǔ)償瓷片電容,起到放寬起振頻率,可讓時(shí)鐘更容易起振。</p><p><b> 圖3.1 時(shí)鐘頻率</
39、b></p><p> 3.3 數(shù)字溫度計(jì)DS18B20</p><p> 數(shù)字溫度計(jì)只有三個(gè)引腳,1腳接GND,2腳與單片機(jī)通信口相連,3腳接VCC。單片機(jī)與數(shù)字溫度計(jì)DS18B20僅需一條線連接,如下圖所示。</p><p> 圖3.2 數(shù)字溫度計(jì)管腳圖</p><p><b> 字符液晶顯示器簡(jiǎn)介</b&g
40、t;</p><p> 字符液晶顯示器是通過(guò)自身對(duì)光的反應(yīng),改變其透明度或者由于外部電磁場(chǎng)的電磁效應(yīng),改變其顯示顏色,使得液晶顯示器上顯示出各種不同的字符。</p><p> 顯示部分用來(lái)顯示所測(cè)的實(shí)時(shí)環(huán)境溫度數(shù)據(jù),本次畢業(yè)設(shè)計(jì)電路顯示模塊用的是字符液晶LCD1602,它是一個(gè)16列×2行的字符型液晶顯示模塊,即該液晶屏可顯示2行,每行可顯示16個(gè)字符,每屏總共可顯示32個(gè)字
41、符。</p><p> 圖3.3 字符液晶顯示地址</p><p> 3.4.1液晶屏的結(jié)構(gòu)以及功能:</p><p> 液晶屏是一種有機(jī)化合物,它內(nèi)部有兩個(gè)核心芯片HD44780,它的操作時(shí)序簡(jiǎn)單易懂,但指令功能強(qiáng)大,它可以與單片機(jī)進(jìn)行通信,單片機(jī)可通過(guò)I/O口把各種要顯示的數(shù)據(jù)傳送到字符液晶顯示屏上進(jìn)行顯示,擁有背光功能的液晶顯示屏,在晚上可以發(fā)揮出像白天
42、一樣的顯示各種數(shù)據(jù)的功能,但不具有背光功能的字符液晶顯示屏只能在白天進(jìn)行數(shù)據(jù)顯示。液晶顯示模塊是一個(gè)慢顯示器件,在液晶顯示屏初始化完成后,在執(zhí)行每條指令之前,要確保模塊的忙標(biāo)志為低電平,即先判斷表示不忙,否則此指令失效,無(wú)法執(zhí)行相關(guān)的讀寫命令操作。</p><p> 液晶顯示屏引腳功能如下;</p><p> 圖3.4 1602引腳圖</p><p> 液晶顯
43、示屏引腳的功能講解:液晶器件VSS引腳,即數(shù)字溫度計(jì)的第一引腳一般接地,液晶器件VDD引腳,即數(shù)字溫度計(jì)的第二引腳一般外接電源,液晶器件VEE腳,此第三引腳是液晶顯示器的對(duì)比度調(diào)節(jié)端,液晶器件RS腳,此第四引腳又叫數(shù)據(jù)命令選擇端,液晶器件R/W腳,該第五引腳是讀寫信號(hào)選擇線,當(dāng)該引腳被寫入高電平1時(shí)程序?qū)⑦M(jìn)行讀操作,若該引腳被寫入低電平0時(shí)則程序?qū)⑦M(jìn)行寫操作,液晶器件第6腳是E(或EN)端,該引腳為字符液晶LCD1602的使能(enab
44、le)端,DB0~DB7為字符液晶LCD1602與單片機(jī)進(jìn)行傳輸數(shù)據(jù)的數(shù)據(jù)口,通過(guò)這八個(gè)口,溫度數(shù)據(jù)將被穩(wěn)定精確的顯示在字符液晶上。</p><p> 寄存器選擇控制如下圖所示;</p><p> 表3.1 各引腳使用說(shuō)明</p><p> 表3.2 操作時(shí)序說(shuō)明</p><p> 3.5字符液晶顯示部分與微處理機(jī)的接口</p&
45、gt;<p> 單片機(jī)的的P2口作為數(shù)據(jù)傳輸口,液晶顯示器LCD的E、R/W、RS端分別位定義為P3.2、P3.1、P3.0。通過(guò)軟硬件設(shè)計(jì),把所側(cè)到的實(shí)時(shí)環(huán)境溫度通過(guò)字符液晶顯示屏進(jìn)行實(shí)時(shí)溫度控制。</p><p><b> 如下圖所示。</b></p><p> 圖3.5 液晶與89C51的接口</p><p> 溫度
46、報(bào)警控制電路的工作過(guò)程為:?jiǎn)纹瑱C(jī)定時(shí)采集DS18B20溫度傳感器所測(cè)得到的被測(cè)對(duì)象的實(shí)時(shí)表面溫度,并將采集的溫度數(shù)據(jù)通過(guò)單片機(jī)I/O口通信顯示在字符液晶上,同時(shí)將采集到的實(shí)時(shí)溫度數(shù)據(jù)與單片機(jī)內(nèi)設(shè)定的溫度上下限進(jìn)行比較,如在正常的溫度范圍,則正常顯示綠燈,若高出或低于設(shè)定的值,則發(fā)出蜂鳴器警告。</p><p> 第四章 數(shù)字溫度計(jì)軟件</p><p> 4.1主程序模塊 </p
47、><p> 通過(guò)keil軟件編寫程序,軟件仿真通過(guò)后,使用protues硬件仿真軟件實(shí)現(xiàn)聯(lián)調(diào),測(cè)試各個(gè)功能模塊的作用是否能夠在硬件電路上一一實(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> 本次程序上限超溫報(bào)警溫度為30度,下限低溫報(bào)警溫度為0度。</p><p> 由下圖仿真一中數(shù)據(jù)可看出,當(dāng)實(shí)時(shí)溫度為零上31度時(shí),超出程序設(shè)定的上限報(bào)警溫度,則電路中紅燈亮,繼而蜂鳴器鳴叫報(bào)警。</p>
49、<p><b> 圖4.3 仿真圖一</b></p><p> 由下圖仿真二中數(shù)據(jù)可看出,當(dāng)實(shí)時(shí)溫度為零下負(fù)一度時(shí),低于程序設(shè)定的下限報(bào)警溫度,則電路中紅燈也亮,繼而蜂鳴器也實(shí)現(xiàn)鳴叫報(bào)警。</p><p><b> 圖4.4 仿真圖二</b></p><p> 如下圖仿真三所示溫度數(shù)據(jù)。此時(shí)實(shí)時(shí)溫度數(shù)據(jù)
50、為零上25度,該被測(cè)溫度值在程序所允許的溫度范圍內(nèi),所以綠燈亮,表明一切工作正常,溫度正常。</p><p><b> 圖4.5 仿真圖三</b></p><p><b> 4.5小結(jié)</b></p><p> 通過(guò)本章節(jié)的學(xué)習(xí),我們學(xué)習(xí)了如何從開始的硬件電路設(shè)計(jì),再到結(jié)合軟件的編寫,讓硬件電路通過(guò)軟件代碼實(shí)現(xiàn)真正的
51、功能應(yīng)用,這也讓我們學(xué)習(xí)了51單片機(jī)的編程方式,以及如何正確使用protues軟件實(shí)現(xiàn)硬件的仿真。</p><p><b> 總結(jié)</b></p><p> 通過(guò)本次畢業(yè)設(shè)計(jì)使我對(duì)電路系統(tǒng)中的一些基本原理有了簡(jiǎn)單的理解 ,從選題到硬件電路的完成,感覺(jué)自己的收獲很大。首先,我在確定選題后查找和閱讀了很多相關(guān)的理論知識(shí),尤其是對(duì)DS18B20這個(gè)器件做了很多的了解。其
52、次,也提高了我使用 proteus 軟件做軟件仿真的能力和技巧。</p><p> 本次畢業(yè)設(shè)計(jì)的硬件電路設(shè)計(jì)與實(shí)物制作讓我更是深深體會(huì)到這一點(diǎn),只有自己親自動(dòng)手操作,自己動(dòng)手制作的作品才是真正意義上屬于自己的成果,才能真正體會(huì)到理論聯(lián)系實(shí)踐的總要性,在結(jié)合keil編程軟件編寫程序過(guò)程中,進(jìn)一步加強(qiáng)了我對(duì)整體硬件電路的理解。最后,完成硬件作品也是很關(guān)鍵的步驟,再多的理論知識(shí)也只有通過(guò)其產(chǎn)生的實(shí)物應(yīng)用才能體現(xiàn)它的
53、價(jià)值。因而制作出完美的實(shí)物作品是必不可少的,經(jīng)過(guò)自己幾個(gè)月的努力,通過(guò)焊接、調(diào)試、檢修,我最終制作出了設(shè)計(jì)作品,驗(yàn)證了自己在本次設(shè)計(jì)中學(xué)習(xí)到的知識(shí)和設(shè)計(jì)的正確性。 </p><p> 參考文獻(xiàn)(References)</p><p> 《電工電子實(shí)踐指導(dǎo)》.王港元.江西科學(xué)技術(shù)出版社,2009.3.</p><p> 《電子元器件應(yīng)用手冊(cè)》.黃繼昌.人民郵電出
54、榜社,2004.7.</p><p> 《電路》第5版.邱關(guān)源.羅先覺(jué).高等教育出版社 ,2006. 5.</p><p> 《數(shù)字電子技術(shù)基礎(chǔ) 》.張申科.電子工業(yè)出版社,2005.5.</p><p> 《模電數(shù)電基礎(chǔ)實(shí)驗(yàn)及Multisim7仿真》.黃培根.浙江大學(xué)出版社,2007.3.</p><p> 《微型計(jì)算機(jī)系統(tǒng)原理及應(yīng)
55、用》.楊素行.清華大學(xué)出版社,2004. 2.</p><p> 《綜合電子設(shè)計(jì)與實(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è)計(jì)》.蔡忠法.浙江大學(xué)出版社,2003.</p><p><b> 致謝</b></p><p> 通過(guò)這幾個(gè)月的研究學(xué)習(xí)以及在導(dǎo)師的幫助下,我成功的完成了自己畢業(yè)設(shè)計(jì)實(shí)物的制作以及論文的編寫?;厥鬃约哼@四年大學(xué)生活,有笑有淚,有花有果,想感謝的人很多,多到自己都無(wú)從說(shuō)起。</p><p> 從去年的基
57、本理論知識(shí)整理,到最近幾個(gè)月的電路設(shè)計(jì),從剛開始的源程序編寫,接著仿真成功,再到最后的畫PCB板,焊板子,在我們電子系指導(dǎo)老師*老師的耐心指導(dǎo)下,我完成了本次畢業(yè)設(shè)計(jì)的全部工作。這次設(shè)計(jì)不僅涉及到對(duì)單片機(jī)系統(tǒng)基本原理的理解,也涉及到如何對(duì)電路中出現(xiàn)的問(wèn)題的分析和解決能力。</p><p> **老師多次詢問(wèn)畢業(yè)設(shè)計(jì)的進(jìn)程,并為我指點(diǎn)迷津,陳老師一絲不茍的作風(fēng),嚴(yán)謹(jǐn)求實(shí)的態(tài)度,不僅授我以文,幫助我開拓電路設(shè)計(jì)思路
58、,而且教我做人,給我以終生受益無(wú)窮之道。正是在*老師的指點(diǎn)下,我才能如此順利地完成本次畢業(yè)設(shè)計(jì)。</p><p> 所以,再一次表達(dá)我對(duì)學(xué)科部領(lǐng)導(dǎo)以及無(wú)論是在學(xué)習(xí)上還是在生活中幫助過(guò)我的老師最衷心的感謝,是你們?cè)谖仪斑M(jìn)的道路上給我以正確的人生引導(dǎo),并無(wú)私的教授予我專業(yè)知識(shí)以及各種為人處世之道。</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"; //利用一個(gè)溫度表解決溫度顯
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> //延時(shí)模塊</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開始時(shí)拉低</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í)函數(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); //稍做延時(shí)</p><p> DQ = 0; //單片機(jī)將DQ拉低</p><p> tmpDelay(
75、80); //精確延時(shí) 大于 480us</p><p> DQ = 1; //拉高總線</p><p> tmpDelay(14);</p><p> x=DQ; //稍做延時(shí)后 如果x=0則初始化成功 x=1則初始化失敗</p><p> tmpDelay(20);</p><p><
76、b> }</b></p><p> uchar ReadOneChar()//讀一個(gè)字節(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; // 給脈沖信號(hào)</p><p><b> dat>>=1;</b></p><p> DQ = 1; // 給脈沖信號(hào)</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)//寫一個(gè)字節(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); // 跳過(guò)讀序號(hào)列號(hào)的操作</p><p&
83、gt; WriteOneChar(0x44); // 啟動(dòng)溫度轉(zhuǎn)換</p><p> delay(750);</p><p> Init_DS18B20();</p><p> WriteOneChar(0xCC); //跳過(guò)讀序號(hào)列號(hào)的操作</p><p> WriteOneChar(0xBE); //讀取溫度寄存器</p&
84、gt;<p> a=ReadOneChar(); //連續(xù)讀兩個(gè)字節(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é)合成一個(gè)整型變量。</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ào)警模塊</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. 本站所有資源如無(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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于單片機(jī)數(shù)字溫度計(jì)畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的數(shù)字溫度計(jì)畢業(yè)設(shè)計(jì)
- 基于單片機(jī)數(shù)字溫度計(jì)畢業(yè)設(shè)計(jì)
- 基于單片機(jī)數(shù)字溫度計(jì)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)——基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)
- 基于單片機(jī)的數(shù)字溫度計(jì)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)--基于單片機(jī)數(shù)字溫度計(jì)
- 基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì) 畢業(yè)設(shè)計(jì)
- 單片機(jī)的數(shù)字溫度計(jì)畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的數(shù)字溫度計(jì)的設(shè)計(jì) 畢業(yè)設(shè)計(jì)
- 基于單片機(jī)控制的數(shù)字溫度計(jì)----畢業(yè)設(shè)計(jì)
- 基于5單片機(jī)的數(shù)字溫度計(jì)畢業(yè)設(shè)計(jì)
- 基于51單片機(jī)的數(shù)字溫度計(jì)-畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)(論文)-基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)
- 基于單片機(jī)的數(shù)字溫度計(jì)畢業(yè)設(shè)計(jì)論文
- 單片機(jī)畢業(yè)設(shè)計(jì)--單片機(jī)設(shè)計(jì)數(shù)字溫度計(jì)
- 畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)的數(shù)字語(yǔ)音溫度計(jì)
- 基于單片機(jī)的溫度計(jì)的設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)(論文)單片機(jī)的數(shù)字溫度計(jì)控制
評(píng)論
0/150
提交評(píng)論