舵機(jī)角度控制電路設(shè)計 課程設(shè)計_第1頁
舵機(jī)角度控制電路設(shè)計 課程設(shè)計_第2頁
舵機(jī)角度控制電路設(shè)計 課程設(shè)計_第3頁
舵機(jī)角度控制電路設(shè)計 課程設(shè)計_第4頁
舵機(jī)角度控制電路設(shè)計 課程設(shè)計_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

課題:舵機(jī)角度控制電路設(shè)計學(xué)院:XXXXXXXXXXXXX院專業(yè):自動化學(xué)生姓名:XXXXXXXX學(xué)號:XXXXXXXXXX指導(dǎo)老師:XXXXXXXXXXXXXXXXXXXXX職稱:高級工程師題目類型:口理論研究□實驗研究a工程設(shè)計□工程技術(shù)研究□軟件開發(fā)2011年09月15日摘要在相當(dāng)長的時間里,計算機(jī)作為科學(xué)工具,在科學(xué)技術(shù)的神圣殿堂里默默地工作,而工業(yè)現(xiàn)場的測控領(lǐng)域并沒有得到真正的實惠,進(jìn)入21世紀(jì)后,由于電子技術(shù)的迅猛發(fā)展,新型電子產(chǎn)品的更新?lián)Q代速度越來越快,以單片機(jī)為核心構(gòu)成的智能化產(chǎn)品具有體積小、功能強(qiáng)、應(yīng)用面廣,使用靈活、價格便宜、工作可靠等優(yōu)點(diǎn),目前正以前所未有的速度取代著傳統(tǒng)電子線路構(gòu)成的經(jīng)典系統(tǒng)。與單片機(jī)相結(jié)合,計算機(jī)才真正地走進(jìn)尋常百姓之家,成為廣大工程技術(shù)人員現(xiàn)代化技術(shù)革新、技術(shù)革命的有利武器。本文針對舵機(jī)數(shù)字化控制器的設(shè)計,研究其硬件電路設(shè)計、軟件程序設(shè)計和關(guān)鍵算法。在分析舵機(jī)控制的性能要求和相關(guān)控制方法的基礎(chǔ)上,提出了基于上位機(jī)和下位機(jī)的控制結(jié)構(gòu),通過串口通信傳輸數(shù)據(jù)和指令,從而實現(xiàn)舵機(jī)控制。本設(shè)計以STC12C5A08S2單片機(jī)為核心,利用模擬舵機(jī)的機(jī)械部分,其中包括小型直流電機(jī)和一個反饋可調(diào)電位器,直流電機(jī)用H橋芯片LG9110來驅(qū)動,電位器進(jìn)行角度測量,通過單片機(jī)的內(nèi)部A/D轉(zhuǎn)換來反饋實時角度,上位機(jī)通過RS232串口與單片機(jī)進(jìn)行通信,舵機(jī)根據(jù)上位機(jī)所設(shè)定的角度,利用PWM信號驅(qū)動LG9110控制電動機(jī)轉(zhuǎn)動,系統(tǒng)通過上位機(jī)來設(shè)置舵機(jī)地址、波特率、給定角度。經(jīng)過實際調(diào)試驗證,舵機(jī)角度在0度?180度范圍內(nèi)可由上位機(jī)設(shè)定,精度為正負(fù)1度,符合設(shè)計要求。關(guān)鍵詞:舵機(jī);單片機(jī);角度控制;PWM目錄TOC\o"1-5"\h\z\o"CurrentDocument"引言1\o"CurrentDocument"1舵機(jī)控制系統(tǒng)概述12STC12C5A08S2單片機(jī)概述2\o"CurrentDocument"STC12C5A08S2簡介2\o"CurrentDocument"STC12C5A08S2系列主要性能3A/D轉(zhuǎn)換器3\o"CurrentDocument"脈寬調(diào)制PWM原理3\o"CurrentDocument"3串口通信5\o"CurrentDocument"串口通信的作用5\o"CurrentDocument"RS-232C接口和MAX232芯片簡介5MAX232芯片引腳描述及其應(yīng)用64驅(qū)動芯片8\o"CurrentDocument"5硬件設(shè)計思路9\o"CurrentDocument"5.1系統(tǒng)基本原理9\o"CurrentDocument"5.2系統(tǒng)硬件設(shè)計10\o"CurrentDocument"6.系統(tǒng)主程序10\o"CurrentDocument"6.1主程序設(shè)計要點(diǎn)106.2上位機(jī)117.1硬件調(diào)試117.2軟件調(diào)試12參考文獻(xiàn)12附錄13引言隨著高新技術(shù)在測控領(lǐng)域中的應(yīng)用,有力地促進(jìn)了控制的系統(tǒng)化和精確化,然而,經(jīng)典的反饋控制、現(xiàn)代控制和大系統(tǒng)理論在應(yīng)用中遇到不少難題。首先,這些控制系統(tǒng)的設(shè)計和分析都是建立在精確的系統(tǒng)數(shù)學(xué)模型的基礎(chǔ)上的,但是各個領(lǐng)域?qū)ψ詣涌刂葡到y(tǒng)控制精度、響應(yīng)速度、系統(tǒng)穩(wěn)、定性與自適應(yīng)能力的要求越來越高,被控對象或過程的非線性、時變性、多參數(shù)點(diǎn)的強(qiáng)烈耦合、較大的隨機(jī)擾動、各種不確定性以及現(xiàn)場測試手段不完善等,使難以按數(shù)學(xué)方法建立被控對象的精確模型;其次,為了提高控制的性能,整個控制系統(tǒng)變得極其復(fù)雜,增加了設(shè)備的投資,降低了系統(tǒng)的可靠性。人工智能的出現(xiàn)和發(fā)展,促進(jìn)了自動控制向更高的層次,即智能控制發(fā)展?;趩纹瑱C(jī)的智能控制系統(tǒng),使得舵機(jī)等伺服系統(tǒng)的模塊化和數(shù)字化更容易實現(xiàn),極大的促進(jìn)了控制精度、響應(yīng)速度等控制要求的提高。舵機(jī)作為一種伺服電機(jī)屬于閉環(huán)控制系統(tǒng),和一般的直流電機(jī)、交流電機(jī)相比具有較高的控制精度,步進(jìn)電機(jī)雖然也具有一定的控制精度但仍然屬于開環(huán)結(jié)構(gòu)。于是舵機(jī)在機(jī)器人關(guān)節(jié)控制和航模轉(zhuǎn)舵控制等需要精確控制而又沒有很高載荷的系統(tǒng)中就顯得十分經(jīng)濟(jì)實用,在航空航天儀器、雷達(dá)、導(dǎo)彈、智能自適應(yīng)儀器、各種武器電子和抗惡劣環(huán)境電子等系統(tǒng)中也得到廣泛應(yīng)用。1舵機(jī)控制系統(tǒng)概述舵機(jī)工作原理舵機(jī),又名伺服電機(jī),主要是由外殼馬達(dá)、減速齒輪和電位器構(gòu)成。舵機(jī)主要適用于那些角度不斷變化并可以保持的控制系統(tǒng),比如人形機(jī)器人的手臂和腿,車模和航模的方向控制。舵機(jī)工作原理:舵機(jī)本質(zhì)上是可定位的馬達(dá),它的內(nèi)部包括了一個小型直流馬達(dá)、一組變速齒輪組、一個反饋可調(diào)電位器和一塊電子控制板。它是一個典型閉環(huán)反饋系統(tǒng)[1],減速齒輪組由馬達(dá)驅(qū)動,其終端(輸出端)帶動一個線性的比例電位器作位置檢測,該電位器把轉(zhuǎn)角坐標(biāo)轉(zhuǎn)換為一比例電壓反饋給控制線路板,控制線路板將其與輸入的控制脈沖信號比較,產(chǎn)生調(diào)整脈沖,并驅(qū)動馬達(dá)正向或反向地轉(zhuǎn)動,使齒輪組的輸出位置與期望值相符,令調(diào)整脈沖趨于為0,從而達(dá)到使舵機(jī)精確定位的目的。簡單的說就是發(fā)一個控制信號給舵機(jī),經(jīng)過電路板判斷轉(zhuǎn)動方向,再驅(qū)動馬達(dá)開始轉(zhuǎn)動,透過減速齒輪將動力傳至擺臂,同時由電位器檢測送回信號,判斷是否已經(jīng)達(dá)到指定位置。數(shù)字舵機(jī)(DigitalServo)和模擬舵機(jī)(AnalogServo)在基本的機(jī)械結(jié)構(gòu)方面是完全一樣的,主要由馬達(dá)、減速齒輪、控制電路等組成,而數(shù)字舵機(jī)和模擬舵機(jī)的最大區(qū)別

則體現(xiàn)在控制電路上,數(shù)字舵機(jī)的控制電路比模擬舵機(jī)的多了微處理器和晶振。相對于模擬舵機(jī),數(shù)字舵機(jī)有如下優(yōu)點(diǎn):首先,驅(qū)動馬達(dá)的動力,可以由微處理器的程序調(diào)整,以應(yīng)用于不同的應(yīng)用場合,并優(yōu)化舵機(jī)性能。其次,舵機(jī)馬達(dá)能以更高的頻率響應(yīng)控制信號,而且“死區(qū)”(無響應(yīng)區(qū))變?。环磻?yīng)變得更快;加速和減速時也更迅速、更柔和;運(yùn)轉(zhuǎn)精度以及舵機(jī)鎖位能力也更強(qiáng)。本設(shè)計就是利用模擬舵機(jī)的機(jī)械部分,運(yùn)用單片機(jī)和電位器的閉環(huán)系統(tǒng)進(jìn)行角度控制,采用電位器進(jìn)行角度檢測,由單片機(jī)對其進(jìn)行處理,輸出PWM脈沖信號控制舵機(jī)轉(zhuǎn)動到所設(shè)定的角度。即將模擬舵機(jī)改裝成數(shù)字舵機(jī),實現(xiàn)了舵機(jī)的數(shù)字化控制。2STC12C5A08S2單片機(jī)概述2.1STC12C5A08S2簡介新一代宏晶芯片具有1個時鐘/機(jī)器周期,高速、高可靠,2路PWM,8路10位高速A/D轉(zhuǎn)換,25萬次/秒1T8051帶總線,無法解密,管腳直接兼容傳統(tǒng)89C52,有全球唯一ID號可省復(fù)位電路,36-44個I/O內(nèi)部R/C時鐘的新一代宏晶芯片加密性強(qiáng),解密難度高。2.2STC12C5A08S2系列主要性能?高速:1個時鐘/機(jī)器周期,增強(qiáng)型8051內(nèi)核,速度比普通8051快8?12倍?寬電壓:5.5?3.3V,2.2?3.6V(STC12LE5A60S2系列)?增加第二復(fù)位功能腳(高可靠復(fù)位,可調(diào)整復(fù)位門檻電壓,頻率<12MHz時,無需此功能)?增加外部掉電檢測電路,可在掉電時,及時將數(shù)據(jù)保存進(jìn)EEPROM,正常工作時無需操作EEP?低功耗設(shè)計:空閑模式,HOLTEK芯片解密,(可由任意一個中斷喚醒)?低功耗設(shè)計:掉電模式(可由外部中斷喚醒),可支持下降沿/上升沿和遠(yuǎn)程喚醒?工作頻率:0?35MHz,相當(dāng)于普通8051:0?420MHz?時鐘:外部晶體或內(nèi)部RC振蕩器可選,在ISP下載編程用戶程序時設(shè)置?8/16/20/32/40/48/52/56/60/62K字節(jié)片內(nèi)Flash程序存儲器,擦寫次數(shù)10萬次以上?1280字節(jié)片內(nèi)RAM數(shù)據(jù)存儲器?芯片內(nèi)EEPROM功能,擦寫次數(shù)10萬次以上?ISP/IAP,在系統(tǒng)可編程/在應(yīng)用可編程,無需編程器/仿真器?8通道,10位高速ADC,速度可達(dá)25萬次/秒,2路PWM還可當(dāng)2路D/A使用?2通道捕獲/比較單元(PWM/PCA/CCP),---也可用來再實現(xiàn)2個定時器或2個外部中斷(支持上升沿/下降沿中斷)?4個16位定時器,兼容普通8051的定時器T0/T1,2路PCA實現(xiàn)2個定時器?可編程時鐘輸出功能,T0在P3.4輸出時鐘,T1在P3.5輸出時鐘,BRT在P1.0輸出時鐘?硬件看門狗(WDT)

