打印
[AVR单片机]

AVR MEGA8实现的驱动4线步进机程序

[复制链接]
2622|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Karlshen|  楼主 | 2010-2-20 09:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#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);
}

相关帖子

沙发
huamunv| | 2010-2-20 22:38 | 只看该作者
:victory:

使用特权

评论回复
板凳
xiaoxin1986| | 2010-2-21 08:52 | 只看该作者
不错,这程序写的挺好的

使用特权

评论回复
地板
victor720708| | 2010-2-21 14:40 | 只看该作者
头文件#include <avr/io.h>
是在ICCAVR 还是在CVAVR中?

使用特权

评论回复
5
laslison| | 2010-2-21 16:13 | 只看该作者
步进电机走一步d=0 正转d=1 反转 t 越大走得越慢
没看懂

使用特权

评论回复
6
lovelyegle| | 2010-2-22 19:54 | 只看该作者
4# victor720708
是在ICCAVR

使用特权

评论回复
7
linhai1986| | 2010-2-22 20:46 | 只看该作者
小程序,收藏了

使用特权

评论回复
8
weky| | 2010-4-6 19:38 | 只看该作者
不错,菜鸟也学习下

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

81

主题

734

帖子

1

粉丝