九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

基于單片機(jī)ATMAGE16設(shè)計(jì)的實(shí)時溫度采集儀電氣自動化畢業(yè)論文

上傳人:1777****777 文檔編號:37418610 上傳時間:2021-11-03 格式:DOC 頁數(shù):27 大小:290.52KB
收藏 版權(quán)申訴 舉報(bào) 下載
基于單片機(jī)ATMAGE16設(shè)計(jì)的實(shí)時溫度采集儀電氣自動化畢業(yè)論文_第1頁
第1頁 / 共27頁
基于單片機(jī)ATMAGE16設(shè)計(jì)的實(shí)時溫度采集儀電氣自動化畢業(yè)論文_第2頁
第2頁 / 共27頁
基于單片機(jī)ATMAGE16設(shè)計(jì)的實(shí)時溫度采集儀電氣自動化畢業(yè)論文_第3頁
第3頁 / 共27頁

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《基于單片機(jī)ATMAGE16設(shè)計(jì)的實(shí)時溫度采集儀電氣自動化畢業(yè)論文》由會員分享,可在線閱讀,更多相關(guān)《基于單片機(jī)ATMAGE16設(shè)計(jì)的實(shí)時溫度采集儀電氣自動化畢業(yè)論文(27頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。

1、基于單片機(jī)ATMAGE16設(shè)計(jì)的實(shí)時溫度采集儀 目 錄 1 緒論 1 1.1 課題背景 1 1.2 設(shè)計(jì)目的及系統(tǒng)功能 2 2 ATMAGE16特性 3 2.1 ATMAGE16產(chǎn)品特性 3 2.2 引腳配置 4 3 DS18B20的設(shè)計(jì) 7 3.1 總體通信流程及通信協(xié)議 7 3.2 DS18B20溫度測量軟件的設(shè)計(jì) 9 3.3 多機(jī)通信軟件的設(shè)計(jì) 9 3.4 DS18B20工作時序問題 11 4 電路的設(shè)計(jì) 12 4.1 溫度測量電路的設(shè)計(jì) 12 4.2 串口通信電路的設(shè)計(jì) 13 5 分布式溫度采集系統(tǒng)設(shè)計(jì) 15 6 I

2、CCAVR制作環(huán)境及介紹 16 6.1 ICCAVR 介紹 16 6.2 ICCAVR 向?qū)?19 6.3 ICCAVR 的IDE 環(huán)境 19 結(jié) 論 21 參考文獻(xiàn) 22 致 謝 23 附件1:總系統(tǒng)的原理圖如下: 24 附件2:單片機(jī)ATMAGE16控制DS18B20的程序: 25 1 緒論 自從1976年Intel公司推出第一批單片機(jī)以來,80年代單片機(jī)技術(shù)進(jìn)入快速發(fā)展時期,近年來,隨著大規(guī)模集成電路的發(fā)展,單片機(jī)繼續(xù)朝快速、高性能方向發(fā)展,從4位、8位單片機(jī)發(fā)展到16位、32位單片機(jī)。單片機(jī)主要用于控制,它的應(yīng)用領(lǐng)域遍及各行各業(yè),大到航天飛機(jī),小至

3、日常生活中的冰箱、彩電,單片機(jī)都可以大顯其能。單片機(jī)在國內(nèi)的三大領(lǐng)域中應(yīng)用得十分廣泛:第一是家用電器業(yè),例如全自動洗衣機(jī)、智能玩具;第二是通訊業(yè),包括電話、手機(jī)和BP機(jī)等等;第三是儀器儀表和計(jì)算機(jī)外設(shè)制造,例如軟盤、硬盤、收銀機(jī)、電表。除了上述傳統(tǒng)領(lǐng)域外,汽車、電子工業(yè)在國外也是單片機(jī)應(yīng)用十分廣泛的一個領(lǐng)域。它成本低、集成度高、功耗低、控制功能多能靈活的組裝成各種智能控制裝置,由它構(gòu)成的智能儀表解決了長期以來測量儀器中的誤差的修正、線性處理等問題。單片機(jī)將微處理器、存儲器、定時/計(jì)數(shù)器、I/O接口電路等集成在一個芯片上的大規(guī)模集成電路,本身即是一個小型化的微機(jī)系統(tǒng)。單片機(jī)技術(shù)與傳感與測量技術(shù)、

4、信號與系統(tǒng)分析技術(shù)、電路設(shè)計(jì)技術(shù)、可編程邏輯應(yīng)用技術(shù)、微機(jī)接口技術(shù)、數(shù)據(jù)庫技術(shù)以及數(shù)據(jù)結(jié)構(gòu)、計(jì)算機(jī)操作系統(tǒng)、匯編語言程序設(shè)計(jì)、高級語言程序設(shè)計(jì)、軟件工程、數(shù)據(jù)網(wǎng)絡(luò)通信、數(shù)字信號處理、自動控制、誤差分析、儀器儀表結(jié)構(gòu)設(shè)計(jì)和制造工藝等的結(jié)合,使得單片機(jī)的應(yīng)用非常廣泛。同時,單片機(jī)具有較強(qiáng)的管理功能。采用單片機(jī)對整個測量電路進(jìn)行管理和控制,使得整個系統(tǒng)智能化、功耗低、使用電子元件較少、內(nèi)部配線少、成本低,制造、安裝、調(diào)試及維修方便。 目前單片機(jī)滲透到我們生活的各個領(lǐng)域,幾乎很難找到哪個領(lǐng)域沒有單片機(jī)的蹤跡。導(dǎo)彈的導(dǎo)航裝置,飛機(jī)上各種儀表的控制,計(jì)算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動化過程的實(shí)時控制和

5、數(shù)據(jù)處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統(tǒng),錄象機(jī)、攝象機(jī)、全自動洗衣機(jī)的控制,以及程控玩具、電子寵物等等,這些都離不開單片機(jī)。更不用說自動控制領(lǐng)域的機(jī)器人、智能儀表、醫(yī)療器械了。 1.1 課題背景 分布式溫度采集系統(tǒng)廣泛應(yīng)用在使用了中央空調(diào)的大型商場、廠房、辦公大樓等大型建筑內(nèi)。本課題主要用溫度傳感器對環(huán)境溫度實(shí)施實(shí)時監(jiān)測,各結(jié)點(diǎn)控制單元可將有關(guān)信息上傳給計(jì)算機(jī),本課題研究主要解決的問題為分布式控制結(jié)構(gòu)設(shè)計(jì)、多單片機(jī)串行通信、溫度的采集與處理。 本設(shè)計(jì)是基于單片機(jī)ATMAGE16設(shè)計(jì)的實(shí)時溫度采集儀,采用DS18B20可以采集多路溫度數(shù)據(jù)(本設(shè)計(jì)只用了2路),同時

