【正文】
學(xué)習(xí)的過程和研究的過程,沒有學(xué)習(xí)就不可能有研究的能力,沒有自己的研究,就不會(huì)有所突破,那也就不叫論文了。從開始接到論文題目到系統(tǒng)的實(shí)現(xiàn),再到論文的完成,每前進(jìn)一步對(duì)我來說都是新的 嘗試與挑戰(zhàn),這也是我在大學(xué)期間獨(dú)立完成的最大的項(xiàng)目。 Proteus軟件 仿真功能有: (1)提供軟件 調(diào)試功能 (2)提供豐富的外圍接口器件及其仿真 RAM, ROM,鍵盤,馬達(dá), LED, LCD,AD/DA,部分 SPI 器件,部分 IIC器件。它是目前最好的仿真單片機(jī)及外圍器件的工具。 以下是 IAR Embedded Workbench 開發(fā)界面圖。 //us if (readBit) return 1。 //延時(shí)大于 1us RLS_DS18B20()。 RLS_DS18B20()。采樣期內(nèi)總線為高電平則確認(rèn)為 1。讀時(shí)隙是從主機(jī)把單總線拉低之后 ,在 1 微秒之后就得釋放單總線為高電平,以讓 DS18B20 把數(shù)據(jù)傳輸?shù)絾慰偩€上。 //強(qiáng)制拉低 delay_us(60)。 //Maga16 控制總線 DDR=1 CLR_DS18B20()。而做為從機(jī)的 DS18B20則在檢測(cè)到總線被拉底后等待 15 微秒然后從 15us 到 45us 開始對(duì)總線采樣,在采樣期內(nèi)總線為高電平則為 1,若采樣期內(nèi)總線為低電平則為 0。 (1)寫操作 寫周期最少為 60 微秒,最長(zhǎng)不超過 120 微秒。 if(errTime50) return(0x00)。 if(errTime20) return(0x00)。 //釋放總線 ,總線自動(dòng)上拉 SET_DS18B20()。 //輸出低電平 CLR_DS18B20()。 RLS_DS18B20()。主機(jī)輸出低電平,保持低電平時(shí)間 至少 480us,以產(chǎn)生復(fù)位脈沖。 DS18B20共有 6種信號(hào)類型:復(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)系, “ 一 寫 ” 操作主機(jī)應(yīng)寫 0。 表 31 “兩讀”數(shù)據(jù)解釋 “兩讀”數(shù)據(jù) “兩讀”數(shù)據(jù)解釋 00 有器件的總線上,總線 上所有器件再次數(shù)據(jù)位上發(fā)生沖突 01 有器件的總線上,總線上所有器件再次數(shù)據(jù)位均為 0 10 有器件的總線上,總線上所有器件再次數(shù)據(jù)位均為 1 11 沒有器件在總線上 基于 DS18B20 單線多點(diǎn)溫度測(cè)量系統(tǒng) 18 (2)寫 一位 對(duì) ROM 編碼的某一位 “ 兩讀 ” 之后,對(duì)該位進(jìn)行 “ 一 寫 ” 操作。再執(zhí)行一次讀,因?yàn)?ROM 搜索命令正在執(zhí)行所以總線上所有器件把各自 ROM 編碼的第一位的補(bǔ)碼放在總線上,第二次讀獲得的數(shù)據(jù)也是所有器件放在總線上數(shù)據(jù)的 “ 與 ” 。對(duì) 64 位 ROM 編碼識(shí)別從最低位開始, ROM 編碼的每一位搜索過程可總結(jié)為 “ 兩讀一寫 ” :讀一位,讀該位補(bǔ)碼;寫一位。 搜索算法首先通過復(fù)位( reset)和在線應(yīng)答脈沖( presence pulse)時(shí)隙將 1Wire 總線上的所有器件復(fù)位;成功地執(zhí)行該操作后,發(fā)送 1 個(gè)字節(jié)的搜索命令;搜索命令使 1Wire 器件準(zhǔn)備就緒、開始進(jìn)行搜索操作。而所謂跳過 ROM命令即為:之后的操作是對(duì)初始化 DS18B20 開始 發(fā) Skip ROM 命令 溫度轉(zhuǎn)換 延時(shí) 500ms 等待溫度轉(zhuǎn)換 初始化 DS18B20 發(fā) Skip ROM 命令 發(fā)讀溫度命令 讀 DS18B20 返回 EEPROM 中的內(nèi)容,順序從字節(jié) 0 的 LSB 位開始 讀兩次,即讀出溫度值的高低 兩字 將二進(jìn)制溫度轉(zhuǎn)換成十進(jìn)制溫度取整數(shù)部分的 7 位至 ACC 各位中以實(shí)現(xiàn)溫度轉(zhuǎn)換 結(jié)束 基于 DS18B20 單線多點(diǎn)溫度測(cè)量系統(tǒng) 16 所有 DS18B20 的。各執(zhí)行模塊規(guī)劃好后,就可以規(guī)劃監(jiān)控程序了。從軟件的功能不同可分為兩大類:一是監(jiān)控軟件(主程序),它是整個(gè)控制系統(tǒng)的核心,專門用來協(xié)調(diào)各執(zhí)行模塊和操作者的關(guān)系??偩€控制器在發(fā)起一條 DS18B20 功能指令之前必須先發(fā)出一條 ROM 指令。 ROM 操作指令 一旦總線控制器探測(cè)到一個(gè)存在脈沖,它就發(fā)出一條 ROM指令。如果總線停留在低電平超過 480us,總線上的所有器件都將被復(fù)位。這樣的系統(tǒng)允許每一個(gè)掛在總線上的區(qū)間都能在適當(dāng)?shù)臅r(shí)間驅(qū)動(dòng)它。如果計(jì)算得到的 CRC 值和讀取出來的 CRC 值相吻合,數(shù)據(jù)被無錯(cuò)傳輸。 CRC 碼由 ROM的前 56 位計(jì)算得到,被包含在 ROM 的重要字節(jié)當(dāng)中。 當(dāng)溫度轉(zhuǎn)換命令發(fā)布后,經(jīng)轉(zhuǎn)換所得的溫度值以二字節(jié)補(bǔ)碼形式存放在高速暫存存儲(chǔ)器的第 0和第 1 個(gè)字節(jié)。上電默認(rèn)設(shè)置: R0=1,R1=1( 12 位精度)。這些數(shù)據(jù)在讀回時(shí)全部表現(xiàn)為邏輯 1。字節(jié) 0 和字節(jié) 1為測(cè)得溫度信息的 LSB 和 MSB,這兩個(gè)字節(jié)是只讀的。接著的 48位是一個(gè)唯一的序列號(hào)。 64 位 ROM 的排的循環(huán)冗余校驗(yàn)碼( CRC=X^8+ X^5+ X^4+ 1)。 為數(shù)字信號(hào)輸入 /輸出端。 (6)測(cè)量參數(shù)可配置 DS18B20 的測(cè)量分辨率可通過程序設(shè)定 9~12 位。 基于 DS18B20 單線多點(diǎn)溫度測(cè)量系統(tǒng) 7 (3)在使用中不需要任何外圍元件。 DS18B20 芯片的特性 DS18B20 單線數(shù)字溫度傳感器,即“一線器件”,其具有獨(dú) 特的優(yōu)點(diǎn): (1)采用單總線的接口方式,與微處理器連接時(shí),僅需要一條口線即可實(shí)現(xiàn)微處理器與 DS18B20 的雙向通訊。型號(hào)多種多樣,有 LTM8877, LTM8874 等等。 (11)AREF: A/D 的模擬基準(zhǔn)輸入 引腳 。 (9)XTAL2: 反向振蕩放大器的輸出端。 (7)RESET: 復(fù)位輸入 引腳 。 (6)端口 D(PD7~PD0): 端口 D 為 8 位雙向 I/O 口,具有可編程的內(nèi)部上拉電阻。其輸出緩沖器具有對(duì)稱的驅(qū)動(dòng)特性,可以 輸出和吸收大電流。其輸出緩沖器具有對(duì)稱的驅(qū)動(dòng)特性,可以輸出和吸收大電流。其輸出緩沖 器具有對(duì)稱的驅(qū)動(dòng)特性,可以輸出和吸收大電流。所有的寄存器都直接與運(yùn)算邏單元 (ALU)相連接, 使得一條指令可以在一個(gè)時(shí)鐘周期內(nèi)同時(shí)訪問兩個(gè)獨(dú)立的寄存器。以下是系統(tǒng)組成框圖。 基于 DS18B20 單線多點(diǎn)溫度測(cè)量系統(tǒng) 3 第二章 硬件電路的設(shè)計(jì) 該電路是通過 ATmega16單片機(jī)和 DS18B20傳感器連接而成的溫度測(cè)量系統(tǒng)。 系統(tǒng)概述 本文詳細(xì)介紹了基于 DS18B20 單線多點(diǎn)溫度測(cè)量系統(tǒng)的構(gòu)成。 DS18B20 溫度傳感器的廣泛應(yīng)用更是推動(dòng)了這一領(lǐng)域基于 DS18B20 單線多點(diǎn)溫度測(cè)量系統(tǒng) 2 的發(fā)展。與此同時(shí) ,我國(guó)的溫度測(cè)控設(shè)施計(jì)算機(jī)應(yīng)用以單片機(jī)控制的單參數(shù)單回路系統(tǒng)居多,尚無真正意義上的多參數(shù)綜合控制系統(tǒng)。先是采用模擬式的組合儀表 采集現(xiàn)場(chǎng)信息并進(jìn)行指示、記錄和控制, 80 年代末出現(xiàn)了分布式控制系統(tǒng) ,目前正開發(fā)和研制計(jì)算機(jī)數(shù)據(jù)采集控制系統(tǒng)的多因子綜合控制系統(tǒng)。 隨著社會(huì)的進(jìn)步和工業(yè)技術(shù)的發(fā)展,溫度因素在社會(huì)生活的各個(gè)方面都起到了重要的作用。 關(guān)鍵詞 : ATmega16 DS18B20 單線 多點(diǎn) 溫度測(cè)量 基于 DS18B20 單線多點(diǎn)溫度測(cè)量系統(tǒng) 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基于 DS18B20 單線多點(diǎn)溫度測(cè)量系統(tǒng) 1 第一章 緒論 選題背景和意義 溫度是日常生活、工業(yè)、醫(yī)學(xué)、環(huán)境保護(hù)、化工、石油等領(lǐng)域中不可缺少的物理量。論文 設(shè)計(jì) 的 目的是對(duì) DS18B20進(jìn)行編程,了解其性能特點(diǎn),通過所學(xué)的 C語言知識(shí)和相關(guān)資料提供的指令代碼完成單片機(jī)與 DS18B20 的溫度 監(jiān)測(cè) 。以 ATmega16 單片機(jī)為核心 ,使用溫度傳感器 DS18B20 實(shí)現(xiàn)溫度的采集。 單片機(jī)對(duì)傳感器采集來的數(shù)據(jù)進(jìn)行處理,通過 LCD 把各個(gè)點(diǎn)的溫度給顯示出來,另一方面單片機(jī)可以通過串口通訊傳給上位機(jī),由上位機(jī)軟件顯示出來;該系統(tǒng)可以設(shè)定溫度上下限值,當(dāng)溫度超出系統(tǒng)設(shè)定的范圍時(shí),系統(tǒng)會(huì)報(bào)警提示。因?yàn)楸O(jiān)測(cè)環(huán)境復(fù)雜,測(cè)量點(diǎn)多,信號(hào)傳輸距離遠(yuǎn)及各種干擾的影響,使得傳統(tǒng)測(cè)量系統(tǒng)的穩(wěn)定性和可靠性下降。 國(guó)外對(duì)溫度檢測(cè)技術(shù)研究較早 ,始于 20 世紀(jì) 70年代。近年來 ,我國(guó)引進(jìn)了多達(dá) 16 個(gè)國(guó)家和地區(qū)的工廠環(huán)境控制系統(tǒng) ,在總 體上,正從消化吸收、簡(jiǎn)單應(yīng)用階段向?qū)嵱没⒕C合性應(yīng)用階段過渡和發(fā)展,對(duì)推動(dòng)工廠溫度自動(dòng)檢測(cè) 產(chǎn)生了積極的作用。 近年來隨著單片機(jī)的發(fā)展和傳感器技術(shù)的革新,溫度檢測(cè)領(lǐng)域也完成了從模擬信號(hào)到數(shù)字信號(hào)的轉(zhuǎn)變。DS18B20 與 ATmega16 的結(jié)合實(shí)現(xiàn)了最簡(jiǎn)溫度監(jiān)測(cè)系統(tǒng),該系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,抗干擾能力強(qiáng), 適合于惡劣環(huán)境下進(jìn)行現(xiàn)場(chǎng)溫度測(cè)量,有廣泛的應(yīng)用前景。關(guān)