單片機(jī)課程設(shè)計(jì)98714_第1頁(yè)
單片機(jī)課程設(shè)計(jì)98714_第2頁(yè)
單片機(jī)課程設(shè)計(jì)98714_第3頁(yè)
單片機(jī)課程設(shè)計(jì)98714_第4頁(yè)
單片機(jī)課程設(shè)計(jì)98714_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 課程設(shè)計(jì)報(bào)告 課 程 名 稱 單片機(jī)原理及接口技術(shù)課程設(shè)計(jì)院 部 名 稱 機(jī)電工程學(xué)院 專 業(yè) 電氣工程及其自動(dòng)化 班 級(jí) 09電氣 (單) 學(xué) 號(hào) 0904207014 姓 名 程艷 指 導(dǎo) 教 師 高峰 金陵科技學(xué)院教務(wù)處制目錄目錄2摘要21 概述31.1 課程設(shè)計(jì)的意義31.2 設(shè)計(jì)的任務(wù)和要求32 系統(tǒng)總體方案及硬件設(shè)計(jì)42.1數(shù)字溫度計(jì)設(shè)計(jì)方案分析4方案一42.1.2 方案二42.2系統(tǒng)總體設(shè)計(jì)42.3系統(tǒng)模塊6主控制器62.3.2 顯示電路6溫度傳感器7報(bào)警溫度電路83 系統(tǒng)軟件算法分析93.1主程序流程圖93.2讀出溫度子程序93.3溫度轉(zhuǎn)換命令子程序103.4 計(jì)算溫度子程序

2、113.5 顯示數(shù)據(jù)刷新子程序114 實(shí)驗(yàn)仿真125 總結(jié)與體會(huì)14附錄:源程序15參考文獻(xiàn)18摘要隨著時(shí)代的進(jìn)步和發(fā)展,單片機(jī)技術(shù)已經(jīng)普及到我們生活、工作、科研、各個(gè)領(lǐng)域,已經(jīng)成為一種比較成熟的技術(shù), 本文主要介紹了一個(gè)基于AT89C52單片機(jī)的測(cè)溫系統(tǒng),詳細(xì)描述了利用數(shù)字溫度傳感器DS18B20 開發(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)溫度采集和顯示,并有上下限報(bào)警溫度,它使用起來(lái)相當(dāng)方便,具有精度高、量程寬、靈敏度高、體積小、

3、功耗低等優(yōu)適合于我們?nèi)粘I詈凸ぁ⑥r(nóng)業(yè)生產(chǎn)中的溫度測(cè)量,也可以當(dāng)作溫度處理模塊嵌入其它系統(tǒng)中,作為其他主系統(tǒng)的輔助擴(kuò)展。DS18B20 與AT89C52 結(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)用前景。關(guān)鍵詞: 單片機(jī)AT89C52 溫度傳感器數(shù)字溫度計(jì)DS18B201 概述1.1 課程設(shè)計(jì)的意義本次課程設(shè)計(jì)是在我們學(xué)過(guò)單片機(jī)后的一次實(shí)習(xí),可增加我們的動(dòng)手能力。特別是對(duì)單片機(jī)的系統(tǒng)設(shè)計(jì)有很大幫助。同時(shí)對(duì)畢業(yè)設(shè)計(jì)業(yè)起著很大的作用。1.2 設(shè)計(jì)的任務(wù)和要求1、基本范圍-30-302、精度誤差小于13、七段 數(shù)碼直讀顯示4、有溫度的上下限報(bào)

4、警功能2 系統(tǒng)總體方案及硬件設(shè)計(jì)2.1數(shù)字溫度計(jì)設(shè)計(jì)方案分析方案一由于本設(shè)計(jì)是測(cè)溫電路,可以使用熱敏電阻之類的器件利用其感溫效應(yīng),在將隨被測(cè)溫度變化的電壓或電流采集過(guò)來(lái),進(jìn)行A/D 轉(zhuǎn)換后,就可以用單片機(jī)進(jìn)行數(shù)據(jù)的處理,在顯示電路上,就可以將被測(cè)溫度顯示出來(lái),這種設(shè)計(jì)需要用到A/D 轉(zhuǎn)換電路,其中還涉及到電阻與溫度的對(duì)應(yīng)值的計(jì)算,感溫電路比較麻煩。而且在對(duì)采集的信號(hào)進(jìn)行放大時(shí)容易受溫度的影響出現(xiàn)較大的偏差。 方案二進(jìn)而考慮到用溫度傳感器,在單片機(jī)電路設(shè)計(jì)中,大多都是使用傳感器,所以這是非常容易想到的,所以可以采用一只溫度傳感器DS18B20,此傳感器,可以很容易直接讀取被測(cè)溫度值,進(jìn)行轉(zhuǎn)換,電

