欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
基于51單片機(jī)的18B20溫度檢測(cè)- 微計(jì)算機(jī)應(yīng)用綜合實(shí)訓(xùn)報(bào)告
[打印本頁(yè)]
作者:
往事隨風(fēng)qaq
時(shí)間:
2019-1-25 16:16
標(biāo)題:
基于51單片機(jī)的18B20溫度檢測(cè)- 微計(jì)算機(jī)應(yīng)用綜合實(shí)訓(xùn)報(bào)告
微計(jì)算機(jī)應(yīng)用綜合實(shí)訓(xùn)報(bào)告
課程名稱: 微計(jì)算機(jī)應(yīng)用綜合實(shí)訓(xùn)
院 (系):
專業(yè)班級(jí):
學(xué)生姓名:
學(xué) 號(hào):
實(shí)踐地點(diǎn):
指導(dǎo)教師:
設(shè)計(jì)起止時(shí)間
基于51單片機(jī)的18B20溫度檢測(cè)
摘 要
隨著時(shí)代的進(jìn)步和發(fā)展,單片機(jī)技術(shù)已經(jīng)普及到我們的生活、工作、科研各個(gè)領(lǐng)域,已經(jīng)成為了一種比較成熟的技術(shù),本文將介紹一種基于51單片機(jī)控制的溫度檢測(cè)儀。本設(shè)計(jì)使用簡(jiǎn)便,功能豐富。可以實(shí)現(xiàn)溫度采集,溫度報(bào)警,重設(shè)上下限度值等功能。
在現(xiàn)代化的工業(yè)生產(chǎn)中,需要對(duì)周圍環(huán)境進(jìn)行檢測(cè)和控制。該系統(tǒng)使用STC89C51單片機(jī),同時(shí)運(yùn)用單線數(shù)字溫度傳感器DS18B20,四位共陽(yáng)極數(shù)碼管顯示,按鍵控制等模塊可實(shí)現(xiàn)溫度的檢測(cè)與設(shè)置。課題經(jīng)過(guò)實(shí)驗(yàn)驗(yàn)證達(dá)到設(shè)計(jì)要求,具有一定的使用價(jià)值和推廣價(jià)值。本作品使用四位共陽(yáng)極數(shù)碼管顯示,可以清晰地顯示當(dāng)前的溫度,快速準(zhǔn)確,實(shí)用性很高。
目 錄
1 緒論...4
1.1 實(shí)訓(xùn)內(nèi)容.5
1.2 系統(tǒng)總體設(shè)計(jì)..5
2 protel學(xué)習(xí)..5
2.1 學(xué)習(xí)簡(jiǎn)介..5
2.2 原理圖.6
2.3 PCB圖.6
3 硬件電路.7
3.1 最小系統(tǒng)電路.7
3.2 數(shù)碼管顯示電路9
3.3 溫度采集電路10
3.4 電路焊接10
4 軟件設(shè)計(jì).11
4.1 總體設(shè)計(jì).11
4.2 溫度采集子程序11
4.3 數(shù)碼顯示子程序12
4.4 protues仿真.13
4.5 硬件調(diào)試.13
參考文獻(xiàn)13
附錄..14
1緒 論
2009年6月14日隨著時(shí)代的進(jìn)步和發(fā)展,單片機(jī)技術(shù)已經(jīng)普及到我們生活、工作、科研、各個(gè)領(lǐng)域,已經(jīng)成為一種比較成熟的技術(shù)。
本文主要介紹了一個(gè)基于89S51單片機(jī)的測(cè)溫系統(tǒng),詳細(xì)描述了利用液晶顯示器件傳感器DS18B20開(kāi)發(fā)測(cè)溫系統(tǒng)的過(guò)程,重點(diǎn)對(duì)傳感器在單片機(jī)下的硬件連接,軟件編程以及各模塊系統(tǒng)流程進(jìn)行了詳盡分析,特別是數(shù)字溫度傳感DS18B20的數(shù)據(jù)采集過(guò)程。對(duì)各部分的電路也一一進(jìn)行了介紹,該系統(tǒng)可以方便的實(shí)現(xiàn)實(shí)現(xiàn)溫度采集和顯示,并可根據(jù)需要任意設(shè)定上下限報(bào)警溫度,它使用起來(lái)相當(dāng)方便,具有精度高、量程寬、靈敏度高、體積小、功耗低等優(yōu)點(diǎn),適合于我們?nèi)粘I詈凸ぁ⑥r(nóng)業(yè)生產(chǎn)中的溫度測(cè)量,也可以當(dāng)作溫度處理模塊嵌入其它系統(tǒng)中,作為其他主系統(tǒng)的輔助擴(kuò)展。DS18B20與AT89C51結(jié)合實(shí)現(xiàn)最簡(jiǎn)溫度檢測(cè)系統(tǒng),該系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,抗干擾能力強(qiáng),適合于惡劣環(huán)境下進(jìn)行現(xiàn)場(chǎng)溫度測(cè)量,有廣泛的應(yīng)用前景。
1.1 實(shí)訓(xùn)內(nèi)容
通過(guò)基于C51系列單片機(jī)AT89C51和DS18B20溫度傳感器檢測(cè)溫度,熟悉芯片的使用,溫度傳感器的功能,數(shù)碼顯示管的使用,匯編語(yǔ)言的設(shè)計(jì);并且把我們這大學(xué)所學(xué)的數(shù)字和模擬電子技術(shù)、檢測(cè)技術(shù)、單片機(jī)應(yīng)用等知識(shí),通過(guò)理論聯(lián)系實(shí)際,從題目分析、電路設(shè)計(jì)調(diào)試、程序編制調(diào)試到傳感器的選定等這一完整的實(shí)驗(yàn)過(guò)程,培養(yǎng)了學(xué)生正確的設(shè)計(jì)思想,使學(xué)生充分發(fā)揮主觀能動(dòng)性,熟練掌握protues、protel、keil等軟件,繪制PCB板,去獨(dú)立解決實(shí)際問(wèn)題,以達(dá)到提升學(xué)生的綜合能力、動(dòng)手能力、文獻(xiàn)資料查閱能力的作用,為畢業(yè)設(shè)計(jì)和以后工作打下一個(gè)良好的基礎(chǔ)。
1.2 系統(tǒng)總體設(shè)計(jì)
采用AT89C51單片機(jī)作為控制核心對(duì)溫度傳感器DS18B20控制,讀取溫度信號(hào)并進(jìn)行計(jì)算處理,并送到數(shù)碼管顯示器MSA10564顯示。按照系統(tǒng)設(shè)計(jì)功能的要求,確定系統(tǒng)由3個(gè)模塊組成:主控制器、測(cè)溫電路和顯示電路。數(shù)字溫度計(jì)總體電路結(jié)構(gòu)框圖如圖下所示。
2 protel學(xué)習(xí)
2.1 學(xué)習(xí)簡(jiǎn)介
(1)原理圖設(shè)計(jì)步驟
查找所需原理圖庫(kù)文件并加載;
繪制所需原件;
繪制原理圖;
注釋原理圖
(2)網(wǎng)絡(luò)表的生成
網(wǎng)絡(luò)報(bào)表由電路原理圖生成,它包含原理圖中元件的封裝信息,是電路原理圖設(shè)計(jì)和印制板設(shè)計(jì)之間的橋梁和紐帶。
(3)PCB設(shè)計(jì)步驟
設(shè)置PCB模板,放置安裝孔;
檢查網(wǎng)絡(luò)表,并導(dǎo)入;
對(duì)所有元件進(jìn)行布局;
按照元件的電氣連接進(jìn)行布線;
敷銅;
對(duì)整個(gè)PCB檢錯(cuò);
導(dǎo)出PCB文件,準(zhǔn)備制作
2.2 原理圖
2.3 PCB圖
3 硬件設(shè)計(jì)
3.1 最小系統(tǒng)電路
單片機(jī)最小系統(tǒng)板是散件由我們自己焊接的,如下圖:
a、單片機(jī)控制模塊
該模塊由AT89C51單片機(jī)組成在設(shè)計(jì)方面,AT89C51的EA接高電平,其外圍電路提供能使之工作的晶振脈沖、復(fù)位按鍵,四個(gè)I/O分別接8路的單列IP座方便與外圍設(shè)備連接。 當(dāng)AT89C51芯片接到來(lái)自溫度傳感器的信號(hào)時(shí),其內(nèi)部程序?qū)⒏鶕?jù)信號(hào)的類型進(jìn)行處理,并且將處理的結(jié)果送到顯示模塊,發(fā)送控制信號(hào)控制各模塊。
b、溫度傳感器模塊
DS18B20相關(guān)資料
DS18B20原理與分析
DS18B20是美國(guó)DALLAS半導(dǎo)體公司繼DS1820之后最新推出的一種改進(jìn)型智能溫度傳感器。與傳統(tǒng)的熱敏電阻相比,它能夠直接讀出被測(cè)溫度并且可根據(jù)實(shí)際要求通過(guò)簡(jiǎn)單的編程實(shí)現(xiàn)9~12位的數(shù)字值讀數(shù)方式。可以分別在93.75 ms和750ms內(nèi)完成9位和12位的數(shù)字量,并且從DS18B20讀出的信息或?qū)懭隓S18B20的信息僅需要一根口線(單線接口)讀寫(xiě),溫度變換功率來(lái)源于數(shù)據(jù)總線,總線本身也可以向所掛接的DS18B20供電,而無(wú)需額外電源。因而使用DS18B20可使系統(tǒng)結(jié)構(gòu)更趨簡(jiǎn)單,可靠性更高。他在測(cè)溫精度、轉(zhuǎn)換時(shí)間、傳輸距離、分辨率等方面較DS1820有了很大的改進(jìn),給用戶帶來(lái)了更方便的使用和更令人滿意的效果。 以下是DS18B20的特點(diǎn):
(1)獨(dú)特的單線接口方式:DS18B20與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊。
(2)在使用中不需要任何外圍元件。
(3)可用數(shù)據(jù)線供電,電壓范圍:+3.0~ +5.5 V。
(4)測(cè)溫范圍:-55 - +125 ℃。固有測(cè)溫分辨率為0.5 ℃。
(5)通過(guò)編程可實(shí)現(xiàn)9-12位的數(shù)字讀數(shù)方式。
(6)用戶可自設(shè)定非易失性的報(bào)警上下限值。
(7)支持多點(diǎn)組網(wǎng)功能,多個(gè)DS18B20可以并聯(lián)在惟一的三線上,實(shí)現(xiàn)多點(diǎn)測(cè)溫。
(8)負(fù)壓特性,電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,但不能正常工作。
3.2 數(shù)碼管顯示電路
市面上的四位一體數(shù)碼管一般都沒(méi)有固定的段碼表,所以掌握它們管腳的分布是很重要的一個(gè)環(huán)節(jié)。
四位一體數(shù)碼管,其內(nèi)部段已連接好,數(shù)碼管的使用中還需注意以下幾個(gè)問(wèn)題:
(1)數(shù)碼管使用時(shí)的電流與電壓。
①電流:靜態(tài)時(shí),推薦使用10~15mA;動(dòng)態(tài)時(shí),16/1動(dòng)態(tài)掃描時(shí),平均電流為.4—5mA,峰值電流為50~60mA。
②電壓:查引腳排布圖,看一下每段的芯片數(shù)量是多少?當(dāng)紅色時(shí),使用1.9V乘以每段的芯片串聯(lián)的個(gè)數(shù);當(dāng)綠色時(shí),使用2.1V乘以每段的芯片串聯(lián)的個(gè)數(shù)。
(2)顯示效果。
由于發(fā)光二極管基本上屬于電流敏感器件,其正向壓降的分散性很大,并且還與溫度有關(guān),為了保證數(shù)碼管具有良好的亮度均勻度,就需要使其具有恒定的工作電流,且不能受溫度及其他因素的影響。另外,當(dāng)溫度變化時(shí)驅(qū)動(dòng)芯片還要能夠自動(dòng)調(diào)節(jié)輸出電流的大小以實(shí)現(xiàn)色差平衡溫度補(bǔ)償。
3.3 溫度采集電路
DS18B20有三個(gè)引腳,VCC、DQ、GND。分別接高電平、輸出引腳和接地。
3.4 電路焊接
電路焊接尤其要注意數(shù)碼管的引腳,還有三極管以及DS18B20的接法。
4 軟件設(shè)計(jì)
4.1 總體設(shè)計(jì)
系統(tǒng)程序主要包括主程序、讀出溫度子程序、溫度轉(zhuǎn)換子程序、計(jì)算溫度子程序、顯示等等。
4.2 溫度采集子程序
void WriteOneChar(unsigned char dat)
{
unsigned char i=0;
for (i=8; i>0; i--)
{
DQ = 0;
DQ = dat&0x01;
dsdelay(5);
DQ = 1;
dat>>=1;
}
dsdelay(4);}//讀取溫度
void ReadTemperature(void)
{
Init_DS18B20();
WriteOneChar(0xCC); // 跳過(guò)讀序號(hào)列號(hào)的操作
WriteOneChar(0x44); // 啟動(dòng)溫度轉(zhuǎn)換
Init_DS18B20();
WriteOneChar(0xCC); //跳過(guò)讀序號(hào)列號(hào)的操作
WriteOneChar(0xBE); //讀取溫度寄存器等(共可讀9個(gè)寄存器) 前兩個(gè)就是溫度
TMPL=ReadOneChar();
TMPH=ReadOneChar();
temp= ((TMPL>>4 | TMPH<<4)) +((TMPL&0x0F)*0.0625);}
4.3 數(shù)碼顯示子程序
{ ReadTemperature();
A1=temp%100/10;
A2=temp%10;
LED=0xff;
LED=table[A2];
led3=0;
led4=1;
delay_nms(5);
LED=0xff;
LED=table[A1];
led3=1;
led4=0;
delay_nms(5); }
4.4 PROTUES仿真
4.5 硬件調(diào)試
硬件調(diào)試是件很艱辛的過(guò)程,遇到的問(wèn)題很多。比如焊接過(guò)程中DS18B20組件被高溫燙壞,導(dǎo)致調(diào)試是檢測(cè)不到信號(hào)數(shù)碼管數(shù)字不變,更換后由于沒(méi)注意區(qū)分DS18B20的引腳導(dǎo)致引腳接錯(cuò),直接導(dǎo)致組件功能異常。調(diào)試過(guò)程中數(shù)碼管示數(shù)變化緩慢,后來(lái)更改延時(shí)程序得以解決。
參考文獻(xiàn)
【1】梁森,歐陽(yáng)三泰,王侃夫. 自動(dòng)檢測(cè)技術(shù)及應(yīng)用【M】.北京:機(jī)械工業(yè)出版社.
【2】萬(wàn)隆.單片機(jī)原理及應(yīng)用技術(shù)教程 清華大學(xué)出版社.
【3】李朝青.單片機(jī)原理及接口技術(shù)(簡(jiǎn)明修訂版).杭州:北京航空航天大學(xué)出版社,
【4】李廣弟.單片機(jī)基礎(chǔ)[M].北京:北京航空航天大學(xué)出版社.
【5】 康華光.數(shù)字電子技術(shù)基礎(chǔ)(第四版). 北京:高等教育出版社.
附錄
總程序
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define LED P2
sbit DQ=P1^3;
sbit led1=P3^0;
sbit led2=P3^1;
sbit led3=P3^2;
sbit led4=P3^3;
ucharcode table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned charTMPH,TMPL,temp; //溫度值
uchar A1,A2;
//延時(shí)函數(shù)
void dsdelay(unsigned int i)
{
while(i--);
}
void delay_nms(uchar n)
{
uchar i,j,k;
for(k=0;k<n;k++)
{
for(j=0;j<15;j++)
{
for(i=0;i<21;i++)
{;}
}
}
}
//初始化函數(shù)
void Init_DS18B20(void)
{
unsigned char x=0;
DQ = 1; //DQ復(fù)位
dsdelay(8); //稍做延時(shí)
DQ = 0; //單片機(jī)將DQ拉低
dsdelay(80); //精確延時(shí) 大于 480us
DQ = 1; //拉高總線
dsdelay(14);
x=DQ; //稍做延時(shí)后 如果x=0則初始化成功 x=1則初始化失敗
dsdelay(20);
}
//讀一個(gè)字節(jié)
unsigned charReadOneChar(void)
{
unsigned char i=0;
unsigned char dat = 0;
for (i=8;i>0;i--)
{
DQ = 0; // 給脈沖信號(hào)
dat>>=1;
DQ = 1; // 給脈沖信號(hào)
if(DQ)
dat|=0x80;
dsdelay(4);
}
return(dat);
}
//寫(xiě)一個(gè)字節(jié)
void WriteOneChar(unsignedchar dat)
{
unsigned char i=0;
for (i=8; i>0; i--)
{
DQ = 0;
DQ = dat&0x01;
dsdelay(5);
DQ = 1;
dat>>=1;
}
dsdelay(4);
}
//讀取溫度
void ReadTemperature(void)
{
Init_DS18B20();
WriteOneChar(0xCC); // 跳過(guò)讀序號(hào)列號(hào)的操作
WriteOneChar(0x44); // 啟動(dòng)溫度轉(zhuǎn)換
Init_DS18B20();
WriteOneChar(0xCC); //跳過(guò)讀序號(hào)列號(hào)的操作
WriteOneChar(0xBE); //讀取溫度寄存器等(共可讀9個(gè)寄存器)前兩個(gè)就是溫度
TMPL=ReadOneChar();
TMPH=ReadOneChar();
temp= ((TMPL>>4 | TMPH<<4)) + ((TMPL&0x0F)*0.0625);
}
void main()
{
led1=0;
led2=0;
led3=0;
led4=0;
while(1)
{
ReadTemperature();
A1=temp%100/10;
A2=temp%10;
LED=0xff;
LED=table[A2];
led3=0;
led4=1;
delay_nms(5);
LED=0xff;
LED=table[A1];
led3=1;
led4=0;
delay_nms(5);
}
}
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1