您当前的位置:五五电子网电子知识单片机-工控设备AVR单片机ATMEGA8驱动4线步进机程序 正文
ATMEGA8驱动4线步进机程序

ATMEGA8驱动4线步进机程序

点击数:7162 次   录入时间:03-04 11:55:02   整理:http://www.55dianzi.com   AVR单片机
#include <avr/io.h>
#include <avr/delay.h>


#define uchar unsigned char
#define uint unsigned int


uchar np;

//步进电机运行数据表

const uchar motortb[]={0x11,0x99,0x88,0xCC,0x44,0x66,0x22,0x33};

void delay_nms(uint ms)// 每步延时的子程序

uint i;
for(i=0;i<ms;i++)
   _delay_loop_2(8*250);
}

void a_step(uchar d,uchar t) //步进电机走一步d=0 正转d=1 反转 t 越大走得越慢

if (d&0x01) 
   {
    if (np==0) 
     np=7;
    else 
     np--; 
   }
else 
   {
    if (np==7) 
     np=0;
    else
     np++; 
   }
PORTD=motortb[np]; 
delay_nms(t);
}

void a_turn(uchar d,uchar t)// 步进电机走一圈

uchar i;
for (i=0;i<96;i++) 
a_step(d,t);
}

int main(void)

DDRD=0xff; 
PORTD=0x44;
DDRB=0xff;
PORTB=0xff;
np=4;
while (1)
a_turn(1,200); 
}



本文关键字:程序  AVR单片机单片机-工控设备 - AVR单片机