|
資料分享 80C51單片機(jī)+步進(jìn)電機(jī)控制K1 :正轉(zhuǎn) K2 :反轉(zhuǎn) K3 加減速
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
單片機(jī)源程序如下:
- #include<reg52.h>
- #define uchar unsigned char
- #define uint unsigned int
- #define MotorData P1 //步進(jìn)電機(jī)控制接口定義
- uchar phasecw[8] ={0x02,0x06,0x04,0x0c,0x08,0x09,0x01,0x03};//正轉(zhuǎn) 電機(jī)導(dǎo)通相序 D-C-B-A
- uchar phaseccw[8] ={0x03,0x01,0x09,0x08,0x0c,0x04,0x06,0x02};//反轉(zhuǎn) 電機(jī)導(dǎo)通相序 A-B-C-D
- void key();
- void key1();
- uchar num,num1;
- uint speed=200;//速度調(diào)節(jié)
- sbit K1=P3^0;
- sbit K2=P3^1;
- sbit K3=P3^2;
- sbit K4=P3^3;
- //ms延時(shí)函數(shù)
- void Delay_ms(uint x)
- {
- uint i,j;
- for(i=0;i<x;i++)
- for(j=0;j<112;j++);
- }
- //順時(shí)針轉(zhuǎn)動(dòng)
- void MotorCW(void)
- {
- if(!K1)
- {
- uchar i;
- for(i=0;i<8;i++)
- {
- MotorData=phasecw[i];
- Delay_ms(speed);//轉(zhuǎn)速調(diào)節(jié)
- key1();
- }
-
- }
-
- }
- //逆時(shí)針轉(zhuǎn)動(dòng)
- void MotorCCW(void)
- {
-
- if(!K2)
- {
- uchar i;
- for(i=0;i<8;i++)
- {
- MotorData=phaseccw[i];
- Delay_ms(speed);//轉(zhuǎn)速調(diào)節(jié)
- key1();
- }
- }
-
- }
- void main(void)
- {
- while(1)
- {
- key();
-
- }
-
- }
-
- void key()
- {
- if(K1==0) //順時(shí)針 啟動(dòng)
- {
- Delay_ms(5);
- if(K1==0)
- {
-
- while(!K1)
- {
- MotorCW();
- }
-
- }
- }
-
- if(K2==0) //逆時(shí)針 啟動(dòng)
- {
- Delay_ms(5);
- if(K2==0)
- {
-
- while(!K2)
- {
- MotorCCW();
- }
-
- }
- }
-
- }
-
-
- void key1() //速度調(diào)節(jié)
- {
-
-
- if(K3==0) //速度調(diào)節(jié)
- {
- Delay_ms(5);
- if(K3==0)
- {
- num++;
- while(!K3);
- if(num==1)
- {
- speed=100;
- }
-
- if(num==2)
- {
- speed=50;
- }
- if(num==3)
- {
- num=0;
- speed=20;
- }
-
- }
- }
-
- }
-
- // 控制步進(jìn)電機(jī),K1 順時(shí)針 ,K2 逆時(shí)針 ,K3 速度調(diào)節(jié)
復(fù)制代碼
Proteus7.5的仿真dsn文件下載:
步進(jìn)電機(jī)控制控制.rar
(25.03 KB, 下載次數(shù): 99)
2021-8-17 12:22 上傳
點(diǎn)擊文件名下載附件
|
評(píng)分
-
查看全部評(píng)分
|