5、路簡(jiǎn)單,精度高,軟硬件都以實(shí)現(xiàn),而且使用單片機(jī)的接口便于系統(tǒng)的再擴(kuò)展,滿足設(shè)計(jì)要求。從以上兩種方案,很容易看出,采用方案二,電路比較簡(jiǎn)單,費(fèi)用較低,可靠性高,軟件設(shè)計(jì)也比較簡(jiǎn)單,故采用了方案二。2.2系統(tǒng)總體設(shè)計(jì)溫度計(jì)電路設(shè)計(jì)總體設(shè)計(jì)方框圖如圖2.21 所示,總系統(tǒng)仿真如圖2.2系統(tǒng)仿真圖,控制器采用單片機(jī)AT89C52,溫度傳感器采用DS18B20,用3 個(gè)七段數(shù)碼管以串口傳送數(shù)據(jù)實(shí)現(xiàn)溫度顯示。圖2.21 總體設(shè)計(jì)方框圖圖2.22 系統(tǒng)仿真圖2.3系統(tǒng)模塊系統(tǒng)由單片機(jī)最小系統(tǒng)、顯示電路、溫度傳感器等組成。主控制器單片機(jī)AT89C52 具有低電壓供電和體積小等特點(diǎn),四個(gè)端口只需要兩個(gè)口就能滿足

6、電路系統(tǒng)的設(shè)計(jì)需要,很適合便攜手持式產(chǎn)品的設(shè)計(jì)使用系統(tǒng)可用二節(jié)電池供電。晶振采用11.0592MMHZ。復(fù)位電路采用上電加按鈕復(fù)位。圖1 晶振電路圖2 復(fù)位電路 顯示電路顯示電路采用3個(gè)共陽(yáng)極七段 數(shù)碼管,采用動(dòng)態(tài)掃描的方式顯示。圖 數(shù)碼管顯示電路溫度傳感器DS18B20 溫度傳感器是美國(guó)DALLAS 半導(dǎo)體公司最新推出的一種改進(jìn)型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測(cè)溫元件相比,它能直接讀出被測(cè)溫度,并且可根據(jù)實(shí)際要求通過(guò)簡(jiǎn)單的編程實(shí)現(xiàn)位的數(shù)字值讀數(shù)方式。DS18B20 的性能特點(diǎn)如下:1、獨(dú)特的單線接口僅需要一個(gè)端口引腳進(jìn)行通信;2、多個(gè)DS18B20 可以并聯(lián)在惟一的三線上,實(shí)現(xiàn)多點(diǎn)組網(wǎng)功

7、能3、無(wú)須外部器件;4、可通過(guò)數(shù)據(jù)線供電,電壓范圍為3.05.5;5、零待機(jī)功耗;6、溫度以或位數(shù)字;7、用戶可定義報(bào)警設(shè)置;8、報(bào)警搜索命令識(shí)別并標(biāo)志超過(guò)程序限定溫度(溫度報(bào)警條件)的器件;9、負(fù)電壓特性,電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,但不能正常工作;DS18B20 可以采用兩種方式供電,一種是采用電源供電方式,此時(shí)DS18B20 的1 腳接地,2 腳作為信號(hào)線,3 腳接電源。另一種是寄生電源供電方式,如圖所示單片機(jī)端口接單線總線,為保證在有效的DS18B20 時(shí)鐘周期內(nèi)提供足夠的電流,可用一個(gè)MOSFET 管來(lái)完成對(duì)總線的上拉。當(dāng)DS18B20 處于寫存儲(chǔ)器操作和溫度A/D 轉(zhuǎn)換

8、操作時(shí),總線上必須有強(qiáng)的上拉,上拉開啟時(shí)間最大為10us。采用寄生電源供電方式時(shí)VDD 端接地。由于單線制只有一根線,因此發(fā)送接口必須是三態(tài)的。圖 溫度傳感器與單片機(jī)的連接報(bào)警溫度電路定時(shí)器每20ms檢測(cè)一次溫度,測(cè)量到在安全溫度范圍內(nèi)發(fā)光二極管發(fā)出綠色光表示系統(tǒng)正常工作,當(dāng)超過(guò)安全溫度工作范圍外發(fā)光二極管發(fā)出綠色光表示系統(tǒng)出現(xiàn)異常并報(bào)警。圖報(bào)警電路3 系統(tǒng)軟件算法分析系統(tǒng)程序主要包括主程序,讀出溫度子程序,溫度轉(zhuǎn)換命令子程序,計(jì)算溫度子程序,顯示數(shù)據(jù)刷新子程序等。3.1主程序流程圖主程序的主要功能是負(fù)責(zé)溫度的實(shí)時(shí)顯示、讀出并處理DS18B20 的測(cè)量的當(dāng)前溫度值,其程序流程見圖3.1 所示。

