基于單片機的數字溫度計課程設計報告_第1頁
基于單片機的數字溫度計課程設計報告_第2頁
基于單片機的數字溫度計課程設計報告_第3頁
基于單片機的數字溫度計課程設計報告_第4頁
基于單片機的數字溫度計課程設計報告_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、單片機的出現是近代計算機技術發(fā)展史上的重要里程碑。 單片機自 20世紀 70 年代問世以來,以其極高的性能價格比,受到人們的重視和關注,應用很廣、 發(fā)展很快。 近年來隨著電子技術和微型計算機技術的迅速發(fā)展,單片機的檔次不斷提高,其應用領域也在不斷擴大,在工業(yè)測控、尖端科學、智能儀器儀表、日用家電、汽車電子系統(tǒng)、辦公自動化設備、個人通信終端及通信產品中得到了廣泛應用,已成為現代電子系統(tǒng)中最重要的智能化核心部件。 隨著人們生活水平的不斷提高 ,單片機控制無疑是人們追求的目標之一,它所給人帶來的方便也是不可否定的,其中數字溫度計就是一個典型的例子,但人們對它的要求越來越高,要為現代人工作、科研、生活

2、、提供更好的更方便的設施就需要從數單片機技術入手,一切向著數字化控制,智能化控制方向發(fā)展。本課程設計是在學習了單片機的基本原理的基礎上進行的,綜合利用所學單片機知識完成一個單片機應用系統(tǒng)設計并仿真實現,從而加深對單片機軟硬知識的理解,獲得初步的應用經驗;進一步熟悉和掌握單片機的內部結構和工作原理,了解單片機應用系統(tǒng)設計的基本方法和步驟。本設計的目標是用單片機和溫度傳感器及相關部件實現溫度的測量和數字顯示,測量精度小于,可以設置溫度測量的上下限,超出測溫范圍可以由蜂鳴器報警。本設計首先是確定目標,接下來是各個功能模塊的設計和相應程序的編寫。再在proteus軟件上進行仿真,若結果滿足要求,則可以

3、焊接硬件,若不滿足繼續(xù)修改,最終完成數字溫度計的整個設計任務。經過仿真,本設計達到了預期的目標。目錄0011223459990211 設計概述設計目標和要求1 .用所學的單片機知識設計制作數字溫度計;2 .測溫范圍是-20 -70;3 . 誤差小于;4 .所測的溫度值可以由LCDR碼管直接顯示;5 . 可以任意設置上下限溫度的報警功能;6 . 進一步熟悉proteus,protel,word 軟件的功能和使用方法;設計思路首先確定我們所設計的是一個數字溫度計,由單片機、溫度傳感器以及其他電路共同實現。根據所要實現的功能,先在proteus 軟件上仿真。根據所選用的硬件可以將整個軟件設計分為若干

4、子程序,有初始化、查詢時間、發(fā)送指令、讀取數據、顯示溫度等構成,可將以上子程序分別設計,實現各自的功能,再在子程序中調用,就可以實現預期的目標。在 proteus 軟件里畫出相應的電路圖,將編寫好的程序的編譯后的文件下載到proteus 電路圖的單片機里, 進行仿真, 對溫度傳感器設置不同的參數, 看是否達到了 我們設計所要求的目標,如果不符合要求,需要檢查程序算法和硬件連接是否有誤。若仿真成功,就按照電路圖焊接硬件。2 系統(tǒng)方案及硬件設計設計方案采用數字溫度芯片DS18B20測量溫度,輸出信號全數字化。采用了單總線的數據 傳輸,由數字溫度計DS18B2和ATmega16單片機構成的溫度測量裝

