硬件连接: 程序:
#include #define uint unsigned int #define uchar unsigned char uchar code FFW[]= { 0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09 }; uchar code REV[]= { 0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01 }; sbit K1 = P3^0; sbit K2 = P3^1; 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++) { if(K3 == 0) break; P1 = FFW[j]; DelayMS(25); } } } void SETP_MOTOR_REV(uchar n) { uchar i,j; for(i=0;i<5*n;i++) { for(j=0;j<8;j++) { if(K3 == 0) break; P1 = REV[j]; DelayMS(25); } } } void main() { uchar N = 3; while(1) { if(K1 == 0) { P0 = 0xfe; SETP_MOTOR_FFW(N); if(K3 == 0) break; } else if(K2 == 0) { P0 = 0xfd; SETP_MOTOR_REV(N); if(K3 == 0) break; } else { P0 = 0xfb; P1 = 0x03; } } }