PIC單片機驅動步進電機先正轉后反轉
//**************************************************
//實驗目的:
//**************************************************
//**************************************************
//硬件設置:
//1、把步進電機接在J10位置上
//2、5腳是5V電源腳,1-4接步進電機線圈
//**************************************************
//**************************************************
//*****************定義頭文件**********************
//**************************************************
#include
//**************************************************
//******************定義配置位*********************
//**************************************************
__CONFIG(0x3541);
//FLASH代碼不保護,RB6和RB7為調試模式,F(xiàn)LASH不寫保護,數(shù)據(jù)代碼不保護
//RB3為數(shù)字IO口,低電壓復位使能,上電延時開,看門狗關,4M晶體XT振蕩器
//**************************************************
//******************定義常量***********************
//**************************************************
#define uchar unsigned char
#define uint unsigned int
//***********************************************
//函 數(shù) 名:delay();
//入口參數(shù):無
//出口參數(shù):無
//函數(shù)作用:延時
//說 明:
//***********************************************
void delay(void)
{
uint i;
for(i=400;i>0;i--){;}
}
//***********************************************
//函 數(shù) 名:main(void);
//入口參數(shù):無
//出口參數(shù):無
//函數(shù)作用:MAIN函數(shù)
//說 明:
//***********************************************
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();
}
}
}
評論