大學(xué)畢業(yè)設(shè)計(jì) C程序控制步進(jìn)電機(jī)_第1頁
大學(xué)畢業(yè)設(shè)計(jì) C程序控制步進(jìn)電機(jī)_第2頁
大學(xué)畢業(yè)設(shè)計(jì) C程序控制步進(jìn)電機(jī)_第3頁
大學(xué)畢業(yè)設(shè)計(jì) C程序控制步進(jìn)電機(jī)_第4頁
大學(xué)畢業(yè)設(shè)計(jì) C程序控制步進(jìn)電機(jī)_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 題 目: 簡易步進(jìn)電機(jī)控制 步進(jìn)電機(jī)控制摘要:本設(shè)計(jì)采用ATMEL公司DIP-40封裝的AT89S52單片機(jī)實(shí)現(xiàn)對四相步進(jìn)電機(jī)的手動和按鍵控制。由單片機(jī)產(chǎn)生的脈沖信號經(jīng)過分配后分解出對應(yīng)的四相脈沖,分解出的四相脈沖經(jīng)驅(qū)動電路功率放大后驅(qū)動步進(jìn)電機(jī)的轉(zhuǎn)動。轉(zhuǎn)速的調(diào)節(jié)和狀態(tài)的改變由按鍵進(jìn)行選擇,此過程由程序直接進(jìn)行控制。通過鍵盤掃描把選擇的信息反饋給單片機(jī),單片機(jī)根據(jù)反饋信息做出相應(yīng)的判斷并改變輸出脈沖的頻率或轉(zhuǎn)動狀態(tài)信號。電機(jī)轉(zhuǎn)動的不同狀態(tài)由液晶LCD1602顯示出來。而設(shè)計(jì)的擴(kuò)展部分可以通過紅外信號的發(fā)射由另一塊單片機(jī)和紅外線LED完成,用紅外萬能接收頭接收紅外信號,可以實(shí)現(xiàn)對電機(jī)的控制進(jìn)行

2、紅外遙控。 關(guān)鍵字:四相步進(jìn)電機(jī) 單片機(jī) 功率放大 LCD1602 目錄步進(jìn)電機(jī)控制 1摘要 1關(guān)鍵字 1前言 31系統(tǒng)總體方案設(shè)計(jì)及硬件設(shè)計(jì)4 1.1步進(jìn)電機(jī)4 步進(jìn)電機(jī)的種類 4 步進(jìn)電機(jī)的特點(diǎn) 4 步進(jìn)電機(jī)的原理 51.2 控制系統(tǒng)電路設(shè)計(jì)71.3 液晶顯示LCD160271.4 AT89S52核心部件及系統(tǒng)SCH原理圖9 1.5 LN2003A驅(qū)動102軟件設(shè)計(jì)及調(diào)試13 2.1程序流程 132.2軟件設(shè)計(jì)及調(diào)試 143 擴(kuò)展功能說明154設(shè)計(jì)總結(jié) 165 設(shè)計(jì)源程序166 附錄 21參考文獻(xiàn) 22附2:系統(tǒng)原理圖及實(shí)物圖 23前言步進(jìn)電機(jī)廣泛應(yīng)用于對精度要求比較高的運(yùn)動控制系統(tǒng)中,如

3、機(jī)器人、打印機(jī)、軟盤驅(qū)動器、繪圖儀、機(jī)械閥門控制器等。目前,對步進(jìn)電機(jī)的控制主要有由分散器件組成的環(huán)形脈沖分配器、軟件環(huán)形脈沖分配器、專用集成芯片環(huán)形脈沖分配器等。分散器件組成的環(huán)形脈沖分配器體積比較大,同時由于分散器件的延時,其可靠性大大降低;軟件環(huán)形分配器要占用主機(jī)的運(yùn)行時間,降低了速度;專用集成芯片環(huán)形脈沖分配器集成度高、可靠性好,但其適應(yīng)性受到限制,同時開發(fā)周期長、需求費(fèi)用較高。步進(jìn)電機(jī)是微特電機(jī)的一種,其作為執(zhí)行元件,是機(jī)電一體化的關(guān)鍵產(chǎn)品之一,廣泛應(yīng)用在各種自動化控制系統(tǒng)中。隨著微電子和計(jì)算機(jī)技術(shù)的發(fā)展,步進(jìn)電機(jī)的需求量與日俱增,在各個國民經(jīng)濟(jì)領(lǐng)域都有應(yīng)用。同時步進(jìn)電動機(jī)是一種將脈