?高速SPI串行通信端口?全雙工異步串行口(UART),兼容普通8051的串口?先進(jìn)的指令集結(jié)構(gòu),兼容普通8051指令集,有硬件乘法/除法指令?通用I/O口(36/40/44個),復(fù)位后為:準(zhǔn)雙向口/弱上拉(普通8051傳統(tǒng)I/O口)可設(shè)置成四種模式:準(zhǔn)雙向口/弱上拉,推挽/強(qiáng)上拉,僅為輸入/高阻,開漏每個I/O口驅(qū)動能力均可達(dá)到20mA,但整個芯片最大不得超過100mA2.3A/D轉(zhuǎn)換器特點(diǎn):⑴10位精度⑵0.5LSB的非線性度⑶土2LSB的絕對精度⑷13-260期的轉(zhuǎn)換時間⑸最高分辨率時采樣率高達(dá)15kSPS⑹6路復(fù)用的單端輸入通道⑺2路附加復(fù)用的單端輸入通道(TQFP與MLF封裝)⑻可選的左對齊ADC讀數(shù)⑼0-VCC的ADC輸入電壓范圍⑽可選的2.56VADC參考電壓(11)連續(xù)轉(zhuǎn)換或單次轉(zhuǎn)換模式(12)ADC轉(zhuǎn)換結(jié)束中斷2.4脈寬調(diào)制PWM原理本系統(tǒng)采用內(nèi)部16位定時器T1來產(chǎn)生兩路PWM信號。16位的T/C可以實現(xiàn)精確的程序定時(事件管理)、波形產(chǎn)生和信號測量。其主要特點(diǎn)如下:⑴真正的16位設(shè)計(即允許16位的PWM)⑵2個獨(dú)立的輸出比較單元⑶雙緩沖的輸出比較寄存器⑷一個輸入捕捉單元⑸輸入捕捉噪聲抑制器⑹比較匹配發(fā)生時清除寄存器(自動重載)⑺無干擾脈沖,相位正確的PWM⑻可變的PWM周期⑼頻率發(fā)生器;外部事件計數(shù)器⑽4個獨(dú)立的中斷源(TOV1、OCF1A、OCF1B與ICF1)寄存器:定時器/計數(shù)器TCNT1、輸出比較寄存器OCR1A/B與輸入捕捉寄存器ICR1均為16位寄存器。訪問16位寄存器必須通過特殊的步驟,T/C控制寄存器TCCR1A/B為8位寄存器,沒有CPU訪問的限制。雙緩沖輸出比較寄存器OCR1A/B一直與T/C的值做比較。波形發(fā)生器用比較結(jié)果產(chǎn)生PWM或在輸出比較引腳OC1A/B輸出可變頻率的信號。比較匹配結(jié)果還可置位比較匹配標(biāo)志OCF1A/B,用來產(chǎn)生輸出比較中斷請求。在PWM模式下用OCR1A作為TOP值時,OCR1A寄存器不能用作PWM輸出。但此時OCR1A是雙向緩沖的,TOP值可在運(yùn)行中得到改變。當(dāng)需要一個固定的TOP值時可以使用ICR1寄存器,從而釋放OCR1A來用作PWM輸出。工作模式:工作模式-T/C和輸出比較引腳的行為-由波形發(fā)生模式(WGM13:0)及比較輸出模式(COM1x1:0)的控制位決定。比較輸出模式對計數(shù)序列沒有影響,而波形產(chǎn)生模式對計數(shù)序列則有影響。COM1x1:0控制PWM輸出是否為反極性。非PWM模式時COM1X1:0控制輸出是否應(yīng)該在比較匹配發(fā)生時置位、清零,或電平取反。本設(shè)計采用相位修正PWM模式。相位修正PWM模式(WGM13:0=1、2、3、10或11)為用戶提供了一個獲得高精度的、相位準(zhǔn)確的PWM波形的方法。與相位和頻率修正模式類似,此模式基于雙斜坡操作。計時器重復(fù)地從BOTTOM計到TOP,然后又從TOP倒退回到BOTTOM。在一般的比較輸出模式下,當(dāng)計時器往TOP計數(shù)時若TCNT1與OCR1x匹配,OC1x將清零為低電平;而在計時器往BOTTOM計數(shù)時若TCNT1與OCR1x匹配,OC1x將置位為高電平。工作于反向比較輸出時則正好相反。與單斜坡操作相比,雙斜坡操作可獲得的最大頻率要小。但其對稱特性十分適合于電機(jī)控制。相位修正PWM模式的PWM分辨率固定為8、9或10位,或由ICR1或OCR1A定義。最小分辨率為2比特(ICR1或OCR1A設(shè)為0x0003),最大分辨率為16位(ICR1或OCR1A設(shè)為MAX)。PWM分辨率位數(shù)可用下式計算:工作于相位修正PWM模式時,計數(shù)器的數(shù)值一直累加到固定值0x00FF、0x01FF、0x03FF(WGM13:0=1、2或3)、ICR1(WGM13:0=10)或OCR1A(WGM13:0=11),然后改變計數(shù)方向。在一個定時器時鐘里TCNT1值等于TOP值。具體的時序圖為圖2.2。圖中給出了當(dāng)使用OCR1A或ICR1來定義TOP值時的相位修正PWM模式。圖中柱狀的TCNT1表示這是雙邊斜坡操作。方框圖同時包含了普通的PWM輸出以及反向PWM輸出。TCNT1斜坡上的短水平線表示OCR1x和TCNT1的匹配比較。比較匹配后OC1x中斷標(biāo)志置位。

