#include <reg52.h> #define uint unsigned int #define uchar unsigned char uchar code FFW[]={ 0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09 }; sbit K1 = P3^0;//啟動按鍵 sbit K3 = P3^2; //停按鍵 void DelayMS(uint ms)//延時 { uchar i; while(ms--) { for(i=0;i<120;i++); }} void SETP_MOTOR_FFW(uchar n) //正轉函數 { uchar i,j; for(i=0;i<5*n;i++) { for(j=0;j<8;j++) { P1 = FFW[j]; //輸出 DelayMS(25); //仿真延時增大或者減小,為何轉速變慢??? } }} void main() { uchar Z = 200; while(1) { if(K1 == 0) { SETP_MOTOR_FFW(Z); if(K3 ==0) break; //仿真K3按下跳出循環應該停,但是按下仍然轉?? } }} 以上兩個地方沒看出問題,請教老師指點。 |