4、沖信號變換成相應(yīng)的角位移(或線位移)的電磁裝置,是一種特殊的電動機(jī)。一般電動機(jī)都是連續(xù)轉(zhuǎn)動的,而步進(jìn)電動機(jī)則有定位和運(yùn)轉(zhuǎn)兩種基本狀態(tài),當(dāng)有脈沖輸入肘步進(jìn)電動機(jī)一步一步地轉(zhuǎn)動,每給它一個脈沖信號,它就轉(zhuǎn)過一定的角度。步進(jìn)電動機(jī)的角位移量和輸入脈沖的個數(shù)嚴(yán)格成正比,在時間上與輸入脈沖同步,因此只要控制輸入脈沖的數(shù)量、頻率及電動機(jī)繞組通電的相序,便可獲得所需的轉(zhuǎn)角、轉(zhuǎn)速及轉(zhuǎn)動方向。在沒有脈沖輸入時,在繞組電源的激勵下氣隙磁場能使轉(zhuǎn)子保持原有位置于定位狀態(tài)。步進(jìn)電機(jī)以廣泛應(yīng)用在生產(chǎn)實(shí)踐的各個領(lǐng)域。它最大的應(yīng)用是在數(shù)控機(jī)床的制造中,因?yàn)椴竭M(jìn)電機(jī)不需要A/D轉(zhuǎn)換,能夠直接將數(shù)字脈沖信號轉(zhuǎn)化成為角位移,所以

5、被認(rèn)為是理想的數(shù)控機(jī)床的執(zhí)行元件。早期的步進(jìn)電機(jī)輸出轉(zhuǎn)矩比較小,無法滿足需要,在使用中和液壓扭矩放大器一同組成液壓脈沖馬達(dá)。隨著步進(jìn)電動機(jī)技術(shù)的發(fā)展,步進(jìn)電動機(jī)已經(jīng)能夠單獨(dú)在系統(tǒng)上進(jìn)行使用,成為了不可替代的執(zhí)行元件。除了在數(shù)控機(jī)床上的應(yīng)用,步進(jìn)電機(jī)也可以并用在其他的機(jī)械上,比如作為自動送料機(jī)中的馬達(dá),作為通用的軟盤驅(qū)動器的馬達(dá),也可以應(yīng)用在打印機(jī)和繪圖儀中。伴隨著不同的數(shù)字化技術(shù)的發(fā)展以及步進(jìn)電機(jī)本身技術(shù)的提高,步進(jìn)電機(jī)將會在更多的領(lǐng)域得到應(yīng)用。1系統(tǒng)總體方案設(shè)計(jì)及硬件設(shè)計(jì)本設(shè)計(jì)系統(tǒng)中主要圍繞AT89S52以實(shí)現(xiàn)四相步進(jìn)電機(jī)的轉(zhuǎn)動控制(步進(jìn)電機(jī)正轉(zhuǎn)、反轉(zhuǎn)以及轉(zhuǎn)動速度)以及液晶LCD1602的顯

6、示為目的:1.1步進(jìn)電機(jī)步進(jìn)電機(jī)是數(shù)字控制電機(jī),它將脈沖信號轉(zhuǎn)變成角位移,即給一個脈沖信號,步進(jìn)電機(jī)就轉(zhuǎn)動一個角度,因此非常適合于單片機(jī)控制。步進(jìn)電機(jī)可分為反應(yīng)式步進(jìn)電機(jī)(VR)、永磁式步進(jìn)電機(jī)(PM)和混合式步進(jìn)電機(jī)(HB)。 步進(jìn)電機(jī)區(qū)別于其他控制電機(jī)的最大特點(diǎn)是,它是通過輸入脈沖信號來進(jìn)行控制的,即電機(jī)的總轉(zhuǎn)動角度由輸入脈沖數(shù)決定,而電機(jī)的轉(zhuǎn)速由脈沖信號頻率決定。 步進(jìn)電機(jī)的驅(qū)動電路根據(jù)控制信號工作,控制信號由單片機(jī)產(chǎn)生。其基本原理作用如下:(1)控制換相順序 通電換相這一過程稱為脈沖分配。例如:混合式步進(jìn)電機(jī)的工作方式,其各相通電順序?yàn)锳-B-C-D,通電控制脈沖必須嚴(yán)格按照這一順序分

7、別控制A,B,C,D相的通斷,這就是所謂脈沖環(huán)形分配器。(2)控制步進(jìn)電機(jī)的轉(zhuǎn)向 如果給定工作方式正序換相通電,步進(jìn)電機(jī)正轉(zhuǎn),如果按反序通電換相,則電機(jī)就反轉(zhuǎn)。(3)控制步進(jìn)電機(jī)的速度 如果給步進(jìn)電機(jī)發(fā)一個控制脈沖,它就轉(zhuǎn)一步,再發(fā)一個脈沖,它會再轉(zhuǎn)一步。兩個脈沖的間隔越短,步進(jìn)電機(jī)就轉(zhuǎn)得越快。 步進(jìn)電機(jī)的種類步進(jìn)電機(jī)分永磁式(PM)、反應(yīng)式(VR)、和混合式(HB)三種。永磁式步進(jìn)一般為兩相,轉(zhuǎn)矩和體積較小,步進(jìn)角一般為7.5度 或15度;反應(yīng)式步進(jìn)一般為三相,可實(shí)現(xiàn)大轉(zhuǎn)矩輸出,步進(jìn)角一般為1.5度,但噪聲和振動都很大。在歐美等發(fā)達(dá)國家80年代已被淘汰;混合式步進(jìn)是指混合了永磁式和反應(yīng)式的優(yōu)

