2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩32頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、<p>  基于單片機控制的溫度采集 與測量</p><p>  系 別: 電氣工程系 </p><p>  專 業(yè): 電氣自動化 </p><p>  班 級: 電30 </p><p>  姓 名 </p>

2、<p>  學(xué) 號: </p><p>  指導(dǎo)教師: </p><p>  2011年 5 月 20 日</p><p><b>  摘 要</b></p><p>  近年來,隨著大規(guī)模集成電路的發(fā)展,單片機繼續(xù)朝快速、高性能方向發(fā)展,從4位、8位單片機發(fā)展到16

3、位、32位單片機。單片機主要用于控制,它的應(yīng)用領(lǐng)域遍及各行各業(yè),大到航天飛機,小至日常生活中的冰箱、彩電,單片機都可以大顯其能。</p><p>  單片機技術(shù)與傳感與測量技術(shù)、信號與系統(tǒng)分析技術(shù)、電路設(shè)計技術(shù)、可編程邏輯應(yīng)用技術(shù)、微機接口技術(shù)、數(shù)據(jù)庫技術(shù)以及數(shù)據(jù)結(jié)構(gòu)、計算機操作系統(tǒng)、匯編語言程序設(shè)計、高級語言程序設(shè)計、軟件工程、數(shù)據(jù)網(wǎng)絡(luò)通信、數(shù)字信號處理、自動控制、誤差分析、儀器儀表結(jié)構(gòu)設(shè)計和制造工藝等的結(jié)合,

4、使得單片機的應(yīng)用非常廣泛。同時,單片機具有較強的管理功能。采用單片機對整個測量電路進行管理和控制,使得整個系統(tǒng)智能化、功耗低、使用電子元件較少、內(nèi)部配線少、成本低,制造、安裝、調(diào)試及維修方便。</p><p>  本設(shè)計是基于單片機ATMAGE16設(shè)計的實時溫度采集儀,通過本次設(shè)計,我成功的實現(xiàn)了利用單片機對溫度的采集和測量。</p><p><b>  關(guān)鍵詞</b>

5、;</p><p>  單片機 ATMAGE16 DS18B20 ICCAVR</p><p><b>  目 錄</b></p><p><b>  1 緒論1</b></p><p>  1.1 課題背景1</p><p>  1.2 設(shè)計目

6、的及系統(tǒng)功能1</p><p>  2 ATMAGE16特性1</p><p>  2.1 ATMAGE16產(chǎn)品特性1</p><p>  2.2 引腳配置1</p><p>  3 DS18B20的設(shè)計1</p><p>  3.1 總體通信流程及通信協(xié)議1</p><p>

7、;  3.2 DS18B20溫度測量軟件的設(shè)計1</p><p>  3.3 多機通信軟件的設(shè)計1</p><p>  3.4 DS18B20工作時序問題1</p><p>  4 電路的設(shè)計1</p><p>  4.1 溫度測量電路的設(shè)計1</p><p>  4.2 串口通信電路的設(shè)計1&

8、lt;/p><p>  5 分布式溫度采集系統(tǒng)設(shè)計1</p><p>  6  ICCAVR制作環(huán)境及介紹1</p><p>  6.1 ICCAVR 介紹1</p><p>  6.2 ICCAVR 向?qū)?</p><p>  6.3 ICCAVR 的IDE 環(huán)境1</p>&l

9、t;p><b>  結(jié) 論1</b></p><p><b>  參考文獻1</b></p><p><b>  致 謝1</b></p><p>  附件1:總系統(tǒng)的原理圖如下:1</p><p>  附件2:單片機ATMAGE16控制DS18B20的程序:

10、1</p><p><b>  1 緒論</b></p><p>  自從1976年Intel公司推出第一批單片機以來,80年代單片機技術(shù)進入快速發(fā)展時期,近年來,隨著大規(guī)模集成電路的發(fā)展,單片機繼續(xù)朝快速、高性能方向發(fā)展,從4位、8位單片機發(fā)展到16位、32位單片機。單片機主要用于控制,它的應(yīng)用領(lǐng)域遍及各行各業(yè),大到航天飛機,小至日常生活中的冰箱、彩電,單片機都

11、可以大顯其能。單片機在國內(nèi)的三大領(lǐng)域中應(yīng)用得十分廣泛:第一是家用電器業(yè),例如全自動洗衣機、智能玩具;第二是通訊業(yè),包括電話、手機和BP機等等;第三是儀器儀表和計算機外設(shè)制造,例如軟盤、硬盤、收銀機、電表。除了上述傳統(tǒng)領(lǐng)域外,汽車、電子工業(yè)在國外也是單片機應(yīng)用十分廣泛的一個領(lǐng)域。它成本低、集成度高、功耗低、控制功能多能靈活的組裝成各種智能控制裝置,由它構(gòu)成的智能儀表解決了長期以來測量儀器中的誤差的修正、線性處理等問題。單片機將微處理器、存

12、儲器、定時/計數(shù)器、I/O接口電路等集成在一個芯片上的大規(guī)模集成電路,本身即是一個小型化的微機系統(tǒng)。單片機技術(shù)與傳感與測量技術(shù)、信號與系統(tǒng)分析技術(shù)、電路設(shè)計技術(shù)、可編程邏輯應(yīng)用技術(shù)、微機接口技術(shù)、數(shù)據(jù)庫技術(shù)以及數(shù)據(jù)結(jié)構(gòu)、計算機操作系統(tǒng)、匯編語言程序設(shè)計、高級語言程</p><p>  目前單片機滲透到我們生活的各個領(lǐng)域,幾乎很難找到哪個領(lǐng)域沒有單片機的蹤跡。導(dǎo)彈的導(dǎo)航裝置,飛機上各種儀表的控制,計算機的網(wǎng)絡(luò)通訊與

13、數(shù)據(jù)傳輸,工業(yè)自動化過程的實時控制和數(shù)據(jù)處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統(tǒng),錄象機、攝象機、全自動洗衣機的控制,以及程控玩具、電子寵物等等,這些都離不開單片機。更不用說自動控制領(lǐng)域的機器人、智能儀表、醫(yī)療器械了。</p><p><b>  1.1 課題背景</b></p><p>  分布式溫度采集系統(tǒng)廣泛應(yīng)用在使用了中央空調(diào)的大型商場、廠

14、房、辦公大樓等大型建筑內(nèi)。本課題主要用溫度傳感器對環(huán)境溫度實施實時監(jiān)測,各結(jié)點控制單元可將有關(guān)信息上傳給計算機,本課題研究主要解決的問題為分布式控制結(jié)構(gòu)設(shè)計、多單</p><p>  片機串行通信、溫度的采集與處理。</p><p>  本設(shè)計是基于單片機ATMAGE16設(shè)計的實時溫度采集儀,采用DS18B20可以采集多路溫度數(shù)據(jù)(本設(shè)計只用了2路),同時實時顯示所采集到的溫度值。在傳統(tǒng)的

