欢迎来到天天文库
浏览记录
ID:9960993
大小:34.00 KB
页数:7页
时间:2018-05-17
《avr atmega16 步进电机驱动程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、AVRATMega16步进电机驱动程序这两天做步进电机的驱动成功,现将程序共享,愿起到抛砖引玉的作用。此程序可驱动五引线步进电机,通过按键可控制步进电机的转速、方向、三种驱动方式,三种驱动方式分别为:单四拍驱动、双四拍驱动、单双八拍驱动,其中以单双八拍驱动转速最慢。具体联接方式在程序中有说明。/************************************* 步进电机的M16驱动程序 **功 能:用M16驱动步进电机 ** 实现三种驱动方式 *
2、* 单四拍驱动、双四拍驱动 ** 单双八拍驱动 **驱动芯片:ULN2803 **联接方式:PC0-3分别通过2803接A-D ** 步进电机公共端接+5V电源 **建立日期:2008年04月05日 **作 者:铜河 **版 本:V1.0 **修改日期:2008年04月06日 **主控芯片:M16 **时钟频率
3、:外部晶体7.3728MHZ **编译器:ICCAVR6.31A *************************************/#include#include#include"delay.h"#defineRD_KEY()((~(PINC
4、0x0F))>>4)//四按键接于PC4-PC7unsignedchari=0; //转动计数unsignedcharm=1; //驱动方式参数unsignedcha
5、rn=0; //转动方向参数unsignedintzhuansu=61500; //转速数据/***************************** 端口配置函数 *****************************/voidport_init(void) { PORTA=0x40; DDRA=0x40; PORTB=0x00; DDRB=0x00; PORTC=0xF0; DDRC=0x0F; PORTD=0x00; DDRD=0x00; }
6、/***************************** 正转操作函数 **入 口:a三种工作方式 *****************************/voidbj_fs(unsignedchara) { switch(a) { case1: //单四拍方式驱动 PORTC
7、=1<=4)i=0; break; case2:
8、 //双四拍方式驱动 if(i!=4) //AB、BC、CD、DA驱动 PORTC
9、=(1<
10、(1<<(i-1)); else PORTC
11、=(1<<(i-1))
12、1; i++; if(i>=5)i=1; break; case3: //单双八拍方式驱动 if(i%2) //A、AB、B、BC、C、CD、D、DA驱动
13、 { if(i!=7) PORTC
14、=(1<<(i/2))
15、(1<<(i/2+1)); else PORTC
16、=(1<<(i/2))
17、1; } else { PORTC
18、=1<<(i/2); } i++; if(i>=8)i=0; break; default:break; } }
19、/***************************** 反转操作函数 **入 口:a三种工作方式 *****************************/voidbj_fsf(unsignedchara) { switch(a) { case1: //单四拍方式驱动 PORTC
20、=1<<(3-i); //D、
此文档下载收益归作者所有