//实验目的:步进电机的使用
//1、步近电机的驱动
//2、如何控制步进电机的位移距离
//系统设计
//1、本实验采用4相4拍步进电机,步进角为7.5
//2、步进电机驱动口连接在RA0-RA3
//硬件要求:
//拨码开关S1第6位到第8位置ON,S1其他位和其他拨码开关断开
#include //调用头文件
__CONFIG(0x1832);
//芯片配置字,看门狗关,上电延时开,掉电检测关,低压编程关,加密,4M晶体HS振荡
char step1=9; //第1步
char step2=0x0c; //第2步
char step3=6; //第3步
char step4=3; //第4步
void delay(); //申明延时函数
//**********************主函数*************************
void main()
{
char loop; //申明循环变量
ADCON1=0x7; //设置A口做普通数字口
TRISA=0X00; //设置A口为输出
for(loop=12;loop--;) //电机旋转一周需要循环12次( 360/(7.5*4) )
{
PORTA=step1; //驱动第1步
delay(); //延时
PORTA=step2; //驱动第2步
delay();
PORTA=step3; //驱动第3步
delay();
PORTA=step4; //驱动第4步
delay();
}
while(1) //停止转动
{
PORTA=0;
}
}
//**********************延时函数***********************
void delay()
{
char i,j;
for(i=100;i--;)
{
for(j=255;j--;);
}
}