文档介绍:#include<>#defineucharunsignedchar#defineuintunsignedintucharcodeFFW[]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};ucharcodeREV[]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};sbitK1=P3^0;sbitK2=P3^1;sbitK3=P3^2;//延时voiddelay_ms(uintx){uchart;while(x--)for(t=0;t<120;t++);}//正转voidstep_motor_ffw(ucharn){uchari,j;for(i=0;i<5*n;i++){for(j=0;j<8;j++){if(K3==0)break;P1=FFW[j];delay_ms(25);}}}//反转voidstep_motor_rev(ucharn){uchari,j;for(i=0;i<5*n;i++){for(j=0;j<8;j++){if(K3==0)break;P1=REV[j];delay_ms(25);}}}//主函数voidmain(){ucharN=3;while(1){if(K1==0){P0=0xfe;step_motor_ffw(N);if(K3==0)break;}elseif(K2==0){P0=0xfd;step_motor_rev(N);if(K3==0)break;}else{P0=0xfb;P1=0x03;}}}正反转#include<>#include<>#defineINT8Uunsignedchar#defineINT16Uunsignedint#defineS1_ON()(P3&(1<<5))==0X00#defineS2_ON() (P3&(1<<6))==0X00#defineS3_ON() (P3&(1<<7))==0X00#defineForward0#defineStop1#defineBackward2sbitM_DIR=P1^0;sbitM_PWM=P1^1;sbitKey_INC=P3^0;sbitKey_DEC=P3^1;//延时voiddelay_us(INT16Ux){for(;x>0;x--)_nop_();}//主函数voidmain(){intspeed=200;while(1){if(S2_ON()){P0=~(1<<Stop);M_DIR=0;M_PWM=0;continue;}if(S1_ON()){M_DIR=0;P0=~(1<<Forward);}if(Key_INC==0)speed=speed<400?speed+1:400;if(Key_DEC==0)speed=speed>0?speed:0;M_PWM=1;delay_us(speed);M_PWM=0;delay_us(400-speed);}}PWM控制#include<>#include<>#defineucharunsignedchar#defineuintunsignedintcharflag=1;sbitpwmout=P2^0;unsignedcharcou