基于單片機的溫度控制電機轉(zhuǎn)速課程設(shè)計_第1頁
基于單片機的溫度控制電機轉(zhuǎn)速課程設(shè)計_第2頁
基于單片機的溫度控制電機轉(zhuǎn)速課程設(shè)計_第3頁
基于單片機的溫度控制電機轉(zhuǎn)速課程設(shè)計_第4頁
基于單片機的溫度控制電機轉(zhuǎn)速課程設(shè)計_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 目 錄1 引言22 設(shè)計要求22.1 設(shè)計目的22.2 基本要求33 方案設(shè)計33.1 溫度傳感器方案論證33.1.1 方案一33.1.2 方案二33.2 總體設(shè)計框圖34 硬件設(shè)計44.1 單片機系統(tǒng)44.2 數(shù)字溫度傳感器模塊54.2.1 DS18B20性能64.2.2 DS18B20外形及引腳說明64.2.3 DS18B20接線原理圖64.2.4 DS18B20時序圖74.2.5 數(shù)據(jù)處理84.3 L298電機驅(qū)動模塊94.4 LCD顯示電路模塊95應(yīng)用軟件介紹105.1 Proteus仿軟真件的介紹105.2  Keil軟件106 軟件設(shè)計106.1 主程序模塊106.2

2、讀溫度值模塊116.3 中斷模塊136.4 仿真模塊147 源程序168 總結(jié)19參考文獻:201 引言隨著人們生活水平的不斷提高,單片機控制無疑是人們追求的目標之一,它所給人帶來的方便是不可否定的,各種數(shù)字系統(tǒng)的應(yīng)用也使人們的生活更加舒適。數(shù)字化控制、智能控制為現(xiàn)代人的工作、生活、科研等方面帶來方便。其中溫度控制電機轉(zhuǎn)速就是利用單片機實現(xiàn)的典型實例。測量溫度時使用數(shù)字溫度計,其與傳統(tǒng)的溫度計相比,具有讀數(shù)方便、測溫范圍廣、測溫精確、功能多樣話等優(yōu)點。其主要用于對測溫要求準確度比較高的場所,或科研實驗室使用,該設(shè)計使用STC89C51單片機作控制器,數(shù)字溫度傳感器DS18B20測量溫度,單片機

3、接受傳感器輸出,經(jīng)處理用LCD實現(xiàn)溫度值顯示。 電機由L298電機驅(qū)動芯片控制,實現(xiàn)電機的正反轉(zhuǎn)和加速減速.2 設(shè)計要求 2.1設(shè)計目的 設(shè)計一個基于溫度的電動機轉(zhuǎn)速控制電路,在相應(yīng)的軟件控制下可以完成要求的功能,即外部溫度大于65C時,直流電動機在L298驅(qū)動下加速正轉(zhuǎn),溫度大于75C全速正轉(zhuǎn),當外部溫度小于0C時電動機加速反轉(zhuǎn),溫度小于-10C時電動機全速反轉(zhuǎn)。溫度回到0C-65C時電動機逐漸停止轉(zhuǎn)動。在液晶顯示屏1602LCD上顯示當前的溫度值。 2.2 基本要求控制電機正反轉(zhuǎn)即加速減速,實現(xiàn)實時溫度顯示,測溫范圍-551280C,誤差50C以內(nèi)。畫出基于溫度的電動機轉(zhuǎn)速控制電

4、路的原理圖,通過仿真軟件來檢測所寫程序?qū)崿F(xiàn)功能的正確與否.3 方案設(shè)計3.1 溫度傳感器方案論證3.1.1 方案一由于本設(shè)計是測溫電路,可以使用熱敏電阻之類的器件,將隨被測溫度變化的電壓或電流采樣,進行A/D轉(zhuǎn)換后就可以用單片機進行數(shù)據(jù)處理,實現(xiàn)溫度顯示。這種設(shè)計需要用到A/D轉(zhuǎn)換電路,增大了電路的復(fù)雜性,而且要做到高精度也比較困難。3.1.2 方案二考慮到在單片機屬于數(shù)字系統(tǒng),容易想到數(shù)字溫度傳感器,可選用DS18B20數(shù)字溫度傳感器,此傳感器為單總線數(shù)字溫度傳感器,起體積小、構(gòu)成的系統(tǒng)結(jié)構(gòu)簡單,它可直接將溫度轉(zhuǎn)化成串行數(shù)字信號給單片機處理,即可實現(xiàn)溫度顯示。另外DS18B20具有3引腳的小