15、溫度測量系統(tǒng)設(shè)計中,往往采用模擬技術(shù)進行設(shè)計,這樣就不可避免地遇到諸如引線誤差補償、多點測量中的切換誤差和信號調(diào)理電路的誤差等問題;而其中某一環(huán)節(jié)處理不當(dāng),就可能造成整個系統(tǒng)性能的下降。隨著現(xiàn)代科學(xué)技術(shù)的飛速發(fā)展,特別是大規(guī)模集成電路設(shè)計技術(shù)的發(fā)展,微型化、集成化、數(shù)字化正成為傳感器發(fā)展的一個重要方向。美國Dallas半導(dǎo)體公司推出的數(shù)字溫度傳感器DSl8B20,具有獨特的單總線接口,僅需要占用一個通用I/O端口即可完成與微處理器的通信

16、;在-10~+85℃溫度范圍內(nèi)具有±O.01℃精度;用戶可編程設(shè)定9~12位的分辨率。以上特性使得DSl8B20非常適用于構(gòu)建高精度、多點溫度測量系統(tǒng)。</p><p>  1.2 設(shè)計目的及系統(tǒng)功能</p><p>  本設(shè)計的目的是以單片機為核心設(shè)計出一個分布式溫度采集系統(tǒng)。在傳統(tǒng)測量系統(tǒng)中,傳感器與計算機接口的連接是通過若干條導(dǎo)線連接。當(dāng)傳感器數(shù)量較多時,尤其是信號線的長

17、距離傳輸時,相互容易產(chǎn)生干擾。一個室內(nèi)多點溫度測量中,系統(tǒng)的接線會非常多,導(dǎo)線往往不易鋪設(shè),使得測量工作非常困難。采用總線結(jié)構(gòu)數(shù)字式傳感器,配合單片機及PC機串口進行長距離數(shù)據(jù)通信,則可以很容易解決這個問題,該系統(tǒng)最多可以檢測256 路溫度信號,在室內(nèi)多點溫度測量控制中能達到很好的效果。通過本課題設(shè)計,綜合運用單片機及接口技術(shù)、微機原理、通信協(xié)議,鍛煉動手操作能力,綜合運用能力,學(xué)習(xí)論文的寫作方法和步驟。</p><

18、p>  設(shè)計的溫度控制系統(tǒng)有以下功能及特點:</p><p>  (a)實現(xiàn)在一條數(shù)據(jù)總線上接多個DS18B20器件;</p><p>  (b)測溫范圍0℃~99℃;</p><p>  (c)溫度顯示:采用2個4位數(shù)碼管,顯示采樣溫度值; 并在電腦上一同顯示;</p><p>  (d)精度±0.01℃。</p>

19、;<p>  2 ATMAGE16特性</p><p>  本章介紹了ATMAGE16的產(chǎn)品特性和ATmega16的結(jié)構(gòu)。由于其先進的指令集以及單時鐘周期指令執(zhí)行時間,ATmega16 的數(shù)據(jù)吞吐率高達 1MIPS MHz,從而可以緩減系統(tǒng)在功耗和處理速度之間的矛盾。</p><p>  2.1 ATMAGE16產(chǎn)品特性</p><p>  1、

20、高性能、低功耗的 8 位 AVR 微處理器</p><p>  2、 先進的RISC結(jié)構(gòu)</p><p> ?。╝)131 條指令</p><p> ?。╞)32 個8 位通用工作寄存器</p><p><b> ?。╟)全靜態(tài)工作</b></p><p> ?。╠)工作于16 MHz 時性能高達

21、16 MIPS</p><p> ?。╡)只需兩個時鐘周期的硬件乘法器</p><p>  (f)大多數(shù)指令執(zhí)行時間為單個時鐘周期</p><p>  3、 非易失性程序和數(shù)據(jù)存儲器</p><p>  (a)16K 字節(jié)的系統(tǒng)內(nèi)可編程 Flash擦寫壽命: 10,000 次</p><p> ?。╞) 具有獨立鎖定位

22、的可選Boot 代碼區(qū)通過片上Boot 程序?qū)崿F(xiàn)系統(tǒng)內(nèi)編程真正的同時讀寫操作</p><p>  (c)512 字節(jié)的EEPROM擦寫壽命: 100,000 次</p><p> ?。╠)1K 字節(jié)的片內(nèi)SRAM</p><p> ?。╡)可以對鎖定位進行編程以實現(xiàn)用戶程序的加密</p><p>  4、 JTAG 接口( 與IEEE 114

23、9.1標準兼容 )</p><p> ?。╝)符合JTAG標準的邊界掃描功能</p><p> ?。╞)支持擴展的片內(nèi)調(diào)試功能</p><p>  (c)通過JTAG接口實現(xiàn)對 Flash、EEPROM、熔絲位和鎖定位的編程</p><p><b>  5、 外設(shè)特點</b></p><p>  

24、(a)兩個具有獨立預(yù)分頻器和比較器功能的8 位定時器/計數(shù)</p><p> ?。╞)一個具有預(yù)分頻器、比較功能和捕捉功能的16 位定時器/計數(shù)</p><p> ?。╟)具有獨立振蕩器的實時計數(shù)器RTC</p><p><b>  (d)四通道PWM</b></p><p> ?。╡)8路 10 位ADC8 個單端通道

25、TQFP 封裝的7 個差分通道2個具有可編程增</p><p>  益(1x, 10x, 或200x)的差分通道</p><p> ?。╢)面向字節(jié)的兩線接口</p><p>  (g) 兩個可編程的串行USART</p><p> ?。╤) 可工作于主機/從機模式 SPI串行接口</p><p>  (i) 具有獨立

26、片內(nèi)振蕩器的可編程看門狗定時器</p><p>  (j) 片內(nèi)模擬比較器</p><p>  6、 特殊的處理器特點</p><p>  (a)上電復(fù)位以及可編程的掉電檢測</p><p> ?。╞)片內(nèi)經(jīng)過標定的RC 振蕩器</p><p> ?。╟)片內(nèi)/片外中斷</p><p>  (d

27、)6種睡眠模式 : 空 ADC噪聲抑制模式、省電模式、掉電模式、Standby 、式以擴展的Standby 模式</p><p><b>  7、 I/O和封裝</b></p><p>  (a)32 個可編程的I/O口</p><p> ?。╞)40 引腳PDIP封裝 , 44 引腳 TQFP 封裝,與 44 引腳MLF封裝</p>

