ATmega48/88/168 串口 proteus 仿真

本文详细介绍了如何使用ATmega48/88/168单片机进行串口通信编程,并通过Proteus软件进行仿真验证。包括初始化函数、字符发送函数以及字符串发送函数的实现,以及解决串口输出乱码的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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就可以了。


正确输出:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值