6、實(shí)時顯示所采集到的溫度值。在傳統(tǒng)的溫度測量系統(tǒng)設(shè)計(jì)中,往往采用模擬技術(shù)進(jìn)行設(shè)計(jì),這樣就不可避免地遇到諸如引線誤差補(bǔ)償、多點(diǎn)測量中的切換誤差和信號調(diào)理電路的誤差等問題;而其中某一環(huán)節(jié)處理不當(dāng),就可能造成整個系統(tǒng)性能的下降。隨著現(xiàn)代科學(xué)技術(shù)的飛速發(fā)展,特別是大規(guī)模集成電路設(shè)計(jì)技術(shù)的發(fā)展,微型化、集成化、數(shù)字化正成為傳感器發(fā)展的一個重要方向。美國Dallas半導(dǎo)體公司推出的數(shù)字溫度傳感器DSl8B20,具有獨(dú)特的單總線接口,僅需要占用一個通用I/O端口即可完成與微處理器的通信;在-10~+85℃溫度范圍內(nèi)具有O.01℃精度;用戶可編程設(shè)定9~12位的分辨率。以上特性使得DSl8B20非常適用于構(gòu)建高

7、精度、多點(diǎn)溫度測量系統(tǒng)。 1.2 設(shè)計(jì)目的及系統(tǒng)功能 本設(shè)計(jì)的目的是以單片機(jī)為核心設(shè)計(jì)出一個分布式溫度采集系統(tǒng)。在傳統(tǒng)測量系統(tǒng)中,傳感器與計(jì)算機(jī)接口的連接是通過若干條導(dǎo)線連接。當(dāng)傳感器數(shù)量較多時,尤其是信號線的長距離傳輸時,相互容易產(chǎn)生干擾。一個室內(nèi)多點(diǎn)溫度測量中,系統(tǒng)的接線會非常多,導(dǎo)線往往不易鋪設(shè),使得測量工作非常困難。采用總線結(jié)構(gòu)數(shù)字式傳感器,配合單片機(jī)及PC機(jī)串口進(jìn)行長距離數(shù)據(jù)通信,則可以很容易解決這個問題,該系統(tǒng)最多可以檢測256 路溫度信號,在室內(nèi)多點(diǎn)溫度測量控制中能達(dá)到很好的效果。通過本課題設(shè)計(jì),綜合運(yùn)用單片機(jī)及接口技術(shù)、微機(jī)原理、通信協(xié)議,鍛煉動手操作能力,綜合

8、運(yùn)用能力,學(xué)習(xí)論文的寫作方法和步驟。 設(shè)計(jì)的溫度控制系統(tǒng)有以下功能及特點(diǎn): (a)實(shí)現(xiàn)在一條數(shù)據(jù)總線上接多個DS18B20器件; (b)測溫范圍0℃~99℃; (c)溫度顯示:采用2個4位數(shù)碼管,顯示采樣溫度值; 并在電腦上一同顯示; (d)精度0.01℃。 2 ATMAGE16特性 本章介紹了ATMAGE16的產(chǎn)品特性和ATmega16的結(jié)構(gòu)。由于其先進(jìn)的指令集以及單時鐘周期指令執(zhí)行時間,ATmega16 的數(shù)據(jù)吞吐率高達(dá) 1MIPS MHz,從而可以緩減系統(tǒng)在功耗和處理速度之間的矛盾。 2.1 ATMAGE16產(chǎn)品特性 1、 高性能、低功耗的 8 位 AV

9、R 微處理器 2、 先進(jìn)的RISC結(jié)構(gòu) (a)131 條指令 (b)32 個8 位通用工作寄存器 (c)全靜態(tài)工作 (d)工作于16 MHz 時性能高達(dá)16 MIPS (e)只需兩個時鐘周期的硬件乘法器 (f)大多數(shù)指令執(zhí)行時間為單個時鐘周期 3、 非易失性程序和數(shù)據(jù)存儲器 (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)行編程以

10、實(shí)現(xiàn)用戶程序的加密 4、 JTAG 接口( 與IEEE 1149.1標(biāo)準(zhǔn)兼容 ) (a)符合JTAG標(biāo)準(zhǔn)的邊界掃描功能 (b)支持?jǐn)U展的片內(nèi)調(diào)試功能 (c)通過JTAG接口實(shí)現(xiàn)對 Flash、EEPROM、熔絲位和鎖定位的編程 5、 外設(shè)特點(diǎn) (a)兩個具有獨(dú)立預(yù)分頻器和比較器功能的8 位定時器/計(jì)數(shù) (b)一個具有預(yù)分頻器、比較功能和捕捉功能的16 位定時器/計(jì)數(shù) (c)具有獨(dú)立振蕩器的實(shí)時計(jì)數(shù)器RTC (d)四通道PWM (e)8路 10 位ADC8 個單端通道TQFP 封裝的7 個差分通道2個具有可編程增益(1x, 10x, 或200x)的差分通道 (f)面向字節(jié)的

11、兩線接口 (g) 兩個可編程的串行USART (h) 可工作于主機(jī)/從機(jī)模式 SPI串行接口 (i) 具有獨(dú)立片內(nèi)振蕩器的可編程看門狗定時器 (j) 片內(nèi)模擬比較器 6、 特殊的處理器特點(diǎn) (a)上電復(fù)位以及可編程的掉電檢測 (b)片內(nèi)經(jīng)過標(biāo)定的RC 振蕩器 (c)片內(nèi)/片外中斷 (d)6種睡眠模式 : 空 ADC噪聲抑制模式、省電模式、掉電模式、Standby 、式以擴(kuò)展的Standby 模式 7、 I/O和封裝 (a)32 個可編程的I/O口 (b)40 引腳PDIP封裝 , 44 引腳 TQFP 封裝,與 44 引腳MLF封裝 8、 工作電壓: (a)ATme

12、ga16L:2.7 - 5.5V (b)ATmega16:4.5 - 5.5V 9、速度等級 (a)0 - 8 MHz ATmega16L (b)0 - 16 MHz ATmega16 10、 ATmega16L在 1 MHz, 3V, 25 C時的功耗 (a)正常模式: 1.1 mA (b)空 : 0.35 mA (c)掉電模式: < 1 μA 2.2 引腳配置 ATmega16是基于增強(qiáng)的AVRRISC結(jié)構(gòu)的低功耗8位CMOS微控制器。由于其先進(jìn)的指令集以及單時鐘周期指令執(zhí)行時間,ATmega16 的數(shù)據(jù)吞吐率高達(dá) 1MIPS MHz,從而可以緩減系統(tǒng)在功耗和處理速度

