PIC单片机驱动步进电机先正转后反转
扫描二维码
随时随地手机看文章
本文介绍了利用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();
}
}
}