⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 steppingmotor.txt

📁 一个步进电机的代码
💻 TXT
字号:
at89s51控制四项四拍步进电机的c语言驱动程序    正转15圈再反转15圈   

#include <AT89X51.h> 

static unsigned int count; //计数 
static int step_index; //步进索引数,值为0-7 

static bit turn; //步进电机转动方向 
static bit stop_flag; //步进电机停止标志 
static int speedlevel; //步进电机转速参数,数值越大速度越慢,最小值为1,速度最快 
static int spcount; //步进电机转速参数计数 
void delay(unsigned int endcount); //延时函数,延时为endcount*0.5毫秒 
void gorun(); //步进电机控制步进函数 

void main(void) 
{ 
count = 0; 
step_index = 0; 
spcount = 0; 
stop_flag = 0; 

P1_0 = 0; 
P1_1 = 0; 
P1_2 = 0; 
P1_3 = 0; 

EA = 1; //允许CPU中断 
TMOD = 0x11; //设定时器0和1为16位模式1 
ET0 = 1; //定时器0中断允许 

TH0 = 0xFE; 
TL0 = 0x0C; //设定时每隔0.5ms中断一次 
TR0 = 1; //开始计数 

turn = 0; 

speedlevel = 2; 
delay(10000); 
speedlevel = 1; 
do{ 
speedlevel = 2; 
delay(10000); 
speedlevel = 1; 
delay(10000); 
stop_flag=1; 
delay(10000); 
stop_flag=0; 
}while(1); 

} 

//定时器0中断处理 
void timeint(void) interrupt 1 
{ 
TH0=0xFE; 
TL0=0x0C; //设定时每隔0.5ms中断一次 

count++; 

spcount--; 
if(spcount<=0) 
{ 
spcount = speedlevel; 
gorun(); 
} 

} 

void delay(unsigned int endcount) 
{ 
count=0; 
do{}while(count<endcount); 
} 

void gorun() 
{ 
if (stop_flag==1) 
{ 
P1_0 = 0; 
P1_1 = 0; 
P1_2 = 0; 
P1_3 = 0; 
return; 
} 

switch(step_index) 
{ 
case 0: //0 
P1_0 = 1; 
P1_1 = 0; 
P1_2 = 0; 
P1_3 = 0; 
break; 
case 1: //0、1 
P1_0 = 1; 
P1_1 = 1; 
P1_2 = 0; 
P1_3 = 0; 
break; 
case 2: //1 
P1_0 = 0; 
P1_1 = 1; 
P1_2 = 0; 
P1_3 = 0; 
break; 
case 3: //1、2 
P1_0 = 0; 
P1_1 = 1; 
P1_2 = 1; 
P1_3 = 0; 
break; 
case 4: //2 
P1_0 = 0; 
P1_1 = 0; 
P1_2 = 1; 
P1_3 = 0; 
break; 
case 5: //2、3 
P1_0 = 0; 
P1_1 = 0; 
P1_2 = 1; 
P1_3 = 1; 
break; 
case 6: //3 
P1_0 = 0; 
P1_1 = 0; 
P1_2 = 0; 
P1_3 = 1; 
break; 
case 7: //3、0 
P1_0 = 1; 
P1_1 = 0; 
P1_2 = 0; 
P1_3 = 1; 
} 

if (turn==0) 
{ 
step_index++; 
if (step_index>7) 
step_index=0; 
} 
else 
{ 
step_index--; 
if (step_index<0) 
step_index=7; 
} 

} 
自己再稍微改动一下 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -