版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、* *基于 C51 的 DS18B20多點測溫系統(tǒng)2013-07-22目錄摘要 .3第一章 緒論 .41.1開發(fā)背景及意義 .4第二章系統(tǒng)硬件設(shè)計 .52.1 單片機 . 5* *2.2 DS18B20溫度測量模塊62.3 液晶顯示模塊92.4 串口通訊模塊11第三章系統(tǒng)軟件設(shè)計113. 1 系統(tǒng)初始化123.2 溫度測量程序12第四章系統(tǒng)仿真調(diào)試134.1 系統(tǒng)仿真調(diào)試13附錄16* *摘要本文介紹了基于溫度傳感器DS18b20與AT89C52單片機組成的多點溫度分布式測溫系統(tǒng)。設(shè)計了其系統(tǒng)構(gòu)成和軟件方案。該系統(tǒng)面向?qū)嶋H需求,設(shè)定DS18b20溫度范圍為-55+125,采用LCD1602液晶
2、顯示屏,顯示兩路溫度傳感器的測量溫度值。同時通過串口通訊與 PC 機進行通訊。傳輸采集到的溫度值。實際應用表明。該系統(tǒng)結(jié)構(gòu)簡單,抗干擾能力強,適合于惡劣環(huán)境下現(xiàn)場溫度的測量,可應用于倉庫測溫、樓宇空調(diào)控制和生產(chǎn)過程監(jiān)控等領(lǐng)域。關(guān)鍵詞: DS18b20 ,分布式, 1602串口通* *第一章緒論1.1開發(fā)背景及意義溫度的測量和控制在儲糧倉庫、智能樓宇空調(diào)控制及其他的工農(nóng)業(yè)生產(chǎn)和科學研究中應用廣泛。傳統(tǒng)的溫度檢測是使用諸如熱電偶、熱電阻、半導體pn 結(jié)之類的模擬傳感器,經(jīng)信號取樣電路、放大電路和模數(shù)轉(zhuǎn)換電路處理,獲取表示溫度值的數(shù)字信號,再交由微處理器。因為檢測環(huán)境復雜,測量點多,信號傳輸距離遠及
3、各種干擾的影響,使得傳統(tǒng)測量系統(tǒng)的穩(wěn)定性和可靠性下降。近年來隨著單片機的發(fā)展和傳感器技術(shù)的革新,溫度檢測領(lǐng)域也完成了從模擬信號到數(shù)字信號的轉(zhuǎn)變。DS18b20溫度傳感器的廣泛應用更是推動了這一領(lǐng)域的發(fā)展。另外液晶顯示模塊具有體積小、功耗低、顯示內(nèi)容豐富、超薄輕巧等優(yōu)點在各類儀表和顯示系統(tǒng)中得到越* *來越多的應用,現(xiàn)在也是單片機應用設(shè)計中最常用的信息顯示模塊。綜合以上產(chǎn)品的發(fā)展特點,希望溫度檢測系統(tǒng)在未來的發(fā)展中有更廣闊的應用空間并且具有更好的現(xiàn)場測量優(yōu)越性。第二章系統(tǒng)硬件設(shè)計本系統(tǒng)通過DS18B20溫度傳感器采集溫度值,經(jīng)由單片機處理由液晶顯示模塊顯示當前溫度值,并經(jīng)過串口通信將溫度傳送到P
4、C 上2.1單片機本系統(tǒng)采用AT89C52單片機作為微處理器。AT89C52單片機是ATMEL 公司 89 系列單片機的一種8 位 Flash 單片機。它最大的特點是片內(nèi)含有8k 可重復編程的Flash 存儲器,可* *進行 1000次的擦寫操作。另外AT89c52單片機采用ATMEL 高密度非易失存儲器制造技術(shù)制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容,并且其兼具省電耐用、性能穩(wěn)定的特點,因此成為單片機市場的主流產(chǎn)品。本系統(tǒng)采用晶振根據(jù)需要確定系統(tǒng)工作頻率為11.0592Mhz。圖 2.1 單片機結(jié)構(gòu)圖2.2 DS18B20溫度測量模塊DS18b20是美國 DALLAS 公司推出的
5、單總線數(shù)字化測溫集成電路,它具有獨特的單線接口方式,將非電模擬量溫度值轉(zhuǎn)換為數(shù)字信號串行輸出僅需占用1 位 I/O端口,能夠直接讀取被測現(xiàn)場的溫度值。它體積小,電壓適用范圍寬(3v5v ),且可通過編程實現(xiàn)912位的溫度讀數(shù), 即具有可調(diào)的溫度分辨率,因此實用性和可靠性較高,應用廣泛。 以下是 DS18b20的內(nèi)部結(jié)構(gòu)圖* *圖的內(nèi)部結(jié)構(gòu)圖DS18B20有 4 個主要的數(shù)據(jù)部件: 64 位激光 ROM 。 64 位激光 ROM 從高位到低位依次為8 位 CRC、48 位序列號和8位家族代碼 (28H) 組成。 溫度靈敏元件。 非易失性溫度報警觸發(fā)器TH 和 TL 。可通過軟件寫入用戶報警上下限
6、值。 配置寄存器。配置寄存器為高速暫存存儲器中的第五個字節(jié)。DS18B20在按此寄存器中的分辨率將溫度轉(zhuǎn)換成相應精度的數(shù)值。DS18B20的測溫范圍為 -55 +125 ,在 -10 +85 范圍內(nèi),精度為電壓低于3.4v 時精度誤差較大。0 工作時0.5 。在根據(jù)其時序特點以下是DS18B20與AT89C52單片機構(gòu)成的溫度監(jiān)測系統(tǒng)如下* *+5VCC1R4DQ2100 KDQDS18B20GND3DS18B20圖溫度監(jiān)測系統(tǒng)DS18b20的典型應用在本系統(tǒng)中兩個溫度傳感器與單片機連接方式如下:圖傳感器與單片機連接* *本系統(tǒng)為多點溫度測試。DS18B20采用外部供電方式,理論上可以在一根數(shù)
7、據(jù)總線上掛 256 個 DS18B20 ,但實際應用中發(fā)現(xiàn),如果掛接20 個以上的DS18B20就會產(chǎn)生功耗問題。另外單總線長度也不宜超過0.5M ,否則會影響到數(shù)據(jù)的傳輸。在本電路板的設(shè)計中考慮到初步實踐的準確性,暫使用2 個 DS18B20分別連接單片機的p2.6 口。對 DS18B20的設(shè)計,需要注意以下問題( 1)對硬件結(jié)構(gòu)簡單的單線數(shù)字溫度傳感器DS18B20進行操作,需要用較為復雜的程序完成。 編制程序時必須嚴格按芯片數(shù)據(jù)手冊提供的有關(guān)操作順序進行,讀、寫時間片程序要嚴格按要求編寫。尤其在使用DS18B20的高測溫分辨力時,對時序及電氣特性參數(shù)要求更高。( 2)實際應用時,要注意單
8、線的驅(qū)動能力,不能掛接過多的DS18B20 ,同時還應注意最遠接線距離。另外還應根據(jù)實際情況選擇其接線拓撲結(jié)構(gòu)。2.3液晶顯示模塊本系統(tǒng)使用的是1602 液晶顯示模塊。1602 液晶顯示器以其微功耗、體積小、顯示內(nèi)容豐富、超薄輕巧、位數(shù)多、程序簡單的諸多優(yōu)點,在各類儀表和低功耗系統(tǒng)中得到廣泛的應用。根據(jù)顯示內(nèi)容可以分為字符型液晶,圖形液晶。 根據(jù)顯示容量又可以分為單行16 字,2 行16字,兩行20 字等等。在本系統(tǒng)中使用的是字符型兩行16 字液晶顯示器。在與單片機連接時使用接口電路(排針)相連,為并行通信。以下是1602 液晶顯示器外型圖和液晶顯示的典型應用。* *圖液晶顯示器外形1602
9、液晶顯示采用標準的16 腳接口,其中: (模塊背面有標注)圖串口通訊第 1 腳: VSS 為地電源第 2 腳:VDD 接 5V 正電源第 3 腳: V0 為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高,對比度過高時會產(chǎn)生“鬼影” ,使用時可以通過一個 10K 的電位器調(diào)整對比度第 4 腳: RS 為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。第 5 腳: RW 為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當RS 和RW 共同為低電平時可以寫入指令或者顯示地址;當RS 為高電平、 RW 為低電平時可以寫入數(shù)據(jù)。* *第 6 腳: E 端為使能端,當
10、 E 端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。第 714 腳: D0 D7 為 8 位雙向數(shù)據(jù)線。第 15 16 腳:空腳1602 液晶模塊內(nèi)部的字符發(fā)生存儲器(CGROM) 已經(jīng)存儲了不同的點陣字符圖形,這些字符有,阿拉伯數(shù)字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼,其中數(shù)字與字母同ASCII 碼兼容。2.4 串口通訊模塊UART 是一種通用串行數(shù)據(jù)總線 ,用于異步通信 。該總線雙向通信,可以實現(xiàn)全雙工傳輸和接收。 實現(xiàn)單片機和PC 機的通訊工作, 接一個 MAX232實現(xiàn)電平轉(zhuǎn)化。 電路圖如下:第三章系統(tǒng)軟件設(shè)計圖 3 系統(tǒng)流程圖整個系統(tǒng)的功能是由硬件
11、電路配合軟件來實現(xiàn)的,當硬件基本定型后, 軟件的功能也就* *基本定下來了。 本系統(tǒng)主程序主要包括三個子程序,分別為液晶顯示子程序,溫度測量子程序,串口通訊子程序。主體軟件架構(gòu)如左圖:3. 1 系統(tǒng)初始化系統(tǒng)初始化主要包括UART 初始化,液晶顯示初始化,溫度傳感器初始化。UART 初始化包括定義定時器/ 計數(shù)器和串行口的工作方式,定義 T1 為自動重裝8 位計數(shù)器。液晶顯示初始化主要是確定液晶顯示器的工作方式、顯示開關(guān)、光標開關(guān)等。溫度傳感器初始化包括一個由總線控制器發(fā)出的復位脈沖和跟有其后由傳感器發(fā)出的存在脈沖。 存在脈沖是讓總線控制器知道DS18b20在總線上且已準備好操作。一個復位脈沖
12、跟著一個存在脈沖表明DS18b20已經(jīng)準備好發(fā)送和接收數(shù)據(jù)。以下是初始化序列圖。圖初始化序列圖3.2溫度測量程序溫度測量程序主要是DS18b20與單片機之間的ROM 操作命令和DS18b20的數(shù)據(jù)讀* *寫操作命令。當單片機對DS18B20進行初始化,檢測到一個存在脈沖后,發(fā)出匹配ROM 命令,然后發(fā)送 ROM 碼。圖DS18b20 基本工作流程第四章系統(tǒng)仿真調(diào)試4.1系統(tǒng)仿真調(diào)試在 keil 開發(fā)環(huán)境下不能進行有效的仿真調(diào)試,所以在系統(tǒng)中采用protues單片機仿真工具進行仿真調(diào)試。下圖為protues仿真讀取溫度后在LCD1602液晶屏上的顯示結(jié)果。* *圖 4.1.1 protues 仿
13、真圖上位機用串口調(diào)試軟件來仿真,安裝了虛擬串口驅(qū)動軟件和PROTEUS 進行調(diào)試仿真。虛擬串口驅(qū)動軟件用了VSPD軟件。 VSPD 軟件在 Window操作系統(tǒng)上增加了一對在邏輯上交叉相互的虛擬串口,使串口調(diào)試助手能夠和PROTEUS 中的單片機串口相連。VSPD 軟件界面如下:* *圖軟件界面串口仿真結(jié)果如下:在串口調(diào)試助手上顯示兩個溫度傳感器采集到的溫度* *圖溫度傳感器采集附錄溫度采集體統(tǒng)原理圖PCB 圖* *源代碼1602 函數(shù)部分:#define Port P1sbit RS = P20;/ 定義端口sbit RW = P21;sbit E =P22;/*微秒延時函數(shù)*/void d
14、elay_us(unsigned int n) /延時如果需要高精度延時if (n = 0)return ;while (-n);/*/*毫秒函數(shù)聲明*/*/void delay_ms(unsigned char i)* *unsigned int b;while(i-)for (b = 1; b 1000 ; b+) ;/*/*寫入命令函數(shù)*/*/void LCD_write_com(unsigned char com)RS=0;RW=0;E=1;Port = com;delay_us(10);E=0;/*/*寫入數(shù)據(jù)函數(shù)*/*/void LCD_write_Data(unsigned ch
15、ar Data)* *RS=1;RW=0;E=1;Port = Data;delay_us(10);E=0;/*/*寫入字符串函數(shù)*/*/void LCD_write_str(unsigned char x,unsigned char y,unsigned char *s)if (y = 0)LCD_write_com(0x80 + x);elseLCD_write_com(0xc0 + x);while (*s)* *LCD_write_Data( *s);s+;/*/*初始化函數(shù)*/*/void LCD_init(void)delay_ms(40);LCD_write_com(0x38);
16、/* 顯示模式設(shè)置*/delay_ms(5);LCD_write_com(0x38);delay_ms(5);LCD_write_com(0x38);delay_ms(5);LCD_write_com(0x38);LCD_write_com(0x08);/* 顯示關(guān)閉*/LCD_write_com(0x01);/* 顯示清屏*/LCD_write_com(0x06);/* 顯示光標移動設(shè)置*/delay_ms(5);* *LCD_write_com(0x0C);/* 顯示開及光標設(shè)置*/*函數(shù)名:Display_F函數(shù)說明:打印整數(shù)型數(shù)據(jù),沒有地址傳入?yún)?shù):用于Display_float使用傳
17、出參數(shù):無返回值:無*/void Display_F(unsigned int num)unsigned charsever_num6,i = 0;if(num = 0)LCD_write_Data(0x30);elsewhile(num != 0)* *sever_numi+ = num % 10 + 0x30 ;num /= 10 ;while(i-)LCD_write_Data(sever_numi);delay_us(500);/*函數(shù)名:Display_float函數(shù)說明:打印浮點型數(shù)據(jù),傳入?yún)?shù):打印地址x,y, 數(shù)據(jù) num ,小數(shù)點后面打印length位傳出參數(shù):無返回值:無*
18、/voidDisplay_float(unsignedcharx,unsignedchary,floatnumf,unsignedcharlength)unsigned long Int_num;unsigned inttemp = 1;* *unsigned char i = 0;for (i = 0 ; i 0;z-)for(b=1;b0;b-)for(a=2;a0;a-);void delay(unsigned int z)/延時函數(shù)uchar x,y;for(x=z;x0;x-)for(y=101;y0;y-);/DS18B20函數(shù)部分 /void dsinit()/DS18B20初始
19、化dat=1;dsdelay(4);dat=0;/ 給一個脈沖信號dsdelay(50);/低脈沖信號要保持480us 960usdat=1;/拉高* *dsdelay(9);/略微延時delay(1);uchar read()/DS18B20讀一個字節(jié)uchar i,k;for (i=8;i0;i-)dat = 0; /給脈沖信號k=1;/將讀到的一位數(shù)向后移一位dat = 1; /給脈沖信號if(dat)k|=0x80;/如果讀到的是1,則,k 和0x80進行或運算,首位變成1dsdelay(4);/每位讀取中間間隔大于1usreturn(k);void write(uchar date)
20、/DS18B20 寫一個字節(jié)uchar i,k;k=date;for(i=0;i=1;dsdelay(1);float read_tempe(uchar num)/從DS18B20存儲器中讀書溫度int t;float tt;uchar a,b,i;dsinit();/每次對DS18B20輸入指令都要先進行初始化操作write(0x55);/寫序號列號for (i = 0 ; i 8 ; i+)write(xlnumi);write(0x44); /啟動溫度轉(zhuǎn)換dsinit();* *write(0x55);/寫序號列號for (i = 0 ; i 8 ; i+)write(xlnumi);w
21、rite(0xBE); /讀取溫度寄存器等(共可讀9 個寄存器)前兩個就是溫度a=read();/讀出溫度的低八位b=read();/讀出溫度的高八位t=b;t=8;/t是 int , 16 位,講高八位移到前面t=t|a;/將溫度的高位與低位合并if (b & 0x80 )= 0)/判斷正負溫度tt=t*0.0625;/將帶有小數(shù)點位的十六進制數(shù)化為十進制flag = 0;elsett=(t + 1 )* 0.0625;flag = 1;return(tt);* *UART 函數(shù)部分:void InitUART(void)/UART初始化TMOD = 0X20; /11.0592M 9600SCON = 0X50;TH1 = 0xfd;TL1 = 0xfd;PCON = 0X00;EA=1;ES=1;TR1 = 1;void Send(unsi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 放貸合同明確3篇
- 教育項目開發(fā)承攬協(xié)議3篇
- 工業(yè)短期借款合同3篇
- 房屋買賣合同解除的條件和法律規(guī)定3篇
- 安防設(shè)備施工協(xié)議3篇
- 居家養(yǎng)老生活照看3篇
- 工業(yè)電力系統(tǒng)維護合同3篇
- 房屋買賣合同過戶流程詳解與操作指南3篇
- 招標項目全解讀3篇
- 工程大門建設(shè)施工協(xié)議3篇
- 康復評定學試題和答案
- 大學生寒假安全教育主題班會
- 社會團體主要負責人登記表
- 難免壓力性損傷申報表
- 四線三格word模板
- 國家各部委專項資金申報種類
- 年會抽獎券可編輯模板
- 中醫(yī)醫(yī)案學三醫(yī)案的類型讀案方法
- 制造業(yè)信息化管理系統(tǒng)架構(gòu)規(guī)劃
- 化學錨栓計算
- 測井曲線及代碼
評論
0/150
提交評論