基于AT89S52單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)黎奔騰_第1頁
基于AT89S52單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)黎奔騰_第2頁
基于AT89S52單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)黎奔騰_第3頁
基于AT89S52單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)黎奔騰_第4頁
基于AT89S52單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)黎奔騰_第5頁
已閱讀5頁,還剩14頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、. . . . 鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)選題名稱:基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)系 (院):機(jī)械工程系(東院)專 業(yè):機(jī)電一體化班 級(jí):3092班姓 名:黎奔騰 指導(dǎo)老師:安紅戰(zhàn) 錄目1 項(xiàng)目設(shè)計(jì)綜述2 1.1項(xiàng)目設(shè)計(jì)概述.21.2項(xiàng)目設(shè)計(jì)要求.21.3項(xiàng)目程設(shè)計(jì)方案.22 系統(tǒng)設(shè)計(jì).4 2.1 圖框設(shè)計(jì)方案.4 2.2DS18B20簡(jiǎn)介.4 2.2.1單片機(jī)AT89S52簡(jiǎn)介.43硬件設(shè)計(jì).6 3.1電路圖原理.6 3.2DS18B20與單片機(jī)接口的設(shè)計(jì).6 3.3顯示電路圖接口.7 3.4其他外圍電路.84 軟件設(shè)計(jì).11 4.1 程序設(shè)計(jì)流程圖.11 4.2程序清單.12 5 系統(tǒng)

2、仿真與調(diào)試.17 5.1.硬件調(diào)試.17 5.2軟件調(diào)試 .17總結(jié).18參考文獻(xiàn).191項(xiàng)目設(shè)計(jì)綜述1.1項(xiàng)目設(shè)計(jì)概述在生活和生產(chǎn)中,經(jīng)常要用到一些測(cè)溫設(shè)備。但是傳統(tǒng)的測(cè)溫設(shè)備具有制作成本高、硬件電路和軟件設(shè)計(jì)復(fù)雜等缺點(diǎn)?;贏T89S52單片機(jī)的數(shù)字溫度計(jì)具有制作簡(jiǎn)單、成本低、讀數(shù)方便、測(cè)溫圍廣和測(cè)溫準(zhǔn)確等優(yōu)點(diǎn),應(yīng)用前景廣闊。1.2項(xiàng)目設(shè)計(jì)要求基于AT89S52單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)要求如下: 溫度值用4位LED數(shù)碼管顯示 測(cè)溫圍為30100,且測(cè)量誤差不得大于±0.5 成品的體積、質(zhì)量盡可能小。1.3項(xiàng)目設(shè)計(jì)方案大多單片機(jī)接口輸入的信號(hào)是數(shù)字信號(hào),或有帶AD轉(zhuǎn)換的高端單片機(jī)也可

3、以輸入模擬信號(hào)。由單片機(jī)獲取非電信號(hào)的溫度信息,必須通過溫度傳感器。傳統(tǒng)的溫度測(cè)量雖多以熱敏電阻作為溫度傳感器。但是,熱敏電阻的可靠性較差、測(cè)量溫度精度較低,而且還需經(jīng)AD轉(zhuǎn)換成數(shù)字信號(hào)后才能由單片機(jī)進(jìn)行處理。因此,使用數(shù)字溫度傳感器DS18B20了簡(jiǎn)化硬件設(shè)計(jì)、方便單片機(jī)讀取數(shù)據(jù)、節(jié)約成本。 2 系統(tǒng)設(shè)計(jì)2.1 圖框設(shè)計(jì)根據(jù)設(shè)計(jì)要求分析,基于AT89S52單片機(jī)的數(shù)字溫度計(jì)由AT89S52單片機(jī)控制器、電源、顯示電路、溫度傳感器、復(fù)位電路和時(shí)鐘電路組成,系統(tǒng)圖框如圖21所示。電源給整個(gè)電路供電,顯示電路顯示溫度值,時(shí)鐘電路為AT89S52提供時(shí)鐘頻率。傳感器采用美國(guó)DALLAS半導(dǎo)體公司生產(chǎn)

