|
51單片機(jī)控制步進(jìn)電機(jī)實(shí)現(xiàn)正轉(zhuǎn) 反轉(zhuǎn) 加速 減速的仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png (25 KB, 下載次數(shù): 56)
下載附件
2017-5-22 16:13 上傳
0.png (15.68 KB, 下載次數(shù): 44)
下載附件
2017-5-22 16:13 上傳
0.png (72.58 KB, 下載次數(shù): 91)
下載附件
2017-5-22 16:12 上傳
單片機(jī)源程序如下:
- #include<reg52.h>
- #define uint unsigned int
- #define uchar unsigned char
- uchar code FFW[]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};
- uchar code REV[]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};
- sbit K1=P3^0;
- sbit K2=P3^1;
- sbit K3=P3^2;
- sbit K4=P3^3;
- sbit K5=P3^4;
- void delayMS(uint ms)
- {
- uchar i;
- while(ms--)
- {
- for(i=0;i<120;i++);
- }
- }
- void SETP_MOTOR_FFW(uchar n)
- {
- uchar i,j;
- uint ms=200;
-
- for(i=0;i<5*n;i++)
- {
- for(j=0;j<8;j++)
- {
- if(K3==0) break;
- if(K2==0) break;
- if(K4==0)
- {
- P0=0xf6;
- ms=50;
- }
- if(K5==0)
- {
- P0=0xee;
- ms=500;
- }
- P1=FFW[j];
- delayMS(ms);
- }
- }
- }
- void SETP_MOTOR_REV(uchar n)
- {
- uchar i,j;
- uint ms=200;
- for(i=0;i<5*n;i++)
- {
- for(j=0;j<8;j++)
- {
- if(K1==0) break;
- if(K3==0) break;
- if(K4==0)
- {
- P0=0xf5;
- ms=50;
- }
- if(K5==0)
- {
- P0=0xed;
- ms=500;
- }
- P1=REV[j];
- delayMS(ms);
- }
- }
- }
- void main()
- {
- uchar N=3;
- while(1)
- {
- uchar ms=50;
- if(K1==0)
- {
- P0=0xfe;
- SETP_MOTOR_FFW(N);
- if(K3==0) break;
- }
- else if(K2==0)
- {
- P0=0xfd;
- SETP_MOTOR_REV(N);
- ……………………
- …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
步進(jìn)電機(jī).rar
(36.04 KB, 下載次數(shù): 141)
2017-5-22 12:06 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|