13、之間的矛盾。ATMAGE16引腳分布如圖2.1所示。 AVR 內(nèi)核具有豐富的指令集和 32 個通用工作寄存器。所有的寄存器都直接與算邏單元(ALU) 相連接,使得一條指令可以在一個時鐘周期內(nèi)同時訪問兩個獨(dú)立的寄存器。這種結(jié)構(gòu)大大提高了代碼效率,并且具有比普通的 CISC微控制器最高至 10倍的數(shù)據(jù)吞吐率。ATmega16 有如下特點(diǎn) 16K字節(jié)的系統(tǒng)內(nèi)可編程Flash(具有同時讀寫的能力,即RWW), 圖2.1 ATMAGE16引腳分布 AVR 內(nèi)核具有豐富的指令集和 32 個通用工作寄存器。所有的寄存器都直接與算邏單元(ALU) 相連接,使得一條指令可以在一個時鐘周期內(nèi)同時訪問兩個

14、獨(dú)立的寄存器。這種結(jié)構(gòu)大大提高了代碼效率,并且具有比普通的 CISC微控制器最高至 10倍的數(shù)據(jù)吞吐率。ATmega16 有如下特點(diǎn) 16K字節(jié)的系統(tǒng)內(nèi)可編程Flash(具有同時讀寫的能力,即RWW),512 字節(jié) EEPROM,1K字節(jié) SRAM,32 個通用I/O 口線,32 個通用工作寄存器,用于邊界掃描的 JTAG 接口,支持片內(nèi)調(diào)試與編程,三個具有比較模式的靈活的定時器/計(jì)數(shù)(T/C),片內(nèi)/外中斷,可編程 USART,有起始條件檢測器的通用串行接口,8路10位具有可選差分輸入級可編程增益 (TQFP 封裝 ) 的 ADC ,具有片內(nèi)振蕩器的可編程看門狗定時器,一個 SPI串行端口,

15、以及六個可以通過軟件進(jìn)行選擇的省電模式。 工作于空閑模式時 CPU 停止工作,而 USART、兩線接口、 A/D 轉(zhuǎn)換器、 SRAM、 T/C、 SPI 端口以及中斷系統(tǒng)繼續(xù)工作;掉電模式時晶體振蕩器停止振蕩,所有功能除了中斷和硬件復(fù)位之外都停止工作;在省電模式下,異步定時器繼續(xù)運(yùn)行,允許用戶保持一個時間基準(zhǔn),而其余功能模塊處于休眠狀態(tài);ADC噪聲抑制模式時終止CPU 和除了異步定時器與ADC以外所有 I/O 模塊的工作,以降低 ADC 轉(zhuǎn)換時的開關(guān)噪聲; Standby 模式下只有晶體或諧振振蕩器運(yùn)行,其余功能模塊處于休眠狀態(tài),使得器件只消耗極少的電流,同時具有快速啟動能力;擴(kuò)展 Stand

16、by 模式下則允許振蕩器和異步定時器繼續(xù)工作。本芯片是以 Atmel 高密度非易失性存儲器技術(shù)生產(chǎn)的。片內(nèi) ISP Flash 允許程序存儲器通過 ISP 串行接口,或者通用編程器進(jìn)行編程,也可以通過運(yùn)行于 AVR 內(nèi)核之中的引導(dǎo)程序進(jìn)行編程。引導(dǎo)程序可以使用任意接口將應(yīng)用程序下載到應(yīng)用Flash存儲區(qū)(ApplicationFlash Memory)。在更新應(yīng)用Flash存儲區(qū)時引導(dǎo)Flash區(qū)(Boot Flash Memory)的程序繼續(xù)運(yùn)行,實(shí)現(xiàn)了 RWW 操作。 通過 8 位 RISC CPU 與系統(tǒng)內(nèi)可編程的 Flash 集成在一個芯片內(nèi), ATmega16 成為一個功能強(qiáng)大的單片

17、機(jī),為許多嵌入式控制應(yīng)用提供了靈活而低成本的解決方案。 3 DS18B20的設(shè)計(jì) 本章介紹了系統(tǒng)軟件設(shè)計(jì),并具體介紹了實(shí)現(xiàn)和調(diào)試的方法,以及分布式溫度采集系統(tǒng)的通信流程和DS18B20溫度測量軟件的設(shè)計(jì)思路、DS18B20工作的時序問題。 3.1 總體通信流程及通信協(xié)議 總體通信流程體現(xiàn)在PC機(jī),單片機(jī)主機(jī)及各從機(jī)的通信,信號接受及發(fā)送,這個設(shè)計(jì)中,通信協(xié)議是一個非常重要也很復(fù)雜的部分,在由PC 機(jī)與單片機(jī)組成的系統(tǒng)中,常要涉及通信問題,如果沒有統(tǒng)一的通信協(xié)議,PC機(jī)與單片機(jī)之間的信息傳遞就無法識別。 通信協(xié)議是指通信各方事前約定規(guī)則,我們可以簡單地理解為各計(jì)算機(jī)之間進(jìn)行相互會話

18、所使用的共同語言.PC機(jī)與單片機(jī)在進(jìn)行通信時,必須使用的通信協(xié)議。 首先,在設(shè)計(jì)中自定義幾個數(shù)據(jù)通信協(xié)議,如下問提到的“a”、“b”、“c”、“d”、“g”、“h”。這些協(xié)議一旦定義,在后面的執(zhí)行過程中就代表了固定的含義,不再改變,PC機(jī)、單片機(jī)、從機(jī)都靠識別這個協(xié)議來執(zhí)行程序,發(fā)送一個字節(jié)的數(shù)據(jù),接受幾個字節(jié)的數(shù)據(jù),所有的數(shù)據(jù)協(xié)議全都建立在這2個操作方法上。 本設(shè)計(jì)中自定義“a”為PC機(jī)與單片機(jī)主機(jī)間的數(shù)據(jù)協(xié)議,意思為要求主機(jī)發(fā)送一號從機(jī)的溫度給PC機(jī); 自定義“b”為PC機(jī)與單片機(jī)主機(jī)間的數(shù)據(jù)協(xié)議,意思為要求主機(jī)發(fā)送二號從機(jī)的溫度給PC機(jī); 自定義“c”為從機(jī)與主機(jī)間的數(shù)據(jù)協(xié)議,它