28、;<p><b>  8、 工作電壓:</b></p><p>  (a)ATmega16L:2.7 - 5.5V</p><p> ?。╞)ATmega16:4.5 - 5.5V</p><p><b>  9、速度等級</b></p><p> ?。╝)0 - 8 MHz ATme

29、ga16L</p><p> ?。╞)0 - 16 MHz ATmega16</p><p>  10、 ATmega16L在 1 MHz, 3V, 25 C時的功耗</p><p>  (a)正常模式: 1.1 mA</p><p> ?。╞)空 : 0.35 mA</p><p> ?。╟)掉電模式: < 1

30、 μA</p><p><b>  2.2 引腳配置</b></p><p>  ATmega16是基于增強的AVRRISC結(jié)構(gòu)的低功耗8位CMOS微控制器。由于其先進的指令集以及單時鐘周期指令執(zhí)行時間,ATmega16 的數(shù)據(jù)吞吐率高達 1MIPS MHz,從而可以緩減系統(tǒng)在功耗和處理速度之間的矛盾。ATMAGE16引腳分布如圖2.1所示。</p>

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

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

33、字節(jié) SRAM,32 個通用I/O 口線,32 個通用工作寄存器,用于邊界掃描的 JTAG 接口,支持片內(nèi)調(diào)試與編程,三個具有比較模式的靈活的定時器/計數(shù)(T/C),片內(nèi)/外中斷,可編程 USART,有起始條件檢測</p><p>  器的通用串行接口,8路10位具有可選差分輸入級可編程增益 (TQFP 封裝 ) 的 ADC ,具有片內(nèi)振蕩器的可編程看門狗定時器,一個 SPI串行端口,以及六個可以通過軟件進行選擇

34、的省電模式。 工作于空閑模式時 CPU 停止工作,而 USART、兩線接口、 A/D 轉(zhuǎn)換器、 SRAM、 T/C、 SPI 端口以及中斷系統(tǒng)繼續(xù)工作;掉電模式時晶體振蕩器停止振蕩,所有功能除了中斷和硬件復(fù)位之外都停止工作;在省電模式下,異步定時器繼續(xù)運行,允許用戶保持一個時間基準,而其余功能模塊處于休眠狀態(tài);ADC噪聲抑制模式時終止CPU 和除了異步定時器與ADC以外所有 I/O 模塊的工作,以降低 ADC 轉(zhuǎn)換時的開關(guān)噪聲; Sta

35、ndby 模式下只有晶體或諧振振蕩器運行,其余功能模塊處于休眠狀態(tài),使得器件只消耗極少的電流,同時具有快速啟動能力;擴展 Standby 模式下則允許振蕩器和異步定時器繼續(xù)工作。本芯片是以 Atmel 高密度非易失性存儲器技術(shù)生產(chǎn)的。片內(nèi) ISP Flash 允許程序存儲器通過 ISP 串行接口,或者通用編程器進行編程,也可以通過運行于 AVR 內(nèi)核之中的引導(dǎo)程序進行編程。引導(dǎo)</p><p>  3 DS18B

36、20的設(shè)計</p><p>  本章介紹了系統(tǒng)軟件設(shè)計,并具體介紹了實現(xiàn)和調(diào)試的方法,以及分布式溫度采集系統(tǒng)的通信流程和DS18B20溫度測量軟件的設(shè)計思路、DS18B20工作的時序問題。</p><p>  3.1 總體通信流程及通信協(xié)議</p><p>  總體通信流程體現(xiàn)在PC機,單片機主機及各從機的通信,信號接受及發(fā)送,這個設(shè)計中,通信協(xié)議是一個非常重要也

37、很復(fù)雜的部分,在由PC 機與單片機組成的系統(tǒng)中,常要涉及通信問題,如果沒有統(tǒng)一的通信協(xié)議,PC機與單片機之間的信息傳遞就無法識別。</p><p>  通信協(xié)議是指通信各方事前約定規(guī)則,我們可以簡單地理解為各計算機之間進行相互會話所使用的共同語言.PC機與單片機在進行通信時,必須使用的通信協(xié)議。</p><p>  首先,在設(shè)計中自定義幾個數(shù)據(jù)通信協(xié)議,如下問提到的“a”、“b”、“c”、

38、“d”、“g”、“h”。這些協(xié)議一旦定義,在后面的執(zhí)行過程中就代表了固定的含義,不再改變,PC機、單片機、從機都靠識別這個協(xié)議來執(zhí)行程序,發(fā)送一個字節(jié)的數(shù)據(jù),接受幾個字節(jié)的數(shù)據(jù),所有的數(shù)據(jù)協(xié)議全都建立在這2個操作方法上。</p><p>  本設(shè)計中自定義“a”為PC機與單片機主機間的數(shù)據(jù)協(xié)議,意思為要求主機發(fā)送一號從機的溫度給PC機;</p><p>  自定義“b”為PC機與單片機主機

39、間的數(shù)據(jù)協(xié)議,意思為要求主機發(fā)送二號從機的溫度給PC機;</p><p>  自定義“c”為從機與主機間的數(shù)據(jù)協(xié)議,它代表從機向主機發(fā)送完四位當(dāng)前采集的溫度,這里一號從機和二號從機采集的溫度,都定義為“c”;</p><p>  自定義“d”為PC機與單片機主機之間的數(shù)據(jù)協(xié)議,意思為開始和完成命令的信號;</p><p>  自定義“g”為一號從機和單片機主機之間的

40、數(shù)據(jù)協(xié)議,意思為主機表示要采集一號從機的溫度數(shù)據(jù),一號從機要求單片機主機準備接收;</p><p>  自定義“h”為二號從機和單片機主機之間的數(shù)據(jù)協(xié)議,意思為主機表示要采集二號從機的溫度數(shù)據(jù),二號從機要求單片機主機準備接收。</p><p><b>  具體流程如下:</b></p><p>  1、PC機向單片機主機發(fā)送“d”:</p

41、><p>  這步是流程的開始,PC機向單片機主機發(fā)送數(shù)據(jù)協(xié)議,要求主機把接收的溫度發(fā)送給PC機顯示;</p><p>  2、單片機主機向一號從機發(fā)送“g”:</p><p>  單片機主機在接收到PC機發(fā)送的“d”信號后,會立即向一號從機發(fā)送“g”,要求一號從機采集溫度并且將溫度發(fā)回單片機主機;</p><p>  3、一號從機回發(fā)“g”:&