4、的一種智能溫度傳感器DS18B20,其測(cè)溫圍為-50125,最高分辨率可達(dá)0.0625,可完全符合設(shè)計(jì)要求。2.2DS18B20簡(jiǎn)介本公司最新推出TS-18B20數(shù)字溫度傳感器,該產(chǎn)品采用美國(guó)DALLAS公司生產(chǎn)的 DS18B20可組網(wǎng)數(shù)字溫度傳感器芯片封裝而成,具有耐磨耐碰,體積小,使用方便,封裝形式多樣,適用于各種狹小空間設(shè)備數(shù)字測(cè)溫和控制領(lǐng)域。 1: 技術(shù)性能描述 1.1 獨(dú)特的單線接口方式,DS18B20在與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊。 1.2 測(cè)溫圍 55+125,固有測(cè)溫分辨率0.5。 1.3 支持多點(diǎn)組網(wǎng)功能,多個(gè)DS18B20可以并聯(lián)

5、在唯一的三線上,最多只能并聯(lián)8個(gè),實(shí)現(xiàn)多點(diǎn)測(cè)溫,如果數(shù)量過多,會(huì)使供電電源電壓過低,從而造成信號(hào)傳輸?shù)牟环€(wěn)定。 1.4 工作電源: 35V/DC 1.5 在使用中不需要任何外圍元件 1.6 測(cè)量結(jié)果以912位數(shù)字量方式串行傳送 1.7 不銹鋼保護(hù)管直徑 6 1.8 適用于DN1525, DN40DN250各種介質(zhì)工業(yè)管道和狹小空間設(shè)備測(cè)溫 1.9 標(biāo)準(zhǔn)安裝螺紋 M10X1, M12X1.5, G1/2”任選 1.10 PVC電纜直接出線或德式球型接線盒出線,便于與其它電器設(shè)備連接。 2:應(yīng)用圍 2.1 該產(chǎn)品適用于冷凍庫,糧倉,儲(chǔ)罐,電訊機(jī)房,電力機(jī)房,電纜線槽等測(cè)溫和控制領(lǐng)域 2.2 軸瓦,

6、缸體,紡機(jī),空調(diào),等狹小空間工業(yè)設(shè)備測(cè)溫和控制。 2.3 汽車空調(diào)、冰箱、冷柜、以與中低溫干燥箱等。 2.5 供熱/制冷管道熱量計(jì)量,中央空調(diào)分戶熱能計(jì)量和工業(yè)領(lǐng)域測(cè)溫和控制 2.3單片機(jī)AT89S52簡(jiǎn)介AT89S52具有如下特點(diǎn):40個(gè)引腳,8k Bytes Flash 片程序儲(chǔ)存器,256 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),32個(gè)外部雙向輸入輸出(I0)口,5個(gè)中斷優(yōu)先級(jí)2層中斷嵌套中斷,2個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,看門狗(WDT)電路,片時(shí)鐘振蕩器。此外,AT89S52設(shè)計(jì)和配置了振蕩頻率可為并通過軟件設(shè)置省電模式??臻e模式,暫停工作,而定時(shí)計(jì)數(shù)器,串行口

7、,外中斷系統(tǒng)可繼續(xù)工作,掉電式凍結(jié)振蕩器而保存的數(shù)據(jù),停止芯片其他功能直至外中斷激活或硬件復(fù)位。同時(shí)該芯片還具有、和等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。主要功能特性:·兼容Mcs51指令系統(tǒng) ·可反復(fù)擦寫(1000次)ISP Flash ROM·32個(gè)雙向IO口 ·4.55.5v工作電壓·3個(gè)16位可編程定時(shí)計(jì)數(shù)器 ·時(shí)鐘頻率033MHz·全雙工作UART穿行中斷口線·256bit部RAM·2個(gè)外部中斷源 ·低功耗空閑和省電模式·中斷喚醒省電模式 ·3級(jí)加密位 ·

8、看門狗(WDT)電路 ·軟件設(shè)置空閑和省電功能·靈活的ISP字節(jié)和分頁編程 ·雙數(shù)據(jù)寄存器指針3硬件設(shè)計(jì)3.2 DS18B20與單片機(jī)接口的設(shè)計(jì)DS18B20最大的特點(diǎn)是單總線數(shù)據(jù)傳輸方式,DS18B20的數(shù)據(jù)IO均由同條線來完成。DS18B20的電源供電方式有2種:外部供電方式和寄生電源方式。工作于寄生電源方式時(shí),VDD和GND均接地,他在需要遠(yuǎn)程溫度探測(cè)和空間受限的場(chǎng)合特別有用,原理是當(dāng)1W ire總線的信號(hào)線DQ為高電平,竊取電信號(hào)能量給DS18B20供電,同時(shí)一部分能量雖給部電容充電,當(dāng)DQ為低電平時(shí)釋放能量為DS18B20供電。但寄生電源方式需要強(qiáng)上拉電

