专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

关于单片机编程设计和控制步进电机的注意事项

作者:郭子瑜   来源:51hei   点击数:  更新时间:2008年09月11日   【字体:

   关于单片机编程设计的注意事项,我是这样认为的,首先要考虑程序的可执行效率,要简洁、维护方便,还要有可扩展空间,简单明了,子程序的搭配,延时的应用,和中断的配合,主函数调取子程序模块的效率、循环某个子程序的时间,条件触发启动子程序能迅速响应主程序的调配。  通过以上可以看出,编一个好的程序,要考虑到单片机软件的方方面面,所以编程时,一定不能马虎,如果马虎,那么你的程序就会出错,到时还得纠错,费时费力。

   如果遇到关于步进电机的程序,那么一定要考虑到步进电机的正反转进制码,还要考虑到转速,还有当前步进电机的状态显示,所以编一个程序,是一件很辛苦的事,还好有http://www.51hei.com这个学习单片机的好网站,可以找到很多例子和朋友。有时候累了就上论坛那泡一泡,可能会有点收获,我这些经验也是长期泡单片机论坛总结出来的。对于步进电机的这个程序我认为难就难在步进电机和显示的进制码上,如:

uchar code FFW[8]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9};电机正转
uchar code REV[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1};电机反转

步进电机正转
**********************************/
void  motor_ffw()
{
   uchar i;
   uint  j;
   for (j=0; j<12; j++)         //转1*n圈
    {
     if(k4==0)
        {break;}                //退出此循环程序
      for (i=0; i<8; i++)       //一个周期转30度
        {
          P1 = FFW[i];          //取数据
          yanshia(15);            //调节转速
        }
    }
}
/**********************************
       步进电机反转
**********************************/
void motor_rev()
{
    uchar i;
    uint  j;
  for(j=0;j<12;j++)
{
     if(k4==0)
     {break;}
for(i=0;i<8;i++)
{
   P1=REV[i];
   yanshia(15);
   }
    }
      }


 

关闭窗口