笔记 学习51单片机串口中断

本文介绍了80C51单片机的串行口通信,重点解析了SBUF的使用,包括如何通过SBUF进行数据的接收和发送。文章详细讲述了在接收数据时的"A=SBUF"操作和发送数据时的"SBUF=A"操作,并提醒读者在实际应用中注意波特率的设置,以避免因波特率不匹配导致的通信问题。
摘要由CSDN通过智能技术生成

单片机的串口通信功能是比较常用的功能。在这里插入图片描述
在这里插入图片描述
80C51的串行口
我在学习的过程中,觉得SBUF的使用方法是最难的,于是对着这个图和资料一步步理解,才搞明白一点“A=SBUF”和“SBUF=A”的意思。
51单片机通过特殊功能寄存器SBUF对串行接收或串行发送寄存器进行访问,两个寄存器共用一个地址99H,但在物理上是两个独立的寄存器。当接收数据时,写“A=SBUF”,单片机会自动将串口接收寄存器中的数据取走给A;当发送数据时,写“SBUF=A”,程序执行完这条语句便自动开始将串口发送寄存器中的数据一位位从串口发送出去。这些知识可以在书籍上面找到。
在这里插入图片描述
在这里插入图片描述
对定时器和串口初始化

void  uasrinit()
{
   
	TMOD=0X20;//选择为定时器1模式,工作方式1,仅用TR1打开启动。
	TH1=0xfa;      //波特率位4800   晶振频率为11.0592MHz
	TL1=0Xfa;	
// PCON=0x80;       //把SMOD=1,该状态下串口方式1,2,3的波特率加倍
	TR1=1;//打开定时器	
  SM0=0;
  SM1=1;    //串口通信方式1,10位异步收发(8位数据)
  REN=1;     //打开接收
  ES=1;      //串口中断打开	
	EA=1;       //打开总中断
}

中断程序

void uasr(
  • 1
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值