- #include<reg52.h>
- sbit BY1=P0^0;
- sbit BY2=P0^1;
- int a[4]={0xfe,0xfd,0xfb,0xf7}; //正传
- int b[4]={0xf7,0xfb,0xfd,0xfe}; //反转
- void latetime(int t) //延时函数
- {
- char j;
- while(t--)
- {
- for(j=0;j<125;j++);
- }
- }
- void moter() //电机正传
- {
- int i;
- while(1)
- {
- for(i=0;i!=4;i++)
- {
- P1=a[i];
- latetime(5);
- }
- }
- }
- void retom() //电机反转
- {
- int o ;
- while(1)
- {
- for(o=0;o!=4;o++)
- {
- P1=b[o];
- latetime(5);
- }
- }
- }
- void stop() //电机停止
- {
- while(1)
- {
- P1=0xff;
- }
- }
- void main() //主函数
- {
- if (BY1==0) //按下P0.0的开关
- {
- moter();
- while(BY1!=0) ;
- ;
- }
- if (((BY1)==(BY2))==1) // 同时按下或同时断开
- {
- stop() ;
- while((BY1==0)&&(BY2==0)==0);
- ;
- }
- if (BY2==0) //按下P0.1的开关
- {
- retom() ;
- while(BY2!=0);
- ;
- }
- }
复制代码 |