////////////////////////汇诚科技//////////////////// 
//////////////////http://www.ourhc.cn/////////////// 
///////////////////步进电机调试程序///////////////// 
 
#include<reg52.h>  
#define uchar unsigned char 
#define uint unsigned int 
 
 
/******************************************************** 
                                                 控制位定义 
********************************************************/ 
 
sbit shi_neng=P1^0;  //        使能控制位 
sbit fang_shi=P1^1;  //        工作方式控制位 
sbit fang_xiang=P1^2;//        旋转方向控制位 
sbit mai_chong=P1^3; // 脉冲控制位 
sbit KEY= P2^0;                 //        启动按键 
sbit zrun=P2^1;                  //        正转选择 
sbit frun=P2^2;             //        反转选择 
uint y=0;                           //设定转动脉冲数值 
/******************************************************** 
                                                 延时函数 
********************************************************/ 
void delay(uint i)//延时函数 
{ 
        uchar j,k; 
        for(j=0;j<i;j++) 
        for(k=0;k<250;k++); 
} 
 
/******************************************************** 
                                                 主函数 
********************************************************/ 
 
main() 
{ 
        shi_neng=1;  //        使能控制位 
        fang_shi=1;  //        工作方式控制位 
        fang_xiang=1;//        旋转方向控制位 
        mai_chong=1; // 脉冲控制位 
         
        while(1) 
        { 
         
        if(KEY==0){while(!KEY) y=700;}        //改变y值的大小可以改变电机的转动角度 
        if(zrun==0){while(!zrun) fang_xiang=0;}        //如果正转按键按下,电机正转选择 
        if(frun==0){while(!frun) fang_xiang=1;}        //如果反转按键按下,电机反转选择 
        if(y>=1)   //执行转动条件 
        {   y--; 
                mai_chong=~mai_chong; //输出时钟脉冲 
                delay(3);}                          //延时  (括号内数值越小,电机转动速度越快) 
                 
        } 
} 
 
 
 
 
 |