📄 usart3_step_lcd.c
字号:
tmptail=(UART_RxTail+1)&UART_RX_BUFFER_MASK;
UART_RxTail=tmptail;
return UART_RxBuf[tmptail];
}
void TransmitByte(unsigned char data)
{ unsigned char tmphead;
tmphead=(UART_TxHead+1)&UART_TX_BUFFER_MASK;
while(tmphead==UART_TxTail);
UART_TxBuf[tmphead]=data;
UART_TxHead=tmphead;
UCSR1B|=(1<<UDRIE);
}
int main(void)
{
unsigned char data;
unsigned int i,j;
Initialize();
initialize_text_lcd();
DDRD=0Xf0;
print_logo();
while(1)
{
data=ReceiveByte();
switch(data)
{
case '\r':TransmitByte('\r');
TransmitByte('\n');
print_prompt();
break;
case '\n':TransmitByte('\r');
TransmitByte('\n');
print_prompt();
break;
case 'f':
case 'F':TransmitByte(data);
print_Message((unsigned char *)M_SELECT);
data=ReceiveByte();
if(data=='1')
{ TransmitByte(data);
print_Message((unsigned char *)M_Forward_JIASU);
data=ReceiveByte();
if (data=='1')
{speed=50;TransmitByte(data);data=ReceiveByte();
while(1){if(dir)go_step_1phase(speed);
else {dir=1;break;}}
break;}
else if(data=='2')
{speed=40;TransmitByte(data);data=ReceiveByte();
while(1){if(dir)go_step_1phase(speed);
else {dir=1;break;}}
break;}
else if(data=='3')
{speed=30;TransmitByte(data);data=ReceiveByte();
while(1){if(dir)go_step_1phase(speed);
else {dir=1;break;}}
break;}
else {TransmitByte('\r');TransmitByte('\n');break;}
break; }
else if(data=='2')
{ TransmitByte(data);
print_Message((unsigned char *)M_Forward_JIANSU);
data=ReceiveByte();
if (data=='1')
{speed=60;TransmitByte(data);data=ReceiveByte();
while(1){if(dir)go_step_1phase(speed);
else {dir=1;break;}}
}
else if(data=='2')
{speed=70;TransmitByte(data);data=ReceiveByte();
while(1){if(dir)go_step_1phase(speed);
else {dir=1;break;}}
break;}
else if(data=='3')
{speed=80;TransmitByte(data);data=ReceiveByte();
while(1){if(dir)go_step_1phase(speed);
else {dir=1;break;}}
break;}
else {TransmitByte('\r');TransmitByte('\n');break;}
break; }
else if((data=='\r')&&(data=='\n'))
{
TransmitByte('\r');
TransmitByte('\n');
break;
}
else break;
case 'b':
case 'B':TransmitByte(data);
print_Message((unsigned char *)M_SELECT);
data=ReceiveByte();
if(data=='1')
{ TransmitByte(data);
print_Message((unsigned char *)M_Backward_JIASU);
data=ReceiveByte();
if (data=='1')
{speed=50;TransmitByte(data);data=ReceiveByte();
while(1){if(dir)go_step_2phase(speed);
else {dir=1;break;}}
break;}
else if(data=='2')
{speed=40;TransmitByte(data);data=ReceiveByte();
while(1){if(dir)go_step_2phase(speed);
else {dir=1;break;}}
break;}
else if(data=='3')
{speed=30;TransmitByte(data);data=ReceiveByte();
while(1){if(dir)go_step_2phase(speed);
else {dir=1;break;}}
break;}
else {TransmitByte('\r');TransmitByte('\n');break;}
break;}
else if(data=='2')
{TransmitByte(data);
print_Message((unsigned char *)M_Backward_JIANSU);
data=ReceiveByte();
if (data=='1')
{speed=60;TransmitByte(data);data=ReceiveByte();
while(1){if(dir)go_step_2phase(speed);
else {dir=1;break;}}
break;}
else if(data=='2')
{speed=70;TransmitByte(data);data=ReceiveByte();
while(1){if(dir)go_step_2phase(speed);
else {dir=1;break;}}
break;}
else if(data=='3')
{speed=80;TransmitByte(data);data=ReceiveByte();
while(1){if(dir)go_step_2phase(speed);
else {dir=1;break;}}
break;}
else {TransmitByte('\r');TransmitByte('\n');break;}
break;}
else if((data=='\r')&&(data=='\n'))
{
TransmitByte('\r');
TransmitByte('\n');
break;
}
else break;
case 's':
case 'S':TransmitByte(data);delay(1000,1000);
print_Message((unsigned char *)M_SELECT1);
data=ReceiveByte();
if(data=='1')
{TransmitByte(data);
print_Message((unsigned char *)SPEED);
i=0;
data=ReceiveByte();array[0]=data;
TransmitByte(data);data=ReceiveByte();array[1]=data;
TransmitByte(data);data=ReceiveByte();array[2]=data;
TransmitByte(data);data=ReceiveByte();
for(j=0;j<3;j++){array[j]=To_Numeric(array[j]);}
speed=array[0]*100+array[1]*10+array[2];
while(1){if(dir)go_step_1phase(speed);
else {dir=1;break;}}
}
else if(data=='2')
{TransmitByte(data);
print_Message((unsigned char *)SPEED);
i=0;
data=ReceiveByte();array[0]=data;
TransmitByte(data);data=ReceiveByte();array[1]=data;
TransmitByte(data);data=ReceiveByte();array[2]=data;
TransmitByte(data);data=ReceiveByte();
for(j=0;j<3;j++){array[j]=To_Numeric(array[j]);}
speed=array[0]*100+array[1]*10+array[2];
while(1){if(dir)go_step_2phase(speed);
else {dir=1;break;}}
}
TransmitByte('\r');TransmitByte('\n');
print_prompt();
break;
case 't':
case 'T':TransmitByte(data);
print_Message((unsigned char *)M_SELECT1);
data=ReceiveByte();
if(data=='1')
{TransmitByte(data);
print_Message((unsigned char *)HOUR);
data=ReceiveByte();hour1=data;
TransmitByte(data);data=ReceiveByte();hour2=data;
TransmitByte(data);data=ReceiveByte();
print_Message((unsigned char *)MINUTE);
data=ReceiveByte();minute1=data;
TransmitByte(data);data=ReceiveByte();minute2=data;
TransmitByte(data);data=ReceiveByte();
print_Message((unsigned char *)SECOND);
data=ReceiveByte();second1=data;
TransmitByte(data);data=ReceiveByte();second2=To_Numeric(data)+1+'0';
TransmitByte(data);data=ReceiveByte();
print_Message((unsigned char *)SPEED);
i=0;
data=ReceiveByte();array[0]=data;
TransmitByte(data);data=ReceiveByte();array[1]=data;
TransmitByte(data);data=ReceiveByte();array[2]=data;
TransmitByte(data);data=ReceiveByte();
for(j=0;j<3;j++){array[j]=To_Numeric(array[j]);}
speed=array[0]*100+array[1]*10+array[2];
initialize_timer();
}
else if(data=='2')
{TransmitByte(data);
print_Message((unsigned char *)HOUR);
data=ReceiveByte();hour1=data;
TransmitByte(data);data=ReceiveByte();hour2=data;
TransmitByte(data);data=ReceiveByte();
print_Message((unsigned char *)MINUTE);
data=ReceiveByte();minute1=data;
TransmitByte(data);data=ReceiveByte();minute2=data;
TransmitByte(data);data=ReceiveByte();
print_Message((unsigned char *)SECOND);
data=ReceiveByte();second1=data;
TransmitByte(data);data=ReceiveByte();second2=To_Numeric(data)+1+'0';
TransmitByte(data);data=ReceiveByte();
print_Message((unsigned char *)SPEED);
i=0;
data=ReceiveByte();array[0]=data;
TransmitByte(data);data=ReceiveByte();array[1]=data;
TransmitByte(data);data=ReceiveByte();array[2]=data;
TransmitByte(data);data=ReceiveByte();
for(j=0;j<3;j++){array[j]=To_Numeric(array[j]);}
speed=array[0]*100+array[1]*10+array[2];
initialize_timer3();
}
TransmitByte('\r');TransmitByte('\n');
print_prompt();
break;
case 'h':
case 'H':TransmitByte(data);
print_Message((unsigned char *)M_Help);
print_prompt();
break;
case 'q':
case 'Q':TransmitByte(data);print_Message((unsigned char *)M_thank);
TransmitByte('\r');TransmitByte('\n');break;
default :TransmitByte(data);break;
}
}
}
void print_logo(void)
{
unsigned int i;
for(i=0;;i++)
{
if(PRG_RDB(logo+i)=='\0')
break;
TransmitByte(PRG_RDB(logo+i));
}
print_prompt();
}
void print_prompt(void)
{
unsigned int i;
for(i=0;;i++)
{
if(PRG_RDB(prompt+i)=='\0')
break;
TransmitByte(PRG_RDB(prompt+i));
}
}
void print_Message(unsigned char *message)
{unsigned int i;
for(i=0;;i++)
{if(PRG_RDB(message+i)=='\0')
break;
TransmitByte(PRG_RDB(message+i));
}
}
unsigned int To_Numeric(unsigned char in_data)
{if(in_data=='0')
return 0;
else if((in_data<='9')&&(in_data>='1'))
return(unsigned int)(in_data-'1'+1);
else if((in_data<='f')&&(in_data>='a'))
return(unsigned int)(in_data-'a'+10);
else if((in_data<='F')&&(in_data>='A'))
return(unsigned int)(in_data-'A'+10);
else
return 0; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -