微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > AVR128的程序——步进电机点动正反控制

AVR128的程序——步进电机点动正反控制

时间:11-22 来源:互联网 点击:
#include

#include

#define uchar unsigned char

#define uintunsigned int

uchar step_table[]={0xf1,0xf2,0xf4,0xf8};

uchar step_table1[]={0xf8,0xf4,0xf2,0xf1};

void Delayms(uint MS);

void mcu_init(void)

{

DDRA=0XFF;

PORTA=0XFF;

DDRC=0XFF;

PORTC=0XFF;

DDRF|=0X0E;

PORTF|=0X0E;

PORTF&=0xF8;

DDRB |=0X1f;

PORTB|=0X1f;

DDRD = 0x00;

PORTD = 0XFF;

}

void main(void)

{

uint i,a1=0,a2=0;

mcu_init();

while(1)

{

if((PIND&0x01)!=0X01)

{

Delayms(5);

if((PIND&0x01)!=0X01)

{

a1=1;

while(a1)

{

PORTA=0XFE;

for(i=0;i<4;i++)

{

PORTB = step_table[i];

Delayms(3);

}

if((PIND&0X01)!=0X00);

{

PORTA=0XFF;

a1=0;

}

}

}

}

if((PIND&0x02)!=0X02)

{

Delayms(5);

if((PIND&0x02)!=0X02)

{

a2=1;

while(a2)

{

PORTA=0XEF;

for(i=0;i<4;i++)

{

PORTB = step_table1[i];

Delayms(3);

}

if((PIND&0X02)!=0X00);

{

PORTA=0XFF;

a2=0;

}

}

}

}

}

}

void Delayms(uint MS)

{

uint i,j;

for( i=0;i

for(j=0;j<1141;j++);

}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top