#include?"reg52.h"
#define?uchar?unsigned?char?
#define?uint?unsigned?int?
//本列4組步進電動機工作於8拍方式
//正轉勵磁序列為A->AB->B->BC->C->CD->D->DA
uchar?code?FFW[]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};
//反轉勵磁序列為AD->D->CD->C->BC->B->BA->A
uchar?code?REV[]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};
sbit?k1=P3^0;? //正轉
sbit?k2=P3^1;? //反轉
sbit?k3=P3^2;? //停止
//延時
void?delay(uchar?ms)
{?uchar?us;
while(ms--)for(us=0;us<120;us++);}
//正轉
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]|(P1&0xf0);
delay(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]|(P1&0xf0);
delay(25);
} }}
//主程序
void?main()
{?uchar?N=3;?//運轉圈數
while(1) {?if(k1==0) {?P0=0x0e|(P0&0xf0);? //LED1點亮SETP_MOTOR_FFW(N);? //電動機正轉?
if(k3==0)break;
} else?if(k2==0) {?P0=0x0d|(P0&0xf0);? //LED2點亮SETP_MOTOR_REV(N);? //電動機反轉?
if(k3==0)break;
} else? {?P0=0x0b|(P0&0xf0);? //LED3點亮P1=0x03|(P1&0xf0);
} }}
這個嗎?
我想賺錢妳可以幫我找找嗎,網上兼職的
加我q1070872487