單片機(jī)課程設(shè)計(jì)--DS18B20的溫度測(cè)量與顯示系統(tǒng)_第1頁
單片機(jī)課程設(shè)計(jì)--DS18B20的溫度測(cè)量與顯示系統(tǒng)_第2頁
單片機(jī)課程設(shè)計(jì)--DS18B20的溫度測(cè)量與顯示系統(tǒng)_第3頁
單片機(jī)課程設(shè)計(jì)--DS18B20的溫度測(cè)量與顯示系統(tǒng)_第4頁
單片機(jī)課程設(shè)計(jì)--DS18B20的溫度測(cè)量與顯示系統(tǒng)_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、單片機(jī)課程設(shè)計(jì)說明書題 目: DS18B20的溫度測(cè)量與顯示系統(tǒng) 學(xué) 院: 航空自動(dòng)化學(xué)院 系 別: 自動(dòng)化系 專業(yè)名稱: 自動(dòng)化專業(yè) 班 級(jí): 學(xué) 號(hào): 姓 名: 指導(dǎo)教師: 中國民航大學(xué)航空自動(dòng)化學(xué)院目錄1課程設(shè)計(jì)要求1 2總體方案設(shè)計(jì) 42.1、單片機(jī)系統(tǒng)2.2、電源模塊2.3、顯示模塊2.4、總體設(shè)計(jì)方案3系統(tǒng)方框圖4 4系統(tǒng)各方框的電路圖 9 4.1、溫度傳感器DS18B20電路4.2、顯示電路 4.3、主控制器 4.4、系統(tǒng)總電路圖5主程序流程圖和各個(gè)子程序的流程圖12 1、主程序流程圖 2、溫度讀取子程序流程圖 3、溫度轉(zhuǎn)換子程序流程圖6源程序說明157心得體會(huì)附錄一 DS18B

2、20簡介 20基于數(shù)字溫度計(jì)DS18B20的溫度測(cè)量與顯示系統(tǒng)一、任務(wù)與要求1.利用1個(gè)DS18B20測(cè)量室內(nèi)溫度(誤差小于?)2.用數(shù)碼管顯示溫度3.顯示精度為0.1擴(kuò)展要求1.多通道測(cè)量2.LCD顯示3.生成印刷電路板3、 二、總體方案設(shè)計(jì)(基本功能)1、單片機(jī)系統(tǒng)我選用了AT89C52單片機(jī),查過資料后我知道AT89C52單片機(jī)具有不但AT89C51單片機(jī)所有的優(yōu)點(diǎn),而且具有更大的程序存儲(chǔ)空間,可在線仿真的功能,方便調(diào)試。所以選用AT89S52八位單片機(jī)作為溫度采集的控部分。2、電源模塊采用普通的直流電源實(shí)現(xiàn)電路簡單,而且采用集成電源芯片設(shè)計(jì)的直流電源電壓比較穩(wěn)定,完全滿足系統(tǒng)各模塊的供

3、電要求。 3、顯示模塊為了顯示出溫度,采用數(shù)碼管顯示工具。4、總體設(shè)計(jì)方案為了不失通用性和智能性,本方案采用AT89S52單片機(jī)作為控制器,單總線溫度傳感器DS18B20進(jìn)行溫度采集。電源部分采用普通的直流電源,完全滿足AT89S52和DS18B20等各模塊的工作電壓范圍。溫度顯示采用數(shù)碼管。4、 系統(tǒng)方框圖程序控制模塊數(shù)碼管顯示模塊單片機(jī)系統(tǒng)溫度傳感器模塊電源模塊四、系統(tǒng)各方框的電路圖1、溫度傳感器DS18B20電路 由于DS18B20 工作在單總線方式,其硬件接口非常簡單,僅需利用系統(tǒng)的一條I/ O線與DS18B20的數(shù)據(jù)總線相連即可,如圖1所示。圖1 DS18B20電路2、顯示電路顯示電