Period圖2.2相位修正PWM模式時序圖Period串口通信3.1串口通信的作用系統(tǒng)需要接收上位機(jī)設(shè)置的角度的數(shù)據(jù),并把下位機(jī)的數(shù)據(jù)傳到上位機(jī)。因此串口模塊的作用就是把單片機(jī)需要傳送到上位機(jī)的數(shù)據(jù)轉(zhuǎn)換成電腦的RS-232標(biāo)準(zhǔn)串口數(shù)據(jù),以便把數(shù)據(jù)發(fā)送到上位機(jī)。3.2RS-232C接口和MAX232芯片簡介本系統(tǒng)串口通信模塊設(shè)計采用的是MAX232芯片把單片機(jī)傳來的數(shù)據(jù)轉(zhuǎn)換成RS-232標(biāo)準(zhǔn)串口數(shù)據(jù)。以下對RS-232C接口和MAX232芯片做簡要的介紹。RS-232C的全稱是“數(shù)據(jù)終端設(shè)備(DTE)和數(shù)據(jù)通信設(shè)備(DCE)之間的串行二進(jìn)制數(shù)據(jù)交換接口技術(shù)標(biāo)準(zhǔn)”,適合于短距離通信或帶調(diào)制解調(diào)器的通信應(yīng)用場合.PC機(jī)上一般都會有RS-232C接口,MAX232芯片是專門為電腦的RS-232標(biāo)準(zhǔn)串口設(shè)計的一款兼容RS232標(biāo)準(zhǔn)的芯片,其結(jié)構(gòu)圖如圖3.1所示。該器件包含2個驅(qū)動器2個接收器和一個電壓發(fā)生器電路提供TIA/EIA-232-F電平。該器件符合TIA/EIA-232-F標(biāo)準(zhǔn),每一個接收器將TIA/EIA-232-F電平轉(zhuǎn)換成5-VTTL/CMOS電平。每一個發(fā)送器將TTL/CMOS電平轉(zhuǎn)換成

