技术热线: 4007-888-234
设计开发

专注差异化嵌入式产品解决方案 给智能产品定制注入灵魂给予生命

开发工具

提供开发工具、应用测试 完善的开发代码案例库分享

技术支持

从全面的产品导入到强大技术支援服务 全程贴心伴随服务,创造无限潜能!

新闻中心

提供最新的单片机资讯,行业消息以及公司新闻动态

[MCD

更新时间: 2019-01-05
阅读量:659

//实验目的:步进电机的使用
//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--;);
       }
 }