51单片机之lcd1602步进电机控制
void
data_conv()
{
data_temp1=data_temp/10;
//高位
if(data_temp1==0)
{data_temp1=0x20;}
//高位为0不显示
else
{data_temp1=data_temp1+0x30;}
data_temp2=data_temp;
//低位
data_temp2=data_temp2+0x30;
}
void
data_dis()
{
data_temp = snum;
//显示圈数
data_conv();
lcd_pos(0x44);
lcd_wdat(data_temp1);
lcd_pos(0x45);
lcd_wdat(data_temp2);
data_temp = rate;
//显示速率
data_conv();
lcd_pos(0x4d);
lcd_wdat(data_temp1);
lcd_pos(0x4e);
lcd_wdat(data_temp2);
}
void
motor_DR()
{
if(direction==1)
//正转方向标志
{ for(m=0;m<2;m++)
{
lcd_pos(0x0c+m);
//显示方向符号
lcd_wdat(0x3e);
}
}
else
{ for(m=0;m<2;m++)
//反转方向标志
{
lcd_pos(0x0c+m);
//显示方向符号
lcd_wdat(0x3c);
}
}
}
void
motor_RUN()
{
if(on_off==1)
{ TR0=1;
lcd_pos(0);
//设置显示位置为第一行的第1个字符
m = 0;
while(cdis5[m] != )
{ lcd_wdat(cdis5[m]);
//RUNNING
m++;
}
motor_DR();