8、點(diǎn)。它又分為兩相和五相:兩相步進(jìn)角一般為1.8度而五相步進(jìn)角一般為 0.72度。這種步進(jìn)電機(jī)的應(yīng)用最為廣泛。1.1.2 步進(jìn)電機(jī)的特點(diǎn)1精度高 一般的步進(jìn)電機(jī)的精度為步進(jìn)角的3-5%,且不累積??稍趯拸V的頻率范圍內(nèi)通過改變脈沖頻率來實(shí)現(xiàn)調(diào)速,快速起停、正反 轉(zhuǎn)控制及制動等,這是步進(jìn)電動機(jī)最突出的優(yōu)點(diǎn)2過載性好 其轉(zhuǎn)速不受負(fù)載大小的影響,不像普通電機(jī),當(dāng)負(fù)載加大時就會出現(xiàn)速度下降的情況,所以步進(jìn)電機(jī)使用在對速度和位置都有嚴(yán)格要求的場合;3控制方便 步進(jìn)電機(jī)是以“步”為單位旋轉(zhuǎn)的,數(shù)字特征比較明顯,這樣就給計(jì)算機(jī)控制帶來了很大的方便,反過來,計(jì)算機(jī)的出現(xiàn)也為步進(jìn)電機(jī)開辟了更為廣闊的使用市場;4整機(jī)

9、結(jié)構(gòu)簡單 傳統(tǒng)的機(jī)械速度和位置控制結(jié)構(gòu)比較復(fù)雜,調(diào)整困難,使用步進(jìn)電機(jī)后,使得整機(jī)的結(jié)構(gòu)變得簡單和緊湊。 步進(jìn)電機(jī)的原理圖1是一種四相可變磁阻型的步進(jìn)電機(jī)結(jié)構(gòu)示意圖。這種電機(jī)定子上有八個凸齒,每一個齒上有一個線圈。線圈繞組的連接方式,是對稱齒上的兩個線圈進(jìn)行反相連接,如圖中所示。八個齒構(gòu)成四對,所以稱為四相步進(jìn)電機(jī)。圖1 它的工作過程是這樣的:當(dāng)有一相繞組被激勵時,磁通從正相齒,經(jīng)過軟鐵芯的轉(zhuǎn)子,并以最短的路徑流向負(fù)相齒,而其他六個凸齒并無磁通。為使磁通路徑最短,在磁場力的作用下,轉(zhuǎn)子被強(qiáng)迫移動,使最近的一對齒與被激勵的一相對準(zhǔn)。在圖1(a)中A相是被激勵,轉(zhuǎn)子上大箭頭所指向的那個齒,與正向的

10、A齒對準(zhǔn)。從這個位置再對B相進(jìn)行激勵,如圖1中的(b),轉(zhuǎn)子向反時針轉(zhuǎn)過15°。若是D相被激勵,如圖1中的(c),則轉(zhuǎn)子為順時針轉(zhuǎn)過15°。下一步是C相被激勵。因?yàn)镃相有兩種可能性:ABCD或ADCB。一種為反時針轉(zhuǎn)動;另一種為順時針轉(zhuǎn)動。但每步都使轉(zhuǎn)子轉(zhuǎn)動15°。電機(jī)步長(步距角)是步進(jìn)電機(jī)的主要性能指標(biāo)之一,不同的應(yīng)用場合,對步長大小的要求不同。改變控制繞組數(shù)(相數(shù))或極數(shù)(轉(zhuǎn)子齒數(shù)),可以改變步長的大小。它們之間的相互關(guān)系,可由下式計(jì)算:L360 P×N式中:L為步長;P為相數(shù);N為轉(zhuǎn)子齒數(shù)。在圖1中,步長為15°,表示電機(jī)轉(zhuǎn)一圈需要24

11、步。 四相步進(jìn)電機(jī),采用單極性直流電源供電。只要對步進(jìn)電機(jī)的各相繞組按合適的時序通電,就能使步進(jìn)電機(jī)步進(jìn)轉(zhuǎn)動。圖1是該四相反應(yīng)式步進(jìn)電機(jī)工作原理示意圖。圖2 四相步進(jìn)電機(jī)步進(jìn)示意圖開始時,開關(guān)SB接通電源,SA、SC、SD斷開,B相磁極和轉(zhuǎn)子0、3號齒對齊,同時,轉(zhuǎn)子的1、4號齒就和C、D相繞組磁極產(chǎn)生錯齒,2、5號齒就和D、A相繞組磁極產(chǎn)生錯齒。當(dāng)開關(guān)SC接通電源,SB、SA、SD斷開時,由于C相繞組的磁力線和1、4號齒之間磁力線的作用,使轉(zhuǎn)子轉(zhuǎn)動,1、4號齒和C相繞組的磁極對齊。而0、3號齒和A、B相繞組產(chǎn)生錯齒,2、5號齒就和A、D相繞組磁極產(chǎn)生錯齒。依次類推,A、B、C、D四相繞組輪流

