您的位置 首页 设计

51单片机—串口通讯

一、简介MCS-51单片机内部有一个可编程的双向全双工串行通信接口,简称串口;该串口有4种工作方式,以适用于不同场合;其波特率由单片机内部的…

一、简介

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);

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/sheji/274878.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部