machongchang 发表于 2011-9-3 08:22:07

步进电机正反转C程序

#include <reg52.h>

unsigned char Flag;//定义正反转和停止标志位
sbit KEY = P3^3;


unsigned char code F_Rotation={0xf1,0xf2,0xf4,0xf8}; //正转表格
unsigned char code B_Rotation={0xf8,0xf4,0xf2,0xf1}; //反转表格
/******************************************************************/
/*                  延时函数                                    */
/******************************************************************/
void Delay(unsigned int i)//延时
{
while(--i);
}
/******************************************************************/
/*                   主函数                                       */
/******************************************************************/
main()
{

unsigned char i;


EX1=1;         //外部中断0开
IT1=1;         //边沿触发
EA=1;          //全局中断开

while(Flag==0)            
{
P0=0x71;//显示 F 标示正转
for(i=0;i<4;i++)      //4相
   {
   P1=F_Rotation;//输出对应的相 可以自行换成反转表格
   Delay(500);      //改变这个参数可以调整电机转速 ,数字越小,转速越大
       }
}
while(Flag==1)
{
P0=0x7C;//显示 b 标示反转
for(i=0;i<4;i++)      //4相
   {
   P1=B_Rotation;//输出对应的相
   Delay(500);      //改变这个参数可以调整电机转速 ,数字越小,转速越大
       }
}
while(Flag==2)//停止
{
P0=0x6D;//   显示 S
P1=0;
}
}
/******************************************************************/
/*                   中断入口函数                                 */
/******************************************************************/
void ISR_Key(void) interrupt 2 using 1
{
Delay(500);
if(!KEY)
{

Flag++;         //s3按下触发一次
if(Flag==3)
   Flag=0;
}
}

传承1990 发表于 2012-10-11 23:21:04

挺好的,我刚开始学单片机,要是能配上电路原理图那就更好了。
页: [1]
查看完整版本: 步进电机正反转C程序