12、供電,則轉(zhuǎn)子會沿著A、B、C、D方向轉(zhuǎn)動。四相步進(jìn)電機(jī)按照通電順序的不同,可分為單四拍、雙四拍、八拍三種工作方式。單四拍與雙四拍的步距角相等,但單四拍的轉(zhuǎn)動力矩小。八拍工作方式的步距角是單四拍與雙四拍的一半,因此,八拍工作方式既可以保持較高的轉(zhuǎn)動力矩又可以提高控制精度。單四拍、雙四拍與八拍工作方式的電源通電時序與波形分別如圖3.a、b、c所示: a. 單四拍 b. 雙四拍 c八拍圖3.步進(jìn)電機(jī)工作時序波形圖對步進(jìn)電機(jī)四個繞組依次實(shí)現(xiàn)如下方式的循環(huán)通電控制: 單四拍運(yùn)行:正轉(zhuǎn)A-B-C-D;反轉(zhuǎn)D-C-B-A 雙四拍運(yùn)行:正轉(zhuǎn)AB-BC-CD-DA;反轉(zhuǎn)DC-CB-BA-AD單雙八拍運(yùn)行:正轉(zhuǎn)A

13、-AB-B-BC-C-CD-D-DA1.2 控制系統(tǒng)電路設(shè)計(jì)步進(jìn)電機(jī)控制設(shè)計(jì)采用AT89S52單片機(jī)作為控制機(jī)構(gòu)的核心(如圖4)。通過對鍵盤的輸入與操作實(shí)現(xiàn)對步進(jìn)電機(jī)的控制。當(dāng)電源開通的時候,步進(jìn)電機(jī)就會按照默認(rèn)設(shè)置的轉(zhuǎn)速方式轉(zhuǎn)動。步進(jìn)電機(jī)的正反轉(zhuǎn)及轉(zhuǎn)速由按鍵控制選擇,當(dāng)按鍵按下,步進(jìn)電機(jī)實(shí)現(xiàn)正轉(zhuǎn)或反轉(zhuǎn)及加速或減速狀態(tài)。AT89S52單片機(jī)獨(dú)立按鍵鍵盤步進(jìn)電機(jī)驅(qū)動LCD1602顯示揚(yáng)聲器(擴(kuò)展)紅外發(fā)射電路(擴(kuò)展)時鐘和復(fù)位電路圖7 控制系統(tǒng)1.3 液晶顯示LCD1602液晶LCD-1602說明:1.簡介 工業(yè)字符型液晶,能夠同時顯示16x02即32個字符。(16列2行) 注:為了表示的方便

14、,后文皆以1表示高電平,0表示低電平。2.管腳功能 1602采用標(biāo)準(zhǔn)的16腳接口,其中: 第1腳:VSS為電源地 第2腳:VDD接5V電源正極 第3腳:V0為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高(對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度)。 第4腳:RS為寄存器選擇,高電平1時選擇數(shù)據(jù)寄存器、低電平0時選擇指令寄存器。 第5腳:RW為讀寫信號線,高電平(1)時進(jìn)行讀操作,低電平(0)時進(jìn)行寫操作。 第6腳:E(或EN)端為使能(enable)端。 第714腳:D0D7為8位雙向數(shù)據(jù)端。 第1516腳:空腳或背燈電源。15腳背光正極,1

15、6腳背光負(fù)極。3.操作控制操作控制表 3.1操作 讀狀態(tài) 寫指令 讀數(shù)據(jù) 寫數(shù)據(jù) 3.2輸入 RS=0,RW=1,E=1 RS=0,RW=0, D0-7=指令碼,E=H脈沖 RS=1,RW=1,E=1 RS=1,RW=0, D0-7=數(shù)據(jù),E=H脈沖 注:關(guān)于E=H脈沖開始時初始化E為0,然后置E為1,脈沖大于0.5us,下降沿有效。4.字符集 1602液晶模塊內(nèi)部的字符發(fā)生存儲器(CGROM)已經(jīng)存儲了160個不同的點(diǎn)陣字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示

16、時模塊把地址41H中的點(diǎn)陣字符圖形顯示出來,我們就能看到字母“A”。 因?yàn)?602識別的是ASCII碼,試驗(yàn)可以用ASCII碼直接賦值,在單片機(jī)編程中還可以用字符型常量或變量賦值,如'A。 以下是1602的16進(jìn)制ASCII碼表地址: 讀的時候,先讀左邊那列,再讀上面那行,如:感嘆號!的ASCII為0x21,字母B的ASCII為0x42(前面加0x表示十六進(jìn)制)。編輯本段指令集 1602通過D0-D7的8位數(shù)據(jù)端傳輸數(shù)據(jù)和指令。 顯示模式設(shè)置: (初始化) 0011 0000 0x38 設(shè)置16×2顯示,5×7點(diǎn)陣,8位數(shù)據(jù)接口; 顯示開關(guān)及光標(biāo)設(shè)置: (初始化)