TIA/EIA-232-F電平。3.3MAX232芯片引腳描述及其應(yīng)用MAX232芯片引腳圖如圖3.1所示:116]215]314]413]512]6111710]87C1+gC1一C2+CSVs-T2OUTR2INGNDT1OUTR1INR1OUTtunT2INR2OUT圖3.1MAX232芯片引腳圖本系統(tǒng)數(shù)據(jù)的接收和發(fā)送引腳選用的是T21N,R21N,R2OUT,T2OUT四個引腳,其中T21N、R2OUT與標(biāo)準(zhǔn)的RS-232C接口相連。負(fù)責(zé)數(shù)據(jù)把轉(zhuǎn)化好的數(shù)據(jù)傳送到上位機(jī);T2OUT、R21N與單片機(jī)相連,負(fù)責(zé)接收從單片機(jī)送來的數(shù)據(jù)。3.3.1MAX232應(yīng)用電路介紹MAX232外圍需要4個電解電容C1、C2、C3、C4,是內(nèi)部電源轉(zhuǎn)換所需電容。其取值均為1UF/25V。宜選用鉭電容并且應(yīng)盡量靠近芯片°C5為0.1UF的去耦電容。如圖3.2所示。但本設(shè)計均采用104電容。<161卜「■■二1|.卜FromCMOSofTILToCMOSorHL15CND塵1iiFJ-?-~*kR5V+二偵—EIWTIA-232O?put—EIAJTIAJ12Output13——EIATA-232Input&—EIATAJJ?Input圖<161卜「■■二1|.卜FromCMOSofTILToCMOSorHL15CND塵1iiFJ-?-~*kR5V+二偵—EIWTIA-232O?put—EIAJTIAJ12Output13——EIATA-232Input&—EIATAJJ?Input圖3.2MAX232應(yīng)用接口電路JUR11LED7DB99IS470:C2一―VCCVCCGND104U521613不SSL3□4VDDCL+VCCC1-T1OUTT1INK1QNT2INT2QUTK1QUTR2IWR2OUTVEEC2+GNDC2-HIK232CP1T"TT1012y-礦T"214104JillCOM2GNDC2L51043.3.2串口模塊原理圖設(shè)計單片機(jī)要通過與MAX232芯片與上位機(jī)的串口相連才能與上位機(jī)通訊。單片機(jī)與上位機(jī)連接電路圖如圖3.3所示。本系統(tǒng)是通過單片機(jī)的控制通過串口與PC通信來實現(xiàn)的,首先,串口的2,3腳與232芯片的任一路接收端和發(fā)送端相連;然后再通過對應(yīng)路的發(fā)送端和接收端與單片機(jī)的對應(yīng)RXD和TXD相連,再串口中斷打開后發(fā)送和接收數(shù)據(jù),實現(xiàn)串口異步通信。在異步傳送方式中,字符是按幀格式進(jìn)行發(fā)送的。異步通信的幀格式如表3.1所示。表3.1異步通信的幀格式n-1第N個字符(一串行幀)n+1P10D0D1D2D3D4D5D6D7P10D0起始位數(shù)據(jù)位校驗位停止位

