




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、課程設(shè)計報告數(shù)字溫度計課程設(shè)計姓 名 學(xué) 號: 專業(yè)班級: 電子信息工程 指導(dǎo)老師: 所在學(xué)院: 電子信息工程學(xué)院 2017年 12 月 15日引言單片機的出現(xiàn)是近代計算機技術(shù)發(fā)展史上的重要里程碑。 單片機自20世紀70年代問世以來,以其極高的性能價格比,受到人們的重視和關(guān)注,應(yīng)用很廣、發(fā)展很快。 近年來隨著電子技術(shù)和微型計算機技術(shù)的迅速發(fā)展,單片機的檔次不斷提高,其應(yīng)用領(lǐng)域也在不斷擴大,在工業(yè)測控、尖端科學(xué)、智能儀器儀表、日用家電、汽車電子系統(tǒng)、辦公自動化設(shè)備、個人通信終端及通信產(chǎn)品中得到了廣泛應(yīng)用,已成為現(xiàn)代電子系統(tǒng)中最重要的智能化核心部件。 隨著人們生活水平的不斷提高, 單片機控制無疑是
2、人們追求的目標之一,它所給人帶來的方便也是不可否定的,其中數(shù)字溫度計就是一個典型的例子,但人們對它的要求越來越高,要為現(xiàn)代人工作、科研、生活、提供更好的更方便的設(shè)施就需要從數(shù)單片機技術(shù)入手,一切向著數(shù)字化控制,智能化控制方向發(fā)展。 本課程設(shè)計是在學(xué)習(xí)了單片機的基本原理的基礎(chǔ)上進行的,綜合利用所學(xué)單片機知識完成一個單片機應(yīng)用系統(tǒng)設(shè)計并仿真實現(xiàn),從而加深對單片機軟硬知識的理解,獲得初步的應(yīng)用經(jīng)驗;進一步熟悉和掌握單片機的內(nèi)部結(jié)構(gòu)和工作原理,了解單片機應(yīng)用系統(tǒng)設(shè)計的基本方法和步驟。 本設(shè)計的目標是用單片機和溫度傳感器及相關(guān)部件實現(xiàn)溫度的測量和數(shù)字顯示,測量精度小于0.5,可以設(shè)置溫度測量的上下限,超
3、出測溫范圍可以由蜂鳴器報警。 本設(shè)計首先是確定目標,接下來是各個功能模塊的設(shè)計和相應(yīng)程序的編寫。 再在proteus軟件上進行仿真,若結(jié)果滿足要求,則可以焊接硬件,若不滿足繼續(xù)修改,最終完成數(shù)字溫度計的整個設(shè)計任務(wù)。 經(jīng)過仿真,本設(shè)計達到了預(yù)期的目標。 目錄1 設(shè)計概述31.1 設(shè)計目標和要求31.2 設(shè)計思路32 系統(tǒng)方案及硬件設(shè)計42.1 設(shè)計方案42.2 方案的硬件總體方框圖42.3 溫度傳感器DS18B20測溫原理52.4 硬件設(shè)計92.4.1 主控制器ATmega1692.4.2 復(fù)位電路92.4.3 時鐘振蕩電路92.4.4 報警點調(diào)節(jié)電路102.4.5顯示電路103 軟件設(shè)計11
4、3.1系統(tǒng)分析113.2 各子程序及其流程圖設(shè)計123.2.1 初始化子程序123.2.2 DS1820的讀寫字節(jié)子程序133.2.3 溫度讀取及轉(zhuǎn)換子程序143.2.4計算溫度子程序153.2.5溫度顯示子程序163.2.6報警子程序174 proteus軟件仿真194.1 系統(tǒng)仿真設(shè)計194.2仿真結(jié)果分析195 系統(tǒng)原理圖206 心得體會211 設(shè)計概述1.1 設(shè)計目標和要求1.用所學(xué)的單片機知識設(shè)計制作數(shù)字溫度計;2.測溫范圍是-20-70;3.誤差小于0.5;4.所測的溫度值可以由LCD數(shù)碼管直接顯示;5.可以任意設(shè)置上下限溫度的報警功能;6.進一步熟悉proteus, protel
5、, word軟件的功能和使用方法;1.2 設(shè)計思路首先確定我們所設(shè)計的是一個數(shù)字溫度計,由單片機、溫度傳感器以及其他電路共同實現(xiàn)。 根據(jù)所要實現(xiàn)的功能,先在proteus軟件上仿真。 根據(jù)所選用的硬件可以將整個軟件設(shè)計分為若干子程序,有初始化、查詢時間、發(fā)送指令、讀取數(shù)據(jù)、顯示溫度等構(gòu)成,可將以上子程序分別設(shè)計,實現(xiàn)各自的功能,再在子程序中調(diào)用,就可以實現(xiàn)預(yù)期的目標。 在proteus軟件里畫出相應(yīng)的電路圖,將編寫好的程序的編譯后的文件下載到proteus電路圖的單片機里,進行仿真,對溫度傳感器設(shè)置不同的參數(shù),看是否達到了我們設(shè)計所要求的目標,如果不符合要求,需要檢查程序算法和硬件連接是否有誤
6、。 若仿真成功,就按照電路圖焊接硬件。 2 系統(tǒng)方案及硬件設(shè)計2.1 設(shè)計方案采用數(shù)字溫度芯片DS18B20 測量溫度,輸出信號全數(shù)字化。 采用了單總線的數(shù)據(jù)傳輸,由數(shù)字溫度計DS18B20和ATmega16單片機構(gòu)成的溫度測量裝置, 它直接輸出溫度的數(shù)字信號, 也可直接與計算機連接。 采用ATmega16單片機控制,軟件編程的自由度大,可通過編程實現(xiàn)各種各樣的算術(shù)算法和邏輯控制,而且體積小,硬件實現(xiàn)簡單,安裝方便。 該系統(tǒng)利用ATmega16芯片控制溫度傳感器DS18B20進行實時溫度檢測并顯示,能夠?qū)崿F(xiàn)快速測量環(huán)境溫度,并可以根據(jù)需要設(shè)定上下限溫度。 該系統(tǒng)擴展性非常強。 該測溫系統(tǒng)電路簡
7、單、精確度較高、實現(xiàn)方便、軟件設(shè)計也比較簡單。 2.2 方案的硬件總體方框圖 基于增強的AVR RISC結(jié)構(gòu)的低功耗8 位CMOS微控制器ATmega16,溫度傳感器采用的DS18B20,用四位數(shù)碼管顯示溫度。 圖12.3 溫度傳感器DS18B20測溫原理DS18B20溫度傳感器是美國DALLAS半導(dǎo)體公司最新推出的一種改進型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據(jù)實際要求通過簡單的編程實現(xiàn)9-12位的數(shù)字值讀數(shù)方式。 DS18B20的性能特點如下:(1)獨特的單線接口僅需要一個端口引腳進行通信,DS18B20在與微處理器連接時僅需要一條口線即可實現(xiàn)微處
8、理器與DS18B20的雙向通訊。 (2)DS18B20支持多點組網(wǎng)功能,多個DS18B20可以并聯(lián)在惟一的三線上,實現(xiàn)多點組網(wǎng)測溫;(3)無須外部器件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi);(4)可通過數(shù)據(jù)線供電,電壓范圍為3.0-5.5;(5)零待機功耗;(6)溫度以9或12位數(shù)字,對應(yīng)的可分辨溫度分別為0.5、0.25、0.125和0.0625,可實現(xiàn)高精度測溫;(7)用戶可定義報警設(shè)置;(8)報警搜索命令識別并標志超過程序限定溫度(溫度報警條件)的器件;(9)負電壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作;(10)測量結(jié)果直接輸出數(shù)字溫度信號,以&q
9、uot;一線總線"串行傳送給CPU,同時可傳送CRC校驗碼,具有極強的抗干擾糾錯能力DS18B20采用3腳PR35封裝或8腳SOIC封裝,其引腳排列及內(nèi)部結(jié)構(gòu)框圖如圖2及圖3以及圖4的測溫原理圖如下所示:圖2 引腳排列圖3 內(nèi)部結(jié)構(gòu)框圖預(yù)置斜率累加器比較低溫度系數(shù)振蕩器計數(shù)器1溫度寄存器Tx預(yù)置=0高溫度系數(shù)振蕩器-0計數(shù)器2T1加1停止T2圖4 DS18B20測溫原理圖64位ROM的結(jié)構(gòu)開始8位是產(chǎn)品類型的編號,接著是每個器件的惟一的序號,共有48位,最后8位是前面56位的CRC檢驗碼,這也是多個DS18B20可以采用一線進行通信的原因。 溫度報警觸發(fā)器TH和TL,可通過軟件寫入戶
10、報警上下限。 DS18B20溫度傳感器的內(nèi)部存儲器還包括一個高速暫存RAM和一個非易失性的可電擦除的EERAM。 高速暫存RAM的結(jié)構(gòu)為8字節(jié)的存儲器,結(jié)構(gòu)如圖4所示。 頭2個字節(jié)包含測得的溫度信息,第3和第4字節(jié)TH和TL的拷貝,是易失的,每次上電復(fù)位時被刷新。 第5個字節(jié),為配置寄存器,它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。 DS18B20工作時寄存器中的分辨率轉(zhuǎn)換為相應(yīng)精度的溫度數(shù)值。 該字節(jié)各位的定義如圖5所示。 低5位一直為1,TM是工作模式位,用于設(shè)置DS18B20在工作模式還是在測試模式,DS18B20出廠時該位被設(shè)置為0,用戶不要去改動,R1和R0決定溫度轉(zhuǎn)換的精度位數(shù),來設(shè)
11、置分辨率。 溫度 LSB溫度 MSBTH用戶字節(jié)1TL用戶字節(jié)2配置寄存器保留保留保留CRCTMR1R011111圖5 DS18B20的字節(jié)定義 DS18B20的分辨率定義如表2-1所示表2-1 分辨率設(shè)置表R0R1分辨率最大溫度轉(zhuǎn)移時間009位96.75ms0110位187.5ms1011位375ms1112位750ms由表1可見,DS18B20溫度轉(zhuǎn)換的時間比較長,而且分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時間越長。 因此,在實際應(yīng)用中要將分辨率和轉(zhuǎn)換時間權(quán)衡考慮。 主機控制DS18B20完成溫度轉(zhuǎn)換過程是:每一次讀寫之前都要對DS18B20進行復(fù)位,即將數(shù)據(jù)總線下拉500us,然后釋放,DS1
12、8B20收到信號后等待16-60us左右,之后發(fā)出60-240us的存在低脈沖,主CPU收到此此信號表示復(fù)位成功;復(fù)位成功后發(fā)送一條ROM指令,然后發(fā)送RAM指令,這樣才能對DS18B20進行預(yù)訂的讀寫操作。 表2-2 ROM指令集指令約定代碼功能讀ROM33H讀DS18B20中的編碼符合ROM55H發(fā)出此命令后,接著發(fā)出64位ROM編碼,訪問單線總線上與該編輯相對應(yīng)的DS18B20使之做出響應(yīng),為下一步對該DS18B20的讀寫作準備搜索ROM0F0H用于確定掛接在同一總線上的DS18B20個數(shù)和識別64位ROM地址,為操作各器件作準備跳過ROM0CCH忽略64位ROM地址,直接向DS18B2
13、0發(fā)送溫度變換指令告警搜索命令0ECH執(zhí)行后,只有溫度跳過設(shè)定值上限或下限的片子才能做出反應(yīng)表2-3 RAM指令集指令約定代碼功能溫度轉(zhuǎn)換44H啟動DS18B20進行溫度轉(zhuǎn)換讀暫存器0BEH讀暫存器9個字節(jié)內(nèi)容寫暫存器4EH將數(shù)據(jù)寫入暫存器的TH、TL字節(jié)復(fù)制暫存器48H把暫存器的TH、TL字節(jié)寫到E2RAM中重調(diào)E2RAM0B8H把E2RAM中的TH、TL字節(jié)寫到暫存器TH、TL字節(jié)讀供電方式0B4H啟動DS18B20發(fā)送電源供電方式的信號給主CPU DS18B20的測溫原理是這這樣的, 器件中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號送給減法計數(shù)器1;高溫度系數(shù)晶
14、振隨溫度變化其振蕩頻率明顯改變,所產(chǎn)生的信號作為減法計數(shù)器2的脈沖輸入。 器件中還有一個計數(shù)門,當計數(shù)門打開時,DS18B20就對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖進行計數(shù)進而完成溫度測量。 計數(shù)門的開啟時間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將最低溫所對應(yīng)的一個基數(shù)分別置入減法計數(shù)器1、溫度寄存器中,計數(shù)器1和溫度寄存器被預(yù)置在最低溫所對應(yīng)的一個基數(shù)值。 減法計數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行減法計數(shù),當減法計數(shù)器1的預(yù)置值減到0時,溫度寄存器的值將加1,減法計數(shù)器1的預(yù)置將重新被裝入,減法計數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行計數(shù),如此循環(huán)直到減法計數(shù)器計數(shù)到0時,停
15、止溫度寄存器的累加,此時溫度寄存器中的數(shù)值就是所測溫度值。 其輸出用于修正減法計數(shù)器的預(yù)置值,只要計數(shù)器門仍未關(guān)閉就重復(fù)上述過程,直到溫度寄存器值大致被測溫度值。 2.4 硬件設(shè)計2.4.1 主控制器ATmega16ATmega16是基于增強的AVR RISC結(jié)構(gòu)的低功耗8 位CMOS微控制器。 由于其先進的指令集以及單時鐘周期指令執(zhí)行時間,ATmega16 的數(shù)據(jù)吞吐率高達1 MIPS/MHz,從而可以緩減系統(tǒng)在功耗和處理速度之間的矛盾。 ATmega16 AVR 內(nèi)核具有豐富的指令集和32 個通用工作寄存器。 所有的寄存器都直接與算邏單元(ALU) 相連接,使得一條指令可以在一個時鐘周期內(nèi)
16、同時訪問兩個獨立的寄存器。 這種結(jié)構(gòu)大大提高了代碼效率,并且具有比普通的CISC 微控制器最高至10 倍的數(shù)據(jù)吞吐率。 2.4.22.4.2 復(fù)位電路在這里采用的是按鈕加上電復(fù)位,系統(tǒng)每次上電和每次按下復(fù)位按鈕,系統(tǒng)就會復(fù)位。 2.4.3 時鐘振蕩電路采用的是1MHZ的晶振頻率,它與單片機的硬件連接電路如圖7所示圖7 晶振電路2.4.4報警點調(diào)節(jié)電路可以通過微動開關(guān),任意調(diào)節(jié)報警點的上下限,電路如圖8所示圖8 報警點調(diào)節(jié)電路2.4.5顯示電路顯示電路采用集成的四位一體的數(shù)碼管,為共陰極結(jié)構(gòu),通過設(shè)置不同的段碼可以顯示溫度。 圖9顯示電路3 軟件設(shè)計3.1系統(tǒng)分析系統(tǒng)程序主要包括DS1820初始
17、化程序,向DS1820讀字節(jié)程序,向DS1820寫字節(jié)程序,讀取溫度及轉(zhuǎn)換程序,溫度顯示程序,報警程序。 初始化向ds1820讀一字節(jié)向ds1820寫一字節(jié)讀取溫度及轉(zhuǎn)換顯示溫度圖10主程序流程圖3.2 各子程序及其流程圖設(shè)計3.2.1 初始化子程序 令P2.7為高電平,延遲一段時間后令P2.7為低電平觸發(fā)DS1820的初始化,低電平持續(xù)一段時間,然后讀取P2.7的狀態(tài),直到P2.7的狀態(tài)回到高電平時說明初始化完成。 #include <at89x51.h>#define DQ P2_7#define dm P0sbit w0=P23;sbit w1=P24;sbit w2=P25
18、;sbit w3=P26;sbit jia=P20;sbit jian=P21;sbit xuan=P22;/sbit p2_7=P27;sbit speaker=P10;#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;uchar table_dm1=0xbf, 0x86, 0xdb
19、, 0xcf, 0xe6, 0xed, 0xfd, 0x87, 0xff, 0xef;uchar table_fuhao=0x00, 0x40;void delay(unsigned int i) while(i-); /初始化函數(shù)P2.7=1延時P2.7=0延時P2.7=1?完成NY圖11 初始化流程圖3.2.2 DS1820的讀寫字節(jié)子程序單片機向DS1820讀寫字節(jié)都是從最低位開始的。 Init_DS18B20(void)unsigned char x=0;DQ = 1; delay(8);DQ = 0; delay(80);DQ = 1; delay(14);x=DQ; /稍做延時后
20、如果x=0則初始化成功 x=1則初始化失敗delay(20); /讀一個字節(jié)P2.7=1延時讀數(shù)據(jù)待寫入字節(jié)右移一位P2.7=1延時寫數(shù)據(jù)待寫入字節(jié)右移一位圖12 讀操作 圖13寫操作3.2.3 溫度讀取及轉(zhuǎn)換子程序在讀取溫度值命令前,應(yīng)使用溫度轉(zhuǎn)換命令才能保證讀入的是當前溫度值轉(zhuǎn)換過程中DS1820會拉低總線直至轉(zhuǎn)換完成,因此可以讀取溫度總線的狀態(tài)來判斷溫度轉(zhuǎn)換是否完成。 ReadOneChar(void)unsigned char i=0;unsigned char dat = 0;for (i=8;i>0;i-)DQ = 0;dat>>=1;DQ = 1;if(DQ)
21、dat|=0x80;delay(4);return(dat); /寫一個字節(jié)初始化DS1820判斷符號位轉(zhuǎn)換溫度讀取溫度圖14溫度讀取及轉(zhuǎn)換3.2.4計算溫度子程序計算溫度子程序?qū)AM中讀取值進行BCD碼的轉(zhuǎn)換運算,并進行溫度值正負的判定,其程序流程圖如圖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溫度計算3.2.5溫度顯示子程序void del
22、ayms(uchar t)uint i;while(t-)for(i=0;i<100;i+);/顯示其流程圖如下所示:圖16 溫度顯示3.2.6報警子程序 其流程圖如下:ReadTemperature(void)unsigned char 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=ReadOneCh
23、ar(); 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);溫度值>h_t或, <l_t報警YN 返回返回 FANGUI Return圖17報警4 proteus軟件仿真 4.1 系統(tǒng)仿真設(shè)計本設(shè)計是在Proteus環(huán)境下進行仿真的,仿真所用到的器件有:單片機ATmega16,D
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 氣焊培訓(xùn)課件
- 寫作方法題目及答案
- 小學(xué)音標題目及答案
- 2023-2024學(xué)年河北省衡水市第三中學(xué)八年級下學(xué)期期末數(shù)學(xué)試題
- 2025年浙江省中考數(shù)學(xué)試卷真題及答案詳解(精校打印版)
- 培訓(xùn)奮斗的課件
- 關(guān)于技工學(xué)校思想政治理論課實踐教學(xué)創(chuàng)新模式探究
- 《智能材料 第2版》 教案大綱
- 高二升高三數(shù)學(xué)暑假作業(yè)05 排列組合與二項式定理(原卷版)
- 浙江省溫州市經(jīng)濟開發(fā)區(qū)海城中學(xué)2025年八下英語期末復(fù)習(xí)檢測模擬試題含答案
- GB/T 41837-2022溫泉服務(wù)溫泉水質(zhì)要求
- YY/T 1467-2016醫(yī)用包扎敷料救護繃帶
- GB/T 6495.3-1996光伏器件第3部分:地面用光伏器件的測量原理及標準光譜輻照度數(shù)據(jù)
- GB/T 17193-1997電氣安裝用超重荷型剛性鋼導(dǎo)管
- 2023年九年級中考數(shù)學(xué)高頻考點突破-圓的切線的證明【含答案】
- 2023年內(nèi)江市市中區(qū)財政局系統(tǒng)事業(yè)單位招聘筆試題庫及答案解析
- 國際貿(mào)易實務(wù)全部資料課件
- 帶狀皰疹醫(yī)學(xué)課件
- 全國卷高考標準語文答題卡作文紙3欄800字版
- IATF16949體系培訓(xùn)資料課件
- 事業(yè)單位招聘考試《工程建設(shè)管理專業(yè)知識》真題匯總及答案【含解析】
評論
0/150
提交評論