17、0000 1DCB D顯示(1有效)、C光標(biāo)顯示(1有效)、B光標(biāo)閃爍(1有效) 0000 01NS N=1(讀或?qū)懸粋€字符后地址指針加1 &光標(biāo)加1), N=0(讀或?qū)懸粋€字符后地址指針減1 &光標(biāo)減1), S=1 且 N=1 (當(dāng)寫一個字符后,整屏顯示左移) s=0 當(dāng)寫一個字符后,整屏顯示不移動 數(shù)據(jù)指針設(shè)置: 數(shù)據(jù)首地址為80H,所以數(shù)據(jù)地址為80H+地址碼(0-27H,40-67H)其他設(shè)置:(01H(顯示清屏,數(shù)據(jù)指針=0,所有顯示=0);02H(顯示回車,數(shù)據(jù)指針=0)。圖8 液晶LCD16021.4 AT89S52核心部件及系統(tǒng)SCH原理圖AT89S52單片機(jī)功

18、能特性描述: AT89S52 是美國 ATMEL 公司生產(chǎn)的低功耗、高性能 CMOS 8 位單片機(jī),片內(nèi)含 8k bytes 的可系統(tǒng)編程的 Flash 只讀程序 存儲器,器件采用 ATMEL 公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn) 8051 指令系統(tǒng)及引腳。它集 Flash 程序存儲器 既可在線編程(ISP)也可用傳統(tǒng)方法進(jìn)行編程及通用 8 位微處理器于單片芯片中,ATMEL 公司的功能強(qiáng)大,低價位 AT89S51 單片機(jī)可以提供許多高性價比的應(yīng)用場合,可靈活應(yīng)用于各種控制領(lǐng)域。AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8K 在系統(tǒng)可編程 Flash 存儲器。使用 A

19、tmel 公司高密度非易失性存儲器技術(shù)制造,與工業(yè) 80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的 8 位 CPU 和在系統(tǒng)可編程Flash,使得 AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。AT89S52具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)Flash,256字節(jié)RAM32 位 I/O 口線,看門狗定時器,2 個數(shù)據(jù)指針,三個 16 位定時器/計(jì)數(shù)器,一個6向量 2級中斷結(jié)構(gòu),全雙工串行口片內(nèi)晶振及時鐘電路。另外,AT89S52 可降至 0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停

20、止工作,允許RAM、定時器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個中斷或硬件復(fù)位為止。圖9 SCH原理框圖1.5 LN2003A驅(qū)動ULN2003的內(nèi)部結(jié)構(gòu)和功能 ULN是集成達(dá)林頓管IC,內(nèi)部還集成了一個消線圈反電動勢的二極管,可用來驅(qū)動繼電器。它是雙列16腳封裝,NPN晶體管矩陣,最大驅(qū)動電壓=50V,電流=500mA,輸入電壓=5V,適用于TTL COMS,由達(dá)林頓管組成驅(qū)動電路。 ULN是集成達(dá)林頓管IC,內(nèi)部還集成了一個消線圈反電動勢的二極管,它的輸出端允許通過電流為200mA,飽和壓降VCE 約1V左右,耐壓BVC

21、EO 約為36V。用戶輸出口的外接負(fù)載可根據(jù)以上參數(shù)估算。采用集電極開路輸出,輸出電流大,故可直接驅(qū)動繼電器或固體繼電器,也可直接驅(qū)動低壓燈泡。通常單片機(jī)驅(qū)動ULN2003時,上拉2K的電阻較為合適,同時,COM引腳應(yīng)該懸空或接電源。 ULN2003是一個非門電路,包含7個單元,但獨(dú)每個單元驅(qū)動電流最大可達(dá)350mA.資料的最后有引用電路,9腳可以懸空。 比如1腳輸入,16腳輸出,你的負(fù)載接在VCC與16腳之間,不用9腳。uln2003的作用: ULN2003是大電流驅(qū)動陣列,多用于單片機(jī)、智能儀表、PLC、數(shù)字量輸出卡等控制電路中??芍苯域?qū)動繼電器等負(fù)載。 輸入5VTTL電平,輸出可達(dá)500

22、mA/50V。 ULN2003是高耐壓、大電流達(dá)林頓陳列,由七個硅NPN達(dá)林頓管組成。 該電路的特點(diǎn)如下: ULN2003的每一對達(dá)林頓都串聯(lián)一個2.7K的基極電阻,在5V的工作電壓下它能與TTL和CMOS電路 直接相連,可以直接處理原先需要標(biāo)準(zhǔn)邏輯緩沖器。 ULN2003 是高壓大電流達(dá)林頓晶體管陣列系列產(chǎn)品,具有電流增益高、工作電壓高、溫度范圍寬、帶負(fù)載能力強(qiáng)等特點(diǎn),適應(yīng)于各類要求高速大功率驅(qū)動的系統(tǒng)。 圖10 ULN2003A引腳圖及功能ULN2003 是高耐壓、大電流、內(nèi)部由七個硅NPN 達(dá)林頓管組成的驅(qū)動芯片。 經(jīng)常在以下電路中使用,作為:1、顯示驅(qū)動2、繼電器驅(qū)動3、照明燈驅(qū)動4、

23、電磁閥驅(qū)動5、伺服電機(jī)、步進(jìn)電機(jī)驅(qū)動等電路中。ULN2003 的每一對達(dá)林頓都串聯(lián)一個2.7K 的基極電阻,在5V 的工作電壓下它 能與TTL 和CMOS 電路直接相連,可以直接處理原先需要標(biāo)準(zhǔn)邏輯緩沖器來處理的數(shù)據(jù)。ULN2003 工作電壓高,工作電流大,灌電流可達(dá)500mA,并且能夠在關(guān)態(tài)時承受 50V 的電壓,輸出還可以在高負(fù)載電流并行運(yùn)行。ULN2003 的封裝采用DIP16 或SOP16 ULN2003A在各種控制電路中常用它作為驅(qū)動繼電器的芯片,其芯片內(nèi)部做了一個消線圈反電動勢的二極管。ULN2003的輸出端允許通過IC 電流200mA,飽和壓降VCE 約1V左右,耐壓BVCEO