5、置,它直接輸出溫度 的數字信號,也可直接與計算機連接。采用ATmega16單片機控制,軟件編程的自由度大,可通過編程實現各種各樣的算術算法和邏輯控制,而且體積小,硬件實現簡單,安裝方便。該系統(tǒng)利用ATmega16芯片控制溫度傳感器DS18B2進行實時溫度檢測并顯示,能夠實現快速測量環(huán)境溫度,并可以根據需要設定上下限溫度。該系統(tǒng)擴展性非常強。該測溫系統(tǒng)電路簡單、精確度較高、實現方便、軟件設計也比較簡單。方案的硬件總體方框圖基于增強的AVR RISC吉構的低功耗8位CMO微控制器ATmega16 ,溫度傳感器采用 的DS18B20用四位數碼管顯示溫度。圖1溫度傳感器DS18B20®溫原理

6、DS18B20S度傳感器是美國DALLA芥導體公司最新推出的一種改進型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據實際要求通過簡單的編程實現9-12位的數字值讀數方式。DS18B20勺性能特點如下:(1)獨特的單線接口僅需要一個端口引腳進行通信,DS18B2猊與微處理器連接時僅需要一條口線即可實現微處理器與 DS18B2的雙向通訊。(2) DS18B20£持多點組網功能,多個 DS18B2W以并聯(lián)在惟一的三線上,實現多點組網測溫;( 3)無須外部器件,全部傳感元件及轉換電路集成在形如一只三極管的集成電路內;( 4)可通過數據線供電,電壓范圍為;(

7、5)零待機功耗;( 6)溫度以9或12位數字,對應的可分辨溫度分別為、和,可實現高精度測溫;( 7)用戶可定義報警設置;( 8)報警搜索命令識別并標志超過程序限定溫度(溫度報警條件)的器件;( 9) 負電壓特性,電源極性接反時, 溫度計不會因發(fā)熱而燒毀, 但不能正常工作;(10)測量結果直接輸出數字溫度信號,以“一線總線”串行傳送給CPU同時可傳送CR版驗碼,具有極強的抗干擾糾錯能力I低溫度系數振蕩器II計數揩1Ti比較預置Tx,.1,力口 1v vDS呼晶百!麗叫裝或8腳SOC裝,其引而排列及與端菽腳UM耳2及圖3以及圖4日勺測溫原埋)如M示:一 L圖2 .腳排中 停止計數器2圖3內”結構U

8、fflT2圖4 DS18B20測溫原理圖64位ROM勺結構開始8位是產品類型的編號,接著是每個器件的惟一的序號,共有48位,最后8位是前面56位的CRC僉驗碼,這也是多個 DS18B2W以采用一線進 行通信的原因。溫度報警觸發(fā)器 TH和TL,可通過軟件寫入戶報警上下限。DS18B2恥度傳感器的內部存儲器還包括一個高速暫存 RAMF 口一個非易失性的可電 擦除的EERAM高速暫存RAM勺結才勾為8字節(jié)的存儲器,結構如圖4所示。頭2個字節(jié) 包含測得的溫度信息,第3和第4字節(jié)TH和TL的拷貝,是易失的,每次上電復位時 被刷新。第5個字節(jié),為配置寄存器,它的內容用于確定溫度值的數字轉換分辨率。DS18

9、B2g作時寄存器中的分辨率轉換為相應精度的溫度數值。 該字節(jié)各位的定義如圖5所示。低5位一直為1, TM是工作模式位,用于設置S18B20t工作模式還是在測試 模式,DS18B20B廠時該位被設置為0,用戶不要去改動,R1和R0決定溫度轉換的精 度位數,來設置分辨率。溫度LSB溫度MSBTH用戶字節(jié)1TL用戶字節(jié)2配置寄存器保留保留保留CRCTM R1 R0 1111圖5 DS18B20的字節(jié)定義DS18B20的分辨率定義如表2-1所示表2-1分辨率設置表R0R1分時 最大溫度轉移時間009位0110位1011位375ms1112位750ms由表1可見,DS18B2溫度轉換的時間比較長,而且分