19、代表從機(jī)向主機(jī)發(fā)送完四位當(dāng)前采集的溫度,這里一號從機(jī)和二號從機(jī)采集的溫度,都定義為“c”; 自定義“d”為PC機(jī)與單片機(jī)主機(jī)之間的數(shù)據(jù)協(xié)議,意思為開始和完成命令的信號; 自定義“g”為一號從機(jī)和單片機(jī)主機(jī)之間的數(shù)據(jù)協(xié)議,意思為主機(jī)表示要采集一號從機(jī)的溫度數(shù)據(jù),一號從機(jī)要求單片機(jī)主機(jī)準(zhǔn)備接收; 自定義“h”為二號從機(jī)和單片機(jī)主機(jī)之間的數(shù)據(jù)協(xié)議,意思為主機(jī)表示要采集二號從機(jī)的溫度數(shù)據(jù),二號從機(jī)要求單片機(jī)主機(jī)準(zhǔn)備接收。 具體流程如下: 1、PC機(jī)向單片機(jī)主機(jī)發(fā)送“d”: 這步是流程的開始,PC機(jī)向單片機(jī)主機(jī)發(fā)送數(shù)據(jù)協(xié)議,要求主機(jī)把接收的溫度發(fā)送給PC機(jī)顯示; 2、單片機(jī)主機(jī)向一號從機(jī)發(fā)

20、送“g”: 單片機(jī)主機(jī)在接收到PC機(jī)發(fā)送的“d”信號后,會立即向一號從機(jī)發(fā)送“g”,要求一號從機(jī)采集溫度并且將溫度發(fā)回單片機(jī)主機(jī); 3、一號從機(jī)回發(fā)“g”: 一號從機(jī)接收到單片機(jī)主機(jī)的命令后,會立即向單片機(jī)主機(jī)回發(fā)信號,要求單片機(jī)主機(jī)做好接收準(zhǔn)備; 4、向主機(jī)發(fā)送四位當(dāng)前采集的溫度,并回發(fā)發(fā)送完成標(biāo)記“c”; 一號從機(jī)回發(fā)信號后,向主機(jī)發(fā)送四位采集的溫度,這個溫度在前文已提到標(biāo)記為“c”; 5、主機(jī)發(fā)送“h”給2號從機(jī): 主機(jī)在接收到一號從機(jī)發(fā)來的“c”命令后,會立刻發(fā)送“h”信號給二號從機(jī),表示要采集二號從機(jī)的數(shù)據(jù); 6、2號從機(jī)回發(fā)“h”: 二號從機(jī)接收到單片機(jī)主機(jī)的命令

21、后,會立即向單片機(jī)主機(jī)回發(fā)信號,要求單片機(jī)主機(jī)做好接收準(zhǔn)備; 7、向主機(jī)發(fā)送四位當(dāng)前采集的溫度,并回發(fā)發(fā)送完成標(biāo)記“c”: 二號從機(jī)向單片機(jī)主機(jī)回發(fā)完信號后,向主機(jī)發(fā)送四位當(dāng)前采集的溫度,這個溫度標(biāo)記為“c”; 8、主機(jī)發(fā)送“d”給PC機(jī): 單片機(jī)主機(jī)在接收到二號從機(jī)發(fā)送來的信號后,立刻發(fā)送信號給PC機(jī),表示完成PC機(jī)的前一指令; 9、PC發(fā)送“a”給主機(jī): PC機(jī)在接收到單片機(jī)主機(jī)發(fā)送的信號后,發(fā)送新一個指令給單片機(jī)主機(jī),要求單片機(jī)主機(jī)發(fā)送一號從機(jī)采集的溫度數(shù)據(jù); 10、主機(jī)將一號從機(jī)溫度數(shù)據(jù)發(fā)送給PC機(jī): 單片機(jī)主機(jī)接收到PC機(jī)的命令后將一號從機(jī)發(fā)送過來的四位當(dāng)前溫度數(shù)據(jù)

22、轉(zhuǎn)換成ASCII碼后,發(fā)送給PC機(jī),因?yàn)镻C機(jī)只能讀取ASCII碼; 11、PC機(jī)發(fā)送“b”給主機(jī): PC機(jī)接收到單片機(jī)主機(jī)發(fā)送的即時溫度后會立即發(fā)送另一指令給單片機(jī)主機(jī),要求單片機(jī)主機(jī)發(fā)送二號從機(jī)采集的溫度數(shù)據(jù); 12、主機(jī)將二號從機(jī)溫度數(shù)據(jù)發(fā)送給PC機(jī),發(fā)送完成后,返回(1): 單片機(jī)主機(jī)接收到PC機(jī)的命令后將二號從機(jī)發(fā)送過來的四位當(dāng)前溫度數(shù)據(jù)同樣也轉(zhuǎn)換成ASCII碼后,發(fā)送給PC機(jī)。此時一個完整過程結(jié)束,將返回(1)開始另一輪采集。 3.2 DS18B20溫度測量軟件的設(shè)計(jì) 由于DS18B20 單線通信功能是分時完成的,它有嚴(yán)格的時隙概念,因此讀寫時序很重要。系統(tǒng)對DS18

23、B20的各種操作必須按協(xié)議進(jìn)行。操作協(xié)議為:初始化DS18B20(發(fā)復(fù)位脈沖)→發(fā)ROM 功能命令→發(fā)存儲器操作命令→處理數(shù)據(jù)。主機(jī)控制DS18B20完成溫度轉(zhuǎn)換的程序必須經(jīng)過3個步驟:初始化、ROM操作指令、存儲器操作指令。假設(shè)單片機(jī)系統(tǒng)所用的晶振頻率為12MHz,根據(jù)DS18B20的初始化時序、寫時序和讀時序,分別編寫3個子程序:INIT為初始化子程序,WRITE 為寫(命令或數(shù)據(jù))子程序,READ為讀數(shù)據(jù)子程序,所有的數(shù)據(jù)讀寫均由最低位開始。主程序的主要功能是負(fù)責(zé)溫度的實(shí)時顯示、讀出并處理DS18B20的測量溫度值,溫度測量每1s 進(jìn)行一次,流程圖如圖3.1所示 。 讀出溫度子程序的主

24、要功能是讀出RAM中的9個字節(jié),在讀出時需進(jìn)行CRC 校驗(yàn),校驗(yàn)有錯時不進(jìn)行溫度數(shù)據(jù)的改寫,其程序流程圖如圖3.2所示。 從DS18B20讀取出的二進(jìn)制值必須先轉(zhuǎn)換成十進(jìn)制值,才能用于字符的顯示。因?yàn)镈S18B20的轉(zhuǎn)換精度為9~12 位可選,為了提高精度采用12位。在采用12位轉(zhuǎn)換精度時,溫度寄存器里的值是以0.0625為步進(jìn)的,即溫度值為溫度寄存器里的二進(jìn)制值乘以0.0625,就是實(shí)際的十進(jìn)制溫度值。 3.3 多機(jī)通信軟件的設(shè)計(jì) ATMAGE16單片機(jī)有串行發(fā)送緩沖器/接收緩沖器(SBUF)、串行口控制寄存器(SCON)、特殊功能寄存器(PCON)。通過設(shè)置SCON可以有四種工作方

