#include <avr/io.h>
#include <util/delay.h>
void cmd(int);
void data(char);
void display(const char*p)
{
while (*p!='\0')
{
data(*p);
p++;
}
}
int main(void)
{char a;
DDRA=0xff;
DDRB=0xff;
DDRC=0xff;
DDRD=0xfe;
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x06;
UBRRH=0x00;
UBRRL=0x19;
cmd(0x38);
cmd(0x01);
cmd(0x06);
cmd(0x0e);
cmd(0x80);
while(1)
{
while((UCSRA&0x80)==0);
a=UDR;
if (a=='f')
{cmd(0x01);
cmd(0x80);
PORTC=0x2e;
display("forward");
}
if(a=='r')
{cmd(0x01);
cmd(0x80);
PORTC=0x1d;
display("reverse");
}
if (a=='s')
{cmd(0x01);
cmd(0x80);
PORTC=0x00;
display("stop");
}
UCSRA=0x00;
}
}
void cmd(int o)
{
PORTB=o;
PORTA=0x02;
_delay_ms(100);
PORTA=0x00;
}
void data(char p)
{
PORTB=p;
PORTA=0x03;
_delay_ms(200);
PORTA=0x01;
}
No comments:
Post a Comment