42、lt;/p><p>  一號從機接收到單片機主機的命令后,會立即向單片機主機回發(fā)信號,要求單片機主機做好接收準備;</p><p>  4、向主機發(fā)送四位當(dāng)前采集的溫度,并回發(fā)發(fā)送完成標記“c”;</p><p>  一號從機回發(fā)信號后,向主機發(fā)送四位采集的溫度,這個溫度在前文已提到標記為“c”;</p><p>  5、主機發(fā)送“h”給2號從機

43、:</p><p>  主機在接收到一號從機發(fā)來的“c”命令后,會立刻發(fā)送“h”信號給二號從機,表示要采集二號從機的數(shù)據(jù);</p><p>  6、2號從機回發(fā)“h”:</p><p>  二號從機接收到單片機主機的命令后,會立即向單片機主機回發(fā)信號,要求單片機主機做好接收準備; </p><p>  7、向主機發(fā)送四位當(dāng)前采集的溫度,并回發(fā)

44、發(fā)送完成標記“c”:</p><p>  二號從機向單片機主機回發(fā)完信號后,向主機發(fā)送四位當(dāng)前采集的溫度,這個溫度標記為“c”;</p><p>  8、主機發(fā)送“d”給PC機:</p><p>  單片機主機在接收到二號從機發(fā)送來的信號后,立刻發(fā)送信號給PC機,表示完成PC機的前一指令;</p><p>  9、PC發(fā)送“a”給主機:<

45、;/p><p>  PC機在接收到單片機主機發(fā)送的信號后,發(fā)送新一個指令給單片機主機,要求單片機主機發(fā)送一號從機采集的溫度數(shù)據(jù);</p><p>  10、主機將一號從機溫度數(shù)據(jù)發(fā)送給PC機:</p><p>  單片機主機接收到PC機的命令后將一號從機發(fā)送過來的四位當(dāng)前溫度數(shù)據(jù)轉(zhuǎn)換成ASCII碼后,發(fā)送給PC機,因為PC機只能讀取ASCII碼;</p>

46、<p>  11、PC機發(fā)送“b”給主機:</p><p>  PC機接收到單片機主機發(fā)送的即時溫度后會立即發(fā)送另一指令給單片機主機,要求單片機主機發(fā)送二號從機采集的溫度數(shù)據(jù);</p><p>  12、主機將二號從機溫度數(shù)據(jù)發(fā)送給PC機,發(fā)送完成后,返回(1):</p><p>  單片機主機接收到PC機的命令后將二號從機發(fā)送過來的四位當(dāng)前溫度數(shù)據(jù)同樣也

47、轉(zhuǎn)換成ASCII碼后,發(fā)送給PC機。此時一個完整過程結(jié)束,將返回(1)開始另一輪采集。</p><p>  3.2 DS18B20溫度測量軟件的設(shè)計</p><p>  由于DS18B20 單線通信功能是分時完成的,它有嚴格的時隙概念,因此讀寫時序很重要。系統(tǒng)對DS18B20的各種操作必須按協(xié)議進行。操作協(xié)議為:初始化DS18B20(發(fā)復(fù)位脈沖)→發(fā)ROM 功能命令→發(fā)存儲器操作命令→處

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

49、如圖3.1所示 。</p><p>  讀出溫度子程序的主要功能是讀出RAM中的9個字節(jié),在讀出時需進行CRC 校驗,校驗有錯時不進行溫度數(shù)據(jù)的改寫,其程序流程圖如圖3.2所示。</p><p>  從DS18B20讀取出的二進制值必須先轉(zhuǎn)換成十進制值,才能用于字符的顯示。因為DS18B20的轉(zhuǎn)換精度為9~12 位可選,為了提高精度采用12位。在采用12位轉(zhuǎn)換精度時,溫度寄存器里的值是以0

50、.0625為步進的,即溫度值為溫度寄存器里的二進制值乘以0.0625,就是實際的十進制溫度值。</p><p>  3.3 多機通信軟件的設(shè)計</p><p>  ATMAGE16單片機有串行發(fā)送緩沖器/接收緩沖器(SBUF)、串行口控制寄存器(SCON)、特殊功能寄存器(PCON)。通過設(shè)置SCON可以有四種工作方式,其中工作方式2、3 適用于多機通信。在串行通信前,通過程序預(yù)先將各從

51、機串行口設(shè)置為方式2或方式3,并使SM2和REN(允許串行接收控制位)為1,允許串行口中斷。主機與從機通信時,將SM2置0,準備接收數(shù)據(jù),否則維持SM2為1,這樣在主機發(fā)送數(shù)據(jù)時(此時主機發(fā)送數(shù)據(jù)中第9 位為0),只有地址相符的從機可接收數(shù)據(jù),</p><p>  圖3.1 DS18B20溫度主程序流程圖 圖3.2 讀出溫度子程序流程圖</p><p>  其

52、余從機對數(shù)據(jù)信息不予理睬,從而可以實現(xiàn)多機通信集散型控制系統(tǒng)將各控制單元分散到現(xiàn)場各控制點。從機主程序和串行口中斷服務(wù)程序如圖3.3所示。</p><p>  PC 機與單片機的串口通信中,ATMAGE16單片機的Pl.3和Pl.4口分別模擬串行通信的發(fā)送和接收端,其接口程序主要由發(fā)送子程序和接收子程序組成。通信速率9600bps,幀格式為N.8.l。發(fā)送時,先發(fā)送一個起始位(低電平),接著 按低位在先的順序發(fā)

53、送8位數(shù)據(jù),最后發(fā)送停止位。接收時,先判斷P1.4接收端口是否有起始低電平出現(xiàn),如有則按低位在先的順序接收8位數(shù),最后判斷P1.4 口是否有停止高電平出現(xiàn),如有則完成一個數(shù)據(jù)接收,否則繼續(xù)等待。其中軟件編寫要嚴格按照異步通信的時序進行。</p><p>  圖3.3 從機主程序和串行口中斷服務(wù)程序</p><p>  3.4 DS18B20工作時序問題</p><p&

54、gt;  DS18B20的一線工作協(xié)議流程是:初始化→ROM操作指令→存儲器操作指令→數(shù)據(jù)傳輸。其工作時序包括初始化時序、寫時序和讀時序。 </p><p>  主機即單片機首先發(fā)480us---960us的低電平,進行復(fù)位,然后釋放總線,之后總線被外部上拉電阻電阻抬高,大約等待15—60us之后,DS18B20發(fā)出60到240us的低電平信號,以示存在,至此初始化結(jié)束。 寫“0“的時候,首先單片機發(fā)復(fù)位信號,然

