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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

4、速 ,實(shí)現(xiàn)實(shí)時(shí)溫度顯示,測(cè)溫范圍 -55 1280C,誤差 50C 以內(nèi)。畫出基于溫度的電動(dòng)機(jī)轉(zhuǎn)速控制電路的原理圖 ,通過仿真軟件來檢測(cè)所寫程序?qū)崿F(xiàn)功能的正確與否 .23 方案設(shè)計(jì)3.1溫度傳感器方案論證3.1.1 方案一由于本設(shè)計(jì)是測(cè)溫電路,可以使用熱敏電阻之類的器件,將隨被測(cè)溫度變化的電壓或電流采樣, 進(jìn)行 A/D 轉(zhuǎn)換后就可以用單片機(jī)進(jìn)行數(shù)據(jù)處理, 實(shí)現(xiàn)溫度顯示。這種設(shè)計(jì)需要用到 A/D 轉(zhuǎn)換電路,增大了電路的復(fù)雜性, 而且要做到高精度也比較困難。3.1.2 方案二考慮到在單片機(jī)屬于數(shù)字系統(tǒng),容易想到數(shù)字溫度傳感器,可選用 DS18B20 數(shù)字溫度傳感器, 此傳感器為單總線數(shù)字溫度傳感器

5、, 起體積小、 構(gòu)成的系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,它可直接將溫度轉(zhuǎn)化成串行數(shù)字信號(hào)給單片機(jī)處理, 即可實(shí)現(xiàn)溫度顯示。另外 DS18B20具有 3 引腳的小體積封裝,測(cè)溫范圍為 -55+125 攝氏度,測(cè)溫分辨率可達(dá) 0.0625 攝氏度,其測(cè)量范圍與精度都能符合設(shè)計(jì)要求。以上兩種方案相比較,第二種方案的電路、軟件設(shè)計(jì)更簡(jiǎn)單,此方案設(shè)計(jì)的系統(tǒng)在功耗、測(cè)量精度、范圍等方面都能很好地達(dá)到要求, 故本設(shè)計(jì)采用方案二。3.2總體設(shè)計(jì)框圖本方案設(shè)計(jì)的系統(tǒng)由單片機(jī)系統(tǒng)、 DS18B20數(shù)字溫度傳感器、 LCD溫度顯示模塊、 L298 電機(jī)驅(qū)動(dòng)模塊、電機(jī)組成,其總體架構(gòu)如下圖 1。測(cè)溫電路單L298電機(jī)驅(qū)動(dòng)電機(jī)轉(zhuǎn)動(dòng)電路片機(jī)

6、LCD溫度顯示電路時(shí)鐘、復(fù)位電路圖 1 系統(tǒng)總體方框圖34 硬件設(shè)計(jì)4.1 單片機(jī)系統(tǒng)1. 本設(shè)計(jì)采用 STC89C52單片機(jī)作為控制器,完成所有功能的控制,包括:DS18B20數(shù)字溫度傳感器的初始化和讀取溫度值LCD顯示驅(qū)動(dòng)與控制L298 電機(jī)驅(qū)動(dòng)芯片驅(qū)動(dòng)電機(jī)溫度值的存儲(chǔ)和讀取2. 單片機(jī)系統(tǒng)電路原理圖:4圖 2 單片機(jī)系統(tǒng)原理圖4.2 數(shù)字溫度傳感器模塊4.2.1 DS18B20 性能獨(dú)特的單線接口僅需一個(gè)端口引腳進(jìn)行通信簡(jiǎn)單的多點(diǎn)分布應(yīng)用無需外部器件可通過數(shù)據(jù)線供電零待機(jī)功耗測(cè)溫范圍 -55+128,以 1遞增可編程的分辨率為912 位,對(duì)應(yīng)的可分辨溫度分別為0.5 、0.25 、 0.

