51/AVR单片机技术驿站!  <在线翻译>     便利工具    特色网址   无弹窗、无插件的绿色站点...  英才招聘   学历查询  喜欢>>收藏我站 

当前位置:首页 > 单片机技术文章 > AVR单片机 > 详细内容
ATMEGA8单片机驱动4线步进机C程序
发布时间:2009/8/6  阅读次数:2470  字体大小: 【】 【】【

#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)// 每步延时de子程序
{
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);
}

我要评论
  • 匿名发表
  • [添加到收藏夹]
  • 发表评论:(匿名发表无需登录,已登录用户可直接发表。) 登录状态:未登录
最新评论
所有评论[0]
    暂无已审核评论!

网站导航 管理登陆 ┊ 免责声明 问题反馈  友链说明
本站部分内容来自网络共享资源,如有冒犯您的权利请来信告之删除或纠正!
不得对本站进行复制、盗链或镜像,转载内容须获得同意或授权;欢迎友情链接、站务合作!

    我要报警 Alexa
 mcusy_cn#126.com (请把#改成@) 交流:522422171
本站学习交流群:138..158(高级群1-)、77930286(高级群2)、61804809(群3)
Copyright© MCUSY All Rights Reserved
本站网警备案号: WZ36040002485
  ICP备案证书号:粤ICP备09034963号