55、后發(fā)“0”于是低電平持續(xù)60us就完成了寫“0”寫“1”的時候首先單片機發(fā)復(fù)位信號,持續(xù)時間大于1us小于15us然后發(fā)“1”持續(xù)50us以上即可。 讀時序也是主機先發(fā)低電平,然后在15us內(nèi)檢測連接DS18B20的數(shù)據(jù)線的引腳,從而讀得相應(yīng)值。</p><p><b>  4 電路的設(shè)計</b></p><p>  本章分析了分布式溫度采集系統(tǒng)的各主要功能模塊的設(shè)

56、計與實現(xiàn),具體包括溫度測量電路模塊和串口通信電路模塊。</p><p>  4.1 溫度測量電路的設(shè)計</p><p>  溫度測量采用DS18B20 數(shù)字式溫度傳感器。由DS18B20 構(gòu)成的智能溫度測量裝置由三部分組成:DS18B20 溫度傳感器、ATMAGE16、顯示模塊。產(chǎn)品的主要技術(shù)指標:①測量范圍:-55℃~+125℃,②測量精度:0.5℃,③反應(yīng)時間≤500ms。為了達到更

57、高的精度,則在對DSl8B20測溫原理進行詳細分析的基礎(chǔ)上,采取直接讀取DSl8B20內(nèi)部暫存寄存器的方法,將DSl8B20 的測溫分辨率提高到0.01℃~0.1℃,DSl8B20內(nèi)部暫存寄存器的分布如表4-1所列,其中第7字節(jié)存放的是當(dāng)溫度寄存器停止增值時計數(shù)器l的計數(shù)剩余值,第8字節(jié)存放的是每度所對應(yīng)的計數(shù)值。這樣,就可以通過下面的方法獲得高分辨率的溫度測量結(jié)果。</p><p>  表4-1 DS18B

58、20內(nèi)部暫存器</p><p>  基于DS18B20的溫度測量裝置電路圖如圖4.1所示:</p><p>  圖4.1 溫度測量電路</p><p>  溫度傳感器DS18B20將被測環(huán)境溫度轉(zhuǎn)化成帶符號的數(shù)字信號(以十六位補碼形式,占兩個字節(jié)),傳感器可置于離裝置150米以內(nèi)的任何地方,輸出腳I/O直接與單片機的P1.1 相連,R1為上拉電阻,傳感器采用外部電源

59、供電。ATMAGE16 是整個裝置的控制核心,ATMAGE16內(nèi)帶1K字節(jié)的FlashROM,用戶程序存放在這里。顯示器模塊由四位一體的共陽數(shù)碼管和4個9012組成。系統(tǒng)程序分傳感器控制程序和顯示器程序兩部分,傳感器控制程序是按照DS18B20的通信協(xié)議編制。系統(tǒng)的工作是在程序控制下,完成對傳感器的讀寫和對溫度的顯示。</p><p>  4.2 串口通信電路的設(shè)計</p><p>  

60、為了增加單片機多機通信的距離,該部分電路采用RS232標準接口,通信距離可以達到15米;如果采用RS422 或是RS485 接口,通信距離會更遠。多機通信接口原理圖見圖1 。在數(shù)據(jù)傳輸過程中采用的是RS232 電平,提高了抗干擾能力。需要在主機串行接口和從機串行接口進行電平轉(zhuǎn)換:TTL-RS232-TTL。這都是用MAX232 接口芯片實現(xiàn)的,具體的電路如圖4.2所示。</p><p>  圖4.2 TTL-R

61、S232-TTL電平轉(zhuǎn)換電路</p><p>  通信電路是本設(shè)計的重要組成部分,負責(zé)溫度數(shù)據(jù)的采集和數(shù)據(jù)的上傳。包括單片機多機串口通信電路,PC 機與ATMAGE16的串口通信電路。其中主單片機ATMAGE16既要和從機通信,還要負責(zé)將數(shù)據(jù)通過串口發(fā)送到PC機上。而ATMAGE16 單片機只有一個串行通信口,這就需要用硬件或是軟件擴展一個串行通信口。本設(shè)計采用一種用單片機普通I/O口和相應(yīng)軟件實現(xiàn)串行通信的方法

62、。</p><p>  5 分布式溫度采集系統(tǒng)設(shè)計</p><p>  數(shù)字式傳感器一般采用單總線技術(shù)(1-WIREBUS),即在單片機或計算機接口中只用一根導(dǎo)線(輸入/ 輸出信號線),美國Dallas公司最新推出的1-WireBus數(shù)字式溫度傳感器DS18B20,與傳統(tǒng)的溫度傳感器不同,它能夠直接讀出被測溫度,并且可根據(jù)實際要求通過簡單的編程實現(xiàn)9~12位的數(shù)字值讀數(shù)方式,可以分別在9

63、3.75ms 和750ms內(nèi)將溫度值轉(zhuǎn)化為9 位和12位的數(shù)字量,對應(yīng)的可分辨溫度分別為0.5℃、0.25℃、0.125℃和0.0625℃;為實現(xiàn)與PC機串口長距離數(shù)據(jù)通信,系統(tǒng)采用了RS232 串行接口,通信距離可以達到15m,如果采用RS422或RS485串行接口可以達到1000m。串口通信由PC機與單片機的通信和單片機多機通信組成,每個從機負責(zé)溫度的測量然后通過多機通信把溫度數(shù)據(jù)發(fā)送到主單片機上,最后PC機通過VB程序控制串口把主

64、單片機上的所有溫度數(shù)據(jù)收集起來。系統(tǒng)框圖如圖5.1所示。</p><p><b>  圖5.1 系統(tǒng)框圖</b></p><p>  6  ICCAVR制作環(huán)境及介紹</p><p>  本章介紹了ICCAVR的制作環(huán)境,ICCAVR 中的文件類型及其文件的擴展名、附注和擴充,并介紹了IAR 或其它ANSI C 編譯系統(tǒng)的代碼轉(zhuǎn)換。&

65、lt;/p><p>  6.1 ICCAVR 介紹</p><p>  本節(jié)主要介紹了ICCAVR文件的基本特點、類型、擴展名等。</p><p>  6.1.1 ImageCraft 的ICCAVR 介紹</p><p>  ImageCraft 的ICCAVR 是一種使用符合ANSI 標準的C 語言來開發(fā)微控制器(MCU)程序的一個工具,

66、它有以下幾個主要特點:</p><p>  ICCAVR 是一個綜合了編輯器和工程管理器的集成工作環(huán)境(IDE),其可在WINDOWS9X/NT 下工作。</p><p>  源文件全部被組織到工程之中,文件的編輯和工程的構(gòu)筑也在這個環(huán)境中完成。編譯錯誤顯示在狀態(tài)窗口中,并且當(dāng)你用鼠標單擊編譯錯誤時,光標會自動跳轉(zhuǎn)到編輯窗口中引起錯誤的那一行。這個工程管理器還能直接產(chǎn)生您希望得到的可以直接

