?? 步進馬達.c
字號:
/*************************************************************************************
* 標題: 步進電機試驗一 *
* *
* 通過本例程了解步進馬達使用及驅動程序編寫 *
*; 單雙八拍工作方式: *
*; A-AB-B-BC-C-CD-D-DA (即一個脈沖,轉 3.75 度) *
* J14短路冒需斷開 *
* 請學員一定要消化掉本例程 *
*
**************************************************************************************/
#include "reg52.h"
//Motor
sbit A = P1^0; //定義管腳
sbit b = P1^1;
sbit C = P1^2;
sbit D = P1^3;
sbit A1 = P1^4; //定義管腳
sbit b1 = P1^5;
sbit C1 = P1^6;
sbit D1 = P1^7;
///////////////////////////////////////
//步進電機驅動
unsigned char MotorStep=0; //步進馬達步序
unsigned int MotorDelay,Speed=1,TIM,CT;
#define speed 35 // 調整速度 數值不要設的太低 低了會引起震動。
/*****************************************************
* 初始化馬達 *
******************************************************/
void InitMotor()
{
A = 1;
b = 1;
C = 1;
D = 1;
}
void SetMotor()
{
// if(Speed == 0) return;
MotorDelay=Speed; //調整速度
switch(MotorStep)
{
case 0:
if(TIM) // A
{
A = 0; //0xf1
b = 1;
C = 1;
D = 1;
MotorStep = 1;
TIM=0;
}
break;
case 1: // AB
if(TIM)
{
A = 0; //0xf3
b = 0;
C = 1;
D = 1;
MotorStep = 2;
TIM=0;
}
break;
case 2: //B
if(TIM)
{
A = 1;
b = 0; //0xf2
C = 1;
D = 1;
MotorStep = 3;
TIM=0;
}
break;
case 3: //BC
if(TIM)
{
A = 1;
b = 0; //0xf6
C = 0;
D = 1;
MotorStep = 4;
TIM=0;
}
break;
case 4: //C
if(TIM)
{
A = 1;
b = 1; //0xf4
C = 0;
D = 1;
MotorStep = 5;
TIM=0;
}
break;
case 5: //CD
if(TIM)
{
A = 1;
b = 1; //0xfc
C = 0;
D = 0;
MotorStep = 6;
TIM=0;
}
break;
case 6: //D
if(TIM)
{
A = 1;
b = 1; //0xf8
C = 1;
D = 0;
MotorStep = 7;
TIM=0;
}
break;
case 7: //DA
if(TIM)
{
A = 0;
b = 1; //0xf9
C = 1;
D = 0;
MotorStep = 0;
TIM=0;
}
break;
}
}
void system_Ini()
{
TMOD|= 0x11;
TH0=0xDC; //11.0592M
TL0=0x00;
IE = 0x8A;
TR0 = 1;
}
main()
{ system_Ini();
InitMotor();
while(1)
{
SetMotor();
}
}
/************************************************
* *
* 定時中斷延時 *
************************************************/
void Tzd(void) interrupt 1
{
TH0 = 0xfe; //11.0592
TL0 = 0x33;
if( CT++==speed)
{TIM=1;
CT=0;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -