基于STCC單片機的LED溫計設(shè)計_第1頁
基于STCC單片機的LED溫計設(shè)計_第2頁
基于STCC單片機的LED溫計設(shè)計_第3頁
基于STCC單片機的LED溫計設(shè)計_第4頁
基于STCC單片機的LED溫計設(shè)計_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、目錄1.、設(shè)計的任務(wù)與要求21.1系統(tǒng)設(shè)計的背景21.2理論基礎(chǔ)22、總體設(shè)計和系統(tǒng)框圖22.1溫度采集模塊32.2溫度顯示模塊33、設(shè)計方案43.1硬件系統(tǒng)設(shè)計4供電電路設(shè)計4溫度采集模塊設(shè)計4顯示電路53.2軟件系統(tǒng)設(shè)計63.2.1 DS18B20的讀寫時序6程序流程圖74、硬件原理圖85、系統(tǒng)仿真和調(diào)試96.程序源代碼97、設(shè)計結(jié)果分析148、設(shè)計總結(jié)和體會159、參考文獻16附錄一:硬件原理圖17摘要 本文介紹了采用51系列單片機和DS18B20溫度傳感器,實現(xiàn)數(shù)字溫度測量,用數(shù)碼管把溫度實時顯示出來,溫度以兩位整數(shù)位和一位小數(shù)位的形式顯示。 本系統(tǒng)主要包括供電模塊、單片機最小系統(tǒng)模塊

2、、DS18B20溫度采集模塊和LED數(shù)碼管顯示模塊。關(guān)鍵詞:51單片機 DS18B20 LED1.、設(shè)計的任務(wù)與要求1.1系統(tǒng)設(shè)計的背景溫度的測量廣泛的應(yīng)用在工農(nóng)業(yè)生產(chǎn)和社會生活中,由于工農(nóng)業(yè)的發(fā)展要求溫度的測量的精度和實時性提出了更高的要求,傳統(tǒng)的水銀溫度計和熱電偶等,存在測量不方便、精度低、采集和傳輸較復(fù)雜等缺點。本設(shè)計采用美國Dallas公司的DS18B20和stc89c52單片機構(gòu)成溫度測量系統(tǒng),用LED數(shù)碼管實時顯示溫度,具有更高的智能性和直觀性。1.2理論基礎(chǔ)要較好的設(shè)計出溫度計,需要我們深入的了解DS18B20溫度傳感器的構(gòu)造、接線、信息溝通,要較好的掌握51系列單片機的使用以及

3、硬件搭建,LED數(shù)碼管的顯示原理以及與單片機的連接。要找出一個較好的溫度采集方案,使得到的溫度更加準(zhǔn)確。2、總體設(shè)計和系統(tǒng)框圖包括方案比較、方案論證、方案選擇(以方框圖的形式給出各方案,并簡要說明)為了以數(shù)字的形式來顯示采集的溫度我們需要以一個單片機來處理數(shù)據(jù),由于對單片機的性能要求不是很高,我們采用51系列單片機來處理數(shù)據(jù),系統(tǒng)總體方框圖如圖1。圖12.1溫度采集模塊 采用DS18B20溫度傳感器,DS18B20輸出的量為數(shù)字量,只要按特定的時序讀出數(shù)值就可獲得溫度數(shù)據(jù),電路較為簡單且成本較低,DS18B20如圖3所示,所以選擇方案二。 圖3 DS18B202.2溫度顯示模塊 采用LED數(shù)碼

4、管顯示,雖然占用了單片機較多的時間,但數(shù)碼管顯示的較清晰,且價格較便宜連接電路簡單。3、設(shè)計方案 3.1硬件系統(tǒng)設(shè)計51系列單片機性能穩(wěn)定價格便宜功耗低,使用于在較低應(yīng)用下的智能系統(tǒng)的設(shè)計。3.1.1供電電路設(shè)計該單片機的正常工作電壓為+5V,可以由外界直接輸入+5V電壓,此單片機采用USB供電。圖4 供電電路3.1.4溫度采集模塊設(shè)計本系統(tǒng)采用DS18B20作為溫度采集芯片,DS18B20通過一個單線接口發(fā)送或接收信息,因此在中央微處理器和DS18B20之間僅需一條連接線,每只DS18B20都有一個獨特的片序列號,所以多只DS18B20可以同時連在一根單線總線上。DS1820 依靠一個單線端

5、口通訊。在單線端口條件下,必須先建立 ROM 操作協(xié)議,才能進行存儲器和控制操作。因此,控制器必須首先提供下面 5 個 ROM 操作命令之一:1)讀 ROM,2)匹配 ROM,3)搜索ROM,4)跳過 ROM,5)報警搜索。這些命令對每個器件的激光 ROM 部分進行操作,在單線總線上掛有多個器件時,可以區(qū)分出單個器件,同時可以向總線控制器指明有多少器件或是什么型號的器件。成功執(zhí)行完一條 ROM 操作序列后,即可進行存儲器和控制操作,控制器可以提供 6 條存儲器和控制操作指令中的任一條。 一條控制操作命令指示 DS1820 完成一次溫度測量。測量結(jié)果放在 DS1820 的暫存器里,用一條讀暫存器

6、內(nèi)容的存儲器操作命令可以把暫存器中數(shù)據(jù)讀出。硬件電路設(shè)計如圖7所示。圖7 DS18B20硬件連接3.1.5顯示電路我們最常用的是七段式和八段式LED數(shù)碼管,八段比七段多了一個小數(shù)點,所謂的八段就是指數(shù)碼管里有八個小LED發(fā)光二極管,通過控制不同的LED的亮滅來顯示不同的字形。數(shù)碼管又分為共陰極和共陽極兩種,共陰極就是將八個LED的陰極連在一起,讓其接地,這樣給任何一個LED的另一端高電平,它便能點亮。共陽極就是將八個LED的陽極連在一起。其原理圖如圖9所示。圖9 LED原理圖3.2軟件系統(tǒng)設(shè)計3.2.1 DS18B20的讀寫時序圖10 初始化過程 復(fù)位和存在脈沖圖11 控制器寫時序圖12 控制

7、器讀時序3.2.2程序流程圖圖13 系統(tǒng)流程圖 4、硬件原理圖5、系統(tǒng)仿真和調(diào)試 在仿真過程中溫度由高到零下,然后又由零下調(diào)到零上,觀察到數(shù)碼管顯示的溫度可以很好的跟蹤溫度的變化。具有較好的靈活性和準(zhǔn)確性。仿真過程中的兩個截圖如下。圖14 仿真截圖1圖15 仿真截圖26.程序源代碼在仿真過程中觀察到數(shù)碼管顯示的溫度可以很好的跟蹤溫度的變化。具有較好的靈活性和準(zhǔn)確性。程序源代碼如下。#include<reg52.h>#include<intrins.h>sbit p1_1=P10;sbit DS=P33;unsigned int a,i;unsigned char dum

8、a = 0x28,0xF9,0x4C,0x58,0x99,0x1A,0x0B,0xF8,0x08,0x98,0x88,0x08,0x2E,0x28,0x0E,0x8E,0xF7;unsigned code wema=0x7F,0xBF,0xDF,0xEF;unsigned baiwei,shiwei,gewei,dianhou;#define uchar unsigned char/將unsigned char定義為uchar,簡化輸寫。提高編程速度#define uint unsigned int/將unsigned char定義為uint,簡化輸寫。提高編程速度/*延時子程序10ms*/v

9、oid delay5ms() uchar a,b;for(a=20;a>0;a-)for(b=30;b>0;b-);/*延時子程序*/ void delayb(uint count) uint i;while(count)i=200;while(i>0)i-;count-;/*DS18B20初始化*/void dsreset(void) uint i; DS=0;i=103;while(i>0)i-;DS=1;i=4;while(i>0)i-;/*讀一位數(shù)據(jù)值*/bit tmpreadbit(void) uint i;bit dat;DS=0;i+; /i+,小延

10、時一下DS=1;i+;i+;dat=DS;i=8;while(i>0)i-;return (dat);/*讀一個字節(jié)數(shù)據(jù)*/uchar tmpread(void) uchar i,j,dat;dat=0;for(i=1;i<=8;i+)j=tmpreadbit();dat=(j<<7)|(dat>>1); /讀出的數(shù)據(jù)最低位在最前面,這樣剛好/一個字節(jié)在DAT里return(dat); /將一個字節(jié)數(shù)據(jù)返回/*寫一個字節(jié)到DS18B20里*/void tmpwritebyte(uchar dat) uint i;uchar j;bit testb;for(j

11、=1;j<=8;j+)testb=dat&0x01;dat=dat>>1;if(testb) / 寫1部分DS=0;i+;i+;DS=1;i=8;while(i>0)i-;elseDS=0; /寫0部分i=8;while(i>0)i-;DS=1;i+;i+;/*獲取溫度并轉(zhuǎn)化命令*/void tmpchange(void) dsreset(); /初始化DS18B20delayb(1); /延時tmpwritebyte(0xcc); /跳過序列號命令tmpwritebyte(0x44); /發(fā)送溫度轉(zhuǎn)換命令/*讀取DS18B20中溫度寄存器數(shù)據(jù)*/void

