




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、西安文理學院課程設計報告 目錄第1章單片機控制步進電機的現(xiàn)實意義1第2章 總體方案設計22 .1DS18B20的工作原理22.2AT89C51的優(yōu)點3第3章 硬件部分設計53.1硬件設計思路53.2溫度傳感器電路53.3溫度顯示電路63.4復位電路設計6第4章 軟件電路設計94.1 主程序94.2讀出溫度子程序94.3溫度轉(zhuǎn)換命令子程序94.4計算溫度子程序4.5顯示數(shù)據(jù)刷新子程序9第5章 系統(tǒng)所運用的功能介紹135.1系統(tǒng)的調(diào)試及性能分析135.2測試結果13心得體會14致謝15附件16第 1 頁第1章基于DS18B20數(shù)字溫度計的設計課題介紹本設計是一款簡單實用的小型數(shù)字溫度計,所采用的主
2、要元件有傳感器DS18B20,單片機AT89C51,四位共陰極數(shù)碼管一個,電容電阻若干。DS18B20支持“一線總線”接口,測量溫度范圍-55°C+125°C。在-10+85°C范圍內(nèi),精度為±0.5°C。DS18B20的精度較差為± 2°C ?,F(xiàn)場溫度直接以“一線總線”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性。適合于惡劣環(huán)境的現(xiàn)場溫度測量,如:環(huán)境控制、設備或過程控制、測溫類消費電子產(chǎn)品等。本次數(shù)字溫度計的設計共分為五部分,主控制器,LED顯示部分,傳感器部分,復位部分,時鐘電路。主控制器即單片機部分,用于存儲程序和控制電
3、路;LED顯示部分是指四位共陽極數(shù)碼管,用來顯示溫度;傳感器部分,即溫度傳感器,用來采集溫度,進行溫度轉(zhuǎn)換;復位部分,即復位電路。測量的總過程是,傳感器采集到外部環(huán)境的溫度,并進行轉(zhuǎn)換后傳到單片機,經(jīng)過單片機處理判斷后將溫度傳遞到數(shù)碼管顯示。本設計能完成的溫度測量范圍是-55°C+128°C,由于能力有限,不能實現(xiàn)報警功能。第2章總體方案2.1 DS18B20的工作原理DS18B20溫度傳感器是美國DALLAS半導體公司最新推出的一種改進型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據(jù)實際要求通過簡單的編程實現(xiàn)912位的數(shù)字值讀數(shù)方式2.2
4、 AT89C51的優(yōu)點AT89C51單片機。很明顯可以看出方案二只用到一個芯片,元器件數(shù)量少,接線簡單,易對端口進行操作,尤其是編程涉及到的變量少,不易出錯。第 17 頁第3章 硬件部分設計3.1硬件設計思路按照系統(tǒng)設計功能的要求,確定系統(tǒng)由3個模塊組成:主控制器、測溫電路和顯示電路。數(shù)字溫度計總體電路結構框圖所示:AT89C51 主控制器 DS18B20 顯示電路 掃描驅(qū)動3.2溫度傳感器電路DS18B20溫度傳感器是美國DALLAS半導體公司最新推出的一種改進型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據(jù)實際要求通過簡單的編程實現(xiàn)912位的數(shù)字值讀數(shù)方式
5、, 現(xiàn)場溫度直接以“一線總線”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性。:3.3溫度顯示電路四位共陽極數(shù)碼管,能夠顯示小數(shù)和負溫度。零下時,第一個數(shù)碼管顯示負號。當溫度超過99.9時,四個數(shù)碼管全部亮。列掃描用P3.0P3.3口來實現(xiàn),驅(qū)動方式采用串聯(lián)電阻直接驅(qū)動。3.4復位電路設計單片機系統(tǒng)的復位電路在這里采用的是開機復位電路形式,其中電阻R采用6.8K的阻值,電容采用電容值為10F的電解電容,系統(tǒng)開機自動復位,不能中途用按鍵進行復位。3.5系統(tǒng)總電路圖如下:第四章:軟件的設計主要包括主程序、讀出溫度子程序、溫度轉(zhuǎn)換命令子程序、計算溫度子程序和現(xiàn)實數(shù)據(jù)刷新子程序等。主程序 主程序的主要功能是
6、負責溫度的實時顯示、讀出并處理DS18B20的測量溫度值。溫度測量每1S進行一次。主流程圖如下:調(diào)用顯示程序初始化初次上電Y讀出溫度值溫度計算處理顯示數(shù)據(jù)刷新發(fā)溫度轉(zhuǎn)換開始命令1s到?N4.2讀出溫度子程序 讀出溫度子程序的主要功能是讀出RAM中的9字節(jié)。在讀出時須進行CRC校驗,校驗有錯時不進行溫度數(shù)據(jù)的改寫。流程圖如下:發(fā)DS18B20復位命令發(fā)跳過ROM命令發(fā)讀取溫度命令讀取操作,CRC校驗9字節(jié)完?CRC校驗正?確?移入溫度暫存器結束NNYY4.3溫度轉(zhuǎn)換命令子程序 溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命令。當采用12位分辨率時,轉(zhuǎn)換時間約為750ms。在本程序設計中,采用1s顯示程
7、序延時法等待轉(zhuǎn)換的完成。流程圖如下:發(fā)DS18B20復位命令發(fā)跳過ROM命令發(fā)溫度轉(zhuǎn)換開始命令結束4.4計算溫度子程序 計算溫度子程序?qū)AM中讀取值進行BCD碼的轉(zhuǎn)換運算,并進行溫度值正負的判定。開始溫度零下?NY置“+”標志溫度值取補碼置“-”標志計算小數(shù)位溫度BCD值 計算整數(shù)位溫度BCD值 結束4.5顯示數(shù)據(jù)刷新子程序 顯示數(shù)據(jù)刷新子程序主要是對顯示緩沖器中的顯示數(shù)據(jù)進行刷新操作,當最高數(shù)據(jù)顯示位為0時,將符號顯示位移入下一位。溫度數(shù)據(jù)移入顯示寄存器十位數(shù)0?百位數(shù)0?十位數(shù)顯示符號百位數(shù)不顯示百位數(shù)顯示數(shù)據(jù)(不顯示符號)結束第五章:系統(tǒng)所運用的功能介紹: DS18B20與單片機之間采
8、用串行通信的方式進行數(shù)據(jù)讀寫5.1系統(tǒng)的調(diào)試及性能分析:硬件調(diào)試比較簡單,首先焊接是否正確,然后可用萬用表測試或通電檢測。軟件調(diào)試可以先編寫顯示程序并進行硬件的正確性檢驗,然后分別進行主程序、讀出溫度子程序、溫度轉(zhuǎn)換命令子程序、計算溫度子程序和現(xiàn)實數(shù)據(jù)刷新子程序等的編程及調(diào)試由于DS18B20與單片機采用串行數(shù)據(jù)傳送,因此,對DS18B20進行讀/寫編程時必須嚴格地保證讀/寫時序;否則將無法讀取測量結果。本程序采用單片機C語言編寫用Keil C3編譯器編程調(diào)試。并且應用PROTUES7進行電路的仿真及PCB班的設計布線。軟件調(diào)試到能顯示溫度值,并且在有溫度變化時顯示溫度能改變,就基本完成。性能
9、測試可用制作的溫度機和已有的成品溫度計同時進行測量比較。由于DS18B20的精度很高,所以誤差指標可以限制在0.5以內(nèi)。另外,-55+125的測溫范圍使得該溫度計完全適合一般的應用場合,其低電壓供電特性可做成用電池供電的手持溫度計。5.2測試結果在Protues中通過調(diào)節(jié)DS18B20的溫度示數(shù)加減,LED會自動顯示當前DS18B20溫度示數(shù),但有延時(系統(tǒng)程序中設定)心得體會通過本次數(shù)字電子的課程設計加強了我們動手,思考,解決問題的能力。此外培養(yǎng)了我們當代大學生所缺失的一種認真細致,思維嚴謹?shù)目茖W精神。耐心,沉穩(wěn),細致,可謂是實驗者必備的一種素質(zhì),缺一不可。在連接線路的過程中只要一不留神就會
10、接錯管腳,導致整個實驗的失敗,花費過多的時間來尋找錯誤不如當初就多細心找一個比較完美的方案。這是所謂的欲速則不達,事半功倍。本次的課程設計使我們進一步鞏固了書本上的知識,做到了學以致用。這是我們第二次自己動手設計的電路,通過系統(tǒng)仿真軟件protues和編譯軟件keil,使我們進一步了解了單片機的設計制作過程,其中最為困難的是軟件部分,即編程部分,我們上網(wǎng)找了好多資料,雖然經(jīng)過自己的修改,但還是有很多功能不能實現(xiàn),如溫度上下限設置。由于protues并不是很熟練,在使用的過程中有很多原件的名稱不知道,從而花費了大量的時間在網(wǎng)上查找,今后應該在這方面多多努力。最后一步的焊接硬件也遇到了不少麻煩,P
11、0端口沒有加上拉電阻,P1端口加三極管驅(qū)動導致數(shù)碼管不亮??偨Y經(jīng)驗的時候我們得出這樣的結論,學習應該學以致用,有目的的去學習,如果學了不用等于沒學。其次,要學以致用,理論聯(lián)系實際,這樣才會取得事半功倍的效果。致謝經(jīng)過兩個多星期的努力,我們順利把實驗要求做出來了。雖然整個過程很艱苦,從剛開始的半知不懂,一步不懂解決一步,總結不足得出改善;但最終我得到的是滿滿的收獲。有時候理論明明已經(jīng)完全應用實際就是會出問題,但是我沒有放棄。因為老師說過理論與實踐相差非常大,實際要考慮的問題遠遠比理論的多的多。所以我不斷地查資料、不斷地調(diào)試;最后終于成功了。這讓我深刻體會到有付出才有回報過程是有些許曲折。感謝這次
12、電子課程設計,讓我所學的理論知識不再只是紙上談兵。我相信只要不放棄,不拋棄,勇于思考,迎難而上,擁有發(fā)現(xiàn)問題獨立解決問題的能力,在以后任何一件事上都能單擋獨挑。著重感謝老師的細心指導,耐心指教,及時排憂解難;也同樣感謝本組其他每個成員的大力支持和幫助,團結的力量使得難題變得容易攻破,因為眾多的智慧組成的合力是不可估量的超能量,每個組員都是解決問題的強者;讓我深刻認識到團結合作的重要性,以后也會一直把它當做寶貴財富。 附件:程序如下:/使用AT89C2051單片機,12MHZ晶振,用共陽LED數(shù)碼管/P1口輸出段碼,P3口掃描/#pragma src(d:aa.asm)#include &quo
13、t;reg51.h"#include "intrins.h" /_nop_();延時函數(shù)用#define Disdata P1 /段碼輸出口#define discan P3 /掃描口#define uchar unsigned char#define uint unsigned intsbit DQ=P37; /溫度輸入口sbit DIN=P17; /LED小數(shù)點控制uint h;/*溫度小數(shù)部分用查表法*/uchar code ditab16=0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07
14、,0x08,0x08,0x09,0x09;uchar code dis_712=0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x00,0x40;/* 共陽LED段碼表 "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "不亮" "-" */ uchar code scan_
15、con4=0xfe,0xfd,0xfb,0xf7; / 列掃描控制字uchar data temp_data2=0x00,0x00; / 讀出溫度暫放uchar data display5=0x00,0x00,0x00,0x00,0x00;/顯示單元數(shù)據(jù),共4個數(shù)據(jù),一個運算暫存用/*11微秒延時函數(shù)*/void delay(uint t)for(;t>0;t-);/*顯示掃描函數(shù)*/scan()char k; for(k=0;k<4;k+) /四位LED掃描控制 Disdata=dis_7displayk; if(k=1)DIN=1; discan=scan_conk;delay
16、(90);discan=0xff; /*18B20復位函數(shù)*/ow_reset(void)char presence=1;while(presence)while(presence) DQ=1;_nop_();_nop_();DQ=0; /delay(50); / 550usDQ=1; / delay(6); / 66uspresence=DQ; / presence=0繼續(xù)下一步 delay(45); /延時500uspresence = DQ;DQ=1; /*18B20寫命令函數(shù)*/向 1-WIRE 總線上寫一個字節(jié)void write_byte(uchar val)uchar i;for
17、 (i=8; i>0; i-) /DQ=1;_nop_();_nop_(); DQ = 0;_nop_();_nop_();_nop_();_nop_();_nop_();/5usDQ = val&0x01; /最低位移出delay(6); /66usval=val/2; /右移一位DQ = 1;delay(1); /*18B20讀1個字節(jié)函數(shù)*/從總線上讀取一個字節(jié)uchar read_byte(void)uchar i;uchar value = 0;for (i=8;i>0;i-)DQ=1;_nop_();_nop_();value>>=1;DQ = 0;
18、 /_nop_();_nop_();_nop_();_nop_(); /4usDQ = 1;_nop_();_nop_();_nop_();_nop_(); /4us if(DQ)value|=0x80;delay(6); /66usDQ=1;return(value);/*讀出溫度函數(shù)*/read_temp()ow_reset(); /總線復位write_byte(0xCC); / 發(fā)Skip ROM命令write_byte(0xBE); / 發(fā)讀命令temp_data0=read_byte(); /溫度低8位temp_data1=read_byte(); /溫度高8位ow_reset();write_byte(0xCC); / Skip ROMwrite_byte(0x44); / 發(fā)轉(zhuǎn)換命令/*溫度數(shù)據(jù)處理函數(shù)*/work_temp()uchar n=0; /if(temp_data1>127)if(temp_data0!=0x00) temp_data1=(255-temp_data1);temp_data0=(256-temp_data0);n=1;/負溫度求補碼else temp_data1=(256-temp_data1);n=1;/負溫
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年環(huán)境檢測與評估技能考試題及答案
- 導游業(yè)務試題及答案電大
- 時鐘測試題目大全圖片及答案
- float面試題及答案
- 三體名著試題及答案
- 焊接加工考試題及答案
- 2025年歷史文化與博物館管理考試試題及答案
- 借款咨詢服務協(xié)議書
- 機電工程決策支持試題及答案
- 軟件設計師考試學習策略分享試題及答案
- 干部履歷表填寫范本(中共中央組織部1999年)
- 勞動教育視角下高職院校學生工匠精神培育研究
- 最簡單封陽臺安全免責協(xié)議書
- SH/T 3533-2024 石油化工給水排水管道工程施工及驗收規(guī)范(正式版)
- 用友人力資源管理HR解決方案樣本
- 北京市西城區(qū)三帆中學2023-2024學年七年級下學期期中數(shù)學試題(無答案)
- 藥物殘留溶劑分析報告書
- 腫瘤醫(yī)院推廣方案
- 動物出血性肺炎預防與治療
- 公路工程安全風險辨識與防控手冊
- 研究生開題報告評審表
評論
0/150
提交評論