67、使用的INTEL HEX 格式文件,INTEL HEX 格式文件可被大多數(shù)的編程器所支持,用于下載程序到芯片中去。</p><p>  ICCAVR 是一個32 位的程序,支持長文件名。</p><p>  本論文并不介紹通用的C 語言語法知識,僅介紹使用ICC AVR 所必須具備的知識。 </p><p>  6.1.2 ICCAVR 中的文件類型及其擴展名&l

68、t;/p><p>  文件類型是由它們的擴展名決定的,IDE 和編譯器可以使用以下幾種類型的文件。</p><p><b>  輸入文件:</b></p><p>  .c 擴展名----表示是C 語言源文件</p><p>  .s 擴展名----表示是匯編語言源文件</p><p>  .h 擴展

69、名----表示是C 語言的頭文件</p><p>  .prj 擴展名----表示是工程文件,這個文件保存由IDE 所創(chuàng)建和修改的一個工程的有</p><p><b>  關(guān)信息。</b></p><p>  .a 擴展名----庫文件,它可以由幾個庫封裝在一起。libcavr.a 是一個包含了標準C 的庫和AVR 特殊程序調(diào)用的基本庫。如果庫

70、被引用,鏈接器會將其鏈接到您的模塊或文件中。您也可以創(chuàng)建或修改一個符合你需要的庫。</p><p><b>  輸出文件</b></p><p>  .s 對應(yīng)每個C 語言源文件,由編譯器在編譯時產(chǎn)生的匯編輸出文件。</p><p>  .o 由匯編文件匯編產(chǎn)生的目標文件,多個目標文件可以鏈接成一個可執(zhí)行文件。</p><p

71、>  .hex INTEL HEX 格式文件,其中包含了程序的機器代碼。</p><p>  .eep INTEL HEX 格式文件,包含了EEPROM 的初始化數(shù)據(jù)。</p><p>  .cof COFF 格式輸出文件,用于在ATMEL 的AvrStudio 環(huán)境下進行程序調(diào)試。</p><p>  .lst 列表文件,在這個文件中列舉出了目標代碼對應(yīng)的最

72、終地址。</p><p>  .mp 內(nèi)存映象文件 它包含了您程序中有關(guān)符號及其所占內(nèi)存大小的信息</p><p>  .cmd NoICE 2.xx 調(diào)試命令文件。</p><p>  .noi NoICE 3.xx 調(diào)試命令文件。</p><p>  .dbg ImageCraft 調(diào)試命令文件。</p><p>

73、  6.1.3 附注和擴充</p><p>  #pragma (編譯附注)</p><p>  這個編譯器接受以下附注:</p><p>  #pragma interrupt_handler <func1>:<vector number> <func2>:<vector> ...</p><p

74、>  這個附注必須在函數(shù)之前定義,它說明函數(shù)func1、func2 是中斷操作函數(shù),所以編譯器在中斷操作函數(shù)中生成中斷返回指令reti 來代替普通返回指令ret ,并且保存和恢復(fù)函數(shù)所使用的全部寄存器;同樣編譯器根據(jù)中斷向量號vector number 生成中斷向量地址。</p><p>  #pragma ctask <func1> <func2>...</p>&l

75、t;p>  這個附注指定了函數(shù)不生成揮發(fā)寄存器來保存和恢復(fù)代碼,它的典型應(yīng)用是在RTOS實時操作系統(tǒng)中讓RTOS 核直接管理寄存器。</p><p>  #pragma text:<name></p><p>  改變代碼段名稱,使其與命令行選項相適應(yīng)。</p><p>  #pragma data:<data></p>

76、<p>  改變數(shù)據(jù)段名稱,使其與命令行選項相適應(yīng)。這個附注在分配全局變量至EEPROM中時必須被使用。</p><p>  #pragma abs_address:<address></p><p>  函數(shù)與全局數(shù)據(jù)不使用浮動定位(重定位),而是從<address>開始分配絕對地址。這在訪問中斷向量和其它硬件項目時特別有用。</p>&l

77、t;p>  #pragma end_abs_address</p><p>  結(jié)束絕對定位,使目標程序使用正常浮動定位。</p><p><b>  C++ 注釋</b></p><p>  如果你選擇了編譯擴充(Project->Options->Compiler),你可以在你的源代碼中使用C ++的 // 類型的注釋。&

78、lt;/p><p><b>  二進制常數(shù)</b></p><p>  如果你選擇了編譯擴充(Project->Options->Compiler),你可以使用0b<1|0>* 來指定二進制常數(shù),例如0b10101 等于十進制數(shù)21。</p><p><b>  在線匯編</b></p>

79、<p>  你可以使用asm("string")函數(shù)來指定在線匯編代碼。</p><p>  6.1.4 代碼轉(zhuǎn)換</p><p>  IAR 或其它ANSI C 編譯系統(tǒng)的代碼轉(zhuǎn)換</p><p>  IAR C 編譯器作為應(yīng)用于AVR 的第一個C 編譯器,它有十分豐富的源代碼。當(dāng)你從IAR編譯系統(tǒng)轉(zhuǎn)換到ImageCraft 編譯系

80、統(tǒng)時,絕大多數(shù)符合ANSI C標準的程序代碼不需要轉(zhuǎn)換,IAR C 中IO 寄存器的定義與ICCAVR 也是相同的。</p><p>  中斷操作描述,ICCAVR 使用pragma 附注描述中斷操作函數(shù),而IAR 引入了語法擴充(interrupt 關(guān)鍵字),下面是一個對照:</p><p>  在 ICCAVR 中:</p><p>  #pragma inte

81、rrupt_handler func:4 // 4 是這個中斷的向量號,func 為中斷處理函數(shù)名稱,ICCAVR 可以使多個中斷向量共用一個中斷處理函數(shù)。</p><p><b>  在 IAR 中:</b></p><p>  interrupt [vector_name] func() // vector_name 是某一個中斷向量的名稱,IAR C 的中斷向量

82、地址使用中斷名稱來代替,以增加程序的可讀性。</p><p><b>  擴充關(guān)鍵字</b></p><p>  IAR 引入flash 關(guān)鍵字將項目分配進入程序存貯空間(FLASH 存貯器),ICCAVR 使用const 關(guān)鍵字來達到相同的目的。</p><p><b>  過程調(diào)用轉(zhuǎn)換</b></p>&

83、lt;p>  在兩個編譯系統(tǒng)之間函數(shù)參數(shù)傳遞使用的寄存器是不同的,這僅影響手工寫的匯編函數(shù)。</p><p>  在線匯編、宏等,IAR 不支持在線匯編符號,而ICCAVR 支持在線匯編。</p><p>  6.2 ICCAVR 向?qū)?lt;/p><p>  自你啟動 IDE 后,首先從Project 菜單系統(tǒng)選擇Open 命令,進入\icc\examples