9、路,軟件控制變得復(fù)雜(特別是在完成溫度轉(zhuǎn)換和拷貝數(shù)據(jù)到E2PROM時(shí)),同時(shí)芯片的性能也有所降低。外部電源供電方式是DS18B20最佳的工作方式,工作穩(wěn)定可靠,抗干擾能力強(qiáng),而且電路也比較簡(jiǎn)單,可以開發(fā)出穩(wěn)定可靠的多點(diǎn)溫度監(jiān)控系統(tǒng)。因此本設(shè)計(jì)采用外部供電方式。如下圖所示:3.3顯示電路接口本設(shè)計(jì)顯示電路采用4位共陰極LED數(shù)碼管來顯示測(cè)量得到的溫度值。LED數(shù)碼管能在低電壓工作,而且體積小、重量輕、使用壽命長(zhǎng),因此本次設(shè)計(jì)選用此數(shù)碼管作為顯示器件。一個(gè)LED數(shù)碼管只能顯示一位的字符,如果字符位數(shù)不止一位,可以用幾個(gè)數(shù)碼管組成,但要控制多位的顯示電路需要有字段控制和字位控制,字段控制是指控制所要

10、顯示的字符是什么,控制電路應(yīng)將字符的七段碼通過輸出口連接到LED的ag的引腳,是某些段點(diǎn)亮,某些段處于熄滅狀態(tài)。字位控制是指控制在多位顯示器中,哪幾位發(fā)光或那幾位不發(fā)光,字位控制則需要通過字位碼作用于LED數(shù)碼管的公共引腳,是某一位或某幾位的數(shù)碼管可以發(fā)光。數(shù)碼光顯示電路分為動(dòng)態(tài)顯示和靜態(tài)顯示。 靜態(tài)顯示方式時(shí)指每一個(gè)數(shù)碼管的字段控制是獨(dú)立的,每一個(gè)數(shù)碼管都需要配置一個(gè)8位輸出口來輸出該字位的七段碼。應(yīng)此需要顯示多位時(shí)需要多個(gè)輸出口,通常片并口不夠用,需要在片外擴(kuò)展。動(dòng)態(tài)顯示又稱為掃描顯示方式,也就是在某一時(shí)刻只能讓一個(gè)字位處于選通狀態(tài),其他字位一律斷開,同時(shí)在字段線上發(fā)出該位要顯示的字段碼,

11、這樣在某一時(shí)刻某一位數(shù)碼管就會(huì)被點(diǎn)亮,并顯示出相應(yīng)的字符。下一刻該改變所顯示的字位和字段碼,點(diǎn)亮另一個(gè)數(shù)碼管,顯示另一個(gè)字符。繞后一次掃描輪流點(diǎn)亮其他數(shù)碼管,只要掃描速度快,利用人眼的視覺殘留效應(yīng),會(huì)使人感覺到幾位數(shù)碼管都在穩(wěn)定的顯示。本次試驗(yàn)用74LSO4非門作驅(qū)動(dòng)。如圖所示3.4其他外圍電路復(fù)位電路:在單片機(jī)的RST引腳引入高電平并保持2個(gè)機(jī)器周期時(shí),單片機(jī)部就執(zhí)行復(fù)位操作。實(shí)際應(yīng)用中,復(fù)位操作有兩種形式:一種是上電復(fù)位,另一種是上電與按鍵均有效的復(fù)位。上電復(fù)位要求接通電源后,單片機(jī)自動(dòng)實(shí)現(xiàn)復(fù)位操作。上點(diǎn)瞬間RST引腳獲得高電平,隨著電容的充電,RST引腳的高電平逐漸下降。只要RST引腳保

