|
- #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);
- ;
- }
- }
復制代碼 |
|