51单片机串行口的工作方式解析

时间:2023-03-04作者:佚名
方式0是外接串行移位寄存器方式。工作时,数据从RXD串行地输入/输出,TXD输出移位脉冲,使外部的移位寄存器移位。波特率固定为fosc/12(即,TXD每机器周期输出一个同位脉冲时,RXD接收或发送一位数据)。每当发送或接收完一个字节,硬件置TI=1或RI=1,申请中断,但必须用软件清除中断标志。
实际应用在串行I/O口与并行I/O口之间的转换。
方式1
方式1是点对点的通信方式。8位异步串行通信口,TXD为发送端,RXD为接收端。一帧为10位,1位起始位、8位数据位(先低后高)、1位停止位。波特率由T1或T2的溢出率确定。
在发送或接收到一帧数据后,硬件置TI=1或RI=1,向CPU申请中断;但必须用软件清除中断标志,否则,下一帧数据无法发送或接收。

51单片机串行口的工作方式解析
(1)发送:CPU执行一条写SBUF指令,启动了串行口发送,同时将1写入输出移位寄存器的第9位。发送起始位后,在每个移位脉冲的作用下,输出移位寄存器右移一位,左边移入0,在数据最高位移到输出位时,原写入的第9位1的左边全是0,检测电路检测到这一条件后,使控制电路作最后一次移位,/SEND和DATA无效,发送停止位,一帧结束,置TI=1。
(2)接收:REN=1后,允许接收。接收器以所选波特率的16倍速率采样RXD端电平,当检测到一个负跳变时,启动接收器,同时把1FFH写入输入移位寄存器(9位)。由于接、发双方时钟频率有少许误差,为此接收控制器把一位传送时间16等分采样RXD,以其中7、8、9三次采样中至少2次相同的值为接收值。接收位从移位寄存器右边进入,1左移出,当最左边是起始位0时,说明已接收8位数据,再作最后一次移位,接收停止位。此后:
A、若RI=0、SM2=0,则8位数据装入SBUF,停止位入RB8,置RI=1。
B、 若RI=0、SM2=1,则只有停止位为1时,才有上述结果。
C、若RI=0、SM2=1,且停止位为0,则所接数据丢失。
D、若RI=1,则所接收数据丢失。
无论出现那种情况,检测器都重新检测RXD的负跳变,以便接收下一帧。
方式2、方式3
方式2和方式3是9位异步串行通信,一般用在多机通信系统中或奇偶校验的通信过程。在通讯中,TB8和RB8位作为数据的第9位,位SM2也起作用。方式2与方式3的区别只是波特率的设置方式不同。
(1)发送
向SBUF写入一个数据就启动串口发送,同时将TB8写入输出移位寄存器第9位。开始时,SEND和DATA都是低电平,把起始位输出到TXD。DATA为高,第一次移位时,将‘1’移入输出移位寄存器的第9位,以后每次移位,左边移入‘0’,当TB8移到输出位时,其左边是一个‘1’和全‘0’。检测到此条件,再进行最后一次移位,/SEND=1,DATA=0,输出停止位,置TI=1。
(2)接收
置REN=1,与方式1类似,接收器以波特率的16倍速率采样RXD端。
起始位0移到输入寄存器的最左边时,进行最后一次移位。在RI=0,SM2=0或接收到的第9位=1时,收到的一字节数据装入SBUF,第9位进入RB8,置RI=1;然后又开始检测RXD端负跳变。
多机通信
在这里,多机系统是指‘一主多从’。51系列单片机中,利用第9位TB8/RB8来区分地址与数据信息,用位SM2确定接收方是否对地址或数据帧敏感。其原则是:
1)发送方用第9位TB8=1标志地址帧,TB8=0标志数据帧。
2)接收方若设置SM2=1,则只能接收到地址信息,若设SM2=0,则不管是地址还是数据帧,都能接收到。
利用方式2、3的特点,在点对点的通讯中,在发送方可以用第9位TB8作为奇偶校验位。在接收方,SM2位必须清0。
波特率
1)方式0的波特率=fosc/12
2)方式2的波特率=2^smod*fosc/64
3)方式1、3的波特率由T1或T2的溢出率和SMOD位确定:
(1)用T1:波特率=2^smod*T1定时器的溢出率/32,T1为方式2T1定时器溢出率=1/((12/fosc)*(256-X))例:已知fosc=6MHz,SMOD=0,设置波特率为2400,求T1的计数初值X。
波特率=1/((12/fosc)*(256-X))/32=fosc/12*32(256-X)(256-X)=fosc/2400/384=6M/2400/384;256-X~=6.5104X~=250=FAH 只能近似计算。
若fosc=11.0592MHz, 则256-X=11.0592M/2400/384=4068/384=12 X=F4H;可精确算出,对其它常用的标准波特率也是能正确算出。所以这个晶振频率是最常用的。
如果SMOD=1,则同样的X初值得出的波特率加倍。
(3)用T2:
在52型单片机中,串口方式1、3的波特率发生器选择由TCLK、RCLK位确定是T1还是T2。若TCLK=1,则发送器波特率来自T2,否则来自T1。若RCLK=1,则接收器波特率来自T2,否则来自T1。
由T2产生的波特率与SMOD无关。T2定时的最小单元=2/fosc。T2的溢出脉冲16分频后作为串口的发送或接收脉冲。
波特率=(1/((2/fosc)(65536-X)))/16=fosc/(32(65536-X))例:已知fosc=11.0592MHz,求波特率=2400时的X2400=11059200/(32(65536-X)) 65536-X=144 X=65392=FF70H计数器初值寄存器:RCAP2H=0FFH,RCAP2L=70H。