9、圖3.1 主程序流程圖3.2讀出溫度子程序讀出溫度子程序的主要功能是讀出RAM 中的9 字節(jié),在讀出時(shí)需進(jìn)行CRC 校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(shù)據(jù)的改寫。其程序流程圖如圖3.2 示圖3.2 讀溫度流程圖3.3溫度轉(zhuǎn)換命令子程序溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命令,在本程序設(shè)計(jì)中采用1ms 顯示程序延時(shí)法等待轉(zhuǎn)換的完成。溫度轉(zhuǎn)換命令子程序流程圖3.3 所示圖3.3 溫度轉(zhuǎn)換流程圖3.4 計(jì)算溫度子程序計(jì)算溫度子程序?qū)AM 中讀取值進(jìn)行BCD 碼的轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值正負(fù)的判定,其程序流程圖如圖3.4 所示。圖3.4 計(jì)算溫度流程圖3.5 顯示數(shù)據(jù)刷新子程序顯示數(shù)據(jù)刷新子程序主要是對(duì)分離

10、后的溫度顯示數(shù)據(jù)進(jìn)行刷新操作,當(dāng)標(biāo)志位位為1時(shí)將符號(hào)顯示位移入第一位。程序流程圖如圖3.5。圖3.5 顯示數(shù)據(jù)刷新流程圖4 實(shí)驗(yàn)仿真進(jìn)入protuse 后,連接好電路,并將程序下載進(jìn)去。數(shù)碼管顯示溫度與傳感器的溫度相同。圖41 溫度顯示仿真屏幕顯示當(dāng)前溫度為安全溫度正常工作,綠色二極管發(fā)光。屏幕顯示的溫度為安全溫度范圍之外,此時(shí)紅色二極管閃爍發(fā)光報(bào)警,表明系統(tǒng)出現(xiàn)異常,需要調(diào)整。5 總結(jié)與體會(huì)通過(guò)這次對(duì)數(shù)字溫度計(jì)的設(shè)計(jì)與制作,讓我了解了設(shè)計(jì)電路的程序,也讓我了解了關(guān)于數(shù)字溫度計(jì)的原理與設(shè)計(jì)理念,要設(shè)計(jì)一個(gè)電路總要先用仿真仿真成功之后才實(shí)際接線的。但是最后的成品卻不一定與仿真時(shí)完全一樣,因?yàn)?,?/p>

11、實(shí)際接線中有著各種各樣的條件制約著。而且,在仿真中無(wú)法成功的電路接法,在實(shí)際中因?yàn)樾酒旧淼奶匦远軌虺晒?。所以,在設(shè)計(jì)時(shí)應(yīng)考慮兩者的差異,從中找出最適合的設(shè)計(jì)方法。通過(guò)這次學(xué)習(xí),讓我對(duì)各種電路都有了大概的了解,所以說(shuō),坐而言不如立而行,從這次的課程設(shè)計(jì)中,我真真正正的意識(shí)到,在以后的學(xué)習(xí)中,要理論聯(lián)系實(shí)際,把我們所學(xué)的理論知識(shí)用到實(shí)際當(dāng)中,學(xué)習(xí)單機(jī)片機(jī)更是如此,程序只有在經(jīng)常的寫與讀的過(guò)程中才能提高,這就是我在這次課程設(shè)計(jì)中的最大收獲。附錄:源程序/*/DS18B20報(bào)警實(shí)驗(yàn)演示程序/使用單片機(jī)AT89C52 晶振:11.0592M/*/包含頭文件/*#include<reg52.h&

12、gt;/*/宏定義/*#define uchar unsigned char#define uint unsigned int/*/共陽(yáng)極段碼表tab; 帶小數(shù)點(diǎn)的共陽(yáng)極段碼表tab1; 警鈴編碼表Music_Girl;/*uchar code tab= 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;uchar code tab1=0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10;/*/定義全局變量/*sbit DQ=P23;/ds18b20與單片機(jī)連接口sbit seg0=P20;/小數(shù)位

13、sbit seg1=P21;/個(gè)位sbit seg2=P22;/十位sbit green=P24;sbit red =P25;sbit music=P36;/接蜂鳴器uchar data disdata4;uint tvalue;/溫度值uchar tflag;/溫度正負(fù)標(biāo)志uchar max_tem=2;/溫度警戒值/*/延時(shí)函數(shù),延時(shí)時(shí)間近似1ms/*void delay_ms(unsigned int ms)/延時(shí)1毫秒(不夠精確的)unsigned int i,j;for(i=0;i<ms;i+)for(j=0;j<110;j+);/*/延時(shí)函數(shù),用于18b20時(shí)序控制/*

14、void delay_18B20(uint i)/延時(shí)1微秒 while(i-);/*/ 溫度顯示函數(shù)/ P0口顯示溫度十位,P1口顯示溫度個(gè)位,P2顯示溫度小數(shù)位/*void display(uchar a,uchar b,uchar c) /顯示十位P0=0xff;seg2=1;P0=taba;delay_ms(1);seg2=0;/顯示個(gè)位P0=0xff;seg1=1;P0=tab1b;delay_ms(1);seg1=0;/顯示小數(shù)位P0=0xff;seg0=1;P0=tabc;delay_ms(1);seg0=0; /*/DS18B20的復(fù)位函數(shù),對(duì)DS18B20時(shí)序操作前都要閑復(fù)位