84、.avr 目錄并且選擇并打開“l(fā)ed”工程,工程管理器顯示在這個工程中只有一個文件led.c。 然后從Project 菜單中選擇Options 命令打開工程編譯選項,在"Target"標號下選擇目標處理器。然后從Project 菜單中選擇Make Project 命令,IDE 將調(diào)用編譯器編譯這個工程文件,并且在狀態(tài)窗口中顯示所有的信息。</p><p>  6.3 ICCAVR 的IDE

85、環(huán)境</p><p>  6.3.1 編譯一個單獨的文件</p><p>  正常建立一個輸出文件的次序是,你首先應(yīng)該建立一個工程文件并且定義屬于這個工程的所有文件。然而,我們有時也需要將一個文件單獨地編譯為目標文件或最終的輸出文件。這時可以這樣操作:從IDE 菜單“File” 中選擇“Compile File...”命令,來執(zhí)行“to Object”和“to Output”中的任意一個

86、。當(dāng)你調(diào)用這個命令時,文件應(yīng)該是打開的并且在編輯窗口中可以編輯的。</p><p>  編譯一個文件為目標文件(to Object),對檢查語法錯誤和編譯一個新的啟動文件是很有用的。編譯一個文件為輸出文件(to Output),對較小的并且是一個文件的程序較為有用。</p><p>  6.3.2 創(chuàng)建一個新的工程</p><p>  為創(chuàng)建一個新的工程,從菜單“

87、Project”中選擇“New”命令,IDE 會彈出一個對話框,在對話框中你可以指定工程的名稱,這也是你的輸出文件的名稱。如果你使用一些已經(jīng)建立的源文件,你可在菜單“Project”中選擇“AddFile(s) ”命令。</p><p>  另外,你可以在菜單“File”中選擇“New”命令來建立一個新的源文件來輸入你的代碼,你可以在菜單“File”中選擇“Save”或“Save As”命令來保存文件。然后你可以

88、象上面所述調(diào)用“AddFile(s)”命令將文件加入到工程中,也可在當(dāng)前編輯窗口中單擊鼠標右鍵選擇“Add to Project”將文件加入已打開的工程列表中。通常你輸出源文件在工程同一個目錄中,但也可不作這樣要求。</p><p>  工程的編譯選項使用菜單中 “Project”中的“Options”命令。</p><p>  6.3.3 工程管理</p><p&g

89、t;  工程管理允許你將多個文件組織進同一個工程,而且定義它們的編譯選項,這個特性允許你將工程分解成許多小的模塊。當(dāng)你處理工程構(gòu)筑時,只有一個文件被修改和重新編譯,如果一個頭文件作了修改,當(dāng)你編譯包含這個頭文件的源文件時,IDE 會自動重新編譯已經(jīng)改變的頭文件。</p><p>  一個源文件可以寫成 C 或匯編格式的任意一種。C 文件必須使用“.c”擴展名匯編文件必須使用“.s”擴展名。你可以將任意文件放在工程

90、列表中,例如你可以將一個工程文檔文件放在工程管理窗口中,工程管理器在構(gòu)筑工程時對源文件以外的文件不予理睬。</p><p>  對目標器件不同的工程,可以在編譯選項中設(shè)置有關(guān)參數(shù)。當(dāng)你新建一個工程時,使用默認的編譯選項,你可以將現(xiàn)有編譯選項設(shè)置成默認選項,也可將默認編譯選項裝入現(xiàn)有工程中。默認編譯選項保存在default.prj 文件中。</p><p>  為避免你的工程目錄混亂,你可以

91、指定輸出文件和中間文件到一個指定的目錄,通常這個目錄是你的工程目錄的一個子目錄。</p><p>  6.3.4 編輯窗口</p><p>  編輯窗口是你與 IDE 交流信息的主要區(qū)域,在這個窗口中你可以修改相應(yīng)的文件。當(dāng)編譯存在錯誤時,用鼠標單擊有關(guān)錯誤信息時,編輯器會自動將光標定位在錯誤行的位置。</p><p>  6.3.5 應(yīng)用構(gòu)筑向?qū)?lt;/p&

92、gt;<p>  應(yīng)用構(gòu)筑向?qū)怯糜趧?chuàng)建外圍設(shè)備初始化代碼的一個圖形界面。你可以單擊工具條中的“Wizard”按鈕或菜單“Tools”中的“ApplicationBuilder”命令來調(diào)用它。</p><p>  應(yīng)用構(gòu)筑向?qū)褂镁幾g選項中指定的目標MCU來產(chǎn)生相應(yīng)的選項和代碼。</p><p>  應(yīng)用構(gòu)筑向?qū)э@示目標 MCU 的每一個外圍設(shè)備子系統(tǒng),它的使用是很顯而易見的

93、。在這里你可以設(shè)置MCU 的所具有的中斷、內(nèi)存、定時器、IO 端口、UART 、SPI 和模擬量比較器等外圍設(shè)備,并產(chǎn)生相應(yīng)的代碼,如果你需要的話,還可產(chǎn)生main( )函數(shù)。</p><p>  6.3.6 終端仿真</p><p>  IDE 有一個內(nèi)置的終端仿真器,注意它不包含任意一個ISP(在系統(tǒng)編程)功能,但它可以作為一個簡單的終端,或許可以顯示你的目標裝置的調(diào)試信息,也可下載

94、一個ASC碼文件。從 6.20 版本開始IDE 加入了對ISP 的支持。</p><p><b>  結(jié) 論</b></p><p>  ATMAGE16單片機體積小、重量輕、抗干擾能力強、對環(huán)境要求不高、價格低廉、可靠性高、靈活性好。即使是非電子計算機專業(yè)人員,通過學(xué)習(xí)一些專業(yè)基礎(chǔ)知識以后也能依靠自己的技術(shù)力量來開發(fā)所希望的單片機應(yīng)用系統(tǒng)。在傳統(tǒng)的溫度測量系統(tǒng)中,

95、往往采用模擬的溫度傳感器進行設(shè)計,必須經(jīng)過A/D轉(zhuǎn)換后才可以被微處理器識別和處理。這樣的設(shè)計方法不僅對前端模擬信號處理電路提出了更高的要求,而且不具有數(shù)字通信和網(wǎng)絡(luò)功能。本設(shè)計文結(jié)合DSl8B20的新特性和現(xiàn)代溫度測量系統(tǒng)提出的新要求,提出了基于智能數(shù)字溫度傳感器DSl8820的高精度、分布式多點溫度測量系統(tǒng)設(shè)計方案。該方案具有安裝方便、數(shù)字化程度高、精度高、適應(yīng)性強等特點,在多種溫度檢測中具有廣闊的應(yīng)用前景。經(jīng)過模塊化的電路測試、軟件

