




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
機(jī)器人舵機(jī)說明一、舵機(jī)簡介舵機(jī),顧名思義,大海航行靠舵手,舵機(jī)早期是應(yīng)用在航模中控制方向的,在航空模型中,飛行器的飛行姿態(tài)是通過調(diào)整發(fā)動(dòng)機(jī)和各個(gè)控制多面來實(shí)現(xiàn)的,后來有人發(fā)現(xiàn)這種機(jī)器的體積小、重量輕、扭矩大、精度高,由于具備了這樣的優(yōu)點(diǎn),很適合應(yīng)用在機(jī)器人身上作為機(jī)器人的驅(qū)動(dòng)。二、舵機(jī)的分類按照舵機(jī)的轉(zhuǎn)動(dòng)角度分有180度舵機(jī)和360度舵機(jī)。180度舵機(jī)只能在0度到180度之間運(yùn)動(dòng),超過這個(gè)范圍,舵機(jī)就會(huì)出現(xiàn)超量程的故障,輕那么齒輪打壞,重那么燒壞舵機(jī)電路或者舵機(jī)里面的電機(jī)。360度舵機(jī)轉(zhuǎn)動(dòng)的方式和普通的電機(jī)類似,可以連續(xù)的轉(zhuǎn)動(dòng),不過我們可以控制它轉(zhuǎn)動(dòng)的方向和速度。按照舵機(jī)的信號(hào)處理分為模擬舵機(jī)和數(shù)字舵機(jī),它們的區(qū)別在于,模擬舵機(jī)需要給它不停的發(fā)送PWM信號(hào),才能讓它保持在規(guī)定的位置或者讓它按照某個(gè)速度轉(zhuǎn)動(dòng),數(shù)字舵機(jī)那么只需要發(fā)送一次PWM信號(hào)就能保持在規(guī)定的某個(gè)位置。關(guān)于PWM信號(hào)在3.4節(jié)將會(huì)介紹。三、舵機(jī)的內(nèi)部結(jié)構(gòu)一般來說,我們用的舵機(jī)有以下幾個(gè)局部組成:直流電動(dòng)機(jī)、減速器〔減速齒輪組〕、位置反響電位計(jì)、控制電路板〔比擬器〕。舵機(jī)的輸入線共有三根,紅色在中間,為電源正極線,黑色線是電源負(fù)極〔地線〕線,黃色或者白色線為信號(hào)線。其中電源線為舵機(jī)提供6V到7V左右電壓的電源。紅、黑、白線舵機(jī)上蓋紅、黑、白線舵機(jī)上蓋齒輪組直流電機(jī)固定螺絲舵機(jī)后蓋位置反響電位計(jì)控制電路板〔比擬器〕圖1舵機(jī)的內(nèi)部結(jié)構(gòu)四、舵機(jī)的工作原理及控制方法4.1舵機(jī)運(yùn)動(dòng)的對(duì)應(yīng)關(guān)系在對(duì)機(jī)器人進(jìn)行動(dòng)作編程之前我們需要知道,機(jī)器人有許多個(gè)關(guān)節(jié),每一個(gè)關(guān)節(jié)我們稱為一個(gè)自由度。一般的機(jī)體,都有十幾個(gè)自由度,這樣才能夠保證動(dòng)作的靈活性。在機(jī)器人機(jī)體上,我們通常使用舵機(jī)作為每一個(gè)關(guān)節(jié)的連接局部。它可以完成每個(gè)關(guān)節(jié)的定位和運(yùn)動(dòng)。舵機(jī)的控制信號(hào)相對(duì)簡單,控制精度高,反響速度快,而且比伺服電機(jī)省電。這些優(yōu)點(diǎn)是非常突出的。在下面的論述中,會(huì)涉及到舵機(jī)相關(guān)的控制原理,讀者應(yīng)反復(fù)詳細(xì)閱讀。舵機(jī)的外觀入以下圖所示:圖2舵機(jī)外觀這里可以看到,舵機(jī)體積十分小巧。機(jī)器人使用它是非常適宜的。一般的舵機(jī)可以旋轉(zhuǎn)185左右,我們這里留一些余量,算做180度。八位單片機(jī)的精度是256,我們也留一些余量,算作250。這樣我們可以得到一個(gè)根本的對(duì)應(yīng)關(guān)系:ΦΦ舵機(jī)轉(zhuǎn)動(dòng)角度舵機(jī)轉(zhuǎn)動(dòng)角度Φ:0-180度單片機(jī)數(shù)值N:0-250在程序中我們?yōu)槎鏅C(jī)賦予不同的數(shù)值,舵機(jī)便能轉(zhuǎn)動(dòng)到對(duì)應(yīng)的角度。注:在代碼編寫及調(diào)試過程中要時(shí)刻注意舵機(jī)的轉(zhuǎn)動(dòng)角度,在各關(guān)節(jié)不發(fā)生干預(yù)的情況下也要保證其輸出角度不要超出預(yù)設(shè)范圍:0-180度〔單片機(jī)對(duì)應(yīng)取值:0-250〕。注:在代碼編寫及調(diào)試過程中要時(shí)刻注意舵機(jī)的轉(zhuǎn)動(dòng)角度,在各關(guān)節(jié)不發(fā)生干預(yù)的情況下也要保證其輸出角度不要超出預(yù)設(shè)范圍:0-180度〔單片機(jī)對(duì)應(yīng)取值:0-250〕。圖圖3舵機(jī)轉(zhuǎn)動(dòng)角度示意圖4.2舵機(jī)工作原理1、舵機(jī)PWM信號(hào)定義PWM信號(hào)為脈寬調(diào)制信號(hào),其特點(diǎn)在于他的上升沿與下降沿之間的時(shí)間寬度。具體的時(shí)間寬窄協(xié)議參考以下講述。我們目前使用的舵機(jī)主要依賴于模型行業(yè)的標(biāo)準(zhǔn)協(xié)議,隨著機(jī)器人行業(yè)的漸漸獨(dú)立,有些廠商已經(jīng)推出全新的舵機(jī)協(xié)議,這些舵機(jī)只能應(yīng)用于機(jī)器人行業(yè),已經(jīng)不能夠應(yīng)用于傳統(tǒng)的模型上面了。目前,HG14-M舵機(jī)可能是這個(gè)過渡時(shí)期的產(chǎn)物,它采用傳統(tǒng)的PWM協(xié)議,優(yōu)缺點(diǎn)一目了然。優(yōu)點(diǎn)是已經(jīng)產(chǎn)業(yè)化,本錢較低,旋轉(zhuǎn)角度大〔目前所生產(chǎn)的都可到達(dá)185度〕;缺點(diǎn)是控制比擬復(fù)雜,畢竟采用PWM格式。但是它是一款數(shù)字型的舵機(jī),其對(duì)PWM信號(hào)的要求較低:不用隨時(shí)接收指令,減少CPU的疲勞程度;可以位置自鎖、位置跟蹤,這方面超越了普通的步進(jìn)電機(jī);圖4其PWM格式注意的幾個(gè)要點(diǎn):高電平最少為0.5mS,為0.5-2.5mS之間;〔對(duì)應(yīng)舵機(jī)旋轉(zhuǎn)0-180度〕HG14-M數(shù)字舵機(jī)下降沿時(shí)間沒要求,目前采用0.5Ms就行;也就是說PWM波形可以是一個(gè)周期1mS的標(biāo)準(zhǔn)方波。2、PWM信號(hào)控制精度制定上面已經(jīng)提到了八位單片機(jī),我們的舵機(jī)需要的是方波信號(hào)。單片機(jī)的精度直接影響了舵機(jī)的控制精度,這里就詳細(xì)的說明一下。我們采用的是8位STC我們采用的是8位STC12C5410ADCPU,其數(shù)據(jù)分辨率為256,那么經(jīng)過舵機(jī)極限參數(shù)實(shí)驗(yàn),得到應(yīng)該將其劃分為250份。那么0.5mS---2.5Ms的寬度為2mS=2000uS。2000uS÷250=8uS那么:PWM的控制精度為8us我們可以以8uS為單位遞增控制舵機(jī)轉(zhuǎn)動(dòng)與定位。舵機(jī)可以轉(zhuǎn)動(dòng)185度,那么185度÷250=0.74度,那么:舵機(jī)的控制精度為0.74度圖圖5我們?cè)谶@里做了一些名詞上的定義。DIV是一個(gè)時(shí)間位置單位,一個(gè)DIV等于8us,關(guān)系入公式:1DIV=8uS250DIV=2mS1DIV=8uS250DIV=2mS實(shí)際存放器內(nèi)的數(shù)值為:〔#01H〕01———〔#0FAH〕250。共185度,分為250個(gè)位置,每個(gè)位置叫1DIV。那么:185185÷250=0.74度/DIVPWM高電平函數(shù):0.5mS+N×DIV0uS≤N×DIV≤2mS0.5mS≤0.5Ms+N×DIV≤2.5mS根據(jù)這些知識(shí),我們就可以開始編程,并做一些初步的實(shí)驗(yàn)了,學(xué)會(huì)舵機(jī)控制是研究機(jī)器人的一個(gè)比擬技術(shù)手段,需要完全掌握。4.3單舵機(jī)的控制程序 我們已經(jīng)知道了舵機(jī)的工作與控制原理,我們現(xiàn)在可以通過一個(gè)簡單的程序來控制單個(gè)舵機(jī)的運(yùn)轉(zhuǎn)。如果您手頭上有控制板和舵機(jī),而且已經(jīng)熟悉了KEIL軟件和STC燒錄軟件,馬上就可以試試了,如果您還不滿足這些條件的話,也沒什么關(guān)系,先來分析一下這段程序。延時(shí)程序:用于產(chǎn)生所需的PWM信號(hào);;;;┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈;voiddelay_8us()RSEG?PR?delay_8us?Robotdelay_8us: ;延時(shí)8US子程序24周期MOVR1,#3LP2_8us:MOVR2,#3LP1_8us:DJNZR2,LP1_8usDJNZR1,LP2_8usRET;voiddelay_500us()RSEG?PR?delay_500us?Robotdelay_500us: ;延時(shí)500US子程序1500周期MOVR1,#32LP2_500us:MOVR2,#45LP1_500us:DJNZR2,LP1_500usDJNZR1,LP2_500usRET;;┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈;voiddelay_500ms()RSEG?PR?delay_500ms?Robotdelay_500ms:;延時(shí)500MS子程序1500000周期MOVR0,#242LP3_500ms:MOVR1,#242LP2_500ms:MOVR2,#24LP1_500ms:DJNZR2,LP1_500msDJNZR1,LP2_500msDJNZR0,LP3_500msRET;;┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈END單舵機(jī)PWM信號(hào)產(chǎn)生函數(shù):voidPWM(ucharfoot,ucharspeed)voidPWM(ucharfoot,ucharspeed){ uchari,j; for(i=0;i<foot;i++) { P1|=0x01;//將P1.0口拉高 delay_500us(); for(j=0;j<i;j++) //延時(shí)foot*8us { delay_8us(); } P1&=0xfe; //將P1.0口拉低 for(j=0;j<speed;j++)//延時(shí)speed*0.5ms { delay_500us(); }}} 上面函數(shù)的參數(shù)foot,是控制舵機(jī)轉(zhuǎn)動(dòng)的度數(shù),ΔΦ=foot*0.72〔度〕,speed控制的是舵機(jī)轉(zhuǎn)動(dòng)的速度。4.4多路舵機(jī)并行控制方法 上一小節(jié)中比擬詳細(xì)的講解了單舵機(jī)是怎么控制的,但是在機(jī)器人運(yùn)動(dòng)過程中,必須讓多個(gè)舵機(jī)同時(shí)協(xié)作的運(yùn)動(dòng),要想實(shí)現(xiàn)這個(gè)目標(biāo),我們必須有個(gè)精致的并行控制算法。 假設(shè)我們現(xiàn)在要控制8個(gè)舵機(jī)聯(lián)動(dòng),并且這八個(gè)舵機(jī)所要到達(dá)的位置各不相同,我們應(yīng)該怎么做呢?首先我們用逆向思維思考一下,假設(shè)這八個(gè)舵機(jī)的PWM信號(hào)同時(shí)進(jìn)入上升沿(既單片機(jī)上對(duì)應(yīng)的八個(gè)輸出引腳同時(shí)拉高),那么它們進(jìn)入下降沿的時(shí)間順序是怎樣的呢?我們很容易知道舵機(jī)所要到達(dá)的位置與0度位置的夾角w越小〔既高電平寬度〕,它進(jìn)入下降沿就越早,這一點(diǎn)不難理解。假設(shè)我們機(jī)器人身上有8個(gè)舵機(jī),它們要到達(dá)的位置參數(shù)〔n的值〕分別是45,30,15,60,80,98,135,155,為了方便,我們將這些數(shù)存到一個(gè)取名為position的數(shù)組里,既position[8]={45,30,15,60,80,98,135,155}。 為了使這八個(gè)舵機(jī)和單片機(jī)上相應(yīng)的管腳對(duì)應(yīng)起來,我們又設(shè)置了一個(gè)數(shù)組kouchu[8],初始化為kouchu[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f},為了方便起見,下面列了一個(gè)表格。圖6單片機(jī)引腳對(duì)應(yīng)數(shù)組 表1舵機(jī)程序控制數(shù)據(jù)對(duì)照表-1數(shù)組名 下標(biāo)01234567position453015608098135155kouchu(16進(jìn)制)0xfe0xfb0xfd0xf70xef0xbf0xdf0x7f這八個(gè)舵機(jī)對(duì)應(yīng)的理想波形如下:圖7舵機(jī)控制理想輸出波形-1 我們將這八個(gè)舵機(jī)對(duì)應(yīng)的數(shù)組position[8]各個(gè)元素從大到小排序,同時(shí)將數(shù)組kouchu[8]的各個(gè)元素也進(jìn)行相應(yīng)的調(diào)換,這樣做的原因是不使單片機(jī)各引腳對(duì)舵機(jī)的對(duì)應(yīng)控制關(guān)系不打亂,以前是怎么一一對(duì)應(yīng)的,現(xiàn)在還是那樣的對(duì)應(yīng),排序之后的列表如下:表2舵機(jī)程序控制數(shù)據(jù)對(duì)照表-2數(shù)組名下標(biāo)01234567position155135988060453015kouchu0x7f0xbf0xdf0xef0xf70xfe0xfd0xfb以下圖是排序后所對(duì)應(yīng)的PWM理想波形:圖8舵機(jī)控制理想輸出波形-2 通過對(duì)這一系列波形的觀察,我們可以這樣實(shí)現(xiàn)它,先將單片機(jī)上控制舵機(jī)的八路引腳電平同時(shí)間拉高,經(jīng)過延時(shí)500+15*8〔us〕后,將position[7]對(duì)應(yīng)的舵機(jī)信號(hào)輸出引腳拉低,再經(jīng)過〔30-15〕*8us后拉低position[6]對(duì)應(yīng)的舵機(jī)信號(hào)輸出引腳,這樣就依次求差延時(shí),逐個(gè)拉低,知道所有的舵機(jī)都到達(dá)自己所要到達(dá)的位置。這樣的話,我們?cè)趯?duì)position[8]數(shù)組排序之后還要進(jìn)行一個(gè)求差處理。ucharposition[24];//uchar既無符號(hào)字符型ucharkouchu[8];ucharpaixu_ncha[8];ucharposition[24];//uchar既無符號(hào)字符型ucharkouchu[8];ucharpaixu_ncha[8];第一步:定義數(shù)組第二部:給各個(gè)數(shù)組賦值為了方便起見,這里的position[24]的值是一組假設(shè)值。表3position[24]數(shù)據(jù)對(duì)照表下標(biāo)01234567元素值1201001453521019512755下標(biāo)89101112131415元素值1243679316723515587下標(biāo)1617181920212223元素值62154922014617621237表4kouchu[8]數(shù)據(jù)對(duì)照表下標(biāo)01234567元素值0xfe0xfd0xfb0xf70xef0xdf0xbf0x7f表5paixu_ncha[8]數(shù)據(jù)對(duì)照表-1下標(biāo)01234567元素值00000000第三步:將position[24]中的數(shù)組前八個(gè)元素對(duì)應(yīng)賦給paixu_ncha[8]數(shù)組。賦值后paixu_ncha[8]各元素對(duì)應(yīng)的值如下:表6paixu_ncha[8]數(shù)據(jù)對(duì)照表-2下標(biāo)01234567元素值1201001453521019512755第四步:將paixu_ncha[8]數(shù)組各元素從大到小排序kouchu[8]數(shù)組元素也做相應(yīng)的調(diào)整。排序后得到的結(jié)果列表如下:表7paixu_ncha[8]數(shù)據(jù)對(duì)照表-3數(shù)組名下標(biāo)01234567paixu_ncha2101951451271201005535kouchu0xef0xdf0xfb0xbf0xfe0xfd0x7f0xf7第五步:將paixu_ncha[8]數(shù)組作差處理相鄰元素作差結(jié)果存入前面的元素中,最后一個(gè)元素保存原值不變。處理后的結(jié)果如下:表8paixu_ncha[8]數(shù)據(jù)對(duì)照表-4下標(biāo)01234567元素值155018720452035P1=0xff;P1=0xff;//使口P1全部拉高delay_500us(); //調(diào)用延時(shí)500us函數(shù)for(i=0;i<8;i++)//延時(shí)輸出到口P1〔八路〕{for(j=0;j<paixu_ncha[7-i];j++){delay_8us();}P1=P1&kouchu[7-i]; //拉低舵機(jī)對(duì)應(yīng)口的電平。}第六步:PWM波形產(chǎn)生 這些都完成后,再將position[24]中的數(shù)組8—15號(hào)元素對(duì)應(yīng)賦給paixu_ncha[8]數(shù)組,然后重復(fù)上面的三到六步,做完后,再做16—23號(hào)元素,方法一樣。 這段程序中“P1=P1&kouchu[7-i];”語句的作用就是通過位與運(yùn)算將當(dāng)前需要拉低的引腳拉低電平。4.5實(shí)用范例下面所示代碼對(duì)應(yīng)機(jī)器人源代碼中的“pwm.h”頭文件〔如圖1-5〕,此段代碼用于生成控制機(jī)器人舵機(jī)的PWM脈沖。1、為了簡化代碼的書寫過程,我們將“unsignedchar”以及“unsignedint”簡化定義為“uchar”和“uint”。圖9圖9“pwm.h”頭文件位置//━━━━━━━━━━━━━━━━━━//宏定義〔Acerdefinition〕//┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈#defineucharunsignedchar#defineuintunsignedint2、下面所用于聲明的延時(shí)函數(shù)源于“SCT12C5410AD(12MHZ).asm”文件中定義,在此處聲明以便于程序?qū)τ谘訒r(shí)函數(shù)的調(diào)用。這里我們提供了“8us”、“500us”、“500ms”三種延時(shí)時(shí)長,假設(shè)想獲得更長的延時(shí)時(shí)間,只需通過循環(huán)函數(shù)增加延時(shí)次數(shù)以實(shí)現(xiàn)其效果。//━━━━━━━━━━━//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━//函數(shù)聲明〔Functiondeclaration〕//┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈externvoiddelay_8us();//把delay_8us()聲明為外部函數(shù)externvoiddelay_500us();//把delay_500us()聲明為外部函數(shù)externvoiddelay_500ms();//把delay_500ms()聲明為外部函數(shù)//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━//全局變量定義〔Globalvariablesdefined〕//┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈ucharkouchu[8]; //用于提供信號(hào)輸出引腳〔低電平〕ucharpaixu_ncha[8]=0; //提供N差排序空間ucharposition[24]=0; //用于記錄24個(gè)舵機(jī)的位置〔根據(jù)機(jī)器人實(shí)際需求選用〕端口號(hào)舵機(jī)編號(hào)匯編存儲(chǔ)器端口號(hào)舵機(jī)編號(hào)匯編存儲(chǔ)器左大腿:position[0]━>>P1.00舵機(jī)40H左膝蓋:position[1]━>>P1.11舵機(jī)41H左腳踝:position[2]━>>P1.22舵機(jī)42H右大腿:position[3]━>>P1.33舵機(jī)43H右膝蓋:position[4]━>>P1.44舵機(jī)44H右腳踝:position[5]━>>P1.55舵機(jī)45H左肩膀:position[6]━>>P1.66舵機(jī)46H右肩膀:position[7]━>>P1.77舵機(jī)47H左胯:position[8]━>>P2.08舵機(jī)48H左腳:position[9]━>>P2.19舵機(jī)49H右胯:position[10]━>>P2.210舵機(jī)4AH右腳:position[11]━>>P2.311舵機(jī)4BH左上臂:position[12]━>>P2.412舵機(jī)4CH左手:position[13]━>>P2.513舵機(jī)4DH右上臂:position[14]━>>P2.614舵機(jī)4EH右手:position[15]━>>P2.715舵機(jī)4FH5、根據(jù)動(dòng)作需求控制舵機(jī)的運(yùn)動(dòng)。//──────────────────────────────────────//函數(shù)原型:voidPWM_16()//──────────────────────────────────────//函數(shù)原型:voidPWM_16()//函數(shù)名稱:16路舵機(jī)輸出子程序(16SubroutineoutputServos)//功能:對(duì)臨近數(shù)值做差,求出相對(duì)差值,用于延時(shí)??刂贫丝赑1、P2//入口參數(shù):無//返回值:無//┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈voidPWM_16(){uchari=0,j=0; //定義循環(huán)變量//控制P1口舵機(jī),編號(hào):0~7 for(i=0;i<=7;i++)//根據(jù)舵機(jī)所需運(yùn)動(dòng)的位置情況給排序數(shù)組賦值 paixu_ncha[i]=position[i]; sorting();//調(diào)用排序函數(shù)將各輸出通道按舵機(jī)目的位置的數(shù)值大小進(jìn)行排序 N_value();//調(diào)用N差函數(shù)計(jì)算出臨近通道相差的數(shù)值大小,用于延時(shí) P1=0xff;//使口P1全部拉高,提供上升沿高電平 delay_500us();//調(diào)用延時(shí)500us函數(shù),提供最少的0.5mS的高電平輸出時(shí)間 for(i=0;i<8;i++)//延時(shí)輸出到P1口〔8路〕 { for(j=0;j<paixu_ncha[7-i];j++)//將進(jìn)行過差值計(jì)算的paixu_ncha[8]數(shù)組用于控制延時(shí)時(shí)長 delay_8us(); //提供N×DIV動(dòng)作要求高電平時(shí)長 P1=P1&kouchu[7-i];//將對(duì)應(yīng)此時(shí)長的輸出通道端口電平拉低,輸出低電平,舵機(jī)開始動(dòng)作 }//控制P2口舵機(jī),編號(hào):8~15 for(i=0;i<8;i++) //根據(jù)舵機(jī)所需運(yùn)動(dòng)的位置情況給排序數(shù)組賦值 paixu_ncha[i]=position[i+8]; sorting();//調(diào)用排序函數(shù)將各輸出通道按舵機(jī)目的位置的數(shù)值大小進(jìn)行排序 N_value();//調(diào)用N差函數(shù)計(jì)算出臨近通道相差的數(shù)值大小,用于延時(shí) P2=0xff;//使口P2全部拉高,提供上升沿高電平 delay_500us();//調(diào)用延時(shí)500us函數(shù),提供最少的0.5mS的高電平輸出時(shí)間 for(i=0;i<8;i++)//延時(shí)輸出到P2口〔8路〕 { for(j=0;j<paixu_ncha[7-i];j++)//將進(jìn)行過差值計(jì)算的paixu_ncha[8]數(shù)組用于控制延時(shí)時(shí)長 delay_8us(); //提供N×DIV動(dòng)作要求高電平時(shí)長 P2=P2&kouchu[7-i];//將對(duì)應(yīng)此時(shí)長的輸出通道端口電平拉低,輸出低電平,舵機(jī)開始動(dòng)作 }}//────────────────────────────────────────//函數(shù)原型:voidsorting()//函數(shù)名稱:排序子程序(SortingSubroutine)//功能:對(duì)所有通道口的數(shù)值進(jìn)行排序。//參數(shù)://返回值:無//┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈voidsorting(){ uchari=0,j=0,x=0; //定義循環(huán)變量//為選擇的輸出通道提供低電平 kouchu[0]=0xFE; //11111110 kouchu[1]=0xFD; //11111101 kouchu[2]=0xFB; //11111011 kouchu[3]=0xF7; //11110111 kouchu[4]=0xEF; //11101111 kouchu[5]=0xDF; //11011111 kouchu[6]=0xBF; //10111111 kouchu[7]=0x7F; //01111111 /
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- LY/T 3409-2024草種質(zhì)資源調(diào)查編目技術(shù)規(guī)程
- 2025至2030年中國全自動(dòng)雙波峰焊機(jī)數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 電氣安全知識(shí)培訓(xùn)
- 會(huì)議預(yù)約及參會(huì)信息統(tǒng)計(jì)表
- 公共圖書館文獻(xiàn)信息共享服務(wù)協(xié)議
- 教育培訓(xùn)師資庫表格化
- 游樂場(chǎng)項(xiàng)目設(shè)施損害預(yù)防和賠償責(zé)任協(xié)議
- 遼寧省撫順市六校協(xié)作體2024-2025學(xué)年高一下學(xué)期期初檢測(cè)地理試卷(含答案)
- 混凝土澆筑施工合同
- 防水層工程 現(xiàn)場(chǎng)質(zhì)量檢驗(yàn)報(bào)告單
- 第一單元練習(xí)卷(單元測(cè)試)2023-2024學(xué)年統(tǒng)編版語文六年級(jí)下冊(cè)
- 2016年4月自考00040法學(xué)概論試題及答案
- 2024中國碳普惠發(fā)展與實(shí)踐案例研究報(bào)告
- 2024年中國檢驗(yàn)認(rèn)證集團(tuán)招聘筆試參考題庫附帶答案詳解
- 人教版九年級(jí)數(shù)學(xué)下冊(cè)《第二十六章反比例函數(shù)》測(cè)試卷單元測(cè)試卷-帶有參考答案
- 公園售票員管理制度
- 本科:交通管理專業(yè)培養(yǎng)方案(管理學(xué)院)
- 《汽車電子電氣系統(tǒng)構(gòu)造與拆裝》課件 項(xiàng)目三 起動(dòng)系統(tǒng)檢修
- 《安徒生童話》閱讀指導(dǎo)課件
- 沉淀滴定法(應(yīng)用化學(xué)課件)
- 設(shè)計(jì)和開發(fā)控制程序
評(píng)論
0/150
提交評(píng)論