25、式,其中工作方式2、3 適用于多機(jī)通信。在串行通信前,通過程序預(yù)先將各從機(jī)串行口設(shè)置為方式2或方式3,并使SM2和REN(允許串行接收控制位)為1,允許串行口中斷。主機(jī)與從機(jī)通信時,將SM2置0,準(zhǔn)備接收數(shù)據(jù),否則維持SM2為1,這樣在主機(jī)發(fā)送數(shù)據(jù)時(此時主機(jī)發(fā)送數(shù)據(jù)中第9 位為0),只有地址相符的從機(jī)可接收數(shù)據(jù), 圖3.1 DS18B20溫度主程序流程圖 圖3.2 讀出溫度子程序流程圖 其余從機(jī)對數(shù)據(jù)信息不予理睬,從而可以實(shí)現(xiàn)多機(jī)通信集散型控制系統(tǒng)將各控制單元分散到現(xiàn)場各控制點(diǎn)。從機(jī)主程序和串行口中斷服務(wù)程序如圖3.3所示。 PC 機(jī)與單片機(jī)的串口

26、通信中,ATMAGE16單片機(jī)的Pl.3和Pl.4口分別模擬串行通信的發(fā)送和接收端,其接口程序主要由發(fā)送子程序和接收子程序組成。通信速率9600bps,幀格式為N.8.l。發(fā)送時,先發(fā)送一個起始位(低電平),接著 按低位在先的順序發(fā)送8位數(shù)據(jù),最后發(fā)送停止位。接收時,先判斷P1.4接收端口是否有起始低電平出現(xiàn),如有則按低位在先的順序接收8位數(shù),最后判斷P1.4 口是否有停止高電平出現(xiàn),如有則完成一個數(shù)據(jù)接收,否則繼續(xù)等待。其中軟件編寫要嚴(yán)格按照異步通信的時序進(jìn)行。 圖3.3 從機(jī)主程序和串行口中斷服務(wù)程序 3.4 DS18B20工作時序問題 DS18B20的一線工作協(xié)議流程是:初

27、始化→ROM操作指令→存儲器操作指令→數(shù)據(jù)傳輸。其工作時序包括初始化時序、寫時序和讀時序。 主機(jī)即單片機(jī)首先發(fā)480us---960us的低電平,進(jìn)行復(fù)位,然后釋放總線,之后總線被外部上拉電阻電阻抬高,大約等待15—60us之后,DS18B20發(fā)出60到240us的低電平信號,以示存在,至此初始化結(jié)束。 寫“0“的時候,首先單片機(jī)發(fā)復(fù)位信號,然后發(fā)“0”于是低電平持續(xù)60us就完成了寫“0”寫“1”的時候首先單片機(jī)發(fā)復(fù)位信號,持續(xù)時間大于1us小于15us然后發(fā)“1”持續(xù)50us以上即可。 讀時序也是主機(jī)先發(fā)低電平,然后在15us內(nèi)檢測連接DS18B20的數(shù)據(jù)線的引腳,從而讀得相應(yīng)值。

28、 4 電路的設(shè)計(jì) 本章分析了分布式溫度采集系統(tǒng)的各主要功能模塊的設(shè)計(jì)與實(shí)現(xiàn),具體包括溫度測量電路模塊和串口通信電路模塊。 4.1 溫度測量電路的設(shè)計(jì) 溫度測量采用DS18B20 數(shù)字式溫度傳感器。由DS18B20 構(gòu)成的智能溫度測量裝置由三部分組成:DS18B20 溫度傳感器、ATMAGE16、顯示模塊。產(chǎn)品的主要技術(shù)指標(biāo):①測量范圍:-55℃~+125℃,②測量精度:0.5℃,③反應(yīng)時間≤500ms。為了達(dá)到更高的精度,則在對DSl8B20測溫原理進(jìn)行詳細(xì)分析的基礎(chǔ)上,采取直接讀取DSl8B20內(nèi)部暫存寄存器的方法,將DSl8B20 的測溫分辨率提高到0.01℃~0.1℃,DS

29、l8B20內(nèi)部暫存寄存器的分布如表4-1所列,其中第7字節(jié)存放的是當(dāng)溫度寄存器停止增值時計(jì)數(shù)器l的計(jì)數(shù)剩余值,第8字節(jié)存放的是每度所對應(yīng)的計(jì)數(shù)值。這樣,就可以通過下面的方法獲得高分辨率的溫度測量結(jié)果。 表4-1 DS18B20內(nèi)部暫存器 序號 寄存器名稱 作用 序號 寄存器名稱 0 溫度低字節(jié) 以16位補(bǔ)碼形式存放 4、5 保存字節(jié)1、2 1 溫度高字節(jié) 6 計(jì)數(shù)器余值 2 TH/用戶字節(jié)1 存放溫度上限 7 計(jì)數(shù)器/℃ 3 HL/用戶字節(jié)2 存放溫度下限 8 CRC 基于DS18B20的溫度測量裝置電路圖如圖4.1所示: 圖4

30、.1 溫度測量電路 溫度傳感器DS18B20將被測環(huán)境溫度轉(zhuǎn)化成帶符號的數(shù)字信號(以十六位補(bǔ)碼形式,占兩個字節(jié)),傳感器可置于離裝置150米以內(nèi)的任何地方,輸出腳I/O直接與單片機(jī)的P1.1 相連,R1為上拉電阻,傳感器采用外部電源供電。ATMAGE16 是整個裝置的控制核心,ATMAGE16內(nèi)帶1K字節(jié)的FlashROM,用戶程序存放在這里。顯示器模塊由四位一體的共陽數(shù)碼管和4個9012組成。系統(tǒng)程序分傳感器控制程序和顯示器程序兩部分,傳感器控制程序是按照DS18B20的通信協(xié)議編制。系統(tǒng)的工作是在程序控制下,完成對傳感器的讀寫和對溫度的顯示。 4.2 串口通信電路的設(shè)計(jì) 為了增加單

31、片機(jī)多機(jī)通信的距離,該部分電路采用RS232標(biāo)準(zhǔn)接口,通信距離可以達(dá)到15米;如果采用RS422 或是RS485 接口,通信距離會更遠(yuǎn)。多機(jī)通信接口原理圖見圖1 。在數(shù)據(jù)傳輸過程中采用的是RS232 電平,提高了抗干擾能力。需要在主機(jī)串行接口和從機(jī)串行接口進(jìn)行電平轉(zhuǎn)換:TTL-RS232-TTL。這都是用MAX232 接口芯片實(shí)現(xiàn)的,具體的電路如圖4.2所示。 圖4.2 TTL-RS232-TTL電平轉(zhuǎn)換電路 通信電路是本設(shè)計(jì)的重要組成部分,負(fù)責(zé)溫度數(shù)據(jù)的采集和數(shù)據(jù)的上傳。包括單片機(jī)多機(jī)串口通信電路,PC 機(jī)與ATMAGE16的串口通信電路。其中主單片機(jī)ATMAGE16既要和從機(jī)通