5、體積封裝,測溫范圍為-55+125攝氏度,測溫分辨率可達0.0625攝氏度,其測量范圍與精度都能符合設(shè)計要求。以上兩種方案相比較,第二種方案的電路、軟件設(shè)計更簡單,此方案設(shè)計的系統(tǒng)在功耗、測量精度、范圍等方面都能很好地達到要求,故本設(shè)計采用方案二。3.2 總體設(shè)計框圖本方案設(shè)計的系統(tǒng)由單片機系統(tǒng)、DS18B20數(shù)字溫度傳感器、LCD溫度顯示模塊、L298電機驅(qū)動模塊、電機組成,其總體架構(gòu)如下圖1。單片機測溫電路時鐘、復(fù)位電路L298電機驅(qū)動LULU路電路電機轉(zhuǎn)動電路LCD溫度顯示電路圖1 系統(tǒng)總體方框圖4 硬件設(shè)計 4.1 單片機系統(tǒng)1. 本設(shè)計采用STC89C52單片機作為控制器,完成所有功

6、能的控制,包括:l DS18B20數(shù)字溫度傳感器的初始化和讀取溫度值l LCD顯示驅(qū)動與控制l L298電機驅(qū)動芯片驅(qū)動電機l 溫度值的存儲和讀取2. 單片機系統(tǒng)電路原理圖:圖2 單片機系統(tǒng)原理圖 4.2 數(shù)字溫度傳感器模塊 4.2.1 DS18B20性能l 獨特的單線接口僅需一個端口引腳進行通信l 簡單的多點分布應(yīng)用l 無需外部器件l 可通過數(shù)據(jù)線供電l 零待機功耗l 測溫范圍-55+128,以1遞增l 可編程的分辨率為912位,對應(yīng)的可分辨溫度分別為0.5、0.25、0.125和0.0625l 溫度數(shù)字量轉(zhuǎn)換時間200ms,12位分辨率時最多在750ms內(nèi)把溫度轉(zhuǎn)換為數(shù)字l 應(yīng)用包括溫度控

7、制、工業(yè)系統(tǒng)、消費品、溫度計和任何熱感測系統(tǒng)l 負壓特性:電源極性接反時,傳感器不會因發(fā)熱而燒毀,但不能正常工作 4.2.2 DS18B20外形及引腳說明圖3 DS18B20外形及引腳l GND:地l DQ:單線運用的數(shù)據(jù)輸入/輸出引腳l VD:可選的電源引腳 4.2.3 DS18B20接線原理圖單總線通常要求接一個約4.7K左右的上拉電阻,這樣,當總線空閑時,其狀態(tài)為高電平。圖4 DS18B20接線原理圖 4.2.4 DS18B20時序圖主機使用時間隙來讀寫DS18B20的數(shù)據(jù)位和寫命令字的位。1. 初始化時序如下圖:圖5 DS18B20初始化時序2. DS18B20讀寫時序:圖6 DS18

8、B20讀寫時序 4.2.5 數(shù)據(jù)處理高速暫存存儲器由9個字節(jié)組成,其分配如表5所示。當溫度轉(zhuǎn)換命令發(fā)布后,經(jīng)轉(zhuǎn)換所得的溫度值以二字節(jié)補碼形式存放在 高速暫存存儲器的第0和第1個字節(jié)。單片機可通過單線接口讀到該數(shù)據(jù),讀取時低位在前,高位在后。圖7 字節(jié)分配下表為12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲在18B20的兩個8比特的RAM中,二進制中的前面5位是符號位,如果測得的溫度大于0, 這5位為0,只要將測到的數(shù)值乘于0.0625即可得到實際溫度;如果溫度小于0,這5位為1,測到的數(shù)值需要取反加1再乘于0.0625即可得到實際 溫度。 例如+125的數(shù)字輸出為07D0H,實際溫度=07D0H*0.06

