电力拖动课程设计 - 图文

浙江理工大学拖动系统课程设计

if(speed00==0) {yy[3]='\\0';} delay(5) ; write_string(LCD_SL+8,\ \ //屏幕清空 delay(35); write_string(LCD_SL+8,yy); }

//-------------------------------------------------------------------

//--------------------------------------------------------------计时器1中断 void time0() interrupt 3 {

time_calculate(); BG++;S++; if(BG==1) { TH1=PHTH; TL1=PHTL; } else { BG=0; TH1=PLTH; TL1=PLTL; } if(direction==1) {PWM1=~PWM1;PWM2=0;} else {PWM2=~PWM2;PWM1=0;} }

//---------------------------------------------------------------------

//--------------------------------------------------------计数器中断 void time2() interrupt 0

第25页

浙江理工大学拖动系统课程设计

{

RAND++; if(S==200) {speed_calculate(); } }

//-------------------------------------------------------------

//------------------------------------------------------------主程序 void main() {

rank=5; // 设置默认转速 state=0; // 电机停止状态 direction=1; // 电机转向为正方向 PWM1=0; // 无PWM信号 PWM2=0; // lcd_init(); // 初始化屏幕 while(1) { key(); if(key_in>0) { if(key_in==1||key_in==2) { if(key_in==1&&rank<9) { rank++; } if(key_in==2&&rank>3) { rank--; } time_calculate(); } else if(key_in==7||key_in==8) {

if(key_in==8&&state==1) { PWM1=0;PWM2=0; TR1=0;ET1=0;state=0; EX0=0; write_string(LCD_SL,\ \

第26页

//定时器和计数器中断设置

浙江理工大学拖动系统课程设计

} else if(key_in==7&&state==0) { TR1=1;ET1=1;EA=1;TMOD=0x10; BG=1; state=1;IT0=1;EX0=1;PX1=1; //定时器和计数器中断设置 //定时器1以方式1记时 //计数器0以下降沿触发中断 S=0;RAND=0; pwm_on(); } } else if(key_in==4||key_in==5) { if(direction==2&&key_in==4) { direction=1;PWM1=0;PWM2=0; TR1=0;ET1=0; delay_1ms(400); } else if(direction==1&&key_in==5) { direction=2;PWM1=0;PWM2=0; TR1=0;ET1=0; //换向时先停止在换向 delay_1ms(400); } if(state==1) { pwm_on(); } }

key_in=-1;

write_string(LCD_FL,\TE: \if(state==1) {

char xx[5];int R; R=rank-2;

sprintf(xx, \

write_string(LCD_FL+13,xx);

第27页

浙江理工大学拖动系统课程设计

} else {

write_string(LCD_FL+13,\ //刷新屏幕 }

if(direction==1)

write_string(LCD_FL+6,\else

}

}

}

write_string(LCD_FL+6,\

第28页

联系客服:779662525#qq.com(#替换为@)