7、125 和 0.0625 溫度數(shù)字量轉(zhuǎn)換時(shí)間 200ms,12 位分辨率時(shí)最多在 750ms內(nèi)把溫度轉(zhuǎn)換為數(shù)字應(yīng)用包括溫度控制、工業(yè)系統(tǒng)、消費(fèi)品、溫度計(jì)和任何熱感測(cè)系統(tǒng)負(fù)壓特性:電源極性接反時(shí),傳感器不會(huì)因發(fā)熱而燒毀,但不能正常工作54.2.2 DS18B20 外形及引腳說明圖 3 DS18B20外形及引腳GND:地DQ:?jiǎn)尉€運(yùn)用的數(shù)據(jù)輸入 / 輸出引腳VD:可選的電源引腳4.2.3 DS18B20 接線原理圖單總線通常要求接一個(gè)約 4.7K 左右的上拉電阻,這樣,當(dāng)總線空閑時(shí),其狀態(tài)為高電平。圖 4 DS18B20接線原理圖4.2.4 DS18B20 時(shí)序圖主機(jī)使用時(shí)間隙來讀寫DS18B20

8、的數(shù)據(jù)位和寫命令字的位。1. 初始化時(shí)序如下圖:6圖 5 DS18B20 初始化時(shí)序2. DS18B20讀寫時(shí)序:圖 6 DS18B20讀寫時(shí)序74.2.5 數(shù)據(jù)處理高速暫存存儲(chǔ)器由9 個(gè)字節(jié)組成,其分配如表5 所示。當(dāng)溫度轉(zhuǎn)換命令發(fā)布后,經(jīng)轉(zhuǎn)換所得的溫度值以二字節(jié)補(bǔ)碼形式存放在高速暫存存儲(chǔ)器的第 0 和第 1 個(gè)字節(jié)。單片機(jī)可通過單線接口讀到該數(shù)據(jù),讀取時(shí)低位在前,高位在后。圖 7 字節(jié)分配下表為12 位轉(zhuǎn)化后得到的12 位數(shù)據(jù),存儲(chǔ)在18B20 的兩個(gè)8 比特的RAM 中,二進(jìn)制中的前面5 位是符號(hào)位,如果測(cè)得的溫度大于0, 這 5 位為 0,只要將測(cè)到的數(shù)值乘于0.0625 即可得到實(shí)際

9、溫度;如果溫度小于0,這 5 位為 1,測(cè)到的數(shù)值需要取反加1 再乘于 0.0625 即可得到實(shí)際溫度。例如 +125的數(shù)字輸出為07D0H,實(shí)際溫度 =07D0H*0.0625=2000*0.0625=125 。例如 -55的數(shù)字輸出為FC90H,則應(yīng)先將11 位數(shù)據(jù)位取反加1 得 370H(符號(hào)位不變,也不作運(yùn)算),實(shí)際溫度 =370H*0.0625=880*0.0625=55 ??梢娖渲械退奈粸樾?shù)位。圖 8 DS18B20溫度數(shù)據(jù)表84.3 關(guān)于 L298 電機(jī)驅(qū)動(dòng)芯片的簡(jiǎn)介L298 是 ST公司生產(chǎn)的一種高電壓、大電流電機(jī)驅(qū)動(dòng)芯片。該芯片的主要特點(diǎn)是:工作電壓高,最高工作電壓可達(dá)46

10、V;輸出電流大,瞬間峰值電流可達(dá)3A ,持續(xù)工作電流為2A;內(nèi)含兩個(gè)H 橋的高電壓大電流全橋式驅(qū)動(dòng)器,可以用來驅(qū)動(dòng)直流電動(dòng)機(jī)和步進(jìn)電動(dòng)機(jī)、繼電器、線圈等感性負(fù)載;采用標(biāo)準(zhǔn)TTL邏輯電平信號(hào)控制;具有兩個(gè)使能控制端,在不受輸入信號(hào)影響的情況下允許或禁止器件工作;有一個(gè)邏輯電源輸入端,使內(nèi)部邏輯電路部分在低電壓下工作;可以外接檢測(cè)電阻,將變化量反饋給控制電路。4.4 顯示電路LCD顯示簡(jiǎn)單明了,可以直接讀出溫度值。圖 9 LCD 驅(qū)動(dòng)顯示電路95 應(yīng)用軟件介紹5.1Proteus仿軟真件的介紹Proteus 是一款 Labcenter 出品的電路分析實(shí)物仿真系統(tǒng), 可仿真各種電路和IC,并支持單片

11、機(jī),元件庫齊全,使用方便,是不可多得的專業(yè)的單片機(jī)軟件仿真系統(tǒng)。該軟件的特點(diǎn):(1)全部滿足我們提出的單片機(jī)軟件仿真系統(tǒng)的標(biāo)準(zhǔn), 并在同類產(chǎn)品中具有明顯的優(yōu)勢(shì)。(2)具有模擬電路仿真、 數(shù)字電路仿真、 單片機(jī)及其外圍電路組成的系統(tǒng)的仿真、 RS一 232 動(dòng)態(tài)仿真、 1 C 調(diào)試器、 SPI調(diào)試器、鍵盤和 LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號(hào)發(fā)生器等。 目前支持的單片機(jī)類型有:68000 系列、8051 系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、 Z80 系列、 HC11 系列以及各種外圍芯片。 支持大量的存儲(chǔ)器和外圍芯片。總之該軟件是一款集

12、單片機(jī)和 SPICE分析于一身的仿真軟件, 功能極其強(qiáng)大 ,可仿真 51、AVR、 PIC。5.2 Keil軟件Keil C51是美國 Keil Software公司出品的 51 系列兼容單片機(jī) C語言軟件開發(fā)系統(tǒng),與匯編相比, C 語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。用過匯編語言后再使用C 來開發(fā),體會(huì)更加深刻。Keil C51軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全Windows 界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會(huì)到Keil C51生成的目標(biāo)代碼效率非常之高, 多數(shù)語句生成的匯編代碼很緊湊, 容易理解。在開發(fā)大型軟件時(shí)

13、更能體現(xiàn)高級(jí)語言的優(yōu)勢(shì)。6 軟件設(shè)計(jì)6.1主程序模塊主程序流程圖:10主程序流程圖6.2讀溫度值模塊讀溫度值模塊需要調(diào)用4 個(gè)子程序,分別為:DS18B20初始化子程序:讓單片機(jī)知道DS18B20在總線上且已準(zhǔn)備好操作DS18B20寫字節(jié)子程序:對(duì) DS18B20發(fā)出命令DS18B20讀字節(jié)子程序:讀取 DS18B20存儲(chǔ)器的數(shù)據(jù)延時(shí)子程序:對(duì) DS18B20操作時(shí)的時(shí)序控制1. 讀溫度值模塊流入口DS18B20 初始化11跳過讀序列號(hào)啟動(dòng)溫度轉(zhuǎn)換返回讀溫度值子程序流程圖2. DS18B20初始化子程序流程圖:入口DQ 置高電平稍延時(shí)DQ復(fù)位 0延時(shí) >480msDQ 拉高電平延時(shí) 15

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

15、1250 - 6535 - 0157 源程序#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,INT8

16、U,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 1static 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(Te

17、mp_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_Buff);if (f_Temp>=75) f_Temp=75;if(f_Tem

18、p<=0) f_Temp=0;if(f_Temp>=45)MA=1;MB=0;16#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

19、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 1static 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

20、(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_Buff);bit tmpread

21、bit(void)uint i;bit dat;DS=1;DS=0;i+;i+;DS=1;i+;17dat=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=1;j<=8;j+)testb=dat&0x01;da

22、t=dat>>1;if(testb)/write 1DS=0;i+;i+;DS=1;i=8;while(i>0)i-;elseDS=0;i=8;while(i>0)i-;/write 0DS=1;i+;i+;if (f_Temp>=75) f_Temp=75;if(f_Temp<=0) f_Temp=0;if(f_Temp>=45)18MA=1;MB=0;if(f_Temp=45) PWM1=0;delay_ms(30);return; elseif(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;elseif(f_Temp=0)PWM1=1;delay_ms(10);return;PWM1=1;delay_ms(10-f_Temp);PWM1=0;dela

溫馨提示

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