12、 get_temp(void) float ftemp;uchar a,b; int temp;dsreset();delayb(1);tmpwritebyte(0xcc); tmpwritebyte(0xbe); /發(fā)送讀取數(shù)據(jù)命令a=tmpread(); /連續(xù)讀兩個字節(jié)數(shù)據(jù),讀低8位b=tmpread(); /讀高8位temp=b;temp<<=8; /temp高8位和低8位交換,將交換過的值重新賦給temp。temp=temp|a; /兩字節(jié)合成一個字ftemp=temp*0.0625; /得到真實十進制溫度值,因為DS18B20可以精確到0.062度 /所以讀回數(shù)據(jù)的最低

13、位代表的是0.0625度 temp=ftemp*10+0.5; /放大十倍,這樣做的目的將小數(shù)點后第一位也轉(zhuǎn)換為可顯示數(shù)字,同時進行一個四舍五入操作。baiwei=temp/1000;/顯示百位溫度,這里用1000,是因為我們之前乖以10位了 delayb(1); shiwei=temp%1000/100;/顯示十位溫度 delayb(1); gewei=temp%1000%100/10;/顯示個位溫度。 delayb(1);dianhou=temp%10;/顯示小數(shù)點后溫度void display(uchar num,uchar dat)P0=dumadat; /段碼P2=wemanum;

14、/位碼void delay1(uint x)uint a,b;for(a=x;a>0;a-)for(b=50;b>0;b-);void dis_temp() display(2,shiwei); delay1(1);display(1,gewei);delay1(1);display(1,16);/顯示小數(shù)點delay1(1);display(0,dianhou); delay1(1); void main() while(1) tmpchange(); /溫度轉(zhuǎn)換 get_temp(); for(i=25;i>0;i-) /讓數(shù)碼管顯示更加清晰 dis_temp(); 7、

15、設(shè)計結(jié)果分析仿真過程中調(diào)節(jié)溫度,數(shù)碼管顯示的溫度可以很好的跟著變化,小數(shù)點后顯示一位,達到預(yù)定的目標(biāo)。 器件一覽表如 表1器件名稱數(shù)量Stc89c52單片機1個晶振11.0592MHZ1個10uf有極性電容1個開關(guān)1個阻排1個8段共陽數(shù)碼管4個DS18B20溫度傳感器1個8、設(shè)計總結(jié)和體會 通過對這一系統(tǒng)的設(shè)計,我們對以前所學(xué)的知識有了更深的了解,懂得了以前基礎(chǔ)學(xué)習(xí)的重要性,在這一設(shè)計過程中我們查閱了大量地資料,并對以往所學(xué)進行了系統(tǒng)性的復(fù)習(xí)和總結(jié)。今后我們會更加注重基礎(chǔ)知識的學(xué)習(xí)。設(shè)計過程中我們小組三人展開了密切的合作并明確了分工,其中xxx完成了硬件電路的分析設(shè)計和proteus7.0仿真

16、環(huán)境的學(xué)習(xí)并很好的為本設(shè)計作好了仿真的工作,xxx為本設(shè)計繪制了protell99電路原理圖和參加了仿真的部分設(shè)計工作,xxx學(xué)習(xí)和編寫了在KEIL環(huán)境下的51單片機軟件的設(shè)計,在設(shè)計過程中組內(nèi)三人展開了熱烈的討論,遇到問題共同探討,在指導(dǎo)老師的指導(dǎo)下,成功的完成了LED溫度計的設(shè)計,取得了較好的效果。設(shè)計過程中我們采取了創(chuàng)新性的設(shè)計,我們并沒有讓LED一直都亮,而是采取了閃爍的形式,不僅降低了功耗,而且延長了LED數(shù)碼管的壽命。本系統(tǒng)還可以采用干電池供電,從而系統(tǒng)具有較好的可攜帶性。本系統(tǒng)中我們的設(shè)計是采取有線的設(shè)計,單片機和DS18B20是在一起的,由于時間倉促,如果近一步研究,我們想把有線的設(shè)計改成無線的設(shè)計,我們把溫度傳感器和單片機之間以無線的方式相連,把較多溫度傳感器的數(shù)據(jù)采集到主控單片機,可以檢測到更多的溫度數(shù)據(jù),對于溫度的控制和分

溫馨提示

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

評論

0/150

提交評論