黃益民
摘要:本文設(shè)計(jì)了一種利用AT89S52作為主控微處理器,鍵盤作為輸入設(shè)備,數(shù)碼管作為顯示設(shè)備的舵機(jī)、步進(jìn)電機(jī)綜合控制系統(tǒng),用戶能通過鍵盤向系統(tǒng)輸入運(yùn)動(dòng)指令如:步進(jìn)電機(jī)正轉(zhuǎn)、反轉(zhuǎn)、調(diào)速,舵機(jī)的角度旋轉(zhuǎn)控制等,該系統(tǒng)具有很好的可擴(kuò)展性,可根據(jù)實(shí)際運(yùn)用增加外圍設(shè)備,運(yùn)用具有較強(qiáng)的可塑性。
Abstract: This paper designs a comprehensive control system for steering gear and stepper motor using AT89S52 as the main control microprocessor, keyboard as input device, and digital tube as display device. Users can input motion instructions to the system through the keyboard, such as: stepper motor forward rotation, reverse rotation, speed regulation, steering angle rotation control, etc. The system has good scalability, and peripheral equipment can be added according to the actual application. The application has strong plasticity.
關(guān)鍵詞:AT89S52;舵機(jī);步進(jìn)電機(jī);PWM信號(hào);數(shù)碼管
Key words: AT89S52;rudder machine;stepper motor;PWM;the figures tube
中圖分類號(hào):U664.4+1? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文章編號(hào):1006-4311(2020)04-0225-02
0? 引言
隨著現(xiàn)代科學(xué)技術(shù)的不斷發(fā)展和市場(chǎng)需求的多樣化,國內(nèi)外知名電氣工程和機(jī)械廠家日益關(guān)注智能產(chǎn)品的多功能開發(fā)。機(jī)械制造業(yè)在經(jīng)歷了內(nèi)燃機(jī)的動(dòng)力革命,以及液壓、氣壓的傳動(dòng)革命之后,現(xiàn)在正致力于應(yīng)用電氣化控制技術(shù)來完成產(chǎn)品的操作和控制革命,以滿足更多的用戶對(duì)產(chǎn)品節(jié)能、環(huán)保、舒適性、智能化和便捷維護(hù)的要求。本系統(tǒng)通過經(jīng)濟(jì)性和實(shí)用性考慮,采用單片機(jī)作為微控制器對(duì)舵機(jī)、步進(jìn)電機(jī)進(jìn)行綜合控制,得到一個(gè)既能提高電機(jī)的控制速度和控制精度又可以對(duì)多種電機(jī)進(jìn)行綜合控制的控制器。
1? 系統(tǒng)硬件設(shè)計(jì)
1.1 顯示鍵盤控制部分硬件設(shè)計(jì)
本系統(tǒng)采用一個(gè)數(shù)碼管作為顯示輸出,為了簡(jiǎn)化編程,本系統(tǒng)采用靜態(tài)驅(qū)動(dòng)方式,來驅(qū)動(dòng)數(shù)碼管顯示。靜態(tài)驅(qū)動(dòng)也稱作直流驅(qū)動(dòng),各顯示器在顯示過程中,持續(xù)得到遞送過來的信號(hào),該驅(qū)動(dòng)是指每個(gè)數(shù)碼管的每個(gè)段碼都由一個(gè)單片機(jī)的I/O端口進(jìn)行驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)相對(duì)于動(dòng)態(tài)顯示而言,優(yōu)點(diǎn)是顯而易見的,編程簡(jiǎn)單,顯示亮度高,無閃爍,無需掃描,節(jié)省CPU時(shí)間,而缺點(diǎn)是用元器件多,占用I/O端口比較多。
1.2 舵機(jī)控制硬件設(shè)計(jì)
舵機(jī)主要是由外殼、電路板、數(shù)據(jù)存儲(chǔ)器、中央控制器、無核心馬達(dá)、齒輪、數(shù)據(jù)存儲(chǔ)器與位置檢測(cè)器所構(gòu)成。中央控制器內(nèi)帶有單片機(jī),可以人工編程,達(dá)到所需控制目的。其工作原理是由單片機(jī)將工作指令以二進(jìn)制形式發(fā)送給上位機(jī),經(jīng)由電路板,將電信號(hào)轉(zhuǎn)化為偏角指令,傳送到舵機(jī)調(diào)節(jié)單元,判斷轉(zhuǎn)動(dòng)方向,再驅(qū)動(dòng)無核心馬達(dá)轉(zhuǎn)動(dòng),通過減速齒輪及連桿將動(dòng)力傳至擺臂,同時(shí)由位置檢測(cè)器(可變電阻)反饋實(shí)時(shí)訊號(hào),判斷舵機(jī)是否已經(jīng)到指定位置。舵機(jī)內(nèi)部電路板自行產(chǎn)生一個(gè)PWM信號(hào),該信號(hào)的占空比根據(jù)電動(dòng)機(jī)旋轉(zhuǎn)位置而定,AT89S52需要提供一個(gè)有一定占空比的PWM信號(hào),在舵機(jī)內(nèi)部和原有PWM信號(hào)比較,根據(jù)兩信號(hào)的電壓差控制電動(dòng)機(jī)轉(zhuǎn)動(dòng),從而改變內(nèi)部PWM信號(hào),當(dāng)其和輸入信號(hào)一致時(shí),電動(dòng)機(jī)便停止轉(zhuǎn)動(dòng)。
綜上所述,對(duì)于舵機(jī),AT89S52需要輸出一個(gè)可控占空比的PWM信號(hào)。
用單片機(jī)系統(tǒng)實(shí)現(xiàn)對(duì)舵機(jī)輸出轉(zhuǎn)角的控制,必須要完成兩個(gè)任務(wù):第一,產(chǎn)生基本的PWM周期信號(hào)(本次設(shè)計(jì)是產(chǎn)生20ms的周期信號(hào));第二,是脈寬的調(diào)整,即用單片機(jī)模擬PWM信號(hào)的輸出,并且調(diào)整占空比來達(dá)到控制目的。
1.3 步進(jìn)電機(jī)控制硬件的設(shè)計(jì)
步進(jìn)電機(jī)及脈沖電機(jī),是一種感應(yīng)電機(jī),它將電脈沖信號(hào)轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移的開環(huán)控制元件。步進(jìn)電機(jī)是一種執(zhí)行元件,是機(jī)電一體化的關(guān)鍵產(chǎn)品之一,是現(xiàn)代數(shù)字程序控制系統(tǒng)中的主要執(zhí)行元件,廣泛應(yīng)用在各種自動(dòng)化控制系統(tǒng)領(lǐng)域中。步進(jìn)電機(jī)的轉(zhuǎn)子為永磁體,當(dāng)有電流流過電機(jī)定子繞組時(shí),定子繞組產(chǎn)生一個(gè)矢量磁場(chǎng)。該磁場(chǎng)會(huì)帶動(dòng)電機(jī)轉(zhuǎn)子旋轉(zhuǎn)一角度,使得轉(zhuǎn)子的一對(duì)磁場(chǎng)方向與電機(jī)定子的磁場(chǎng)方向一致。當(dāng)定子的矢量磁場(chǎng)旋轉(zhuǎn)一個(gè)角度,同時(shí)轉(zhuǎn)子也隨著該磁場(chǎng)轉(zhuǎn)了一個(gè)角度。這樣就可以通過控制脈沖的個(gè)數(shù),來控制角位移量,從而達(dá)到準(zhǔn)確定位控制的目的;同時(shí),也可以通過控制脈沖頻率,來控制電機(jī)轉(zhuǎn)動(dòng)的速度和加速度,從而達(dá)到加速或減速的目的。當(dāng)然,也可以實(shí)現(xiàn)正反轉(zhuǎn),改變繞組通電的順序即可。由于脈沖信號(hào)數(shù)與步距角呈線性關(guān)系,加上步進(jìn)電機(jī)無累積誤差等特點(diǎn),使得在速度、位置等控制場(chǎng)所和領(lǐng)域用步進(jìn)電機(jī)來控制,變的非常的簡(jiǎn)單。
1.4 主控制微處理器的選擇和主電路硬件設(shè)計(jì)
本系統(tǒng)設(shè)計(jì)采用AT89S52單片機(jī),它是一種低功耗、高性能的有8K字節(jié)可編程(也可擦寫)閃存的8位互補(bǔ)金屬氧化物半導(dǎo)體微控制器。同時(shí)它帶有ISP下載功能,利用89S-AVR ISP編程器來替代價(jià)格昂貴的單片機(jī)仿真器編程器,一來節(jié)省開發(fā)費(fèi)用,二來使用方便。AT89S52的運(yùn)行速度非??欤幚砟芰?qiáng),并且對(duì)語言編程方面提供了較好的支持。
按照功能,AT89S52的引腳,可分為如下四類:①主電源;②外接晶振或振蕩器;③多功能I/O口;④控制、選通和復(fù)位。
①P0~P3四個(gè)8位并行I/O口均可作普通I/O口使用,每個(gè)口線也可以單獨(dú)作為輸入或輸出。此時(shí)它們是準(zhǔn)雙向口;在將某一口線作為輸出口用時(shí)可直接向其輸出數(shù)據(jù),而作為輸入口用時(shí),必須先向該口的鎖存器寫1,將其置為高阻輸入,方可讀入引腳數(shù)據(jù)。
AT89S52的I/O口具有自動(dòng)識(shí)別特性。即P0、P2口的總線復(fù)用和P1、P3口的第二個(gè)功能,都是由單片機(jī)自動(dòng)選擇的,不需要通過指令去設(shè)定。
②AT89S52可外接晶振或振蕩器,頻率范圍0~33Hz。外接振蕩器時(shí)XTAL2浮空。
③AT89S52單片機(jī)是高電平復(fù)位。
④在無外擴(kuò)程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器時(shí),EA應(yīng)接高電平。
2? 系統(tǒng)分立模塊的軟件設(shè)計(jì)
2.1 主程序
本系統(tǒng)主程序?yàn)榕袛噫I位,根據(jù)輸入量調(diào)用各部分功能程序,并執(zhí)行按鍵對(duì)應(yīng)子程序來設(shè)定步進(jìn)電動(dòng)機(jī)和舵機(jī)的運(yùn)動(dòng)狀態(tài),最后執(zhí)行運(yùn)動(dòng)流程。
程序初始化,顯示關(guān)閉,準(zhǔn)備接收鍵盤輸入,按下鍵1,執(zhí)行數(shù)碼顯示程序,數(shù)碼管工作。再次按鍵1,設(shè)定步進(jìn)電機(jī)工作速度,設(shè)定完速度,判斷按鍵2是否按下,按下則指示燈亮,并執(zhí)行步進(jìn)電機(jī)工作程序和按鍵跳出程序。按下鍵3,指示燈亮,轉(zhuǎn)入舵機(jī)工作程序,設(shè)定并打開定時(shí)中斷,產(chǎn)生舵機(jī)輸入脈沖,寄存器清零。鍵判斷程序判斷是否按鍵,如果按鍵則舵機(jī)角度運(yùn)轉(zhuǎn),再次按下3鍵,則跳出舵機(jī)運(yùn)轉(zhuǎn)程序,轉(zhuǎn)入主程序。
2.2 步進(jìn)電機(jī)運(yùn)行程序
數(shù)碼管設(shè)定轉(zhuǎn)速后,若步進(jìn)電機(jī)程序開始按鈕按下,則轉(zhuǎn)入步進(jìn)電機(jī)工作程序,程序?qū)崿F(xiàn)步進(jìn)電機(jī)的正反轉(zhuǎn)。
2.3 定時(shí)中斷服務(wù)程序
此程序主要為舵機(jī)提供PWM信號(hào),根據(jù)鍵盤輸入改變PWM信號(hào)的占空比,從而改變舵機(jī)的輸出轉(zhuǎn)角。中斷開始先重新裝入初值,執(zhí)行舵機(jī)的PWM信號(hào)程序,通過改變延時(shí)程序調(diào)整輸出脈寬,將脈寬傳輸給舵機(jī),通過執(zhí)行按鈕控制舵機(jī)角度轉(zhuǎn)動(dòng)。
2.4 延時(shí)程序
本系統(tǒng)提供了兩種可調(diào)節(jié)延時(shí)程序,一種可調(diào)節(jié)的延時(shí)程序,通過改變?cè)O(shè)定初值用于鍵盤消抖和控制步進(jìn)電機(jī)的轉(zhuǎn)速,另一種可調(diào)節(jié)延時(shí)程序用于調(diào)整舵機(jī)的轉(zhuǎn)角。
2.5 顯示程序
本系統(tǒng)只采用一個(gè)數(shù)碼管顯示,故采用靜態(tài)顯示驅(qū)動(dòng)方式,顯示程序獲得按鍵輸入后用查表程序找到數(shù)字的代碼,然后輸出給P1七個(gè)引腳直接驅(qū)動(dòng)數(shù)碼管顯示。
3? 結(jié)束語
本設(shè)計(jì)的最大創(chuàng)新點(diǎn)在于實(shí)現(xiàn)了一片AT89C51單片機(jī)同時(shí)控制三路不同電動(dòng)機(jī)定角度定圈數(shù)旋轉(zhuǎn),并顯示控制狀態(tài)。經(jīng)過社會(huì)市場(chǎng)調(diào)查,目前市面上比較普遍的是一個(gè)單片機(jī)實(shí)現(xiàn)一種電動(dòng)機(jī)的多路控制,當(dāng)要驅(qū)動(dòng)多種電動(dòng)機(jī)時(shí),就必須使用多片單片機(jī)。因此,本系統(tǒng)在某種意義上還有很大的發(fā)展空間。
參考文獻(xiàn):
[1]王時(shí)勝,姜建平.采用單片機(jī)實(shí)現(xiàn)PWM式D/A轉(zhuǎn)換技術(shù)[J].電子質(zhì)量,2004,12(2).
[2]高同躍,等.一種超小型無人機(jī)舵機(jī)控制系統(tǒng)的設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2007,15(8).
[3]艾寧,等.智能車運(yùn)動(dòng)狀態(tài)實(shí)時(shí)監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)及實(shí)現(xiàn)[D].電子產(chǎn)品世界,2007,8(5).
[4]叢喜東,等.基于AVR單片機(jī)的微型舵機(jī)控制[J].科技資訊,2007,10(8).
[5]熊詩波,黃長(zhǎng)藝.機(jī)械工程測(cè)試技術(shù)基礎(chǔ)[M].三版.北京:機(jī)械工業(yè)出版社,2006:68-124.
[6]張友德,趙志英,等.單片微型機(jī)原理、應(yīng)用與試驗(yàn)[M].四版.上海:復(fù)旦大學(xué)出版社,2006(3):25-113.
[7]陳陽海.單片機(jī)的基本結(jié)構(gòu)與工作原理(二)-AT89S52單片機(jī)引腳功能、時(shí)鐘系統(tǒng)、時(shí)序及復(fù)位[M].電子制作,2006(2).
[8]CHRIS GASKETT; ALE?譒 UDE; GORDON CHENG.HAND–EYE COORDINATION THROUGH ENDPOINT CLOSED-LOOP AND LEARNED ENDPOINT OPEN-LOOP VISUAL SERVO CONTROL. International Journal of Humanoid Robotics (IJHR)?. 2005, 2(2).