當前位置:編程學習大全網 - 編程軟體 - 求壹個單片機C語言程序 要求定時鬧鐘控制步進電機正反轉 第壹次定時正轉 第二次定時反轉 加分!!!

求壹個單片機C語言程序 要求定時鬧鐘控制步進電機正反轉 第壹次定時正轉 第二次定時反轉 加分!!!

#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

  • 上一篇:安徽目前有多少企業擁有智能建築工程設計施工壹級資質?
  • 下一篇:代碼編程是怎麽樣的?
  • copyright 2024編程學習大全網