【程序示例】
(1)功能:计算机发送一个字节到单片机,单片机把接收到的字节的ASCII 码加一后
再发送给计算机。程序运行结果如图2-7 所示,输入“abcdefg”时,输出为“bcdefgh”.
1.用查询方法实现
#include
#include
void port_init(void)
{ PORTA = 0x00;
DDRA = 0x00;
PORTB = 0x00;
DDRB = 0x00;
PORTC = 0x00;
DDRC = 0x00;
PORTD = 0x00;
DDRD = 0x02;
PORTE = 0x00;
DDRE = 0x00;
} //UART0 初始化// 波特率:
9600
void uart0_init(void)
{
UCSRB = 0x00;
UCSRA = 0x00;
UCSRC = BIT(URSEL) | 0x06;
UBRRL = 0x19;
UBRRH = 0x00;
UCSRB = 0xD8;
}
#pragma interrupt_handler uart0_rx_isr:10
void uart0_rx_isr(void)
{ //uart has received a
character in UDR
}
#pragma interrupt_handler uart0_tx_isr:12
void uart0_tx_isr(void)
{ //character has been
transmitted
} //call this rouTIne to iniTIalize all
peripherals
void init_devices(void)
{
CLI(); //全局中断关
port_init();
uart0_init();</

该博客介绍了如何通过串口通信实现计算机与单片机之间的数据交互。首先展示了一个程序示例,计算机发送字节到单片机,单片机接收后将ASCII码加一再回传。接着,博主展示了使用中断方式实现的串口通信,用于人机交互菜单,用户输入特定字符(A、B、C、D)以控制智能小车的动作,如显示信息、LED显示、前进和后退等。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



