基於51微控制器課程設計報告

2021-03-04 02:36:51 字數 4158 閱讀 4466

課題:基於51微控制器的數字溫度計設計

專業: 電氣工程及其自動化

班級4學號12151688

姓名彭明闖

指導教師李敏

設計日期2014/6/3

成績:重慶大學城市科技學院電氣學院

基於51微控制器數字溫度計設計報告

一、設計目的作用

本設計是一款簡單實用的小型數字溫度計,所採用的主要元件有感測器ds18b20,微控制器at89c52,,四位共陰極數碼管乙個,電容電阻若干。ds18b20支援「一線匯流排」介面,測量溫度範圍-55°c~+125°c。在-10~+85°c範圍內,精度為±0.

5°c。18b20的精度較差,為±2°c 。現場溫度直接以「一線匯流排」的數字方式傳輸,大大提高了系統的抗干擾性。

適合於惡劣環境的現場溫度測量,如:環境控制、裝置或過程控制、測溫類消費電子產品等。

本次數字溫度計的設計共分為五部分,主控制器,led顯示部分,感測器部分,復位部分,按鍵設定部分,時鐘電路。主控制器即微控制器部分,用於儲存程式和控制電路;led顯示部分是指四位共陰極數碼管,用來顯示溫度;感測器部分,即溫度感測器,用來採集溫度,進行溫度轉換;復位部分,即復位電路,按鍵部分用來設定上下限報警溫度。測量的總過程是,感測器採集到外部環境的溫度,並進行轉換後傳到微控制器,經過微控制器處理判斷後將溫度傳遞到數碼管顯示。

二、設計要求

(1).利用ds18b20感測器實時檢測溫度並顯示。

(2).利用數碼管實時顯示溫度。

(3).當溫度超過或者低於設定值時蜂鳴器報警,led閃爍指示。

(4).能夠手動設定上限和下限報警溫度。

三、設計的具體實現

1、系統概述

方案一:由於本設計是測溫電路,可以使用熱敏電阻之類的器件利用其感溫效應,在將隨被測溫度變化的電壓或電流採集過來,進行a/d轉換後,就可以用微控制器進行資料的處理,在顯示電路上,就可以將被測溫度顯示出來,這種設計需要用到a/d轉換電路,感溫電路比較麻煩。

方案設計框圖如下:

方案二:考慮到用溫度感測器,在微控制器電路設計中,大多都是使用感測器,所以這是非常容易想到的,所以可以採用乙隻溫度感測器ds18b20,此感測器,可以很容易直接讀取被測溫度值,進行轉換,就可以滿足設計要求。

從以上兩種方案,很容易看出,採用方案二,電路比較簡單,軟體設計也比較簡單,故採用了方案二。

2、單元電路設計與分析

1、硬體設計

按照系統設計功能的要求,確定系統由3個模組組成:主控制器、測溫電路和顯示電路。

數字溫度計總體電路結構框圖所示:

微控制器的選擇

微控制器at89s52具有低電壓供電和體積小等特點,四個埠只需要兩個口就能滿足電路系統的設計需要,很適合便攜手持式產品的設計使用系統可用二節電池供電。由於器件問題,我們使用了通用的手機5v充電器介面。

復位電路模組

微控制器系統的復位電路在這裡使用的是上電+按鈕的復位電路模式,其中電阻r採用的是10kω的阻值,電容採用電容值為10uf的電解電容,電路圖如下:

溫度顯示模組

四位共陰極數碼管,能夠顯示小數。列掃瞄用p2.4~p2.7口來實現,列驅動直接51接微控制器驅動。電路圖如下:

溫度感測器模組

ds18b20溫度感測器是美國dallas半導體公司最新推出的一種改進型智慧型溫度感測器,與傳統的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,並且可根據實際要求通過簡單的程式設計實現9~12位的數字值讀數方式。電路圖如下:

按鍵模組

按鍵是用來設定報警的上下限溫。k1是用來進入上下限調節模式的,當按一下k1進入上限調節模式,再按一下進入下限調節模式。在正常模式下,按一下k2進入檢視上限溫度模式,顯示1s左右自動退出;按一下k3進入檢視下限溫度模式,顯示1s左右自動退出;按一下k4消除按鍵音,再按一下啟動按鍵音。

在調節上下限溫度模式下,k2是實現加1功能, k1是實現減1功能,k3是用來設定上下限溫度正負的。

2、軟體設計

主要包括主程式、讀出溫度子程式、溫度轉換命令子程式、計算溫度子程式和現實資料重新整理子程式等。

主程式主程式的主要功能是負責溫度的實時顯示、讀出並處理ds18b20的測量溫度值。溫度測量每1s進行一次。主流程圖如下:

讀出溫度子程式

讀出溫度子程式的主要功能是讀出ram中的9位元組。在讀出時須進行crc校驗,校驗有錯時不進行溫度資料的改寫。流程圖如下:

溫度轉換命令子程式溫度轉換命令子程式主要是發溫度轉換開始命令。當採用12位解析度時,轉換時間約為750ms。在本程式設計中,採用1s顯示程式延時法等待轉換的完成。流程圖如下:

顯示資料重新整理子程式顯示資料重新整理子程式主要是對顯示緩衝器中的顯示資料進行重新整理操作,當最高資料顯示位為0時,將符號顯示位移入下一位。

系統的除錯及效能分析:

硬體除錯,首先檢查電感的焊接是否正確,然後可用萬用表測試或通電檢測。

軟體除錯可以先編寫顯示程式並進行硬體的正確性檢驗,然後分別進行主程式、讀出溫度子程式、溫度轉換命令子程式、計算溫度子程式和現實資料重新整理子程式等的程式設計及除錯

由於ds18b20與微控制器採用序列資料傳送,因此,對ds18b20進行讀/寫程式設計時必須嚴格地保證讀/寫時序;否則將無法讀取測量結果。本程式採用微控制器彙編或c語言編寫用keil c51編譯器程式設計除錯。

軟體除錯到能顯示溫度值,並且在有溫度變化時顯示溫度能改變,就基本完成。

效能測試可用製作的溫度計和已有的成品溫度計同時進行測量比較。由於ds18b20的精度很高,所以誤差指標可以限制在0.5℃以內。

另外,-55~+125℃的測溫範圍使得該溫度計完全適合一般的應用場合,其低電壓供電特性可做成用電池供電的手持溫度計。

四、總結

本次的課程設計使我們進一步鞏固了書本上的知識,做到了學以致用。這是我們第二次自己動手設計的電路,通過系統**軟體proteus和編譯軟體keil,使我們進一步了解了微控制器的設計製作過程,其中最為困難的是軟體部分,即程式設計部分,我們上網找了好多資料,雖然經過自己的修改,但還是有很多功能不能實現,如溫度上下限設定。由於proteus並不是很熟練,在使用的過程中有很多原件的名稱不知道,從而花費了大量的時間在網上查詢,今後應該在這方面多多努力。

最後一步的焊接硬體也遇到了不少麻煩。總結經驗的時候我們得出這樣的結論,學習應該學以致用,有目的的去學習,如果學了不用等於沒學。其次,要學以致用,理論聯絡實際,這樣才會取得事半功倍的效果。

五、附錄

附錄一:元件清單

附錄二:完整電路原理圖

附錄三:焊接實物圖

附錄四:源程式

* 程式名; 基於51微控制器的溫度計

* 功能:實時測量溫度,超過上下限報警,報警溫度可手動調整。k1是用來

* 進入上下限調節模式的,當按一下k1進入上限調節模式,再按一下進入下限

* 調節模式。在正常模式下,按一下k2進入檢視上限溫度模式,顯示1s左右自動

* 退出;按一下k3進入檢視下限溫度模式,顯示1s左右自動退出;按一下k4消除

* 按鍵音,再按一下啟動按鍵音。在調節上下限溫度模式下,k2是實現加1功能,

* k1是實現減1功能,k3是用來設定上下限溫度正負的。

* 程式設計者:彭明闖

* 程式設計時間:2014/05/30

#include

#include將intrins.h標頭檔案包含到主程式(呼叫其中的_nop_()空操作函式延時)

#define uint unsigned int

#define uchar unsigned char

uchar max=0x00,min=0x00max是上限報警溫度,min是下限報警溫度

bit s=0s是調整上下限溫度時溫度閃爍的標誌位,s=0不顯示200ms,s=1顯示1s左右

bit s1=0s1標誌位用於上下限檢視時的顯示

void display1(uint z宣告display1()函式(display.h標頭檔案中的函式,ds18b20.h要用應先宣告)

#include"ds18b20.h

#include"keyscan.h

#include"display.h

主函式void main()

{ beer=1關閉蜂鳴器

led=1關閉led燈

timer1_init(0初始化定時器1(未啟動定時器1)

get_temperature(1首次啟動ds18b20獲取溫度(ds18b20上電後自動將eeprom中的上下限溫度複製到th和tl暫存器)

while(1

keyscan

get_temperature(0);

display(temp,temp_d*0.625);

微控制器課程設計報告

中南大學 嵌入式微控制器應用系統 綜合設計 題目基於實驗室小型步進電機 控制系統設計 學生姓名張贇楓 學號 0901130425 專業班級自動化1304 日期 2015年12月29日 一 課程設計任務書 題目 基於實驗室小型步進電機控制系統設計 設計要求 1 使用組合語言或c語言 2 程式功能要求 ...

微控制器課程設計報告

石家莊經濟學院資訊工程學院 電子資訊工程專業 微控制器課程設計報告 題目a d轉換 姓名張偉健 學號 408109060205班級 4081090602指導教師田悅新 2011年 6 月 29 日 要求 1 指導教師按照課程設計大綱要求完成學生課程設計指導工作。2 課程設計任務書由指導教師照大綱要求...

微控制器課程設計報告

重慶三峽學院 課程設計報告書 題目 基於步進電機控制系統的設計 學院 系 應用技術學院 年級專業 08級電信 應電 學號 200815254123 學生姓名 宋傳強 指導教師 謝輝 教師職稱 副教授 完成日期2010年12月24日 目錄目錄 2 摘要 3 設計任務 3 第一章步進電機概述 3 1.1...