10、辨率越高,所需要的溫度數 據轉換時間越長。因此,在實際應用中要將分辨率和轉換時間權衡考慮。主機控制DS18B20I成溫度轉換過程是:每一次讀寫之前都要對DS18B20S行復位,即將數據總線下拉500us,然后釋放,DS18B20攵到信號后等待16-60us左右,之后發(fā) 出60-240us的存在低脈沖,主CPU攵到此此信號表示復位成功;復位成功后發(fā)送一條 ROM旨令,然后發(fā)送RAM旨令,這1¥才能對DS18B20®行預訂的讀寫操作。表2-2ROM指令集指令約定代碼功能讀ROM33H讀DS18B20H勺編碼符合ROM55H發(fā)出此命令后,接著發(fā)出64位RO端碼,訪問單線總線 上與

11、該編輯相對應的DS18B20g之做出響應,為下一步 對1% DS18B20I勺讀寫作準備搜索ROM0F0H用于確定掛接在同一總線上的 DS18B2階數和識別64位ROMft址,為操作各器件作準備跳過ROM0CCH忽略64位ROMft址,直接向DS18B2改送溫度變換指令告警搜索命令0ECH執(zhí)行后,只有溫度跳過設定值上限或下限的片子才方旨做 出反應表2-3RAM指令集指令約定代碼功能溫度轉換44H啟動DS18B208行溫度轉換讀暫存器0BEH讀暫存器9個字節(jié)內容寫暫存器4EH將數據寫入暫存器的TH TL字節(jié)復制暫存器48H把暫存器的TH TL字節(jié)寫到E2RAW重調E2RAM0B8H把E2RAMf

12、r的TH TL字節(jié)寫暫存器TH TL字節(jié)讀供電方式0B4H啟動DS18B20g送電源供電方式的信號給主 CPUDS18B20勺測溫原理是這這樣的,器件中低溫度系數晶振的振蕩頻率受溫度的影響很小, 用于產生固定頻率的脈沖信號送給減法計數器1; 高溫度系數晶振隨溫度變化其振蕩頻率明顯改變,所產生的信號作為減法計數器2 的脈沖輸入。器件中還有一個計數門,當計數門打開時,DS18B2而對低溫度系數振蕩器產生的時鐘脈沖進行計數進而完成溫度測量。計數門的開啟時間由高溫度系數振蕩器來決定,每次測量前,首先將最低溫所對應的一個基數分別置入減法計數器1、 溫度寄存器中, 計數器 1 和溫度寄存器被預置在最低溫所

13、對應的一個基數值。減法計數器1 對低溫度系數晶振產生的脈沖信號進行減法計數,當減法計數器1 的預置值減到 0時, 溫度寄存器的值將加 1, 減法計數器1 的預置將重新被裝入, 減法計數器 1 重新開始對低溫度系數晶振產生的脈沖信號進行計數,如此循環(huán)直到減法計數器計數到0 時,停止溫度寄存器的累加,此時溫度寄存器中的數值就是所測溫度值。其輸出用于修正減法計數器的預置值,只要計數器門仍未關閉就重復上述過程,直到溫度寄存器值大致被測溫度值。硬件設計主控制器 ATmega16ATmega16 是基于增強的 AVR RISC 結構的低功耗8 位 CMOS 微控制器。由于其先進的指令集以及單時鐘周期指令執(zhí)

14、行時間, ATmega16 的數據吞吐率高達1 MIPS/MHz ,從而可以緩減系統(tǒng)在功耗和處理速度之間的矛盾。 ATmega16 AVR 內核具有豐富的指令集和 32 個通用工作寄存器。 所有的寄存器都直接與算邏單元 (ALU) 相連接,使得一條指令可以在一個時鐘周期內同時訪問兩個獨立的寄存器。這種結構大大提高了代碼效率,并且具有比普通的 CISC 微控制器最高至10 倍的數據吞吐率。復位電路在這里采用的是按鈕加上電復位,系統(tǒng)每次上電和每次按下復位按鈕,系統(tǒng)就會復位。時鐘振蕩電路采用的是1MHZ勺晶振頻率,它與單片機的硬件連接電路如圖7所示圖 7 晶振電路報警點調節(jié)電路可以通過微動開關,任意

