51单片机串口的极简使用方法

Uart

串口极简使用方法

  1. 初始化
  2. 中断服务函数
  3. 发送数据/接收数据
/*
STC15F2K60S2  定时器2用作串口1的波特率发生器
*/

// 串口1中断服务函数 
void UartInit(void)		//9600bps@12.000MHz
{
	SCON = 0x50;		//8位数据,可变波特率
	AUXR |= 0x01;		//串口1选择定时器2为波特率发生器
	AUXR |= 0x04;		//定时器2时钟为Fosc,即1T
	T2L = 0xC7;			//设定定时初值
	T2H = 0xFE;			//设定定时初值
	AUXR |= 0x10;		//启动定时器2
	
	ES = 1;
	EA = 1;
}

// UART 中断服务程序
void Uart() interrupt 4
{
	uchar i = 0;				//i用于存储接收数据
    if (RI)
    {
        RI = 0;                 //清除RI位
        i = SBUF;              	//P0显示串口数据
    }
}

// 发送字符串
void SendString(char *s)
{
    while (*s != '\0')          //检测字符串结束标志
    {
		SBUF = *s++;
		while(TI==0);
		TI = 0;
    }
}
  1. 利用stc-isp软件生成初始化程序:(中断服务函数与发送数据函数基本在stc-isp软件范例程序中可以找到)

  2. RI为接收中断标志位,即RI==1时表示有被数据写入SBUF。

  3. TI为发送标志位,TI==1时表示数据已发送。(RI=1或者TI=1都可以触发串口中断,进入中断函数)

SCON寄存器详情:

D7D6D5D4D3D2D1D0
SCONSM0SM1SM2RENTB8RB8TIRI98H
位地址9FH9EH9DH9CH9BH9AH99H98H
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

川九-EveRYouNg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值