96、調(diào)試和系統(tǒng)組裝,測溫精度可以達到±0.01℃。設(shè)計出的多路遠距離自動化、智能化溫度采集系統(tǒng)可以廣泛應(yīng)用于工業(yè)控制領(lǐng)域。本次設(shè)計只給出2路從機采集,根據(jù)需要可以增加更多從機進行溫度采集。</p><p><b>  參 考 文 獻</b></p><p>  1 何立民.單片機應(yīng)用系統(tǒng)設(shè)計系統(tǒng)配置與接口技術(shù).北京:北京航空航天大學(xué)出版社.1999</p&

97、gt;<p>  2 李廣弟.單片機基礎(chǔ).北京:北京航空航天大學(xué)出版社.1999</p><p>  3 劉守義.單片及應(yīng)用技術(shù).西安:西安電子科技大學(xué)出版社.2002</p><p>  4 潘新民.微型計算機與傳感技術(shù).北京:人民郵電出版社.1988</p><p>  5 辛友順等.單片機應(yīng)用系統(tǒng)設(shè)計與實現(xiàn).福州:福建科學(xué)技術(shù)出版社.2005&l

98、t;/p><p>  6 陳嘉慶.工業(yè)控制計算機應(yīng)用100例.北京:微計算機信息編輯部.2002</p><p>  7 王幸之.AT89系列單片機原理與接口技術(shù).北京:北京航空航天大學(xué)出版社.2004</p><p>  8 張 軍.AVR單片機應(yīng)用系統(tǒng)開發(fā)典型實例.第一版.中國電力出版社</p><p>  9 譚浩強.C語言程序設(shè)計(第二

99、版).北京清華大學(xué)出版社.2005</p><p>  10馬忠梅.單片機的C語言應(yīng)用程序設(shè)計(第三版).北京:北京航空航天大學(xué)出版社.2003</p><p>  11夏路易.電路原理圖與電路板設(shè)計教程PROTEL99SE.北京:北京希望電子出版社</p><p><b>  致 謝</b></p><p>  在我

100、的論文收筆之際,首先,我要衷心感謝我的指導(dǎo)老師xx老師。在畢業(yè)設(shè)計期間,xx老師給予了我很大的幫助、鼓勵和支持,十分關(guān)心我的設(shè)計進度,對畢業(yè)設(shè)計提出大量寶貴的意見和建議,在他的悉心指導(dǎo)和大力支持下,我的畢業(yè)課程設(shè)計得以順利完成。</p><p>  最后,再次向指導(dǎo)老師xx老師表示我最誠摯的謝意。</p><p>  附件1:總系統(tǒng)的原理圖如下:</p><p> 

101、 附件2:單片機ATMAGE16控制DS18B20的程序:</p><p>  #include <iom16v.h></p><p>  #include <macros.h></p><p>  #define  uchar unsigned char</p><p>  #define  ui

102、nt unsigned int</p><p>  uchar Temp=0x00,Flag=0,Point=0;</p><p>  const uchar DISCODE[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//0~9</p><p>  const uchar order[4]={

103、0x07,0x0b,0x0d,0x0e};</p><p>  const uchar fuhao1[8]={0X81,0XF7,0XF7,0X87,0XF5,0XF5,0XF5,0X00};//正字</p><p>  const uchar fuhao0[8]={0xf7,0xc7,0xeb,0x81,0xb5,0xb5,0xeb,0x9C};//負字</p><p

104、>  #pragma interrupt_handler Timer0:10void Timer0(void)//每32ms掃描一次數(shù)碼管</p><p><b>  {</b></p><p><b>  uchar j;</b></p><p>  for(j=0;j<8;j++)</p>

105、<p><b>  {</b></p><p>  PORTB=1<<j;</p><p>  if(Flag)PORTD=fuhao1[j];</p><p>  else PORTD=fuhao0[j];</p><p>  DelayMS(1);</p><p>  P

106、ORTB=0x00;</p><p>  PORTD=0xff; </p><p><b>  }</b></p><p>  TCNT0=0x00;//重新開始</p><p><b>  }</b></p><p>  void Dis_Init(void)&l

107、t;/p><p><b>  {</b></p><p><b>  uchar i;</b></p><p>  DDRC=0xff;</p><p>  DDRA=0xff;</p><p>  DDRD=0xff;</p><p>  PORTC=0

108、xf0;</p><p>  for(i=0;i<10;i++)</p><p><b>  {</b></p><p>  PORTA=DISCODE[9-i];</p><p>  DelayMS(100);</p><p><b>  }</b></p>

109、;<p>  TIMSK=0x01;</p><p>  TCNT0=0x00;</p><p>  SREG=0x80;</p><p>  TCCR0=0x04;//512分頻</p><p><b>  }</b></p><p>  void Dis_Data(uchar d

110、isdata)</p><p><b>  {</b></p><p>  char disbuf[4],i,j;</p><p>  SREG=0x00;</p><p>  disbuf[0] = disdata /100;</p><p>  disbuf[1] = (disdata/10)

111、%10;</p><p>  disbuf[2] = disdata%10;</p><p>  disbuf[3] = Point;</p><p>  for(i=0;i<4;i++)</p><p><b>  {</b></p><p>  PORTC = order[i];<

112、/p><p>  PORTA = DISCODE[disbuf[i]];</p><p>  if(i==2) PORTA|=0x80;//顯示小數(shù)點</p><p>  DelayMS(2);</p><p>  PORTA=0x00;</p><p>  DelayMS(1);</p><p>

113、<b>  }</b></p><p>  SREG=0x80;</p><p><b>  }</b></p><p>  void gettemp(void)</p><p><b>  {</b></p><p>  char temph=0,te

114、mpl=0,TempL=0;</p><p>  while(Check18B20());//驗證初始化成功</p><p>  Write18B20(0xcc);</p><p>  Write18B20(0x44);  //啟動轉(zhuǎn)換</p><p>  //DelayMS(500);    

115、;   //750MS</p><p>  while(Check18B20());//成功</p><p>  Write18B20(0xcc);</p><p>  Write18B20(0xbe);  //讀取溫度值</p><p>  templ = Read18B20();</p><

116、;p>  temph = Read18B20();</p><p>  while(Check18B20());</p><p>  Temp=(templ>>4)|(temph<<4);</p><p>  TempL=templ&0x0c;//小數(shù)位</p><p>  Point=(TempL>

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論