15、調節(jié)報警點的上下限,電路如圖8所示圖8報警點調節(jié)電路顯示電路顯示電路采用集成的四位一體的數碼管,為共陰極結構,通過設置不同的段碼可 以顯示溫度。圖9顯示電路3軟件設計系統(tǒng)分析系統(tǒng)程序主要包括DS182M始化程序,向DS1820文字節(jié)程序,向DS1820W字節(jié) 程序,讀取溫度及轉換程序,溫度顯示程序,報警程序。圖10主程序流程圖各子程序及其流程圖設計初始化子程序令為高電平,延遲一段時間后令為低電平觸發(fā)DS1820 的初始化,低電平持續(xù)一段時間,然后讀取的狀態(tài),直到的狀態(tài)回到高電平時說明初始化完成。#include <>#define DQ P2_7#define dm P0sbit

16、w0=P2A3;sbit w1=P2A4;sbit w2=P2A5;sbit w3=P2A6;sbit jia=P2A0;sbit jian=P2A1;sbit xuan=P2A2;/sbit p2_7=P2A7;sbit speaker=P1A0;#define uint unsigned int#define uchar unsigned charuint mark;uint xiaoshu;int temp1=0;uint H_t=10,L_t=-5;uchar table_dm=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;ucha

17、r table_dm1=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef;uchar table_fuhao=0x00,0x40;void delay(unsigned int i)while(i-); /初始化函數=1延時=0延時完成圖11初始化流程圖DS1820的讀寫字節(jié)子程序單片機向DS1820W寫字節(jié)都是從最低位開始的。Init_DS18B20(void)unsigned char x=0;DQ = 1;delay(8);DQ = 0;delay(80);DQ = 1;delay(14);x=DQ;/稍做延時后如果x=0則初始化成功x=

18、1則初始化失敗delay(20);讀一個字節(jié)圖13寫操作圖12讀操作溫度讀取及轉換子程序在讀取溫度值命令前,應使用溫度轉換命令才能保證讀入的是當前溫度值轉換過 程中DS182g拉低總線直至轉換完成,因此可以讀取溫度總線的狀態(tài)來判斷溫度轉換 是否完成。ReadOneChar(void)unsigned char i=0;unsigned char dat = 0;for (i=8;i>0;i-)DQ = 0;dat>>=1;DQ = 1;if(DQ)dat|=0x80;delay(4); return(dat);/寫一個字節(jié)圖14溫度讀取及轉換計算溫度子程序將RAW讀取值進行B

19、C幽的轉換運算,并進行溫度值正負的判定,其程序流程圖如圖14所示:WriteOneChar(unsigned char dat)unsigned char i=0;for (i=8; i>0; i-)DQ = 0;DQ = dat&0x01;delay(5);DQ = 1;dat>>=1;delay(4);/ 讀取15 溫度計算void delayms(uchar t)uint i;while(t-)for(i=0;i<100;i+);/ 顯示其流程圖如下所示:圖 16 溫度顯示其流程圖如下:ReadTemperature(void)unsigned char

20、a=0;unsigned char b=0;unsigned char i=0,t;Init_DS18B20();WriteOneChar(0xCC);WriteOneChar(0x44);Init_DS18B20();WriteOneChar(0xCC);WriteOneChar(0xBE);a=ReadOneChar();b=ReadOneChar();i=b; /* 若 b 為 1 則為負溫*/i=(i>>4);if(i=0)mark=0;t=(a>>4)|(b<<4);a=(a&0x0f);xiaoshu=a;if (a>8)(t=(t+1);else(mark=1;a=a>>4;b=b<<4;t=(a|b);t=t;t=(t+1);EA=1;return(t);圖17報警4 proteus 軟件仿真系統(tǒng)仿真設計本設計是在Proteus環(huán)境下進行仿真的,仿真所用到的器件有:單片機 ATmega16, DS182姍度傳感器,蜂鳴器,液晶顯示器,一些電阻,電容等。仿真結果分析本設計在仿真的條件下可以正確的顯示溫度,并在溫度超過所設置的最高

溫馨提示

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

評論

0/150

提交評論