18luck网站

18luck网站電子設計 | 18luck网站Rss 2.0 會員中心 會員注冊
搜索: 您現在的位置: 18luck网站 >> 18luck平台 >> 單片機 >> 正文

步進電機驅動程序

作者:佚名    文章來源:本站原創    點擊數:    更新時間:2010-10-4

#include <reg51.h>       //51芯片管腳定義(yi) 頭文件
#include <intrins.h>     //內(nei) 部包含延時函數 _nop_();
#define uchar unsigned char
#define uint  unsigned int
sbit  K1=P1^4;
uchar code FFW[8]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9};
//uchar code REV[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1};
uchar rate ;        
/********************************************************/
/*                                                  
/* 延時
/* 11.0592MHz時鍾,                                    
/*                                                      
/********************************************************/
void delay()
 {                           
   uchar k;
   uint s;
   k = rate;
   do
   {
    for(s = 0 ; s <1000 ; s++) ;        
   }while(--k);
 }
/********************************************************/
/*
/*步進電機正轉
/*
/********************************************************/
void  motor_ffw()
 { 
   uchar i;
 
    for (i=0; i<8; i++)     //一個(ge) 周期轉30度
    {
      P1 = FFW[i];        //取數據
      delay();            //調節轉速
    }
 }
/********************************************************
*                                                       
*步進電機運行                                               
*                                                      
*********************************************************/
void  motor_turn()

   uchar x;
   rate=0x0a;
   x=0x80;
   do
     {
      motor_ffw();          //加速
      rate--;
     }while(rate!=0x01);
   do
     {        
       motor_ffw();        //勻速
       x--;
     }while(x!=0x01);
     
   do
     {
      motor_ffw();         //減速
      rate++;
     }while(rate!=0x0a);    
}
/********************************************************
*                                                       
*  主程序                                               
*                                                      
*********************************************************/
main()
{       
   P1=0xf0; 
   while(1)
  {
    P1=0xf0;
    if(K1==0)
    {
      motor_turn();
    }
  } 
}

Tags:51單片機,步進電機,驅動,程序  
責任編輯:admin
請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個字
[ 查看全部 ] 網友評論
關於我們 - 聯係我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁麵
下到頁底
晶體管查詢