首页 步进电机四相八拍驱动程序

步进电机四相八拍驱动程序

举报
开通vip

步进电机四相八拍驱动程序步进电机四相八拍驱动程序 /*---------------------------------------------------------------------------------------------------- 名称: 步进电机四相八拍驱动程序 文件名:steper.c 作者: eastboy E-mail: eastboy_007@163.com 日期: 2008年7月16日 版本: 1.0 申明: 按键部分程序参考了raosibin的4×4按键状态机思想程序 说明: 1....

步进电机四相八拍驱动程序
步进电机四相八拍驱动程序 /*---------------------------------------------------------------------------------------------------- 名称: 步进电机四相八拍驱动程序 文件名:steper.c 作者: eastboy E-mail: eastboy_007@163.com 日期: 2008年7月16日 版本: 1.0 申明: 按键部分程序参考了raosibin的4×4按键状态机思想程序 说明: 1.可通过按键选择正转或反转,碰到限位开关后自动微调上一次微调值后停止; 2.可通过按键微调,即低速转动,以便精确调整位置; 3.仿真时通过两个按钮模拟前后限位开关,以模拟实际生活当中步进电机带轴运动时部件的前后电限位, 程序并可自动记住以前后限位开关为基点的微调步数; 4.本程序只是通过了软件功能仿真,未做实物实验,不保证实际使用时可用,实际使用时应做相应参数调整; 5.本程序未加入电机过流保护部分,有兴趣可以自行加入。 -----------------------------------------------------------------------------------------------------*/ #include include # #include #include #define ShortPush 0x40 #define LongPush 0x80 volatile uint8_t Direction=0,Limit=0; //Direction旋转方向,0为顺时针,1为逆时针;Limit限位,0为前限位,1为后限位 volatile uint8_t Pflag=0,TuneFlag=0; //Pflag限位开关标志,1为开关动作;TuneFlag微调标志,0为不微调,1为微调加,2为微调减,3为微调连加,4为微调连减 volatile SlowSpeed=0;//低速标志,1为低速,0为高速,用于微调时选低速 static uint8_t stepper[8]={0x80,0xC0,0x40,0x60,0x20,0x30,0x10,0x90}; //驱动状态码 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf volatile uint16_t Position[2]={0x00,0x00};//限位开关动作后的微调步数记录 volatile uint8_t keycode=0x00; volatile uint8_t LastKey=0xFF,CurKey=0x00; volatile uint8_t keytimes=0x00; volatile uint8_t key_limit=0x00; volatile uint8_t stepcnt=0; volatile uint16_t Pcnt=0; #define StepperStop() { TCCR1B=0x00; PORTD&=~(1<7) stepcnt=0; PORTC|=1<0) Pcnt--; else Pcnt++; break; case 0x02: case 0x04: if(Limit==0x00) Pcnt++; else { if(Pcnt>0) Pcnt--; } break; default: break; } Position[Limit]=Pcnt; eeprom_is_ready(); eeprom_write_word((Limit==0x00 ? 0x01 : 0x03),Position[Limit]); if(TuneFlag==1 || TuneFlag==2) { StepperStop(); goto T0End; } else StepperStart(); goto T0End; } if(Pflag==1) { Pcnt++; if(Pcnt>=Position[Limit]) { StepperStop(); goto T0End; } else TCCR1B=(1<100) //长按 { keytimes=101; keycode=(LongPush|CurKey); } } else if(CurKey!=LastKey) { LastKey=CurKey; keytimes=0x00; } else //无键按下或已释放 { keytimes=0x00; } } void Timer0_init() { TCCR0=0x00; TCNT0=0x64; //10mS TCCR0=(1<
本文档为【步进电机四相八拍驱动程序】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_882336
暂无简介~
格式:doc
大小:27KB
软件:Word
页数:12
分类:企业经营
上传时间:2017-11-16
浏览量:88