




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
題目:DS18B20溫度測量軟件的設(shè)計(jì)專業(yè):班級:學(xué)生姓名:指導(dǎo)教師:答辯日期:摘要近年來,伴隨大規(guī)模集成電路的發(fā)展,單片機(jī)繼續(xù)朝迅速、高性能方向發(fā)展,從4位、8位單片機(jī)發(fā)展到16位、32位單片機(jī)。單片機(jī)重要用于控制,它的應(yīng)用領(lǐng)域遍及各行各業(yè),大到航天飛機(jī),小至平常生活中的冰箱、彩電,單片機(jī)都可以大顯其能。單片機(jī)技術(shù)與傳感與測量技術(shù)、信號與系統(tǒng)分析技術(shù)、電路設(shè)計(jì)技術(shù)、可編程邏輯應(yīng)用技術(shù)、微機(jī)接口技術(shù)、數(shù)據(jù)庫技術(shù)以及數(shù)據(jù)構(gòu)造、計(jì)算機(jī)操作系統(tǒng)、匯編語言程序設(shè)計(jì)、高級語言程序設(shè)計(jì)、軟件工程、數(shù)據(jù)網(wǎng)絡(luò)通信、數(shù)字信號處理、自動(dòng)控制、誤差分析、儀器儀表構(gòu)造設(shè)計(jì)和制造工藝等的結(jié)合,使得單片機(jī)的應(yīng)用非常廣泛。同步,單片機(jī)具有較強(qiáng)的管理功能。采用單片機(jī)對整個(gè)測量電路進(jìn)行管理和控制,使得整個(gè)系統(tǒng)智能化、功耗低、使用電子元件較少、內(nèi)部配線少、成本低,制造、安裝、調(diào)試及維修以便。本設(shè)計(jì)是基于單片機(jī)ATMAGE16設(shè)計(jì)的實(shí)時(shí)溫度采集儀,通過本次設(shè)計(jì),我成功的實(shí)現(xiàn)了運(yùn)用單片機(jī)對溫度的采集和測量。目錄1緒論...............................................3課題背景...........................................31.2設(shè)計(jì)目的及系統(tǒng)功能..............................42ATMAGE16特性...................................52.1ATMAGE16產(chǎn)品特性...............................52.2引腳配置........................................63DS18B20的設(shè)計(jì).....................................93.1總體通信流程及通信協(xié)議.........................93.2DS18B20溫度測量軟件的設(shè)計(jì)......................113.3多機(jī)通信軟件的設(shè)計(jì).............................113.4DS18B20工作時(shí)序問題...........................134電路的設(shè)計(jì)......................................144.1溫度測量電路的設(shè)計(jì)............................144.2串口通信電路的設(shè)計(jì)............................155分布式溫度采集系統(tǒng)設(shè)計(jì)..........................186ICCAVR制作環(huán)境及簡介...........................196.1ICCAVR簡介...................................196.2ICCAVR向?qū)?...................................226.3ICCAVR的IDE環(huán)境............................22結(jié)論.............................................24參照文獻(xiàn)............................................251緒論自從1976年Intel企業(yè)推出第一批單片機(jī)以來,80年代單片機(jī)技術(shù)進(jìn)入迅速發(fā)展時(shí)期,近年來,伴隨大規(guī)模集成電路的發(fā)展,單片機(jī)繼續(xù)朝迅速、高性能方向發(fā)展,從4位、8位單片機(jī)發(fā)展到16位、32位單片機(jī)。單片機(jī)重要用于控制,它的應(yīng)用領(lǐng)域遍及各行各業(yè),大到航天飛機(jī),小至平常生活中的冰箱、彩電,單片機(jī)都可以大顯其能。單片機(jī)在國內(nèi)的三大領(lǐng)域中應(yīng)用得十分廣泛:第一是家用電器業(yè),例如全自動(dòng)洗衣機(jī)、智能玩具;第二是通訊業(yè),包括電話、手機(jī)和BP機(jī)等等;第三是儀器儀表和計(jì)算機(jī)外設(shè)制造,例如軟盤、硬盤、收銀機(jī)、電表。除了上述老式領(lǐng)域外,汽車、電子工業(yè)在國外也是單片機(jī)應(yīng)用十分廣泛的一種領(lǐng)域。它成本低、集成度高、功耗低、控制功能多能靈活的組裝成多種智能控制裝置,由它構(gòu)成的智能儀表處理了長期以來測量儀器中的誤差的修正、線性處理等問題。單片機(jī)將微處理器、存儲(chǔ)器、定期/計(jì)數(shù)器、I/O接口電路等集成在一種芯片上的大規(guī)模集成電路,自身即是一種小型化的微機(jī)系統(tǒng)。單片機(jī)技術(shù)與傳感與測量技術(shù)、信號與系統(tǒng)分析技術(shù)、電路設(shè)計(jì)技術(shù)、可編程邏輯應(yīng)用技術(shù)、微機(jī)接口技術(shù)、數(shù)據(jù)庫技術(shù)以及數(shù)據(jù)構(gòu)造、計(jì)算機(jī)操作系統(tǒng)、匯編語言程序設(shè)計(jì)、高級語言程序設(shè)計(jì)、軟件工程、數(shù)據(jù)網(wǎng)絡(luò)通信、數(shù)字信號處理、自動(dòng)控制、誤差分析、儀器儀表構(gòu)造設(shè)計(jì)和制造工藝等的結(jié)合,使得單片機(jī)的應(yīng)用非常廣泛。同步,單片機(jī)具有較強(qiáng)的管理功能。采用單片機(jī)對整個(gè)測量電路進(jìn)行管理和控制,使得整個(gè)系統(tǒng)智能化、功耗低、使用電子元件較少、內(nèi)部配線少、成本低,制造、安裝、調(diào)試及維修以便。目前單片機(jī)滲透到我們生活的各個(gè)領(lǐng)域,幾乎很難找到哪個(gè)領(lǐng)域沒有單片機(jī)的蹤跡。導(dǎo)彈的導(dǎo)航裝置,飛機(jī)上多種儀表的控制,計(jì)算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳播,工業(yè)自動(dòng)化過程的實(shí)時(shí)控制和數(shù)據(jù)處理,廣泛使用的多種智能IC卡,民用豪華轎車的安全保障系統(tǒng),錄象機(jī)、攝象機(jī)、全自動(dòng)洗衣機(jī)的控制,以及程控玩具、電子寵物等等,這些都離不開單片機(jī)。更不用說自動(dòng)控制領(lǐng)域的機(jī)器人、智能儀表、醫(yī)療器械了。1.1課題背景分布式溫度采集系統(tǒng)廣泛應(yīng)用在使用了中央空調(diào)的大型商場、廠房、辦公大樓等大型建筑內(nèi)。本課題重要用溫度傳感器對環(huán)境溫度實(shí)行實(shí)時(shí)監(jiān)測,各結(jié)點(diǎn)控制單元可將有關(guān)信息上傳給計(jì)算機(jī),本課題研究重要處理的問題為分布式控制構(gòu)造設(shè)計(jì)、多單片機(jī)串行通信、溫度的采集與處理。本設(shè)計(jì)是基于單片機(jī)ATMAGE16設(shè)計(jì)的實(shí)時(shí)溫度采集儀,采用DS18B20可以采集多路溫度數(shù)據(jù)(本設(shè)計(jì)只用了2路),同步實(shí)時(shí)顯示所采集到的溫度值。在老式的溫度測量系統(tǒng)設(shè)計(jì)中,往往采用模擬技術(shù)進(jìn)行設(shè)計(jì),這樣就不可防止地碰到諸如引線誤差賠償、多點(diǎn)測量中的切換誤差和信號調(diào)理電路的誤差等問題;而其中某一環(huán)節(jié)處理不妥,就也許導(dǎo)致整個(gè)系統(tǒng)性能的下降。伴隨現(xiàn)代科學(xué)技術(shù)的飛速發(fā)展,尤其是大規(guī)模集成電路設(shè)計(jì)技術(shù)的發(fā)展,微型化、集成化、數(shù)字化正成為傳感器發(fā)展的一種重要方向。美國Dallas半導(dǎo)體企業(yè)推出的數(shù)字溫度傳感器DSl8B20,具有獨(dú)特的單總線接口,僅需要占用一種通用I/O端口即可完畢與微處理器的通信;在-10~+85℃溫度范圍內(nèi)具有±O.01℃精度;顧客可編程設(shè)定9~12位的辨別率。以上特性使得DSl8B201.2設(shè)計(jì)目的及系統(tǒng)功能本設(shè)計(jì)的目的是以單片機(jī)為關(guān)鍵設(shè)計(jì)出一種分布式溫度采集系統(tǒng)。在老式測量系統(tǒng)中,傳感器與計(jì)算機(jī)接口的連接是通過若干條導(dǎo)線連接。當(dāng)傳感器數(shù)量較多時(shí),尤其是信號線的長距離傳播時(shí),互相輕易產(chǎn)生干擾。一種室內(nèi)多點(diǎn)溫度測量中,系統(tǒng)的接線會(huì)非常多,導(dǎo)線往往不易鋪設(shè),使得測量工作非常困難。采用總線構(gòu)造數(shù)字式傳感器,配合單片機(jī)及PC機(jī)串口進(jìn)行長距離數(shù)據(jù)通信,則可以很輕易處理這個(gè)問題,該系統(tǒng)最多可以檢測256路溫度信號,在室內(nèi)多點(diǎn)溫度測量控制中能到達(dá)很好的效果。通過本課題設(shè)計(jì),綜合運(yùn)用單片機(jī)及接口技術(shù)、微機(jī)原理、通信協(xié)議,鍛煉動(dòng)手操作能力,綜合運(yùn)用能力,學(xué)習(xí)論文的寫作措施和環(huán)節(jié)。設(shè)計(jì)的溫度控制系統(tǒng)有如下功能及特點(diǎn):(a)實(shí)目前一條數(shù)據(jù)總線上接多種DS18B20器件;(b)測溫范圍0℃~99℃(c)溫度顯示:采用2個(gè)4位數(shù)碼管,顯示采樣溫度值;并在電腦上一同顯示;(d)精度±0.01℃。2ATMAGE16本章簡介了ATMAGE16的產(chǎn)品特性和ATmega16的構(gòu)造。由于其先進(jìn)的指令集以及單時(shí)鐘周期指令執(zhí)行時(shí)間,ATmega16的數(shù)據(jù)吞吐率高達(dá)1MIPSMHz,從而可以緩減系統(tǒng)在功耗和處理速度之間的矛盾。2.1ATMAGE16產(chǎn)品特性1、高性能、低功耗的8位AVR微處理器2、先進(jìn)的RISC構(gòu)造(a)131條指令(b)32個(gè)8位通用工作寄存器(c)全靜態(tài)工作(d)工作于16MHz時(shí)性能高達(dá)16MIPS(e)只需兩個(gè)時(shí)鐘周期的硬件乘法器(f)大多數(shù)指令執(zhí)行時(shí)間為單個(gè)時(shí)鐘周期3、非易失性程序和數(shù)據(jù)存儲(chǔ)器(a)16K字節(jié)的系統(tǒng)內(nèi)可編程Flash擦寫壽命:10,000次(b)具有獨(dú)立鎖定位的可選Boot代碼區(qū)通過片上Boot程序?qū)崿F(xiàn)系統(tǒng)內(nèi)編程真正的同步讀寫操作(c)512字節(jié)的EEPROM擦寫壽命:100,000次(d)1K字節(jié)的片內(nèi)SRAM(e)可以對鎖定位進(jìn)行編程以實(shí)現(xiàn)顧客程序的加密4、JTAG接口(與IEEE1149.1原則兼容)(a)符合JTAG原則的邊界掃描功能(b)支持?jǐn)U展的片內(nèi)調(diào)試功能(c)通過JTAG接口實(shí)現(xiàn)對Flash、EEPROM、熔絲位和鎖定位的編程5、外設(shè)特點(diǎn)(a)兩個(gè)具有獨(dú)立預(yù)分頻器和比較器功能的8位定期器/計(jì)數(shù)(b)一種具有預(yù)分頻器、比較功能和捕捉功能的16位定期器/計(jì)數(shù)(c)具有獨(dú)立振蕩器的實(shí)時(shí)計(jì)數(shù)器RTC(d)四通道PWM(e)8路10位ADC8個(gè)單端通道TQFP封裝的7個(gè)差分通道2個(gè)具有可編程增益(1x,10x,或200x)的差分通道(f)面向字節(jié)的兩線接口(g)兩個(gè)可編程的串行USART(h)可工作于主機(jī)/從機(jī)模式SPI串行接口(i)具有獨(dú)立片內(nèi)振蕩器的可編程看門狗定期器(j)片內(nèi)模擬比較器6、特殊的處理器特點(diǎn)(a)上電復(fù)位以及可編程的掉電檢測(b)片內(nèi)通過標(biāo)定的RC振蕩器(c)片內(nèi)/片外中斷(d)6種睡眠模式:空ADC噪聲克制模式、省電模式、掉電模式、Standby、式以擴(kuò)展的Standby模式7、I/O和封裝(a)32個(gè)可編程的I/O口(b)40引腳PDIP封裝,44引腳TQFP封裝,與44引腳MLF封裝8、工作電壓:(a)ATmega16L:2.7-5.5V(b)ATmega16:4.5-5.5V9、速度等級(a)0-8MHzATmega16L(b)0-16MHzATmega1610、ATmega16L在1MHz,3V,25C時(shí)的功耗(a)正常模式:1.1mA(b)空:0.35mA(c)掉電模式:<1μA2.2引腳配置ATmega16是基于增強(qiáng)的AVRRISC構(gòu)造的低功耗8位CMOS微控制器。由于其先進(jìn)的指令集以及單時(shí)鐘周期指令執(zhí)行時(shí)間,ATmega16的數(shù)據(jù)吞吐率高達(dá)1MIPSMHz,從而可以緩減系統(tǒng)在功耗和處理速度之間的矛盾。ATMAGE16引腳分布如圖2.1所示。AVR內(nèi)核具有豐富的指令集和32個(gè)通用工作寄存器。所有的寄存器都直接與算邏單元(ALU)相連接,使得一條指令可以在一種時(shí)鐘周期內(nèi)同步訪問兩個(gè)獨(dú)立的寄存器。這種構(gòu)造大大提高了代碼效率,并且具有比一般的CISC微控制器最高至10倍的數(shù)據(jù)吞吐率。ATmega16有如下特點(diǎn)16K字節(jié)的系統(tǒng)內(nèi)可編程Flash(具有同步讀寫的能力,即RWW),圖2.1ATMAGE16引腳分布AVR內(nèi)核具有豐富的指令集和32個(gè)通用工作寄存器。所有的寄存器都直接與算邏單元(ALU)相連接,使得一條指令可以在一種時(shí)鐘周期內(nèi)同步訪問兩個(gè)獨(dú)立的寄存器。這種構(gòu)造大大提高了代碼效率,并且具有比一般的CISC微控制器最高至10倍的數(shù)據(jù)吞吐率。ATmega16有如下特點(diǎn)16K字節(jié)的系統(tǒng)內(nèi)可編程Flash(具有同步讀寫的能力,即RWW),512字節(jié)EEPROM,1K字節(jié)SRAM,32個(gè)通用I/O口線,32個(gè)通用工作寄存器,用于邊界掃描的JTAG接口,支持片內(nèi)調(diào)試與編程,三個(gè)具有比較模式的靈活的定期器/計(jì)數(shù)(T/C),片內(nèi)/外中斷,可編程USART,有起始條件檢測器的通用串行接口,8路10位具有可選差分輸入級可編程增益(TQFP封裝)的ADC,具有片內(nèi)振蕩器的可編程看門狗定期器,一種SPI串行端口,以及六個(gè)可以通過軟件進(jìn)行選擇的省電模式。工作于空閑模式時(shí)CPU停止工作,而USART、兩線接口、A/D轉(zhuǎn)換器、SRAM、T/C、SPI端口以及中斷系統(tǒng)繼續(xù)工作;掉電模式時(shí)晶體振蕩器停止振蕩,所有功能除了中斷和硬件復(fù)位之外都停止工作;在省電模式下,異步定期器繼續(xù)運(yùn)行,容許顧客保持一種時(shí)間基準(zhǔn),而其他功能模塊處在休眠狀態(tài);ADC噪聲克制模式時(shí)終止CPU和除了異步定期器與ADC以外所有I/O模塊的工作,以減少ADC轉(zhuǎn)換時(shí)的開關(guān)噪聲;Standby模式下只有晶體或諧振振蕩器運(yùn)行,其他功能模塊處在休眠狀態(tài),使得器件只消耗很少的電流,同步具有迅速啟動(dòng)能力;擴(kuò)展Standby模式下則容許振蕩器和異步定期器繼續(xù)工作。本芯片是以Atmel高密度非易失性存儲(chǔ)器技術(shù)生產(chǎn)的。片內(nèi)ISPFlash容許程序存儲(chǔ)器通過ISP串行接口,或者通用編程器進(jìn)行編程,也可以通過運(yùn)行于AVR內(nèi)核之中的引導(dǎo)程序進(jìn)行編程。引導(dǎo)程序可以使用任意接口將應(yīng)用程序下載到應(yīng)用Flash存儲(chǔ)區(qū)(ApplicationFlashMemory)。在更新應(yīng)用Flash存儲(chǔ)區(qū)時(shí)引導(dǎo)Flash區(qū)(BootFlashMemory)的程序繼續(xù)運(yùn)行,實(shí)現(xiàn)了RWW操作。通過8位RISCCPU與系統(tǒng)內(nèi)可編程的Flash集成在一種芯片內(nèi),ATmega16成為一種功能強(qiáng)大的單片機(jī),為許多嵌入式控制應(yīng)用提供了靈活而低成本的處理方案。3DS18B20的設(shè)計(jì)本章簡介了系統(tǒng)軟件設(shè)計(jì),并詳細(xì)簡介了實(shí)現(xiàn)和調(diào)試的措施,以及分布式溫度采集系統(tǒng)的通信流程和DS18B20溫度測量軟件的設(shè)計(jì)思緒、DS18B20工作的時(shí)序問題。3.1總體通信流程及通信協(xié)議總體通信流程體目前PC機(jī),單片機(jī)主機(jī)及各從機(jī)的通信,信號接受及發(fā)送,這個(gè)設(shè)計(jì)中,通信協(xié)議是一種非常重要也很復(fù)雜的部分,在由PC機(jī)與單片機(jī)構(gòu)成的系統(tǒng)中,常要波及通信問題,假如沒有統(tǒng)一的通信協(xié)議,PC機(jī)與單片機(jī)之間的信息傳遞就無法識別。通信協(xié)議是指通信各方事前約定規(guī)則,我們可以簡樸地理解為各計(jì)算機(jī)之間進(jìn)行互相會(huì)話所使用的共同語言.PC機(jī)與單片機(jī)在進(jìn)行通信時(shí),必須使用的通信協(xié)議。首先,在設(shè)計(jì)中自定義幾種數(shù)據(jù)通信協(xié)議,如下問提到的“a”、“b”、“c”、“d”、“g”、“h”。這些協(xié)議一旦定義,在背面的執(zhí)行過程中就代表了固定的含義,不再變化,PC機(jī)、單片機(jī)、從機(jī)都靠識別這個(gè)協(xié)議來執(zhí)行程序,發(fā)送一種字節(jié)的數(shù)據(jù),接受幾種字節(jié)的數(shù)據(jù),所有的數(shù)據(jù)協(xié)議全都建立在這2個(gè)操作措施上。本設(shè)計(jì)中自定義“a”為PC機(jī)與單片機(jī)主機(jī)間的數(shù)據(jù)協(xié)議,意思為規(guī)定主機(jī)發(fā)送一號從機(jī)的溫度給PC機(jī);自定義“b”為PC機(jī)與單片機(jī)主機(jī)間的數(shù)據(jù)協(xié)議,意思為規(guī)定主機(jī)發(fā)送二號從機(jī)的溫度給PC機(jī);自定義“c”為從機(jī)與主機(jī)間的數(shù)據(jù)協(xié)議,它代表從機(jī)向主機(jī)發(fā)送完四位目前采集的溫度,這里一號從機(jī)和二號從機(jī)采集的溫度,都定義為“c”;自定義“d”為PC機(jī)與單片機(jī)主機(jī)之間的數(shù)據(jù)協(xié)議,意思為開始和完畢命令的信號;自定義“g”為一號從機(jī)和單片機(jī)主機(jī)之間的數(shù)據(jù)協(xié)議,意思為主機(jī)表達(dá)要采集一號從機(jī)的溫度數(shù)據(jù),一號從機(jī)規(guī)定單片機(jī)主機(jī)準(zhǔn)備接受;自定義“h”為二號從機(jī)和單片機(jī)主機(jī)之間的數(shù)據(jù)協(xié)議,意思為主機(jī)表達(dá)要采集二號從機(jī)的溫度數(shù)據(jù),二號從機(jī)規(guī)定單片機(jī)主機(jī)準(zhǔn)備接受。詳細(xì)流程如下:1、PC機(jī)向單片機(jī)主機(jī)發(fā)送“d”:這步是流程的開始,PC機(jī)向單片機(jī)主機(jī)發(fā)送數(shù)據(jù)協(xié)議,規(guī)定主機(jī)把接受的溫度發(fā)送給PC機(jī)顯示;2、單片機(jī)主機(jī)向一號從機(jī)發(fā)送“g”:單片機(jī)主機(jī)在接受到PC機(jī)發(fā)送的“d”信號后,會(huì)立即向一號從機(jī)發(fā)送“g”,規(guī)定一號從機(jī)采集溫度并且將溫度發(fā)回單片機(jī)主機(jī);3、一號從機(jī)回發(fā)“g”:一號從機(jī)接受到單片機(jī)主機(jī)的命令后,會(huì)立即向單片機(jī)主機(jī)回發(fā)信號,規(guī)定單片機(jī)主機(jī)做好接受準(zhǔn)備;4、向主機(jī)發(fā)送四位目前采集的溫度,并回發(fā)發(fā)送完畢標(biāo)識“c”;一號從機(jī)回發(fā)信號后,向主機(jī)發(fā)送四位采集的溫度,這個(gè)溫度在前文已提到標(biāo)識為“c”;5、主機(jī)發(fā)送“h”給2號從機(jī):主機(jī)在接受到一號從機(jī)發(fā)來的“c”命令后,會(huì)立即發(fā)送“h”信號給二號從機(jī),表達(dá)要采集二號從機(jī)的數(shù)據(jù);6、2號從機(jī)回發(fā)“h”:二號從機(jī)接受到單片機(jī)主機(jī)的命令后,會(huì)立即向單片機(jī)主機(jī)回發(fā)信號,規(guī)定單片機(jī)主機(jī)做好接受準(zhǔn)備;7、向主機(jī)發(fā)送四位目前采集的溫度,并回發(fā)發(fā)送完畢標(biāo)識“c”:二號從機(jī)向單片機(jī)主機(jī)回發(fā)完信號后,向主機(jī)發(fā)送四位目前采集的溫度,這個(gè)溫度標(biāo)識為“c”;8、主機(jī)發(fā)送“d”給PC機(jī):單片機(jī)主機(jī)在接受到二號從機(jī)發(fā)送來的信號后,立即發(fā)送信號給PC機(jī),表達(dá)完畢PC機(jī)的前一指令;9、PC發(fā)送“a”給主機(jī):PC機(jī)在接受到單片機(jī)主機(jī)發(fā)送的信號后,發(fā)送新一種指令給單片機(jī)主機(jī),規(guī)定單片機(jī)主機(jī)發(fā)送一號從機(jī)采集的溫度數(shù)據(jù);10、主機(jī)將一號從機(jī)溫度數(shù)據(jù)發(fā)送給PC機(jī):單片機(jī)主機(jī)接受到PC機(jī)的命令后將一號從機(jī)發(fā)送過來的四位目前溫度數(shù)據(jù)轉(zhuǎn)換成ASCII碼后,發(fā)送給PC機(jī),由于PC機(jī)只能讀取ASCII碼;11、PC機(jī)發(fā)送“b”給主機(jī):PC機(jī)接受到單片機(jī)主機(jī)發(fā)送的即時(shí)溫度后會(huì)立即發(fā)送另一指令給單片機(jī)主機(jī),規(guī)定單片機(jī)主機(jī)發(fā)送二號從機(jī)采集的溫度數(shù)據(jù);12、主機(jī)將二號從機(jī)溫度數(shù)據(jù)發(fā)送給PC機(jī),發(fā)送完畢后,返回(1):單片機(jī)主機(jī)接受到PC機(jī)的命令后將二號從機(jī)發(fā)送過來的四位目前溫度數(shù)據(jù)同樣也轉(zhuǎn)換成ASCII碼后,發(fā)送給PC機(jī)。此時(shí)一種完整過程結(jié)束,將返回(1)開始另一輪采集。3.2DS18B20溫度測量軟件的設(shè)計(jì)由于DS18B20單線通信功能是分時(shí)完畢的,它有嚴(yán)格的時(shí)隙概念,因此讀寫時(shí)序很重要。系統(tǒng)對DS18B20的多種操作必須按協(xié)議進(jìn)行。操作協(xié)議為:初始化DS18B20(發(fā)復(fù)位脈沖)→發(fā)ROM功能命令→發(fā)存儲(chǔ)器操作命令→處理數(shù)據(jù)。主機(jī)控制DS18B20完畢溫度轉(zhuǎn)換的程序必須通過3個(gè)環(huán)節(jié):初始化、ROM操作指令、存儲(chǔ)器操作指令。假設(shè)單片機(jī)系統(tǒng)所用的晶振頻率為12MHz,根據(jù)DS18B20的初始化時(shí)序、寫時(shí)序和讀時(shí)序,分別編寫3個(gè)子程序:INIT為初始化子程序,WRITE為寫(命令或數(shù)據(jù))子程序,READ為讀數(shù)據(jù)子程序,所有的數(shù)據(jù)讀寫均由最低位開始。主程序的重要功能是負(fù)責(zé)溫度的實(shí)時(shí)顯示、讀出并處理DS18B20的測量溫度值,溫度測量每1s進(jìn)行一次,流程圖如圖3.1所示。讀出溫度子程序的重要功能是讀出RAM中的9個(gè)字節(jié),在讀出時(shí)需進(jìn)行CRC校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(shù)據(jù)的改寫,其程序流程圖如圖3.2所示。從DS18B20讀取出的二進(jìn)制值必須先轉(zhuǎn)換成十進(jìn)制值,才能用于字符的顯示。由于DS18B20的轉(zhuǎn)換精度為9~12位可選,為了提高精度采用12位。在采用12位轉(zhuǎn)換精度時(shí),溫度寄存器里的值是以0.0625為步進(jìn)的,即溫度值為溫度寄存器里的二進(jìn)制值乘以0.0625,就是實(shí)際的十進(jìn)制溫度值。3.3多機(jī)通信軟件的設(shè)計(jì)ATMAGE16單片機(jī)有串行發(fā)送緩沖器/接受緩沖器(SBUF)、串行口控制寄存器(SCON)、特殊功能寄存器(PCON)。通過設(shè)置SCON可以有四種工作方式,其中工作方式2、3合用于多機(jī)通信。在串行通信前,通過程序預(yù)先將各從機(jī)串行口設(shè)置為方式2或方式3,并使SM2和REN(容許串行接受控制位)為1,容許串行口中斷。主機(jī)與從機(jī)通信時(shí),將SM2置0,準(zhǔn)備接受數(shù)據(jù),否則維持SM2為1,這樣在主機(jī)發(fā)送數(shù)據(jù)時(shí)(此時(shí)主機(jī)發(fā)送數(shù)據(jù)中第9位為0),只有地址相符的從機(jī)可接受數(shù)據(jù),圖3.1DS18B20溫度主程序流程圖3.2讀出溫度子程序流程圖其他從機(jī)對數(shù)據(jù)信息不予理會(huì),從而可以實(shí)現(xiàn)多機(jī)通信集散型控制系統(tǒng)將各控制單元分散到現(xiàn)場各控制點(diǎn)。從機(jī)主程序和串行口中斷服務(wù)程序如圖3.3所示。→ROM操作指令→存儲(chǔ)器操作指令→數(shù)據(jù)傳播。其工作時(shí)序包括初始化時(shí)序、寫時(shí)序和讀時(shí)序。主機(jī)即單片機(jī)首先發(fā)480us---960us的低電平,進(jìn)行復(fù)位,然后釋放總線,之后總線被外部上拉電阻電阻抬高,大概等待15—60us之后,DS18B20發(fā)出60到240us的低電平信號,以示存在,至此初始化結(jié)束。寫“0“的時(shí)候,首先單片機(jī)發(fā)復(fù)位信號,然后發(fā)“0”于是低電平持續(xù)60us就完畢了寫“0”寫“1”的時(shí)候首先單片機(jī)發(fā)復(fù)位信號,持續(xù)時(shí)間不小于1us不不小于15us然后發(fā)“1”持續(xù)50us以上即可。讀時(shí)序也是主機(jī)先發(fā)低電平,然后在15us內(nèi)檢測連接DS18B20的數(shù)據(jù)線的引腳,從而讀得對應(yīng)值。4電路的設(shè)計(jì)本章分析了分布式溫度采集系統(tǒng)的各重要功能模塊的設(shè)計(jì)與實(shí)現(xiàn),詳細(xì)包括溫度測量電路模塊和串口通信電路模塊。4.1溫度測量電路的設(shè)計(jì)溫度測量采用DS18B20數(shù)字式溫度傳感器。由DS18B20構(gòu)成的智能溫度測量裝置由三部分構(gòu)成:DS18B20溫度傳感器、ATMAGE16、顯示模塊。產(chǎn)品的重要技術(shù)指標(biāo):①測量范圍:-55℃~+125℃,②測量精度:0.5℃,③反應(yīng)時(shí)間≤500ms。為了到達(dá)更高的精度,則在對DSl8B20測溫原理進(jìn)行詳細(xì)分析的基礎(chǔ)上,采用直接讀取DSl8B20內(nèi)部暫存寄存器的措施,將DSl8B20的測溫辨別率提高到0.01℃~0.1℃,DSl8B20內(nèi)部暫存寄存器的分布如表4-1所列,其中第7字節(jié)寄存的是當(dāng)溫度寄存器停止增值時(shí)計(jì)數(shù)器l的計(jì)數(shù)剩余值,第8字節(jié)寄存的是每度所對應(yīng)的計(jì)數(shù)值。這樣,就可以通過下面的措施獲得高辨別率的溫度測量成果。表4-1DS18B20內(nèi)部暫存器序號寄存器名稱作用序號寄存器名稱0溫度低字節(jié)以16位補(bǔ)碼形式寄存4、5保留字節(jié)1、21溫度高字節(jié)6計(jì)數(shù)器余值2TH/顧客字節(jié)1寄存溫度上限7計(jì)數(shù)器/℃3HL/顧客字節(jié)2寄存溫度下限8CRC基于DS18B20的溫度測量裝置電路圖如圖4.1所示:圖4.1溫度測量電路溫度傳感器DS18B20將被測環(huán)境溫度轉(zhuǎn)化成帶符號的數(shù)字信號(以十六位補(bǔ)碼形式,占兩個(gè)字節(jié)),傳感器可置于離裝置150米以內(nèi)的任何地方,輸出腳I/O直接與單片機(jī)的P1.1相連,R1為上拉電阻,傳感器采用外部電源供電。ATMAGE16是整個(gè)裝置的控制關(guān)鍵,ATMAGE16內(nèi)帶1K字節(jié)的FlashROM,顧客程序寄存在這里。顯示屏模塊由四位一體的共陽數(shù)碼管和4個(gè)4.2串口通信電路的設(shè)計(jì)為了增長單片機(jī)多機(jī)通信的距離,該部分電路采用RS232原則接口,通信距離可以到達(dá)15米;假如采用RS422或是RS485接口,通信距離會(huì)更遠(yuǎn)。多機(jī)通信接口原理圖見圖1。在數(shù)據(jù)傳播過程中采用的是RS232電平,提高了抗干擾能力。需要在主機(jī)串行接口和從機(jī)串行接口進(jìn)行電平轉(zhuǎn)換:TTL-RS232-TTL。這都是用MAX232接口芯片實(shí)現(xiàn)的,詳細(xì)的電路如圖4.2所示。圖4.2TTL-RS232-TTL電平轉(zhuǎn)換電路通信電路是本設(shè)計(jì)的重要構(gòu)成部分,負(fù)責(zé)溫度數(shù)據(jù)的采集和數(shù)據(jù)的上傳。包括單片機(jī)多機(jī)串口通信電路,PC機(jī)與ATMAGE16的串口通信電路。其中主單片機(jī)ATMAGE16既要和從機(jī)通信,還要負(fù)責(zé)將數(shù)據(jù)通過串口發(fā)送到PC機(jī)上。而ATMAGE16單片機(jī)只有一種串行通信口,這就需要用硬件或是軟件擴(kuò)展一種串行通信口。本設(shè)計(jì)采用一種用單片機(jī)一般I/O口和對應(yīng)軟件實(shí)現(xiàn)串行通信的措施。5分布式溫度采集系統(tǒng)設(shè)計(jì)分布式溫度采集系統(tǒng)設(shè)計(jì)數(shù)字式傳感器一般采用單總線技術(shù)(1-WIREBUS),即在單片機(jī)或計(jì)算機(jī)接口中只用一根導(dǎo)線(輸入/輸出信號線),美國Dallas企業(yè)最新推出的1-WireBus數(shù)字式溫度傳感器DS18B20,與老式的溫度傳感器不一樣,它可以直接讀出被測溫度,并且可根據(jù)實(shí)際規(guī)定通過簡樸的編程實(shí)現(xiàn)9~12位的數(shù)字值讀數(shù)方式,可以分別在93.75ms和750ms內(nèi)將溫度值轉(zhuǎn)化為9位和12位的數(shù)字量,對應(yīng)的可辨別溫度分別為0.5℃、0.25℃、0.125℃和0.0625℃;為實(shí)現(xiàn)與PC機(jī)串口長距離數(shù)據(jù)通信,系統(tǒng)采用了RS232串行接口,通信距離可以到達(dá)15m,假如采用RS422或RS485串行接口可以到達(dá)1000m。串口通信由PC機(jī)與單片機(jī)的通信和單片機(jī)多機(jī)通信構(gòu)成,每個(gè)從機(jī)負(fù)責(zé)溫度的測量然后通過多機(jī)通信把溫度數(shù)據(jù)發(fā)送到主單片機(jī)上,最終PC機(jī)通過VB程序控制串口把主單片機(jī)上的所有溫度數(shù)據(jù)搜集起來。系統(tǒng)框圖如圖5.1系統(tǒng)框圖6ICCAVR制作環(huán)境及簡介本章簡介了ICCAVR的制作環(huán)境,ICCAVR中的文獻(xiàn)類型及其文獻(xiàn)的擴(kuò)展名、附注和擴(kuò)充,并簡介了IAR或其他ANSIC編譯系統(tǒng)的代碼轉(zhuǎn)換。6.1ICCAVR簡介本節(jié)重要簡介了ICCAVR文獻(xiàn)的基本特點(diǎn)、類型、擴(kuò)展名等。6.1.1ImageCraft的ICCAVR簡介ImageCraft的ICCAVR是一種使用符合ANSI原則的C語言來開發(fā)微控制器(MCU)程序的一種工具,它有如下幾種重要特點(diǎn):ICCAVR是一種綜合了編輯器和工程管理器的集成工作環(huán)境(IDE),其可在WINDOWS9X/NT下工作。源文獻(xiàn)所有被組織到工程之中,文獻(xiàn)的編輯和工程的構(gòu)筑也在這個(gè)環(huán)境中完畢。編譯錯(cuò)誤顯示在狀態(tài)窗口中,并且當(dāng)你用鼠標(biāo)單擊編譯錯(cuò)誤時(shí),光標(biāo)會(huì)自動(dòng)跳轉(zhuǎn)到編輯窗口中引起錯(cuò)誤的那一行。這個(gè)工程管理器還能直接產(chǎn)生您但愿得到的可以直接使用的INTELHEX格式文獻(xiàn),INTELHEX格式文獻(xiàn)可被大多數(shù)的編程器所支持,用于下載程序到芯片中去。ICCAVR是一種32位的程序,支持長文獻(xiàn)名。本論文并不簡介通用的C語言語法知識,僅簡介使用ICCAVR所必須具有的知識。6.1.2ICCAVR中的文獻(xiàn)類型及其擴(kuò)展名文獻(xiàn)類型是由它們的擴(kuò)展名決定的,IDE和編譯器可以使用如下幾種類型的文獻(xiàn)。輸入文獻(xiàn):.c擴(kuò)展名----表達(dá)是C語言源文獻(xiàn).s擴(kuò)展名----表達(dá)是匯編語言源文獻(xiàn).h擴(kuò)展名----表達(dá)是C語言的頭文獻(xiàn).prj擴(kuò)展名----表達(dá)是工程文獻(xiàn),這個(gè)文獻(xiàn)保留由IDE所創(chuàng)立和修改的一種工程的有關(guān)信息。.a擴(kuò)展名----庫文獻(xiàn),它可以由幾種庫封裝在一起。libcavr.a是一種包括了原則C的庫和AVR特殊程序調(diào)用的基本庫。假如庫被引用,鏈接器會(huì)將其鏈接到您的模塊或文獻(xiàn)中。您也可以創(chuàng)立或修改一種符合你需要的庫。輸出文獻(xiàn).s對應(yīng)每個(gè)C語言源文獻(xiàn),由編譯器在編譯時(shí)產(chǎn)生的匯編輸出文獻(xiàn)。.o由匯編文獻(xiàn)匯編產(chǎn)生的目的文獻(xiàn),多種目的文獻(xiàn)可以鏈接成一種可執(zhí)行文獻(xiàn)。.hexINTELHEX格式文獻(xiàn),其中包括了程序的機(jī)器代碼。.eepINTELHEX格式文獻(xiàn),包括了EEPROM的初始化數(shù)據(jù)。.cofCOFF格式輸出文獻(xiàn),用于在ATMEL的AvrStudio環(huán)境下進(jìn)行程序調(diào)試。.lst列表文獻(xiàn),在這個(gè)文獻(xiàn)中列舉出了目的代碼對應(yīng)的最終地址。.mp內(nèi)存映象文獻(xiàn)它包括了您程序中有關(guān)符號及其所占內(nèi)存大小的信息.cmdNoICE2.xx調(diào)試命令文獻(xiàn)。.noiNoICE3.xx調(diào)試命令文獻(xiàn)。.dbgImageCraft調(diào)試命令文獻(xiàn)。6.1.3附注和擴(kuò)充#pragma(編譯附注)這個(gè)編譯器接受如下附注:#pragmainterrupt_handler<func1>:<vectornumber><func2>:<vector>...這個(gè)附注必須在函數(shù)之前定義,它闡明函數(shù)func1、func2是中斷操作函數(shù),因此編譯器在中斷操作函數(shù)中生成中斷返回指令reti來替代一般返回指令ret,并且保留和恢復(fù)函數(shù)所使用的所有寄存器;同樣編譯器根據(jù)中斷向量號vectornumber生成中斷向量地址。#pragmactask<func1><func2>...這個(gè)附注指定了函數(shù)不生成揮發(fā)寄存器來保留和恢復(fù)代碼,它的經(jīng)典應(yīng)用是在RTOS實(shí)時(shí)操作系統(tǒng)中讓RTOS核直接管理寄存器。#pragmatext:<name>變化代碼段名稱,使其與命令行選項(xiàng)相適應(yīng)。#pragmadata:<data>變化數(shù)據(jù)段名稱,使其與命令行選項(xiàng)相適應(yīng)。這個(gè)附注在分派全局變量至EEPROM中時(shí)必須被使用。#pragmaabs_address:<address>函數(shù)與全局?jǐn)?shù)據(jù)不使用浮動(dòng)定位(重定位),而是從<address>開始分派絕對地址。這在訪問中斷向量和其他硬件項(xiàng)目時(shí)尤其有用。#pragmaend_abs_address結(jié)束絕對定位,使目的程序使用正常浮動(dòng)定位。C++注釋假如你選擇了編譯擴(kuò)充(Project->Options->Compiler),你可以在你的源代碼中使用C++的//類型的注釋。二進(jìn)制常數(shù)假如你選擇了編譯擴(kuò)充(Project->Options->Compiler),你可以使用0b<1|0>*來指定二進(jìn)制常數(shù),例如0b10101等于十進(jìn)制數(shù)21。在線匯編你可以使用asm("string")函數(shù)來指定在線匯編代碼。6.1.4代碼轉(zhuǎn)換IAR或其他ANSIC編譯系統(tǒng)的代碼轉(zhuǎn)換IARC編譯器作為應(yīng)用于AVR的第一種C編譯器,它有十分豐富的源代碼。當(dāng)你從IAR編譯系統(tǒng)轉(zhuǎn)換到ImageCraft編譯系統(tǒng)時(shí),絕大多數(shù)符合ANSIC原則的程序代碼不需要轉(zhuǎn)換,IARC中IO寄存器的定義與ICCAVR也是相似的。中斷操作描述,ICCAVR使用pragma附注描述中斷操作函數(shù),而IAR引入了語法擴(kuò)充(interrupt關(guān)鍵字),下面是一種對照:在ICCAVR中:#pragmainterrupt_handlerfunc:4//4是這個(gè)中斷的向量號,func為中斷處理函數(shù)名稱,ICCAVR可以使多種中斷向量共用一種中斷處理函數(shù)。在IAR中:interrupt[vector_name]func()//vector_name是某一種中斷向量的名稱,IARC的中斷向量地址使用中斷名稱來替代,以增長程序的可讀性。擴(kuò)充關(guān)鍵字IAR引入flash關(guān)鍵字將項(xiàng)目分派進(jìn)入程序存貯空間(FLASH存貯器),ICCAVR使用const關(guān)鍵字來到達(dá)相似的目的。過程調(diào)用轉(zhuǎn)換在兩個(gè)編譯系統(tǒng)之間函數(shù)參數(shù)傳遞使用的寄存器是不一樣的,這僅影響手工寫的匯編函數(shù)。在線匯編、宏等,IAR不支持在線匯編符號,而ICCAVR支持在線匯編。6.2ICCAVR向?qū)ё阅銌?dòng)IDE后,首先從Project菜單系統(tǒng)選擇Open命令,進(jìn)入\icc\examples.avr目錄并且選擇并打開“l(fā)ed”工程,工程管理器顯示在這個(gè)工程中只有一種文獻(xiàn)led.c。然后從Project菜單中選擇Options命令打動(dòng)工程編譯選項(xiàng),在"Target"標(biāo)號下選擇目的處理器。然后從Project菜單中選擇MakeProject命令,IDE將調(diào)用編譯器編譯這個(gè)工程文獻(xiàn),并且在狀態(tài)窗口中顯示所有的信息。6.3ICCAVR的IDE環(huán)境6.3.1編譯一種單獨(dú)的文獻(xiàn)正常建立一種輸出文獻(xiàn)的次序是,你首先應(yīng)當(dāng)建立一種工程文獻(xiàn)并且定義屬于這個(gè)工程的所有文獻(xiàn)。然而,我們有時(shí)也需要將一種文獻(xiàn)單獨(dú)地編譯為目的文獻(xiàn)或最終的輸出文獻(xiàn)。這時(shí)可以這樣操作:從IDE菜單“File”中選擇“CompileFile...”命令,來執(zhí)行“toObject”和“toOutput”中的任意一種。當(dāng)你調(diào)用這個(gè)命令時(shí),文獻(xiàn)應(yīng)當(dāng)是打開的并且在編輯窗口中可以編輯的。編譯一種文獻(xiàn)為目的文獻(xiàn)(toObject),對檢查語法錯(cuò)誤和編譯一種新的啟動(dòng)文獻(xiàn)是很有用的。編譯一種文獻(xiàn)為輸出文獻(xiàn)(toOutput),對較小的并且是一種文獻(xiàn)的程序較為有用。6.3.2創(chuàng)立一種新的工程為創(chuàng)立一種新的工程,從菜單“Project”中選擇“New”命令,IDE會(huì)彈出一種對話框,在對話框中你可以指定工程的名稱,這也是你的輸出文獻(xiàn)的名稱。假如你使用某些已經(jīng)建立的源文獻(xiàn),你可在菜單“Project”中選擇“AddFile(s)”命令。此外,你可以在菜單“File”中選擇“New”命令來建立一種新的源文獻(xiàn)來輸入你的代碼,你可以在菜單“File”中選擇“Save”或“SaveAs”命令來保留文獻(xiàn)。然后你可以象上面所述調(diào)用“AddFile(s)”命令將文獻(xiàn)加入到工程中,也可在目前編輯窗口中單擊鼠標(biāo)右鍵選擇“AddtoProject”將文獻(xiàn)加入已打開的工程列表中。一般你輸出源文獻(xiàn)在工程同一種目錄中,但也可不作這樣規(guī)定。工程的編譯選項(xiàng)使用菜單中“Project”中的“Options”命令。6.3.3工程管理工程管理容許你將多種文獻(xiàn)組織進(jìn)同一種工程,并且定義它們的編譯選項(xiàng),這個(gè)特性容許你將工程分解成許多小的模塊。當(dāng)你處理工程構(gòu)筑時(shí),只有一種文獻(xiàn)被修改和重新編譯,假如一種頭文獻(xiàn)作了修改,當(dāng)你編譯包括這個(gè)頭文獻(xiàn)的源文獻(xiàn)時(shí),IDE會(huì)自動(dòng)重新編譯已經(jīng)變化的頭文獻(xiàn)。一種源文獻(xiàn)可以寫成C或匯編格式的任意一種。C文獻(xiàn)必須使
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 供應(yīng)商采購合同協(xié)議
- 現(xiàn)代農(nóng)業(yè)種植技術(shù)操作手冊
- 建材供應(yīng)居間協(xié)議合同
- 互聯(lián)網(wǎng)企業(yè)員工培訓(xùn)服務(wù)合同
- 總工程師聘用合同
- 短期個(gè)人借款合同范本與短期臨時(shí)工合同7篇
- 2023年高考全國乙卷數(shù)學(xué)(文)真題(原卷版)
- XX學(xué)校民主生活會(huì)個(gè)人剖析材料模板2
- 裝修提升工程合同范本
- 原水供水協(xié)議合同范本
- 無人機(jī)在應(yīng)急救災(zāi)領(lǐng)域下的應(yīng)用
- 中建項(xiàng)目現(xiàn)金流管理培訓(xùn)
- 事故隱患內(nèi)部舉報(bào)獎(jiǎng)勵(lì)制度
- JGJ162-2014建筑施工模板安全技術(shù)規(guī)范-20211102195200
- 現(xiàn)代家政導(dǎo)論-課件 2.2家庭制度認(rèn)知
- 2024年天津市專業(yè)技術(shù)人員繼續(xù)教育網(wǎng)公需課答案
- 重度哮喘診斷與處理中國專家共識(2024版)解讀
- 社會(huì)變革中的民事訴訟讀書筆記
- 《創(chuàng)傷失血性休克中國急診專家共識(2023)》解讀課件
- 2024年全國體育單招英語考卷和答案
- 2024年山東新華書店集團(tuán)限公司臨沂市縣分公司招聘錄取人員(高頻重點(diǎn)提升專題訓(xùn)練)共500題附帶答案詳解
評論
0/150
提交評論