驅(qū)動芯片電機(jī)驅(qū)動芯片LG9110⑴低靜態(tài)工作電流;⑵寬電源電壓范圍:2.5V-12V;⑶每通道具有800mA連續(xù)電流輸出能力;⑷較低的飽和壓降;⑸TTL/CMOS輸出電平兼容,可直接連CPU;⑹輸出內(nèi)置鉗位二極管,適用于感性負(fù)載;⑺控制和驅(qū)動集成于單片IC之中;⑻具備管腳高壓保護(hù)功能;⑼工作溫度:0°C-80°C。LG9110是為控制和驅(qū)動電機(jī)設(shè)計的兩通道推挽式功率放大專用集成電路器件,將分立電路集成在單片IC之中,使外圍器件成本降低,整機(jī)可靠性提高。該芯片有兩個TTL/CMOS兼容電平的輸入,具有良好的抗干擾性;兩個輸出端能直接驅(qū)動電機(jī)的正反向運(yùn)動,它具有較大的電流驅(qū)動能力,每通道能通過750?800mA的持續(xù)電流,峰值電流能力可達(dá)1.5?2.0A;同時它具有較低的輸出飽和壓降;內(nèi)置的鉗位二極管能釋放感性負(fù)載的反向沖擊電流,使它在驅(qū)動繼電器、直流電機(jī)、步進(jìn)電機(jī)或開關(guān)功率管的使用上安全可靠。管腳定義如表4.1所示。表4.1LG9110管腳定義序號符號功能1OAA路輸出管卿2VCC電源電壓3VCC電源電壓4OBB路輸出管卵SGND地線6[AA路輸入管腳7IBB路輸入管邱8GND地線怕入A日iiAHHllIIA■hiIB

圖4.1LG9110管腳波形圖直流電機(jī)圖4.2應(yīng)用電路硬件設(shè)計思路5.1系統(tǒng)基本原理直流電機(jī)圖4.2應(yīng)用電路本文以STC12C5A80S2為核心,利用模擬舵機(jī)的機(jī)械部分,其中包括小型直流電機(jī)和一個反饋可調(diào)電位器,來組成一個閉環(huán)的舵機(jī)控制系統(tǒng),直流電機(jī)用H橋芯片LG9110來驅(qū)動,電位器進(jìn)行角度測量,通過單片機(jī)的內(nèi)部A/D轉(zhuǎn)換來反饋實時角度,上位機(jī)通過RS232串口與單片機(jī)進(jìn)行通信,將所設(shè)定的角度送到單片機(jī),單片機(jī)通過編程產(chǎn)生PWM信號,經(jīng)由LG9110驅(qū)動,控制電機(jī)的正反轉(zhuǎn)。整體電路原理框圖如圖5.1所示圖5.1整體電路原理框圖控制流程如下:

⑴上位機(jī)設(shè)定-90°到+90°之間的角度,通過串口發(fā)送到單片機(jī);⑵單片機(jī)讀取角度v并將其轉(zhuǎn)換成10位二進(jìn)制數(shù)r;⑶電位器測量當(dāng)前角度,并將結(jié)果送到單片機(jī)的A/D轉(zhuǎn)換通道進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換結(jié)果為10為二進(jìn)制數(shù)y;5.2系統(tǒng)硬件設(shè)計CLi-VI-QHDgJI-Oai-iC3-h-dVJl-1k-a141U-O~I~~|~~~~~I~-II=,==iM-4__\-□□a,U1JLFt1.1PiiT—L—f'Ei:cxifjII~~|eorMCLi-VI-QHDgJI-Oai-iC3-h-dVJl-1k-a141U-O~I~~|~~~~~I~-II=,==iM-4__\-□□a,U1JLFt1.1PiiT—L—f'Ei:cxifjII~~|eorMH'V的血B)M1ijKDL;iPOJiADJ)時血MS)H.+iACt)5|KCTijPflJfADi)蹄皿JEK,^rAiE.-Jld&|P£BHFkTAl?)GtnsgI~~~~hd"-Wm3LDA.IM]DILTJU]dWDJLW5DJLUJ4EDMFmrE5Ji(-ZTEli更i貯WLJEM-tD)XI心R-S;A1S)FJ.*:£!::lP!i;M.L)lPJl(AP)10州U)7DLTIL7:,,-n-5圖5.1系統(tǒng)原理圖6.系統(tǒng)主程序系統(tǒng)硬件電路設(shè)計方案確定以后,主要功能將依賴于系統(tǒng)軟件編程來實現(xiàn)??刂葡到y(tǒng)能否正常可靠地工作,除了硬件設(shè)計合理外,功能完善的軟件設(shè)計是非常關(guān)鍵的。這一部分將詳細(xì)闡述本設(shè)計方案所需實現(xiàn)的功能、系統(tǒng)軟件資源分配,上位機(jī)的設(shè)計方案及具體實現(xiàn)方法。6.1主程序設(shè)計要點(diǎn)在論述具體的軟件程序設(shè)計之前,先對軟件設(shè)計的原則、方法等軟件設(shè)計要點(diǎn)作簡要的闡述,這是進(jìn)行軟件程序設(shè)計的依據(jù)和手段。應(yīng)用程序的主要設(shè)計原則是:⑴軟件設(shè)計與硬件電路設(shè)計需綜合考慮。⑵軟件設(shè)計必須保證系統(tǒng)的各個硬件功能模塊能夠協(xié)調(diào)工作,完成指定的系統(tǒng)功能。⑶各項功能程序設(shè)計實現(xiàn)模塊化。⑷合理規(guī)劃程序存儲區(qū)和數(shù)據(jù)存儲區(qū),為功能的擴(kuò)展預(yù)留空間,方便今后系統(tǒng)的功能完善和軟件升級。⑸采取軟件抗干擾措施,保證系統(tǒng)更可靠的運(yùn)行。6.2上位機(jī)目前,在許多單片機(jī)應(yīng)用系統(tǒng)中,上、下位機(jī)分工明確,作為下位機(jī)核心器件的單片機(jī)往往只負(fù)責(zé)數(shù)據(jù)采集和通信,而上位機(jī)通常以基于圖形界面的Windows核心為操作平臺,為便于查詢和保存數(shù)據(jù),還需要數(shù)據(jù)庫的支持,這種應(yīng)用的核心是數(shù)據(jù)通信,它包括單片機(jī)和上位機(jī)之間、客戶端和服務(wù)器之間以及客戶端和客戶端之間的通信,而單片機(jī)和上位機(jī)之間數(shù)據(jù)通信則是整個系統(tǒng)的基礎(chǔ)。單片機(jī)和PC的通信是通過單片機(jī)和PC串口之間的硬件連接實現(xiàn)的。7.系統(tǒng)調(diào)試7.1硬件調(diào)試由于本設(shè)計硬件比較簡單,分兩個模塊:單片機(jī)模塊和電平轉(zhuǎn)換模塊,所以硬件調(diào)試主要是單片機(jī)模塊。在電路制作完成后,不要急于上電測試,而首先必須做好以下調(diào)試前的檢查工作。檢查連線情況:⑴經(jīng)常碰到的有錯接(即連線的一端正確,而另一端誤接)、少接(指安裝時漏接的線)及多接(指在電路上完全是多余的連線),等連線錯誤。檢查連線可以直接對照電路原理圖進(jìn)行,但若電路中布線較多,則可以以元器件(如運(yùn)放、三極管)為中心,依次檢察查其引腳的有關(guān)連線,這樣不僅可以查出錯接或少接的線,而且也較易發(fā)現(xiàn)多余的線。⑵為確保連線的可靠,在查線的同時,還可以用萬用表電阻檔對接線作連通檢查,而且最好在器件外引線處測量,這樣有可能查出某些“虛焊”的隱患。⑶檢查元器件焊接情況:元器件的檢查,重點(diǎn)要查有極性的元件有否接錯,以及外引線間有否短路,同時還須檢查元器件焊接處是否可靠。這里需要指出,在焊接前,必須對元器件進(jìn)行檢測,確保元器件能正常工作,以免給調(diào)試帶來不必要的麻煩。⑷檢查電源輸入端與公共接地端間有否短路在通電前,還需用萬用表檢查電源輸入端與地之間是否存短路,若有則須進(jìn)一步檢查其原因。⑸在完成了以上各項檢查并確認(rèn)無誤后,才可通電調(diào)試,但此時應(yīng)注意電源的正、負(fù)極性不能接反??紤]到本設(shè)計只是一次學(xué)習(xí)過程,對性能要求不是很高,所以采用下載線的5VVCC供電這樣的方法,電路也盡可能的精簡。在檢查驅(qū)動電路時,在未加單片機(jī)使能控制的情況下,通電待系統(tǒng)工作后,用萬用表測量LG9110的1腳和4腳是否有輸出。若輸出電壓大小不符合要求,則說明驅(qū)動芯片有問題。若確定驅(qū)動電路無誤,則對單片機(jī)使能,下載調(diào)試好的程序到單片機(jī),使系統(tǒng)運(yùn)行。用萬用表檢查單片機(jī)的各個引腳,尤其是PB1、PB2的PWM輸出引腳的電壓大小是否接近理論值,若不是或者沒有輸出,則直接給定該端口賦固定的位變量值,觀察輸出情況,符合要求,則說明是軟件問題。具體調(diào)試見軟件調(diào)試。單片機(jī)輸出符合要求后,連接上舵機(jī),觀察舵機(jī)是否在指定位置停住轉(zhuǎn)動,若在指定位置左右來回轉(zhuǎn)動,說明PD參數(shù)沒調(diào)好;若舵機(jī)一直轉(zhuǎn)到盡頭停不下來則說明舵機(jī)反饋端斷開,或者單片機(jī)讀不到正確的A/D轉(zhuǎn)換值。綜合調(diào)試過程中的各種問題后,在老師的指導(dǎo)下,最終得出期望的結(jié)果,調(diào)試成功。7.2軟件調(diào)試把調(diào)試好的程序下載到單片機(jī)中,接上電源,檢驗程序是否如自己所設(shè)計的那樣可以實現(xiàn)所要求的功能。如果電路板上的結(jié)果和設(shè)想的不同,由于在硬件檢查部分已經(jīng)確定了硬件沒問題。則應(yīng)該是軟件部分即程序方面的問題。需要檢查程序。首先檢外接收中斷部分,接收到的數(shù)據(jù)是否能夠正確讀取,并轉(zhuǎn)換成設(shè)定的角度值。接收部分沒問題再檢查T1定時器的設(shè)置,選用的頻率、工作模式,PB1、PB2端口是否設(shè)置為輸出。因為前面已經(jīng)確定硬件沒有問題了,所以,在軟件調(diào)試的時候可以結(jié)合硬件來在線調(diào)試,這樣很直觀,而且發(fā)現(xiàn)問題也很容易,觀察舵機(jī)是否還在所指定角度來回轉(zhuǎn)動,耐心的調(diào)試,直到舵機(jī)準(zhǔn)確的達(dá)到指定的角度并停止轉(zhuǎn)動。調(diào)試是整個設(shè)計的關(guān)鍵部分,調(diào)試的成功與否關(guān)系到系統(tǒng)運(yùn)行的成功與否,所以在調(diào)試時要格外的細(xì)心和有耐心,在自己的努力和老師的指導(dǎo)下最終調(diào)試成功。參考文獻(xiàn):童詩白,華成英.模擬電子技術(shù)基礎(chǔ)[M].北京:高等教育出版社,2000.先鋒工作室.單片機(jī)程序設(shè)計實例[M].北京:清華大學(xué)出版社,2003.馬忠梅等.單片機(jī)的C語言應(yīng)用程序設(shè)計[M].北京:北京航空航天大學(xué)出版社,2003.潘新民,王燕芳.微型計算機(jī)控制技術(shù)[M].北京:電子工業(yè)出版社,2007.金春林,邱慧芳,張皆喜.AVR系列單片機(jī)C語言編程與應(yīng)用實例[M].北京清華大學(xué)出版社,2003.李江全,朱東芹.VisualBasic數(shù)據(jù)采集與串口通信測控應(yīng)用實戰(zhàn)[M].北京:人民郵電出版社,2010.#include<stc12c5a.h>〃頭文件#defineucharunsignedchar#defineuintunsignedintuncharsig=0,count,s1num,miao,shi,fen;floatflag=0,init=0,miao1=0,shi1=0,fen1=0,AD=0;sbitrs=P3A2;〃定義1602液晶RS端sbitrw=P2A6;sbitlcden=P3A3;//定義1602液晶LCDEN端sbits1=P2A3;〃定義按鍵--功能鍵sbits2=P2A2;//定義按鍵--增加鍵sbits3=P2A1;〃定義按鍵--減小鍵sbits4=P2A0;〃確定鍵ucharcodetable[]="trueangle:";//定義初始上電時液晶默認(rèn)顯示狀態(tài)ucharcodetable1[]="angle:";voiddelay(uintz)//延時函數(shù)(uintx,y;for(x=z;x>0;x--)for(y=120;y>0;y--);}voidPWM_init(void){CMOD=0x80;〃設(shè)置PCA定時器CCON=0x00;CL=0x00;CH=0x00;CCAPM0=0x42;//PWM0設(shè)置PCA工作方式為PWM方式(01000010)CCAP0L=0x00;〃設(shè)置PWM0初始值與CCAP0H相同CCAP0H=0x00;//PWM0初始時為0CCAPM1=0x42;//PWM1設(shè)置PCA工作方式為PWM方式(使用時刪除//)CCAP1L=0x00;〃設(shè)置PWM1初始值與CCAP0H相同CCAP1H=0x00;//PWM1初始時為0CR=1;//啟動PCA定時器}voidPWM0_set(unsignedchara,unsignedcharb){CCAP0L=a;〃設(shè)置值直接寫入CCAP0LCCAP0H=a;〃設(shè)置值直接寫入CCAP0HCCAP1L=b;〃設(shè)置值直接寫入CCAP0LCCAP1H=b;〃設(shè)置值直接寫入CCAP0H}voidad_init()//AD初始化函數(shù){ADC_CONTRI=0x80;//開A/D電源delay(100);〃必要的延時P1ASF=0x01;//P1.0作為模擬量輸入口delay(100);//必要的延時ADC_CONTR=0xc0;//開A/D電源

delay(100);}voidcon_init(void){SCON=0x5a;PCON=0X80;TMOD=0x20;TH1=TL1=-13;TR1=1;}voidSendData(chardat){TI=0;SBUF=dat;while(!TI);}RecData(void){intdat;while(!RI);RI=0;dat=SBUF;returndat;}voidwrite_com(ucharcom)//液晶寫命令函數(shù){rw=0;rs=0;//8bitdata//8bitdata,noparitybit//T1as8-bitautoreload//SetUartbaudrate//ClearTIflag//Waitforthepreviousdataissen//Waitforthepreviousdataissen//ClearTIflag//SendcurrentdataP0=com;delay(5);lcden=1;delay(5);lcden=0;}voidwrite_date(uchardate)//液晶寫數(shù)據(jù)函數(shù){rw=0;rs=1;lcden=0;P0=date;delay(5);lcden=1;delay(5);lcden=0;}voidwrite_sfm(ucharadd,uchardate)//寫時分秒函數(shù){ucharge;ge=date;write_com(0x80+0x40+add);//設(shè)置顯示位置write_date(0x30+ge);//送去液晶顯示個位}voidlcdinit()//初始化函數(shù)(ucharnum;lcden=0;rw=0;fen=0;//初始化種變量值miao=0;shi=0;count=0;s1num=0;write_com(0x38);//初始化1602液晶write_com(0x0c);write_com(0x06);write_com(0x01);write_com(0x80);//設(shè)置顯示初始坐標(biāo)for(num=0;num<11;num++)//顯示年月日星期(write_date(table[num]);delay(5);}write_com(0xc0);//設(shè)置顯示初始坐標(biāo)for(num=0;num<11;num++)//顯示年月日星期(write_date(table1[num]);delay(5);}write_sfm(14,miao);//分別送去液晶顯示write_sfm(13,fen);write_sfm(12,shi);}voidkeyscan()//按鍵掃描函數(shù){if(s1==0){delay(5);if(s1==0)//確認(rèn)功能鍵被按下{s1num++;//功能鍵按下次數(shù)記錄while(!s1);//釋放確認(rèn)if(s1num==1)//第一次被按下時{write_com(0x80+0x40+14);//光標(biāo)定位到秒位置write_com(0x0f);//光標(biāo)開始閃爍}if(s1num==2)//第二次按下光標(biāo)閃爍定位到分鐘位置{write_com(0x80+0x40+13);}if(s1num==3)//第三次按下光標(biāo)閃爍定位到小時位置{write_com(0x80+0x40+12);}if(s1num==4)//第四次按下{s1num=0;//記錄按鍵數(shù)清零write_com(0x0c);//取消光標(biāo)閃爍}}}if(s1num!=0)//只有功能鍵被按下后,增加和減小鍵才有效{if(s2==0){delay(5);if(s2==0)//增加鍵確認(rèn)被按下{while(!s2);//按鍵釋放if(s1num==1)//若功能鍵第一次按下{miao++;〃則調(diào)整秒加1if(miao==10)//若滿60后將清零miao=0;write_sfm(14,miao);//每調(diào)節(jié)一次送液晶顯示一下write_com(0x80+0x40+14);//顯示位置重新回到調(diào)節(jié)處}if(s1num==2)//若功能鍵第二次按下{fen++;//則調(diào)整分鐘加1if(fen==10)//若滿60后將清零fen=0;write_sfm(13,fen);//每調(diào)節(jié)一次送液晶顯示一下write_com(0x80+0x40+13);//顯示位置重新回到調(diào)節(jié)處}if(s1num==3)//若功能鍵第三次按下{shi++;//則調(diào)整小時加1if(shi==2)//若滿24后將清零shi=0;write_sfm(12,shi)

溫馨提示

  • 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

提交評論