24、約為36V。輸出電流大,故可以直接驅(qū)動繼電器或固體繼電器(SSR)等外接控制器件,也可直接驅(qū)動低壓燈泡。ULN2003可以驅(qū)動7個繼電器,具有高電壓輸出特性,并帶有共陰極的續(xù)流二極管使器件可用于開關(guān)型感性負(fù)載。每對達(dá)林頓管的額定集電極電流是500mA,達(dá)林頓對管還可并聯(lián)使用以達(dá)到更高的輸出電流能力。ULN2003A中每對達(dá)林頓管的基極都串聯(lián)有一個2.7k的電阻,可直接與TTL或5V CMOS器件連接。ULN2003可以并聯(lián)使用,在相應(yīng)的OC輸出管腳上串聯(lián)幾個歐姆的均流電阻后再并聯(lián)使用,防止陣列電流不平衡。2. 在輸入口輸入高電平時輸出口為低電平但是在輸入端輸入低電平時輸出端怎么還是低電平? U

25、LN2003A的輸出結(jié)構(gòu)是集電極開路的,所以要在輸出端接一個上拉電阻,在輸入低電平的時候輸出才是高電平。在驅(qū)動負(fù)載的時候,電流是由電源通過負(fù)載灌入ULN2003A的。 圖11 ULN2003A驅(qū)動電路圖ULN2003一般用來驅(qū)動大電流的裝置,如繼電器,LED燈等,在驅(qū)動繼電器這種裝置時,COM端最好接上電源,以用來泄放繼電器線圈的反向電動勢。 顯示電路主要包括大型LED數(shù)碼管BSI20-1(共陽極,數(shù)字凈高12 cm)和高電壓大電流驅(qū)動器ULN2003,大型LED數(shù)碼管的每段是由多個LED發(fā)光二極管串并聯(lián)而成的,因此導(dǎo)通電流大、導(dǎo)通壓降高。ULN2003是高壓大電流達(dá)林頓晶體管陣列電路,他具有

26、7個獨(dú)立的反相驅(qū)動器,每個驅(qū)動器的輸出灌電流可達(dá)500 mA,導(dǎo)通時輸出電壓約1 V,截止時輸出電壓可達(dá)50 V。ULN2003的17腳為信號輸入腳,依次對應(yīng)的輸出端為1610腳,8腳為接地端。當(dāng)驅(qū)動電源電壓為+12 V時,若要求數(shù)碼管每段導(dǎo)通電流為40 mA,則每段的限流電阻為50。則一塊ULN2003恰好驅(qū)動一個LED數(shù)碼管的7段。大數(shù)碼管采用共陽極接法,低電平有效。鎖存器輸出的電平經(jīng)NPN三極管9014反相后,再由ULN2003放大后推動大數(shù)碼管顯示。2 軟件設(shè)計(jì)及調(diào)試2.1 程序流程LCD初始工作方式設(shè)置顯示狀態(tài)設(shè)置清屏輸入方式設(shè)置返回LCD初始化光標(biāo)定位顯示字符結(jié)束開始圖12 LCD

27、初始化流程圖 圖13 液晶顯示控制程序流程圖開始LCD初始化LCD1602顯示字設(shè)定定時器初值設(shè)定(設(shè)定按鍵)判斷LCD是否可寫入LCD液晶顯示單片機(jī)P0.1-P0.3延時脈沖斬波輸出返回定時器T0定時中斷按鍵定時器T1定時中斷按鍵外部T0計(jì)數(shù)中斷按鍵外部T1計(jì)數(shù)中斷按鍵P2.3=1P1=0x01清屏P2.3=0P1=0x01清屏RunSpeed-2RunSpeed+2DoSpeed液晶顯示的速度計(jì)算后清屏返回C51庫調(diào)用C語言各函數(shù)設(shè)置及定義圖14 程序總流程2.2 軟件設(shè)計(jì)及調(diào)試軟件設(shè)計(jì):根據(jù)要求,可以將程序分為以下幾個部份:(1) 鍵盤輸入程序設(shè)計(jì) 本系統(tǒng)使用的鍵盤較少且比較特殊,因此采

28、用獨(dú)立式鍵盤(定時器定時內(nèi)部T0、T1中斷及外部計(jì)數(shù)T0、T1中斷)接口設(shè)計(jì)。獨(dú)立式鍵盤適用于按鍵數(shù)量較少的場合。獨(dú)立鍵盤工作原理:通過上拉電阻接到+5V上。無按鍵,處于高電平狀態(tài),有鍵按下電平為低。在消除抖動影響上是可以采用了軟件消抖方法:在第一次檢測到有鍵按下時,執(zhí)行一段延時子程序后(約10ms),再確認(rèn)電平是否仍保持閉合狀態(tài)電平,如果保持閉合狀態(tài)電平,則確認(rèn)真正有鍵按下,進(jìn)行相應(yīng)處理工作,消除了抖動的影響。 (2) 步進(jìn)電機(jī)運(yùn)行步數(shù)控制程序 此方案采用單相和雙相交差通電處理方式。此方法具有運(yùn)行速度穩(wěn)定,運(yùn)行步數(shù)準(zhǔn)確無誤等優(yōu)點(diǎn)。調(diào)試:本電路經(jīng)調(diào)試符合題目要求,各項(xiàng)技術(shù)指標(biāo)均達(dá)到設(shè)計(jì)的目的。

