單片機畢業(yè)設(shè)計論文_第1頁
單片機畢業(yè)設(shè)計論文_第2頁
單片機畢業(yè)設(shè)計論文_第3頁
單片機畢業(yè)設(shè)計論文_第4頁
單片機畢業(yè)設(shè)計論文_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

一、設(shè)計要求1.1基本要求實現(xiàn)實時溫度顯示,測溫范圍0~500C,誤差50C以內(nèi)。1.2擴展功能溫度報警,能任意設(shè)定溫度范圍實現(xiàn)聲光報警;每隔10分鐘記錄一次溫度數(shù)據(jù),至少能查詢過去10個時刻的溫度情況。二、總體方案設(shè)計2.1方案論證2.1.1方案一 由于本設(shè)計是測溫電路,可以使用熱敏電阻之類的器件,將隨被測溫度變化的電壓或電流采樣,進行A/D轉(zhuǎn)換后就可以用單片機進行數(shù)據(jù)處理,實現(xiàn)溫度顯示。這種設(shè)計需要用到A/D轉(zhuǎn)換電路,增大了電路的復(fù)雜性,而且要做到高精度也比較困難。2.1.2方案二 考慮到在單片機屬于數(shù)字系統(tǒng),容易想到數(shù)字溫度傳感器,可選用DS18B20數(shù)字溫度傳感器,此傳感器為單總線數(shù)字溫度傳感器,起體積小、構(gòu)成的系統(tǒng)結(jié)構(gòu)簡單,它可直接將溫度轉(zhuǎn)化成串行數(shù)字信號給單片機處理,即可實現(xiàn)溫度顯示。另外DS18B20具有3引腳的小體積封裝,測溫范圍為-55~+125攝氏度,測溫分辨率可達0.0625攝氏度,其測量范圍與精度都能符合設(shè)計要求。 以上兩種方案相比較,第二種方案的電路、軟件設(shè)計更簡單,此方案設(shè)計的系統(tǒng)在功耗、測量精度、范圍等方面都能很好地達到要求,故本設(shè)計采用方案二。2.2總體設(shè)計框圖 本方案設(shè)計的系統(tǒng)由單片機系統(tǒng)、數(shù)字溫度傳感器、LED顯示模塊、按鍵控制模塊、溫度報警模塊組成,其總體架構(gòu)如下圖1。單片機報警電路顯示電路驅(qū)動電路測溫電路按鍵輸入電路時鐘、復(fù)位電路單片機報警電路顯示電路驅(qū)動電路測溫電路按鍵輸入電路時鐘、復(fù)位電路 圖1系統(tǒng)總體方框圖三、硬件設(shè)計3.1單片機系統(tǒng)本設(shè)計采用STC89C52單片機作為控制器,完成所有功能的控制,包括:DS18B20數(shù)字溫度傳感器的初始化和讀取溫度值LED數(shù)碼管顯示驅(qū)動與控制按鍵識別和響應(yīng)控制溫度設(shè)置和報警溫度值的存儲和讀取單片機系統(tǒng)電路原理圖:圖2單片機系統(tǒng)原理圖3.2數(shù)字溫度傳感器模塊3.2.1DS18B20性能獨特的單線接口僅需一個端口引腳進行通信簡單的多點分布應(yīng)用無需外部器件可通過數(shù)據(jù)線供電零待機功耗測溫范圍-55~+125℃,以0.5℃遞增可編程的分辨率為9~12位,對應(yīng)的可分辨溫度分別為0.5℃、0.25℃、0.125℃和0.0625℃溫度數(shù)字量轉(zhuǎn)換時間200ms,12位分辨率時最多在750ms內(nèi)把溫度轉(zhuǎn)換為數(shù)字應(yīng)用包括溫度控制、工業(yè)系統(tǒng)、消費品、溫度計和任何熱感測系統(tǒng)負壓特性:電源極性接反時,傳感器不會因發(fā)熱而燒毀,但不能正常工作3.2.2DS18B20外形及引腳說明圖3DS18B20外形及引腳GND:地DQ:單線運用的數(shù)據(jù)輸入/輸出引腳VD:可選的電源引腳3.2.3DS18B20接線原理圖單總線通常要求接一個約4.7K左右的上拉電阻,這樣,當總線空閑時,其狀態(tài)為高電平。圖4DS18B20接線原理圖3.2.4DS18B20時序圖 主機使用時間隙來讀寫DS18B20的數(shù)據(jù)位和寫命令字的位。初始化時序如下圖:圖5DS18B20初始化時序DS18B20讀寫時序:圖6DS18B20讀寫時序3.2.5數(shù)據(jù)處理 高速暫存存儲器由9個字節(jié)組成,其分配如表5所示。當溫度轉(zhuǎn)換命令發(fā)布后,經(jīng)轉(zhuǎn)換所得的溫度值以二字節(jié)補碼形式存放在高速暫存存儲器的第0和第1個字節(jié)。單片機可通過單線接口讀到該數(shù)據(jù),讀取時低位在前,高位在后。圖7字節(jié)分配下表為12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲在18B20的兩個8比特的RAM中,二進制中的前面5位是符號位,如果測得的溫度大于0,這5位為0,只要將測到的數(shù)值乘于0.0625即可得到實際溫度;如果溫度小于0,這5位為1,測到的數(shù)值需要取反加1再乘于0.0625即可得到實際溫度。例如+125℃的數(shù)字輸出為07D0H,實際溫度=07D0H*0.0625=2000*0.0625=125℃。例如-55℃的數(shù)字輸出為FC90H,則應(yīng)先將11位數(shù)據(jù)位取反加1得370H(符號位不變,也不作運算), 實際溫度=370H*0.0625=880*0.0625=55℃??梢娖渲械退奈粸樾?shù)位。 圖8DS18B20溫度數(shù)據(jù)表3.3顯示電路 LED數(shù)碼管顯示采用動態(tài)掃描方式,能簡化電路布線,節(jié)約單片機I/O端口。段碼和位碼由單片機P0送出,分別用74HC673N鎖存。圖9數(shù)碼管驅(qū)動顯示電路

