oid usrt_port_init(void)
{
DDRD|=(1<<PD1);
PORTD|=(1<<PD0);
}
void usrt_init(void) //串口初始化函数
{
usrt_port_init();
//UCSRB=0X00;
UCSRA|=(1<<U2X); //两倍速
UCSRC|=(1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0); //选择UCSRC寄存器 字符长度8 无奇偶模式 1位停止位
UBRR=143 ; //12M晶振9600波特率
UCSRB|=(1<<RXEN)|(1<<TXEN) ; //发送接收使能
}
void usrt_putchar(uchar date) //串口向PC发送单个字符函数
{
while(!(UCSRA&(1<<UDRE)));
UDR=date;
}
void usrt_putstring(uchar *s) //串口向PC发送字符串
{
while(*s)
{
usrt_putchar(*s);
s++;
}
usrt_putchar(0x0a);
usrt_putchar(0x0d);
}
uchar usrt_getchar(void) //PC向串口发送字符
{
while(!(UCSRA&(1<<RXC)));
return UDR;
}
|