步進電機轉動歷程
單片機源程序如下:
- #include "reg52.h"
- //電機IO
- #define GPIO_MOTOR P1
- //sbit F1 = P1^0;
- //sbit F2 = P1^1;
- //sbit F3 = P1^2;
- //sbit F4 = P1^3;
- //按鍵IO
- sbit K1=P3^0; //接開關
- //sbit K2=P3^1;
- //sbit K3=P3^2;
- //sbit K4=P3^3;
- unsigned char code FFW[8]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9}; //反轉順序
- unsigned char code FFW1[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1};//正轉
- unsigned int k=0,j=0;
- void Delay(unsigned int t);
- void Motor();
- void Motor1();
- /*******************************************************************************
- * 函 數 名 : main
- * 函數功能 : 主函數
- * 輸 入 : 無
- * 輸 出 : 無
- *******************************************************************************/
- void main(void)
- {
- while(1)
- {
- if(K1==0) //通電,正轉25
- {
- for(k;k<28;k++)
- {Motor1(); }
- j=0;
- }
- else if(K1==1) //斷電,倒轉25
- {
- for(j;j<28;j++)
- {Motor(); }
- k=0;
- }
- }
- }
- /*******************************************************************************
- * 函 數 名 : Motor
- * 函數功能 : 電機旋轉函數
- * 輸 入 : 無
- * 輸 出 : 無
- *******************************************************************************/
- void Motor() //反轉
- {
- unsigned char i;
- for(i=0;i<8;i++)
- {
- GPIO_MOTOR = FFW[i]&0x1f; //取數據
- Delay(13); //調節轉速
- }
- }
- void Motor1() //正轉
- {
- unsigned char i;
- for(i=0;i<8;i++)
- {
- GPIO_MOTOR = FFW1[i]&0x1f; //取數據
- Delay(13); //調節轉速
- }
- }
- /*******************************************************************************
- * 函 數 名 : Delay
- * 函數功能 : 延時
- * 輸 入 : t
- * 輸 出 : 無
- *******************************************************************************/
- void Delay(unsigned int t)
- {
- unsigned int k;
- while(t--)
- {
- for(k=0; k<80; k++)
- { }
- }
- }
復制代碼
所有資料51hei提供下載:
步進電機轉動.rar
(24.38 KB, 下載次數: 22)
2018-2-12 16:25 上傳
點擊文件名下載附件
|