×
嵌入式 > 嵌入式开发 > 详情

51单片机---串口通讯

发布时间:2020-08-27 发布时间:
|
一、简介

MCS-51单片机内部有一个可编程的双向全双工串行通信接口,简称串口;该串口有4种工作方式,以适用于不同场合;其波特率由单片机内部的定时器/计数器产生,可由软件设置;接收和发送均可工作在查询模式和中断模式,比较灵活;
二、串口结构与控制
MCS-51单片机内部的串口拥有两个物理上相互独立的接收、发送缓冲器SBUF,可以同时接收和发送数据;发送缓冲器只能写入而不能读出,接收缓冲器只能读出而不能写入;两个缓冲器占用同一个地址(99H);控制MCS-51单片机串口的寄存器有两个SCON和PCON;
1、串口工作方式控制寄存器SCON(99H)
如下图:


(1)、SM0和SM1:控制单片机的工作方式;
(2)、SM2:允许方式2和方式3进行多机通信控制位;
(3)、REN:允许串行接收控制位;1-允许接收;0-禁止接收;
(4)、TB8:用于工作在方式2和方式3时存放要发送的第9位数据,根据需要,由软件设置;
(5)、RB8:用于工作在方式2和方式3时存放接收到的第9位数据;
(6)、TI:发送中断标志位,必须由软件清0;当发送完一帧数据时,就产生一个中断,此时TI被硬件自动置1,用于标记产生了发送中断;
(7)、RI:接收中断标志位,必须由软件清0;当接收完一帧数据时,就产生一个中断,此时RI被硬件自动置1,用于标记产生了接收中断;
2、特殊功能寄存器PCON(87H)
如下图:

(1)、SMOD:波特率倍增位;当SMOD=1时,波特率加倍;当SMOD=0时,波特率不加倍;
(2)、GF1和GF0:两个通用标志,供用户使用;
(3)、PD和IDL:CHMOS型8051单片机的低功耗控制位;
三、串口的工作方式
串口的工作方式有4种,由特殊功能寄存器SCON的SM0位和SM1位共同决定;
如下表:

1、方式0:
该方式下,串口为同步移位寄存器输入/输出方式,其波特率固定不变为Fosc/12;数据由RXD(P3.0)口输入/输出,同步移位脉冲由TXD(P3.1)端输出,发送接收的都是8位数据,低位在先;
2、方式1:
当SM0SM1=01时,串口以该方式工作,此时的串口为8位异步通信接口;
3、方式2:
当SM0SM1=10时,串口以该方式工作,此时,发送和接收的都是一帧数据,即:由11位组成,其中第1位是起始位,接下来的8位是用户数据(低位在先),然后是1位可编程位(第9位数据),最后一位是停止位;RB8/TB8根据需要,设置成0或1,作为多机通信中的地址数据标志位或数据的奇偶检验位;
4、方式3:
当SM0SM1=11时,串口以该方式工作,该方式是波特率可变的9位异步通信方式,除了波特率外,方式3与方式2相同;
四、波特率的计算
方式0: Buard = Fosc/12
方式1: Buard = K*Fosc/[32*12*(256-TH1)]
方式2: Buard = K*Fosc/64
方式3: Buard = K*Fosc/[32*12*(256-TH1)]
注:若波特率的倍增位SMOD=0,则K=1;若SMOD=1,则K=2;
五、串口初始化
STEP1:设置串口工作模式(如:SCON=0x50);
STEP2:配置定时器
STEP2-1:设置定时器T1工作在模式2(T如:MOD=0x02自动重装预置数模式);
STEP2-2:给定时器T1装初始值(THx/TLx);
STEP2-3:启动定时器(TR1=1);
STEP3:如果让串口工作在中断模式,则还需要把RI/TI清0,同时开串口中断(ES=1)和CPU总中断(EA=1);



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
智能化系统工程设计中的若干技术问题