32、信,還要負(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ì) 數(shù)字式傳感器一般采用單總線技術(shù)(1-WIREBUS),即在單片機(jī)或計(jì)算機(jī)接口中只用一根導(dǎo)線(輸入/ 輸出信號線),美國Dallas公司最新推出的1-WireBus數(shù)字式溫度傳感器DS18B20,與傳統(tǒng)的溫度傳感器不同,它能夠直接讀出被測溫度,并且可根據(jù)實(shí)際要求通過簡單的編程實(shí)現(xiàn)9~12位的數(shù)字值讀數(shù)方式,可以分別在93.75ms 和750ms內(nèi)將溫度值轉(zhuǎn)化為9 位和

33、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ī)通信組成,每個從機(jī)負(fù)責(zé)溫度的測量然后通過多機(jī)通信把溫度數(shù)據(jù)發(fā)送到主單片機(jī)上,最后PC機(jī)通過VB程序控制串口把主單片機(jī)上的所有溫度數(shù)據(jù)收集起來。系統(tǒng)框圖如圖5.1所示。 圖5.1 系統(tǒng)框圖 6 ICCAVR制作環(huán)境及介紹 本章介紹了ICCAVR的制作環(huán)境,ICCAVR 中的文件類型及其文件的擴(kuò)展名、附

34、注和擴(kuò)充,并介紹了IAR 或其它ANSI C 編譯系統(tǒng)的代碼轉(zhuǎn)換。 6.1 ICCAVR 介紹 本節(jié)主要介紹了ICCAVR文件的基本特點(diǎn)、類型、擴(kuò)展名等。 6.1.1 ImageCraft 的ICCAVR 介紹 ImageCraft 的ICCAVR 是一種使用符合ANSI 標(biāo)準(zhǔn)的C 語言來開發(fā)微控制器(MCU)程序的一個工具,它有以下幾個主要特點(diǎn): ICCAVR 是一個綜合了編輯器和工程管理器的集成工作環(huán)境(IDE),其可在WINDOWS9X/NT 下工作。 源文件全部被組織到工程之中,文件的編輯和工程的構(gòu)筑也在這個環(huán)境中完成。編譯錯誤顯示在狀態(tài)窗口中,并且當(dāng)你用鼠標(biāo)單擊編譯錯

35、誤時,光標(biāo)會自動跳轉(zhuǎn)到編輯窗口中引起錯誤的那一行。這個工程管理器還能直接產(chǎn)生您希望得到的可以直接使用的INTEL HEX 格式文件,INTEL HEX 格式文件可被大多數(shù)的編程器所支持,用于下載程序到芯片中去。 ICCAVR 是一個32 位的程序,支持長文件名。 本論文并不介紹通用的C 語言語法知識,僅介紹使用ICC AVR 所必須具備的知識。 6.1.2 ICCAVR 中的文件類型及其擴(kuò)展名 文件類型是由它們的擴(kuò)展名決定的,IDE 和編譯器可以使用以下幾種類型的文件。 輸入文件: .c 擴(kuò)展名----表示是C 語言源文件 .s 擴(kuò)展名----表示是匯編語言源文件 .h 擴(kuò)

36、展名----表示是C 語言的頭文件 .prj 擴(kuò)展名----表示是工程文件,這個文件保存由IDE 所創(chuàng)建和修改的一個工程的有 關(guān)信息。 .a 擴(kuò)展名----庫文件,它可以由幾個庫封裝在一起。libcavr.a 是一個包含了標(biāo)準(zhǔn)C 的庫和AVR 特殊程序調(diào)用的基本庫。如果庫被引用,鏈接器會將其鏈接到您的模塊或文件中。您也可以創(chuàng)建或修改一個符合你需要的庫。 輸出文件 .s 對應(yīng)每個C 語言源文件,由編譯器在編譯時產(chǎn)生的匯編輸出文件。 .o 由匯編文件匯編產(chǎn)生的目標(biāo)文件,多個目標(biāo)文件可以鏈接成一個可執(zhí)行文件。 .hex INTEL HEX 格式文件,其中包含了程序的機(jī)器代碼。 .ee

37、p INTEL HEX 格式文件,包含了EEPROM 的初始化數(shù)據(jù)。 .cof COFF 格式輸出文件,用于在ATMEL 的AvrStudio 環(huán)境下進(jìn)行程序調(diào)試。 .lst 列表文件,在這個文件中列舉出了目標(biāo)代碼對應(yīng)的最終地址。 .mp 內(nèi)存映象文件 它包含了您程序中有關(guān)符號及其所占內(nèi)存大小的信息 .cmd NoICE 2.xx 調(diào)試命令文件。 .noi NoICE 3.xx 調(diào)試命令文件。 .dbg ImageCraft 調(diào)試命令文件。 6.1.3 附注和擴(kuò)充 #pragma (編譯附注) 這個編譯器接受以下附注: #pragma interrupt_handler

38、: : ... 這個附注必須在函數(shù)之前定義,它說明函數(shù)func1、func2 是中斷操作函數(shù),所以編譯器在中斷操作函數(shù)中生成中斷返回指令reti 來代替普通返回指令ret ,并且保存和恢復(fù)函數(shù)所使用的全部寄存器;同樣編譯器根據(jù)中斷向量號vector number 生成中斷向量地址。 #pragma ctask ... 這個附注指定了函數(shù)不生成揮發(fā)寄存器來保存和恢復(fù)代碼,它的典型應(yīng)用是在RTOS實(shí)時操作系統(tǒng)中讓RTOS 核直接管理寄存器。 #pragma text: 改變

39、代碼段名稱,使其與命令行選項(xiàng)相適應(yīng)。 #pragma data: 改變數(shù)據(jù)段名稱,使其與命令行選項(xiàng)相適應(yīng)。這個附注在分配全局變量至EEPROM中時必須被使用。 #pragma abs_address:

函數(shù)與全局?jǐn)?shù)據(jù)不使用浮動定位(重定位),而是從
開始分配絕對地址。這在訪問中斷向量和其它硬件項(xiàng)目時特別有用。 #pragma end_abs_address 結(jié)束絕對定位,使目標(biāo)程序使用正常浮動定位。 C++ 注釋 如果你選擇了編譯擴(kuò)充(Project->Options->Compiler),你可以在你的源代碼中使用C ++的 //

