




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、基于 52 單片機的三維平臺控制技術(shù)方案目錄1系統(tǒng)總體設(shè)計思路22系統(tǒng)硬件部分具體實現(xiàn)22.1 主控制模塊的設(shè)計與實現(xiàn)22.2 驅(qū)動電路的設(shè)計與實現(xiàn)62.3 顯示電路的設(shè)計與實現(xiàn)92.4 鍵盤電路的設(shè)計與實現(xiàn)102.5 測速模塊的設(shè)計與實現(xiàn)112.6 限位反饋電路的設(shè)計與實現(xiàn)123. 系統(tǒng)軟件部分具體實現(xiàn)12附錄15附錄 1 :源代碼15附錄 2 :單片機控制板原理圖34附錄 3 : THB7128驅(qū)動板原理圖35附錄 4 :單片機控制板元件清單36附錄 5 : THB7128驅(qū)動板元件清單371系統(tǒng)總體設(shè)計思路本系統(tǒng)采用 STC89C52 單片機對三維平臺上三個步進電機進行控制,初步實現(xiàn)的功
2、能有:系統(tǒng)啟動與停止控制,三軸聯(lián)動,三軸的加、減速控制,三軸正、反轉(zhuǎn)控制, X 軸的啟動與停止控制、 X 軸與 Y軸的限位控制、 三軸的轉(zhuǎn)速檢測與顯示,最高 1/128電流細分等功能,其系統(tǒng)框圖如圖1.1 所示:+5V DC+12V DC顯示電路THB7128M光電編碼器X軸步進電機矩陣鍵盤STC89C52THB7128M光電編碼器單片機Y軸步進電機晶振電路復位電路THB7128M光電編碼器Z軸步進電機圖 1.1三維平臺步進電機控制系統(tǒng)框圖2系統(tǒng)硬件部分具體實現(xiàn)2.1 主控制模塊的設(shè)計與實現(xiàn)本設(shè)計選用 STC89C52 單片機作為主控制模塊。STC89C52 單片機是一種低功耗、高性能 CMO
3、S 8 位微控制器,具有 8K 可編程 Flash 存儲器, 256 字節(jié)RAM ,32 位I/O 口線,看門狗定時器, 2個數(shù)據(jù)指針, 3 個16 位定時器 / 計數(shù)器,全雙工串行口。STC89C52 單片機作為主控芯片,在本設(shè)計中主要實現(xiàn)以下幾個工作:(1)接收矩陣鍵盤輸入的控制信號;(2)輸出 PWM 脈沖控制三軸步進電機工作,包括輸出PWM 脈沖信號和方向信號;(3)處理給定轉(zhuǎn)速信號和測速反饋轉(zhuǎn)速信號;(4)在八個八段數(shù)碼管上顯示電機的給定轉(zhuǎn)速和實時轉(zhuǎn)速;(5)接收限位反饋并做邏輯判斷;主控制器的引腳分配表如表1.1 所示:I/0 口引腳號對應(yīng)元件功能輸入/ 輸出P0.0 P0.739
4、 32SB1 SB12矩陣鍵盤輸入輸入(上拉電阻)P1.0 P1.21 374HC1383-8 譯碼器控制信號輸出P1.34THB7128X 軸方向信號輸出P1.45THB7128Y 軸方向信號輸出P1.56THB7128Z 軸方向信號輸出P1.67限位開關(guān) X_1限位信號輸入P1.78限位開關(guān) X_2限位信號輸入P3.010限位開關(guān) Y_1限位信號輸入P3.111限位開關(guān) Y_2限位信號輸入P3.515THB7128X 軸脈沖輸出輸出P3.616THB7128Y 軸脈沖輸出輸出P3.717THB7128Z 軸脈沖輸出輸出P2.0 P2.721 28八個八段數(shù)碼管數(shù)碼管段選信號輸出XTAL1
5、XTAL219 18晶振電路時鐘信號輸入RST9復位電路復位信號輸入P3.2(INT0)12X軸光電編碼器轉(zhuǎn)速信號輸入P3.3(INT1)13Y軸光電編碼器轉(zhuǎn)速信號輸入P3.414Z軸光電編碼器轉(zhuǎn)速信號輸入主控制器原理圖,如圖所示:圖主控制器原理圖2.2 驅(qū)動電路的設(shè)計與實現(xiàn)驅(qū)動電路采用 THB712 步進電機驅(qū)動芯片對三位平臺上的三個步進電機進行驅(qū)動。 THB7128是一款專業(yè)的兩相步進電機驅(qū)動芯片,它部集成了細分、電流調(diào)節(jié)、 CMOS 功率放大等電路,配合外圍電路可實現(xiàn)高性能、多細分、大電流的驅(qū)動電路。其主要參數(shù)和性能指標如下:單芯片兩相細分步進電機驅(qū)動;直接采用單脈沖和方向信號譯碼控制模
6、式;雙全橋 MOSFET 驅(qū)動,低導通電阻 Ron0.53;可實現(xiàn)正反轉(zhuǎn)控制;通過 3位選擇 8 檔細分控制(1,1/2,1/4,1/8,1/16,1/32,1/64,1/128);最高耐壓 40V DC ;高輸出電流 I out3.3A ;HZIP19 封裝;有復位和使能管腳;芯片部有過熱保 (TSD) 和過流檢測電路。驅(qū)動電路原理圖如圖所示:2FREFRE-270R1421U4U/DU/D-270R1321U3321S1CP-CP456270R9R1M310KVCC4321M210KR2U210KR36N137M1234P52134EN1K R16VCCD2IN5819C7100UF/50
7、V104C63K6R18P521341KVCCC5R15471CWWVM3U5VinLM3175678R4VCC471C3CLK2K7VCCR83K35KR7VREF104C11C4100pVREFEN423519OSC1CLKCWWM3 M2M1OSC1VREFCLKENABLECW/CWW341ADJ+Vout2R171K25104C9File:BSizeTitleDate:VCCC82-JunNum220UF/50V-2011berD1R5LED3K3G:THB7128.DDBSheet654321654321ofDrawn By:6J2J1FRECPVMU/DCP-FRE-U/D-GN
8、DRevisionOUTIAOUT2BOUT1BOUT2AAB圖16M117VCCM218M3GND1SGNDVM6PGND10NFANFBOUT1AOUT2AOUT1BOUT2B128131197THB7128NFANFBOUTIAOUT1BOUT2BOUT2AR110.2 / 1%R120.2 /1%10KR1910KR2010KR2110KR22C驅(qū)動電路原理圖104C115VCC14VM104C2U1D56驅(qū)動器細分設(shè)定( M1 、M2 、 M3 )如表所示。表2.2.1驅(qū)動器細分設(shè)定M1M2M3細分數(shù)LLL1HLL1/2LHL1/4HHL1/8LLH1/16HLH1/32LHH1/6
9、4HHH1/1282.3 顯示電路的設(shè)計與實現(xiàn)本設(shè)計采用八個八段數(shù)碼管實現(xiàn)轉(zhuǎn)速顯示功能,其中高4 位數(shù)碼管為給定轉(zhuǎn)速顯示,通過編程實現(xiàn)X 、 Y、 Z 三軸轉(zhuǎn)速循環(huán)顯示,低4 位數(shù)碼管為測速反饋的轉(zhuǎn)速顯示,顯示方式同高4 位。STC89C52單片機部采用查表法對轉(zhuǎn)速信號進行數(shù)值處理,通過P2.0 P2.7 口輸出段選信號,通過P1.0 P1.2 輸出 3 路位選信號到74HC138中,通過3-8 譯碼器對八個八段數(shù)碼管進行選擇。具體顯示模塊的硬件電路如圖所示:圖顯示模塊的硬件電路2.4 鍵盤電路的設(shè)計與實現(xiàn)本設(shè)計中的鍵盤電路采用“4*4 ” 矩陣鍵盤,采用鍵盤掃描的方式對按鍵信號進行捕獲,并輸
10、入到 STC89C52 單片機的 P0口中。具體鍵盤功能如表所示。 表矩陣鍵盤功能L1L2L3L4H4系統(tǒng)啟動系統(tǒng)停止X 軸啟動X 軸停止H3X 軸加速X 軸減速X 軸減速X 軸減速H2Y 軸加速Y軸減速Y軸減速Y 軸減速H1Z 軸加速Z軸減速Z軸減速Z 軸減速2.5 測速模塊的設(shè)計與實現(xiàn)本設(shè)計采用 E6B2-CWZ6C光電編碼器對三軸步進電機的轉(zhuǎn)速進行實時檢測,并反饋到單片機中用作轉(zhuǎn)速的實時顯示。E6B2-CWZ6C光電編碼器有以下特點:對應(yīng)電源電壓 DC 5 24V ;外徑40 具備 2000P/R的分辨率;具備使 Z相對簡單化的原點位置顯示功能;實現(xiàn)軸負重、徑向 30N 、推力相 20N
11、 ;附有逆接、負荷短路保護回路,改善了可靠性。E6B2-CWZ6C的輸出方式為 NPN 集電極開路輸出方式,共有紅、白、橙三路轉(zhuǎn)速信號輸出,本設(shè)計中只采用其一路測速信號輸入到單片機的外部中斷口或T1 計數(shù)器外部脈沖輸入端進行轉(zhuǎn)速檢測。E6B2-CWZ6C部結(jié)構(gòu)如圖 所示:圖部結(jié)構(gòu)2.6 限位反饋電路的設(shè)計與實現(xiàn)限位開關(guān)工作原理是,當三維平臺沒有接近限位開關(guān)時,限位開關(guān)輸出為高電平;當三維平臺接近限位開關(guān)時,限位開關(guān)輸出為低電平;利用單片機I/O 口去捕獲限位開關(guān)輸出電平, 當限位開關(guān)輸出為低電平時,控制電機方向信號, 使電機反轉(zhuǎn)。本設(shè)計中限位開關(guān)是采用LJ8A3-1-Z型,實物如圖 所示。圖限
12、位開關(guān)實物圖3. 系統(tǒng)軟件部分具體實現(xiàn)STC89C52 單片機部共有三個定時器/ 計數(shù)器資源分別是 T0 、T1 、T2 ,兩個外部中斷輸入口 INT0 和INT1 ,本設(shè)計中單片機的部資源分配如表3.1 所示。表3.1單片機部資源分配:部資源工作模式功 能T016 位計數(shù)器接收 X 軸脈沖輸入T116 位定時器記50ms 時間作為轉(zhuǎn)速計算的參考T216 位定時器輸出可調(diào) PWM 脈沖信號INTO外部中斷接收 Y軸脈沖輸入INT1外部中斷接收 Z 軸脈沖輸入系統(tǒng)工作程序流程圖如圖3.1 所示:掃描鍵盤判斷啟動鍵還是停止鍵按下啟動鍵按下執(zhí)行 init()輸出 PWM脈沖更新 I/O 輸出三軸方向
13、信號初始化定時器 T0工作模式設(shè)置和初值設(shè)置定時器 T1工作模式設(shè)置和初值設(shè)置定時器 T2工作模式設(shè)置和初值設(shè)置開中斷顯示初始化圖 3.1系統(tǒng)工作程序流程圖轉(zhuǎn)速檢測模塊程序流程圖如圖3.2 所示:INT0 中斷INT1 中斷計數(shù)器 T0中斷collect_x+collect_y+collect_y+查表并顯示查表并顯示查表并顯示圖 3.2轉(zhuǎn)速檢測模塊程序流程圖限位檢測模塊程序流程圖如圖3.3 所示 :限位 X_1判斷1限位 Y_1判斷100fx =fx_xfx =fx_yX軸方向信號輸出X軸方向信號輸出11限位 X_2判斷限位 Y_2判斷00fx =fx_xfx =fx_yX軸方向信號輸出X軸
14、方向信號輸出圖 3.3限位檢測模塊程序流程圖附錄附錄 1 :源代碼#include<reg52.h>#include <intrins.h>/*I/O口分配 */sbit cp_x=P35;/ 驅(qū)動脈沖信號輸出 xsbit cp_y=P36;/ 驅(qū)動脈沖信號輸出 ysbit cp_z=P37;/ 驅(qū)動脈沖信號輸出 zsbit fx_x=P13;/x軸方向信號sbit fx_y=P14;/y軸方向信號sbit fx_z=P15;/z軸方向信號sbit x_xianwei1=P16;/x軸限位sbit x_xianwei2=P17;/x軸限位sbit y_xianwei1=
15、P30;/y軸限位sbit y_xianwei2=P31;/y軸限位sbit LHJ_A = P10;/74HC138(3-8 )譯碼器輸入控制信號線sbit LHJ_B = P11;sbit LHJ_C = P12;sfrT2MOD=0xC9;/T2定時器工作模式unsigned char x_speed=8,y_speed=8,z_speed=8;/給定 x,y,z 三軸初始化轉(zhuǎn)速unsigned char count_x=0,count_y=0,count_z=0;/ 記錄三軸給定脈沖數(shù)變量unsigned int collect_x=0,collect_y=0,collect_z=0;
16、/ 三軸測速脈沖數(shù)存儲變量unsigned char t1_flag=0,t2_flag=0,t3_flag=0,t4_flag=0;/ 定時器 T110ms 標志位unsigned int x_tmpdate8=0,0,0,0,0,0,0,0;/定義數(shù)組變量unsigned int y_tmpdate8=0,0,0,0,0,0,0,0;unsigned int z_tmpdate8=0,0,0,0,0,0,0,0;code unsigned char table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,
17、0x5e,0x79,0x71;/ 共陰數(shù)碼管 0-9 a-f 表/*數(shù)碼管位選 */#defineSMG_1LHJ_C=0;LHJ_B=0;LHJ_A=0/ 譯碼器的輸入腳,全 0選擇第一位數(shù)碼管。#defineSMG_2LHJ_C=0;LHJ_B=0;LHJ_A=1/ 譯碼器的輸入腳, 001 選擇第二位數(shù)碼管。#defineSMG_3#defineSMG_4#defineSMG_5#defineSMG_6#defineSMG_7#defineSMG_8LHJ_C=0;LHJ_B=1;LHJ_A=0LHJ_C=0;LHJ_B=1;LHJ_A=1LHJ_C=1;LHJ_B=0;LHJ_A=0L
18、HJ_C=1;LHJ_B=0;LHJ_A=1LHJ_C=1;LHJ_B=1;LHJ_A=0LHJ_C=1;LHJ_B=1;LHJ_A=1void keyscan(void);/掃描鍵盤void delay(void)/延時子函數(shù), 5個空指令_nop_();_nop_();_nop_();_nop_();_nop_();void init()fx_x=1;fx_y=1;fx_z=1;TL1=(65536-50000)%256;TH1=(65536-50000)/256;TL0=(65536-1)%256;TH0=(65536-1)/256;TMOD=0x15;T2MOD=0x00;T2CON=
19、0x00;IP=0x20;/ 外部中斷 0 和外部中斷 1設(shè)置優(yōu)先級IT0=1;/ 外部中斷 0 為下降沿觸發(fā)IT1=1;/ 外部中斷 1 為下降沿觸發(fā)EX0=1;/ 開外部中斷 0EX1=1;/ 開外部中斷 1TR0=1;/ 開計數(shù)器 1, 準備測速ET0=1;TR1=1;/ 開定時器 1 ,記 50msET1=1;TL2=(65536-1000)%256;TH2=(65536-1000)/256;x_tmpdate0=0xf6;y_tmpdate0=0xe6;z_tmpdate0=0xdb;/x_tmpdate4=0xf6;/ 第五個數(shù)碼管顯示/ y_tmpdate4=0xe6;/ z_t
20、mpdate4=0xdb;void display(unsigned int *lp)/顯示P2=0;/端口 2為輸出SMG_1;/第一位數(shù)碼管P2=lp0;/查表法得到要顯示數(shù)字的數(shù)碼段delay();/ 延時 5 個空指令P2=0;/清0 端口,準備顯示下位P2=0;/端口 2為輸出SMG_2;/ 第二位數(shù)碼管P2=tablelp1;/查表法得到要顯示數(shù)字的數(shù)碼段delay();/ 延時 5 個空指令P2=0;/清0 端口,準備顯示下位SMG_3;/第三位數(shù)碼管P2=tablelp2;/查表法得到要顯示數(shù)字的數(shù)碼段delay();/ 延時 5 個空指令P2=0;/清0 端口,準備顯示下位出
21、, 否則進位影響到第四位數(shù)據(jù)SMG_4;/第四位數(shù)碼管P2=tablelp3;/查表法得到要顯示數(shù)字的數(shù)碼段delay();P2=0;/ 延時 5 個空指令/P2=0;/ 清 0端口,準備顯示下位/端口 2為輸出/SMG_5;/第五位數(shù)碼管/P2=lp4;/查表法得到要顯示數(shù)字的數(shù)碼段/delay();/ 延時 5 個空指令/P2=0;/清0 端口,準備顯示下位P2=0;/端口 2為輸出SMG_6;/ 第六位數(shù)碼管P2=tablelp5;/查表法得到要顯示數(shù)字的數(shù)碼段delay();/ 延時 5 個空指令P2=0;/清0 端口,準備顯示下位SMG_7;/第七位數(shù)碼管P2=tablelp6;/查
22、表法得到要顯示數(shù)字的數(shù)碼段delay();/ 延時 5 個空指令P2=0;/清0 端口,準備顯示下位出SMG_8;/第八位數(shù)碼管P2=tablelp7;/查表法得到要顯示數(shù)字的數(shù)碼段delay();/ 延時 5 個空指令P2=0;/清0端口void main()init();while(1)if(x_xianwei1=0)fx_x=fx_x;while(x_xianwei1=0);if(x_xianwei2=0)fx_x=fx_x;while(x_xianwei2=0);if(y_xianwei1=0)fx_y=fx_y;while(y_xianwei1=0);if(y_xianwei2=0)
23、/ 限位開關(guān)控制fx_y=fx_y;while(y_xianwei2=0);/ if(y_xianwei=0)/fx_y=fx_y;/ if(z_xianwei=0)/fx_z=fx_z;/* 給定轉(zhuǎn)速數(shù)據(jù) */x_tmpdate1=15/10/x_speed;/百位x_tmpdate0=60000000/1000(T2初值 )/200/x_speed/2/100x_tmpdate2=15/1/x_speed/1%10;/十位x_tmpdate1=60000000/1000/200/x_speed/2/10%10x_tmpdate3=150/1/x_speed%10;/ 個位x_tmpdate
24、2=60000000/1000/200/x_speed/2%10y_tmpdate1=15/10/y_speed/1;/ 百位y_tmpdate2=15/1/y_speed/1%10;/十位y_tmpdate3=150/1/y_speed%10;/ 個位z_tmpdate1=15/10/z_speed/1;/ 百位z_tmpdate2=15/1/z_speed/1%10;/十位z_tmpdate3=150/1/z_speed%10;/ 個位keyscan();/掃描鍵盤if(t2_flag=1)/ 當1s 時間到達時t2_flag=0;/ 標志位置0/*分辨率 360時測定轉(zhuǎn)速數(shù)據(jù)*/x_tm
25、pdate5=1*collect_x/6/100; 60*collect_x/360/100;/百位x_tmpdate6=1*collect_x/6/10%10;/十位x_tmpdate7=1*collect_x/6%10;/ 個位y_tmpdate5=1*collect_y/6/100;/百位y_tmpdate6=1*collect_y/6/10%10;/十位y_tmpdate7=1*collect_y/6%10;/ 個位z_tmpdate5=1*collect_z/6/100;/百位z_tmpdate6=1*collect_z/6/10%10;/十位z_tmpdate7=1*collect
26、_z/6%10;/ 個位/*if(x_speed>4)x_tmpdate5=x_tmpdate5/2;x_tmpdate6=x_tmpdate6/2;x_tmpdate7=x_tmpdate7/2;*/* 計數(shù)變量置位 */collect_x=0;collect_y=0;collect_z=0;if(t4_flag=1)display(x_tmpdate);if(t4_flag=2)display(y_tmpdate);if(t4_flag=3)display(z_tmpdate);void keyscan()/讀鍵盤值unsigned char k,k_temp;k=0xfe;doP0
27、=k;k_temp=P0;if(k!=k_temp)switch(k_temp)case0x7e:EA=1;TR2=1;ET2=1;x_speed=8,y_speed=8,z_speed=8;fx_x=1;fx_y=1;fx_z=1; break;/ 啟動case0x7d:EA=0;TR2=0;ET2=0;x_speed=200;y_speed=200,z_speed=200;break; /停止case 0x7b:x_speed=200; break;/x停止case 0x77:x_speed=8; break;/x啟動case 0xbe:/x軸加速while(P0=0xbe);if(x_s
28、peed>1)x_speed=x_speed/2;break;break;case 0xbd:while(P0=0xbd);if(x_speed<64)x_speed=x_speed*2;break;break;/x軸減速case 0xbb: fx_x=1;break;/x軸正向case 0xb7: fx_x=0;break;/x軸反向case 0xde:/y軸加速while(P0=0xde);if(y_speed>1)y_speed=y_speed/2;break;break;case 0xdd:while(P0=0xdd);if(y_speed<64)y_speed
29、=y_speed*2;break;break;/y軸減速case 0xdb: fx_y=1;break;/y軸正向case 0xd7: fx_y=0;break;/y軸反向case 0xee:/z 軸加速while(P0=0xee);if(z_speed>1)z_speed=z_speed/2;break;break;case 0xed: while(P0=0xed);if(z_speed<64)z_speed=z_speed*2;break;break;/z軸減速case 0xeb: fx_z=1;break;/z軸正向case 0xe7: fx_z=0;break;/z軸反向default:break;k=_crol_(k,1);while(k!=0xef);void T2ISR(void) interrupt 5/T2定時器,輸出驅(qū)動脈沖TF2=0;TL2=(65536-1000)%256;TH2=(65536-1000)/256;count_x+;count_y+;count_z+;if(count_x>64)count_x=0;if(count_y>64)count_y
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 出口種子銷售合同范本
- 轉(zhuǎn)賣音響合同范本
- 勞務(wù)外包合同范例
- 中介委托租房電子合同范本
- 凱倫股合同范本
- 養(yǎng)牛合伙合同范本
- 北海吊車出租合同范本
- 公司中途入股合同范本
- 產(chǎn)品服務(wù)合同范例
- 農(nóng)村轉(zhuǎn)讓土地合同范本
- 科技引領(lǐng)全景式景區(qū)
- 單個軍人隊列動作教學法教案全(新條令)
- 西師版小學數(shù)學六年級下冊單元測試卷(含答案)
- 2024年公安機關(guān)理論考試題庫500道【綜合卷】
- (高清版)TDT 1048-2016 耕作層土壤剝離利用技術(shù)規(guī)范
- 市場調(diào)研與咨詢行業(yè)的市場調(diào)研方法創(chuàng)新培訓
- 2024年人工智能助力社會治理現(xiàn)代化
- 29.4常見腫瘤標志物講解
- 華為企業(yè)大學培訓體系
- 2024年四川成都市公共交通集團有限公司招聘筆試參考題庫含答案解析
- 學生獎勵兌換券模板
評論
0/150
提交評論