已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
拖動(dòng)系統(tǒng)課程設(shè)計(jì)報(bào)告書題目:直流電機(jī)轉(zhuǎn)速負(fù)反饋調(diào)節(jié)器專業(yè):自動(dòng)化 姓名: 學(xué)號:指導(dǎo)教師:任務(wù)書:設(shè)計(jì)題目:閉環(huán)控制的PWM直流調(diào)速系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)專題題目:直流電機(jī)速度閉環(huán)調(diào)速系統(tǒng)任務(wù)下達(dá)日期:2015年5月15日設(shè)計(jì)日期:2015年6月7日-2015年6月17日主要內(nèi)容:1、測定綜合實(shí)驗(yàn)中所用控制對象的參數(shù)(由實(shí)驗(yàn)完成)。2、根據(jù)給定指標(biāo)設(shè)計(jì)轉(zhuǎn)速調(diào)節(jié)器,并選擇調(diào)節(jié)器參數(shù)和具體實(shí)現(xiàn)電路。3、按設(shè)計(jì)結(jié)果組成系統(tǒng),以滿足給定指標(biāo)。4、研究參數(shù)變化對系統(tǒng)性能的影響。5、在變工況(加載)下進(jìn)行調(diào)試。要求:1、能獨(dú)立設(shè)置電機(jī)速度(按鍵設(shè)置或滑動(dòng)變阻器設(shè)置或上位機(jī)設(shè)置);2、能顯示當(dāng)前電機(jī)的實(shí)際速度(單位為:r/min);3、能控制電機(jī)啟動(dòng)、停止、正反轉(zhuǎn)、軟啟動(dòng)和軟制動(dòng);4、給電機(jī)加載后,速度能迅速調(diào)節(jié)回給定值;摘要本文章介紹了有TIM4C123GH6PM芯片以及帶編碼器的直流電機(jī)、L298電機(jī)驅(qū)動(dòng)模塊、矩陣鍵盤,串口四位數(shù)碼管構(gòu)成的PID轉(zhuǎn)速閉環(huán)控制系統(tǒng)。由芯片的正交編碼模塊對電機(jī)自帶的編碼器產(chǎn)生的信號進(jìn)行正交解碼得到速度值,并由芯片將其與設(shè)定值進(jìn)行比較的到偏差,再由偏差產(chǎn)生的直接控制作用去消除偏差。本文中不僅介紹了基礎(chǔ)TIM4C123GH6PM的轉(zhuǎn)速控制系統(tǒng)的軟件設(shè)計(jì),還涉及了硬件的設(shè)計(jì)方法。本文介紹系統(tǒng)不僅可以實(shí)現(xiàn)自動(dòng)調(diào)速,還可實(shí)現(xiàn)電機(jī)的正反轉(zhuǎn)以及啟停控制,以及對電機(jī)轉(zhuǎn)向進(jìn)行標(biāo)志。關(guān)鍵詞:直流電機(jī);PID閉環(huán)控制;TM4C123GH6PM;矩陣鍵盤;串口四位數(shù)碼管目錄1 系統(tǒng)概述12 硬件設(shè)計(jì)12.1 控制器12.2 按鍵模塊22.3 串口四位數(shù)碼管22.4 L298電機(jī)驅(qū)動(dòng)模塊32.5 直流電機(jī)42.5.1 直流電機(jī)參數(shù)42.5.2 編碼器參數(shù)42.5.3 信號線說明53 軟件設(shè)計(jì)53.1 主函數(shù)部分53.2 速度計(jì)算模塊53.3 速度顯示模塊53.4 按鍵檢測模塊63.5 PID控制模塊84 系統(tǒng)調(diào)試105 結(jié)束語116 參考文獻(xiàn)117 附錄12正文:1. 系統(tǒng)概述本次設(shè)計(jì)以數(shù)字PID為控制算法,以TIM4C123GH6PM為控制芯片,運(yùn)用TIM4的PWM模塊產(chǎn)生受PID算法控制的PWM信號驅(qū)動(dòng)L298N電機(jī)驅(qū)動(dòng)模塊進(jìn)而驅(qū)動(dòng)電機(jī),并用TIM4的正交編碼模塊對編碼器產(chǎn)生的脈沖進(jìn)行計(jì)數(shù),實(shí)現(xiàn)轉(zhuǎn)速閉環(huán)控制,達(dá)到轉(zhuǎn)速無靜差的目的。2. 硬件電路設(shè)計(jì)硬件連接示意圖2.1. 控制器采用TIM4C123GH6PM,TIM4具有高速,低功耗的特點(diǎn),而且自帶PWM模塊和正交編碼模塊,不僅控制性能好而且簡便易于實(shí)現(xiàn)。并且自帶3色LED都燈??梢宰鳛橥V?,正轉(zhuǎn),反轉(zhuǎn)的信號標(biāo)志。其管腳如下:2.2. 按鍵模塊按鍵為自己焊接的43矩陣鍵盤,采用掃描式方法,在A2,A3,A 4依次給低電平,B04進(jìn)行檢測,根據(jù)組合進(jìn)行判定數(shù)字2.3. 串口四位數(shù)碼管2.4. L298電機(jī)驅(qū)動(dòng)模塊2.5. 直流電機(jī)2.5.1. 直流電機(jī)參數(shù):電機(jī)的電樞電阻11歐。工作電壓可從3V至30V。堵轉(zhuǎn)電流=電壓 / 電樞電阻。 18v時(shí)空轉(zhuǎn)轉(zhuǎn)速9000rpm,其他電壓下的轉(zhuǎn)速可大致按比例計(jì)算。2.5.2. 編碼器參數(shù):共輸出兩路正交(相位相差90)脈沖信號。分辨率334,意味著電機(jī)每旋轉(zhuǎn)一周輸出334個(gè)周期脈沖。如果把每一路脈沖的上沿和下沿都利用起來,相當(dāng)于四倍頻,分辨率可以達(dá)到344=1336。334線AB相編碼器,內(nèi)含整形電路,輸出是方波,可直聯(lián)單片機(jī)IO。編碼器供電電壓為5V,AB相輸出,在A相或B相的上升或下降沿時(shí)判斷對方的電平,就可以判斷電機(jī)的轉(zhuǎn)動(dòng)方向。2.5.3. 信號線說明:A相方波輸出,B相方波輸出,VCC,GND是編碼器電源,必須穩(wěn)壓。電機(jī)1,電機(jī)2是直流電機(jī)的電源。3. 軟件設(shè)計(jì)3.1. 主函數(shù)部分該函數(shù)先要要設(shè)置系統(tǒng)時(shí)鐘,在函數(shù)中系統(tǒng)時(shí)鐘為50MHz,然后便要對本次課程設(shè)計(jì)中數(shù)碼管,按鍵所需要的GPIO口進(jìn)行初始化配置。接著要對芯片上的PWM模塊、正交編碼模塊進(jìn)行初始化配置。然后要設(shè)置電機(jī)的初始狀態(tài)。各個(gè)部分初始化完畢后,設(shè)計(jì)主循環(huán)部分的函數(shù),速度檢測應(yīng)該放到最前,因?yàn)閿?shù)碼管顯示和PID控制都需要用到檢測的速度,然后便是數(shù)碼管顯示顯示實(shí)時(shí)速度,按鍵檢測檢測完畢后,如果按鍵輸入速度,便要通過PID控制達(dá)到所設(shè)置的速度。然后往復(fù)循環(huán)。.1.3.2. 速度計(jì)算模塊由于正交編碼模塊采用雙邊沿觸發(fā)設(shè)置,故電機(jī)運(yùn)行一圈的脈沖數(shù)為3344。程序如下:speed_signal=QEIVelocityGet(QEI1_BASE);/得到脈沖個(gè)數(shù)speed=(speed_signal*50*60)/(4*334);/速度計(jì)算speedDirectionGet=QEIDirectionGet(QEI1_BASE);/得到電機(jī)轉(zhuǎn)速方向3.3. 速度顯示函數(shù)由于按鍵輸入時(shí)要顯示出按鍵值,所以加入輸入數(shù)字個(gè)數(shù)檢測變量,在無按鍵按下的情況顯示速度,在按鍵按下時(shí),顯示按鍵值,直到四個(gè)數(shù)字輸完,顯示全部的四位數(shù)字,才切換會速度顯示。程序如下:if(jianceTime=0) SpeedDisplay();else if(jianceTime=0xFF)for(i=0;i1000;i+)LED4_Display(); jianceTime=0;elseLED4_Display();3.4. 按鍵檢測模塊由于加入防抖動(dòng)延時(shí),按鍵函數(shù)分為兩部分,一部分為按鍵按下檢測,另一部分為按鍵值檢測按鍵按下檢測程序:GPIOPinWrite(GPIO_PORTA_BASE,GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4,0);if(!(GPIOPinRead(GPIO_PORTB_BASE,GPIO_PIN_0)&GPIOPinRead(GPIO_PORTB_BASE,GPIO_PIN_1)&GPIOPinRead(GPIO_PORTB_BASE,GPIO_PIN_2)&GPIOPinRead(GPIO_PORTB_BASE,GPIO_PIN_3)SysCtlDelay(SysCtlClockGet()/100);if(!(GPIOPinRead(GPIO_PORTB_BASE,GPIO_PIN_0)&GPIOPinRead(GPIO_PORTB_BASE,GPIO_PIN_1)&GPIOPinRead(GPIO_PORTB_BASE,GPIO_PIN_2)&GPIOPinRead(GPIO_PORTB_BASE,GPIO_PIN_3)shaomiao(3-jianceTime);GPIOPinWrite(GPIO_PORTA_BASE,GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4,0);while(!(GPIOPinRead(GPIO_PORTB_BASE,GPIO_PIN_0)&GPIOPinRead(GPIO_PORTB_BASE,GPIO_PIN_1)&GPIOPinRead(GPIO_PORTB_BASE,GPIO_PIN_2)&GPIOPinRead(GPIO_PORTB_BASE,GPIO_PIN_3)/按鍵釋放檢測按鍵值檢測程序:GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4,0xFF);GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_2,0);if(!GPIOPinRead(GPIO_PORTB_BASE,GPIO_PIN_0)LED1i=1;if(!GPIOPinRead(GPIO_PORTB_BASE,GPIO_PIN_1)LED1i=4;if(!GPIOPinRead(GPIO_PORTB_BASE,GPIO_PIN_2)LED1i=7;if(!GPIOPinRead(GPIO_PORTB_BASE,GPIO_PIN_3)jianceTime=0xFF;judge_forward_reverse();return;GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_2,GPIO_PIN_2);GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_3,0);if(!GPIOPinRead(GPIO_PORTB_BASE,GPIO_PIN_0)LED1i=2;if(!GPIOPinRead(GPIO_PORTB_BASE,GPIO_PIN_1)LED1i=5;if(!GPIOPinRead(GPIO_PORTB_BASE,GPIO_PIN_2)LED1i=8;if(!GPIOPinRead(GPIO_PORTB_BASE,GPIO_PIN_3)LED1i=0;GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_3,GPIO_PIN_3);GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_4,0);if(!GPIOPinRead(GPIO_PORTB_BASE,GPIO_PIN_0)LED1i=3;if(!GPIOPinRead(GPIO_PORTB_BASE,GPIO_PIN_1)LED1i=6;if(!GPIOPinRead(GPIO_PORTB_BASE,GPIO_PIN_2)LED1i=9;if(!GPIOPinRead(GPIO_PORTB_BASE,GPIO_PIN_3)LED0=11;LED1=11;LED2=11;LED3=11;jianceTime=0xFF;stop();return;GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_4,GPIO_PIN_4);3.5. PID控制模塊由于電機(jī)的機(jī)械特性,導(dǎo)致一個(gè)PID參數(shù)難以對電機(jī)轉(zhuǎn)速進(jìn)行寬范圍的調(diào)控,經(jīng)測試尤其200r/min一下,難以正常運(yùn)轉(zhuǎn),因此進(jìn)行分段PID控制if(setspeed5000)out=5000;if(out=-5000)out=-5000;past_uk=out;e0=e1;e1=e2;PulseWidth=PulseWidth+PulseWidth*(out/5000);if(PulseWidth1)PulseWidth=1;if(setspeed=200) /200r/min以上PID控制Kp=0.04;Ki=0.000001;Kd=0.00001;e2=setspeed-speed;uk=Kp*(e2-e1)+Ki*e2+Kd*(e2-2*e1+e0);out=uk+past_uk;if(out5000)out=5000;if(out=-5000)out=-5000;past_uk=out;e0=e1;e1=e2;PulseWidth=PulseWidth+PulseWidth*(out/5000);if(PulseWidth1)PulseWidth=1;govern_speed();4. 系統(tǒng)調(diào)試本次課程設(shè)計(jì)的程序,我是一個(gè)模塊一個(gè)模塊依次編寫的,首先是顯示模塊,顯示模塊的程序?yàn)?1程序移植,這個(gè)模塊唯一難點(diǎn)便是M4的GPIO口操作要比51復(fù)雜很多,除了花點(diǎn)時(shí)間之外,并沒有太多困難。在顯示模塊之后是按鍵模塊,由于用的矩陣鍵盤,除了需要配置較多GPIO口之外,便是程序的邏輯問題。剛開始我的鍵盤掃描程序編寫的是一個(gè)較大的子程序,編完程序調(diào)試時(shí)變出了問題,按了2下1,數(shù)碼管便顯示4個(gè)1.經(jīng)檢查是沒有加防抖動(dòng)延時(shí),因?yàn)橛玫木仃囨I盤,按下檢測比較麻煩,不知道怎么檢測哪一個(gè)按鈕,便起了僥幸心理,沒想到就問題。后來經(jīng)過思考,按下檢測不需要知道哪個(gè)按鍵按下,于是便讓A1A 3口均輸出低電平,讓B0B3口進(jìn)行檢測,只要有低電平按下,便進(jìn)行防抖延時(shí)。加入防抖延時(shí)后,仍然不能完全解決問題,經(jīng)過思考,系統(tǒng)時(shí)鐘較快,如果按下時(shí),系統(tǒng)可以執(zhí)行兩遍掃描程序,那便依然會出現(xiàn)上述問題,于是還要加按鍵釋放檢測。加了按鍵釋放檢測,上述問題便迎刃而解。所以一個(gè)鍵盤掃描程序用必須要有防抖延時(shí)和釋放檢測這兩個(gè)環(huán)節(jié)。第三個(gè)模塊就是PWM模塊,這個(gè)模塊是芯片上就有的功能,初始化配置之后便可使用。因?yàn)槟K這個(gè)要配合按鍵輸入占空比進(jìn)行調(diào)速,首先第一個(gè)問題便是修改按鍵程序與之協(xié)調(diào),并要添加正轉(zhuǎn),反轉(zhuǎn),停止和占空比設(shè)置函數(shù)。在程序編寫完畢后,PWM調(diào)速已經(jīng)沒有問題,但是啟停正反轉(zhuǎn)無法實(shí)現(xiàn),還有一個(gè)問題便是停止后,讓電機(jī)啟動(dòng)要進(jìn)入哪個(gè)狀態(tài)。主要問題便是電機(jī)的正反轉(zhuǎn)問題,剛開始正反轉(zhuǎn)便是讓一路PWM占空比為0,另一路有占空比不為0進(jìn)行正反轉(zhuǎn)控制,但是經(jīng)過示波器觀察發(fā)現(xiàn),占空比不為0時(shí)無任何問題,但是占空比為0時(shí),PWM輸出管腳竟然是高電平,與理想中不一樣。于是,設(shè)想如果PWM為0不能實(shí)現(xiàn)高電平,那么關(guān)掉PWM發(fā)生器,PWM發(fā)生器輸出管腳應(yīng)該就為低電平,可是經(jīng)過測試后發(fā)現(xiàn),PWM輸出管腳依舊為高電平,無奈只能去找資料還有查看M4函數(shù)定義以及數(shù)據(jù)手冊,然后經(jīng)過大量測試發(fā)現(xiàn)將PWM輸出管腳輸出功能關(guān)閉之后,PWM輸出管腳為低電平,才解決問題。第四部分便是正交編碼模塊,由于TI的數(shù)據(jù)手冊雖然介紹的正交編碼模塊,但是沒有講解如何用函數(shù)去配置正交編碼模塊,就連TI的官方例程都沒關(guān)于正交編碼的程序,無奈只能去查找TI的函數(shù)庫以及用其他廠商的M4芯片正交編碼的程序作為參考,但是當(dāng)程序編寫出來后,并不能像想象中一樣運(yùn)行,經(jīng)測試正交編碼輸入信號正常,而且由于其他模塊在此模塊前均正常工作,在加此模塊后,除了初始化正交編碼模塊程序外,就加了用正交編碼模塊的速度獲取函數(shù)以及電機(jī)運(yùn)轉(zhuǎn)反向獲取函數(shù)然后送與數(shù)碼管進(jìn)行顯示,所以問題的出現(xiàn)極大可能出現(xiàn)在正交編碼的初始配置上,因?yàn)檎痪幋a的初始化函數(shù)并不是TI提供的,經(jīng)過查閱大量的TIM4系列類似本芯片的正交編碼函數(shù)以及TI論壇的大量程序,發(fā)現(xiàn)初始化配置中缺少了GPIOPinConfigure(GPIO_PC5_PHA1);這一句GPIO復(fù)用功能配置函數(shù)。加上此函數(shù)后,程序運(yùn)行正常,模塊功能正常。5. 結(jié)束語在這次課程設(shè)計(jì)中,由于用了很多剛接觸的東西,我學(xué)會了很多,例如在這次我用了剛接觸的串口4位數(shù)碼管,還有矩陣按鍵的原理雖然原來知道,但也是第一次變?yōu)楝F(xiàn)實(shí)。最為重要的我知道了如何自學(xué)一種芯片,原來的我只知道跟著例程做,現(xiàn)在我知道了要去查這個(gè)芯片的函數(shù)庫,我也知道了如何運(yùn)用一款芯片的數(shù)據(jù)手冊。所以這次課設(shè)不僅提高了我對電機(jī)拖動(dòng)的理解,最為重要的是提高了我的自學(xué)能力。參考文獻(xiàn):【1】 葉朝輝:TM4C123微處理器原理與實(shí)踐。北京:清華大學(xué)出版社,2014.01.01【2】 百度文庫.直流電機(jī)PID控制。網(wǎng)址:/link?url=nLy9H32VHrk6i0Bd6TstcrruXn-w-yZMtRtVtzUpEhMSsadKIFCPZJWoAFJi6rTOuzKFxxt9hzXpBwTU6RMl71RqVhrbUgDQfkESjABk8Pa 【3】 阮毅、陳伯時(shí) 電力拖動(dòng)自動(dòng)控制系統(tǒng)運(yùn)動(dòng)控制系統(tǒng)。機(jī)械工業(yè)出版社2015.01【4】 Tiva TM4C123FH6PM 微控制器數(shù)據(jù)手冊【5】 德州儀器在線技術(shù)支持社區(qū)/question_answer/microcontrollers/tiva_arm_cortex/f/96/t/59991.aspx附錄課設(shè)程序:#include #include #include inc/hw_memmap.h#include driverlib/sysctl.h#include driverlib/gpio.h#include driverlib/pin_map.h#include driverlib/pwm.h#include driverlib/qei.h#define uchar unsigned char#define PERIOD_TIMESysCtlClockGet()/2000#define DIO GPIO_PIN_1#define RCLK GPIO_PIN_2#define SCLK GPIO_PIN_3int anjianzhi=1;uchar LED8;uchar LED18;uchar jianceTime=0;double PulseWidth;unsigned long speed_signal=0;uint32_t setspeed=0,speed=0;int speedDirectionGet=0;int e3;double uk,past_uk,out;uchar speedstop=0;/*PWM初始化*/void Init_PWM()PulseWidth=0.3;/ 設(shè)置PWM時(shí)鐘和系統(tǒng)時(shí)鐘一致SysCtlPWMClockSet(SYSCTL_PWMDIV_1); / 使能PWM外設(shè)SysCtlPeripheralEnable(SYSCTL_PERIPH_PWM0);/ 使能外設(shè)端口SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);/設(shè)置對應(yīng)管腳的PWM信號功能GPIOPinConfigure(GPIO_PB4_M0PWM2);GPIOPinConfigure(GPIO_PB7_M0PWM1);/設(shè)置PWM信號端口GPIOPinTypePWM(GPIO_PORTB_BASE, GPIO_PIN_4);GPIOPinTypePWM(GPIO_PORTB_BASE, GPIO_PIN_7);/PWM生成器配置PWMGenConfigure(PWM0_BASE, PWM_GEN_1, PWM_GEN_MODE_DOWN | PWM_GEN_MODE_NO_SYNC);PWMGenConfigure(PWM0_BASE, PWM_GEN_0, PWM_GEN_MODE_DOWN | PWM_GEN_MODE_NO_SYNC);/設(shè)置PWM信號周期PWMGenPeriodSet(PWM0_BASE, PWM_GEN_1, PERIOD_TIME);PWMGenPeriodSet(PWM0_BASE, PWM_GEN_0, PERIOD_TIME);/設(shè)置PWM信號占空比PWMPulseWidthSet(PWM0_BASE, PWM_OUT_2,PulseWidth*PERIOD_TIME);PWMPulseWidthSet(PWM0_BASE, PWM_OUT_1,PulseWidth*PERIOD_TIME);/ 使能PWM輸出端口PWMOutputState(PWM0_BASE, PWM_OUT_2_BIT, false);PWMOutputState(PWM0_BASE, PWM_OUT_1_BIT, false);/ 使能PWM生成器PWMGenEnable(PWM0_BASE, PWM_GEN_1);PWMGenEnable(PWM0_BASE, PWM_GEN_0);/ 使能PWm生成器模塊的及時(shí)功能.PWMSyncTimeBase(PWM0_BASE, PWM_GEN_1);PWMSyncTimeBase(PWM0_BASE, PWM_GEN_0);/*電機(jī)控制* */void govern_speed(void)PWMPulseWidthSet(PWM0_BASE, PWM_OUT_2, PulseWidth*PERIOD_TIME);PWMPulseWidthSet(PWM0_BASE, PWM_OUT_1, PulseWidth*PERIOD_TIME);void forward(void)speedstop=0;PWMOutputState(PWM0_BASE, PWM_OUT_2_BIT, true);PWMOutputState(PWM0_BASE, PWM_OUT_1_BIT, false);void reverse(void)speedstop=0;PWMOutputState(PWM0_BASE, PWM_OUT_1_BIT, true);PWMOutputState(PWM0_BASE, PWM_OUT_2_BIT, false);void stop(void)speedstop=1;PWMOutputState(PWM0_BASE, PWM_OUT_2_BIT, false);PWMOutputState(PWM0_BASE, PWM_OUT_1_BIT, false);/*數(shù)碼管顯示*/unsigned char LED_0F= /0 1 2 34 5 6 78 90xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xFF,0xbf;void Init_LED(void)SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE);GPIOPinTypeGPIOOutput(GPIO_PORTE_BASE, DIO|RCLK|SCLK);SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3);void LED_OUT(uchar X)uchar i;for(i=8;i=1;i-)if (X&0x80)GPIOPinWrite(GPIO_PORTE_BASE, DIO|RCLK|SCLK, DIO);elseGPIOPinWrite(GPIO_PORTE_BASE,DIO,0);X=1;GPIOPinWrite(GPIO_PORTE_BASE,SCLK, 0);GPIOPinWrite(GPIO_PORTE_BASE,DIO|RCLK|SCLK, SCLK);void LED4_Display (void)uchar i;/顯示第一位i = LED_0FLED0;LED_OUT(i);LED_OUT(0x01);GPIOPinWrite(GPIO_PORTE_BASE, RCLK, 0);GPIOPinWrite(GPIO_PORTE_BASE, DIO|RCLK|SCLK, RCLK);/顯示第二位i = LED_0FLED1;LED_OUT(i);LED_OUT(0x02);GPIOPinWrite(GPIO_PORTE_BASE, RCLK, 0);GPIOPinWrite(GPIO_PORTE_BASE, DIO|RCLK|SCLK, RCLK);/顯示第三位i = LED_0FLED2;LED_OUT(i);LED_OUT(0x04);GPIOPinWrite(GPIO_PORTE_BASE, RCLK, 0);GPIOPinWrite(GPIO_PORTE_BASE, DIO|RCLK|SCLK, RCLK);/顯示第四位i = LED_0FLED3;LED_OUT(i);LED_OUT(0x08);GPIOPinWrite(GPIO_PORTE_BASE, RCLK,0);GPIOPinWrite(GPIO_PORTE_BASE, DIO|RCLK|SCLK, RCLK);void SpeedDisplay(void)if(speed=0)GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3,GPIO_PIN_1);else if(speedDirectionGet=1)GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3,GPIO_PIN_3);elseGPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3,GPIO_PIN_2);LED3=speed/1000;LED2=speed%1000/100;LED1=speed%100/10;LED0=speed%10;LED4_Display();void LED_Display()int i;if(jianceTime=0)SpeedDisplay();else if(jianceTime=0xFF)for(i=0;i2000)LED0=LED1=LED2=LED3=11;elsefor(x=0;x=3;x+)LEDx=LED1x;if(y!=0)setspeed=y;elsestop();/* *速度計(jì)算* */void SpeedCompute(void)speed_signal=QEIVelocityGet(QEI1_BASE);speed=(speed_signal*50*60)/(4*334);speedDirectionGet=QEIDirectionGet(QEI1_BASE);/* *正交編碼初始化* */void Init_QEI(void)SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC); SysCtlPeripheralEnable(SYSCTL_PERIPH_QEI1); GPIOPinConfigure(GPIO_PC5_PHA1); GPIOPinTypeQEI(GPIO_PORTC_BASE, GPIO_PIN_5); GPIOPinConfigure(GPIO
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 養(yǎng)老院老人生活照顧人員職業(yè)道德制度
- 養(yǎng)老院老人健康數(shù)據(jù)統(tǒng)計(jì)分析制度
- 民航安全管理體系培訓(xùn)心得
- 新媒體合伙人合同(2篇)
- 承包采摘黃秋葵協(xié)議書范本(2篇)
- 2024年智能化物流設(shè)備采購合同
- 《食管癌的治療》課件
- 2025年棗莊貨運(yùn)資格證安檢考試題
- 2025年廣州貨運(yùn)從業(yè)資格考試技巧
- 2025年青海貨運(yùn)從業(yè)資格證考試模擬考試題庫
- 北師大版數(shù)學(xué)初二上冊知識點(diǎn)總結(jié)
- 鐵路建設(shè)項(xiàng)目施工企業(yè)信用評價(jià)辦法(鐵總建設(shè)〔2018〕124號)
- 模具報(bào)價(jià)表精簡模板
- 抽樣檢驗(yàn)培訓(xùn)教材(共47頁).ppt
- 時(shí)光科技主軸S系列伺服控制器說明書
- 通用帶式輸送機(jī)TD75或DT型出廠檢驗(yàn)要求及記錄
- 高考英語單項(xiàng)選擇題題庫題
- lonely-planet-PDF-大全
- 成人大專畢業(yè)生自我鑒定
- 汽車轉(zhuǎn)向系統(tǒng)設(shè)計(jì)規(guī)范
- 管鮑之交-歷史劇劇本(共4頁)
評論
0/150
提交評論