【正文】
O口,串行口,A/D轉(zhuǎn)換器以及脈寬調(diào)制器PWM等),這樣一塊集成電路芯片具有一臺計(jì)算機(jī)的屬性,因此被稱為單片微型計(jì)算機(jī),簡稱單片機(jī)。本系統(tǒng)采用8片DS18B20構(gòu)成小型溫度傳感器網(wǎng)絡(luò),通過并行連接方式連接至單片機(jī)AT89C51的8個通用I/O端口。2. 本課題綜合了現(xiàn)代測控、電子信息、計(jì)算機(jī)技術(shù)專業(yè)領(lǐng)域方方面面的知識,具有綜合性、科學(xué)性、代表性,可全面檢驗(yàn)和促進(jìn)學(xué)生的理論素養(yǎng)和工作能力。可見,研究溫度的測量具有重要的理論意義和推廣價(jià)值。實(shí)現(xiàn)了系統(tǒng)接口簡單、精度高、抗干擾能力強(qiáng)、工作穩(wěn)定等特點(diǎn)。對本文的研究做出重要貢獻(xiàn)的個人和集體,均已在文中以明確方式注明。關(guān)鍵詞:單片機(jī);DS18B20數(shù)字溫度傳感器;Proteus仿真;C51編程AbstractWith using the measuring principle and characteristics of the numerical temperature sensor of DS18B20,making use of special characteristics of single line as the total line, and bine together with AT89C51 to realize several points temperature measuring. Also this paper gives the example of the C51 program which is used to operate to the DS18B20. Make system have characteristics of simple, high accuracy, strong anti interference ability, stable work etc.This design introduced AT89C51 monolithic integrated circuit temperature control system design from the hardware and the software two aspects. A multipoint temperature measurement system based on DS18B20 and AT89C51 microcontroller is designed and simulated by Proteus in this paper, including software and hardware design of this system. The system has such advantages as novel circuit design, quick measurement speed, high measurement accuracy, and good practicality.Key words: SCM;DS18B20;Proteus simulation;C51 program目 錄摘 要 IAbstract II第一章 緒論 1 1 2第二章 單片機(jī)簡介 3 3 4 5 6第三章 數(shù)字溫度傳感器DS18B20原理 7 7 7 8 8 8 DS18B20與單片機(jī)的接口 9 DS18B20芯片ROM指令表 9 DS18B20芯片存儲器操作指令表 10 DS18B20復(fù)位及應(yīng)答關(guān)系及讀寫隙 11第四章 系統(tǒng)硬件設(shè)計(jì) 12 12 13 13第五章 系統(tǒng)軟件設(shè)計(jì) 16 系統(tǒng)軟件設(shè)計(jì)思路 16 21第六章 系統(tǒng)運(yùn)行結(jié)果 27第七章 結(jié)束語 31參考文獻(xiàn) 32致 謝 33IV 第一章 緒論溫度是一個和人們生活環(huán)境有著密切關(guān)系的物理量,也是一種在生產(chǎn)、科研、生活中需要測量和控制的重要物理量,是國際單位制七個基本量之一,同時它也是一種最基本的環(huán)境參數(shù)。本設(shè)計(jì)要求系統(tǒng)測量的溫度的點(diǎn)數(shù)為4個,℃,測溫范圍為20℃~+80℃。單片機(jī)獲得溫度信息后,通過特定的算法,將處理后的溫度信息通過LED顯示出來,同時通過串行口送上位機(jī)處理。并在Keil環(huán)境下編輯應(yīng)用軟件程序,通過Proteus和Keil的聯(lián)合實(shí)現(xiàn)該多點(diǎn)溫度測量系統(tǒng)的設(shè)計(jì)、調(diào)試和仿真。功能強(qiáng)大AT89C51單片機(jī)可提供高性價(jià)比的應(yīng)用場合,可靈活運(yùn)用與各種控制領(lǐng)域。3. 內(nèi)部程序存儲器(ROM)單片機(jī)內(nèi)部有4KB的ROM,用于存放程序、原始數(shù)據(jù)或表格。該串行口功能較強(qiáng),既可作為全雙工異步通信收發(fā)器使用,也可作為移位器使用。實(shí)際上是片內(nèi)各功能部件的控制寄存器和狀態(tài)寄存器,是一個具有特殊功能的RAM區(qū)。計(jì)算機(jī)執(zhí)行程序的過程實(shí)際上就是逐條指令地重復(fù)上述操作過程,直至遇到停機(jī)指令可循環(huán)等待指令。(I/O)端口引腳通常設(shè)計(jì)有多種功能。超小的體積,超低的硬件開消,抗干擾能力強(qiáng),精度高,附加功能強(qiáng),使得DS18B20更受歡迎。l * 檢測溫度范圍為–55176。在講解其工作流程之前我們有必要了解18B20的內(nèi)部存儲器資源。第8個字節(jié)為計(jì)數(shù)寄存器,是為了讓用戶得到更高的溫度分辨率而設(shè)計(jì)的,同樣也是內(nèi)部溫度轉(zhuǎn)換、計(jì)算的暫存單元。如果復(fù)位低電平的時間不足或是單總線的電路斷路都不會接到存在脈沖,在設(shè)計(jì)時要注意意外情況的處理。:一個存儲器操作指令結(jié)束后則將進(jìn)行指令執(zhí)行或數(shù)據(jù)的讀寫,這個操作要視存儲器操作指令而定。 DS18B20芯片ROM指令表[4]Read ROM(讀ROM)[33H] (方括號中的為16進(jìn)制的命令字)這個命令允許總線控制器讀到DS18B20的64位ROM。只要芯片不掉電,報(bào)警狀態(tài)將被保持,直到再一次測得溫度什達(dá)不到報(bào)警條件為止。Convert T(溫度轉(zhuǎn)換)[44H]收到此指令后芯片將進(jìn)行一次溫度轉(zhuǎn)換,將轉(zhuǎn)換的溫度值放入RAM的第2地址。 DS18B20復(fù)位及應(yīng)答關(guān)系及讀寫隙每一次通信之前必須進(jìn)行復(fù)位,復(fù)位的時間、等待時間、回應(yīng)時間應(yīng)嚴(yán)格按時序編程。每一位的讀取之前都由控制器加一個起始信號。 DS18B20的一線制總線在時序上的嚴(yán)格要求,也從另一方面意味著在一定的彈性范圍內(nèi),不同DS18B20器件的時序細(xì)節(jié)上的一致性應(yīng)該是非常好,所以可以將系統(tǒng)設(shè)計(jì)成利用MCU的并行端口同時對多個DS18B20進(jìn)行統(tǒng)一的操作,不過這時候并行端口上的每一個端口連接著一個DS18B20器件而已。DS18B20數(shù)碼管顯示AT89C51圖42 系統(tǒng)框圖系統(tǒng)框圖[15]簡介: 系統(tǒng)的核心是AT89C51單片機(jī),系統(tǒng)通過控制選擇某一個DS18B20,并把其檢測到的溫度數(shù)據(jù)送到單片機(jī)進(jìn)行處理,在把處理后的溫度送到數(shù)碼管顯示,并顯示是那個點(diǎn)的溫度,系統(tǒng)也可以多點(diǎn)溫度循環(huán)掃描顯示。for(Error_Counter=0。//如檢測到總線的回復(fù)信號結(jié)束,則退出循環(huán)for(i=0。{//OS the resoult of Temperaturefor(i=15。{_nop_()。NOP_1uS。while(i0) i。}////函數(shù)名稱:Write_Byte//入口參數(shù):dat//函數(shù)功能:寫命令//void Write_Byte(uchar dat){ uint i。 if(testb) { DQ=0x00。while(i0) i。}////函數(shù)名稱:Start_Read_Byte//入口參數(shù):無//函數(shù)功能:開始讀取//void Start_Read_Byte(void){ Init_18B20()。 b=dir_temp%10。 for(j=5000。 Start_Read_Byte()。 buf1[m]=DQ。 DQ=0xff。 for(m=0。n=7。最后還給出系統(tǒng)的軟件的設(shè)計(jì)過程,使用了C語言進(jìn)行程序設(shè)計(jì)。他們?yōu)槲易霎厴I(yè)設(shè)計(jì)提供了條件,并且在百忙之中抽出時間對我的畢業(yè)設(shè)計(jì)給予了詳細(xì)的指導(dǎo)和細(xì)心的修改。34