版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 項目八 鍵盤控制電機方向和轉(zhuǎn)速【教學(xué)目標(biāo)】終極目標(biāo)能利用at89s52單片機及獨立鍵盤,通過c語言程序?qū)崿F(xiàn)鍵盤控制步進電機和直流電機的速度和方向,完成單片機輸入輸出控制系統(tǒng)的設(shè)計、運行及調(diào)試。促成目標(biāo)1. 了解單片機產(chǎn)品開發(fā)的流程;2. 了解步進電機和直流電機結(jié)構(gòu)和工作原理;3. 掌握步進電機和直流電機速度、方向控制關(guān)鍵技術(shù);4. 掌握頭文件的編寫方法;5. 掌握電機速度、方向控制的電路設(shè)計和編程的方法;6. 會利用單片機i/o口實現(xiàn)電機速度、方向控制。8.1 單片機產(chǎn)品開發(fā)單片機產(chǎn)品開發(fā)是為完成某項任務(wù)而研制開發(fā)的單片機應(yīng)用系統(tǒng),是以單片機為核心,配以外圍電路和軟件,能實現(xiàn)確定任務(wù)、功能的
2、實際應(yīng)用系統(tǒng)。根據(jù)不同的用途和要求,單片機產(chǎn)品的系統(tǒng)配置及軟件也有所不同,但它們的開發(fā)流程和方法大致相同。8.1.1 單片機產(chǎn)品的結(jié)構(gòu)單片機產(chǎn)品是由硬件和軟件組成。硬件是指單片機、擴展的存儲器、輸入輸出設(shè)備等硬件部件組成的,軟件是各種工作程序的總稱。一個典型單片機產(chǎn)品結(jié)構(gòu)如圖8-1所示。圖8-1典型單片機產(chǎn)品結(jié)構(gòu)從圖8-1不難看出單片機產(chǎn)品所需要的一般配置: (1)單片機。如at89c51、at89c52、at89s51以及at89s52等單片機。(2)人機交流設(shè)備。輸入設(shè)備有鍵盤和按鍵,輸出設(shè)備有數(shù)碼管、液晶顯示模塊和指示燈等。(3)信號采集的輸入通道。如出租車的測距、測速裝置,溫控系統(tǒng)的溫
3、度傳感器、洗衣機的水位測量等設(shè)備。(4)向操作對象發(fā)出各種控制信號的輸出通道。如空調(diào)啟動壓縮機的開關(guān)電路,控制彩電的頻道切換、顏色、音量等的接口電路。(5)與其他計算機系統(tǒng)或智能設(shè)備實現(xiàn)信息交換,還需配置通信接口電路。如rs-232、rs-485等。(6)有時還需擴展外部ram、eeprom用于存放數(shù)據(jù)。如彩電遙控系統(tǒng)中存放系統(tǒng)數(shù)據(jù)的存儲器。8.1.2 單片機產(chǎn)品開發(fā)流程1確定功能技術(shù)指標(biāo)單片機產(chǎn)品開發(fā)流程是以確定產(chǎn)品的功能和技術(shù)指標(biāo)開始的。首先要細致分析、研究實際問題,明確各項任務(wù)與要求,綜合考慮系統(tǒng)的先進性、可靠性、可維護性以及成本、經(jīng)濟效益,擬訂出合理可行的技術(shù)性能指標(biāo)。2單片機產(chǎn)品總體
4、設(shè)計在對單片機產(chǎn)品進行總體設(shè)計時,應(yīng)根據(jù)單片機產(chǎn)品提出的各項技術(shù)性能指標(biāo),擬訂出性價比最高的一套方案。首先,應(yīng)根據(jù)任務(wù)的繁雜程度和技術(shù)指標(biāo)要求選擇機型。選定機型后,再選擇產(chǎn)品中要用到的其它外圍元器件,如傳感器、執(zhí)行器件等。在總體方案設(shè)計過程中,對軟件和硬件進行分工是一個首要的環(huán)節(jié)。原則上,能夠由軟件來完成的任務(wù)就盡可能用軟件來實現(xiàn),以降低硬件成本,簡化硬件結(jié)構(gòu)。同時,還要求大致規(guī)定各接口電路的地址、軟件的結(jié)構(gòu)和功能、上下位機的通信協(xié)議、程序的駐留區(qū)域及工作緩沖區(qū)等??傮w方案一旦確定,系統(tǒng)的大致規(guī)模及軟件的基本框架就確定了。3硬件設(shè)計硬件設(shè)計是指應(yīng)用系統(tǒng)的電路設(shè)計,包括主機、控制電路、存儲器、i
5、/o接口、a/d和d/a轉(zhuǎn)換電路等。硬件設(shè)計時,應(yīng)考慮留有充分余量,電路設(shè)計力求正確無誤,因為在系統(tǒng)調(diào)試中不易修改硬件結(jié)構(gòu)。硬件電路設(shè)計時應(yīng)注意以下幾個問題:(1)程序存儲器一般可選用容量較大的eprom芯片,如27128(16 kb)、27256(32 kb)或27512(64 kb)等。盡量避免用小容量的芯片組合擴充成大容量的存儲器,程序存儲器容量大些,則編程空間寬裕些,價格相差也不會太多。 (2)數(shù)據(jù)存儲器和i/o接口根據(jù)系統(tǒng)功能的要求,如果需要擴展外部ram或i/o口,那么ram芯片可選用6116(2 kb)、6264(8 kb)或62256(32 kb),原則上應(yīng)盡量減少芯片數(shù)量,使
6、譯碼電路簡單。i/o接口芯片一般選用8155(帶有256 kb靜態(tài)ram)或8255。這類芯片具有口線多、硬件邏輯簡單等特點。若口線要求很少,且僅需要簡單的輸入或輸出功能,則可用不可編程的ttl電路或cmos電路。a/d和d/a電路芯片主要根據(jù)精度、速度和價格等來選用,同時還要考慮與系統(tǒng)的連接是否方便。(3)地址譯碼電路通常采用全譯碼、部分譯碼或線選法,應(yīng)考慮充分利用存儲空間和簡化硬件邏輯等方面的問題。mcs-51系統(tǒng)有充分的存儲空間,包括64 kb程序存儲器和64 kb數(shù)據(jù)存儲器,所以在一般的控制應(yīng)用系統(tǒng)中,主要是考慮簡化硬件邏輯。當(dāng)存儲器和i/o芯片較多時,可選用專用譯碼器74s138或7
7、4ls139等。(4)總線驅(qū)動能力mcs-51系列單片機的外部擴展功能很強,但4個8位并行口的負載能力是有限的。p0口能驅(qū)動8個ttl電路,p1p3口只能驅(qū)動4個ttl電路。在實際應(yīng)用中,這些端口的負載不應(yīng)超過總負載能力的70%,以保證留有一定的余量。如果滿載,會降低系統(tǒng)的抗干擾。在外接負載較多的情況下,如果負載是mos芯片,因負載消耗電流很小,所以影響不大。如果驅(qū)動較多的ttl電路,則應(yīng)采用總線驅(qū)動電路,以提高端口的驅(qū)動能力和系統(tǒng)的抗干擾能力。數(shù)據(jù)總線宜采用雙向8路三態(tài)緩沖器74ls245作為總線驅(qū)動器,地址和控制總線可采用單向8路三態(tài)緩沖區(qū)74ls244作為單向總線驅(qū)動器。(5)系統(tǒng)速度匹
8、配mcs-51系列單片機時鐘頻率可在212 mhz之間任選。在不影響系統(tǒng)技術(shù)性能的前提下,時鐘頻率選擇低一些為好,這樣可降低系統(tǒng)中對元器件工作速度的要求,從而提高系統(tǒng)的可靠性。4抗干擾措施單片機產(chǎn)品的工作環(huán)境往往都是具有多種干擾源的現(xiàn)場,抗干擾措施在單片機產(chǎn)品設(shè)計中顯得尤為重要。根據(jù)干擾源引入的途徑,抗干擾措施可以從以下兩個方面考慮。 (1)電源供電系統(tǒng)為了克服電網(wǎng)以及來自系統(tǒng)內(nèi)部其它部件的干擾,可采用隔離變壓器、交流穩(wěn)壓、線濾波器、穩(wěn)壓電路各級濾波等防干擾措施。(2)電路上的考慮為了進一步提高系統(tǒng)的可靠性,在硬件電路設(shè)計時,應(yīng)采取一系列防干擾措施:1)大規(guī)模ic芯片電源供電端vcc都應(yīng)加高頻
9、濾波電容,根據(jù)負載電流的情況,在各級供電節(jié)點還應(yīng)加足夠容量的退耦電容;2)開關(guān)量i/o通道與外界的隔離可采用光電耦合器件,特別是與繼電器、可控硅等連接的通道,一定要采用隔離措施;3)可采用cmos器件提高工作電壓(+15 v),這樣干擾門限也相應(yīng)提高;4)傳感器后級的變送器盡量采用電流型傳輸方式,因電流型比電壓型抗干擾能力強;5)電路應(yīng)有合理的布線及接地方式;6)與環(huán)境干擾的隔離可采用屏蔽措施。 5軟件設(shè)計單片機產(chǎn)品的軟件設(shè)計是產(chǎn)品研制過程中任務(wù)最繁重的一項工作,難度也比較大。對于某些較復(fù)雜的應(yīng)用系統(tǒng),不僅要使用匯編語言來編程,有時還要使用高級語言。單片機產(chǎn)品的軟件主要包括兩大部分:用于管理單
10、片機工作的監(jiān)控程序和用于執(zhí)行實際具體任務(wù)的功能程序。對于監(jiān)控程序,應(yīng)盡可能利用現(xiàn)成的監(jiān)控程序。為了適應(yīng)各種應(yīng)用的需要,現(xiàn)代的單片機開發(fā)系統(tǒng)的監(jiān)控軟件功能相當(dāng)強,并附有豐富的實用子程序,可供用戶直接調(diào)用,例如鍵盤管理程序、顯示程序等。因此,在設(shè)計系統(tǒng)硬件邏輯和確定應(yīng)用系統(tǒng)的操作方式時,就應(yīng)充分考慮這一點。 這樣可大大減少軟件設(shè)計的工作量,提高編程效率。對于功能程序要根據(jù)產(chǎn)品的功能要求來編程序。例如,外部數(shù)據(jù)采集、控制算法的實現(xiàn)、外設(shè)驅(qū)動、故障處理及報警程序等。單片機產(chǎn)品的軟件設(shè)計千差萬別,不存在統(tǒng)一模式。進行軟設(shè)計時,盡可能采用模塊化結(jié)構(gòu)。根據(jù)系統(tǒng)軟件的總體構(gòu)思,按照先粗后細的方法,把整個系統(tǒng)軟
11、件劃分成多個功能獨立、大小適當(dāng)?shù)哪K。應(yīng)明確規(guī)定各模塊的功能,盡量使每個模塊功能單一,各模塊間的接口信息簡單、完備,接口關(guān)系統(tǒng)一,盡可能使各模塊間的聯(lián)系減少到最低限度。這樣,各個模塊可以分別獨立設(shè)計、編制和調(diào)試,最后再將各個程序模塊連接成一個完整的程序進行總調(diào)試。6單片機產(chǎn)品調(diào)試單片機產(chǎn)品開發(fā)必須經(jīng)過調(diào)試階段,只有經(jīng)過調(diào)試才能發(fā)現(xiàn)問題,改正錯誤,最終完成開發(fā)任務(wù)。實際上,對于較復(fù)雜的程序,大多數(shù)情況下都不可能一次性就調(diào)試成功,即使是資深設(shè)計人員也是如此。單片機產(chǎn)品調(diào)試包括硬件調(diào)試和軟件調(diào)試。硬件調(diào)試的任務(wù)是排除系統(tǒng)的硬件電路故障,包括設(shè)計性錯誤和工藝性故障。軟件調(diào)試是利用開發(fā)工具進行在線仿真調(diào)
12、試,除發(fā)現(xiàn)和解決程序錯誤外,也可以發(fā)現(xiàn)硬件故障。程序調(diào)試一般是一個模塊一個模塊地進行,一個子程序一個子程序地調(diào)試,最后聯(lián)起來統(tǒng)調(diào)。利用開發(fā)工具的單步和斷點運行方式,通過檢查應(yīng)用系統(tǒng)的cpu現(xiàn)場、ram和sfr的內(nèi)容以及i/o口的狀態(tài),來檢查程序的執(zhí)行結(jié)果和系統(tǒng)i/o設(shè)備的狀態(tài)變化是否正常,從中發(fā)現(xiàn)程序的邏輯錯誤、轉(zhuǎn)移地址錯誤以及隨機的錄入錯誤等。 也可以發(fā)現(xiàn)硬件設(shè)計與工藝錯誤和軟件算法錯誤。在調(diào)試過程中,要不斷調(diào)整、修改系統(tǒng)的硬件和軟件,直到其正確為止。聯(lián)機調(diào)試運行正常后,將軟件固化到eprom中,脫機運行,并到生產(chǎn)現(xiàn)場投入實際工作,檢驗其可靠性和抗干擾能力,直到完全滿足要求,單片機產(chǎn)品才算研
13、制成功。8.2 工作模塊21 步進電機控制系統(tǒng)設(shè)計與實現(xiàn)【工作任務(wù)】利用at89s52單片機及獨立鍵盤控制步進電機的速度和方向。獨立鍵盤有反轉(zhuǎn)按鍵、加速按鍵、減速按鍵和正轉(zhuǎn)按鍵。步進電機電氣參數(shù):工作電壓4.56.5,步進角是18。8.2.1 步進電機控制技術(shù)步進電機的結(jié)構(gòu)及基本知識點在工作模塊5中已經(jīng)介紹過了,在這里只對實現(xiàn)步進電機速度和方向控制的關(guān)鍵技術(shù)進行介紹。1速度控制技術(shù)本工作模塊使用的步進電機的步進角是18,由于步進電機旋轉(zhuǎn)角度與輸入脈沖數(shù)目成正比,所以輸入20個脈沖信號,步進電機就會旋轉(zhuǎn)20個步進角,且剛好轉(zhuǎn)一圈(2018=360)。那么怎么控制步進電機的轉(zhuǎn)速呢?下面我們先分析如
14、何實現(xiàn)步進電機轉(zhuǎn)速為30轉(zhuǎn)/分和轉(zhuǎn)速為60轉(zhuǎn)/分。(1)轉(zhuǎn)速為30轉(zhuǎn)/分旋轉(zhuǎn)一圈的時間是60s/30圈=2s,旋轉(zhuǎn)一個步進角的時間是2s/20=100ms(每圈20個步進角)。也就是說給一個脈沖信號,旋轉(zhuǎn)一個步進角,延時100ms,再給一個脈沖信號,旋轉(zhuǎn)一個步進角,延時100ms,這樣就可以獲得轉(zhuǎn)速為30轉(zhuǎn)/分。(2)轉(zhuǎn)速為60轉(zhuǎn)/分旋轉(zhuǎn)一圈的時間是60s/60圈=1s,旋轉(zhuǎn)一個步進角的時間是1s/20=50ms(每圈20個步進角)。和轉(zhuǎn)速為30轉(zhuǎn)/分比較,脈沖信號之間的延時時間為50ms,延時時間變短,轉(zhuǎn)速提高了。根據(jù)以上分析,我們只要改變脈沖信號之間的延時時間,即改變每步之間的延時時間,便
15、可控制步進電機的轉(zhuǎn)速。延時時間變短,轉(zhuǎn)速提高,延時時間變長,轉(zhuǎn)速降低。注意:步進電機的負載轉(zhuǎn)矩與轉(zhuǎn)速成反比,轉(zhuǎn)速越快負載轉(zhuǎn)矩越小,當(dāng)轉(zhuǎn)速快至其極限時,步進電機不再旋轉(zhuǎn)。所以每走一步,必須延時一段時間。2. 方向控制技術(shù)本工作模塊是采用1相勵磁順序,四種勵磁狀態(tài)為一個循環(huán)。只要改變勵磁順序,就可以改變步進電機旋轉(zhuǎn)方向。(1)正轉(zhuǎn)時,1相勵磁順序為:abcd(2)反轉(zhuǎn)時,1相勵磁順序為:dcba8.2.2 步進電機控制系統(tǒng)電路設(shè)計按照工作任務(wù)要求,步進電機控制系統(tǒng)電路是由at89s52單片機最小應(yīng)用系統(tǒng)、步進電機驅(qū)動電路、鍵盤電路等模塊構(gòu)成。1鍵盤模塊設(shè)計步進電機控制系統(tǒng)具有反轉(zhuǎn)、加速、減速和正轉(zhuǎn)
16、個功能,可以用個按鍵實現(xiàn)。由于按鍵數(shù)目少,鍵盤模塊設(shè)計采用獨立鍵盤。這個按鍵分別接到p2口的p2.0、 p2.1 、p2.2和 p2.3引腳,為反轉(zhuǎn)按鍵、加速按鍵、減速按鍵和正轉(zhuǎn)按鍵。如圖8-2所示。圖8-2 鍵盤電路2步進電機驅(qū)動模塊設(shè)計由于步進電機的功率較大,步進電機驅(qū)動電路設(shè)計采用了高電壓、大電流的uln2003a,uln2003a的詳細介紹請參閱項目二技能拓展部分。p3口的p3.0、 p3.1 、p3.2和 p3.3四個引腳通過步進電機驅(qū)動電路分別接在步進電機的a、b、c、d。如圖8-3所示。圖8-3 步進電機驅(qū)動電路通過前面的鍵盤模塊電路和步進電機驅(qū)動模塊電路設(shè)計,運行proteus
17、軟件,新建“步進電機控制系統(tǒng)” 設(shè)計文件。按圖8-2和圖8-3所示放置并編輯at89s52、crystal、cap、cap-elec、res、motor-stepper、uln2003a、74ls04及button等元器件。完成步進電機控制系統(tǒng)電路設(shè)計后,進行電氣規(guī)則檢測,直至檢測成功。如圖8-4所示。8.2.3步進電機控制系統(tǒng)程序設(shè)計步進電機控制系統(tǒng)程序由main.h頭文件、頭文件包含和定義全局變量、步進電機運行函數(shù)run()以及主函數(shù)組成。1編寫main.h頭文件為了程序的可讀性和編程方便,在main.h頭文件里面對用到的數(shù)據(jù)類型、接在p3口上步進電機以及接在p3口上按鍵進行宏定義。宏定義
18、如下:#ifndef _main_h_#define _main_h_#define uint unsigned int#define uchar unsigned char#define step_moto_port p3#define fz_key (!(p2_0)#define up_key (!(p2_1)#define down_key (!(p2_2)#define zz_key (!(p2_3)#endif2頭文件包含和定義全局變量#include #include uint speed=1000; /設(shè)置延時參數(shù)初值為最小值,既轉(zhuǎn)速最快uint speed_change=100
19、0; /延時參數(shù)初值uchar dir=0; /設(shè)置方向,dir=1為反轉(zhuǎn),dir=0為正轉(zhuǎn)3步進電機運行函數(shù)run()這里采用的是1相勵磁順序,控制狀態(tài)與p3口的控制碼對應(yīng)關(guān)系如表8-1所示。表8-1 控制狀態(tài)與p3口的控制碼的對應(yīng)關(guān)系控制狀態(tài)p3口控制碼p3.3p3.2p3.1p3.0d相b相c相a相a相繞組通電01h0001b相繞組通電02h0010c相繞組通電04h0100d相繞組通電08h1000由表8-1可以看出,正轉(zhuǎn)時,初始控制碼為0x01,然后控制碼左移1位,獲得下一位控制碼。反轉(zhuǎn)時,初始控制碼為0x08,然后控制碼右移1位,獲得下一位控制碼。代碼如下: void run(vo
20、id) speed = speed_change; while(speed-); /延時 if(dir = 1) /* dir = 0,正轉(zhuǎn)*/ if(step_moto_port = 0x08) /如果控制碼= 0x08(一個循環(huán)完成),取初始控制碼 step_moto_port=0x01; else /左移1位,獲得下一位控制碼,并從p3口輸出step_moto_port = 1; else /* dir = 1,反轉(zhuǎn)*/ if(step_moto_port = 0x01) /如果控制碼= 1; 4步進電機主函數(shù)main()void main(void) step_moto_port=0x
21、01; while(1) if(fz_key) / 設(shè)置反轉(zhuǎn) dir = 1; while(left_key) run(); /等待按鍵釋放 if(zz_key) / 設(shè)置正轉(zhuǎn) dir = 0; while(right_key)run(); if(up_key) / 加速 if(speed_change = 2000) /延時參數(shù)減量為1000,每按一次up_key鍵減少1000 speed_change = speed_change - 1000; while(up_key)run(); if(down_key) / 減速 if(speed_change 20000) /延時參數(shù)增量為100
22、0,每按一次down_key鍵增加1000 speed_change = speed_change + 1000; while(down_key) run(); run(); / end while(1) / end main步進電機控制系統(tǒng)程序設(shè)計好以后,打開“步進電機控制系統(tǒng)”proteus電路,加載 “步進電機控制系統(tǒng).hex”文件。進行仿真運行,觀察步進電機運行是否與設(shè)計要求相符。如圖8-4所示。圖8-4 步進電機控制系統(tǒng)仿真運行8.3工作模塊22 直流電機控制系統(tǒng)設(shè)計與實現(xiàn)【工作任務(wù)】利用at89s52單片機及獨立鍵盤控制直流電機的速度和方向。獨立鍵盤有反轉(zhuǎn)按鍵、加速按鍵、減速按鍵和
23、正轉(zhuǎn)按鍵。直流電機電氣參數(shù):額定工作電壓5.0。8.3.1 直流電機控制技術(shù)1認識直流電機永磁式換向器直流電機,是應(yīng)用很廣泛的一種,只要在它上面加適當(dāng)電壓電機就轉(zhuǎn)動。(1)結(jié)構(gòu)與工作原理永磁式換向器直流電機是由定子(主磁極)、轉(zhuǎn)子(繞組線圈)、換向片(又稱整流子)、電刷等組成,定子作用是產(chǎn)生磁場,如圖8-5所示。圖8-5 直流電機結(jié)構(gòu)直流電壓加在電刷上,經(jīng)換向片加到電樞繞組(轉(zhuǎn)子線圈),使電樞導(dǎo)體有電流流過,由于電機內(nèi)部有定子磁場存在,所以電樞導(dǎo)體將受到電磁力 f 的作用(左手定則) ,電樞導(dǎo)體產(chǎn)生的電磁力作用于轉(zhuǎn)子,使轉(zhuǎn)子以n(轉(zhuǎn)/分)旋轉(zhuǎn),以便拖動機械負載。通過左手定則,可以判別電磁力f方
24、向(即轉(zhuǎn)子旋轉(zhuǎn)方向),如圖8-6所示。圖8-6轉(zhuǎn)子旋轉(zhuǎn)方向也就是說,轉(zhuǎn)于是在定子磁場作用下,得到轉(zhuǎn)矩而旋轉(zhuǎn)起來。當(dāng)它轉(zhuǎn)動時,由于磁場的相互作用,也將產(chǎn)生反電動勢,它的大小正比于轉(zhuǎn)子的速度,方向和所加的直流電壓相反。(2)永磁式換流器電機特點1)當(dāng)電機負載固定時,電機轉(zhuǎn)速正比于所加的電源電壓。 2)當(dāng)電機直流電源固定時,電機的工作電流正比于轉(zhuǎn)予負載的大小。 3)加于電機的有效電壓,等于外加直流電壓減去反電動勢。因此當(dāng)用固定電壓驅(qū)動電機時,電機的速度趨向于自穩(wěn)定。因為負載增加時,轉(zhuǎn)子有慢下來的傾向,于是反電動勢減少,而使有效電壓增加,反過來又將使轉(zhuǎn)子有快起來的傾向,所以總的效果使速度穩(wěn)定。 4)當(dāng)
25、轉(zhuǎn)子靜止時,反電動勢為零,電機電流最大。最大電流出現(xiàn)在剛起動的時候。 5)轉(zhuǎn)子轉(zhuǎn)動的方向,可由電機上所加電壓的極性來控制。 6)體積小,重量輕。起動轉(zhuǎn)矩大。 由于具備上述的那些特點,所以在醫(yī)療器械、小型機床、電子儀器、計算機、氣象探空儀、探礦測井、電動工具、家用電器及電子玩具等各個方面,都得到廣泛的應(yīng)用。對這種永磁式電機的控制,主要有電機的起停控制、方向控制、可變速度控制和速度的穩(wěn)定控制。2速度控制技術(shù)調(diào)節(jié)直流電機轉(zhuǎn)速最方便有效的調(diào)速方法是對電樞(即轉(zhuǎn)子線圈)電壓u進行控制??刂齐妷旱姆椒ㄓ卸喾N,廣泛應(yīng)用脈寬調(diào)制pwm技術(shù)來控制直流電機電樞的電壓。所謂pwm控制技術(shù),就是利用半導(dǎo)體器件的導(dǎo)通與
26、關(guān)斷,把直流電壓變成電壓脈沖序列,通過控制電壓脈沖寬度或周期以達到變壓的目的。3方向控制技術(shù)直流電機的轉(zhuǎn)子轉(zhuǎn)動方向可由直流電機上所加電壓的極性來控制,可用橋式電路來控制直流電機的轉(zhuǎn)動方向。控制直流電機正反轉(zhuǎn)的橋式驅(qū)動電路有單電源和雙電源兩種驅(qū)動方式,通常采用單電源的驅(qū)動方式,就可以滿足實際的應(yīng)用需要,所以這里只介紹單電源的驅(qū)動方式。單電源方式的橋式驅(qū)動電路又稱為全橋方式驅(qū)動或者h橋方式驅(qū)動,如圖8-7所示。圖8-7 h橋方式驅(qū)動電路圖8-7中的二極管稱為續(xù)流二極管,主要作用是消除直流電機所產(chǎn)生的反向電動勢。三極管是pnp三極管,基極為高電平時三極管關(guān)斷,為低電平時三極管導(dǎo)通。直流電機正轉(zhuǎn)時三極
27、管q1和q4導(dǎo)通,反轉(zhuǎn)時三極管q2和q3導(dǎo)通,在這兩種情況下,加在直流電機兩端的電壓極性相反。當(dāng)四個三極管全部關(guān)斷時,直流電機停止轉(zhuǎn)動。若是q1與q3關(guān)斷、q2與q4導(dǎo)通時,直流電機處于短路制動狀態(tài),將立即停止轉(zhuǎn)動。這四種狀態(tài)所對應(yīng)的h橋式驅(qū)動電路狀態(tài)如圖8-8所示。正轉(zhuǎn) 反轉(zhuǎn) 停止 制動圖8-8 直流電機和h橋式驅(qū)動電路四種對應(yīng)狀態(tài)8.3.2直流電機控制系統(tǒng)電路設(shè)計按照工作任務(wù)要求,直流電機控制系統(tǒng)電路是由at89s52單片機最小應(yīng)用系統(tǒng)、h橋式驅(qū)動電路、獨立鍵盤及直流電機構(gòu)成。p3口的p3.0、 p3.1 、p3.4和 p3.5四個引腳分別接在h橋式驅(qū)動電路的pwm1、pwm2、pwm3和
28、pwm4。p2口的p2.0、 p2.1 、p2.2和 p2.3四個引腳分別接反轉(zhuǎn)按鍵、加速按鍵、減速按鍵和正轉(zhuǎn)按鍵。直流電機控制系統(tǒng)電路設(shè)計如圖8-9所示。圖8-9 直流電機控制系統(tǒng)電路運行proteus軟件,新建“直流電機控制系統(tǒng)” 設(shè)計文件。按圖8-9所示放置并編輯at89s52、crystal、cap、cap-elec、res、motor、1n4148 (二極管)、2n5771(三極管)、button。等元器件。完成直流電機控制系統(tǒng)電路設(shè)計后,進行電氣規(guī)則檢測,直至檢測成功。8.3.3直流電機控制系統(tǒng)程序設(shè)計直流電機有正轉(zhuǎn)、反轉(zhuǎn)、停止和制動四種運行狀態(tài)。在這四種運行狀態(tài)下,p3口引腳與h
29、橋式驅(qū)動電路對應(yīng)關(guān)系如表8-2所示。表8-2 運行狀態(tài)與p3口引腳的對應(yīng)關(guān)系運行狀態(tài)p3.5p3.4p3.1p3.0pwm4(q4)pwm3(q3)pwm2(q2)pwm1(q1)正轉(zhuǎn)0110反轉(zhuǎn)1001停止1111制動0101直流電機控制系統(tǒng)程序主要由頭文件、初始化、按鍵功能處理、直流電機運行中斷處理等組成。1編寫main.h頭文件在這里只給出與工作模塊21的main.h頭文件不一樣部分。電機驅(qū)動接口是接在p3.0、p3.1、p3.4和p3.5,為了以后能對殊功能寄存器p3口這4個尋址位進行操作,定義了4個sbit類型位變量,代碼如下:#define _nop() _nop_()sbit p
30、wm1 = p30;sbit pwm4 = p35;sbit pwm2 = p31;sbit pwm3 = p34;2頭文件包含和定義全局變量#include #include /程序中使用了_nop_(),此函數(shù)后面介紹#include bit moto_dir=0; /定義位變量,為0正轉(zhuǎn),為1反轉(zhuǎn)uchar irq_count; /中斷次數(shù)計數(shù)器uchar irq_count_t; /設(shè)置需要中斷的次數(shù)uchar pwm_time_h; /設(shè)置輸出高電平的寬度uchar pwm_time_l; /設(shè)置輸出低電平的寬度bit i=0; / i=1輸出高電平狀態(tài),i=1輸出低電平狀態(tài)3直流電
31、機控制系統(tǒng)初始化/*使q1、q2、q3、q4同時關(guān)斷,電機處于停止?fàn)顟B(tài)*/pwm1=1; pwm2=1; pwm3=1; pwm4=1;irq_count=0; /中斷次數(shù)計數(shù)器清0i=0;pwm_time_h=80; /設(shè)置占空比為1:5,pwm脈沖周期是100mspwm_time_l=20;/*定時器t1初始化*/et1=1; / 開t1中斷tmod=0x11; / t1都為方式1計時*/th1=0xfc; tl1=0x18; / t1初值,定時時間1ms(12mhz)tr1=1; / 定時器啟動ea=1; / 開總中斷4直流電機控制系統(tǒng)按鍵功能處理(1)反轉(zhuǎn)按鍵處理if(fz_key)
32、shortdelay(); if(fz_key) / 延時去抖 moto_dir=1; pwm3=0; pwm4=1; while(fz_key); /等待fz_key釋放 / end if(fz_key)(2)正轉(zhuǎn)按鍵處理if(zz_key)shortdelay(); if(zz_key) / 延時去抖 moto_dir=0; pwm3=1; pwm4=0; while(zz_key); /等待zz_key釋放 / end if(zz_key)(3)加速按鍵處理 if(up_key) shortdelay(); if(up_key) / 延時去抖 if(pwm_time_h 10) /最大占
33、空比為9:10 pwm_time_h-; pwm_time_l = 100-pwm_time_h; / end if(up_key) while(up_key); / end if(up_key)(4)減速按鍵處理if(down_key) shortdelay(); if(down_key) / 延時去抖 if(pwm_time_h =irq_count_t) /判斷中斷次數(shù)是否到 irq_count=0; /計數(shù)器清0i=i; /高電平或低電平狀態(tài)標(biāo)志轉(zhuǎn)換 if(i=1) irq_count_t = pwm_time_h; else irq_count_t = pwm_time_l; if(
34、moto_dir=1) pwm2=pwm2; pwm1=1; else pwm2=1; pwm1=pwm1; 直流電機控制系統(tǒng)程序設(shè)計好以后,打開“直流電機控制系統(tǒng)”proteus電路,加載 “直流電機控制系統(tǒng).hex”文件。進行仿真運行,觀察直流電機運行是否與設(shè)計要求相符。8.4 技能拓展 步進電機智能控制步進電機是利用輸入數(shù)字信號轉(zhuǎn)換成機械能量的電氣設(shè)備,由于步進電機旋轉(zhuǎn)角度與輸入脈沖數(shù)目成正比,只要控制輸入的脈沖數(shù)目便可控制步進電機轉(zhuǎn)動角度。因此,常用于精確定位和精確定速,如機器人均使用步進電機作動力,并且可以精確控制機器人的動作。8.4.1步進電機智能控制思路通過工作模塊5和工作模塊2
35、1的學(xué)習(xí),我們已經(jīng)知道了步進電機必須加上驅(qū)動電路才能轉(zhuǎn)動,驅(qū)動電路的信號輸入端必須輸入脈沖信號,若無脈沖輸入時,轉(zhuǎn)子保持一定的位置,維持靜止?fàn)顟B(tài);反之,若加入適當(dāng)?shù)拿}沖信號時,轉(zhuǎn)子則會以一定的角度轉(zhuǎn)動,如果加入連續(xù)脈沖時,則轉(zhuǎn)子旋轉(zhuǎn)的角度與脈沖頻率成正比。為此,我們掌握了如何使用按鍵對步進電機進行方向和轉(zhuǎn)速控制。但是我們?nèi)绾螌Σ竭M電機進行精確定位和精確定速呢?由于步進電機是一種將電脈沖轉(zhuǎn)化為角位移的執(zhí)行機構(gòu)。當(dāng)步進驅(qū)動器接收到一個脈沖信號,它就驅(qū)動步進電機按設(shè)定的方向轉(zhuǎn)動一個固定的角度,它的旋轉(zhuǎn)是以固定的角度一步一步運行的。這樣,我們就可以通過以下兩個方面對步進電機進行智能控制,達到精確定位和
36、精確定速的目的。(1)通過控制脈沖個數(shù)來控制角位移量,從而達到準(zhǔn)確定位的目的;(2)通過控制脈沖頻率來控制電機轉(zhuǎn)動的速度和加速度,從而達到精確定速和調(diào)速的目的。作為一種數(shù)字伺服執(zhí)行元件,步進電機具有結(jié)構(gòu)簡單、運行可靠、控制方便、控制性能好等優(yōu)點,步進電機智能控制可以廣泛應(yīng)用在數(shù)控機床、機器人、自動化儀表等領(lǐng)域。8.4.2步進電機智能控制組成步進電機智能控制主要包括:單片機、鍵盤輸入模塊、顯示模塊以及步進電機動控制模塊等部分。步進電機智能控制的結(jié)構(gòu)框圖如圖8-10所示。圖8-10 步進電機智能控制結(jié)構(gòu)框圖鍵盤輸入模塊主要完成數(shù)據(jù)輸入及控制輸入;顯示模塊主要對步進電機設(shè)置和運行狀態(tài)進行顯示(如顯示
37、步進電機設(shè)置要旋轉(zhuǎn)的數(shù)圈以及正反轉(zhuǎn)指示等);步進電機控制模塊主要是由單片機輸出控制碼到驅(qū)動電路控制步進電機的運轉(zhuǎn)?!炯寄苡?xùn)練8-1】步進電機智能控制設(shè)計設(shè)計一個步進電機智能控制。要求能從鍵盤上輸入步進電機轉(zhuǎn)數(shù),控制步進電機的正、反轉(zhuǎn)及啟停,并顯示轉(zhuǎn)數(shù)。1鍵盤設(shè)計鍵盤采用的是矩陣式鍵盤,鍵盤電路設(shè)計參考工作模塊10,鍵盤功能分配如下:(1)0-9:為數(shù)字鍵(2)*:正逆轉(zhuǎn)轉(zhuǎn)數(shù)設(shè)定完成后,按“*”啟動步進馬達。(3)#:清除設(shè)定為正轉(zhuǎn)及轉(zhuǎn)數(shù)為00。(4)a:設(shè)定正逆轉(zhuǎn)。按“a”鍵則led亮,表示反轉(zhuǎn),再按則led指示燈滅,表示正轉(zhuǎn),再按led亮。2數(shù)碼管顯示模塊設(shè)計數(shù)碼管顯示模塊電路采用硬件譯碼輸
38、出字型碼控制顯示內(nèi)容,數(shù)碼管是陽極數(shù)碼管,七段字形譯碼器用的是74ls47,電路設(shè)計參考技能訓(xùn)練3-2。3. 步進電機控制模塊設(shè)計步進電機控制模塊電路采用有施密特觸發(fā)器的六反方器74ls14和高電壓、大電流的達靈頓晶體管數(shù)組產(chǎn)品uln2003a,電路設(shè)計參考工作模塊21。4. 步進電機智能控制電路實現(xiàn)步進電機控制模塊電路、鍵盤電路、數(shù)碼管顯示模塊電路分別接在at89s52單片機的p0口、p1口、p2口,接在p3.0的led是步進電機正反轉(zhuǎn)的指示燈,步進電機智能控制電路設(shè)計如圖8-11所示。圖8-11步進電機智能控制電路5步進電機智能控制工作過程由鍵盤輸入轉(zhuǎn)數(shù),設(shè)定正反轉(zhuǎn)后,按確認鍵。單片機則根據(jù)設(shè)定由p0口送出控制碼經(jīng)74ls14和uln2003a達林頓管驅(qū)動步進電機轉(zhuǎn)動。同時,l
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 貴州城市職業(yè)學(xué)院《數(shù)字圖像處理及應(yīng)用》2023-2024學(xué)年第一學(xué)期期末試卷
- 貴陽職業(yè)技術(shù)學(xué)院《中學(xué)英語教學(xué)研究方法》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025廣東省安全員《B證》考試題庫
- 2025年重慶市安全員-A證考試題庫附答案
- 廣州珠江職業(yè)技術(shù)學(xué)院《惡意代碼調(diào)查技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年江西省安全員B證(項目經(jīng)理)考試題庫
- 廣州應(yīng)用科技學(xué)院《手機多媒體開發(fā)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025青海建筑安全員A證考試題庫
- 廣州衛(wèi)生職業(yè)技術(shù)學(xué)院《多媒體信息處理與傳輸》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣州鐵路職業(yè)技術(shù)學(xué)院《動畫設(shè)計原理》2023-2024學(xué)年第一學(xué)期期末試卷
- 網(wǎng)球技術(shù)與戰(zhàn)術(shù)-華東師范大學(xué)中國大學(xué)mooc課后章節(jié)答案期末考試題庫2023年
- 現(xiàn)代科學(xué)技術(shù)概論知到章節(jié)答案智慧樹2023年成都師范學(xué)院
- HLB值的實驗測定方法
- 2023年《病歷書寫基本規(guī)范》年度版
- 代理記賬機構(gòu)代理記賬業(yè)務(wù)規(guī)范
- GB/T 31227-2014原子力顯微鏡測量濺射薄膜表面粗糙度的方法
- GB/T 18209.2-2010機械電氣安全指示、標(biāo)志和操作第2部分:標(biāo)志要求
- 煤礦水害事故防治
- GA/T 1217-2015光纖振動入侵探測器技術(shù)要求
- 建設(shè)工程竣工驗收消防設(shè)計質(zhì)量檢查報告(填寫范本)
- 編程貓-教學(xué)設(shè)計
評論
0/150
提交評論