版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、綜合課程設(shè)計(jì)論文 實(shí)訓(xùn)課題: 數(shù)字溫度測量系統(tǒng) 專業(yè)班級: 應(yīng)用電子技術(shù)(1)班 學(xué)生姓名: 陳叢 學(xué) 號: 2013010608 指導(dǎo)老師: 莫釗 摘要隨著社會的進(jìn)步和工業(yè)技術(shù)的發(fā)展,人們越來越重視溫度因素,許多產(chǎn)品對溫度范圍要求嚴(yán)格,而目前市場上普遍存在的溫度檢測儀器大都是單點(diǎn)測量,同時有溫度信息傳遞不及時、精度不夠的缺點(diǎn),不利于工業(yè)控制者根據(jù)溫度變化及時做出決定。在這樣的形式下,開發(fā)一種能夠同時測量多點(diǎn),并且實(shí)時性高、精度高,能夠綜合處理多點(diǎn)溫度信息的測量系統(tǒng)就很有必要。本課題以AT89C51單片機(jī)系統(tǒng)為核心,能對多點(diǎn)的溫度進(jìn)行實(shí)時巡檢。DS18B20是一種可組網(wǎng)的高精度數(shù)字式溫度傳感器
2、,由于其具有單總線的獨(dú)特優(yōu)點(diǎn),可以使用戶輕松地組建起傳感器網(wǎng)絡(luò),并可使多點(diǎn)溫度測量電路變得簡單、可靠。本文結(jié)合實(shí)際使用經(jīng)驗(yàn),介紹了DS18B20數(shù)字溫度傳感器在單片機(jī)下的硬件連接及軟件編程,并給出了軟件流程圖。關(guān)鍵詞:溫度測量;單總線;數(shù)字溫度傳感器;單片機(jī) 目錄一、 引言二、 數(shù)字溫度計(jì)的結(jié)構(gòu)及功能介紹1. 單片機(jī) STC80C52RC2. DS18B20數(shù)字溫度傳感器3. 顯示器的選擇三、 設(shè)計(jì)原理及原理圖四、 設(shè)計(jì)程序流程圖五、 總結(jié)六、 附錄1. 程序代碼2. 仿真一、引言本系統(tǒng)利用DS18B20進(jìn)行測溫,基于單片機(jī)AT89S52進(jìn)行溫度控制,具有硬件電路簡單,控溫精度高、功能強(qiáng),體積
3、小,簡單靈活等優(yōu)點(diǎn),可以應(yīng)用于控制溫度在-55到+125之間的各種場合,可以實(shí)現(xiàn)溫度的實(shí)時采集、顯示功能 。溫度是一種最基本的環(huán)境參數(shù)之一,日常生活和工農(nóng)業(yè)生產(chǎn)中經(jīng)常要檢測溫度。傳統(tǒng)的方式是采用熱電偶或熱電阻,但是由于模擬溫度傳感器輸出為模擬信號,必須經(jīng)過A/D轉(zhuǎn)換環(huán)節(jié)獲得數(shù)字信號后才能與單片機(jī)等微處理器接口,使得硬件電路結(jié)果復(fù)雜,制作成本較高。美國DALLAS公司生產(chǎn)的DS18B20為代表的新型單總線數(shù)字式溫度傳感器以其突出優(yōu)點(diǎn)廣泛使用于倉庫管理、工農(nóng)業(yè)生產(chǎn)制造、氣象觀測、科學(xué)研究以及日常生活中。本文提出用DALLAS公司生產(chǎn)的DS18B20數(shù)字溫度傳感器和89S52單片機(jī)構(gòu)成的多路測溫系統(tǒng)
4、,采用單總線的方式(一根數(shù)據(jù)線,在一個I/O口上),可以在單總線上掛接多個18B20,在單片機(jī)控制下巡回檢測多點(diǎn)溫度,并可以設(shè)置高、低溫度超限報(bào)警等功能。二、結(jié)構(gòu)及功能介紹1、單片機(jī) STC80C52RCa、該系統(tǒng)采用MCS-51系列單片機(jī)AT89C51作為控制核心,該系統(tǒng)可以完成運(yùn)算控制、信號識別以及顯示功能的實(shí)現(xiàn)。由于用了單片機(jī),使其技術(shù)比較成熟,應(yīng)用起來方便、簡單并且單片機(jī)周圍的輔助電路也比較少,便于控制和實(shí)現(xiàn)。整個系統(tǒng)具有極其靈活的可編程性,能方便地對系統(tǒng)進(jìn)行功能的擴(kuò)張和更改。MCS-51單片機(jī)特點(diǎn)如下:可靠性好單片機(jī)按照工業(yè)控制要求設(shè)計(jì),抵抗工業(yè)噪聲干擾優(yōu)于一般的CPU,程序指令和數(shù)
5、據(jù)都可以燒寫在ROM上,因此可靠性高。易擴(kuò)充單片機(jī)有一般電腦所必須的器件,如三態(tài)雙向總線,串并行的輸入及輸出引腳,可擴(kuò)充為各種規(guī)模的微電腦系統(tǒng)控制功能強(qiáng)單片機(jī)指令除了輸入輸出指令,邏輯判斷指令外還有更豐富的條件分支跳躍指令。b、單片機(jī)主機(jī)系統(tǒng)電路AT89C51單片機(jī)是屬于51系列單片機(jī)里的。它的內(nèi)部自帶2K字節(jié)可編程FLASH存儲器的低電壓、高性能COMS 8位微處理器。AT89C51單片機(jī)還與Intel MCS-51系列單片機(jī)的輸出管腳和指令相互兼容。由于AT89C51將多功能8位CPU和閃速存儲器結(jié)合在單個的芯片里,所以,AT89C51構(gòu)成的單片機(jī)系統(tǒng)是所有系統(tǒng)里結(jié)構(gòu)最簡便,價格最便宜,使
6、用效率最高的控制系統(tǒng),它還節(jié)省了外部的RAM與ROM和接口器件,削減了硬件方便的開銷。節(jié)省了制造成本,提高了系統(tǒng)的性價比。c主要芯片的介紹本課題采用單片機(jī)AT89C51控制的數(shù)字溫度測量與顯示系統(tǒng),其功能的實(shí)現(xiàn)主要通過軟件編程來完成,采用單片機(jī)AT89C51,它是低功耗、高性能的CMOS型8位單片機(jī)。片內(nèi)帶有4KB的Flash存儲器,且允許在系統(tǒng)內(nèi)改寫或用編程器編程。且AT89C51的使用壽命很長,數(shù)據(jù)保留時間也較長,可以達(dá)到十年的時間。就是因?yàn)檫@一些類的特性,與優(yōu)點(diǎn)。所以本次設(shè)計(jì)我才會選擇使用這一類的單片機(jī)來作為我實(shí)現(xiàn)此系統(tǒng)的工具。 · 單片機(jī)主機(jī)系統(tǒng)圖根據(jù)設(shè)計(jì)的要求,要利用溫度傳
7、感器實(shí)時溫度。當(dāng)溫度高于設(shè)定的溫度時(60),當(dāng)溫度高于設(shè)置報(bào)警的上限值時風(fēng)扇轉(zhuǎn)同時紅色led亮,當(dāng)?shù)陀跁r繼電器以留出接口。同時要求能設(shè)定溫度。畢業(yè)設(shè)計(jì)的主要任務(wù)是能對溫度進(jìn)行自動的檢測和控制。設(shè)計(jì)中采用單片機(jī)來控制溫度,因此要有溫度的顯示電路,溫控電路,報(bào)警電路等幾個部分。要實(shí)現(xiàn)系統(tǒng)的設(shè)計(jì)要用到的知識點(diǎn)有單片機(jī)的原理及其應(yīng)用,溫度傳感器的原理和應(yīng)用,及顯示電路的設(shè)計(jì)等。· 2、 DS18B20數(shù)字溫度傳感器2.1 DS18B20 簡介新的“一線器件”DS18B20體積更小,適用電壓更寬、更經(jīng)濟(jì),做為一線總線數(shù)字化溫度床感器,支持“一線總線”接口,測量溫度范圍為-55+125,在-1
8、0+85范圍內(nèi),精度為±0.5。獨(dú)特的電源和信號復(fù)合在一起,僅適用一條口線,每個芯片唯一編碼,支持聯(lián)網(wǎng)尋址,簡單的網(wǎng)絡(luò)化的溫度感知,零功能等待。2.2 DS18B20特性DS18B20可以由程序設(shè)定912位的分辨率,精度為±0.5。獨(dú)特的單線接口僅需一個端口引腳進(jìn)行通訊簡單的多點(diǎn)分布應(yīng)用無需外部器件可通過數(shù)據(jù)線供電零待機(jī)功耗測溫范圍-55+125,以0.5遞增華氏器件-67+257,以0.9遞增溫度以9位數(shù)字量讀出溫度數(shù)字量轉(zhuǎn)換時間200ms(典型值)用戶可定義的非易失性溫度報(bào)警設(shè)置報(bào)警搜索命令識別并標(biāo)志超過程序限定溫度(溫度報(bào)警條件)的器件應(yīng)用包括溫度控制、工業(yè)系統(tǒng)、消費(fèi)
9、品、溫度計(jì)或任何感測系統(tǒng)。2.3 說明:DS18B20有三個主要數(shù)字部件:1)64位激光ROM2)溫度傳感器3)非易失性溫度報(bào)警觸發(fā)器TH和TL4)器件用如下方式從單線通訊線上汲取能量,在信號線處于高電平期間把能量存儲在內(nèi)部電容里,在信號線處于低電平期間消耗電容上的電能工作,知道高電平到來再給寄生電源(電容)充電。DS18B20也可用外部5V電源供電。DS18B20依靠一個單線端口通訊。在單線端口條件下,必須先建立ROM操作協(xié)議,才能進(jìn)行存儲器和控制操作。因此,控制器必須首先提供下面5個ROM操作命令之一:1)讀ROM,2)匹配ROM,3)搜索ROM,4)跳過ROM,5)報(bào)警搜索。這些命令對每
10、個器件的激光ROM部分進(jìn)行操作,在單總線上掛有多個器件時,可以區(qū)分出單個器件,同時可以向總線控制器指明有多少器件或是什么型號的器件。成功執(zhí)行完一條ROM操作序列后,即可進(jìn)行存儲器可控制操作,控制器可以提供6條存儲器和控制操作指令中的任一條。一條控制操作命令指示DS18B20完成一次溫度測量,測量結(jié)果放在內(nèi)部暫存器中暫存,用一條讀暫存器內(nèi)容的存儲器操作命令可以把暫存器中數(shù)據(jù)讀出。2.4 DS18B20測溫原理:用一個高溫度系數(shù)的振蕩器確定一個門周期,內(nèi)部計(jì)數(shù)器在這個門周期內(nèi)對一個低溫度系數(shù)的振蕩器的脈沖進(jìn)行計(jì)數(shù)來的到溫度值。計(jì)數(shù)器被預(yù)置到對應(yīng)于-55的一個值。如果計(jì)數(shù)器在門周期結(jié)束前到達(dá)0,則溫
11、度寄存器(同樣被預(yù)置到-55)的值增加,表明所測溫度大于-55。同時,計(jì)數(shù)器被復(fù)位到一個值,這個值由斜坡式累加器電路確定,斜坡式累加器電路用來補(bǔ)償感溫振蕩器的拋物線特性。然后計(jì)數(shù)器又開始計(jì)數(shù)知道0,如果門周期仍未結(jié)束,將重復(fù)這一過程。斜坡式累加器用來補(bǔ)償感溫振蕩器的非線性,以期測溫時獲得比較高的分辨力,這是通過改變計(jì)數(shù)器對溫度每增加一度所需計(jì)數(shù)的值來實(shí)現(xiàn)的。因此,要想獲得所需的分辨力,必須同時知道在給定溫度下計(jì)數(shù)器的值和每一度的計(jì)數(shù)值。DS18B20內(nèi)部對此計(jì)算的結(jié)果可提供0.5的分辨力。溫度以16bit帶符號位擴(kuò)展的二進(jìn)制補(bǔ)碼形式讀出,表一給出了溫度值和輸出數(shù)據(jù)的關(guān)系。數(shù)據(jù)通過單線接口以串行
12、方式傳輸。DS18B20測溫范圍-55+125,以0.5遞增。如用于華氏溫度,必須要用一個轉(zhuǎn)換因子查找表。表一注意DS18B20內(nèi)溫度表示值為1/2LSB,如下所示9bit格式:表二最高有效(符號)位被復(fù)制充滿存儲器中兩字節(jié)溫度存儲器的高M(jìn)SB位,由這種“符號位擴(kuò)展”產(chǎn)生出了表一的16bit溫度讀數(shù)。2.5 DS18B20測溫原理圖:圖二 DS18B20 測溫原理框圖可用下述方法獲得更高的分辨力。首先,讀取溫度值,將0.5位(LSB)從讀取的值中截去,這個值叫做TEMP_READ。然后讀取計(jì)數(shù)器中剩余的值,這個值是門周期結(jié)束后保留下來的值(COUNT_REMAIN)。最后,我們用到在這個溫度下
13、每度的計(jì)數(shù)值(COUNT_PER_C)。用戶可以用下面的公式計(jì)算實(shí)際溫度值:2.6 64位激光刻ROM每只18B20都有一個唯一的長達(dá)64位的編碼。最前面8位是單線系列編碼。后面48為是一個唯一的序列號。最后8為是以上56位的CRC碼。表三2.7 CRC發(fā)生器DS18B20中有8位CRC存儲在64位ROM的最高有效字節(jié)中??偩€控制器可以用64位ROM中的前56位計(jì)算出一個CRC值,再用這個和存儲在DS18B20中的值進(jìn)行比較,以確定ROM數(shù)據(jù)是否被總線控制器接受無誤。CRC計(jì)算等式如下:8+5+4+。單總線CRC可以有一個由移位寄存器和XOR門構(gòu)成的多項(xiàng)式發(fā)生器來產(chǎn)生,如下圖所示:圖三 單總線
14、CRC的結(jié)構(gòu)原理圖2.8 單總線系統(tǒng)單總線系統(tǒng)包括一個總線控制器和一個或多個從機(jī)。DS18B20充當(dāng)從機(jī),當(dāng)只有一只從機(jī)掛接在總線上時,系統(tǒng)被稱為“單點(diǎn)”系統(tǒng);如果由多只從機(jī)掛接在總線上,系統(tǒng)被稱為“多點(diǎn)”。所有的數(shù)據(jù)和指令的傳遞都是從最低有效位開始通過單總線進(jìn)行傳送的。2.9 DS18B20指令控制執(zhí)行序列通過單線總線端口訪問DS18B20的協(xié)議如下:步驟一:初始化;步驟二:ROM操作指令;步驟三:DS18B20功能指令。每一次DS18B20的操作都必須滿足以上步驟,若是缺少步驟或是順序混亂,器件將不會返回值。例如這樣的順序:發(fā)起ROM搜索指令F0H和報(bào)警搜索指令ECH之后,總線控制器必須返
15、回步驟一。2.10 ROM時序指令控制通過單總線的所有執(zhí)行操作處理都從一個初始化序列開始。初始化序列包括一個由總線控制器發(fā)出的復(fù)位脈沖和其后由從機(jī)發(fā)出的存在脈沖。存在脈沖讓總線控制器知道DS18B20在總線上且已準(zhǔn)備好操作。一旦總線控制器探測到一個存在脈沖,它就發(fā)出一條ROM指令。如果總線上掛有多只DS18B20,這些指令將基于器件獨(dú)有的64位ROM片序列碼使得總線控制器選出特定要進(jìn)行操作的器件。這些指令同樣也可以使總線控制器識別有多少只,什么型號的器件掛在總線上,同樣,它們也可以識別哪些器件已經(jīng)符合報(bào)警條件。Search ROMF0H(搜索ROM指令)當(dāng)系統(tǒng)上電初始化的時候,總線控制器必須通
16、過識別總線上所有ROM片序列碼去得到從機(jī)的數(shù)目和型號。總線控制器通過搜索ROM指令多次循環(huán)搜索ROM編碼,以確認(rèn)所有從機(jī)器件。如果總線上只有一只從機(jī),那么可以用較為簡單的讀取ROM 代替搜索ROM指令。在每次搜索ROM指令之后,總線控制器必須返回步驟一。READ ROM33H(讀取ROM指令)只有在總線上存在單只DS18B20的時候才能使用這條命令。該命令允許總線控制器在不使用搜索ROM的情況下讀取從機(jī)的64位片序列碼。如果總線上有不止一只從機(jī),當(dāng)所有從機(jī)試圖同時傳送信號時就會發(fā)生數(shù)據(jù)沖突。MATHCH ROM55H(匹配ROM指令)匹配ROM指令,后跟64位ROM編碼序列,讓總線控制器在多點(diǎn)
17、總線上定位一只特定的DS18B20。只有和64為ROM片序列碼完全匹配的DS18B20才能響應(yīng)隨后的存儲操作指令;所有和64位ROM片序列碼不匹配的從機(jī)都將等待復(fù)位脈沖。SKIP ROMCCH(跳過ROM指令)這條指令允許總線控制器不用提供64位ROM編碼就使用功能指令。例如,總線控制器可以先發(fā)出一條跳過ROM指令,然后發(fā)出溫度轉(zhuǎn)換指令44H,從而完成溫度轉(zhuǎn)換操作。注意,當(dāng)只有一只從機(jī)在總線上時,無論如何,跳過ROM指令之后只能跟著發(fā)出一條讀取暫存器指令BEH。在單點(diǎn)總線情況下使用該命令,器件無需發(fā)回64位ROM編碼,從而節(jié)省了時間。如果總線上有不止一只從機(jī),若發(fā)出跳過ROM指令,由于多只從機(jī)
18、同時傳送信號,總線上就會發(fā)生數(shù)據(jù)沖突。2.11DS18B20功能指令控制在總線空盒子錢發(fā)給欲連接的DS18B20一條ROM命令后,跟著可以發(fā)送一條DS18B20功能指令。這些命令允許總線控制器讀寫DS18B20的暫存器,發(fā)起溫度轉(zhuǎn)換和識別電源模式。DS18B20的功能指令如下所示:CONVERT T 44H(溫度轉(zhuǎn)換指令)這條命令用以啟動一次溫度轉(zhuǎn)換。溫度轉(zhuǎn)換指令被執(zhí)行,產(chǎn)生的溫度轉(zhuǎn)換結(jié)果數(shù)據(jù)以2個字節(jié)的形式被存儲在高速暫存器中,而后DS18B20保持等待狀態(tài)。如果寄生電源模式下發(fā)出該命令后,在溫度轉(zhuǎn)換期間,必須在10US(最多)內(nèi)給單總線上一個強(qiáng)上拉。如果DS18B20以外部電源供電,總線控
19、制器在發(fā)出該命令后跟著發(fā)出讀時序,DS18B20如處于轉(zhuǎn)換中,將在總線上返回0,若溫度轉(zhuǎn)換完成,則返回1。寄生電源模式下,總線被強(qiáng)上拉拉高前這樣的通訊技術(shù)不會被使用。WRITE SCRATCHPAD 4EH(寫暫存器指令)這條命令向DS18B20的暫存器寫入數(shù)據(jù),開始位置在TH寄存器(暫存器的第二個字節(jié)),接下來寫入TL寄存器(暫存器的第三個字節(jié)),最后寫入配置寄存器(暫存器的第四個字節(jié))。數(shù)據(jù)以最低有效位開始傳送。上述三個字節(jié)的寫入必須發(fā)生在總線控制器發(fā)出復(fù)位命令前,否則會終止寫入。READ SCRATCHPAD BEH (讀暫存器指令)這條命令讀取暫存器的內(nèi)容。讀取將從字節(jié)0開始,一直進(jìn)行
20、下去,直到第九個字節(jié)(字節(jié)8,CRC)讀完,如果不想讀完所有字節(jié),控制器可以在任何時間發(fā)出復(fù)位命令來中止讀取。備注:對于寄生電源模式下的DS18B20,在溫度轉(zhuǎn)換和拷貝數(shù)據(jù)到EEPROM其間,必須給但總線一個強(qiáng)上拉,總線上載這段時間內(nèi)不能有其他活動。總線控制器在任何時刻都可以通過發(fā)出復(fù)位信號中止數(shù)據(jù)傳輸。TH、TL和配置寄存器這三個字節(jié)的寫入必須在復(fù)位信號發(fā)起之前。2.12 18B20時序詳解初始化時序圖四 初始化時序示意圖讀/寫時序DS18B20的數(shù)據(jù)讀寫是通過時序處理來確認(rèn)信息交換的。寫時序:有兩種寫時序:寫1時序和寫0時序??偩€控制器通過寫1時序?qū)戇壿?到DS18B20,寫0時序?qū)戇壿?
21、到DS18B20。所有寫時序必須最少持續(xù)60us,包括兩個寫中期之間至少1us的回復(fù)時間。當(dāng)總線控制器把數(shù)據(jù)線從邏輯高電平拉到低電平的時候,寫時序開始。(見圖五)圖五 讀/寫時序圖總線控制器要產(chǎn)生一個寫時序,必須把數(shù)據(jù)線拉到低電平后釋放,在寫時序開始后的15us釋放中線。當(dāng)總線被釋放的時候,5K的上拉電阻將拉高總線??偪刂破饕梢粋€寫0時序,必須把數(shù)據(jù)線拉到低電平并持續(xù)保持(至少60us)??偩€控制器初始化寫時序后,DS18B20在一個15us到60us的窗口內(nèi)對I/O線采樣。如果線上是高電平,就是寫1。如果線上是低電平,就是寫0。讀時序總線控制器發(fā)起讀時序時,DS18B20僅被用來傳輸數(shù)據(jù)
22、給控制器。因此,總線控制器在發(fā)出讀暫存器指令BEH后必須立刻開始讀時序,DS18B20可以提供請求信息。除此之外,總線控制器在發(fā)出發(fā)送溫度轉(zhuǎn)換指令44H或召回EEPROM指令B8H之后讀時序。所有讀時序必須最少60us,包括兩個度周期間至少1us的恢復(fù)時間。當(dāng)總線控制器把數(shù)據(jù)線從高電平拉到低電平時,讀時序開始,數(shù)據(jù)線必須至少保持1us,然后總線被釋放。在總線控制器發(fā)出讀時序后,DS18B20通過拉高或拉低總線來傳輸1或0。當(dāng)傳輸邏輯0結(jié)束后,總線將被釋放,通過上拉電阻回到上升沿狀態(tài)。從DS18B20輸出的數(shù)據(jù)在讀時序的下降沿出現(xiàn)后15us內(nèi)有效。因此,總線控制器在讀時序開始后必須停止把I/O腳
23、驅(qū)動為低電平15us,以讀取I/O腳狀態(tài)。極限使用條件各引腳對地電壓:-0.5V到+0.6V工作溫度: -55到+125存儲溫度: -55到+125焊接溫度: 260 10 秒直流電特性表四備注:所有的電壓參考點(diǎn)都是接地點(diǎn)。上拉電壓:假設(shè)上拉器件是理想的,因此上拉的高電平應(yīng)該與VPU相等。為了達(dá)到DS18B20的VIH規(guī)格,實(shí)際晶體管上拉供電必須包括電壓跌落極限;因此,VPU_ACTUAL=VPU_IDEAL+VTRANSISTOR.邏輯0電壓在吸收電流為1mA時得到。在寄生電源模式低壓狀態(tài)選,為保證出線一個脈沖,VLMAX在VCC低至0.5V時得到。邏輯1電壓在源電流為1mA時得到待機(jī)電流最
24、大定義為到70,125時典型待機(jī)電流為3uA。為了將IDDS減到最少,DQ的范圍如下:GNDDQGND+0.3V or VDD-0.3VDQVDD.動態(tài)電流涉及溫度轉(zhuǎn)換和寫EEPROM存儲器。DQ數(shù)據(jù)線為高狀態(tài)。 誤差數(shù)據(jù)在125,VDD=5.5V條件下測試1000小時得到。 3、顯示器的選擇 (一) LCD1602顯示器工業(yè)字符型液晶,能夠同時顯示16x02即32個字符。雖然LCD顯示器的價格比數(shù)碼管要貴。但是它有一個非常本質(zhì)的優(yōu)點(diǎn)就是它的顯示效果好,所以采用LCD 作為顯示器。(二)LCD引腳圖1602有16個引腳:引腳功能或作用VSS接電源地VCC接5V電源正極V0液晶顯示器對比度調(diào)整端
25、RS具有寄存器選擇功能。高電平1是數(shù)據(jù)寄存器。低電平0屬于指令寄存器RW屬于讀寫信號線,具有讀寫功能。高電平1讀操作,低電平0寫操作E端為使能端,高電平1時讀取信息,負(fù)跳變時執(zhí)行指令D0-D7八位的雙向數(shù)據(jù)端其他15腳屬于背光正極,16腳屬于背光負(fù)極1602顯示質(zhì)量高,功耗小。三、 設(shè)計(jì)硬件原理及原理圖圖十 設(shè)計(jì)硬件原理圖本系統(tǒng)中通過溫度傳感器DS18B20的數(shù)據(jù)線DQ與主控芯片51單片機(jī)的P3.3相連接,DS18B20將采集到的數(shù)據(jù)送給單片機(jī),經(jīng)過單片機(jī)出來后,顯示在8位數(shù)據(jù)線與單片機(jī)P0口的液晶LCD上。蜂鳴器經(jīng)過三極管的驅(qū)動后接到單片機(jī)的P3.7,來實(shí)現(xiàn)當(dāng)實(shí)時溫度大于下限或高于上限的報(bào)警
26、。4個按鍵K1K4接到單片機(jī)的P1.0P1.3,來實(shí)現(xiàn)對上限值和下限值的查看與設(shè)定。液晶LCD的RS、RW、E分別接到單片機(jī)的P2.0P2.2來實(shí)現(xiàn)單片機(jī)控制液晶的讀寫命令和數(shù)據(jù)的控制。四、設(shè)計(jì)程序流程圖LCD顯示子程序開始先讓LCD初始化,接著光標(biāo)定位,顯示字符,最后放回。LCD流程圖LCD 初始化光標(biāo)定位顯示字符 開始結(jié)束主程序首先設(shè)置堆棧為5FH,設(shè)置定時器工作方式T1為方式2。接著開始啟動定時器,調(diào)用LCD初始化子程序,調(diào)用DS18B20復(fù)位子程序。接著調(diào)用上下限寫入暫存器子程序,把溫度報(bào)警值拷貝回暫存器,調(diào)用讀取溫度子程序,調(diào)用處理顯示子程序,調(diào)用實(shí)際溫度值與上下限溫度值比較子程序,
27、調(diào)用按鍵掃描子程序后返回到調(diào)用讀取溫度子程序。開始設(shè)置堆棧5FH設(shè)置定時器工作方式T1為2給定時器設(shè)初值 啟動定時器調(diào)用LCD初始化程序調(diào)用DS18B20復(fù)位程序調(diào)用顯示SUCCESS信息程序調(diào)用上下限寫入暫存器子程序調(diào)用讀取溫度子程序調(diào)用顯示數(shù)據(jù)子程序調(diào)用實(shí)際溫度與上下限溫度比較子程序調(diào)用按鍵掃描子程序主程序框圖按鍵掃描子程序首先判斷按鍵K1是否按下,如果按下就調(diào)用蜂鳴子程序,接著判斷K1是否放開,直到K1放開,調(diào)用顯示數(shù)據(jù)子程序,然后去判斷K3是否按下,直到K3按下,調(diào)用蜂鳴子程序,最后放回;如果K1沒有按下去判斷K2是否按下,如果沒按下就跳到返回,如果有按下就調(diào)用鳴響子程序,然后去判斷K
28、3是否放開,若放開接著調(diào)用顯示字符子程序,調(diào)用設(shè)定報(bào)警TH、TL子程序,調(diào)用報(bào)警上下限寫入暫存器子程序,調(diào)用報(bào)警值拷貝EEROM子程序。 按鍵掃描子程序框圖開始判斷按鍵K1是否按下調(diào)用報(bào)警子程序判斷按鍵K1是否放開調(diào)用顯示數(shù)據(jù)程序判斷按鍵K3是否按下調(diào)用報(bào)警子程序返回判斷按鍵K2是否按下調(diào)用報(bào)警子程序判斷K3是否放下調(diào)用顯示數(shù)據(jù)子程序調(diào)用設(shè)定報(bào)警TH TL子程序調(diào)用報(bào)警上下限寫入暫存器子程序YESNOYESNOYESNO五、總結(jié)該系統(tǒng)利用DS18B20進(jìn)行測溫,基于單片機(jī)AT89S52進(jìn)行溫度控制,具有硬件電路簡單,控溫精度高、功能強(qiáng)、體積小,簡單靈活等優(yōu)點(diǎn),可以應(yīng)用于控制溫度在-55到+12
29、5之間的各種場合,可以實(shí)現(xiàn)溫度的實(shí)時采集、顯示功能與控制功能,是一種比較理想的只能化控制系統(tǒng)。由此構(gòu)成的單片機(jī)控制的但總線溫度多路采集系統(tǒng)比傳統(tǒng)的測溫系統(tǒng)可靠性高,易于構(gòu)成網(wǎng)絡(luò)控制,使用與各種溫度檢測與控制系統(tǒng)。該單總線技術(shù)可以為其他過程參數(shù)測控系統(tǒng)提供技術(shù)支持,具有實(shí)用價值。AT89C51的時鐘為12M,I/O口可達(dá)32個,較高的時鐘頻率和豐富的I/O,都為實(shí)現(xiàn)電路功能提供了非常有利的條件。同時也AT89S51內(nèi)含4KB FLASH ROM,開發(fā)環(huán)境友好,易用,方便,加上Proteus仿真大大加快本系統(tǒng)設(shè)計(jì)開發(fā)。在此次設(shè)計(jì)中學(xué)會了對Proteus的基本使用,對里面一些基本元件的英文,如電阻R
30、ES、電容CAP、晶振CRYSTAL等,學(xué)會了連線和運(yùn)行。在設(shè)計(jì)過程中也遇到一些問題,由于LCD是現(xiàn)實(shí)的字符型數(shù)據(jù),數(shù)字不能直接送去顯示,所有對于數(shù)字的顯示首先要轉(zhuǎn)換為字符格式,方法為:數(shù)字+0;對于溫度傳感器的小數(shù)處理也遇到一些問題,兩個選的是12位,精度為0.0625,DS18B20的溫度寄存器里低八位的低四位為小數(shù)部分,小數(shù)的值為0.0625*低八位的低四位,但是由于單片機(jī)的數(shù)據(jù)處理能力較差,不能處理小數(shù)的乘法運(yùn)算,用上方法就顯示錯誤,后來想到可以把小數(shù)先變成整數(shù)處理,令低八位的低四位為t,小數(shù)后的第一位=625*t/1000,然后將這個數(shù)字在小數(shù)點(diǎn)后顯示即可。其實(shí)該本設(shè)計(jì)還有很多的不足
31、,本實(shí)驗(yàn)是用單片機(jī)的多個I/O口來驅(qū)動多路,DS18B20是一總線結(jié)構(gòu),每一個DS18B20 在其ROM 中都存有一個其唯一的48位序列號,在出廠前已寫入片內(nèi)RMO中,主機(jī)在進(jìn)行操作程序前必須逐一接入18B20 用讀ROM(33H)命令將該18B20 的序列號讀出并登錄.當(dāng)主機(jī)需要對眾多在線的DS18B20 的某一個進(jìn)行操作,首先要發(fā)出匹配ROM 命令(55H),緊接著主機(jī)提供64位序列(包括該DS8B20的48位序列號),之后操作就是針對該DS18B20的.而所謂跳過ROM 命令.即為:之后的操作是對所有DS18B20 的,所以可以在一根總線上掛多個DS18B20。 六、 附錄1、程序代碼#
32、include<reg52.h>#include<intrins.h>#define KEY P1#define uchar unsigned char#define uint unsigned intsbit lcden=P22;/1602使能sbit lcdrd=P20;/數(shù)據(jù)、命令選擇端sbit lcdrw=P21;/讀,寫選擇端sbit dq=P33;/18B20數(shù)據(jù)線sbit key1 = P10;sbit key2 = P11;sbit key3 = P12;sbit key4 = P13;sbit beeee = P37;uint set_t = 23;u
33、char code str1="temperature:"uchar code str2=" "uchar data disdata5;uint tvalue;uchar tflag;void delayms(uint ms)/延時毫秒 uint i,j; for(i=ms;i>0;i-) for(j=100;j>0;j-);void key_cut(void)unsigned int ii;if (KEY != 0xff)delayms(10);if(key1 = 0) set_t +;else if(key2 = 0) set_t -;e
34、lse if(key3 = 0)else if(key4 = 0)while(KEY != 0xff);void write_com(uchar com)/向1602中寫入命令碼 lcden=0; lcdrd=0; lcdrw=0; P0=com; delayms(1); lcden=1; delayms(1); lcden=0; void write_date(uchar date)/向1602中寫入數(shù)據(jù) lcden=0; lcdrd=1; lcdrw=0; P0=date; delayms(1); lcden=1; delayms(1); lcden=0; void display(uch
35、ar *p)/1602顯示 while(*p!='0') write_date(*p); p+; delayms(1); void lcd_init()/1602初始化 write_com(0x38); delayms(5); write_com(0x01); delayms(5); write_com(0x0c); delayms(5); write_com(0x06); delayms(5); void lcd_display()/1602顯示初始化lcd_init(); write_com(0x80); display(str1); write_com(0xc0); di
36、splay(str2);void delayus(uint i)/延時微妙while(i-);void ds_init()/18B20初始化dq=1; delayus(4); dq=0; delayus(480); dq=1; delayus(60); if(dq=0) delayus(240);void ds_write(uchar date1)/向18B20中寫入數(shù)據(jù) uchar i; for(i=0;i<8;i+) dq=0; if(date1&0x01)=1) dq=1; else dq=0; delayus(21); dq=1; date1>>=1; uchar ds_read()/由18B20讀取數(shù)據(jù) uchar i,temp; for(i=0;i<8;i+) dq=0; dq=1; temp>>=1; if(dq=1) temp|=0x80; delayus(30); return(temp); dq=1;uint ds_temp()/從18B20中讀取溫度值
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年公務(wù)員個人年終總結(jié)
- 2014年高考語文試卷(福建)(空白卷)
- 稅務(wù)稽查事項(xiàng)總結(jié)
- 《濕地生態(tài)工程》課件
- 語義理解與知識圖譜構(gòu)建-洞察分析
- 鐵路噪音隔離帶設(shè)計(jì)研究-洞察分析
- 外包服務(wù)質(zhì)量保障-洞察分析
- 網(wǎng)絡(luò)連通性優(yōu)化分析-洞察分析
- 虛擬現(xiàn)實(shí)技術(shù)在電影制作中的影響-洞察分析
- 虛擬現(xiàn)實(shí)游戲體驗(yàn)優(yōu)化-洞察分析
- 預(yù)繳物業(yè)費(fèi)感恩回饋活動方案
- 網(wǎng)球簡介介紹
- 2024年激光切割機(jī)市場需求分析報(bào)告
- 加油站員工績效考核(標(biāo)準(zhǔn)版)
- 廣東省中山市2022-2023學(xué)年高一上學(xué)期期末考試物理試題
- 是誰殺死了周日
- 有關(guān)基建的工作總結(jié)
- 無人機(jī)技術(shù)在電信領(lǐng)域的應(yīng)用
- 2023-2024學(xué)年四川省南充市七年級(上)期末數(shù)學(xué)試卷(含解析)
- 氮化硅的制備性質(zhì)及應(yīng)用課件
- 物業(yè)多種經(jīng)營問題分析報(bào)告
評論
0/150
提交評論