内容发布更新时间 : 2025/11/4 22:09:34星期一 下面是文章的全部内容请认真阅读。
}
void PWM_Init() {
static unsigned char t=0; t++;
//速度产生函数
if(t>Pwm_MAX) t=0;
if(t<=Pwm_Value)
if(D==0) { } else {
MotorA=Pwm; MotorB=0; MotorA=0; MotorB=Pwm; { Pwm=1; } else { Pwm=0; }
} }
void Show_Value(unsigned char CH[]) //数据显示函数 { int i;
for(i=0;i<4;i++) { LcdPutChar(CH[i]); }
}
void Show_Init() //{
LcdWriteCmd(0x80); LcdPuts(\速度设定\LcdWriteCmd(0x90); LcdPuts(\速度反馈\LcdWriteCmd(0x88); LcdPuts(\速度方向\LcdWriteCmd(0x98); LcdPuts(\测控071 \LcdWriteCmd(0x9c); LcdPuts(\号 \}
void T_int()
{
TMOD&=0x00; TMOD=0x25; TH1=TL1=0xa4; TH0=TL0=0;
数据显示预处理函数//定时器初始化函数
ET1=1; TR1=1; EA=1; }
void MeasureSpeed() {
unsigned int m; TH0=TL0=0; TR0=1; Delay(2400); TR0=0; TF0=0;
m=2*(TH0*255+TL0);
if(m>Value)  Pwm_Value++; if(m FK[3]=(m)+48; FK[2]=(m/10)+48; FK[1]=(m/100)+48; FK[0]=(m/1000)+48;   SD[3]=(Pwm_Value)+48; SD[2]=(Pwm_Value/10)+48; SD[1]=(Pwm_Value/100)+48; SD[0]=(Pwm_Value/1000)+48; }       //速度反馈及信息处理函数    void main()  {       //主函数部分   unsigned char i;      MotorA=0;    MotorB=0;  EA=0;         T_int();  //定时器初始化      Delay(50);       LcdInit();//LCD初始化    /*****************************************/    for(i=0;i<2;i++)       {     }  LcdLightOff(); Delay(660); LcdLightOn(); Delay(660);       Delay(660);        LcdClear();       Delay(660);  /****************************************/    Show_Init();       Delay(20);    Value=90;   //速度初值       Pwm_Value=Value;  EA=1;     for(;;)   {   KEY();       //按键处理             }          MeasureSpeed();  //速度反馈 LcdWriteCmd(0x94);  Show_Value(FK);  //显示实时速度 LcdWriteCmd(0x84);  Show_Value(SD);  //显示设定值 LcdWriteCmd(0x8c);  //显示方向   if(D==0) LcdPuts(\正向\ if(D==1) LcdPuts(\反向\}  void T1ZD() interrupt 3 //T1中断服务程序 {  unsigned char m=0; TR1=0;  PWM_Init(); //电机控制 if(SWTR)    //延时程序控制    {  }   if(--SWTV==0)  SWTF=1;  TR1=1; }