本篇讲的单片机是第十一届蓝桥杯单片机实训的硬件设备。
IAP15F2K61S2单片机串口基础
- IAP15F2K61S2单片机内部有2个采用UART工作方式的全双工串行通信接口(串行口1和串行口2)。
- 每个串行口由2个数据缓冲器、1个移位寄存器、1个串行控制器和1个波特率发生器等组成。
- 串行口1的两个数据缓冲器的共用地址码是99H,串行口2的两个数据缓冲器的共用地址码是9BH;
- IAP15F2K61S2单片机的串行口有4种工作方式,有的工作方式的波特率是可变的。
蓝桥杯单片机串口通信代码编写:
- 初始化函数:(选择串口1和定时器1)
void UartInit(void) //4800bps@11.0592MHz
{
SCON = 0x50; //8位数据,可变波特率
AUXR |= 0x40; //定时器1时钟为Fosc,即1T
AUXR &= 0xFE; //串口1选择定时器1为波特率发生器
TMOD &= 0x0F; //设定定时器1为16位自动重装方式
TL1 = 0xC0;
TH1 = 0xFD;
ET1 = 0; //禁止定时器1中断
TR1 = 1; //启动定时器1
ES =1;
EA =1;
}
- 串口发送字符串函数:
void sendstring(u8 *p)
{
while(*p != 0)
{
SBUF = *p;
p++;
while(TI == 0);
TI =0;
}
}
- 接收中断函数编写:
void uart_interrupt (void) interrupt 4
{
static u8 i =0;
if(RI)
{
RI =0;
datas[i++] = SBUF;
if(datas[i-1] == '\n')
{
i =0;
datas[i-1] = '\0';
}
}
}
函数的使用方法,这里就不展示了,欢迎提问和咨询 ~