

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、.項(xiàng)目八 鍵盤控制電機(jī)方向和轉(zhuǎn)速【教學(xué)目標(biāo)】終極目標(biāo)能利用AT89S52單片機(jī)及獨(dú)立鍵盤,通過C語言程序?qū)崿F(xiàn)鍵盤控制步進(jìn)電機(jī)和直流電機(jī)的速度和方向,完成單片機(jī)輸入輸出控制系統(tǒng)的設(shè)計(jì)、運(yùn)行及調(diào)試。促成目標(biāo)1. 了解單片機(jī)產(chǎn)品開發(fā)的流程;2. 了解步進(jìn)電機(jī)和直流電機(jī)結(jié)構(gòu)和工作原理;3. 掌握步進(jìn)電機(jī)和直流電機(jī)速度、方向控制關(guān)鍵技術(shù);4. 掌握頭文件的編寫方法;5. 掌握電機(jī)速度、方向控制的電路設(shè)計(jì)和編程的方法;6. 會利用單片機(jī)I/O口實(shí)現(xiàn)電機(jī)速度、方向控制。8.1 單片機(jī)產(chǎn)品開發(fā)單片機(jī)產(chǎn)品開發(fā)是為完成某項(xiàng)任務(wù)而研制開發(fā)的單片機(jī)應(yīng)用系統(tǒng),是以單片機(jī)為核心,配以外圍電路和軟件,能實(shí)現(xiàn)確定任務(wù)、功能的
2、實(shí)際應(yīng)用系統(tǒng)。根據(jù)不同的用途和要求,單片機(jī)產(chǎn)品的系統(tǒng)配置及軟件也有所不同,但它們的開發(fā)流程和方法大致相同。8.1.1 單片機(jī)產(chǎn)品的結(jié)構(gòu)單片機(jī)產(chǎn)品是由硬件和軟件組成。硬件是指單片機(jī)、擴(kuò)展的存儲器、輸入輸出設(shè)備等硬件部件組成的,軟件是各種工作程序的總稱。一個(gè)典型單片機(jī)產(chǎn)品結(jié)構(gòu)如圖8-1所示。圖8-1典型單片機(jī)產(chǎn)品結(jié)構(gòu)從圖8-1不難看出單片機(jī)產(chǎn)品所需要的一般配置: (1)單片機(jī)。如AT89C51、AT89C52、AT89S51以及AT89S52等單片機(jī)。(2)人機(jī)交流設(shè)備。輸入設(shè)備有鍵盤和按鍵,輸出設(shè)備有數(shù)碼管、液晶顯示模塊和指示燈等。(3)信號采集的輸入通道。如出租車的測距、測速裝置,溫控系統(tǒng)的溫
3、度傳感器、洗衣機(jī)的水位測量等設(shè)備。(4)向操作對象發(fā)出各種控制信號的輸出通道。如空調(diào)啟動壓縮機(jī)的開關(guān)電路,控制彩電的頻道切換、顏色、音量等的接口電路。(5)與其他計(jì)算機(jī)系統(tǒng)或智能設(shè)備實(shí)現(xiàn)信息交換,還需配置通信接口電路。如RS-232、RS-485等。(6)有時(shí)還需擴(kuò)展外部RAM、EEPROM用于存放數(shù)據(jù)。如彩電遙控系統(tǒng)中存放系統(tǒng)數(shù)據(jù)的存儲器。8.1.2 單片機(jī)產(chǎn)品開發(fā)流程1確定功能技術(shù)指標(biāo)單片機(jī)產(chǎn)品開發(fā)流程是以確定產(chǎn)品的功能和技術(shù)指標(biāo)開始的。首先要細(xì)致分析、研究實(shí)際問題,明確各項(xiàng)任務(wù)與要求,綜合考慮系統(tǒng)的先進(jìn)性、可靠性、可維護(hù)性以及成本、經(jīng)濟(jì)效益,擬訂出合理可行的技術(shù)性能指標(biāo)。2單片機(jī)產(chǎn)品總體
4、設(shè)計(jì)在對單片機(jī)產(chǎn)品進(jìn)行總體設(shè)計(jì)時(shí),應(yīng)根據(jù)單片機(jī)產(chǎn)品提出的各項(xiàng)技術(shù)性能指標(biāo),擬訂出性價(jià)比最高的一套方案。首先,應(yīng)根據(jù)任務(wù)的繁雜程度和技術(shù)指標(biāo)要求選擇機(jī)型。選定機(jī)型后,再選擇產(chǎn)品中要用到的其它外圍元器件,如傳感器、執(zhí)行器件等。在總體方案設(shè)計(jì)過程中,對軟件和硬件進(jìn)行分工是一個(gè)首要的環(huán)節(jié)。原則上,能夠由軟件來完成的任務(wù)就盡可能用軟件來實(shí)現(xiàn),以降低硬件成本,簡化硬件結(jié)構(gòu)。同時(shí),還要求大致規(guī)定各接口電路的地址、軟件的結(jié)構(gòu)和功能、上下位機(jī)的通信協(xié)議、程序的駐留區(qū)域及工作緩沖區(qū)等。總體方案一旦確定,系統(tǒng)的大致規(guī)模及軟件的基本框架就確定了。3硬件設(shè)計(jì)硬件設(shè)計(jì)是指應(yīng)用系統(tǒng)的電路設(shè)計(jì),包括主機(jī)、控制電路、存儲器、I
5、/O接口、A/D和D/A轉(zhuǎn)換電路等。硬件設(shè)計(jì)時(shí),應(yīng)考慮留有充分余量,電路設(shè)計(jì)力求正確無誤,因?yàn)樵谙到y(tǒng)調(diào)試中不易修改硬件結(jié)構(gòu)。硬件電路設(shè)計(jì)時(shí)應(yīng)注意以下幾個(gè)問題:(1)程序存儲器一般可選用容量較大的EPROM芯片,如27128(16 KB)、27256(32 KB)或27512(64 KB)等。盡量避免用小容量的芯片組合擴(kuò)充成大容量的存儲器,程序存儲器容量大些,則編程空間寬裕些,價(jià)格相差也不會太多。(2)數(shù)據(jù)存儲器和I/O接口根據(jù)系統(tǒng)功能的要求,如果需要擴(kuò)展外部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。這類芯片具有口線多、硬件邏輯簡單等特點(diǎn)。若口線要求很少,且僅需要簡單的輸入或輸出功能,則可用不可編程的TTL電路或CMOS電路。A/D和D/A電路芯片主要根據(jù)精度、速度和價(jià)格等來選用,同時(shí)還要考慮與系統(tǒng)的連接是否方便。(3)地址譯碼電路通常采用全譯碼、部分譯碼或線選法,應(yīng)考慮充分利用存儲空間和簡化硬件邏輯等方面的問題。MCS-51系統(tǒng)有充分的存儲空間,包括64 KB程序存儲器和64 KB數(shù)據(jù)存儲器,所以在一般的控制應(yīng)用系統(tǒng)中,主要是考慮簡化硬件邏輯。當(dāng)存儲器和I/O芯片較多時(shí),可選用專用譯碼器74S138或74
7、LS139等。(4)總線驅(qū)動能力MCS-51系列單片機(jī)的外部擴(kuò)展功能很強(qiáng),但4個(gè)8位并行口的負(fù)載能力是有限的。P0口能驅(qū)動8個(gè)TTL電路,P1P3口只能驅(qū)動4個(gè)TTL電路。在實(shí)際應(yīng)用中,這些端口的負(fù)載不應(yīng)超過總負(fù)載能力的70%,以保證留有一定的余量。如果滿載,會降低系統(tǒng)的抗干擾。在外接負(fù)載較多的情況下,如果負(fù)載是MOS芯片,因負(fù)載消耗電流很小,所以影響不大。如果驅(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系列單片機(jī)時(shí)鐘頻率可在212 MHz之間任選。在不影響系統(tǒng)技術(shù)性能的前提下,時(shí)鐘頻率選擇低一些為好,這樣可降低系統(tǒng)中對元器件工作速度的要求,從而提高系統(tǒng)的可靠性。4抗干擾措施單片機(jī)產(chǎn)品的工作環(huán)境往往都是具有多種干擾源的現(xiàn)場,抗干擾措施在單片機(jī)產(chǎn)品設(shè)計(jì)中顯得尤為重要。根據(jù)干擾源引入的途徑,抗干擾措施可以從以下兩個(gè)方面考慮。(1)電源供電系統(tǒng)為了克服電網(wǎng)以及來自系統(tǒng)內(nèi)部其它部件的干擾,可采用隔離變壓器、交流穩(wěn)壓、線濾波器、穩(wěn)壓電路各級濾波等防干擾措施。(2)電路上的考慮為了進(jìn)一步提高系統(tǒng)的可靠性,在硬件電路設(shè)計(jì)時(shí),應(yīng)采取一系列防干擾措施:1)大規(guī)模IC芯片電源供電端VCC都應(yīng)加高頻濾波
9、電容,根據(jù)負(fù)載電流的情況,在各級供電節(jié)點(diǎn)還應(yīng)加足夠容量的退耦電容;2)開關(guān)量I/O通道與外界的隔離可采用光電耦合器件,特別是與繼電器、可控硅等連接的通道,一定要采用隔離措施;3)可采用CMOS器件提高工作電壓(+15 V),這樣干擾門限也相應(yīng)提高;4)傳感器后級的變送器盡量采用電流型傳輸方式,因電流型比電壓型抗干擾能力強(qiáng);5)電路應(yīng)有合理的布線及接地方式;6)與環(huán)境干擾的隔離可采用屏蔽措施。5軟件設(shè)計(jì)單片機(jī)產(chǎn)品的軟件設(shè)計(jì)是產(chǎn)品研制過程中任務(wù)最繁重的一項(xiàng)工作,難度也比較大。對于某些較復(fù)雜的應(yīng)用系統(tǒng),不僅要使用匯編語言來編程,有時(shí)還要使用高級語言。單片機(jī)產(chǎn)品的軟件主要包括兩大部分:用于管理單片機(jī)工
10、作的監(jiān)控程序和用于執(zhí)行實(shí)際具體任務(wù)的功能程序。對于監(jiān)控程序,應(yīng)盡可能利用現(xiàn)成的監(jiān)控程序。為了適應(yīng)各種應(yīng)用的需要,現(xiàn)代的單片機(jī)開發(fā)系統(tǒng)的監(jiān)控軟件功能相當(dāng)強(qiáng),并附有豐富的實(shí)用子程序,可供用戶直接調(diào)用,例如鍵盤管理程序、顯示程序等。因此,在設(shè)計(jì)系統(tǒng)硬件邏輯和確定應(yīng)用系統(tǒng)的操作方式時(shí),就應(yīng)充分考慮這一點(diǎn)。這樣可大大減少軟件設(shè)計(jì)的工作量,提高編程效率。對于功能程序要根據(jù)產(chǎn)品的功能要求來編程序。例如,外部數(shù)據(jù)采集、控制算法的實(shí)現(xiàn)、外設(shè)驅(qū)動、故障處理及報(bào)警程序等。單片機(jī)產(chǎn)品的軟件設(shè)計(jì)千差萬別,不存在統(tǒng)一模式。進(jìn)行軟設(shè)計(jì)時(shí),盡可能采用模塊化結(jié)構(gòu)。根據(jù)系統(tǒng)軟件的總體構(gòu)思,按照先粗后細(xì)的方法,把整個(gè)系統(tǒng)軟件劃分成
11、多個(gè)功能獨(dú)立、大小適當(dāng)?shù)哪K。應(yīng)明確規(guī)定各模塊的功能,盡量使每個(gè)模塊功能單一,各模塊間的接口信息簡單、完備,接口關(guān)系統(tǒng)一,盡可能使各模塊間的聯(lián)系減少到最低限度。這樣,各個(gè)模塊可以分別獨(dú)立設(shè)計(jì)、編制和調(diào)試,最后再將各個(gè)程序模塊連接成一個(gè)完整的程序進(jìn)行總調(diào)試。6單片機(jī)產(chǎn)品調(diào)試單片機(jī)產(chǎn)品開發(fā)必須經(jīng)過調(diào)試階段,只有經(jīng)過調(diào)試才能發(fā)現(xiàn)問題,改正錯(cuò)誤,最終完成開發(fā)任務(wù)。實(shí)際上,對于較復(fù)雜的程序,大多數(shù)情況下都不可能一次性就調(diào)試成功,即使是資深設(shè)計(jì)人員也是如此。單片機(jī)產(chǎn)品調(diào)試包括硬件調(diào)試和軟件調(diào)試。硬件調(diào)試的任務(wù)是排除系統(tǒng)的硬件電路故障,包括設(shè)計(jì)性錯(cuò)誤和工藝性故障。軟件調(diào)試是利用開發(fā)工具進(jìn)行在線仿真調(diào)試,除發(fā)
12、現(xiàn)和解決程序錯(cuò)誤外,也可以發(fā)現(xiàn)硬件故障。程序調(diào)試一般是一個(gè)模塊一個(gè)模塊地進(jìn)行,一個(gè)子程序一個(gè)子程序地調(diào)試,最后聯(lián)起來統(tǒng)調(diào)。利用開發(fā)工具的單步和斷點(diǎn)運(yùn)行方式,通過檢查應(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)程序的邏輯錯(cuò)誤、轉(zhuǎn)移地址錯(cuò)誤以及隨機(jī)的錄入錯(cuò)誤等。也可以發(fā)現(xiàn)硬件設(shè)計(jì)與工藝錯(cuò)誤和軟件算法錯(cuò)誤。在調(diào)試過程中,要不斷調(diào)整、修改系統(tǒng)的硬件和軟件,直到其正確為止。聯(lián)機(jī)調(diào)試運(yùn)行正常后,將軟件固化到EPROM中,脫機(jī)運(yùn)行,并到生產(chǎn)現(xiàn)場投入實(shí)際工作,檢驗(yàn)其可靠性和抗干擾能力,直到完全滿足要求,單片機(jī)產(chǎn)品才算研制成功。8
13、.2 工作模塊21 步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)【工作任務(wù)】利用AT89S52單片機(jī)及獨(dú)立鍵盤控制步進(jìn)電機(jī)的速度和方向。獨(dú)立鍵盤有反轉(zhuǎn)按鍵、加速按鍵、減速按鍵和正轉(zhuǎn)按鍵。步進(jìn)電機(jī)電氣參數(shù):工作電壓4.56.5,步進(jìn)角是18°。8.2.1 步進(jìn)電機(jī)控制技術(shù)步進(jìn)電機(jī)的結(jié)構(gòu)及基本知識點(diǎn)在工作模塊5中已經(jīng)介紹過了,在這里只對實(shí)現(xiàn)步進(jìn)電機(jī)速度和方向控制的關(guān)鍵技術(shù)進(jìn)行介紹。1速度控制技術(shù)本工作模塊使用的步進(jìn)電機(jī)的步進(jìn)角是18°,由于步進(jìn)電機(jī)旋轉(zhuǎn)角度與輸入脈沖數(shù)目成正比,所以輸入20個(gè)脈沖信號,步進(jìn)電機(jī)就會旋轉(zhuǎn)20個(gè)步進(jìn)角,且剛好轉(zhuǎn)一圈(20´18°=360°
14、)。那么怎么控制步進(jìn)電機(jī)的轉(zhuǎn)速呢.下面我們先分析如何實(shí)現(xiàn)步進(jìn)電機(jī)轉(zhuǎn)速為30轉(zhuǎn)/分和轉(zhuǎn)速為60轉(zhuǎn)/分。(1)轉(zhuǎn)速為30轉(zhuǎn)/分旋轉(zhuǎn)一圈的時(shí)間是60s/30圈=2s,旋轉(zhuǎn)一個(gè)步進(jìn)角的時(shí)間是2s/20=100ms(每圈20個(gè)步進(jìn)角)。也就是說給一個(gè)脈沖信號,旋轉(zhuǎn)一個(gè)步進(jìn)角,延時(shí)100ms,再給一個(gè)脈沖信號,旋轉(zhuǎn)一個(gè)步進(jìn)角,延時(shí)100ms,這樣就可以獲得轉(zhuǎn)速為30轉(zhuǎn)/分。(2)轉(zhuǎn)速為60轉(zhuǎn)/分旋轉(zhuǎn)一圈的時(shí)間是60s/60圈=1s,旋轉(zhuǎn)一個(gè)步進(jìn)角的時(shí)間是1s/20=50ms(每圈20個(gè)步進(jìn)角)。和轉(zhuǎn)速為30轉(zhuǎn)/分比較,脈沖信號之間的延時(shí)時(shí)間為50ms,延時(shí)時(shí)間變短,轉(zhuǎn)速提高了。根據(jù)以上分析,我們只要改變脈
15、沖信號之間的延時(shí)時(shí)間,即改變每步之間的延時(shí)時(shí)間,便可控制步進(jìn)電機(jī)的轉(zhuǎn)速。延時(shí)時(shí)間變短,轉(zhuǎn)速提高,延時(shí)時(shí)間變長,轉(zhuǎn)速降低。注意:步進(jìn)電機(jī)的負(fù)載轉(zhuǎn)矩與轉(zhuǎn)速成反比,轉(zhuǎn)速越快負(fù)載轉(zhuǎn)矩越小,當(dāng)轉(zhuǎn)速快至其極限時(shí),步進(jìn)電機(jī)不再旋轉(zhuǎn)。所以每走一步,必須延時(shí)一段時(shí)間。2. 方向控制技術(shù)本工作模塊是采用1相勵磁順序,四種勵磁狀態(tài)為一個(gè)循環(huán)。只要改變勵磁順序,就可以改變步進(jìn)電機(jī)旋轉(zhuǎn)方向。(1)正轉(zhuǎn)時(shí),1相勵磁順序?yàn)椋篈BCD(2)反轉(zhuǎn)時(shí),1相勵磁順序?yàn)椋篋CBA8.2.2步進(jìn)電機(jī)控制系統(tǒng)電路設(shè)計(jì)按照工作任務(wù)要求,步進(jìn)電機(jī)控制系統(tǒng)電路是由AT89S52單片機(jī)最小應(yīng)用系統(tǒng)、步進(jìn)電機(jī)驅(qū)動電路、鍵盤電路等模塊構(gòu)成。1鍵盤模
16、塊設(shè)計(jì)步進(jìn)電機(jī)控制系統(tǒng)具有反轉(zhuǎn)、加速、減速和正轉(zhuǎn)個(gè)功能,可以用個(gè)按鍵實(shí)現(xiàn)。由于按鍵數(shù)目少,鍵盤模塊設(shè)計(jì)采用獨(dú)立鍵盤。這個(gè)按鍵分別接到P2口的P2.0、 P2.1 、P2.2和 P2.3引腳,為反轉(zhuǎn)按鍵、加速按鍵、減速按鍵和正轉(zhuǎn)按鍵。如圖8-2所示。圖8-2 鍵盤電路2步進(jìn)電機(jī)驅(qū)動模塊設(shè)計(jì)由于步進(jìn)電機(jī)的功率較大,步進(jìn)電機(jī)驅(qū)動電路設(shè)計(jì)采用了高電壓、大電流的ULN2003A,ULN2003A的詳細(xì)介紹請參閱項(xiàng)目二技能拓展部分。P3口的P3.0、 P3.1 、P3.2和 P3.3四個(gè)引腳通過步進(jìn)電機(jī)驅(qū)動電路分別接在步進(jìn)電機(jī)的A、B、C、D。如圖8-3所示。圖8-3 步進(jìn)電機(jī)驅(qū)動電路通過前面的鍵盤模塊電
17、路和步進(jìn)電機(jī)驅(qū)動模塊電路設(shè)計(jì),運(yùn)行Proteus軟件,新建“步進(jìn)電機(jī)控制系統(tǒng)”設(shè)計(jì)文件。按圖8-2和圖8-3所示放置并編輯AT89S52、CRYSTAL、CAP、CAP-ELEC、RES、MOTOR-STEPPER、ULN2003A、74LS04及BUTTON等元器件。完成步進(jìn)電機(jī)控制系統(tǒng)電路設(shè)計(jì)后,進(jìn)行電氣規(guī)則檢測,直至檢測成功。如圖8-4所示。8.2.3步進(jìn)電機(jī)控制系統(tǒng)程序設(shè)計(jì)步進(jìn)電機(jī)控制系統(tǒng)程序由main.h頭文件、頭文件包含和定義全局變量、步進(jìn)電機(jī)運(yùn)行函數(shù)run()以及主函數(shù)組成。1編寫main.h頭文件為了程序的可讀性和編程方便,在main.h頭文件里面對用到的數(shù)據(jù)類型、接在P3口上
18、步進(jìn)電機(jī)以及接在P3口上按鍵進(jìn)行宏定義。宏定義如下:*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 <AT89X52.h>*include <main.h>uin
19、t speed=1000;/設(shè)置延時(shí)參數(shù)初值為最小值,既轉(zhuǎn)速最快uint speed_change=1000; /延時(shí)參數(shù)初值uchar dir=0; /設(shè)置方向,dir=1為反轉(zhuǎn),dir=0為正轉(zhuǎn)3步進(jìn)電機(jī)運(yùn)行函數(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)時(shí),初始控制碼為0x01,然后控制碼左移1位,獲得下一位控制
20、碼。反轉(zhuǎn)時(shí),初始控制碼為0x08,然后控制碼右移1位,獲得下一位控制碼。代碼如下:void run(void) speed = speed_change;while(speed-);/延時(shí) if(dir = 1)/* dir = 0,正轉(zhuǎn)*/ if(step_moto_port >= 0x08)/如果控制碼>= 0x08(一個(gè)循環(huán)完成),取初始控制碼step_moto_port=0x01;else/左移1位,獲得下一位控制碼,并從P3口輸出step_moto_port <<= 1;else /* dir = 1,反轉(zhuǎn)*/ if(step_moto_port <=
21、0x01)/如果控制碼<= 0x01(一個(gè)循環(huán)完成),取初始控制碼step_moto_port=0x08;else /右移1位,獲得下一位控制碼,并從P3口輸出step_moto_port >>= 1; 4步進(jìn)電機(jī)主函數(shù)main()void main(void) step_moto_port=0x01;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(spee
22、d_change >= 2000) /延時(shí)參數(shù)減量為1000,每按一次UP_KEY鍵減少1000 speed_change = speed_change - 1000; while(UP_KEY)run(); if(DOWN_KEY) / 減速 if(speed_change < 20000) /延時(shí)參數(shù)增量為1000,每按一次DOWN_KEY鍵增加1000 speed_change = speed_change + 1000; while(DOWN_KEY) run(); run(); / end while(1) / end main步進(jìn)電機(jī)控制系統(tǒng)程序設(shè)計(jì)好以后,打開“步進(jìn)電
23、機(jī)控制系統(tǒng)”Proteus電路,加載“步進(jìn)電機(jī)控制系統(tǒng).hex”文件。進(jìn)行仿真運(yùn)行,觀察步進(jìn)電機(jī)運(yùn)行是否與設(shè)計(jì)要求相符。如圖8-4所示。圖8-4 步進(jìn)電機(jī)控制系統(tǒng)仿真運(yùn)行8.3工作模塊22 直流電機(jī)控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)【工作任務(wù)】利用AT89S52單片機(jī)及獨(dú)立鍵盤控制直流電機(jī)的速度和方向。獨(dú)立鍵盤有反轉(zhuǎn)按鍵、加速按鍵、減速按鍵和正轉(zhuǎn)按鍵。直流電機(jī)電氣參數(shù):額定工作電壓5.0。8.3.1 直流電機(jī)控制技術(shù)1認(rèn)識直流電機(jī)永磁式換向器直流電機(jī),是應(yīng)用很廣泛的一種,只要在它上面加適當(dāng)電壓電機(jī)就轉(zhuǎn)動。(1)結(jié)構(gòu)與工作原理永磁式換向器直流電機(jī)是由定子(主磁極)、轉(zhuǎn)子(繞組線圈)、換向片(又稱整流子)、電刷等
24、組成,定子作用是產(chǎn)生磁場,如圖8-5所示。圖8-5 直流電機(jī)結(jié)構(gòu)直流電壓加在電刷上,經(jīng)換向片加到電樞繞組(轉(zhuǎn)子線圈),使電樞導(dǎo)體有電流流過,由于電機(jī)內(nèi)部有定子磁場存在,所以電樞導(dǎo)體將受到電磁力 f 的作用(左手定則) ,電樞導(dǎo)體產(chǎn)生的電磁力作用于轉(zhuǎn)子,使轉(zhuǎn)子以n(轉(zhuǎn)/分)旋轉(zhuǎn),以便拖動機(jī)械負(fù)載。通過左手定則,可以判別電磁力f方向(即轉(zhuǎn)子旋轉(zhuǎn)方向),如圖8-6所示。圖8-6轉(zhuǎn)子旋轉(zhuǎn)方向也就是說,轉(zhuǎn)于是在定子磁場作用下,得到轉(zhuǎn)矩而旋轉(zhuǎn)起來。當(dāng)它轉(zhuǎn)動時(shí),由于磁場的相互作用,也將產(chǎn)生反電動勢,它的大小正比于轉(zhuǎn)子的速度,方向和所加的直流電壓相反。(2)永磁式換流器電機(jī)特點(diǎn)1)當(dāng)電機(jī)負(fù)載固定時(shí),電機(jī)轉(zhuǎn)速正
25、比于所加的電源電壓。 2)當(dāng)電機(jī)直流電源固定時(shí),電機(jī)的工作電流正比于轉(zhuǎn)予負(fù)載的大小。 3)加于電機(jī)的有效電壓,等于外加直流電壓減去反電動勢。因此當(dāng)用固定電壓驅(qū)動電機(jī)時(shí),電機(jī)的速度趨向于自穩(wěn)定。因?yàn)樨?fù)載增加時(shí),轉(zhuǎn)子有慢下來的傾向,于是反電動勢減少,而使有效電壓增加,反過來又將使轉(zhuǎn)子有快起來的傾向,所以總的效果使速度穩(wěn)定。 4)當(dāng)轉(zhuǎn)子靜止時(shí),反電動勢為零,電機(jī)電流最大。最大電流出現(xiàn)在剛起動的時(shí)候。 5)轉(zhuǎn)子轉(zhuǎn)動的方向,可由電機(jī)上所加電壓的極性來控制。 6)體積小,重量輕。起動轉(zhuǎn)矩大。 由于具備上述的那些特點(diǎn),所以在醫(yī)療器械、小型機(jī)床、電子儀器、計(jì)算機(jī)、氣象探空儀、探礦測井、電動工具、家用電器及電子
26、玩具等各個(gè)方面,都得到廣泛的應(yīng)用。對這種永磁式電機(jī)的控制,主要有電機(jī)的起??刂啤⒎较蚩刂?、可變速度控制和速度的穩(wěn)定控制。2速度控制技術(shù)調(diào)節(jié)直流電機(jī)轉(zhuǎn)速最方便有效的調(diào)速方法是對電樞(即轉(zhuǎn)子線圈)電壓U進(jìn)行控制。控制電壓的方法有多種,廣泛應(yīng)用脈寬調(diào)制PWM技術(shù)來控制直流電機(jī)電樞的電壓。所謂PWM控制技術(shù),就是利用半導(dǎo)體器件的導(dǎo)通與關(guān)斷,把直流電壓變成電壓脈沖序列,通過控制電壓脈沖寬度或周期以達(dá)到變壓的目的。3方向控制技術(shù)直流電機(jī)的轉(zhuǎn)子轉(zhuǎn)動方向可由直流電機(jī)上所加電壓的極性來控制,可用橋式電路來控制直流電機(jī)的轉(zhuǎn)動方向。控制直流電機(jī)正反轉(zhuǎn)的橋式驅(qū)動電路有單電源和雙電源兩種驅(qū)動方式,通常采用單電源的驅(qū)動方
27、式,就可以滿足實(shí)際的應(yīng)用需要,所以這里只介紹單電源的驅(qū)動方式。單電源方式的橋式驅(qū)動電路又稱為全橋方式驅(qū)動或者H橋方式驅(qū)動,如圖8-7所示。圖8-7H橋方式驅(qū)動電路圖8-7中的二極管稱為續(xù)流二極管,主要作用是消除直流電機(jī)所產(chǎn)生的反向電動勢。三極管是PNP三極管,基極為高電平時(shí)三極管關(guān)斷,為低電平時(shí)三極管導(dǎo)通。直流電機(jī)正轉(zhuǎn)時(shí)三極管Q1和Q4導(dǎo)通,反轉(zhuǎn)時(shí)三極管Q2和Q3導(dǎo)通,在這兩種情況下,加在直流電機(jī)兩端的電壓極性相反。當(dāng)四個(gè)三極管全部關(guān)斷時(shí),直流電機(jī)停止轉(zhuǎn)動。若是Q1與Q3關(guān)斷、Q2與Q4導(dǎo)通時(shí),直流電機(jī)處于短路制動狀態(tài),將立即停止轉(zhuǎn)動。這四種狀態(tài)所對應(yīng)的H橋式驅(qū)動電路狀態(tài)如圖8-8所示。正轉(zhuǎn)
28、反轉(zhuǎn) 停止 制動圖8-8 直流電機(jī)和H橋式驅(qū)動電路四種對應(yīng)狀態(tài)8.3.2直流電機(jī)控制系統(tǒng)電路設(shè)計(jì)按照工作任務(wù)要求,直流電機(jī)控制系統(tǒng)電路是由AT89S52單片機(jī)最小應(yīng)用系統(tǒng)、H橋式驅(qū)動電路、獨(dú)立鍵盤及直流電機(jī)構(gòu)成。P3口的P3.0、 P3.1 、P3.4和 P3.5四個(gè)引腳分別接在H橋式驅(qū)動電路的PWM1、PWM2、PWM3和PWM4。P2口的P2.0、 P2.1 、P2.2和 P2.3四個(gè)引腳分別接反轉(zhuǎn)按鍵、加速按鍵、減速按鍵和正轉(zhuǎn)按鍵。直流電機(jī)控制系統(tǒng)電路設(shè)計(jì)如圖8-9所示。圖8-9 直流電機(jī)控制系統(tǒng)電路運(yùn)行Proteus軟件,新建“直流電機(jī)控制系統(tǒng)”設(shè)計(jì)文件。按圖8-9所示放置并編輯AT8
29、9S52、CRYSTAL、CAP、CAP-ELEC、RES、MOTOR、1N4148 (二極管)、2N5771(三極管)、BUTTON。等元器件。完成直流電機(jī)控制系統(tǒng)電路設(shè)計(jì)后,進(jìn)行電氣規(guī)則檢測,直至檢測成功。8.3.3直流電機(jī)控制系統(tǒng)程序設(shè)計(jì)直流電機(jī)有正轉(zhuǎn)、反轉(zhuǎn)、停止和制動四種運(yùn)行狀態(tài)。在這四種運(yùn)行狀態(tài)下,P3口引腳與H橋式驅(qū)動電路對應(yīng)關(guān)系如表8-2所示。表8-2 運(yùn)行狀態(tài)與P3口引腳的對應(yīng)關(guān)系運(yùn)行狀態(tài)P3.5P3.4P3.1P3.0PWM4(Q4)PWM3(Q3)PWM2(Q2)PWM1(Q1)正轉(zhuǎn)0110反轉(zhuǎn)1001停止1111制動0101直流電機(jī)控制系統(tǒng)程序主要由頭文件、初始化、按鍵功
30、能處理、直流電機(jī)運(yùn)行中斷處理等組成。1編寫main.h頭文件在這里只給出與工作模塊21的main.h頭文件不一樣部分。電機(jī)驅(qū)動接口是接在P3.0、P3.1、P3.4和P3.5,為了以后能對殊功能寄存器P3口這4個(gè)尋址位進(jìn)行操作,定義了4個(gè)sbit類型位變量,代碼如下:*define _Nop() _nop_()sbit PWM1 = P30;sbit PWM4 = P35;sbit PWM2 = P31;sbit PWM3 = P34;2頭文件包含和定義全局變量*include <AT89X52.h>*include <intrins.h> /程序中使用了_nop_()
31、,此函數(shù)后面介紹*include <main.h>bit Moto_Dir=0;/定義位變量,為0正轉(zhuǎn),為1反轉(zhuǎn)uchar irq_count;/中斷次數(shù)計(jì)數(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直流電機(jī)控制系統(tǒng)初始化/*使Q1、Q2、Q3、Q4同時(shí)關(guān)斷,電機(jī)處于停止?fàn)顟B(tài)*/PWM1=1; PWM2=1; PWM3=1; PWM4=1;irq_count=0;/中斷次數(shù)計(jì)數(shù)器清0i=0;P
32、WM_TIME_H=80;/設(shè)置占空比為1:5,PWM脈沖周期是100msPWM_TIME_L=20;/*定時(shí)器T1初始化*/ET1=1; / 開T1中斷TMOD=0x11; / T1都為方式1計(jì)時(shí)*/TH1=0xFC; TL1=0x18; / T1初值,定時(shí)時(shí)間1ms(12MHz)TR1=1; / 定時(shí)器啟動EA=1; / 開總中斷4直流電機(jī)控制系統(tǒng)按鍵功能處理(1)反轉(zhuǎn)按鍵處理if(FZ_KEY) ShortDelay(); if(FZ_KEY) / 延時(shí)去抖 Moto_Dir=1;PWM3=0; PWM4=1; while(FZ_KEY); /等待FZ_KEY釋放 / end if(FZ
33、_KEY)(2)正轉(zhuǎn)按鍵處理if(ZZ_KEY)ShortDelay(); if(ZZ_KEY) / 延時(shí)去抖Moto_Dir=0;PWM3=1; PWM4=0;while(ZZ_KEY); /等待ZZ_KEY釋放 / end if(ZZ_KEY)(3)加速按鍵處理 if(UP_KEY) ShortDelay();if(UP_KEY) / 延時(shí)去抖if(PWM_TIME_H > 10) /最大占空比為9:10 PWM_TIME_H-;PWM_TIME_L = 100-PWM_TIME_H; / end if(UP_KEY)while(UP_KEY); / end if(UP_KEY)(4
34、)減速按鍵處理if(DOWN_KEY) ShortDelay();if(DOWN_KEY) / 延時(shí)去抖if(PWM_TIME_H < 90) /最小占空比為1:10PWM_TIME_H+;PWM_TIME_L = 100-PWM_TIME_H; / end if(DOWN_KEY)while(DOWN_KEY); / end if(DOWN_KEY)5直流電機(jī)控制系統(tǒng)中斷處理按照按鍵處理設(shè)置,控制直流電機(jī)運(yùn)行。T1定時(shí)器中斷發(fā)PWM脈沖,周期是100ms。interrupt 3:是T1定時(shí)器中斷,using 1:選擇第一組工作寄存器。代碼如下:void timer1(void) int
35、errupt 3 using 1 TH1=0xFC; TL1=0x18; /重裝T1初值 irq_count+; if (irq_count>=irq_count_t)/判斷中斷次數(shù)是否到 irq_count=0; /計(jì)數(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(Moto_Dir=1) PWM2=PWM2; PWM1=1; else PWM2=1; PWM1=PWM1; 直流電機(jī)控制系統(tǒng)程序設(shè)計(jì)好以后,打開“直流電機(jī)控制系統(tǒng)”Proteus電路,加載
36、“直流電機(jī)控制系統(tǒng).hex”文件。進(jìn)行仿真運(yùn)行,觀察直流電機(jī)運(yùn)行是否與設(shè)計(jì)要求相符。8.4 技能拓展 步進(jìn)電機(jī)智能控制步進(jìn)電機(jī)是利用輸入數(shù)字信號轉(zhuǎn)換成機(jī)械能量的電氣設(shè)備,由于步進(jìn)電機(jī)旋轉(zhuǎn)角度與輸入脈沖數(shù)目成正比,只要控制輸入的脈沖數(shù)目便可控制步進(jìn)電機(jī)轉(zhuǎn)動角度。因此,常用于精確定位和精確定速,如機(jī)器人均使用步進(jìn)電機(jī)作動力,并且可以精確控制機(jī)器人的動作。8.4.1步進(jìn)電機(jī)智能控制思路通過工作模塊5和工作模塊21的學(xué)習(xí),我們已經(jīng)知道了步進(jìn)電機(jī)必須加上驅(qū)動電路才能轉(zhuǎn)動,驅(qū)動電路的信號輸入端必須輸入脈沖信號,若無脈沖輸入時(shí),轉(zhuǎn)子保持一定的位置,維持靜止?fàn)顟B(tài);反之,若加入適當(dāng)?shù)拿}沖信號時(shí),轉(zhuǎn)子則會以一定的
37、角度轉(zhuǎn)動,如果加入連續(xù)脈沖時(shí),則轉(zhuǎn)子旋轉(zhuǎn)的角度與脈沖頻率成正比。為此,我們掌握了如何使用按鍵對步進(jìn)電機(jī)進(jìn)行方向和轉(zhuǎn)速控制。但是我們?nèi)绾螌Σ竭M(jìn)電機(jī)進(jìn)行精確定位和精確定速呢.由于步進(jìn)電機(jī)是一種將電脈沖轉(zhuǎn)化為角位移的執(zhí)行機(jī)構(gòu)。當(dāng)步進(jìn)驅(qū)動器接收到一個(gè)脈沖信號,它就驅(qū)動步進(jìn)電機(jī)按設(shè)定的方向轉(zhuǎn)動一個(gè)固定的角度,它的旋轉(zhuǎn)是以固定的角度一步一步運(yùn)行的。這樣,我們就可以通過以下兩個(gè)方面對步進(jìn)電機(jī)進(jìn)行智能控制,達(dá)到精確定位和精確定速的目的。(1)通過控制脈沖個(gè)數(shù)來控制角位移量,從而達(dá)到準(zhǔn)確定位的目的;(2)通過控制脈沖頻率來控制電機(jī)轉(zhuǎn)動的速度和加速度,從而達(dá)到精確定速和調(diào)速的目的。作為一種數(shù)字伺服執(zhí)行元件,步進(jìn)電
38、機(jī)具有結(jié)構(gòu)簡單、運(yùn)行可靠、控制方便、控制性能好等優(yōu)點(diǎn),步進(jìn)電機(jī)智能控制可以廣泛應(yīng)用在數(shù)控機(jī)床、機(jī)器人、自動化儀表等領(lǐng)域。8.4.2步進(jìn)電機(jī)智能控制組成步進(jìn)電機(jī)智能控制主要包括:單片機(jī)、鍵盤輸入模塊、顯示模塊以及步進(jìn)電機(jī)動控制模塊等部分。步進(jìn)電機(jī)智能控制的結(jié)構(gòu)框圖如圖8-10所示。圖8-10 步進(jìn)電機(jī)智能控制結(jié)構(gòu)框圖鍵盤輸入模塊主要完成數(shù)據(jù)輸入及控制輸入;顯示模塊主要對步進(jìn)電機(jī)設(shè)置和運(yùn)行狀態(tài)進(jìn)行顯示(如顯示步進(jìn)電機(jī)設(shè)置要旋轉(zhuǎn)的數(shù)圈以及正反轉(zhuǎn)指示等);步進(jìn)電機(jī)控制模塊主要是由單片機(jī)輸出控制碼到驅(qū)動電路控制步進(jìn)電機(jī)的運(yùn)轉(zhuǎn)。【技能訓(xùn)練8-1】步進(jìn)電機(jī)智能控制設(shè)計(jì)設(shè)計(jì)一個(gè)步進(jìn)電機(jī)智能控制。要求能從鍵盤上
39、輸入步進(jìn)電機(jī)轉(zhuǎn)數(shù),控制步進(jìn)電機(jī)的正、反轉(zhuǎn)及啟停,并顯示轉(zhuǎn)數(shù)。1鍵盤設(shè)計(jì)鍵盤采用的是矩陣式鍵盤,鍵盤電路設(shè)計(jì)參考工作模塊10,鍵盤功能分配如下:(1)0-9:為數(shù)字鍵(2)*:正逆轉(zhuǎn)轉(zhuǎn)數(shù)設(shè)定完成后,按“*”啟動步進(jìn)馬達(dá)。(3)*:清除設(shè)定為正轉(zhuǎn)及轉(zhuǎn)數(shù)為00。(4)A:設(shè)定正逆轉(zhuǎn)。按“A”鍵則LED亮,表示反轉(zhuǎn),再按則LED指示燈滅,表示正轉(zhuǎn),再按LED亮。2數(shù)碼管顯示模塊設(shè)計(jì)數(shù)碼管顯示模塊電路采用硬件譯碼輸出字型碼控制顯示內(nèi)容,數(shù)碼管是陽極數(shù)碼管,七段字形譯碼器用的是74LS47,電路設(shè)計(jì)參考技能訓(xùn)練3-2。3. 步進(jìn)電機(jī)控制模塊設(shè)計(jì)步進(jìn)電機(jī)控制模塊電路采用有施密特觸發(fā)器的六反方器74LS14和高電壓、大電流的達(dá)靈頓晶體管數(shù)組產(chǎn)品ULN2003A,電路設(shè)計(jì)參考工作模塊21。4. 步進(jìn)電機(jī)智能控制電路實(shí)現(xiàn)步進(jìn)電機(jī)控制模塊電路、鍵盤電路、數(shù)碼管顯示模塊電路分別接在AT89S52單片機(jī)的P0口、P1口、P2口,接在P3.0的LED是步進(jìn)電機(jī)正反轉(zhuǎn)的指示燈,步進(jìn)電機(jī)智能控制電路設(shè)計(jì)如圖8-11所示。圖8-11步進(jìn)電機(jī)智能控制電路5步進(jìn)電機(jī)智能控制工作過程由鍵盤輸入轉(zhuǎn)數(shù),設(shè)定正反轉(zhuǎn)后,按確認(rèn)鍵。單
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國面膜行業(yè)競爭格局及投資戰(zhàn)略研究報(bào)告
- 2025-2030年中國隔音玻璃產(chǎn)業(yè)運(yùn)營狀況與發(fā)展?jié)摿Ψ治鰣?bào)告
- 2025-2030年中國鏈鋸行業(yè)十三五規(guī)劃與發(fā)展趨勢預(yù)測報(bào)告
- 2025-2030年中國資產(chǎn)管理行業(yè)運(yùn)行動態(tài)與營銷策略研究報(bào)告
- 2025-2030年中國聚苯醚行業(yè)風(fēng)險(xiǎn)評估規(guī)劃分析報(bào)告
- 南寧理工學(xué)院《美國文學(xué)選讀》2023-2024學(xué)年第二學(xué)期期末試卷
- 邢臺醫(yī)學(xué)高等??茖W(xué)?!渡鷳B(tài)文明建設(shè)理論與實(shí)踐前沿》2023-2024學(xué)年第二學(xué)期期末試卷
- 江西科技學(xué)院《公共管理與服務(wù)課程開發(fā)與教材分析》2023-2024學(xué)年第二學(xué)期期末試卷
- 贛南師范大學(xué)科技學(xué)院《海報(bào)設(shè)計(jì)(數(shù)字方向)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025安徽省安全員知識題庫及答案
- 結(jié)構(gòu)化思維與表達(dá)課件
- 教學(xué)課件:《就業(yè)指導(dǎo)與創(chuàng)業(yè)教育》(中職)
- 無人機(jī)警用解決方案樣本
- 健康體檢項(xiàng)目目錄
- 現(xiàn)代交換原理與技術(shù)課件:第5章 分組交換技術(shù)
- 學(xué)校傳染病報(bào)告處置流程圖
- 大小嶝造地工程陸域形成及地基處理標(biāo)段1施工組織設(shè)計(jì)
- 物理化學(xué)(全套427頁P(yáng)PT課件)
- 肺斷層解剖及CT圖像(77頁)
- LeapMotion教程之手勢識別
- 靜脈導(dǎo)管的護(hù)理與固定方法
評論
0/150
提交評論