本文介绍了使用PIC单片机驱动步进电机先正转后回转。
//**************************************************
//试验意图:
//了解PIC单片机驱动步进电机,先正转后回转
//**************************************************
//**************************************************
//硬件设置:
//1、把步进电机接在J10方位上
//2、5脚是5V电源脚,1-4接步进电机线圈
//**************************************************
//**************************************************
//*****************界说头文件**********************
//**************************************************
#include
//**************************************************
//******************界说装备位*********************
//**************************************************
__CONFIG(0x3541);
//FLASH代码不维护,RB6和RB7为调试形式,FLASH不写维护,数据代码不维护
//RB3为数字IO口,低电压复位使能,上电延时开,看门狗关,4M晶体XT振荡器
//**************************************************
//******************界说常量***********************
//**************************************************
#define uchar unsigned char
#define uint unsigned int
//***********************************************
//函 数 名:delay();
//进口参数:无
//出口参数:无
//函数效果:延时
//说 明:
//***********************************************
void delay(void)
{
uint i;
for(i=400;i>0;i–){;}
}
//***********************************************
//函 数 名:main(void);
//进口参数:无
//出口参数:无
//函数效果:MAIN函数
//说 明:
//***********************************************
void main(void)
{
uint i;
OPTION=0X8F; //分频给WDT,分频比为128
ADCON1=0X07; //设置RA口,RE口为一般IO口
TRISA=0X00; //设置RD口为输出口
PORTA=0XDF; //RD口首要输出高电平
while(1)
{
for(i=400;i>0;i–) //步进电机正转
{
PORTA=0XDD;
delay();
PORTA=0XDB;
delay();
PORTA=0XD7;
delay();
PORTA=0XCF;
delay();
}
for(i=400;i>0;i–) //步进电机回转
{
PORTA=0XCF;
delay();
PORTA=0XD7;
delay();
PORTA=0XDB;
delay();
PORTA=0XDD;
delay();
}
}
}