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

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


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';
		}
	}
}

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值