40、類型的注釋。 二進(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 或其它ANSI C 編譯系統(tǒng)的代碼轉(zhuǎn)換 IAR C 編譯器作為應(yīng)用于AVR 的第一個C 編譯器,它有十分豐富的源代碼。當(dāng)你從IAR編譯系統(tǒng)轉(zhuǎn)換到ImageCraft 編譯系統(tǒng)時,絕大多數(shù)符合ANSI C標(biāo)準(zhǔn)的程序代碼不需要轉(zhuǎn)換,IAR C 中IO 寄存器的定義與ICCAVR 也是相同的。

41、中斷操作描述,ICCAVR 使用pragma 附注描述中斷操作函數(shù),而IAR 引入了語法擴(kuò)充(interrupt 關(guān)鍵字),下面是一個對照: 在 ICCAVR 中: #pragma interrupt_handler func:4 // 4 是這個中斷的向量號,func 為中斷處理函數(shù)名稱,ICCAVR 可以使多個中斷向量共用一個中斷處理函數(shù)。 在 IAR 中: interrupt [vector_name] func() // vector_name 是某一個中斷向量的名稱,IAR C 的中斷向量地址使用中斷名稱來代替,以增加程序的可讀性。 擴(kuò)充關(guān)鍵字 IAR 引入flash 關(guān)

42、鍵字將項(xiàng)目分配進(jìn)入程序存貯空間(FLASH 存貯器),ICCAVR 使用const 關(guān)鍵字來達(dá)到相同的目的。 過程調(diào)用轉(zhuǎn)換 在兩個編譯系統(tǒng)之間函數(shù)參數(shù)傳遞使用的寄存器是不同的,這僅影響手工寫的匯編函數(shù)。 在線匯編、宏等,IAR 不支持在線匯編符號,而ICCAVR 支持在線匯編。 6.2 ICCAVR 向?qū)? 自你啟動 IDE 后,首先從Project 菜單系統(tǒng)選擇Open 命令,進(jìn)入\icc\examples.avr 目錄并且選擇并打開“l(fā)ed”工程,工程管理器顯示在這個工程中只有一個文件led.c。 然后從Project 菜單中選擇Options 命令打開工程編譯選項(xiàng),在"Targ

43、et"標(biāo)號下選擇目標(biāo)處理器。然后從Project 菜單中選擇Make Project 命令,IDE 將調(diào)用編譯器編譯這個工程文件,并且在狀態(tài)窗口中顯示所有的信息。 6.3 ICCAVR 的IDE 環(huán)境 6.3.1 編譯一個單獨(dú)的文件 正常建立一個輸出文件的次序是,你首先應(yīng)該建立一個工程文件并且定義屬于這個工程的所有文件。然而,我們有時也需要將一個文件單獨(dú)地編譯為目標(biāo)文件或最終的輸出文件。這時可以這樣操作:從IDE 菜單“File” 中選擇“Compile File...”命令,來執(zhí)行“to Object”和“to Output”中的任意一個。當(dāng)你調(diào)用這個命令時,文件應(yīng)該是打開的并且在

44、編輯窗口中可以編輯的。 編譯一個文件為目標(biāo)文件(to Object),對檢查語法錯誤和編譯一個新的啟動文件是很有用的。編譯一個文件為輸出文件(to Output),對較小的并且是一個文件的程序較為有用。 6.3.2 創(chuàng)建一個新的工程 為創(chuàng)建一個新的工程,從菜單“Project”中選擇“New”命令,IDE 會彈出一個對話框,在對話框中你可以指定工程的名稱,這也是你的輸出文件的名稱。如果你使用一些已經(jīng)建立的源文件,你可在菜單“Project”中選擇“AddFile(s) ”命令。 另外,你可以在菜單“File”中選擇“New”命令來建立一個新的源文件來輸入你的代碼,你可以在菜單“Fil

45、e”中選擇“Save”或“Save As”命令來保存文件。然后你可以象上面所述調(diào)用“AddFile(s)”命令將文件加入到工程中,也可在當(dāng)前編輯窗口中單擊鼠標(biāo)右鍵選擇“Add to Project”將文件加入已打開的工程列表中。通常你輸出源文件在工程同一個目錄中,但也可不作這樣要求。 工程的編譯選項(xiàng)使用菜單中 “Project”中的“Options”命令。 6.3.3 工程管理 工程管理允許你將多個文件組織進(jìn)同一個工程,而且定義它們的編譯選項(xiàng),這個特性允許你將工程分解成許多小的模塊。當(dāng)你處理工程構(gòu)筑時,只有一個文件被修改和重新編譯,如果一個頭文件作了修改,當(dāng)你編譯包含這個頭文件的源文件

46、時,IDE 會自動重新編譯已經(jīng)改變的頭文件。 一個源文件可以寫成 C 或匯編格式的任意一種。C 文件必須使用“.c”擴(kuò)展名匯編文件必須使用“.s”擴(kuò)展名。你可以將任意文件放在工程列表中,例如你可以將一個工程文檔文件放在工程管理窗口中,工程管理器在構(gòu)筑工程時對源文件以外的文件不予理睬。 對目標(biāo)器件不同的工程,可以在編譯選項(xiàng)中設(shè)置有關(guān)參數(shù)。當(dāng)你新建一個工程時,使用默認(rèn)的編譯選項(xiàng),你可以將現(xiàn)有編譯選項(xiàng)設(shè)置成默認(rèn)選項(xiàng),也可將默認(rèn)編譯選項(xiàng)裝入現(xiàn)有工程中。默認(rèn)編譯選項(xiàng)保存在default.prj 文件中。 為避免你的工程目錄混亂,你可以指定輸出文件和中間文件到一個指定的目錄,通常這個目錄是你的工程目

47、錄的一個子目錄。 6.3.4 編輯窗口 編輯窗口是你與 IDE 交流信息的主要區(qū)域,在這個窗口中你可以修改相應(yīng)的文件。當(dāng)編譯存在錯誤時,用鼠標(biāo)單擊有關(guān)錯誤信息時,編輯器會自動將光標(biāo)定位在錯誤行的位置。 6.3.5 應(yīng)用構(gòu)筑向?qū)? 應(yīng)用構(gòu)筑向?qū)怯糜趧?chuàng)建外圍設(shè)備初始化代碼的一個圖形界面。你可以單擊工具條中的“Wizard”按鈕或菜單“Tools”中的“ApplicationBuilder”命令來調(diào)用它。 應(yīng)用構(gòu)筑向?qū)褂镁幾g選項(xiàng)中指定的目標(biāo)MCU來產(chǎn)生相應(yīng)的選項(xiàng)和代碼。 應(yīng)用構(gòu)筑向?qū)э@示目標(biāo) MCU 的每一個外圍設(shè)備子系統(tǒng),它的使用是很顯而易見的。在這里你可以設(shè)置MCU 的所具有的

