版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、基于52單片機(jī)的三維平臺控制技術(shù)方案目 錄1系統(tǒng)總體設(shè)計思路22系統(tǒng)硬件部分具體實現(xiàn)22.1主控制模塊的設(shè)計與實現(xiàn)22.2驅(qū)動電路的設(shè)計與實現(xiàn)52.3顯示電路的設(shè)計與實現(xiàn)72.4鍵盤電路的設(shè)計與實現(xiàn)82.5測速模塊的設(shè)計與實現(xiàn)92.6限位反饋電路的設(shè)計與實現(xiàn)93.系統(tǒng)軟件部分具體實現(xiàn)10附錄13附錄1:源代碼13附錄2:單片機(jī)控制板原理圖27附錄3:THB7128驅(qū)動板原理圖28附錄4:單片機(jī)控制板元件清單29附錄5:THB7128驅(qū)動板元件清單301系統(tǒng)總體設(shè)計思路本系統(tǒng)采用STC89C52單片機(jī)對三維平臺上三個步進(jìn)電機(jī)進(jìn)行控制,初步實現(xiàn)的功能有:系統(tǒng)啟動與停止控制,三軸聯(lián)動,三軸的加、減速
2、控制,三軸正、反轉(zhuǎn)控制,X軸的啟動與停止控制、X軸與Y軸的限位控制、三軸的轉(zhuǎn)速檢測與顯示,最高1/128電流細(xì)分等功能,其系統(tǒng)框圖如圖1.1所示:圖1.1 三維平臺步進(jìn)電機(jī)控制系統(tǒng)框圖2系統(tǒng)硬件部分具體實現(xiàn)2.1主控制模塊的設(shè)計與實現(xiàn)本設(shè)計選用STC89C52單片機(jī)作為主控制模塊。STC89C52單片機(jī)是一種低功耗、高性能CMOS 8位微控制器,具有8K可編程Flash存儲器,256字節(jié)RAM,32位I/O口線,看門狗定時器,2個數(shù)據(jù)指針,3個16位定時器/計數(shù)器,全雙工串行口。STC89C52單片機(jī)作為主控芯片,在本設(shè)計中主要實現(xiàn)以下幾個工作:(1)接收矩陣鍵盤輸入的控制信號;(2)輸出PW
3、M脈沖控制三軸步進(jìn)電機(jī)工作,包括輸出PWM脈沖信號和方向信號; (3)處理給定轉(zhuǎn)速信號和測速反饋轉(zhuǎn)速信號;(4)在八個八段數(shù)碼管上顯示電機(jī)的給定轉(zhuǎn)速和實時轉(zhuǎn)速;(5)接收限位反饋并做邏輯判斷;主控制器的引腳分配表如表1.1所示:I/0口引腳號對應(yīng)元件功能輸入/輸出P0.0P0.73932SB1SB12矩陣鍵盤輸入輸入(上拉電阻)P1.0P1.21374HC1383-8譯碼器控制信號輸出P1.34THB7128X軸方向信號輸出P1.45THB7128Y軸方向信號輸出P1.56THB7128Z軸方向信號輸出P1.67限位開關(guān)X_1限位信號輸入P1.78限位開關(guān)X_2限位信號輸入P3.010限位開關(guān)
4、Y_1限位信號輸入P3.111限位開關(guān)Y_2限位信號輸入P3.515THB7128X軸脈沖輸出輸出P3.616THB7128Y軸脈沖輸出輸出P3.717THB7128Z軸脈沖輸出輸出P2.0P2.72128八個八段數(shù)碼管數(shù)碼管段選信號輸出XTAL1XTAL21918晶振電路時鐘信號輸入RST9復(fù)位電路復(fù)位信號輸入P3.2(INT0)12X軸光電編碼器轉(zhuǎn)速信號輸入P3.3(INT1)13Y軸光電編碼器轉(zhuǎn)速信號輸入P3.414Z軸光電編碼器轉(zhuǎn)速信號輸入主控制器原理圖,如圖2.1.1所示:圖2.1.1 主控制器原理圖2.2驅(qū)動電路的設(shè)計與實現(xiàn)驅(qū)動電路采用THB712步進(jìn)電機(jī)驅(qū)動芯片對三位平臺上的三個
5、步進(jìn)電機(jī)進(jìn)行驅(qū)動。THB7128是一款專業(yè)的兩相步進(jìn)電機(jī)驅(qū)動芯片,它內(nèi)部集成了細(xì)分、電流調(diào)節(jié)、CMOS功率放大等電路,配合外圍電路可實現(xiàn)高性能、多細(xì)分、大電流的驅(qū)動電路。其主要參數(shù)和性能指標(biāo)如下: 單芯片兩相細(xì)分步進(jìn)電機(jī)驅(qū)動; 直接采用單脈沖和方向信號譯碼控制模式; 雙全橋MOSFET驅(qū)動,低導(dǎo)通電阻; 可實現(xiàn)正反轉(zhuǎn)控制; 通過3位選擇8檔細(xì)分控制(1,1/2,1/4,1/8,1/16,1/32,1/64,1/128); 最高耐壓40V DC; 高輸出電流; HZIP19封裝; 有復(fù)位和使能管腳; 芯片內(nèi)部有過熱保(TSD)和過流檢測電路。驅(qū)動電路原理圖如圖所示:圖 驅(qū)動電路原理圖驅(qū)動器細(xì)分設(shè)
6、定(M1、M2、M3)如表2.2.1所示。表2.2.1 驅(qū)動器細(xì)分設(shè)定M1M2M3細(xì)分?jǐn)?shù)LLL1HLL1/2LHL1/4HHL1/8LLH1/16HLH1/32LHH1/64HHH1/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單片機(jī)內(nèi)部采用查表法對轉(zhuǎn)速信號進(jìn)行數(shù)值處理,通過P2.0P2.7口輸出段選信號,通過P1.0P1.2輸出3路位選信號到74HC138中,通過3-8譯碼器對八個八段數(shù)碼管進(jìn)行選擇。具體顯示模塊的硬件電路如
7、圖所示:圖2.3.1 顯示模塊的硬件電路2.4鍵盤電路的設(shè)計與實現(xiàn)本設(shè)計中的鍵盤電路采用“4*4”矩陣鍵盤,采用鍵盤掃描的方式對按鍵信號進(jìn)行捕獲,并輸入到STC89C52單片機(jī)的P0口中。具體鍵盤功能如表2.4.1所示。表2.4.1 矩陣鍵盤功能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光電編碼器對三軸步進(jìn)電機(jī)的轉(zhuǎn)速進(jìn)行實時檢測,并反饋到單片機(jī)中用作轉(zhuǎn)速的實時顯示。E6B2-CWZ6C光電編碼器有以下特點: 對應(yīng)電源電壓D
8、C 524V; 外徑40具備2000P/R的分辨率; 具備使Z相對簡單化的原點位置顯示功能; 實現(xiàn)軸負(fù)重、徑向30N、推力相20N; 附有逆接、負(fù)荷短路保護(hù)回路,改善了可靠性。E6B2-CWZ6C的輸出方式為NPN集電極開路輸出方式,共有紅、白、橙三路轉(zhuǎn)速信號輸出,本設(shè)計中只采用其一路測速信號輸入到單片機(jī)的外部中斷口或T1計數(shù)器外部脈沖輸入端進(jìn)行轉(zhuǎn)速檢測。E6B2-CWZ6C內(nèi)部結(jié)構(gòu)如圖所示:圖 E6B2-CWZ6C內(nèi)部結(jié)構(gòu)2.6限位反饋電路的設(shè)計與實現(xiàn)限位開關(guān)工作原理是,當(dāng)三維平臺沒有接近限位開關(guān)時,限位開關(guān)輸出為高電平;當(dāng)三維平臺接近限位開關(guān)時,限位開關(guān)輸出為低電平;利用單片機(jī)I/O口去捕
9、獲限位開關(guān)輸出電平,當(dāng)限位開關(guān)輸出為低電平時,控制電機(jī)方向信號,使電機(jī)反轉(zhuǎn)。本設(shè)計中限位開關(guān)是采用LJ8A3-1-Z型,實物如圖2.6.1所示。圖2.6.1 限位開關(guān)實物圖3.系統(tǒng)軟件部分具體實現(xiàn)STC89C52單片機(jī)內(nèi)部共有三個定時器/計數(shù)器資源分別是T0、T1、T2,兩個外部中斷輸入口INT0和INT1,本設(shè)計中單片機(jī)的內(nèi)部資源分配如表3.1所示。表3.1 單片機(jī)內(nèi)部資源分配:內(nèi)部資源工作模式功 能T016位計數(shù)器接收X軸脈沖輸入T116位定時器記50ms時間作為轉(zhuǎn)速計算的參考T216位定時器輸出可調(diào)PWM脈沖信號INTO外部中斷接收Y軸脈沖輸入INT1外部中斷接收Z軸脈沖輸入系統(tǒng)工作程序
10、流程圖如圖3.1所示:圖3.1 系統(tǒng)工作程序流程圖轉(zhuǎn)速檢測模塊程序流程圖如圖3.2所示:圖3.2 轉(zhuǎn)速檢測模塊程序流程圖限位檢測模塊程序流程圖如圖3.3所示:圖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軸
11、方向信號sbit x_xianwei1=P16; /x軸限位sbit x_xianwei2=P17; /x軸限位sbit y_xianwei1=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=
12、0,count_z=0; /記錄三軸給定脈沖數(shù)變量unsigned int collect_x=0,collect_y=0,collect_z=0;/三軸測速脈沖數(shù)存儲變量unsigned char t1_flag=0,t2_flag=0,t3_flag=0,t4_flag=0; /定時器T1 10ms標(biāo)志位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
13、 table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71; /共陰數(shù)碼管 0-9 a-f 表/*數(shù)碼管位選*/#define SMG_1 LHJ_C=0;LHJ_B=0;LHJ_A=0/譯碼器的輸入腳,全0選擇第一位數(shù)碼管。#define SMG_2 LHJ_C=0;LHJ_B=0;LHJ_A=1/譯碼器的輸入腳,001選擇第二位數(shù)碼管。#define SMG_3 LHJ_C=0;LHJ_B=1;LHJ_A=0#define SMG_4 LHJ_C=0;LHJ_B=1;LHJ_A
14、=1#define SMG_5 LHJ_C=1;LHJ_B=0;LHJ_A=0#define SMG_6 LHJ_C=1;LHJ_B=0;LHJ_A=1#define SMG_7 LHJ_C=1;LHJ_B=1;LHJ_A=0#define SMG_8 LHJ_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;TH
15、1=(65536-50000)/256;TL0=(65536-1)%256;TH0=(65536-1)/256;TMOD=0x15;T2MOD=0x00;T2CON=0x00;IP=0x20;/外部中斷0和外部中斷1設(shè)置優(yōu)先級IT0=1;/外部中斷0為下降沿觸發(fā)IT1=1;/外部中斷1為下降沿觸發(fā)EX0=1;/開外部中斷0EX1=1;/開外部中斷1TR0=1;/開計數(shù)器1,準(zhǔn)備測速 ET0=1;TR1=1;/開定時器1,記50msET1=1;TL2=(65536-1000)%256;TH2=(65536-1000)/256;x_tmpdate0=0xf6;y_tmpdate0=0xe6;z_t
16、mpdate0=0xdb;/x_tmpdate4=0xf6;/第五個數(shù)碼管顯示/y_tmpdate4=0xe6;/z_tmpdate4=0xdb;void display(unsigned int *lp)/顯示P2=0;/端口2為輸出SMG_1; /第一位數(shù)碼管P2=lp0; /查表法得到要顯示數(shù)字的數(shù)碼段delay();/延時5個空指令P2=0;/清0端口,準(zhǔn)備顯示下位P2=0;/端口2為輸出SMG_2; /第二位數(shù)碼管P2=tablelp1;/查表法得到要顯示數(shù)字的數(shù)碼段delay();/延時5個空指令P2=0;/清0端口,準(zhǔn)備顯示下位SMG_3; /第三位數(shù)碼管P2=tablelp2;
17、/查表法得到要顯示數(shù)字的數(shù)碼段delay();/延時5個空指令P2=0;/清0端口,準(zhǔn)備顯示下位出,否則進(jìn)位影響到第四位數(shù)據(jù)SMG_4; /第四位數(shù)碼管P2=tablelp3;/查表法得到要顯示數(shù)字的數(shù)碼段delay();/延時5個空指令P2=0; /清0端口,準(zhǔn)備顯示下位/P2=0;/端口2為輸出/SMG_5; /第五位數(shù)碼管/P2=lp4; /查表法得到要顯示數(shù)字的數(shù)碼段/delay();/延時5個空指令/P2=0;/清0端口,準(zhǔn)備顯示下位P2=0;/端口2為輸出SMG_6; /第六位數(shù)碼管P2=tablelp5;/查表法得到要顯示數(shù)字的數(shù)碼段delay();/延時5個空指令P2=0;/清
18、0端口,準(zhǔn)備顯示下位SMG_7; /第七位數(shù)碼管P2=tablelp6;/查表法得到要顯示數(shù)字的數(shù)碼段delay();/延時5個空指令P2=0;/清0端口,準(zhǔn)備顯示下位出SMG_8; /第八位數(shù)碼管P2=tablelp7;/查表法得到要顯示數(shù)字的數(shù)碼段delay();/延時5個空指令P2=0;/清0端口void main() init();while(1) if(x_xianwei1=0) /限位開關(guān)控制 fx_x=fx_x;while(x_xianwei1=0); if(x_xianwei2=0) fx_x=fx_x;while(x_xianwei2=0); if(y_xianwei1=0)
19、 fx_y=fx_y;while(y_xianwei1=0); if(y_xianwei2=0) 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/100 x_tmpdate2=15/1/x_speed/1%10; /十位x_tmpdate1=60000000/1000/200/x_speed/2/10%
20、10 x_tmpdate3=150/1/x_speed%10; /個位x_tmpdate2=60000000/1000/200/x_speed/2%10 y_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
21、=1) /當(dāng)1s時間到達(dá)時 t2_flag=0; /標(biāo)志位置0/*分辨率360時測定轉(zhuǎn)速數(shù)據(jù)*/x_tmpdate5=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;
22、 /百位z_tmpdate6=1*collect_z/6/10%10; /十位z_tmpdate7=1*collect_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) d
23、isplay(z_tmpdate); void keyscan()/讀鍵盤值unsigned char k,k_temp;k=0xfe; do P0=k; k_temp=P0; if(k!=k_temp) switch(k_temp)case 0x7e: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; /啟動case 0x7d:EA=0;TR2=0;ET2=0;x_speed=200;y_speed=200,z_speed=200;break; /停止case 0x7b:x_speed=200
24、; break; /x停止case 0x77:x_speed=8; break; /x啟動case 0xbe: /x軸加速 while(P0=0xbe);if(x_speed>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); i
25、f(y_speed>1) y_speed=y_speed/2;break; break;case 0xdd: while(P0=0xdd); if(y_speed<64) y_speed=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(
26、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
27、=0; if(count_y>64) count_y=0; if(count_z>64) count_z=0; if(count_x=x_speed)cp_x=cp_x;count_x=0;if(count_y=y_speed)cp_y=cp_y;count_y=0;if(count_z=z_speed)cp_z=cp_z;count_z=0;void T1ISR(void) interrupt 3 /T1定時器,記50ms時間TL1=(65536-50000)%256;TH1=(65536-50000)/256;t1_flag+;if(t1_flag=20) t2_flag=1; t1_flag=0; t3_flag+;if(t3_flag=40) t4_flag=1; if(t3_flag=80) t4_flag=2; if(t3_flag=120) t4_flag=3; t3_flag=0; void ISR0(void) interrupt 0/x軸測速脈沖輸入collect_x+;void ISR1(void) interrupt 2/y軸測速脈沖輸入coll
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 44626.1-2024微細(xì)氣泡技術(shù)表征用樣品中氣泡消除方法第1部分:評估程序
- 復(fù)式樓裝修合同
- 個體與企業(yè)之間借款合同范例
- 2024年股權(quán)收益權(quán)轉(zhuǎn)讓擔(dān)保合同
- 建筑項目施工合同范例
- 2024年知識產(chǎn)權(quán)保護(hù)協(xié)議書范文
- 合伙建立銀行合同協(xié)議
- 2024年度企業(yè)與實習(xí)生實習(xí)協(xié)議書樣本
- 民間擔(dān)保合同樣本參考
- 海員雇傭合同范例
- 滬科版(2024)八年級全一冊物理第一學(xué)期期中學(xué)業(yè)質(zhì)量測試卷 2套(含答案)
- 化工和危險化學(xué)品生產(chǎn)經(jīng)營單位二十條重大隱患判定標(biāo)準(zhǔn)釋義(中化協(xié))
- 愚公移山英文 -中國故事英文版課件
- 課件交互設(shè)計
- 大壩基礎(chǔ)面處理施工方案
- 腹膜后間隙解剖及CT診斷
- 自動化控制儀表安裝工程采用材料及機(jī)械價格表(2014版江蘇?。?/a>
- 八卦象數(shù)療法
- 魯人版九年級道德與法治上冊 2.3一年一度的人民代表大會
- 上海市重點建設(shè)項目社會穩(wěn)定風(fēng)險評估咨詢收費辦法
- 能源熱電公司班組建設(shè)工作總結(jié)
評論
0/150
提交評論