資源描述:
《《步進電機資料》word版》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、程序//本實驗需要購買步進電機模塊/*-----------------------------------------------名稱:步進電機內(nèi)容:本程序用于測試4相步進電機常規(guī)驅(qū)動4個按鍵分別控制加速、減速、開啟、停止數(shù)碼管顯示01-18速度等級,數(shù)字越大,速度越大------------------------------------------------*/#include#defineKeyPortP3#defineDataPortP0//定義數(shù)據(jù)端口程序中遇到DataPort則用P0替換sbitLATCH1=P2^6;//定義鎖存使能端口段鎖存
2、sbitLATCH2=P2^7;//位鎖存Unsignedcharcodedofly_DuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//顯示段碼值0~9unsignedcharcodedofly_WeiMa[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//分別對應(yīng)相應(yīng)的數(shù)碼管點亮,即位碼unsignedcharTempData[8];//存儲顯示值的全局變量sbitA1=P1^0;//定義步進電機連接端口sbitB1=P1^1;sbitC1=P1^2;sb
3、itD1=P1^3;#defineCoil_AB1{A1=1;B1=1;C1=0;D1=0;}//AB相通電,其他相斷電#defineCoil_BC1{A1=0;B1=1;C1=1;D1=0;}//BC相通電,其他相斷電#defineCoil_CD1{A1=0;B1=0;C1=1;D1=1;}//CD相通電,其他相斷電#defineCoil_DA1{A1=1;B1=0;C1=0;D1=1;}//D相通電,其他相斷電#defineCoil_A1{A1=1;B1=0;C1=0;D1=0;}//A相通電,其他相斷電#defineCoil_B1{A1=0;B1=1;C1=0;D1=0;
4、}//B相通電,其他相斷電#defineCoil_C1{A1=0;B1=0;C1=1;D1=0;}//C相通電,其他相斷電#defineCoil_D1{A1=0;B1=0;C1=0;D1=1;}//D相通電,其他相斷電#defineCoil_OFF{A1=0;B1=0;C1=0;D1=0;}//全部斷電unsignedcharSpeed=1;bitStopFlag;voidDisplay(unsignedcharFirstBit,unsignedcharNum);voidInit_Timer0(void);unsignedcharKeyScan(void);/*--------
5、----------------------------------------uS延時函數(shù),含有輸入?yún)?shù)unsignedchart,無返回值unsignedchar是定義無符號字符變量,其值的范圍是0~255這里使用晶振12M,精確延時請使用匯編,大致延時長度如下T=tx2+5uS------------------------------------------------*/voidDelayUs2x(unsignedchart){while(--t);}/*------------------------------------------------mS延時函數(shù),含有
6、輸入?yún)?shù)unsignedchart,無返回值unsignedchar是定義無符號字符變量,其值的范圍是0~255這里使用晶振12M,精確延時請使用匯編------------------------------------------------*/voidDelayMs(unsignedchart){while(t--){//大致延時1mSDelayUs2x(245);DelayUs2x(245);}}/*------------------------------------------------主函數(shù)-----------------------------------
7、-------------*/main(){unsignedinti=512;//旋轉(zhuǎn)一周時間unsignedcharnum;Init_Timer0();Coil_OFFwhile(1)//正向{num=KeyScan();//循環(huán)調(diào)用按鍵掃描if(num==1)//第一個按鍵,速度等級增加{if(Speed<18)Speed++;}elseif(num==2)//第二個按鍵,速度等級減小{if(Speed>1)Speed--;}elseif(num==3){Coil_OFFStopFlag