




已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
電子綜合設(shè)計報告 設(shè)計題目: 數(shù)字溫度表設(shè)計 學(xué)生姓名: 班級學(xué)號: 1 指導(dǎo)教師: 設(shè)計時間: 2013.12.9-2013.12.20 一 方案設(shè)計1二 系統(tǒng)的硬件設(shè)計21、主控制器22、顯示電路43、溫度傳感器工作原理44、溫度傳感器接口電路8三 系統(tǒng)的軟件設(shè)計81、主程序82、溫度測量92.1 ds18b20復(fù)位函數(shù)92.2 從ds18b20中讀取一個字節(jié)92.3 向ds18b20寫一個字節(jié)92.4 從ds18b20讀取數(shù)據(jù)103、數(shù)碼管顯示10四 系統(tǒng)的測試11五 總結(jié)11附錄 源程序清單12一、方案設(shè)計本設(shè)計主要是介紹了單片機(jī)控制下的溫度檢測系統(tǒng),詳細(xì)介紹了其硬件和軟件設(shè)計,并對其各功能模塊做了詳細(xì)介紹,其主要功能和指標(biāo)如下:利用溫度傳感器(ds18b20)測量某一點環(huán)境溫度測量范圍為0100,精度為0.5用數(shù)碼管進(jìn)行實際溫度值顯示采用at89c52單片機(jī)p2 .4口控制溫度傳感器ds18b20的溫度測量,以四位數(shù)碼感形式輸出測量溫度,總體設(shè)計方框圖以及原理圖分別如下圖所示:時鐘振蕩主控制器at89c52單片機(jī)復(fù)位led顯示溫度傳感器圖1.1 總體設(shè)計方框圖圖1.2 溫度系統(tǒng)原理圖二 系統(tǒng)的硬件設(shè)計1、主程序 at89c52 是一種低功耗、高性能cmos8位微控制器,具有8k在系統(tǒng)可編程flash 存儲器。使用atmel 公司高密度非 易失性存儲器技術(shù)制造,與工業(yè)80c51 產(chǎn)品指令和引腳完 全兼容。片上flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位cpu 和在系統(tǒng) 可編程flash,使得at89c52為眾多嵌入式控制應(yīng)用系統(tǒng)提 供高靈活、超有效的解決方案。at89c52具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)flash,256字節(jié)ram, 32 位i/o 口線,看門狗定時器,2 個數(shù)據(jù)指針,三個16 位 定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口, 片內(nèi)晶振及時鐘電路。另外,at89c52 可降至0hz 靜態(tài)邏 輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,cpu 停止工作,允許ram、定時器/計數(shù)器、串口、中斷繼續(xù)工 作。掉電保護(hù)方式下,ram內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個中斷或硬件復(fù)位為止。 圖2.1 時鐘電路與復(fù)位電路2、顯示電路 顯示采用6位數(shù)碼管,圖2.2為溫度顯示電路 圖2.2溫度顯示電路3、溫度傳感器工作原理ds18b20溫度傳感器是美國dallas半導(dǎo)體公司最新推出的一種改進(jìn)型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據(jù)實際要求通過簡單的編程實現(xiàn)位的數(shù)字值讀數(shù)方式。ds18b20的性能特點如下: 獨特的單線接口僅需一個端口引腳進(jìn)行通訊 簡單的多點分布應(yīng)用 無需外部器件 可通過數(shù)據(jù)線供電 零待機(jī)功耗 測溫范圍-55+125,以0.5遞增。華氏器件-67+2570f,以0.90f 遞增 溫度以9 位數(shù)字量讀出 溫度數(shù)字量轉(zhuǎn)換時間200ms(典型值) 用戶可定義的非易失性溫度報警設(shè)置 報警搜索命令識別并標(biāo)志超過程序限定溫度(溫度報警條件)的器件ds18b20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻rom、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器th和tl、配置寄存器。ds18b20的管腳排列、各種封裝形式如圖 2.3所示,dq 為數(shù)據(jù)輸入/輸出引腳。開漏單總線接口引腳。當(dāng)被用著在寄生電源下,也可以向器件提供電源;gnd為地信號;vdd為可選擇的vdd引腳。當(dāng)工作于寄生電源時,此引腳必須接地。其電路圖 2.4所示.。 圖 2.3外部封裝形式 圖 2.4傳感器電路圖ds18b20的測溫原理如圖2.5所示,圖中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小用于產(chǎn)生固定頻率的脈沖信號送給減法計數(shù)器1,高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,所產(chǎn)生的信號作為減法計數(shù)器2的脈沖輸入,圖中還隱含著計數(shù)門,當(dāng)計數(shù)門打開時,ds18b20就對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖后進(jìn)行計數(shù),進(jìn)而完成溫度測量.計數(shù)門的開啟時間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將-55 所對應(yīng)的基數(shù)分別置入減法計數(shù)器1和溫度寄存器中,減法計數(shù)器1和溫度寄存器被預(yù)置在-55 所對應(yīng)的一個基數(shù)值。減法計數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行減法計數(shù),當(dāng)減法計數(shù)器1的預(yù)置值減到0時溫度寄存器的值將加1,減法計數(shù)器 1的預(yù)置將重新被裝入,減法計數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行計數(shù),如此循環(huán)直到減法計數(shù)器2計數(shù)到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值即為所測溫圖2中的斜率累加器用于補(bǔ)償和修正測溫過程中的非線性其輸出用,于修正減法計數(shù)器的預(yù)置值,只要計數(shù)門仍未關(guān)閉就重復(fù)上述過程,直至溫度寄存器值達(dá)到被測溫度值,這就是ds18b20的測溫原理。另外,由于ds18b20單線通信功能是分時完成的,他有嚴(yán)格的時隙概念,因此讀寫時序很重要。系統(tǒng)對ds18b20的各種操作必須按協(xié)議進(jìn)行。操作協(xié)議為:初始化ds18b20(發(fā)復(fù)位脈沖)發(fā)rom功能命令發(fā)存儲器操作命令處理數(shù)據(jù)。圖2.5 ds18b20測溫原理圖在正常測溫情況下,ds1820的測溫分辨力為0.5,可采用下述方法獲得高分辨率的溫度測量結(jié)果:首先用ds1820提供的讀暫存器指令(beh)讀出以0.5為分辨率的溫度測量結(jié)果,然后切去測量結(jié)果中的最低有效位(lsb),得到所測實際溫度的整數(shù)部分tz,然后再用beh指令取計數(shù)器1的計數(shù)剩余值cs和每度計數(shù)值cd??紤]到ds1820測量溫度的整數(shù)部分以0.25、0.75為進(jìn)位界限的關(guān)系,實際溫度ts可用下式計算: 4、溫度傳感器接口電路 圖2.6溫度傳感器接口電路三 系統(tǒng)的軟件設(shè)計1、主程序void main()uchar temp, temp1;while(1)scandisp();readtemp();temp1 = temper0;temp = temper1;dispbuf4 = ditabtemp1;dispbuf1 = temp/100;dispbuf3 = temp%10;temp = temp/10;dispbuf2 = temp%10;dispbuf0 = flag;dispbuf5 = 11; 2、溫度測量2.1 ds18b20復(fù)位函數(shù)void reset(void)uchar x = 0;dq = 1;delay(8);dq = 0;delay(80);dq = 1;delay(14);x = dq;delay(20);2.2 從ds18b20中讀一個字節(jié)uchar readbyte(void)uchar i = 0;uchar dat = 0;for(i = 8; i 0;i-)dq = 0;dat = 1;dq = 1;if(dq)dat |= 0x80;delay(4); return dat;2.3 向ds18b20寫一個字節(jié)void writebyte(unsigned char dat)uchar i = 0;for(i = 8; i 0; i-)dq = 0;dq = dat & 0x01;delay(5);dq = 1;dat = 1;delay(4);2.4從ds18b20讀取數(shù)據(jù)void readtemp(void)uchar a = 0, b = 0;reset();writebyte(0xcc);/跳過序列號writebyte(0x44);/啟動溫度轉(zhuǎn)換reset();writebyte(0xcc);writebyte(0xbe);/讀9個寄存器,前兩個位溫度a = readbyte();/低位b = readbyte();/高位if(b 0x0f) /判斷是否為負(fù)值 a = a + 1; if(a = 0) b = b + 1; else b= b; flag = 10; else flag = 12;temper0 = a & 0x0f;a = a 4;temper1 = b 4;temper1 = temper1|a;3、數(shù)碼管顯示void scandisp()unsigned char i ,value;for(i = 0; i 8; i+)p3 = 0xff;value = tabledispbufi;if(i = 3)value |= 0x80;p0 = value;p3 = scani;delay(50);四 系統(tǒng)的測試4.1 測試時的圖片 圖4.1測量溫度結(jié)果五 總結(jié) 通過近兩個星期的單片機(jī)課程設(shè)計,我終于完成了“數(shù)字溫度表設(shè)計”,心中不免有些高興,但高興之余也有我值得深思的。 雖然以前做過類似的實驗,但這次的課程設(shè)計還是讓我學(xué)到了很多東西,單片機(jī)課程設(shè)計重點就在于軟件算法的設(shè)計,需要有很巧妙的程序算法。有好多的東西,只有我們?nèi)ピ囍隽?,才能真正的掌握,只學(xué)習(xí)理論有些東西是很難理解的,更談不上掌握。通過這次的單片機(jī)課程設(shè)計我認(rèn)識到了,學(xué)習(xí)要理論聯(lián)系實際,把學(xué)到的理論知識同實際運(yùn)用相結(jié)合,才能是我們的知識融匯貫通,才能真正的學(xué)到知識,真正的做到學(xué)以致用。附錄 源程序清單/*/包含文件,程序開始/*#include#define uchar unsigned char#define uint unsigned intsbit dq = p24;/ds18b20數(shù)據(jù)線引腳unsigned char flag;/負(fù)數(shù)標(biāo)志/行掃描數(shù)組uchar code scan8 = 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;/row0-row7/數(shù)碼管顯示的段碼表uchar code table13 = 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40,0x39,0x00;/小數(shù)部分顯示查詢表uchar code ditab16 = 0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09;uchar dispbuf8;/顯示緩沖區(qū)uchar temper2;/存放溫度的數(shù)組/*/延時函數(shù)/*void delay(unsigned int us)while(us-);/*/ds18b20復(fù)位函數(shù)/*void reset(void)uchar x = 0;dq = 1;delay(8);dq = 0;delay(80);dq = 1;delay(14);x = dq;delay(20);/*/從ds18b20中讀一個字節(jié)/*uchar readbyte(void)uchar i = 0;uchar dat = 0;for(i = 8; i 0;i-)dq = 0;dat = 1;dq = 1;if(dq)dat |= 0x80;delay(4); return dat;/*/向ds18b20寫一個字節(jié)/*void writebyte(unsigned char dat)uchar i = 0;for(i = 8; i 0; i-)dq = 0;dq = dat & 0x01;delay(5);dq = 1;dat = 1;delay(4);/*/從ds18b20讀取數(shù)據(jù)/*void readtemp(void)uchar a = 0, b = 0;reset();writebyte(0xcc);/跳過序列號writebyte(0x44);/啟動溫度轉(zhuǎn)換reset();writebyte(0xcc);writebyte(0xbe);/讀9個寄存器,前兩個位溫度a = readbyte();/低位b = readbyte();/高位if(b 0x0f) /判斷是否為負(fù)值 a = a + 1; if(a = 0) b = b + 1; else b= b; flag = 10; else flag = 12;temper0 = a & 0x0f;a = a 4;temper1 = b 4;temper1 = temper1|a;/*/動態(tài)掃描顯示函數(shù)/*void scandisp()unsigned char i ,value;for(i = 0; i 8; i+)p3 = 0xff;value = tabledispbufi;if(i = 3)
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年(半)干式煙氣脫硫成套設(shè)備合作協(xié)議書
- 法學(xué)畢業(yè)論文-用人單位單方解除勞動合同制度研究
- 2025年飲料罐鋁板合作協(xié)議書
- 張橋小學(xué)2025年秋季學(xué)期數(shù)字化教育計劃
- 2025年環(huán)保行業(yè)安全生產(chǎn)責(zé)任落實計劃
- 人教版三年級英語詞匯學(xué)習(xí)計劃
- 部編版語文課程實施的年度教學(xué)計劃
- 2025年度名師工作室發(fā)展計劃
- 小學(xué)語文四年級上冊閱讀理解計劃
- 《柯高峰行政監(jiān)察學(xué)》課件
- 2024城市道路路面維修養(yǎng)護(hù)技術(shù)規(guī)程
- 老年糖尿病夜間低血糖的預(yù)防及護(hù)理
- 梅毒病人產(chǎn)后護(hù)理查房
- 小班-語言社會-幸福的“叮咚”-課件(基礎(chǔ)版)公開課教案教學(xué)設(shè)計課件案例試卷
- 專業(yè)培訓(xùn)金蝶k3wise供應(yīng)鏈系統(tǒng)培訓(xùn)
- 辦公耗材采購 投標(biāo)方案(技術(shù)方案)
- 《干部履歷表》填寫樣式
- 汽車電氣設(shè)備檢測與維修中職全套教學(xué)課件
- 卡支付敏感信息管理實施細(xì)則
- Hadoop技術(shù)之大數(shù)據(jù)概念介紹課件
評論
0/150
提交評論