29、具體操作控制方法如下: (1)步進(jìn)電機(jī)正轉(zhuǎn)既此時液晶顯示CW:RUN STATE:CW 。(2)步進(jìn)電機(jī)反轉(zhuǎn)即液晶顯示:RUN STATE:CCW 。 (3)步進(jìn)電機(jī)加速按鍵:步進(jìn)電機(jī)轉(zhuǎn)速加快且顯示的轉(zhuǎn)速加大(4)步進(jìn)電機(jī)減速按鍵:液晶顯示速度變小 電機(jī)轉(zhuǎn)速減慢。3 擴(kuò)展功能說明通過紅外信號的發(fā)射由另一塊單片機(jī)和紅外線LED完成,用紅外萬能接收頭接收紅外信號,可以實(shí)現(xiàn)對電機(jī)的控制進(jìn)行紅外遙控。 本電路設(shè)計(jì)包括max232接口通信電路,可以通過串口線直接與電腦相連接??衫肞C機(jī)強(qiáng)大功能編寫PC軟件來控制、驗(yàn)證、改善控制系統(tǒng)性能。利用以有的單片機(jī)系統(tǒng),作為下位機(jī),選用一臺微機(jī)作為上位機(jī),可以用V

30、B 語言編寫一個系統(tǒng)軟件,這樣可以基于PC的控制系統(tǒng)提高電機(jī)的控制功能。由于聯(lián)動插補(bǔ)算法較復(fù)雜,有大量浮點(diǎn)運(yùn)算,對實(shí)時性要求又較高,選用PC來完成插補(bǔ)運(yùn)算和數(shù)值運(yùn)算。同時可利用豐富的PC軟件來改善控制系統(tǒng)的圖形顯示、動態(tài)仿真、編程和診斷功能。這樣更有利于操作,大大提高步進(jìn)電機(jī)運(yùn)行的可靠性。另外電路中還增加了與電機(jī)同步的脈沖輸出和方向控制電路(OC輸出),可以方便的與專用的步進(jìn)電機(jī)驅(qū)動器相聯(lián)接。4 設(shè)計(jì)總結(jié)步進(jìn)電機(jī)可在寬廣的頻率范圍內(nèi)通過改變脈沖頻率來實(shí)現(xiàn)調(diào)速,快速起停、正反 轉(zhuǎn)控制及制動等,這是步進(jìn)電動機(jī)最突出的優(yōu)點(diǎn)。步進(jìn)電機(jī)的性能在很大程度上取決于步進(jìn)電機(jī)控制系統(tǒng),而步進(jìn)電機(jī)控制系統(tǒng)由步進(jìn)電

31、機(jī)控制器、驅(qū)動器、系統(tǒng)軟件等幾部分組成,控制系統(tǒng)的每一部分對步進(jìn)電機(jī)的運(yùn)行性能息息相關(guān)。一臺好的步進(jìn)電機(jī)控制器就能體現(xiàn)出步進(jìn)機(jī)在控制方面上的優(yōu)越性能。所以我選擇這樣的畢業(yè)設(shè)計(jì)課題,并且能通過此次設(shè)計(jì)來提高自己軟件編制和硬件電路設(shè)計(jì)的能力。在我完成這次畢業(yè)設(shè)計(jì)的過程中,當(dāng)看到自己將專業(yè)知識用于解決實(shí)際的問題時,那份成就感和喜悅感是難以形容的。但是,在實(shí)際的編程以及調(diào)試程序過程中,我發(fā)現(xiàn)自己所應(yīng)該學(xué)的太多太多。光靠自己在書本上所學(xué)過的這點(diǎn)知識是遠(yuǎn)遠(yuǎn)不夠的,真正地認(rèn)識到了工作就是學(xué)習(xí)的道理。采用此設(shè)計(jì)的步進(jìn)電機(jī)驅(qū)動系統(tǒng),在驅(qū)動二相或四相混合式步進(jìn)電機(jī)時運(yùn)動平穩(wěn),速度快,噪音低,控制精高,而且可選整步

32、半步驅(qū)動。外觀采用鋁鎂合金,散熱性好,價格低廉,可廣泛應(yīng)用于需要驅(qū)動電流小于2A的混合式兩相或四相步進(jìn)電機(jī)的系統(tǒng)中。5 設(shè)計(jì)源程序 (清單)#include "reg51.h" int delay(); /判斷LCD是否可以寫入即忙否(P1.7)void inti_lcd(); /液晶LCD1602初始化void show_lcd(int); /液晶讀顯示void cmd_wr(); /LCD寫控制程序void ShowState(); /LCD狀態(tài)顯示即速度顯示void clock(unsigned int Delay) ; /延時程序void DoSpeed(); /計(jì)

