?? 步進(jìn)馬達(dá).c
字號(hào):
/***********************************************************************************
* 標(biāo)題: 步進(jìn)電機(jī)試驗(yàn)五(正轉(zhuǎn)一圈 反轉(zhuǎn)一圈) *
* *
* 通過(guò)本例程了解步進(jìn)馬達(dá)使用及驅(qū)動(dòng)程序編寫 *
*; 單雙八拍工作方式: *
*; A-AB-B-BC-C-CD-D-DA (即一個(gè)脈沖,轉(zhuǎn) 3.75 度) *
* *
* 請(qǐng)學(xué)員一定要消化掉本例程 *
*
**************************************************************************************/
#include "reg52.h"
void delay(unsigned int t);
//Motor
sbit F1 = P1^0;
sbit F2 = P1^1;
sbit F3 = P1^2;
sbit F4 = P1^3;
unsigned char code FFW[8]={0xfe,0xfc,0xfd,0xf9,0xfb,0xf3,0xf7,0xf6}; //反轉(zhuǎn)
unsigned char code FFZ[8]={0xf6,0xf7,0xf3,0xfb,0xf9,0xfd,0xfc,0xfe}; //正轉(zhuǎn)
unsigned int K;
/**********************************************************************
* *
* 步進(jìn)電機(jī)驅(qū)動(dòng) *
* *
***********************************************************************/
void motor_ffw()
{
unsigned char i;
unsigned int j;
for (j=0; j<12; j++) //轉(zhuǎn)1*n圈
{
for (i=0; i<8; i++) //一個(gè)周期轉(zhuǎn)30度
{
if(K==1) P1 = FFW[i]&0x1f; //取數(shù)據(jù)
if(K==2) P1 = FFZ[i]&0x1f;
delay(15); //調(diào)節(jié)轉(zhuǎn)速
}
}
}
/******************************************************
*
* 延時(shí)程序
*
********************************************************/
void delay(unsigned int t)
{
unsigned int k;
while(t--)
{
for(k=0; k<100; k++)
{ }
}
}
main()
{
while(1)
{
K=1;
motor_ffw();
K=2;
motor_ffw();
}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -