51單片機控制步進電機正轉5圈,反轉5圈。
單片機源程序如下:
- //步進電機正反轉
- //電機使用端口P1.0,P1.1,P1.2,P1.3
- //單雙八拍工作方式:A-AB-B-BC-C-CD-D-DA
- //
- #include <reg51.h>
- #include <intrins.h>
- //**********************正向旋轉相序表*****************************
- unsigned char code FFW[8]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09};
- //**********************反向旋轉相序表*****************************
- unsigned char code REV[8]={0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08};
- //***********************延時子程序********************************
- void delay(unsigned int t)
- {
- unsigned int k;
- while(t--)
- {
- for(k=0; k<125; k++)
- {}
- }
- }
-
- //**********************步進電機正轉******************************
- void motor_ffw(unsigned int n)
- {
- unsigned char i;
- unsigned int j;
- for (j=0; j<8*64*n; j++)
- {
- for (i=0; i<8; i++)
- {
- P1 = FFW[i];
- delay(1);
- }
- }
- }
- //*********************步進電機反轉********************************
- void motor_rev(unsigned int n)
- {
- unsigned char i;
- unsigned int j;
- for (j=0; j<8*64*n; j++)
- {
- for (i=0; i<8; i++)
- {
- P1 = REV[i];
- delay(1);
- }
- }
- }
-
- //*************************主程序*********************************
- main()
- {
- while(1)
- {
- motor_ffw(5); //正轉5圈
- delay(1000);
- motor_rev(5); //反轉5圈
- delay(1000);
- }
- }
復制代碼
所有資料51hei提供下載:
28BYJ48.zip
(693 Bytes, 下載次數: 44)
2017-12-25 23:12 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|