版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、基于DS18B20的單總線多點測溫系統(tǒng)、摘要:本文主要介紹了一個基于DS18B20單片機的測溫系統(tǒng),詳細(xì)描述了傳感器在單片機下的硬件連接,軟件編程以及各模塊系統(tǒng)流程進行了詳盡分析,特別是數(shù)字溫度傳感DS18B20的數(shù)據(jù)采集過程。對各部分的電路也一一進行了介紹,該系統(tǒng)可以方便的實現(xiàn)實現(xiàn)溫度采集和顯示,它使用起來相當(dāng)方便,具有精度高、量程寬、靈敏度高、體積小、功耗低等優(yōu)點,適合于我們?nèi)粘I詈凸ぁ⑥r(nóng)業(yè)生產(chǎn)中的溫度測量,也可以當(dāng)作溫度處理模塊嵌入其它系統(tǒng)中,作為其他主系統(tǒng)的輔助擴展。DS18B20與AT89C51結(jié)合實現(xiàn)最簡溫度檢測系統(tǒng),該系統(tǒng)結(jié)構(gòu)簡單,抗干擾能力強,適合于惡劣環(huán)境下進行現(xiàn)場溫度測量
2、,有廣泛的應(yīng)用前景。隨著社會的進步和工業(yè)技術(shù)的發(fā)展,人們越來越重視溫度因素,許多產(chǎn)品對溫度范圍要求嚴(yán)格,而目前市場上普遍存在的溫度檢測儀器大都是單點測量,同時有溫度傳遞不及時、精度不夠的缺點,不利于工業(yè)控制者根據(jù)溫度變化及時作出決定。在這樣的形式下,開發(fā)一種能夠同時測量多點,并且實時性高、精度高,能夠綜合處理多點溫度信息的測量系統(tǒng)就很有必要關(guān)鍵詞:DS18B20,AT89c51,多點測溫一、 任務(wù)分工:表11 任務(wù)分工表二、 功能描述:1. 使用前程序讀取序列號,一次性寫入代碼中。此系統(tǒng)寫入了三個傳感器的序列號。2. 上電,顯示“welcome”開機畫面。3. 按鍵1功能選擇鍵,可以選擇顯示相
3、應(yīng)的節(jié)點,顯示所有節(jié)點溫度,顯示平均溫度。4. 按鍵2確認(rèn)鍵,按鍵1選擇相應(yīng)的界面后,按確認(rèn)鍵,同時對傳感器進行數(shù)據(jù)采集,并顯示溫度。三、 方案選擇:一) 總線方案:方案一:單端口單總線的多點測溫典型應(yīng)用如圖所示,所有DS18B20并聯(lián)后其數(shù)據(jù)線連接到處理器的一個端口線上,顯著特點是只占用單片機的一個端口。每個DS18B20內(nèi)部均有一個唯一的64位序列號,在工作之前先將主系統(tǒng)與DS18B20逐個連接,分別讀出序列號并存儲在單片機中,根據(jù)序列號就可以對同一總線上多個DS18B20進行識別控制,分別讀取其溫度。圖31 DS18B20單總線連接圖其主要設(shè)計思想是:當(dāng)單片機需要對眾多DS18B20中某
4、一個進行操作,首先發(fā)出匹配命令,接著單片機把存儲的64位序列號發(fā)送到總線,只有此序列號的DS18B20才接收相應(yīng)的命令,之后的操作就是針對該DS18B20的。設(shè)計優(yōu)缺點:這種測溫連接方法是電路連接簡單,硬件開銷小。缺點是該方案是由多個DS18B20并聯(lián)連接在一起的,他們之間會有一定的相互影響。最重要的是,在這種方案中,多個器件串接在總線上,對所有器件的查詢操作,需要一個一個分別識別,完成一次查詢需要花費大量時間,降低了系統(tǒng)效率,對一些實時性要求較高的設(shè)計不大適用。方案二:多端口并行法各個DS18B20數(shù)據(jù)線分別連接到不同的端口,工作時,單片機同時對各個DS18B20進行統(tǒng)一的并行操作,對所有D
5、S18B20而言,其命令的接收與數(shù)據(jù)的傳送是同步進行的,所花費時間等同于操作單個DS18B20所用時間。圖32 DS18B20多端口連接圖這種方案最大好處是節(jié)省時間,能滿足對實時性要求較高的溫度測量系統(tǒng)設(shè)計需求,同時由于這種方法不涉及序列號問題節(jié)省了讀取與匹配的操作過程。而其缺點也顯而易見,占用的端口數(shù)較多,每個測試點需要一個連接線,硬件資源開銷大方案二:I²C總線兩線式串行總線,用于連接微控制器及其外圍設(shè)備。是微電子通信控制領(lǐng)域廣泛采用的一種總線標(biāo)準(zhǔn)。它是同步通信的一種特殊形式,具有接口線少,控制方式簡單,器件封裝形式小,通信速率較高等優(yōu)點。通過串行數(shù)據(jù)(SDA)線和串行時鐘 (S
6、CL)線在連接到總線的器件間傳遞信息。每個器件都有一個唯一的地址識別(無論是微控制器MCU、LCD 驅(qū)動器、存儲器或鍵盤接口),而且都可以作為一個發(fā)送器或接收器(由器件的功能決定)。而DS18B20只有一根數(shù)據(jù)線,I²C總線需要一根數(shù)據(jù)線與一根地址線,無法實現(xiàn)。綜上所述:為了更好的節(jié)省硬件資源,達到多點測控,我們選擇方案二。二) 液晶顯示方案:方案一:LCD1602圖33 LCD引腳圖1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊。它由若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符,每位之間有一個點距的間隔,每行
7、之間也有間隔,起到了字符間距和行間距的作用,正因為如此所以它不能很好地顯示圖形。方案二:LCD12864帶中文字庫的128X64是一種具有4位/8位并行、2線或3線串行多種接口方式,內(nèi)部含有國標(biāo)一級、二級簡體中文字庫的點陣圖形液晶顯示模塊;其顯示分辨率為128×64, 內(nèi)置8192個16*16點漢字,和128個16*8點ASCII字符集.利用該模塊靈活的接口方式和簡單、方便的操作指令,可構(gòu)成全中文人機交互圖形界面??梢燥@示8×4行16×16點陣的漢字. 也可完成圖形顯示.低電壓低功耗是其又一顯著特點。兩者各自優(yōu)點:1602是字符型液晶,顯示字母
8、和數(shù)字比較方便,控制簡單,成本較低。1602采用并口傳輸,速度比12864串口快。12864 顧名思義像素是128*64,能顯示8*4個漢字,因型號不同,有的帶漢字庫,有的不帶,能顯示圖像效果,功能比1602強大。綜上所述:1602是字符型液晶,顯示字母和數(shù)字比較方便,控制簡單,成本較低。1602采用并口傳輸,速度比12864串口快。四、 硬件設(shè)計:一) 系統(tǒng)框圖:圖41 多點測溫系統(tǒng)框圖溫度傳感器DS18B20檢測到環(huán)境溫度進行轉(zhuǎn)換保存高速緩存RAM中,主控器STC89C51在發(fā)出命令后在讀取數(shù)據(jù)進行處理,按鍵掃描再輸出數(shù)據(jù)到LCD1602控制其顯示的具體溫度值。圖42 系統(tǒng)仿真圖:二) 各
9、部分硬件介紹:1. STC89C51單片機圖43 STC STC89C51單片機引腳圖電源引腳Vcc(40腳):典型值5V。Vss(20腳):接低電平。外部晶振X1、X2分別與晶體兩端相連接。當(dāng)采用外部時鐘信號時,X2接振蕩信號,X1接地。輸入輸出口引腳:P0口:I/O雙向口。作輸入口時,應(yīng)先軟件置“ 1”。P1口:I/O雙向口。作輸入口時,應(yīng)先軟件置“ 1”。P2口:I/O雙向口。作輸入口時,應(yīng)先軟件置“ 1”。P3口:I/O雙向口。作輸入口時,應(yīng)先軟件置“ 1”。控制引腳:RST/Vpd、ALE/-PROG、-PSEN、-EA/Vpp組成了MSC-51的控制總線。RST/Vpd(9腳):復(fù)
10、位信號輸入端(高電平有效)。第二功能:加+5V備用電源,可以實現(xiàn)掉電保護RAM信息不丟失。ALE/-PROG(30腳):地址鎖存信號輸出端。第二功能:編程脈沖輸入。-PSEN(29腳):外部程序存儲器讀選通信號。-EA/Vpp(31腳):外部程序存儲器使能端。第二功能:編程電壓輸入端(+21V)。2. 溫度傳感器DS18B20圖43 DS18B20引腳圖溫度傳感器電路直接采用DS18B20設(shè)計,相比于模擬溫度傳感器,這種設(shè)計方法可以節(jié)省電路連接。DS18B20溫度傳感器是美國DALLAS半導(dǎo)體公司最新推出的一種改進型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出北側(cè)溫度,并且可根
11、據(jù)實際要求通過簡單的編程實現(xiàn)912位的數(shù)字值讀數(shù)方式。DS18B20的性能特點如下:l 1)獨特的單線接口僅需一個端口引腳進行通訊l 2)每個器件有唯一的64 位的序列號存儲在內(nèi)部存儲器中l(wèi) 3)簡單的多點分布式測溫應(yīng)用l 4)無需外部器件l 5)可通過數(shù)據(jù)線供電。供電范圍為3.0V到5.5Vl 6)測溫范圍為-55125(67257)l 7)在1085范圍內(nèi)精確度為±0.5l 8)溫度計分辨率可以被使用者選擇為912位l 9)最多在750ms 內(nèi)將溫度轉(zhuǎn)換為12 位數(shù)字l 10)用戶可定義的非易失性溫度報警設(shè)置11)應(yīng)用包括溫度控制、工業(yè)系統(tǒng)、消費品、溫度計或任何熱感測系統(tǒng)64位R
12、OM的位結(jié)構(gòu)如圖3所示。開始8位是產(chǎn)品類型的編號,接著是每個器件的惟一的序號,共有48位,最后8位是前面56位的CRC檢驗碼,這也是多個DS18B20可以采用一線進行通信的原因。非易失性溫度報警器觸發(fā)器TH和TL,可通過軟件寫入戶報警上下限。圖44 64位ROM結(jié)構(gòu)圖 DS18B20工作時按此寄存器中的分辨率將溫度轉(zhuǎn)換為相應(yīng)精度的數(shù)值。該字節(jié)各位的定義熱圖5所示。低5位一直為1,TM是測試模式位,用于設(shè)置DS18B20在工作模式還是在測試模式。在DS18B20出廠時該位被設(shè)置為0,用戶不要改動,R1和R0決定溫度轉(zhuǎn)換得精度位數(shù),即用來設(shè)置分辨率,定義方法見表1。圖46 配置寄存器高速暫存RAM
13、的第6,7,8字節(jié)保存未用,表現(xiàn)為邏輯1。第9字節(jié)讀出前面所有8字節(jié)的CRC碼,可用來檢驗數(shù)據(jù),從而保證通信數(shù)據(jù)的正確性。當(dāng)DS18B20接收溫度轉(zhuǎn)換命令后,開始啟動轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號擴展的二進制補碼形式存儲在高速暫存存儲器的第1,2字節(jié)。單片機可以通過單線接口讀出數(shù)據(jù),讀數(shù)據(jù)時低位在先,高位在后,數(shù)據(jù)格式以0.0625/LSB形式表示。 在64位ROM的最高有效字節(jié)中存儲有循環(huán)冗余檢驗碼(CRC)。主機根據(jù)ROM的前56位來計算CRC值,并和存入DS18B20的CRC值作比較,以判斷主機收到ROM數(shù)據(jù)是否正確。 DS18B20可以采用兩種方式供電,一種是采用電源供電方式
14、,此時DS18B20的腳接地,2腳作為信號線,3腳接電源。另一種是寄生電源供電方式,如圖8所示.單片機端口接單線總線,為為保證有效DS18B20時鐘周期內(nèi)提供足夠的電流,可用一個MOSFET管來完成對總線的上拉。圖47 DS18B20采用寄生電源的電路圖當(dāng)DS18B20處于寫存儲器操作和溫度A/D轉(zhuǎn)換操作時,總線上必須有強的上拉,上拉開啟時間最大為10us。采用寄生電源供電方式時VDD和GND端均接地。由于單線制只有一根線,因此發(fā)送接口必須是三態(tài)的。3. 顯示器LCD1602圖48 LCD尺寸圖LCD1602 采用標(biāo)準(zhǔn)的 16 腳接口,其中: 第 1 腳:VSS 為地電源 第 2 腳:VDD
15、接 5V 正電源 第 3 腳:V0 為液晶顯示器對比度調(diào)整端,接正電源時對比 度最弱,接地電源時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個 10K 的電位器調(diào)整對比度第 4 腳:RS 為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。 第 5 腳:RW 為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當(dāng) RS 和 RW 共同為低電平時可以寫入指令或者顯示地址,當(dāng) RS 為低電平 RW 為高電平時可以讀忙信號,當(dāng) RS 為高電平 RW 為低電平時可以寫入數(shù)據(jù)。第 6 腳:E 端為使能端,當(dāng) E 端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。 第 714 腳:D0D
16、7 為 8 位雙向數(shù)據(jù)線。第 1516 腳:空腳 三) 仿真電路:1) 開機仿真圖:圖49 開機仿真圖2)選擇界面仿真圖:圖410.1 選擇界面仿真圖2)溫度顯示界面仿真圖:圖410.1 溫度顯示界面仿真圖五、 數(shù)據(jù)處理:一) 程序變量說明:1. 序列號存儲數(shù)組:SN38將實現(xiàn)讀取的序列號保存在此變量中,方便后續(xù)程序的讀取調(diào)用。定義方式為:uchar SN38= 0x28,0x1a,0x10,0xaa,0x05,0x00,0x00,0x71,0x28,0x9a,0x51,0xaa,0x05,0x00,0x00,0xbf,0x28,0xb1,0x4d,0xaa,0x05,0x00,0x00,0x
17、ac,;2. 字符串存取數(shù)組:dis、table1、table2、table3、table4、choose1、choose2、choose3、chooseAl、chooseAv、enter將需要顯示的字符竄分別保存在響應(yīng)的數(shù)組里,進行模塊化封裝,方便在主程序與子程序之間調(diào)用顯示,例如:uchar code dis=" Welcome!"uchar code chooseAv=" DISPLAY AVERAGE"3. 鍵盤返回值num每個按鍵對應(yīng)一個返回值,本系統(tǒng)為了體現(xiàn)簡介節(jié)約的理念,只設(shè)置了兩個按鍵,按鍵1返回值1,按鍵2返回值2。返回值儲存在num變
18、量中,有利于按鍵符合功能的實現(xiàn)。4. 功能變量k每一個k值對應(yīng)一個功能,通過按鍵來判斷k值的不同num值k值功能0歡迎界面116對應(yīng)節(jié)點選擇界面5平均溫度選擇界面2>10讀取并轉(zhuǎn)換溫度1116對應(yīng)節(jié)點節(jié)點溫度顯示界面15平均溫度顯示界面二) 程序數(shù)據(jù)處理:1. 溫度數(shù)據(jù)處理DS18B20初始默認(rèn)值11位,最后一位 位符號位,正溫度為正,負(fù)溫度為負(fù),精度為0.0625,實際溫度:tvaluej=d*0.625(為實際溫度的10倍)tvaluej儲存j節(jié)點的的實際溫度d采集的前10位溫度符號位判斷:tvaluej<0x07ff tflagj=0tvaluej>=0x07ff tf
19、lagj=1tflagj儲存j節(jié)點的溫度符號2. 顯示數(shù)據(jù)處理:disdata0=flagdat顯示符號位disdata1=tvalue0%1000/100+0x30顯示十位disdata2=tvalue0%100/10+0x30顯示個位disdata3=0x2e顯示小數(shù)點disdata4=tvalue0%10+0x30顯示小數(shù)一位三) 人機界面設(shè)計:初始界面,無任何操作,如圖51:圖51 歡迎界面功能選擇界面(按鍵1選擇),如圖52、圖53:圖52 功能界面,顯示所有溫度圖52 功能界面,顯示平均溫度溫度顯示界面(按鍵2選擇),如圖54、圖55:圖54 溫度顯示界面,顯示第二節(jié)點溫度圖55
20、溫度顯示界面,顯示所有節(jié)點溫度六、 軟件設(shè)計:1. 語言選擇: 程序選擇C語言編寫,語言的結(jié)構(gòu)性更強,移植性更強。2. 資源配置:端口資源P1LCD數(shù)據(jù)端P2.0P2.2LCD控制端P2.5DS18B20數(shù)據(jù)端P3.0功能按鍵P3.1顯示按鍵3. 程序流程圖: A. 主程序:開始LCD初始化顯示開機界面按鍵掃描判斷按鍵返回值num維持K在17的數(shù)值循環(huán)維持K在1117的數(shù)值循環(huán)顯示相應(yīng)功能返回num=1num=2 將各部分功能函數(shù)封裝,寫在子程序中,主程序只負(fù)責(zé)調(diào)用,大大減少了主程序的冗雜度,增加代碼的可讀性。 開始上電,主程序運行,初始化LCD,并且顯示開機畫面。進入while循環(huán),不斷掃描
21、按鍵,如果按鍵按下,會返回相應(yīng)的num值。判斷num值,對功能變量k操作,使k的值在15,1115循環(huán)顯示。再判斷相應(yīng)的k值,顯示相應(yīng)的功能。并且循環(huán)掃面。 B. LCD初始化流程圖:開始進入模式設(shè)置設(shè)置八位格式顯示兩行整體顯示,關(guān)光標(biāo),不顯示設(shè)定增量放式,輸入不移位清屏結(jié)束 LCD設(shè)置函數(shù),兩行顯示,輸入后光標(biāo)右移,屏幕不移動,光標(biāo)不顯示。 C. DS18B20數(shù)據(jù)處理流程圖:開始DS18B20初始化讀取溫度轉(zhuǎn)換溫度溫度復(fù)位發(fā)送匹配指令發(fā)送序列號讀取溫度數(shù)值溫度數(shù)值處理值數(shù)值儲存返回DS18B20數(shù)據(jù)處理,通過for循環(huán),依次發(fā)送一次序列號,匹配對應(yīng)節(jié)點溫度傳感器,采集數(shù)據(jù)溫度,轉(zhuǎn)換成實際溫
22、度值,保存在數(shù)組中。不斷循環(huán),直至所有序列號發(fā)送完畢。4. 主要代碼:a) 主程序代碼:void main() LCD_init(); LED1=0; Show(); while(1) keyscan();if(num=1) LCD_write_command(0x01);if(k>10) k=k-10; k+;if(k>5) k=1; num=0;if(num=2) LCD_write_command(0x01); if(k<10) k=k+10; if(k>15) k=10; num=0;if(k>0&&k<10) Ent(); if(k
23、=1) ShowC1(); if(k=2) ShowC2(); if(k=3) ShowC3(); if(k=4) ShowAl(); if(k=5) ShowAv(); if(k>10) change_temp(); read_temp();if(k=11) ShowChar1(); display_DS1(); if(k=12) ShowChar2(); display_DS2(); if(k=13) ShowChar3(); display_DS3(); if(k=14) ShowCharAl(); display_DS1(); delay(40); display_DS2(); delay(40); display_DS3(); if(k=15) ShowCharA(); display_DSA(); b)LCD初始化代碼:void LCD_init(void)LCD_write_command(0x08);LCD_write_command(0x38);LCD_write_co
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023年-2024年新員工入職安全教育培訓(xùn)試題帶答案(突破訓(xùn)練)
- 電動輪椅公益捐贈合同
- 鉆機租賃鉆孔施工合同
- 公司和咨詢公司合同正文
- 2025年加盟店鋪招商合作合同書
- 酒店員工勞務(wù)合同范本1
- 2025年加盟花店合同
- 《基于模糊控制變量方法的電子膨脹閥控制系統(tǒng)設(shè)計及MATLAB仿真》12000字(論文)
- 《負(fù)債經(jīng)營對公司價值影響探究-以三全食品公司為例(數(shù)據(jù)圖表論文)》7000字
- 2025年度文化旅游產(chǎn)業(yè)發(fā)展委托管理合同協(xié)議書
- 北京2025年首都醫(yī)科大學(xué)附屬北京友誼醫(yī)院招聘140人歷年參考題庫(頻考版)含答案解析
- 《工商管理專業(yè)畢業(yè)實習(xí)》課程教學(xué)大綱
- 2025年中國社區(qū)團購行業(yè)發(fā)展環(huán)境、運行態(tài)勢及投資前景分析報告(智研咨詢發(fā)布)
- 國開電大本科《西方經(jīng)濟學(xué)(本)》網(wǎng)上形考(作業(yè)一至六)試題及答案
- 提高有風(fēng)險患者預(yù)防跌倒墜床護理措施落實率品管圈PDCA案例匯報
- 2024年行政執(zhí)法人員執(zhí)法資格知識考試題庫(附含答案)
- 西那卡塞治療甲旁亢
- 無人駕駛 物流行業(yè)市場調(diào)研分析報告
- 代理記賬有限公司簡介(5個范本)
- 油氣儲存企業(yè)安全風(fēng)險評估指南(試行)
- 快速了解陌生行業(yè)的方法論及示例PPT課件
評論
0/150
提交評論