9、25=2000*0.0625=125。例如-55的數(shù)字輸出為FC90H,則應(yīng)先將11位數(shù)據(jù)位取反加1得370H(符號位不變,也不作運算),實際溫度=370H*0.0625=880*0.0625=55??梢娖渲械退奈粸樾?shù)位。圖8 DS18B20溫度數(shù)據(jù)表 4.3關(guān)于L298電機驅(qū)動芯片的簡介 L298是ST公司生產(chǎn)的一種高電壓、大電流電機驅(qū)動芯片。該芯片的主要特點是:工作電壓高,最高工作電壓可達46V;輸出電流大,瞬間峰值電流可達3A,持續(xù)工作電流為2A;內(nèi)含兩個H橋的高電壓大電流全橋式驅(qū)動器,可以用來驅(qū)動直流電動機和步進電動機、繼電器、線圈等感性負載;采用標準TTL邏輯電平信號控制

10、;具有兩個使能控制端,在不受輸入信號影響的情況下允許或禁止器件工作;有一個邏輯電源輸入端,使內(nèi)部邏輯電路部分在低電壓下工作;可以外接檢測電阻,將變化量反饋給控制電路。 4.4 顯示電路LCD顯示簡單明了,可以直接讀出溫度值。圖9 LCD驅(qū)動顯示電路5應(yīng)用軟件介紹  5.1Proteus仿軟真件的介紹 Proteus是一款Labcenter出品的電路分析實物仿真系統(tǒng),可仿真各種電路和IC,并支持單片機,元件庫齊全,使用方便,是不可多得的專業(yè)的單片機軟件仿真系統(tǒng)。 該軟件的特點: (1)全部滿足我們提出的單片機軟件仿真系統(tǒng)的標準,并在同類產(chǎn)品中具有明顯的優(yōu)勢

11、。 (2)具有模擬電路仿真、數(shù)字電路仿真、單片機及其外圍電路組成的系統(tǒng)的仿真、RS一232動態(tài)仿真、1 C調(diào)試器、SPI調(diào)試器、鍵盤和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號發(fā)生器等。 目前支持的單片機類型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、 PIC18系列、Z80系列、HC11系列以及各種外圍芯片。 支持大量的存儲器和外圍芯片??傊撥浖且豢罴瘑纹瑱C和SPICE分析于一身的仿真軟件,功能極其強大 ,可仿真51、AVR、PIC。5.2 Keil軟件 

12、;Keil C51是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學易用。用過匯編語言后再使用C來開發(fā),體會更加深刻。 Keil C51軟件提供豐富的庫函數(shù)和功能強大的集成開發(fā)調(diào)試工具,全Windows界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到Keil C51生成的目標代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。6 軟件設(shè)計6.1 主程序模塊主程序流程圖:主程序流程

13、圖6.2 讀溫度值模塊讀溫度值模塊需要調(diào)用4個子程序,分別為:l DS18B20初始化子程序:讓單片機知道DS18B20在總線上且已準備好操作l DS18B20寫字節(jié)子程序:對DS18B20發(fā)出命令l DS18B20讀字節(jié)子程序:讀取DS18B20存儲器的數(shù)據(jù)l 延時子程序:對DS18B20操作時的時序控制1. 讀溫度值模塊流入口數(shù)據(jù)轉(zhuǎn)換處理讀取溫度值高低位跳過讀序列號DS18B20初始化延時DS18B20初始化跳過讀序列號啟動溫度轉(zhuǎn)換 返回 讀溫度值子程序流程圖 2. DS18B20初始化子程序流程圖:入口DQ為低電平?延時1560msDQ拉高電平延時>480msDQ復(fù)位0稍延時DQ置

14、高電平N返回Y DS18B20初始化子程序流程圖3. DS18B20寫字節(jié)和讀字節(jié)子程序流程圖: DS18B20寫字節(jié)子程序流程圖 DS18B20讀字節(jié)子程序流程圖6.3 中斷模塊中斷采用T0方式1,初始值定時為50ms。中斷模塊需調(diào)用兩個子程序:l 讀溫度值子程序:定時讀取溫度值,實時更新溫度值l 記錄溫度值子程序:定時記錄溫度值,供查詢使用把這兩個子程序放在中斷的原因是,不會因為調(diào)整報警溫度或查詢歷史溫度值而停止更新溫度值和記錄溫度值。中斷模塊流程圖:1秒?計數(shù)值加1定時器重置初值中斷入口讀溫度值Y中斷返回記錄溫度值 N中斷模塊流程圖6.3 中斷模塊 仿真圖65 - 125 0 - 653

