當前位置:編程學習大全網 - 編程軟體 - 設計壹個三相步進電機發生器

設計壹個三相步進電機發生器

#include<reg51.h>

#define uchar unsigned char

#define uint unsigned int

uint time

void timer1(void) interrupt 1 using 1{ //定時器0中斷,定時1ms//

TH0=(65536-1000)/256;

TL0=(65536-1000)%256;

time++;

}

void delay(uint n){ //壹般延時

while(--n);

}

void delay_moto(uint dtime){ //延時

TR0=1;

while(time<=dtime);

time=0;

TR0=0;

}

void moto(bit cf,uchar n,uint dtime){ //電機驅動子程序,

uchar idata zhpai[4]={0x01,0x02,0x04};

uchar idata fpai[4]={0x04,0x02,0x01};

uchar i,l=0;

if(cf==0) //正轉,A-B-C-A

for(i=0;i<n;i++){

P1=zhpai[l];//P1.2~1.0為輸出口,分別為A、B、C

l++;

delay_moto(dtime);

if(l==3)l=0;

}

else{ //反轉,C-B-A-C

for(i=0;i<n;i++){

P1=fpai[l];

l++;

delay_moto(dtime);

if(l==3)l=0;

}

}

}

void main(){

TMOD=0x01;

TH0=(65536-1000)/256;

TL0=(65536-1000)%256;

EA=1;

ET0=1;

while(1){

moto(0,3,70);//正轉,轉三相,每相間隔70ms

delay(10000);

moto(1,3,70);//反轉,轉三相,每相間隔70ms

delay(10000);

}

}

  • 上一篇:開發遊戲引擎以及遊戲制作需要學習什麽。
  • 下一篇:北大青鳥java培訓:轉行學Java靠譜嗎,北大青鳥Java怎麽樣?
  • copyright 2024編程學習大全網