ATmega48/88/168串口程序
void UART_Baud_9600_Init(void)
{
DDRD |= 0b00000010;
PORTD |= 0b0000010;
UCSR0B = 0x00;
UCSR0A = 0x00;
UBRR0H = 0;
UBRR0L = 51;
//9600
UCSR0B = (1<<RXEN0)|(1<<TXEN0);
UCSR0C = (0<<USBS0)|(3<<UCSZ00);
}
void UART_Send_Char(uchar param)
{
while(!(UCSR0A&(1<<UDRE0)));
UDR0 = param;
}
void UART_Send_String(char * str)
{
while(*str)
{
UART_Send_Char(*str);
str++;
}
}
proteus仿真接线图
串口仿真设置
结果输出为,乱了。
原因在于:
图中修改为unprogrammed就可以了。
正确输出: