通过独立按键K1、K2控制步进电机的正反转,K3控制步进电机的停转,主循环中去实时检测按键并设立正反转及停转标志,再跟进标志去控制步进电机正反转,程序编译并测试通过!
单片机源程序如下(步进电机):
- #include<reg52.h>
- #define uchar unsigned char
- sbit K1=P3^0; // 按下独立键盘S2正转
- sbit K2=P3^1; // 按下独立键盘S3反转
- sbit K3=P3^2; // 按下独立键盘S4停转
- uchar code table[]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9};
- uchar code table1[]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1};
- void delay(uchar z)
- {
- uchar x,y;
- for(x=z;x>0;x--)
- for(y=120;y>0;y--);
- }
- void main()
- {
- uchar k,i;
- P1=table[0];
- while(1)
- {
- if(!K1)
- delay(5);
- if(!K1)
- k=1;
- if(!K2)
- delay(5);
- if(!K2)
- k=2;
- if(!K3)
- delay(5);
- if(!K3)
- k=3;
- if(k==1||k==2)
- {
- for(i=0;i<8;i++)
- {
- if(k==1) P1=table[i];
- else P1=table1[i];
- delay(20);
- }
- }
- }
- }
复制代码
直流电机控制程序:
- #include<reg52.h>
- sbit s=P1^4;
- void delay(unsigned char z)
- {
- while(z!=0) z--;
- }
- void main()
- {
- while(1)
- {
- s=0;
- delay(9);
- s=1;
- delay(1);
- }
- }
复制代码
所有资料51hei提供下载:
通过独立键盘控制电机正传反正停止.zip
(11.98 KB, 下载次数: 21)
|