【正文】
文的經(jīng)歷也會使我終身受益,我感受到做論文是要用心去做的,是真正的自己學(xué)習(xí)的過程和研究的過程,沒有學(xué)習(xí)就不可能有研究的能力,沒有自己的研究,就不會有所突破,那也就不叫論文了。從開始接到論文題目到系統(tǒng)的實現(xiàn),再到論文的完成,每前進一步對我來說都是新的 嘗試與挑戰(zhàn),這也是我在大學(xué)期間獨立完成的最大的項目。 Proteus軟件 仿真功能有: (1)提供軟件 調(diào)試功能 (2)提供豐富的外圍接口器件及其仿真 RAM, ROM,鍵盤,馬達, LED, LCD,AD/DA,部分 SPI 器件,部分 IIC 器件。它是目前最好的仿真單片機及外圍器件的工具。 以下是 IAR Embedded Workbench 開發(fā)界面圖。 //us if (readBit) return 1。 //延時大于 1us RLS_DS18B20()。 RLS_DS18B20()。采樣期內(nèi)總線為高電平則確認為 1。讀時隙是從主機把單總線拉低之后 ,在 1微秒之后就得釋放單總線為高電平,以讓 DS18B20 把數(shù)據(jù)傳輸?shù)絾慰偩€上。 //強制拉低 delay_us(60)。 //Maga16 控制總線 DDR=1 CLR_DS18B20()。而做為從機的 DS18B20則在檢測到總線被拉底后等待 15微秒然后從 15us 到 45us 開始對總線采樣,在采樣期內(nèi)總線為高電平則為 1,若采樣期內(nèi)總線為低電平則為 0。 (1)寫操作 寫周期最少為 60 微秒,最長不超過 120 微秒。 if(errTime50) return(0x00)。 if(errTime20) return(0x00)。 //釋放總線 ,總線自動上拉 SET_DS18B20()。 //輸出低電平 CLR_DS18B20()。 RLS_DS18B20()。主機輸出低電平,保持低電平時間 至少 480us,以產(chǎn)生復(fù)位脈沖。 DS18B20共有 6種信號類型:復(fù)位脈沖、應(yīng)答脈沖、寫 0、寫 讀 0、讀 1。 rom_byte_mask = 1。 unsigned char rom_byte_mask, search_direction。 devices on the 1Wire bus // Return TRUE : device found, ROM number in ROM_NO buffer // FALSE : device not found, end of search // int OWNext() { // leave the search state alone return OWSearch()。 LastFamilyDiscrepancy = 0。 // // Find the 39。 int LastDiscrepancy。如果 “ 兩讀 ” 數(shù)據(jù)為 01,則表示總線上所有器件在該位上均位 0,為保持器件與總線的聯(lián)系, “ 一 寫 ” 操作主機應(yīng)寫 0。 表 31 “兩讀”數(shù)據(jù)解釋 “兩讀”數(shù)據(jù) “兩讀”數(shù)據(jù)解釋 00 有器件的總線上,總線 上所有器件再次數(shù)據(jù)位上發(fā)生沖突 01 有器件的總線上,總線上所有器件再次數(shù)據(jù)位均為 0 10 有器件的總線上,總線上所有器件再次數(shù)據(jù)位均為 1 11 沒有器件在總線上 18 (2)寫 一位 對 ROM 編碼的某一位 “ 兩讀 ” 之后,對該位進行 “ 一 寫 ” 操作。再執(zhí)行一次讀,因為 ROM 搜索命令正在執(zhí)行所以總線上所有器件把各自 ROM 編碼的第一位的補碼放在總線上,第二次讀獲得的數(shù)據(jù)也是所有器件放在總線上數(shù)據(jù)的 “ 與 ” 。對 64 位 ROM 編碼識別從最低位開始, ROM 編碼的每一位搜索過程可總結(jié)為 “ 兩讀一寫 ” :讀一位,讀該位補碼;寫一位。 搜索算法首先通過復(fù)位( reset)和在線應(yīng)答脈沖( presence pulse)時隙將 1Wire 總線上的所有器件復(fù)位;成功地執(zhí)行該操作后,發(fā)送 1 個字節(jié)的搜索命令;搜索命令使 1Wire 器件準備就緒、開始進行搜索操作。而所謂跳過 ROM 命令即為:之后的操作是對初始化 DS18B20 開始 發(fā) Skip ROM 命令 溫度轉(zhuǎn)換 延時 500ms 等待溫度轉(zhuǎn)換 初始化 DS18B20 發(fā) Skip ROM 命令 發(fā)讀溫度命令 讀 DS18B20 返回 EEPROM 中的內(nèi)容,順序從字節(jié) 0 的 LSB 位開始 讀兩次,即讀出溫度值的高低 兩字 將二進制溫度轉(zhuǎn)換成十進制溫度取整數(shù)部分的 7 位至 ACC 各位中以實現(xiàn)溫度轉(zhuǎn)換 結(jié)束 16 所有 DS18B20 的。各執(zhí)行模塊規(guī)劃好后,就可以規(guī)劃監(jiān)控程序了。從軟件的功能不同可分為兩大類:一是監(jiān)控軟件(主程序),它是整個控制系統(tǒng)的核心,專門用來協(xié)調(diào)各執(zhí)行模塊和操作者的關(guān)系??偩€控制器在發(fā)起一條 DS18B20 功能指令之前必須先發(fā)出一條 ROM 指令。 ROM 操作指令 一旦總線控制器探測到一個存在脈沖,它就發(fā)出一條 ROM 指令。如果總線停留在低電平超過 480us,總線上的所有器件都將被復(fù)位。這樣的系統(tǒng)允許每一個掛在總線上的區(qū)間都能在適當(dāng)?shù)臅r間驅(qū)動它。如果計算得到的 CRC 值和讀取出來的 CRC 值相吻合,數(shù)據(jù)被無錯傳輸。 CRC 碼由 ROM的前 56 位計算得到,被包含在 ROM 的重要字節(jié)當(dāng)中。 當(dāng)溫度轉(zhuǎn)換命令發(fā)布后,經(jīng)轉(zhuǎn)換所得的溫度值以二字節(jié)補碼形式存放在高速暫存存儲器的第 0 和第 1個字節(jié)。上電默認設(shè)置: R0=1,R1=1( 12位精度)。這些數(shù)據(jù)在讀回時全部表現(xiàn)為邏輯 1。字節(jié) 0和字節(jié) 1為測得溫度信息的 LSB 和 MSB,這兩個字節(jié)是只讀的。接著的 48位是一個唯一的序列號。 64 位 ROM 的排的循環(huán)冗余校驗碼( CRC=X^8+ X^5+ X^4+ 1)。 為數(shù)字信號輸入 /輸出端。 (6)測量參數(shù)可配置 DS18B20 的測量分辨率可通過程序設(shè)定 9~12位。 7 (3)在使用中不需要任何外圍元件。 DS18B20 芯片的特性 DS18B20 單線數(shù)字溫度傳感器,即“一線器件”,其具有獨 特的優(yōu)點: (1)采用單總線的接口方式,與微處理器連接時,僅需要一條口線即可實現(xiàn)微處理器與 DS18B20 的雙向通訊。型號多種多樣,有 LTM8877, LTM8874 等等。 (11)AREF: A/D 的模擬基準輸入 引腳 。 (9)XTAL2: 反向振蕩放大器的輸出端。 (7)RESET: 復(fù)位輸入 引腳 。 (6)端口 D(PD7~PD0): 端口 D 為 8 位雙向 I/O 口,具有可編程的內(nèi)部上拉電阻。其輸出緩沖器具有對稱的驅(qū)動特性,可以 輸出和吸收大電流。其輸出緩沖器具有對稱的驅(qū)動特性,可以輸出和吸收大電流。其輸出緩沖 器具有對稱的驅(qū)動特性,可以輸出和吸收大電流。所有的寄存器都直接與運算邏單元 (ALU)相連接, 使得一條指令可以在一個時鐘周期內(nèi)同時訪問兩個獨立的寄存器。以下是系統(tǒng)組成框圖。 3 第二章 硬件電路的設(shè)計 該電路是通過 ATmega16單片機和 DS18B20傳感器連接而成的溫度測量系統(tǒng)。 系統(tǒng)概述 本文詳細介紹了基于 DS18B20 單線多點溫度測量系統(tǒng)的構(gòu)成。 DS18B20 溫度傳感器的廣泛應(yīng)用更是推動了這一領(lǐng)域 2 的發(fā)展。與此同時 ,我國的溫度測控設(shè)施計算機應(yīng)用以單片機控制的單參數(shù)單回路系統(tǒng)居多,尚無真正意義上的多參數(shù)綜合控制系統(tǒng)。先是采用模擬式的組合儀表 采集現(xiàn)場信息并進行指示、記錄和控制, 80 年代末出現(xiàn)了分布式控制系統(tǒng) ,目前正開發(fā)和研制計算機數(shù)據(jù)采集控制系統(tǒng)的多因子綜合控制系統(tǒng)。 隨著社會的進步和工業(yè)技術(shù)的發(fā)展,溫度因素在社會生活的各個方面都起到了重要的作用。 關(guān)鍵詞 : ATmega16 DS18B20 單線 多點 溫度測量 3 1Wire Multipoint temperature measurement system based on DS18B20 Abstract The graduation project is 1Wire Multipoint temperature measurement system based on microprocessor as the core of it, the temperature collection is use of DS18B20. Our experimental purpose is programming to DS18B20 and understand its performance characteristics .The instruction code through the C language knowledge and relevant information to plete the DS18B20 temperature is a smart temperature sensor .The DS18B20 digital thermometer provides 9bit to 12bit Celsius temperature measurements. UseDS18B20 makes the system structure more simple,and higher system can be used in many fileds such as the temperature measurement system of warehouse,the air conditioning control of building and the monitor of productive process.The temperature data is conversed to digital signals in the sensor and then is transmitted to MCU, which processes the data from sensor acquisition and displays thetemperature on various points through the LCD. On the other hand MCU can passthrough the serial port munications PC, from PC software displayed. The system can set temperature limits from top to bottom, when the temperature exceeds te limits set by system, the system will prompt the police. Key words ATmega16 DS18B20 1wire multipoint temperature measurement 1 第一章 緒論 選題背景和意義 溫度是日常生活、工業(yè)、醫(yī)學(xué)、環(huán)境保護、化工、石油等領(lǐng)域中不可缺少的物理量。論文 設(shè)計 的 目的是對 DS18B20 進行編程,了解其性能特點,通過所學(xué)的 C 語言知識和相關(guān)資料提供的指令代碼完成單片機與 DS18B20 的溫度 監(jiān)測 。以 ATmega16 單片機為核心 ,使用溫度傳感器 DS18B20 實現(xiàn)溫度的采集。 單片機對傳感器采集來的數(shù)據(jù)進行處理,通過 LCD 把各個點的溫度給顯示出來,另一方面單片機可以通過串口通訊傳給上位機,由上位機軟件顯示出來;該系統(tǒng)可以設(shè)定溫度上下限值,當(dāng)溫度超出系統(tǒng)設(shè)定的范圍時,系統(tǒng)會報警提示。因為監(jiān)測環(huán)境復(fù)雜,測量點多,信號傳輸距離遠及各種干擾的影響,使得傳統(tǒng)測量系統(tǒng)的穩(wěn)定性和可靠性下降。 國外對溫度檢測技術(shù)研究較早 ,始于 20 世紀 70 年代。近年來 ,我國引進了多達 16 個國家和地區(qū)的工廠環(huán)境控制系統(tǒng) ,在總 體上,正從消化吸收、簡單應(yīng)用階段向?qū)嵱没⒕C合性應(yīng)用階段過渡和發(fā)展,對推動工廠溫度自動檢測 產(chǎn)生了積極的作用。 近年來隨著單片機的發(fā)展和傳感器技術(shù)的革新,溫度檢測領(lǐng)域也完成了從模擬信號到數(shù)字信號的轉(zhuǎn)變。DS18B20 與 ATmega16 的結(jié)合實現(xiàn)了最簡溫度監(jiān)測系統(tǒng),該系統(tǒng)結(jié)