15、/*void ds1820rst()/*ds1820復(fù)位*/ unsigned char x=0;DQ = 1; /DQ復(fù)位delay_18B20(4); /延時(shí)DQ = 0; /DQ拉低delay_18B20(100); /精確延時(shí)大于480usDQ = 1; /拉高delay_18B20(40); /*/DS18B20讀指令函數(shù) RAM指令/逐位讀取DS18B20轉(zhuǎn)化后的溫度值/*uchar ds1820rd()/*讀數(shù)據(jù)*/uchar i=0;uchar dat = 0;for (i=8;i>0;i-) DQ = 0; /給脈沖信號(hào)dat>>=1;DQ = 1; /給脈

16、沖信號(hào)if(DQ)dat|=0x80;delay_18B20(10);return(dat);/*/ DS18B20寫指令函數(shù) R0M指令/ 控制DS18B20做何操作/*void ds1820wr(uchar wdata)/*寫數(shù)據(jù)*/uchar i=0;for (i=8; i>0; i-)DQ = 0;DQ = wdata&0x01;delay_18B20(10);DQ = 1;wdata>>=1;/*/DS18B20轉(zhuǎn)化啟動(dòng)函數(shù)/*void read_temp1()/*讀取溫度值并轉(zhuǎn)換*/EA=0; /關(guān)全局中斷,防止DS18B20的時(shí)序操作被打亂ds1820r

17、st(); ds1820wr(0xcc);/*跳過(guò)讀序列號(hào)*/ds1820wr(0x44);/*啟動(dòng)溫度轉(zhuǎn)換*/ds1820rst();EA=1; /*/DS18B20轉(zhuǎn)換溫度讀取函數(shù),并轉(zhuǎn)化成實(shí)際溫度值/ 返回值: tvalue為實(shí)際溫度值/*unsigned int read_temp2() uchar a,b;EA=0;ds1820wr(0xcc);/*跳過(guò)讀序列號(hào)*/ ds1820wr(0xbe);/*讀取溫度*/ a=ds1820rd();b=ds1820rd();EA=1;tvalue=b;tvalue<<=8;tvalue=tvalue|a; if(tvalue<

18、;=0x07ff) tflag=0; else tvalue=tvalue+1;tflag=1; tvalue=tvalue*(0.625);/溫度值擴(kuò)大10倍,精確到1位小數(shù)return(tvalue);/*/入口參數(shù):tvalue/溫度值百十個(gè)位分離函數(shù) 存入disdata數(shù)組中/* void ds1820disp1()/溫度值顯示 disdata0=tvalue/1000;/百位數(shù) disdata1=tvalue%1000/100;/十位數(shù) disdata2=tvalue%100/10;/個(gè)位數(shù) disdata3=tvalue%10; /小數(shù)位/*/定時(shí)器初始化函數(shù)/*void init_t1() green=0; red=1; TH1=0XB7; TL1=0XFF;TR1=1;ET1=1;EA=1;/*/主函數(shù)/*void main() init_t1();while(1) red=1;read_temp1();/讀取溫度read_temp2();/讀取溫度ds1820disp1();/數(shù)值提取 display(disdata1,disdata2

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論