4、路采用4位共陽極LED數(shù)碼管,P0口由上拉電阻提高驅(qū)動(dòng)能力,作為段碼輸出并作為數(shù)碼管的驅(qū)動(dòng)。P2口的低四位作為數(shù)碼管的位選端。采用動(dòng)態(tài)掃描的方式顯示。 3、主控制器單片機(jī)AT89S5具有低電壓供電和體積小等特點(diǎn),四個(gè)端口只需要兩個(gè)口就能滿足電路系統(tǒng)的設(shè)計(jì)需要,很適合便攜手持式產(chǎn)品的設(shè)計(jì)使用系統(tǒng)可用二節(jié)電池供電。4、系統(tǒng)總電路圖總體設(shè)計(jì)電路圖所下,控制器采用單片機(jī)AT89S52,溫度傳感器采用DS18B20,用4位LED數(shù)碼管以串口傳送數(shù)據(jù)實(shí)現(xiàn)溫度顯示。五、主程序流程圖和各個(gè)子程序的流程圖1、主程序流程圖主程序的主要功能是負(fù)責(zé)溫度的實(shí)時(shí)顯示、讀出并處理DS18B20的測(cè)量的當(dāng)前溫度值,溫度測(cè)量每

5、1s進(jìn)行一次。這樣可以在一秒之內(nèi)測(cè)量一次被測(cè)溫度,其程序流程見圖3.1所示。DS18B20初始化結(jié)束溫度轉(zhuǎn)換跳過ROM匹配延時(shí)DS18B20是否存在?跳過ROM匹配讀暫存器轉(zhuǎn)換為顯示碼是否2、溫度讀取子程序流程圖Y發(fā)DS18B20復(fù)位命令發(fā)跳過ROM命令發(fā)讀取溫度命令讀取操作,CRC校驗(yàn)9字節(jié)完?CRC校驗(yàn)正?確?移入溫度暫存器結(jié)束NNY3、溫度轉(zhuǎn)換子程序流程圖發(fā)DS18B20復(fù)位命令發(fā)跳過ROM命令發(fā)溫度轉(zhuǎn)換開始命令 結(jié)束六、程序及說明: #include<reg52.h>#include<intrins.h>#define uchar unsigned char#d

6、efine uint unsigned intsbit DQ=P23;sbit dula=P26;sbit wela=P27;sbit FM=P25;sbit LED1=P20;sbit LED2=P21;sbit LED3=P22;uint temp,tmp,temp1,temp2,temp3;uchar flag1=0;uchar qian,bai,shi,ge;uchar code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x89,0x86,0xc7,0xc

7、0,;/數(shù)碼管顯示代碼uchar code table1=0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x89,0x86,0xc7,0xc0,; /數(shù)碼管顯示代碼void delay(uchar i)while(-i);/延時(shí)函數(shù)void delays(uchar i)while(i-);/延時(shí)函數(shù)void delayms(uint timer)uchar x,y;for(x=timer;x>0;x-)for(y=110;y>0;y-);ms級(jí)別的延時(shí)函數(shù)void D

8、s18b20_Init(void)/*uint i;DQ=0;i=103;while(i>0)i-;DQ=1;i=4;while(i>0)i-; */uchar flag=0;/設(shè)置標(biāo)志位DQ=1;/拉高數(shù)據(jù)總線delay(1);/延時(shí)一段時(shí)間,盡量短一點(diǎn)DQ=0;/拉低總線delays(100);/延時(shí)時(shí)間在480us到960us之間DQ=1;/拉高總線delay(15);/如果在15-60ms的時(shí)間內(nèi)產(chǎn)生一個(gè)低電平,則初始化完成。flag=DQ;delay(100);/ds18b20初始化bit tempreadbit()/位讀取子程序uint i;bit dat;DQ=0;i

9、+;/ i+起延時(shí)作用,1us后進(jìn)入讀時(shí)序DQ=1;i+;i+;/ i+起延時(shí)作用,在1us到15us內(nèi)進(jìn)行采樣,這里延時(shí)大概8usdat=DQ;i=8;while(i>0)i-;/至少需要60us才能完成讀周期return(dat);/返回位數(shù)據(jù) uchar Read_One_Byte()uchar i,j,dat;dat=0;for(i=1;i<=8;i+)j=tempreadbit();dat=(j<<7)|(dat>>1);/循環(huán)8次讀一個(gè)字節(jié)return(dat);void Write_One_Byte(uchar wdat)uint i;ucha