48、中斷、內(nèi)存、定時器、IO 端口、UART 、SPI 和模擬量比較器等外圍設(shè)備,并產(chǎn)生相應(yīng)的代碼,如果你需要的話,還可產(chǎn)生main( )函數(shù)。 6.3.6 終端仿真 IDE 有一個內(nèi)置的終端仿真器,注意它不包含任意一個ISP(在系統(tǒng)編程)功能,但它可以作為一個簡單的終端,或許可以顯示你的目標(biāo)裝置的調(diào)試信息,也可下載一個ASC碼文件。從 6.20 版本開始IDE 加入了對ISP 的支持。 結(jié) 論 ATMAGE16單片機(jī)體積小、重量輕、抗干擾能力強(qiáng)、對環(huán)境要求不高、價格低廉、可靠性高、靈活性好。即使是非電子計(jì)算機(jī)專業(yè)人員,通過學(xué)習(xí)一些專業(yè)基礎(chǔ)知識以后也能依靠自己的技術(shù)力量來

49、開發(fā)所希望的單片機(jī)應(yīng)用系統(tǒng)。在傳統(tǒng)的溫度測量系統(tǒng)中,往往采用模擬的溫度傳感器進(jìn)行設(shè)計(jì),必須經(jīng)過A/D轉(zhuǎn)換后才可以被微處理器識別和處理。這樣的設(shè)計(jì)方法不僅對前端模擬信號處理電路提出了更高的要求,而且不具有數(shù)字通信和網(wǎng)絡(luò)功能。本設(shè)計(jì)文結(jié)合DSl8B20的新特性和現(xiàn)代溫度測量系統(tǒng)提出的新要求,提出了基于智能數(shù)字溫度傳感器DSl8820的高精度、分布式多點(diǎn)溫度測量系統(tǒng)設(shè)計(jì)方案。該方案具有安裝方便、數(shù)字化程度高、精度高、適應(yīng)性強(qiáng)等特點(diǎn),在多種溫度檢測中具有廣闊的應(yīng)用前景。經(jīng)過模塊化的電路測試、軟件調(diào)試和系統(tǒng)組裝,測溫精度可以達(dá)到0.01℃。設(shè)計(jì)出的多路遠(yuǎn)距離自動化、智能化溫度采集系統(tǒng)可以廣泛應(yīng)用于工業(yè)控

50、制領(lǐng)域。本次設(shè)計(jì)只給出2路從機(jī)采集,根據(jù)需要可以增加更多從機(jī)進(jìn)行溫度采集。 參 考 文 獻(xiàn) 1 何立民.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)系統(tǒng)配置與接口技術(shù).北京:北京航空航天大學(xué)出版社.1999 2 李廣弟.單片機(jī)基礎(chǔ).北京:北京航空航天大學(xué)出版社.1999 3 劉守義.單片及應(yīng)用技術(shù).西安:西安電子科技大學(xué)出版社.2002 4 潘新民.微型計(jì)算機(jī)與傳感技術(shù).北京:人民郵電出版社.1988 5 辛友順等.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn).福州:福建科學(xué)技術(shù)出版社.2005 6 陳嘉慶.工業(yè)控制計(jì)算機(jī)應(yīng)用100例.北京:微計(jì)算機(jī)信息編輯部.2002 7 王幸之.AT89系列單片機(jī)原理與接

51、口技術(shù).北京:北京航空航天大學(xué)出版社.2004 8 張 軍.AVR單片機(jī)應(yīng)用系統(tǒng)開發(fā)典型實(shí)例.第一版.中國電力出版社 9 譚浩強(qiáng).C語言程序設(shè)計(jì)(第二版).北京清華大學(xué)出版社.2005 10馬忠梅.單片機(jī)的C語言應(yīng)用程序設(shè)計(jì)(第三版).北京:北京航空航天大學(xué)出版社.2003 11夏路易.電路原理圖與電路板設(shè)計(jì)教程PROTEL99SE.北京:北京希望電子出版社 附件1:總系統(tǒng)的原理圖如下: 附件2:單片機(jī)ATMAGE16控制DS18B20的程序: #include #include

52、 #define uchar unsigned char #define uint unsigned int uchar Temp=0x00,Flag=0,Point=0; const uchar DISCODE[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//0~9 const uchar order[4]={0x07,0x0b,0x0d,0x0e}; const uchar fuhao1[8]={0X81,0XF7,0XF7,0X87,0XF5,0XF5,0XF5,0X00};//正字 const uch

53、ar fuhao0[8]={0xf7,0xc7,0xeb,0x81,0xb5,0xb5,0xeb,0x9C};//負(fù)字 #pragma interrupt_handler Timer0:10 void Timer0(void)//每32ms掃描一次數(shù)碼管 { uchar j; for(j=0;j<8;j++) { PORTB=1<

54、 void Dis_Init(void) { uchar i; DDRC=0xff; DDRA=0xff; DDRD=0xff; PORTC=0xf0; for(i=0;i<10;i++) { PORTA=DISCODE[9-i]; DelayMS(100); } TIMSK=0x01; TCNT0=0x00; SREG=0x80; TCCR0=0x04;//512分頻 } void Dis_Data(uchar disdata) { char disbuf[4],i,j; SREG=0x00; disbuf[0] = d

55、isdata /100; disbuf[1] = (disdata/10)%10; disbuf[2] = disdata%10; disbuf[3] = Point; for(i=0;i<4;i++) { PORTC = order[i]; PORTA = DISCODE[disbuf[i]]; if(i==2) PORTA|=0x80;//顯示小數(shù)點(diǎn) DelayMS(2); PORTA=0x00; DelayMS(1); } SREG=0x80; } void gettemp(void) { char temph=0,templ=0,T

56、empL=0; while(Check18B20());//驗(yàn)證初始化成功 Write18B20(0xcc); Write18B20(0x44); //啟動轉(zhuǎn)換 //DelayMS(500); //750MS while(Check18B20());//成功 Write18B20(0xcc); Write18B20(0xbe); //讀取溫度值 templ = Read18B20(); temph = Read18B20(); while(Check18B20()); Temp=(templ>>4)|(temph<<4); TempL=templ&0x0c;//小數(shù)位 Point=(TempL>>3)*5+((TempL>>2)&0x01)*2; Flag=!(Temp&0x80); } void main(void) { Dis_Init(); while(1) { gettemp(); Dis_Data(Temp); } }

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!