12、持兩個(gè)機(jī)器周期的高電平單片機(jī)就可以進(jìn)行復(fù)位操作。本設(shè)計(jì)用的上電與接鍵均有效的復(fù)位。電路圖如下:時(shí)鐘電路:?jiǎn)纹瑱C(jī)的時(shí)鐘信號(hào)通常有兩種方式生產(chǎn):一是部時(shí)鐘方式,二是外部時(shí)鐘方式。本設(shè)計(jì)采用部時(shí)鐘方式,在單片機(jī)部有一振蕩電路,只要在單片機(jī)的XTAL1和XTAL2腳外接石英晶體(簡(jiǎn)稱晶振),就構(gòu)成了自己震蕩器并在單片機(jī)部產(chǎn)生時(shí)鐘脈沖信號(hào)。圖中電容器的作用是穩(wěn)定頻率和快速起振,電容值在530pF,典型值為30pF.j晶振CYS的振蕩頻率圍在1.212MHz和6MHz.本設(shè)計(jì)采用12MHz晶振,電容值為30pF。在電路總體設(shè)計(jì)中,先從片程序儲(chǔ)存器取指還是從部程序儲(chǔ)存器取指的選擇信號(hào)。當(dāng)EAVpp接高電平時(shí)

13、,先從片程序存儲(chǔ)器讀取指令,讀完4KB后,自動(dòng)改為片外取指。 若EAVpp接低電平,則所有指令均從片外程序存儲(chǔ)器讀取。ALE腳用于輸出允許地址所存信號(hào)。PSEN腳用于外部程序存儲(chǔ)器選通信號(hào),在對(duì)外部程序存儲(chǔ)器取指操作時(shí)此引腳置低電平有效。在執(zhí)行片程序存儲(chǔ)器取指時(shí)PESN腳無效。本設(shè)計(jì)無片外程序儲(chǔ)存區(qū)擴(kuò)展,所以將EAVpp接高電平,ALE與PSEN腳懸空。4軟件設(shè)計(jì)4.1程序設(shè)計(jì)流程圖主程序的主要功能是負(fù)責(zé)溫度的實(shí)時(shí)顯示。讀出并處理DS18B20測(cè)量的當(dāng)前溫度值,溫度測(cè)量值每1s進(jìn)行一次。這樣可以在1s之測(cè)量一被測(cè)溫度,其程序流程如圖4-1所示讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀

14、出時(shí)需進(jìn)行CRC校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(shù)據(jù)的改寫,其流程圖如圖42所示。溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命令,采用12位分辨率時(shí)轉(zhuǎn)換時(shí)間約為750ms,在本程序設(shè)計(jì)中采用1s顯示程序延時(shí)法等待轉(zhuǎn)換的完成。計(jì)算溫度子程序RAM中讀取值進(jìn)行BCD碼的轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值正負(fù)的判定,顯示數(shù)據(jù)刷新子程序主要是對(duì)顯示緩沖器中的顯示數(shù)據(jù)進(jìn)行刷新操作,當(dāng)最高顯示位0時(shí)將符號(hào)顯示位移入下一位。4.2程序清單#include "reg51.h"#include "intrins.h" /延時(shí)函數(shù)用#define Disdata P1 /段碼輸出口#define

15、 discan P3 /掃描口#define uchar unsigned char#define uint unsigned intsbit DQ=P37; /溫度輸入口sbit DIN=P17; /LED小數(shù)點(diǎn)控制uint h;uchar code ditab16=0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09;/溫度小數(shù)部分用查表法uchar code dis_712=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff,

16、0xbf;/* 共陽LED段碼表 "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "不亮" "-" */ uchar code scan_con4=0xfe,0xfd,0xfb,0xf7; / 列掃描控制字uchar data temp_data2=0x00,0x00; / 讀出溫度暫放uchar data display5=

17、0x00,0x00,0x00,0x00,0x00;/顯示單元數(shù)據(jù),共4個(gè)數(shù)據(jù),一個(gè)運(yùn)算暫存用void delay(uint t)/11微秒延時(shí)函數(shù)for(;t>0;t-);scan()/顯示掃描函數(shù)char k; for(k=0;k<4;k+) /四位LED掃描控制 Disdata=dis_7displayk; if(k=1)DIN=0; discan=scan_conk;delay(90);discan=0x00; ow_reset(void)/18B20復(fù)位函數(shù)char presence=1;while(presence)while(presence) DQ=1;_nop_()

