蓝桥杯单片机——串口通信程序

本篇讲的单片机是第十一届蓝桥杯单片机实训的硬件设备。


IAP15F2K61S2单片机串口基础

  • IAP15F2K61S2单片机内部有2个采用UART工作方式的全双工串行通信接口(串行口1和串行口2)。
  • 每个串行口由2个数据缓冲器、1个移位寄存器、1个串行控制器和1个波特率发生器等组成。
  • 串行口1的两个数据缓冲器的共用地址码是99H,串行口2的两个数据缓冲器的共用地址码是9BH
  • IAP15F2K61S2单片机的串行口有4种工作方式,有的工作方式的波特率是可变的。

蓝桥杯单片机串口通信代码编写:

  • 初始化函数:(选择串口1和定时器1)
void UartInit(void)		//[email protected]
{
     
	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';
		}
	}
}

函数的使用方法,这里就不展示了,欢迎提问和咨询 ~

你可能感兴趣的:(蓝桥杯单片机程序开发,单片机)