33、算速度void motor_CCW(); /電機(jī)正轉(zhuǎn)void motor_CW(); /電機(jī)反轉(zhuǎn)void key(); /固定檔位按鍵#define uchar unsigned char /無符號字符定義uchar code CW4=0x01,0x02,0x04,0x08; /正轉(zhuǎn)表uchar code CCW4=0x08,0x04,0x02,0x01; /反轉(zhuǎn)表#define RIGHT_RUN 1 /正轉(zhuǎn)值#define LEFT_RUN 0 /反轉(zhuǎn)值sbit RS=0xA0;sbit RW=0xA1;sbit E=0xA2; /LCD1602RS RW E腳分別接于P2.0 P2.1

34、P2.2sbit P0_0=P00;sbit P0_1=P01;sbit P0_2=P02;sbit P0_3=P03;sbit P2_3=P23;sbit P1_7=P17;sbit P3_0=P30; /單片機(jī)的管腳定義#define sfr P1=0x90;#define sfr P0=0x80; /寄存器定義char SpeedChar="SPEED(n/min):" char StateChar="RUN STATE:"char STATE_CW="CW"char STATE_CCW="CCW" /顯示數(shù)

35、組char SPEED3="050" /初始速度設(shè)定unsigned int RunSpeed=50; /初始速度值unsigned char RunState=RIGHT_RUN; /運(yùn)行狀態(tài)main() /主程序/*定時器設(shè)置*/TMOD=0x66; /定時器0,1都為計(jì)數(shù)方式;方式2;EA=1;/開總中斷開啟TH0=0xff;/定時器T0初值FFH;TL0=0xff;ET0=1; /T0中斷開啟TR0=1; /定時器T0開啟TH1=0xff;/定時器T1初值FFH;TL1=0xff;ET1=1; TR1=1; /T1中斷開啟IT0=1;/脈沖方式EX0=1;/開外部中

36、斷0:加速IT1=1;/脈沖方式EX1=1;/開外部中斷1:減速 inti_lcd(); DoSpeed(); ShowState(); while(1) if(P2_3=1) motor_CW(); /電機(jī)正轉(zhuǎn) else if(P2_3=0) motor_CCW(); /電機(jī)反轉(zhuǎn) /*步進(jìn)電機(jī)正轉(zhuǎn)/*/void motor_CW()uchar i; for (i=0; i<4; i+) /一個周期轉(zhuǎn)30度 P0 = CWi; /取數(shù) clock(RunSpeed); / 脈沖延時 /*步進(jìn)電機(jī)反轉(zhuǎn)/*/void motor_CCW() uchar j; for (j=0; j<4

37、; j+) /一個周期轉(zhuǎn)30度 P0 =CCWj; /取數(shù)據(jù) clock(RunSpeed); / 脈沖延時 /定時器0中斷程序:正轉(zhuǎn)void t_0(void) interrupt 1RunState=RIGHT_RUN; P2_3=1; P1=0x01; /清屏 cmd_wr(); ShowState(); /定時器1中斷:反轉(zhuǎn)void t_1(void) interrupt 3RunState=LEFT_RUN; P2_3=0; P1=0x01; cmd_wr(); ShowState(); /中斷0:加速程序void SpeedUp() interrupt 0 if(RunSpeed&

38、gt;=12) RunSpeed=RunSpeed-2; DoSpeed(); P1=0x01; cmd_wr(); ShowState(); /中斷1:減速程序void SpeedDowm() interrupt 2 if(RunSpeed<=100) RunSpeed=RunSpeed+2; DoSpeed(); P1=0x01; cmd_wr(); ShowState();void key() if(P3_0=0) RunSpeed=70; DoSpeed(); P1=0x01; cmd_wr(); ShowState();int delay() /判斷LCD是否忙 int a;s

39、tart: RS=0; RW=1; E=0; for(a=0;a<2;a+); E=1; P1=0xff; if(P1_7=0) return 0; else goto start;void inti_lcd() /設(shè)置LCD方式 P1=0x38; /液晶模式設(shè)置 cmd_wr(); /寫命令 delay(); P1=0x01; /清除 cmd_wr(); delay(); P1=0x0f; /光標(biāo),顯示開啟 cmd_wr(); delay(); P1=0x06; cmd_wr(); delay(); P1=0x0c; cmd_wr(); delay(); void cmd_wr() /

40、寫控制字 RS=0; RW=0; E=0; E=1;void show_lcd(int i) /LCD顯示子程序 P1=i; /將數(shù)據(jù)經(jīng)P1口送入液晶顯示 RS=1; RW=0; E=0; E=1;void ShowState() /顯示狀態(tài)與速度 int i=0; while(SpeedChari!='0') delay(); show_lcd(SpeedChari); i+; delay(); P1=0x80 | 0x0d; cmd_wr(); i=0; while(SPEEDi!='0') delay(); show_lcd(SPEEDi); i+; delay(); P1=0xC0; cmd_wr(); i=0; while(StateChari!='0') delay(); show_lcd(Sta

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論