18、;_nop_();DQ=0; delay(50); / 550usDQ=1; delay(6); / 66uspresence=DQ; / presence=0繼續(xù)下一步 delay(45); /延時(shí)500uspresence = DQ;DQ=1; void write_byte(uchar val)/18B20寫命令函數(shù)uchar i;for (i=8; i>0; i-) /DQ=1;_nop_();_nop_(); DQ = 0;_nop_();_nop_();_nop_();_nop_();_nop_();/5usDQ = val&0x01; /最低位移出delay(6);

19、 /66usval=val/2; /右移一位DQ = 1;delay(1); uchar read_byte(void)/從總線上讀取一個(gè)字節(jié)uchar i;uchar value = 0;for (i=8;i>0;i-)DQ=1;_nop_();_nop_();value>>=1;DQ = 0; /_nop_();_nop_();_nop_();_nop_(); /4usDQ = 1;_nop_();_nop_();_nop_();_nop_(); /4us if(DQ)value|=0x80;delay(6); /66usDQ=1;return(value);read_t

20、emp()/讀出溫度函數(shù)ow_reset(); /總線復(fù)位write_byte(0xCC); / 發(fā)Skip ROM命令write_byte(0xBE); / 發(fā)讀命令temp_data0=read_byte(); /溫度低8位temp_data1=read_byte(); /溫度高8位ow_reset();write_byte(0xCC); / Skip ROMwrite_byte(0x44); / 發(fā)轉(zhuǎn)換命令work_temp()/溫度數(shù)據(jù)處理函數(shù)uchar n=0; /if(temp_data1>127) temp_data1=(256-temp_data1);temp_data0

21、=(256-temp_data0);n=1;/負(fù)溫度求補(bǔ)碼display4=temp_data0&0x0f;display0=ditabdisplay4;display4=(temp_data0&0xf0)>>4)|(temp_data1&0x0f)<<4);/display3=display4/100;display1=display4%100;display2=display1/10;display1=display1%10;if(!display3)display3=0x0A;if(!display2)display2=0x0A;/最高位為

22、0時(shí)都不顯示if(n)display3=0x0B;/負(fù)溫度時(shí)最高位顯示"-"main()/主函數(shù)Disdata=0xff; /初始化端口discan=0xff;for(h=0;h<4;h+)displayh=8;/開機(jī)顯示8888ow_reset(); / 開機(jī)先轉(zhuǎn)換一次write_byte(0xCC); / Skip ROMwrite_byte(0x44); / 發(fā)轉(zhuǎn)換命令for(h=0;h<500;h+) scan(); /開機(jī)顯示"8888"2秒while(1) read_temp(); /讀出18B20溫度數(shù)據(jù) work_temp()

23、; /處理溫度數(shù)據(jù) for(h=0;h<500;h+) scan(); /顯示溫度值2秒 5系統(tǒng)設(shè)計(jì)仿真與調(diào)試5.1硬件調(diào)試先排除硬件電路故障,包括設(shè)計(jì)性錯(cuò)誤和工藝性故障,一般原則先靜態(tài)后動(dòng)態(tài)。利用萬用表或測(cè)試儀器,檢查電路中的各器件與引腳是否連接正確,是否有短路故障。先要將單片機(jī)AT89S52芯片取下,對(duì)電路板進(jìn)行通電檢查,通過觀察看是否有異常,然后用萬用表測(cè)試個(gè)電源電壓,若這些都沒問題,則接上仿真機(jī)進(jìn)行聯(lián)機(jī)調(diào)試觀察各接線口線路是否正常。5.2軟件調(diào)試軟件調(diào)試是利用仿真工具進(jìn)行再線仿真調(diào)試,我們用KELL軟件調(diào)試,處發(fā)現(xiàn)和解決程序錯(cuò)誤外,還可以發(fā)現(xiàn)硬件上的問題。總結(jié)經(jīng)過將近兩周的單片機(jī)課程設(shè)計(jì),終于完成了我的數(shù)字溫度計(jì)的設(shè)計(jì),雖然沒有完全達(dá)到設(shè)計(jì)要求,但從心底說,還是高興的,畢竟這次設(shè)計(jì)把實(shí)物都做了出來,高興之余不得不深思??!在本次設(shè)計(jì)的過程中,我發(fā)現(xiàn)很多的問題,雖然以前還做

溫馨提示

  • 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)論