3.4聲光報警電路 當溫度超過設(shè)定溫度值時,實現(xiàn)聲光報警,蜂鳴器鳴叫、8個發(fā)光二極管點亮。蜂鳴器由單片機P2^3口控制,用三極管驅(qū)動,發(fā)光二極管接單片機P1口,由74HC673N鎖存。圖10聲光報警電路3.5鍵盤輸入電路 四個鍵分別連接單片機P3^4、P3^5、P3^6、P3^7構(gòu)成獨立式鍵盤,分別實現(xiàn)報警溫度范圍上下限的設(shè)定功能。圖11鍵盤輸入電路四、軟件設(shè)計4.1主程序模塊 主程序需要調(diào)用3個子程序,分別為:實時溫度顯示子程序:驅(qū)動數(shù)碼管把實時溫度值送出在LED數(shù)碼管顯示查詢記錄溫度值子程序:查詢過去存儲的溫度值,最多可查詢10個值溫度設(shè)定、報警子程序:設(shè)定報警溫度值,當溫度超過該值時產(chǎn)生報警,即驅(qū)動蜂鳴器鳴叫、8個發(fā)光二極管發(fā)光主程序流程圖:開始開始定時器初始化、啟動定時器初始化、啟動顯示實時溫度顯示實時溫度溫度設(shè)定、報警溫度設(shè)定、報警 查詢記錄溫度值查詢記錄溫度值 圖12主程序流程圖4.2讀溫度值模塊 讀溫度值模塊需要調(diào)用4個子程序,分別為:DS18B20初始化子程序:讓單片機知道DS18B20在總線上且已準備好操作DS18B20寫字節(jié)子程序:對DS18B20發(fā)出命令DS18B20讀字節(jié)子程序:讀取DS18B20存儲器的數(shù)據(jù)延時子程序:對DS18B20操作時的時序控制讀溫度值模塊流程圖:入口入口數(shù)據(jù)轉(zhuǎn)換處理讀取溫度值高低位跳過讀序列號DS18B20初始化延時啟動溫度轉(zhuǎn)換跳過讀序列號DS18B20初始化數(shù)據(jù)轉(zhuǎn)換處理讀取溫度值高低位跳過讀序列號DS18B20初始化延時啟動溫度轉(zhuǎn)換跳過讀序列號DS18B20初始化返回 返回 圖13讀溫度值子程序流程圖DS18B20初始化子程序流程圖:入口入口DQ為低電平?延時15~60msDQ拉高電平延時>480msDQ復(fù)位0稍延時DQ置高電平DQ為低電平?延時15~60msDQ拉高電平延時>480msDQ復(fù)位0稍延時DQ置高電平 N返回Y返回 圖14DS18B20初始化子程序流程圖DS18B20寫字節(jié)和讀字節(jié)子程序流程圖: 圖15DS18B20寫字節(jié)子程序流程圖 圖16DS18B20讀字節(jié)子程序流程圖4.3中斷模塊 中斷采用T0方式1,初始值定時為50ms。中斷模塊需調(diào)用兩個子程序:讀溫度值子程序:定時讀取溫度值,實時更新溫度值記錄溫度值子程序:定時記錄溫度值,供查詢使用把這兩個子程序放在中斷的原因是,不會因為調(diào)整報警溫度或查詢歷史溫度值而停止更新溫度值和記錄溫度值。中斷模塊流程圖:1秒?計數(shù)值加1定時器重置初值中斷入口1秒?計數(shù)值加1定時器重置初值中斷入口讀溫度值 Y讀溫度值中斷返回記錄溫度值N中斷返回記錄溫度值 圖17中斷模塊流程圖4.4溫度查詢模塊 溫度查詢模塊需要接受按鍵輸入,進入查詢界面后,按加減鍵分別查詢上一個和下一個歷史溫度值,并驅(qū)動數(shù)碼管顯示需要查詢的溫度值。 溫度查詢模塊流程圖如下:入口入口功能鍵按下?功能鍵按下? N確認按下?延時消抖Y確認按下?延時消抖 N 顯示溫度值與位次Y顯示溫度值與位次 加鍵按下? N加鍵按下?確認按下?延時消抖Y確認按下?延時消抖查詢下一個值查詢下一個值 Y 減鍵按下?N減鍵按下? N查詢上一個值確認按下?延時消抖Y查詢上一個值確認按下?延時消抖 Y退出功能鍵按下?N退出功能鍵按下? N返回Y返回 圖18溫度查詢模塊流程圖4.5溫度設(shè)定、報警模塊 此模塊跟溫度查詢模塊類似,需要接受按鍵輸入,進入模塊界面后,按加減鍵分別上調(diào)和下調(diào)設(shè)定報警溫度值,當實時溫度值超過設(shè)定值時驅(qū)動蜂鳴器發(fā)聲,并點亮8位發(fā)光二極管,實現(xiàn)聲光報警。 溫度設(shè)定、報警模塊流程圖如下:入口延時消抖減鍵按下?確認按下?延時消抖加鍵按下?顯示設(shè)定溫度值確認按下?延時消抖功能鍵按下?入口延時消抖減鍵按下?確認按下?延時消抖加鍵按下?顯示設(shè)定溫度值確認按下?延時消抖功能鍵按下? NY NY NY上調(diào)設(shè)定值 Y上調(diào)設(shè)定值N NY下調(diào)設(shè)定值確認按下?下調(diào)設(shè)定值確認按下? Y N聲光報警溫度超出設(shè)定值? Y聲光報警溫度超出設(shè)定值? N取消報警取消報警判斷退出界面? N判斷退出界面?Y返回返回圖19溫度設(shè)定、報警模塊流程圖4.6數(shù)碼管驅(qū)動模塊 本設(shè)計數(shù)碼管通過鎖存器接單片機P0口,采用動態(tài)掃描驅(qū)動7段LED數(shù)碼管進行顯示,需調(diào)用延時子程序以穩(wěn)定顯示。 模塊流程圖如下:P0清零關(guān)位選送位碼開位選P0置高關(guān)段選入口P0清零關(guān)位選送位碼開位選P0置高關(guān)段選入口 開段選開段選 延時關(guān)段選送段碼延時關(guān)段選送段碼 返回返回圖20數(shù)碼管驅(qū)動模塊流程圖五、總結(jié) 此次課程設(shè)計中,難點在于DS18B20的使用,即對它的時序控制、初始化以及字節(jié)讀寫方法,任何一個環(huán)節(jié)出錯或是時序控制不到位的話就不能得到正確的數(shù)據(jù)。一旦學(xué)會了正確的使用方法,就能感覺到它帶來的便利是熱電偶不能比擬的,以后再次使用的話就能很快上手了。 軟件設(shè)計中,把程序按功能分模塊的話能提高編程效率,把問題一一解決,同時畫流程圖能幫助理清思路,使問題簡單化。定義變量時,盡量定義局部變量,在字符型變量能達到要求的情況下就不用定義成整形變量了,以節(jié)省內(nèi)存空間。同時局部變量應(yīng)避免與全局變量取同名,否則全局變量將被屏蔽或與局部變量相沖突而達不到設(shè)計的效果。另一方面,取變量名時也要講究技巧,應(yīng)盡量使其見名知意,同樣地,寫程序時加注釋確是非常必要的,否則隔一段時間后,想再改進或做擴展的話就比較困難了,因為即使是自己寫的程序也變得難讀難懂了。在做鍵盤消抖時,延時的時間比較重要,一般為10ms左右,延時太短就會使按鍵太過靈敏,按一下就使數(shù)字跳變幾次;而延時過長則可能使按鍵按下了卻無響應(yīng),在外部定義初始化一個延時函數(shù)的入口參量則能很方便地調(diào)整延時時間,以達到比較好的效果。另外,如果對按鍵進行釋放判斷的話就能解決長時間按鍵導(dǎo)致按鍵重復(fù)響應(yīng)的問題。 此設(shè)計中沒有為溫度的單位(攝氏度)準備專用的數(shù)碼管來顯示,若單獨用一個數(shù)碼管顯示“C”來代替“℃”的話,看起來感覺很別扭。偶然想起如若用一個數(shù)碼管的上半部顯“0”,即a、b、f、g段點亮,來代替“℃”左上角的“度”的話,效果應(yīng)該不錯,便作了一試,發(fā)現(xiàn)這是確是一個很好的主意,便在此次設(shè)計中采用了這個辦法來顯示溫度單位。另外此次設(shè)計也考慮了實時溫度顯示界面與報警溫度設(shè)置界面的區(qū)別,即在進入報警溫度設(shè)置界

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論