15、5 - 07 源程序#include<reg51.h>#include<intrins.h>#include<stdio.h>#define INT8U unsigned char#define INT16U unsigned intextern INT8U Temp_Value;extern INT8U read_Temperature();extern void delay_ms(INT16U x);extern void LCD_Initialise();extern void LCD_ShowString(INT8U,INT8U,INT8U*) re

16、entrant;sbit MA=P10;sbit MB=P11;sbit PWM1=P12;INT8U Back_Temp_Value=0xFF,0XFF;char Temp_Disp_Buff17;float f_Temp=35.0;void T0_INT() interrupt 1 static INT8U t_Count=0; TH0=(INT16U)(-11.0592/12*500)/256; TL0=(INT16U)(-11.0592/12*500)%256; if(+t_Count=100) t_Count=0; if(Read_Temperature() ) if(Temp_Va

17、lue0!=Back_Temp_Value0|Temp_Value1=Back_Temp_Value1) Back_Temp_Value0=Temp_Value0; Back_Temp_Value1=Temp_Value1; f_Temp=(int)(Temp_Value1<<8|Temp_Value0*0.0625; sprintf(Temp_Disp_Buff,"TEMP:%5.1fxDFx43",f_Temp); LCD_ShowString(1,0,Temp_Disp_Buff); if (f_Temp>=75) f_Temp=75; if (f_

18、Temp<=0) f_Temp=0; if(f_Temp>=45) MA=1;MB=0; #include<reg51.h>#include<intrins.h>#include<stdio.h>#define INT8U unsigned char#define INT16U unsigned intextern INT8U Temp_Value;extern INT8U read_Temperature();extern void delay_ms(INT16U x);extern void LCD_Initialise();extern v

19、oid LCD_ShowString(INT8U,INT8U,INT8U*) reentrant;sbit MA=P10;sbit MB=P11;sbit PWM1=P12;INT8U Back_Temp_Value=0xFF,0XFF;char Temp_Disp_Buff17;float f_Temp=35.0;void T0_INT() interrupt 1 static INT8U t_Count=0; TH0=(INT16U)(-11.0592/12*500)/256; TL0=(INT16U)(-11.0592/12*500)%256; if(+t_Count=100) t_Co

20、unt=0; if(Read_Temperature() if(Temp_Value0!=Back_Temp_Value0|Temp_Value1!=Back_Temp_Value1) Back_Temp_Value0=Temp_Value0; Back_Temp_Value1=Temp_Value1; f_Temp=(int)(Temp_Value1<<8|Temp_Value0)*0.0625; sprintf(Temp_Disp_Buff,"TEMP:%5.1fxDFx43",f_Temp); LCD_ShowString(1,0,Temp_Disp_Bu

21、ff); bit tmpreadbit(void) uint i; bit dat; DS=1; DS=0;i+;i+; DS=1;i+; dat=DS; i=8;while(i>0)i-; return (dat); uchar tmpread(void) uchar i,j,dat; dat=0; for(i=1;i<=8;i+) j=tmpreadbit(); dat=(j<<7)|(dat>>1); return(dat); void tmpwritebyte(uchar dat) uint i; uchar j; bit testb; for(j=

22、1;j<=8;j+) testb=dat&0x01; dat=dat>>1; if(testb) /write 1 DS=0; i+;i+; DS=1; i=8;while(i>0)i-; else DS=0; i=8;while(i>0)i-;/write 0 DS=1; i+;i+; if (f_Temp>=75) f_Temp=75; if (f_Temp<=0) f_Temp=0; if(f_Temp>=45) MA=1;MB=0; if(f_Temp=45) PWM1=0;delay_ms(30);return; else if(f_Temp=75) PWM1=1;delay_ms(30);return; PWM1=1;delay_ms(f_Temp-45); PWM1=0;delay_ms(75-f_Temp);else if(f_Temp<=10) MA=0;MB=1; if (f_Temp=10) PWM1=0;delay_ms(10);return; else if(f_Temp=0) PWM1=1;delay_ms(10);return; PWM1=1;delay_ms

溫馨提示

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

評論

0/150

提交評論