相关阅读

康明斯发动机常见故障判断与排除方法

1、发动机在冬季起动为什么更困难 发动机的起动,不仅决定于本身的技术状况,还受外界气温的影响。冬季低温下起动更困难,主要是由如下原因所致: ⑴ 冬季气候寒冷,环境温度低...
2023-03-21

时间继电器图文讲解

一、常见时间继电器实物图 CKC AH3-2 通电延时型电子式时间继电器(最常用) 8 脚底座接线图(7-8 接线圈,1-3/8-6 为常开,1-4/8-5 为常闭) 时间调节旋钮(0-60 秒可调,顺时针延长时间...
2026-06-03
时间继电器图文讲解

傻傻分不清电路?专业电气学姐为你全方面解读(二十)

相信很多的电工朋友们都听过 “同名端”这个词,但是它具体指的是什么,大家又有没有真正的了解过呢?特别的对变压器或电机接触较多的那些人,对“同名端”的接触应该是比较多...
2023-06-27
傻傻分不清电路?专业电气学姐为你全方面解读(二十)

电流互感器怎么接线?电流互感器接线图

我们从使用功能上将电流互感器分为测量用电流互感器和保护用电流互感器两类,各种电流互感器的原理类似,本文总结各种电流互感器接线图,供参考使用。 一测量用电流互感器接线...
2023-06-11

电力电缆单根理论最大长度、大尺度电缆分盘

电缆过长时,一般会作分段处理,而接头处是电缆最薄弱的地方容易产生故障和事故。据统计:中间接头故障占线路故障超过70%。每增加一个接头就增加了一处风险,因此在施工允许的情况...
2024-08-21
电力电缆单根理论最大长度、大尺度电缆分盘

热销商品

广东珠江电线电缆阻燃国标定制BYJBV BVR YJV YJY RVV RVS RV KVV

广东珠江电线电缆,专注于阻燃国标定制,产品涵盖BYJBVBVRYJVYJYRVVRVSRVKVV等多种规格。我们采用先进生产技术,严格遵循国家标准,确保产品质量可靠、性能稳定。产品适...
¥ 1

可换头防静电塑胶镊子ESD-7A/242/249/259防划伤夹IC硅晶片陶瓷头

ESD-7A/242/249/259是一款专为半导体行业设计的防静电塑胶镊子,有效防止静电对敏感电子元件的损害。其独特之处在于可更换的镊子头,包括专为夹持IC硅晶片和陶瓷元件...
¥ 2

公牛官方旗舰店开关插座空调16A插座五孔10A面板暗装多孔G12白灰

公牛官方旗舰店提供一系列高质量的开关插座和空调配件。这款16A插座五孔面板采用暗装设计,适用于多种安装环境,如墙面、天花板等。它具有10A的电流容量,可以满足家庭...
¥ 5.55

L型套筒扳手铣口烟斗双头弯头7字穿孔机修六角汽修轮胎工具6-19mm

L型套筒扳手是一款常用于工业领域的多功能工具,具备双头设计,可高效完成铣口、烟斗等多种工件孔位加工,适用六角汽修、轮胎等场景。其套筒尺寸为6-19mm,精准适配各类...
¥ 3.5

西门子开关插座无框皓彩米绒白亚光二三插USB10A五孔一开旗舰店

西门子开关插座无框皓彩米绒白亚光二三插USB10A五孔一开旗舰店,作为西门子品牌的专卖店,提供了一系列高品质、设计新颖的家居电气产品。这里销售的开关插座采用无框...
¥ 8.77

网站栏目