10、r j;bit testb;for(j=1;j<=8;j+)testb=wdat&0x01;wdat=wdat>>1;/右移位if(testb)/寫1周期DQ=0;i+;i+;/延時(shí)一段時(shí)間,寫周期開始DQ=1;i=8;while(i>0)i-;/完成一次寫周期至少要需要60us,這里大概是100usDQ=1;i+;i+;Else/寫0周期DQ=0;i=8;while(i>0)i-;DQ=1;i+;i+;/*uchar i=0;uchar time=0;for(i=8;i>0;i-)DQ=1;_nop_();DQ=0;_nop_();DQ=wdat&

11、amp;0x01;delay(40);DQ=1;for(time=0;time<1;time+);wdat>>=1;delay(10); */uint Get_temp()float tt;uchar low,high;Ds18b20_Init();/調(diào)用初始化函數(shù)delayms(1);Write_One_Byte(0xcc);/跳過讀ROM指令Write_One_Byte(0x44); /溫度轉(zhuǎn)換指令/delayms(2);Ds18b20_Init();/調(diào)用初始化函數(shù)delayms(1);Write_One_Byte(0xcc); /跳過讀ROM指令Write_One_B

12、yte(0xbe); /讀溫度指令/delayms(2);low=Read_One_Byte();/低字節(jié)存放在LOWhigh=Read_One_Byte();/高字節(jié)存放在hightemp=high;temp<<=8;temp=temp|low;/將溫度合并if(temp<0x07ff)/判斷溫度正負(fù) flag1=0; else temp=temp+1; flag1=1; /*if(temp>63488)temp=temp+1;tt=temp*(0.0625);if(tt>=100)flag1=1; */temp=tt*10+0.5;tt=temp*(0.062

13、5);temp=tt*10+0.5;/temp=temp+0.05;return(temp);void Display(uint value)/*uchar qian,bai,shi,ge;bai=value/100;shi=value%100/10;ge=value%10; */qian=temp/1000;/百位數(shù) bai=temp%1000/100;/十位數(shù) shi=temp%100/10;/個(gè)位數(shù) ge=temp%10;/小數(shù)位if(qian=0)/百位若為零,則不顯示dula=1;P0=0xff;dula=0;P0=0xff;wela=1;P0=2;wela=0;delayms(5)

14、;P0=0xff;elsedula=1;P0=tableqian;dula=0;P0=0xff;wela=1;P0=2;wela=0;delayms(5);P0=0xff; if(flag1=0)/若溫度我正數(shù),則最高位不顯示dula=1;P0=0xff;dula=0;P0=0xff;wela=1;P0=1;wela=0;delayms(5);P0=0xff;Else/若溫度為負(fù)數(shù),則最高位為負(fù)號(hào)dula=1;P0=0xbf;dula=0;P0=0xff;wela=1;P0=1;wela=0;delayms(5);P0=0xff;/*dula=1;P0=tableqian;dula=0;P0=

15、0xff;wela=1;P0=2;wela=0;delayms(5);P0=0xff; */dula=1;/顯示百位P0=tablebai;dula=0;P0=0xff;wela=1;P0=4;wela=0;delayms(5);P0=0xff;dula=1; /顯示十位P0=tableshi;dula=0;P0=0xff;wela=1;P0=8;wela=0;delayms(5);P0=0xff;dula=1; /顯示個(gè)位P0=tablege;dula=0;P0=0xff;wela=1;P0=0x10;wela=0;delayms(5);P0=0xff; void main()LED1=1;while(1)P1=0x39;tmp=Get_temp();Display(tmp);delayms(25);6、 DS18B20簡介DS18B20 采用3 腳PR-35 封裝或8 腳SOIC 封裝,管腳排列如圖3所示。圖中GND 為地,DQ 為數(shù)據(jù)輸入/輸出端(即單線總線),該腳為漏極開路輸出,常態(tài)下呈高電平,Vcc 是外部+5V 電源端,不用時(shí)應(yīng)接地,NC 為空腳。圖3 DS18B20的外

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論