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

📄 a3972步进驱动.c

📁 C51单片机驱动a3972步进电机细分
💻 C
字号:
/*************************************************************
单片机:AT89S52
文件名:基于A3972的步进电机细分控制程序
作者 :测控09
程序说明:
**************************************************************/
#include<reg52.h>
#include"A3972.h"

unsigned char  gzh = 0x00;
						  //3F位6个1也就是电流最大
unsigned char DRSIN[32]={0x3F,0x3F,0x3F,0x3E,0x3E,0x3D,0x3C,0x3B, /*细分码表*/
	                     0x3A,0x38,0x37,0x35,0x33,0x31,0x2F,0x2D,
	                     0x2B,0x29,0x26,0x24,0x21,0x1E,0x1B,0x18,
	                     0x16,0x13,0x10,0x0C,0x09,0x06,0x03,0x01};
unsigned char IR[4]={0x02,0x03,0x01,0x00};//控制电流方向





void main(void)
{    
    unsigned char i,j;
	//IE = 0;//关闭所有中断
	WriteW1(64,15,10,10);                   
    //Delay(100);
    while(1)
	{
	    for(j=0; j<4; )
		{
            for(i=0; i<=31; i++ ) /*1/T,3/T*/
            {					   /*   H2      H1  */
                WriteW0(IR[j]|gzh,DRSIN[31-i],DRSIN[i]);
            }
			j++;
            for(i=0; i<=31; i++ )  /*2/T,4/T*/
            {
                WriteW0(IR[j]|gzh,DRSIN[i],DRSIN[31-i]);
            }
			j++;


            for(i=0; i<=31; i++ ) /*1/T,3/T*/
            {
                WriteW0(IR[j]|gzh,DRSIN[31-i],DRSIN[i]);
            }
			j++;
            for(i=0; i<=31; i++ )  /*2/T,4/T*/
            {
                WriteW0(IR[j]|gzh,DRSIN[i],DRSIN[31-i]);
            }
			j++;

        }/*END OF FOR(J)*/
	
	}/*END OF WHILE(1)*/

}/*END OF MAIN()*/

⌨️ 快捷键说明

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