




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、JIU JIANG UNIVERSITYDSP應(yīng)用課程設(shè)計(jì)報(bào)告題 目 利用按鍵任意輸入一個(gè)數(shù)值控制的轉(zhuǎn)動(dòng)角度 院 系 電子工程學(xué)院 專 業(yè) 電子信息工程 姓 名 班 級(jí) 1211 學(xué) 號(hào) 35 日 期 2015.5.22 內(nèi)容提要 步進(jìn)電機(jī)作為一種電脈沖角位移的轉(zhuǎn)換元件,由于具有價(jià)格低廉、易于控制、無積累誤差和計(jì)算機(jī)接口方便等優(yōu)點(diǎn),在機(jī)械、儀表、工業(yè)控制等領(lǐng)域中獲得了廣泛的應(yīng)用。通過DSP對步進(jìn)電機(jī)的控制可以實(shí)現(xiàn)系統(tǒng)實(shí)時(shí)、精確、高效、安全的設(shè)計(jì)要求,從而實(shí)現(xiàn)了自動(dòng)化生產(chǎn)過程。作為重要部件的DSP是否實(shí)現(xiàn)控制要求是應(yīng)用系統(tǒng)能否可靠工作的關(guān)鍵。 許多研究機(jī)構(gòu)和電機(jī)生產(chǎn)廠家對于用單片機(jī)和用功率器件來
2、設(shè)計(jì)步進(jìn)電機(jī)驅(qū)動(dòng)系統(tǒng)作了大量的研究,如把MCS-51系列的8031單片機(jī)、美國Microchip公司的PIC系列的PIC16C5X、各類PLC和VMOS管等功率器件作為控制系統(tǒng)都是比較成熟的。這些方面的資料和經(jīng)驗(yàn)對于將更高速的DSP器件用在驅(qū)動(dòng)系統(tǒng)上都是很有幫助的?,F(xiàn)在流行的方法是將一系列外圍設(shè)備如數(shù)模轉(zhuǎn)換器(AD)、脈寬調(diào)制發(fā)生器(PWM)和數(shù)字信號(hào)處理器(DSP)內(nèi)核集成在一起,就獲得一個(gè)強(qiáng)大又非常經(jīng)濟(jì)的電機(jī)控制專用的的DSP。許多廠家開發(fā)出了電機(jī)專用的DSP器件和支持各種通用算法的模擬軟件。不僅芯片的運(yùn)算速度越來越快,且軟件中集成和固化在硬件中的算法模塊越來越多,使得實(shí)現(xiàn)各種功能和進(jìn)行電
3、機(jī)性能研究變得現(xiàn)實(shí)和容易,能夠?qū)崿F(xiàn)更加理想的控制要求,隨著對步進(jìn)電機(jī)的研究更加深入與芯片價(jià)格的降低和功能的增加以及隨著半導(dǎo)體工藝,尤其是高密度CMOS工藝的發(fā)展和進(jìn)步,芯片的價(jià)格日益下降,而性能卻不斷提高,軟件和開發(fā)工具越來越多,越來越好,應(yīng)用范圍日益廣泛。DSP作為一種高速處理器件在驅(qū)動(dòng)系統(tǒng)中的應(yīng)用也會(huì)更加廣泛和普及,研究DSP在控制領(lǐng)域中的應(yīng)用也有著重大現(xiàn)實(shí)意義。目 錄一 課程設(shè)計(jì)要求4二 總體方案5三 硬件系統(tǒng)設(shè)計(jì)6四 軟件系統(tǒng)設(shè)計(jì)7五 系統(tǒng)調(diào)試及結(jié)果分析8六 總結(jié)9一 課程設(shè)計(jì)要求設(shè)計(jì)要求: 一、利用開發(fā)板上的3*3的矩陣鍵盤的S1S6的6個(gè)按鍵實(shí)現(xiàn)輸入1360之間任意給定的一個(gè)整數(shù),
4、用4位數(shù)碼管依序顯示輸入的整數(shù)。二、按鍵S7表示“退格”鍵。按下此鍵:若數(shù)碼管當(dāng)前顯示的數(shù)值是兩位及以上的數(shù)時(shí),刪除所顯示數(shù)據(jù)最后的一位;若當(dāng)前顯示的數(shù)是一位數(shù)時(shí),則顯示數(shù)據(jù)變成0。三、按鍵S8表示“+/-”符號(hào)鍵。按下此鍵,改變顯示數(shù)據(jù)的符號(hào):若當(dāng)前顯示的數(shù)值是正數(shù)時(shí),則在顯示的數(shù)前加“-”號(hào);若當(dāng)前顯示的數(shù)是負(fù)數(shù)時(shí),則去掉顯示的數(shù)前的“-”號(hào)。四、按鍵S9代表“確認(rèn)”。按下此鍵,步進(jìn)電機(jī)根據(jù)數(shù)碼管顯示數(shù)值進(jìn)行相應(yīng)的動(dòng)作。規(guī)則如下:1、如果數(shù)碼管顯示的是正數(shù),則步進(jìn)電機(jī)順時(shí)針旋轉(zhuǎn)顯示數(shù)字的角度。如:數(shù)碼管顯示125,則步進(jìn)電機(jī)順時(shí)針轉(zhuǎn)動(dòng)至與起始位置成125度的位置停下。步進(jìn)電機(jī)轉(zhuǎn)動(dòng)完成后,蜂
5、鳴器“嘀-嘀-嘀”響三聲。2、如果數(shù)碼管顯示的是負(fù)數(shù),則步進(jìn)電機(jī)逆時(shí)針旋轉(zhuǎn)顯示數(shù)字的角度。如:數(shù)碼管顯示-125,則步進(jìn)電機(jī)逆時(shí)針轉(zhuǎn)動(dòng)至與起始位置成125度的位置停下。步進(jìn)電機(jī)轉(zhuǎn)動(dòng)完成后,蜂鳴器“嘀-嘀-嘀”響三聲。3、步進(jìn)電機(jī)的轉(zhuǎn)動(dòng)角度和所設(shè)定的角度的誤差控制在15度以內(nèi),如果誤差超過15度,可以利用按鍵輸入一個(gè)數(shù)值讓步進(jìn)電機(jī)再轉(zhuǎn)動(dòng)一次進(jìn)行角度修正。但修正之后的誤差要控制在8度以內(nèi)。二 總體方案按照設(shè)計(jì)要求可以把設(shè)計(jì)分為4個(gè)部分。首先是對按鍵電路的設(shè)計(jì)、數(shù)碼管電路的設(shè)計(jì)、步進(jìn)電機(jī)的設(shè)計(jì)、蜂鳴器響應(yīng)的設(shè)計(jì)。下面分別介紹這4個(gè)部分的詳細(xì)方案。按鍵電路:采用3*3的鍵盤。S1鍵為數(shù)碼管數(shù)值+1,S
6、2鍵為數(shù)碼管數(shù)值+10,S3鍵為數(shù)碼管數(shù)值+100,S4鍵為數(shù)碼管數(shù)值-1,S5鍵為數(shù)碼管數(shù)值-10,S6鍵為數(shù)碼管數(shù)值-100,S7為退格鍵,S8為負(fù)號(hào)鍵,S9為確定鍵。數(shù)碼管顯示電路:采用共陽極四位七段數(shù)碼管。由按鍵控制顯示值,顯示值為(0正負(fù)360)。步進(jìn)電機(jī):由按鍵S9控制。數(shù)碼管顯示的數(shù)值即為電機(jī)需要轉(zhuǎn)動(dòng)的角度,按鍵按下S9電機(jī)轉(zhuǎn)動(dòng)。按鍵S8控制電機(jī)正轉(zhuǎn)(正數(shù))或反轉(zhuǎn)(負(fù)數(shù))電機(jī)所轉(zhuǎn)的角度計(jì)算過程:。蜂鳴器:步進(jìn)電機(jī)轉(zhuǎn)完,蜂鳴器響3聲。 按鍵 數(shù)碼管顯示 蜂鳴器響應(yīng) 步進(jìn)電機(jī)三 硬件系統(tǒng)設(shè)計(jì)本設(shè)計(jì)用到了DSPF28335開發(fā)板上的數(shù)碼管、3*3按鍵、蜂鳴器還有電機(jī)。1. 數(shù)碼管本開發(fā)
7、板上的數(shù)碼管采用的是共陽極四位七段數(shù)碼管。每個(gè)數(shù)碼管內(nèi)部共有12個(gè)引腳,分別是內(nèi)部四個(gè)數(shù)碼管共用adp這8根數(shù)據(jù)線(也稱段選線)和四個(gè)數(shù)碼管的四個(gè)公共端SEG1SEG4(也稱位選線)。7段數(shù)碼管是指數(shù)碼管里有7個(gè)小LED發(fā)光二極管,通過控制不同的LED的亮滅來顯示出不同的字形。除了7段式以外常用的還有8段式,8段比7段多了一個(gè)小數(shù)點(diǎn),其他基本相同。一個(gè)7段或8段數(shù)碼管稱為一位,多個(gè)數(shù)碼管并列在一起可構(gòu)成多位數(shù)碼管,如本開發(fā)板是4個(gè)數(shù)碼管并在一起,所以叫4位數(shù)碼管。圖3 數(shù)碼管控制電路3. 按鍵13*3矩陣鍵盤的工作原理和掃描確認(rèn)方式當(dāng)鍵盤中按鍵數(shù)量較多時(shí),為了減少對I/O口的占用,通常將按鍵排
8、列成矩陣形式,也稱為行列鍵盤。矩陣式鍵盤接口如圖4所示,它由行線和列線組成,按鍵位于行、列的交叉點(diǎn)上。當(dāng)按鍵按下時(shí),其交點(diǎn)的行線和列線接通,相應(yīng)的行線或列線的電平發(fā)生變化,DSP通過檢測行或列線上的電平變化可以確定哪個(gè)按鍵被按下。圖4 F28335鍵盤接口圖在矩陣鍵盤的軟件接口程序中,經(jīng)常使用的按鍵識(shí)別方法有行列掃描法和線反轉(zhuǎn)法,本項(xiàng)目采用列掃描法對矩陣鍵盤進(jìn)行判別。圖1中GPIO53、GPIO52、GPIO51為3根行線,作為鍵盤的輸入口(工作于輸入方式);GPIO50、GPIO49、 GPIO48為3根列線,作為輸出口(工作于輸出方式),由DSP控制其輸出的電平值。按鍵識(shí)別的過程如下。1)
9、將全部列線GPIO50、GPIO49、 GPIO48置低電平輸出,然后讀GPIO53、GPIO52、GPIO51三根輸入行線中有無低電平出現(xiàn)。只要有低電平出現(xiàn),則說明有按鍵按下(實(shí)際編程時(shí),還要考慮按鍵的消抖);如果讀到的電平都是高電平,則表示無按鍵按下。2)在確認(rèn)某行有按鍵按下后,需要確定具體是哪一列的按鍵按下。其思路是:依次將列線置為高電平,并檢測行線的輸入,如果行線的電平值由低電平變?yōu)楦唠娖?,則該列對應(yīng)的按鍵處于閉合狀態(tài)。由此,DSP對矩陣鍵盤的按鍵識(shí)別是,采用掃描方式控制列線的輸出信號(hào)和檢測行線輸入的信號(hào)相配合實(shí)現(xiàn)。4. 電機(jī)采用的是步進(jìn)電機(jī)。步進(jìn)電機(jī)是一種將電脈沖轉(zhuǎn)化為角位移的執(zhí)行機(jī)
10、構(gòu)。通俗一點(diǎn)講:當(dāng)步進(jìn)驅(qū)動(dòng)器接收到一個(gè)脈沖信號(hào),它就驅(qū)動(dòng)步進(jìn)電機(jī)按設(shè)定的方向轉(zhuǎn)動(dòng)一個(gè)固定的角度(及步進(jìn)角)。步進(jìn)電機(jī)是將電脈沖信號(hào)轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移的開環(huán)控制元件。在非超載情況下,電機(jī)的轉(zhuǎn)速、停止的位置只取決于脈沖信號(hào)的頻率和脈沖數(shù),而不受負(fù)載變化的影響。這一線性關(guān)系的存在,加上步進(jìn)電機(jī)只有周期性的誤差而無累積誤差等特點(diǎn),使得步進(jìn)電機(jī)在速度、位置等控制領(lǐng)域的控制操作非常簡單。對于步進(jìn)電機(jī)可以通過控制脈沖個(gè)數(shù)來控制角位移量,從而達(dá)到準(zhǔn)確定位的目的;同時(shí)可以通過控制脈沖頻率來控制電機(jī)轉(zhuǎn)動(dòng)的速度和加速度,從而達(dá)調(diào)速的目的。 圖 步進(jìn)電機(jī)接口5.蜂鳴器圖 蜂鳴器與DSP的硬件連接圖 開發(fā)板采用三極管
11、來控制峰鳴器的發(fā)聲,輸入的控制信號(hào)是DSP的GPIO35管腳,經(jīng)J23跳線選擇。四 軟件系統(tǒng)設(shè)計(jì)1.軟件流程主程序流程圖:按鍵設(shè)置流程圖:數(shù)碼管顯示流程圖電機(jī)流程圖:蜂鳴器響應(yīng)流程圖:中斷流程圖:2. 完整程序清單/* 文件名: 數(shù)碼管顯示程序* 描述: 執(zhí)行該程序,數(shù)碼管顯示數(shù)字從00009999遞增 */*程序說明:更換控制平臺(tái),僅需更改IO口初始化、宏定義 以及spi初始化*/#include DSP2833x_Device.h / DSP2833x Headerfile Include File#include DSP2833x_Examples.h / DSP2833x Exampl
12、es Include File#define SET_KY3GpioDataRegs.GPBSET.bit.GPIO48 = 1/Y3拉高#define RST_KY3GpioDataRegs.GPBCLEAR.bit.GPIO48 = 1/Y3拉低#define SET_KY2GpioDataRegs.GPBSET.bit.GPIO49 = 1/Y2拉高#define RST_KY2GpioDataRegs.GPBCLEAR.bit.GPIO49 = 1/Y2拉低#define SET_KY1GpioDataRegs.GPBSET.bit.GPIO50 = 1/Y1拉高#define RST
13、_KY1GpioDataRegs.GPBCLEAR.bit.GPIO50 = 1/Y1拉低#define KX3_STATUS GpioDataRegs.GPBDAT.bit.GPIO51/X3狀態(tài)#define KX2_STATUS GpioDataRegs.GPBDAT.bit.GPIO52/X2狀態(tài)#define KX1_STATUS GpioDataRegs.GPBDAT.bit.GPIO53/X1狀態(tài)/數(shù)據(jù)第3位,SEG1,GPIO16#define SET_BIT4GpioDataRegs.GPASET.bit.GPIO16 = 1 /與外設(shè)板 8_LEDS 端子的 IO16 對應(yīng)
14、#define RST_BIT4GpioDataRegs.GPACLEAR.bit.GPIO16 = 1/與外設(shè)板 8_LEDS 端子的 IO16對應(yīng)/數(shù)據(jù)第2位,SEG2,GPIO17#define SET_BIT3 GpioDataRegs.GPASET.bit.GPIO17 = 1/與外設(shè)板 8_LEDS 端子的 IO17 對應(yīng)#define RST_BIT3GpioDataRegs.GPACLEAR.bit.GPIO17 = 1/與外設(shè)板 8_LEDS 端子的 IO17 對應(yīng)/數(shù)據(jù)第1位,SEG3#define SET_BIT2 GpioDataRegs.GPBSET.bit.GPIO
15、62 = 1 /與外設(shè)板 8_LEDS 端子的 IO62 對應(yīng)#define RST_BIT2GpioDataRegs. GPBCLEAR.bit.GPIO62 = 1/與外設(shè)板 8_LEDS 端子的 IO62 對應(yīng)/數(shù)據(jù)第0位,SEG4#define SET_BIT1 GpioDataRegs.GPBSET.bit.GPIO63 = 1/與外設(shè)板 8_LEDS 端子的 IO63 對應(yīng)#define RST_BIT1GpioDataRegs.GPBCLEAR.bit.GPIO63 = 1/與外設(shè)板 8_LEDS 端子的 IO63 對應(yīng)/*電機(jī)宏定義*/#define PHA_ONGpioDat
16、aRegs.GPASET.bit.GPIO8 = 1/A相輸出高電平#define PHA_OFFGpioDataRegs.GPACLEAR.bit.GPIO8 = 1/A相輸出低電平#define PHB_ONGpioDataRegs.GPASET.bit.GPIO10 = 1/B相輸出高電平#define PHB_OFFGpioDataRegs.GPACLEAR.bit.GPIO10 = 1/B相輸出低電平#define PHC_ONGpioDataRegs.GPASET.bit.GPIO13 = 1/C相輸出高電平#define PHC_OFFGpioDataRegs.GPACLEAR.
17、bit.GPIO13 = 1/C相輸出低電平#define PHD_ONGpioDataRegs.GPASET.bit.GPIO14 = 1/D相輸出高電平#define PHD_OFFGpioDataRegs.GPACLEAR.bit.GPIO14 = 1/D相輸出低電平#define DELAY_TIME100 /延時(shí)時(shí)間#define STEP_TIME15000/*宏定義蜂鳴器相關(guān)操作*/#define BUZZ_CLK_GENERGpioDataRegs.GPBTOGGLE.bit.GPIO35 = 1;/蜂鳴器控制IO,IO電平翻轉(zhuǎn),產(chǎn)生控制脈沖#define BUZZ_OFFGp
18、ioDataRegs.GPBSET.bit.GPIO35 = 1;/關(guān)閉蜂鳴器/*函數(shù)申明*/void DisData_Trans(Uint16 data);/ 4位數(shù)拆分為4個(gè)數(shù),保存到數(shù)組DisData_Trans4,DisData_Trans0為個(gè)位void Sellect_Bit(Uint16 i); / 數(shù)碼管位選函數(shù),i為03,對應(yīng)SEG14void Init_LEDS_Gpio(void); / 設(shè)置SEG14為I/O輸出,并初始化為Lvoid spi_xmit(Uint16 a); / 將數(shù)據(jù)a發(fā)送到SPITXBUFvoid spi_fifo_init(void); / 使能F
19、IFO發(fā)送功能,接收功能未開啟void spi_init(void);void delay2(Uint32 t);void MotionControl1(void);/*/*定義相關(guān)變量*/unsigned int Count,Flag;unsigned int k=0;interrupt void cpu_timer0_isr(void);unsigned char msg12=0xC0,0xf9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xbf,0xff;/共陽段碼:09unsigned int DisData_Bit4 = 0;/存放拆分后的四位數(shù)
20、字Uint16 DisData = 0; /顯示的數(shù)字Uint16 Loop = 0;/循環(huán)掃描變量Uint16 Loop2 = 0;Uint16 Keys33 = 1,2,3,4,5,6,7,8,9; /數(shù)據(jù)表,與9個(gè)按鍵對應(yīng)Uint16 Key = 0; /實(shí)時(shí)按鍵信息變量Uint16 KX_On = 0;Uint16 KY_On = 0;Uint16 KX_Tim4 = 0;Uint16 KX_Status4=0;unsigned int Count,Flag; /時(shí)鐘變量Uint16 alarm_flag=0;Uint16 Flash;Const Uint16 Step Mode18=
21、 0x0D0A,0x0D0A,0x0A0B,0x0A0B,0x0B0C,0x0B0C,0x0C0D,0x0C0D;/單四拍時(shí)序A-B-C-D-A/電機(jī)正反轉(zhuǎn)標(biāo)志0為反轉(zhuǎn),1為正轉(zhuǎn)const Uint16 StepMode1_N8 = 0x0C0D,0x0C0D,0x0B0C,0x0B0C,0x0A0B,0x0A0B,0x0D0A,0x0D0A;/單四拍時(shí)序A-B-C-D-Aconst Uint16 StepMode38 = 0x0D0A,0x0DAB,0x0A0B,0x0ABC,0x0B0C,0x0BCD,0x0C0D,0x0CDA;/八拍時(shí)序A-AB-B-BC-C-CD-D-DA-Acons
22、t Uint16 StepMode3_N8 = 0x0CDA,0x0C0D,0x0BCD,0x0B0C,0x0ABC,0x0A0B,0x0DAB,0x0D0A;void Init_KeyGpio(void);/初始化按鍵IOvoid ResetAllKY(void);/3列全部輸出低電平void KX_AllStatus(void);/讀取3行IO電平狀態(tài)void Read_KX(Uint16 x);/讀取按鍵所在行void Set_KY(Uint16 x);/設(shè)置任意列輸出高電平void Rst_KY(Uint16 x);/設(shè)置任意列輸出低電平void Read_KY(Uint16 x);/
23、讀取按鍵所在列void Read_KY(Uint16 x);/讀取按鍵所在列void GetKey(void);/讀取按鍵值void Motor(); /電機(jī)void show(); /蜂鳴器/void stop1();void MotionControl1(void); /單四拍正轉(zhuǎn)void MotionControl2(void); /單四拍反轉(zhuǎn)void MotionControl3(void); /八拍拍正轉(zhuǎn)void MotionControl4(void); /八拍拍反轉(zhuǎn)void PhaseOff(Uint16 i);void PhaseOn(Uint16 i);void Init_L
24、edGpio(void);void Buzz_Gpio_Init(void); /蜂鳴器響interrupt void cpu_timer0_isr(void);/*3列全部輸出低電平*/void ResetAllKY(void)RST_KY3;RST_KY2;RST_KY1;/*讀取3行IO電平狀態(tài)*/void KX_AllStatus(void)KX_Status1 = KX1_STATUS;KX_Status2 = KX2_STATUS;KX_Status3 = KX3_STATUS;/*讀取按鍵行位置*/void Read_KX(Uint16 x)KX_AllStatus();if(K
25、X_Statusx = 0) KX_Timx+; if(KX_Timx = 6000) KX_On = x; KX_Tim1=0; KX_Tim2=0; KX_Tim3=0; /*指定列輸出高電平*/void Set_KY(Uint16 x)if(x=1)SET_KY1;if(x=2)SET_KY2;if(x=3)SET_KY3;/*指定列輸出低電平*/void Rst_KY(Uint16 x)if(x=1)RST_KY1;if(x=2)RST_KY2;if(x=3)RST_KY3;/*讀取按鍵列位置*/void Read_KY(Uint16 x)if(!KX_StatusKX_On & KX
26、_On)Set_KY(x);delay2(200);KX_AllStatus();if(KX_StatusKX_On)KY_On = x;Key = KeysKX_On-1KY_On-1;KY_On = 0;KX_On = 0;Rst_KY(x);void GetKey(void)Read_KX(1);Read_KX(2);Read_KX(3);Read_KY(1);Read_KY(2);Read_KY(3);/*按鍵IO初始化*/void Init_KeyGpio(void)EALLOW;/以下3個(gè)IO口設(shè)置為輸出,作為列掃描/KY3: 對應(yīng)PCB端子 KEY_MATRIX:IO24Gpio
27、CtrlRegs.GPBPUD.bit.GPIO48 = 0; / Enable pullup on GPIO11 GpioDataRegs.GPBSET.bit.GPIO48 = 1; / Load output latch GpioCtrlRegs.GPBMUX2.bit.GPIO48 = 0; / GPIO11 = GPIO GpioCtrlRegs.GPBDIR.bit.GPIO48 = 1; / GPIO11 = output/KY2: 對應(yīng)PCB端子 KEY_MATRIX:IO25GpioCtrlRegs.GPBPUD.bit.GPIO49 = 0; / Enable pullup
28、 on GPIO11 GpioDataRegs.GPBSET.bit.GPIO49 = 1; / Load output latch GpioCtrlRegs.GPBMUX2.bit.GPIO49 = 0; / GPIO11 = GPIO GpioCtrlRegs.GPBDIR.bit.GPIO49 = 1; / GPIO11 = output/KY1: 對應(yīng)PCB端子 KEY_MATRIX:IO26 GpioCtrlRegs.GPBPUD.bit.GPIO50 = 0; / Enable pullup on GPIO11 GpioDataRegs.GPBSET.bit.GPIO50 = 1;
29、 / Load output latch GpioCtrlRegs.GPBMUX2.bit.GPIO50 = 0; / GPIO11 = GPIO GpioCtrlRegs.GPBDIR.bit.GPIO50 = 1; / GPIO11 = output/以下3個(gè)IO口設(shè)置為輸入,作為行掃描/ /KX3: 對應(yīng)PCB端子 KEY_MATRIX:IO28 GpioCtrlRegs.GPBPUD.bit.GPIO51 = 0; / Enable pullup on GPIO11 GpioCtrlRegs.GPBMUX2.bit.GPIO51 = 0; / 設(shè)置為一般IO口 GpioCtrlRegs
30、.GPBDIR.bit.GPIO51 = 0; / IO口方向?yàn)檩斎?/KX2: 對應(yīng)PCB端子 KEY_MATRIX:IO29 GpioCtrlRegs.GPBPUD.bit.GPIO52 = 0; / Enable pullup on GPIO11 GpioCtrlRegs.GPBMUX2.bit.GPIO52 = 0; / 設(shè)置為一般IO口 GpioCtrlRegs.GPBDIR.bit.GPIO52 = 0; / IO口方向?yàn)檩斎?KX1: 對應(yīng)PCB端子 KEY_MATRIX:IO30 GpioCtrlRegs.GPBPUD.bit.GPIO53 = 0; / Enable pull
31、up on GPIO11 GpioCtrlRegs.GPBMUX2.bit.GPIO53 = 0; / 設(shè)置為一般IO口 GpioCtrlRegs.GPBDIR.bit.GPIO53 = 0; / IO口方向?yàn)檩斎?EDIS; ResetAllKY();/*電機(jī)控制IO初始化*/void Init_StepMotorGpio(void)EALLOW;/Phase AGpioCtrlRegs.GPAPUD.bit.GPIO8 = 0; / Enable pullup on GPIO11 GpioDataRegs.GPASET.bit.GPIO8 = 1; / Load output latch
32、GpioCtrlRegs.GPAMUX1.bit.GPIO8 = 0; / GPIO11 = GPIO GpioCtrlRegs.GPADIR.bit.GPIO8 = 1; / GPIO11 = output/Phase BGpioCtrlRegs.GPAPUD.bit.GPIO13 = 0; / Enable pullup on GPIO11 GpioDataRegs.GPASET.bit.GPIO13 = 1; / Load output latch GpioCtrlRegs.GPAMUX1.bit.GPIO13 = 0; / GPIO11 = GPIO GpioCtrlRegs.GPAD
33、IR.bit.GPIO13 = 1; / GPIO11 = output/Phase CGpioCtrlRegs.GPAPUD.bit.GPIO10 = 0; / Enable pullup on GPIO11 GpioDataRegs.GPASET.bit.GPIO10 = 1; / Load output latch GpioCtrlRegs.GPAMUX1.bit.GPIO10 = 0; / GPIO11 = GPIO GpioCtrlRegs.GPADIR.bit.GPIO10 = 1; / GPIO11 = output/Phase D GpioCtrlRegs.GPAPUD.bit
34、.GPIO14 = 0; / Enable pullup on GPIO11 GpioDataRegs.GPASET.bit.GPIO14 = 1; / Load output latch GpioCtrlRegs.GPAMUX1.bit.GPIO14 = 0; / GPIO11 = GPIO GpioCtrlRegs.GPADIR.bit.GPIO14 = 1; / GPIO11 = output EDIS;PHA_OFF;PHB_OFF;PHC_OFF;PHD_OFF;/*電機(jī)控制IO高電平輸出*/void PhaseOn(Uint16 i)switch(i) case 0xA:PHA_O
35、N;break; case 0xB:PHB_ON;break; case 0xC:PHC_ON;break; case 0xD:PHD_ON;break; case 0x0:break; default:break;/*電機(jī)控制IO低電平輸出*/void PhaseOff(Uint16 i)switch(i) case 0xA:PHA_OFF;break; case 0xB:PHB_OFF;break; case 0xC:PHC_OFF;break; case 0xD:PHD_OFF;break; case 0x0:break; default:break;/*單四拍控制時(shí)序 zheng轉(zhuǎn)函數(shù)
36、*/void MotionControl1(void)Uint16 loop = 0;for(loop = 0;loop4);/第二位:控制信號(hào)高電平判斷PhaseOff(StepMode1loop & 0x0F00)8);/第三位:控制信號(hào)低電平判斷PhaseOff(StepMode1loop & 0xF000)12);/第四位:控制信號(hào)低電平判斷delay2(STEP_TIME);/*單四拍控制時(shí)序 fan轉(zhuǎn)函數(shù)*/void MotionControl2(void)Uint16 loop = 0;for(loop = 0;loop4); /第二位:控制信號(hào)高電平判斷PhaseOff(Ste
37、pMode1_Nloop & 0x0F00)8);/第三位:控制信號(hào)低電平判斷PhaseOff(StepMode1_Nloop & 0xF000)12);/第四位:控制信號(hào)低電平判斷delay2(STEP_TIME);/*八拍控制時(shí)序 正轉(zhuǎn)*/void MotionControl3(void)Uint16 loop = 0;for(loop = 0;loop4);/第二位:控制信號(hào)高電平判斷PhaseOff(StepMode3loop & 0x0F00)8);/第三位:控制信號(hào)低電平判斷PhaseOff(StepMode3loop & 0xF000)12);/第四位:控制信號(hào)低電平判斷dela
38、y2(STEP_TIME);/*八拍控制時(shí)序 反轉(zhuǎn)函數(shù)*/void MotionControl4()Uint16 loop = 0;for(loop = 0;loop4);/第二位:控制信號(hào)高電平判斷PhaseOff(StepMode3_Nloop & 0x0F00)8);/第三位:控制信號(hào)低電平判斷PhaseOff(StepMode3_Nloop & 0xF000)12);/第四位:控制信號(hào)低電平判斷delay2(STEP_TIME);/*初始化IO端口*/void Buzz_Gpio_Init(void)EALLOW; GpioCtrlRegs.GPBPUD.bit.GPIO35 = 0;
39、 / Enable pullup on GPIO35 GpioDataRegs.GPBSET.bit.GPIO35 = 1; / Load output latch GpioCtrlRegs.GPBMUX1.bit.GPIO35 = 0; / GPIO35 = GPIO GpioCtrlRegs.GPBDIR.bit.GPIO35 = 1; / GPIO35 = output EDIS;/*數(shù)碼管位選 IO 接口初始化*/ 設(shè)置SEG14為I/O輸出,并初始化為Lvoid Init_LEDS_Gpio(void) EALLOW;/GpioCtrlRegs.GPBPUD.bit.GPIO16=
40、0; / Enable pullup on GPIO16 GpioCtrlRegs.GPAMUX2.bit.GPIO16 = 0; / GPIO16 = GPIO GpioCtrlRegs.GPADIR.bit.GPIO16 = 1; / GPIO16 = output GpioDataRegs.GPASET.bit.GPIO16 = 1; / Load output latch/GpioCtrlRegs.GPBPUD.bit.GPIO59= 0; / Enable pullup on GPIO17 GpioCtrlRegs.GPAMUX2.bit.GPIO17 = 0; / GPIO17 =
41、 GPIO GpioCtrlRegs.GPADIR.bit.GPIO17 = 1; / GPIO17 = output GpioDataRegs.GPASET.bit.GPIO17 = 1; / Load output latch /GpioCtrlRegs.GPBPUD.bit.GPIO62 = 0; / Enable pullup on GPIO62 GpioCtrlRegs.GPBMUX2.bit.GPIO62 = 0; / GPIO62 = GPIO GpioCtrlRegs.GPBDIR.bit.GPIO62 = 1; / GPIO62 = output GpioDataRegs.G
42、PBSET.bit.GPIO62 = 1; / Load output latch /GpioCtrlRegs.GPBPUD.bit.GPIO63 = 0; / Enable pullup on GPIO63 GpioCtrlRegs.GPBMUX2.bit.GPIO63 = 0; / GPIO63 = GPIO GpioCtrlRegs.GPBDIR.bit.GPIO63 = 1; / GPIO63 = output GpioDataRegs.GPBSET.bit.GPIO63 = 1; / Load output latch EDIS; RST_BIT1; RST_BIT2; RST_BI
43、T3; RST_BIT4; /*數(shù)碼管位選函數(shù)(從低位到高位掃描)*/ 數(shù)碼管位選函數(shù)void Sellect_Bit(Uint16 i)switch(i)case 0:SET_BIT1;/選通數(shù)碼管第一位RST_BIT2;/關(guān)斷數(shù)碼管第四位RST_BIT3;RST_BIT4;break;case 1:RST_BIT1;SET_BIT2;/選通數(shù)碼管第二位RST_BIT3;RST_BIT4;break;case 2:RST_BIT1;RST_BIT2;/關(guān)斷數(shù)碼管第二位SET_BIT3;/選通數(shù)碼管第三位RST_BIT4;break;case 3:RST_BIT1;RST_BIT2;RST_BIT3;/關(guān)斷數(shù)碼管第三位SET_BIT4;/選通數(shù)碼管第四位break;default:break;/* 拆分要顯示的四位數(shù)保存到數(shù)組DisData_Trans【】*/ 4位數(shù)拆分為4個(gè)數(shù),保存到數(shù)組DisData_Trans4,DisData_Trans0為個(gè)位void DisData_Trans(Uint16 data)if(data=100)DisData_Bit2 = data %
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 法律文書智能審核員考試試卷及答案
- 2024成都大學(xué)輔導(dǎo)員招聘筆試真題
- 2025年核輻射劑量防護(hù)儀器設(shè)備項(xiàng)目合作計(jì)劃書
- 2025年經(jīng)典心理健康知識(shí)競賽考試練習(xí)題庫(230題)【答案】
- 2024年鄧州市社區(qū)工作者招聘真題
- 2024年常德市市直中小學(xué)校招聘教師考試真題
- 項(xiàng)目管理制度規(guī)定
- 消防月消防知識(shí)題庫100道2
- 消防試題題庫4
- 2025年貿(mào)易經(jīng)紀(jì)與代理服務(wù)項(xiàng)目發(fā)展計(jì)劃
- 九師聯(lián)盟2024-2025學(xué)年高二下學(xué)期7月期末質(zhì)量檢測政治試題(含答案)
- 人教版八年級(jí)物理上冊《1.1長度和時(shí)間的測量》同步練習(xí)題及答案
- 安全生產(chǎn)執(zhí)法培訓(xùn)課件
- 絕緣漆項(xiàng)目可行性研究報(bào)告立項(xiàng)報(bào)告模板
- 婦科醫(yī)生進(jìn)修匯報(bào)課件
- 宋龍淵道德經(jīng)講義
- 受限空間安全作業(yè)票填寫模板(2022年更新)
- [計(jì)算機(jī)]力克工藝單軟件kaledo_style案例
- 山東大學(xué)生物化學(xué)課件緒論
- 李開復(fù):人工智能應(yīng)用的四波浪潮
- 鎮(zhèn)江區(qū)國有土地上房屋征收評價(jià)技術(shù)規(guī)范
評論
0/150
提交評論