MCS-51_第07章 MCS-51的串行口.ppt

上传人:s****8 文档编号:67238516 上传时间:2022-12-24 格式:PPT 页数:65 大小:1.21MB
返回 下载 相关 举报
MCS-51_第07章 MCS-51的串行口.ppt_第1页
第1页 / 共65页
MCS-51_第07章 MCS-51的串行口.ppt_第2页
第2页 / 共65页
点击查看更多>>
资源描述

《MCS-51_第07章 MCS-51的串行口.ppt》由会员分享,可在线阅读,更多相关《MCS-51_第07章 MCS-51的串行口.ppt(65页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第7章MCS-51的串行口内容概要内容概要串行口的基本工作原理与串行口有关的特殊功能寄存器串行口的4种工作方式串行口多机通信的工作原理双机串行通信的软件编程。串行口为全双工全双工的通用异步收发通用异步收发(UART)。全双工全双工就是两个单片机之间串行数据可同时双向传输可同时双向传输。异步通信异步通信,就是收、发双方使用各自的时钟使用各自的时钟控制发送和接收过程,这样可省去省去收、发双方的一条同步时钟信号线一条同步时钟信号线,连接简单且易实现。7.1串行口的结构串行口的结构内部结构如图7-1所示。有两个物理上独立两个物理上独立的接收、发送缓冲器接收、发送缓冲器SBUF(属于特殊功能寄存器),可

2、同时发送、接收数据。发送缓冲器发送缓冲器只能写入不能读出接收缓冲器接收缓冲器只能读出不能写入两个缓冲器共用一个特殊功能寄存器字节地址共用一个特殊功能寄存器字节地址(99H)。控制寄存器共有两个:特殊功能寄存器SCON和PCON。图图7-1串行口的内部结构图串行口的内部结构图7.1.1串行口控制寄存器串行口控制寄存器SCON字节地址字节地址98H,可位寻址,位地址位地址为98H9FH。格式如图图7-2所示所示。图7-2串行口控制寄存器SCON的格式介绍SCON中各位的功能。(1)SM0、SM1串行口串行口4种工作方式选择种工作方式选择位位SM0、SM1两位编码所对应的4 4种工作方式种工作方式见

3、表7-1。(2 2)SM2SM2多机通信控制位多机通信控制位多机通信是在方式2和方式3下进行。当串口以方式串口以方式2或或方式方式3接收时接收时,如果如果SM2SM2=1 1,则只有当接收到的第接收到的第9位数据位数据(RB8)为为“1”时时,才使RI置“1”,产生中断请求,并将接收到的前8位数据送入SBUF。当接收到的第接收到的第9 9位数据位数据(RB8RB8)为为“0”0”时时,则将接收到的前8位数据丢弃。当SM2=0时,则不论第不论第9位数据是位数据是1还是还是0,都将前8位数据送入SBUF中,并使并使RI置置1,产生中断请求。在方式方式1时,如果SM2=1,则只有收到有效的停止位时才

4、会激活RI。在方式方式0时,SM2必须为0。(3)REN允许串行接收位。允许串行接收位。由软件置“1”或清“0”。REN=1,允许串行口接收数据。REN=0,禁止串行口接收数据。(4)TB8发送的第发送的第9位数据位数据方式2和方式3,TB8是要发送的第9位数据,其值由软件置“1”或清“0”。在双机串行通信双机串行通信时,一般作为奇偶校验位奇偶校验位使用;在多机串行通信多机串行通信中用来表示主机发送的是地址帧还是数据帧,TB8=1为地址帧地址帧,TB8=0为数据帧数据帧。(5)RB8接收的第接收的第9位数据位数据方式方式2和方式和方式3,RB8存放接收到的存放接收到的第第9位位数据数据。在方式

5、方式1,如SM2=0,RB8是接收到的停止位。在方式方式0,不使用RB8。(6)TI发送中断标志位发送中断标志位方式方式0,串行发送的第第8位数据结束时位数据结束时TI由硬件置由硬件置“1”,在其他方式其他方式中,串行口发送停止位的开始时置TI为“1”。TI=1,表示一帧数据发送结束一帧数据发送结束。TI的状态可供软件查询,也可申请中断。CPU响应中断后,在中断服务程序中向SBUF写入要发送的下一帧数据。TI必须由软件清必须由软件清“0”。(7)RI接收中断标志位接收中断标志位方式0时,接收完第接收完第8位数据位数据时,RI由硬件置“1”。在其他工作方式中,串行接收到停止位时,该位置“1”。R

6、I=1,表示一帧数据接收完毕,并申请中断,要求CPU从接收SBUF取走数据。该位的状态也可供软件查询。RI必须由必须由软件清软件清“0”。SCON的所有位都可进行位操作清的所有位都可进行位操作清“0”或置或置“1”。7.1.2特殊功能寄存器特殊功能寄存器PCON字节地址字节地址为为87H,不能位寻址。格式如,不能位寻址。格式如图图7-3所示所示。图图7-3特殊功能寄存器特殊功能寄存器PCON的格式的格式下面介绍PCON中各位功能。仅最高位SMOD与串口有关。SMOD:波特率选择位。例如例如,方式1的波特率计算公式为方式方式1波特率波特率=定时器T1的溢出率当SMOD=1时,要比SMOD=0时的

7、波特率加倍,所以也称SMOD位为波特率倍增位波特率倍增位。7.2串行口的串行口的4种工作方式种工作方式4种工作方式由特殊功能寄存器SCON中SM0、SM1位位定义,编码见表7-1。7.2.1方式方式0方式0为同步移位寄存器输入同步移位寄存器输入/输出方式输出方式。该方式并不用于两个单片机之间的异步串行通信,而是用于串行口外接用于串行口外接移位寄存器移位寄存器,扩展并行I/O口。8位数据为一帧,无无起始位起始位和和停止位停止位,先发送或接收最低位。波特率固定,为fosc/12。帧格式如图7-4所示所示。图图7-4方式方式0的帧格式的帧格式1方式方式0发送发送(1)方式)方式0发送过程发送过程当C

8、PU执行一条将数据写入发送缓冲器写入发送缓冲器SBUF的指令的指令时,产生一个正脉冲产生一个正脉冲,串行口开始把SBUF中的8位数据以fosc/12的的固定波特率固定波特率从RXD引脚串行输出,低位在先,TXD引脚输出同步移位脉冲,发送完发送完8位数据,中断标志位数据,中断标志位位TI置置“1”。发送时序如图7-5所示所示。图图7-5方式方式0发送时序发送时序(2)方式)方式0发送应用举例发送应用举例图7-6所示为方式0发送的一个具体应用,通过串行口外通过串行口外接接8位位串行输入并行输出移位寄存器串行输入并行输出移位寄存器74LS164,扩展扩展两个两个8位并行输出口位并行输出口的具体电路。

9、方式0发送时,串行数据由P3.0(RXD端)送出端)送出,移位脉冲由P3.1(TXD端)送出端)送出。在移位脉冲的作用下,串行口发送缓冲器的数据逐位地从P3.0串行移入74LS164中。图图7-6外接串入并出移位寄存器外接串入并出移位寄存器74LS164扩展的并行输扩展的并行输出口出口2方式方式0接收接收(1)方式)方式0接收过程接收过程方式0接收,REN为串行口允许接收控制位允许接收控制位,REN=0,禁止接收;REN=1,允许接收。当向SCON寄存器写入控制字写入控制字(设置为方式0,并使REN位置1,同时RI=0)时,产生一个正脉冲,串行口产生一个正脉冲,串行口开始接收数据。开始接收数据

10、。引脚RXD为数据输入端,TXD为移位脉冲信号输出端,接收器以fosc/12的固定波特率的固定波特率采样RXD引脚的数据信息,当接收完接收完8位位数据时,中断标志RI置置1,表示一帧数据接收完毕,可进行下一帧数据的接收,时序如图7-7所示所示。图图7-7方式方式0接收时序接收时序(2)方式)方式0接收应用举例接收应用举例图图7-8为串行口为串行口外接两片外接两片8位并行输入串行输出的寄存器位并行输入串行输出的寄存器74LS165扩展两个扩展两个8位并行输入口的电路位并行输入口的电路。当当74LS165的的S/端由高到低跳变时,并行输入端的数端由高到低跳变时,并行输入端的数据被置入寄存器;据被置

11、入寄存器;当当S/=1,且,且时钟禁止端(第时钟禁止端(第15脚)为脚)为低电平低电平时,时,允许允许TXD(P3.1)串行移位脉冲输入)串行移位脉冲输入,这时在移,这时在移位脉冲作用下,数据由右向左方向移动,以位脉冲作用下,数据由右向左方向移动,以串行方式串行方式进入串进入串行口的接收缓冲器中。行口的接收缓冲器中。图图7-8扩展扩展74LS165作为并行输入口作为并行输入口在图图7-8中:TXD(P3.1)作为移位脉冲输出与所有75LS165的移位脉冲输入端CP相连;RXD(P3.0)作为串行数据输入端与74LS165的串行输出端QH相连;P1.0与S/相连,用来控制74LS165的串行移位

12、或并行输入;74LS165的时钟禁止端时钟禁止端(第15脚)接地,表示允许时钟输入。当扩展多个8位输入口时,相邻两芯片的首尾(QH与SIN)相连。在方式0,SCON中的TB8、RB8位没有用到,发送或接收完8位数据由硬件使TI或RI中断标志位置“1”,CPU响应TI或RI中断,在中断服务程序中向发送SBUF中送入下一个要发送的数据或从接收SBUF中把接收到的1B存入内部RAM中。注意,TI或RI标志位必须由软件清“0”,采用如下指令:CLRTI;TI位清位清“0”CLRRI;RI位清位清“0”方式0时,SM2位(多机通信控制位)必须为0。7.2.2方式方式1方式1为双机串行通信方式,如图图7-

13、9所示。当SM0、SM1=01时,串行口设为方式1的双机串行通信。TXD脚和RXD脚分别用于发送和接收数据。图图7-9方式1双机串行通信的连接电路方式1一帧数据为一帧数据为10位位,1个起始位(个起始位(0),),8个数据位,个数据位,1个停止位(个停止位(1),),先发送或接收最低位。帧格式如图7-10所示所示。图7-10方式1的帧格式方式1为波特率可变波特率可变的8位异步通信接口。波特率由下式确定:方式方式1波特率波特率=定时器T1的溢出率式中,SMOD为PCON寄存器的最高位的值(0或1)。1方式方式1发送发送方式1输出时,数据位由TXD端端输出,发送一帧信息为一帧信息为10位位:1位起

14、始位位起始位0,8位数据位(先低位)和位数据位(先低位)和1位停止位位停止位1。当CPU执行一条数据写SBUF的指令,就启动发送启动发送。发送时序见图图7-11。图7-11中TX时钟时钟的频率就是发送的波特率。发送开始时发送开始时,内部发送控制信号变为有效,将起始位向TXD脚(P3.0)输出,此后每经过一个TX时钟周期,便产生一个移位脉冲,并由TXD引脚输出一个数据位。8位数据位全部发送完毕后位数据位全部发送完毕后,中断标志位TI置置1。图7-11方式1发送时序2 2方式方式1 1接收接收方式方式1 1接收时(接收时(RENREN=1 1),数据从),数据从RXDRXD(P3.1P3.1)引脚

15、输入。)引脚输入。当当检测到起始位的检测到起始位的负跳变负跳变,则,则开始接收开始接收。接收时序见。接收时序见图图7-7-1212。接收时,定时控制信号有接收时,定时控制信号有两种两种,一种一种是是接收移位时钟接收移位时钟(RXRX时钟),它的频率和传送的波特率相同,时钟),它的频率和传送的波特率相同,另一种另一种是是位位检测器采样脉冲检测器采样脉冲,频率是频率是RXRX时钟的时钟的1616倍倍。以波特率的。以波特率的1616倍倍速率采样速率采样RXDRXD脚状态。脚状态。当采样到当采样到RXDRXD端从端从1 1到到0 0的负跳变时就的负跳变时就启动检测器启动检测器,接收的值是接收的值是3

16、3次次连续采样(第连续采样(第7 7、8 8、9 9个脉冲个脉冲时采样)取时采样)取两次相同两次相同的值的值,以确认起始位(负跳变)的开,以确认起始位(负跳变)的开始,较好地消除干扰引起的影响。始,较好地消除干扰引起的影响。图7-12方式1接收时序当确认起始位有效起始位有效时,开始接收一帧信息。每一位数据,也都进行3次连续采样次连续采样(第7、8、9个脉冲采样),接收的值是3次采样中至少次采样中至少两次相同的值两次相同的值。当一帧数据接收完毕后接收完毕后,同时满足以下两个条件,接收才有效。(1)RI=0,即上一帧数据接收完成时,RI=1发出的中断请求已被响应,SBUF中的数据已被取走,说明说明

17、“接接收收SBUF”已空。已空。(2)SM2=0或收到的停止位或收到的停止位=1(方式1时,停止位已进入RB8),则将接收到的数据装入SBUF和RB8(装入的是停止位),且中断标志RI置“1”。若不同时满足两个条件,收的数据不能装入SBUF,该帧数据将丢弃。7.2.3方式方式2方式2和方式3,为9位异步通信接口。每帧数据为每帧数据为11位位,1位起始位0,8位数据位(先低位),1位可程控为1或0的第9位数据和1位停止位。方式2、方式3帧格式如图图7-13所示所示。图7-13方式2、方式3的帧格式方式方式2波特率波特率=fosc1方式方式2发送发送发送前,先根据通信协议由软件设置先根据通信协议由

18、软件设置TB8(如奇偶校验位或多机通信的地址/数据标志位),然后将要发送的数据写入SBUF,即启动发送。TB8自动装入自动装入第9位数据位,逐一发送。发送完毕,使TI位置“1”。发送时序如图7-14所示。图图7-14方式方式2和方式和方式3发送时序发送时序【例例7-1】方式2发送在双机串行通信中的应用下面的发送中断服务程序,以TB8作为作为奇偶校验位奇偶校验位,偶校验偶校验发送发送。数据写入SBUF之前,先将数据的偶校验位写入TB8(设第2组的工作寄存器区的R0作为发送数据区地址指针)。PIPTI:PUSHPSW;现场保护;现场保护PUSHAccSETBRS1;选择第;选择第2组工作寄存器区组

19、工作寄存器区CLRRS0CLRTI;发送中断标志清;发送中断标志清“0”MOVA,R0;取数据;取数据MOVC,P;校验位送;校验位送TB8,采用偶校验采用偶校验MOVTB8,C;P=1,校验位,校验位TB8=1,P=0,校验,校验;位;位TB8=0MOVSBUF,A;A数据发送,同时发数据发送,同时发TB8INCR0;数据指针加;数据指针加1POP Acc;恢复现场;恢复现场POP PSWRETI;中断返回;中断返回2方式方式2接收接收SM0、SM1=10,且,且REN=1时,以方式时,以方式2接收数据。接收数据。数据由数据由RXD端端输入,接收输入,接收11位信息。当位检测逻辑采样到位信息

20、。当位检测逻辑采样到RXD的的负跳变负跳变,判断起始位有效,便开始接收一帧信息。,判断起始位有效,便开始接收一帧信息。在接收完第在接收完第9位数据后,位数据后,需满足以下两个条件,需满足以下两个条件,才能将接才能将接收到的数据送入收到的数据送入SBUF(接收缓冲器)。(接收缓冲器)。(1)RI=0,意味着接收缓冲器为空。,意味着接收缓冲器为空。(2)SM2=0或接收到的第或接收到的第9位数据位位数据位RB8=1。当满足上述两个条件时,收到的数据送SBUF(接收缓冲器),第9位数据送入RB8,且RI置“1”。若不满足这若不满足这两个条件两个条件,接收的信息将被丢弃。串行口方式2和方式3接收时序接

21、收时序如图7-15所示所示。图图7-15方式方式2和方式和方式3接收时序接收时序【例例7-2】方式2接收在双机通信中的应用。本例对例7-1发送的数据进行偶校验接收,程序如下(设1组寄存器区的R0为数据缓冲区指针)。PIRI:PUSHPSW;保护现场PUSHAccSETBRS0;选择1组寄存器区CLRRS1CLRRIMOVA,SBUF;将接收到数据送到累加器AMOVC,P;接收到数据字节的奇偶性送入C位JNCL1;C=0,收的字节1的个数为偶数,跳L1处JNBRB8,ERP;C=1,再判RB8=0?如RB8=0,则;出错,跳ERP出错处理AJMPL2;C=1,RB8=1,收的数据正确,跳L2处L

22、1:JBRB8,ERP;C=0,再判RB8=1?如RB8=1,;则出错,跳ERP出错处理L2:MOVR0,A;C=0,RB8=0或C=1,RB8=1,;接收数据正确,存入数据缓冲区INCR0;数据缓冲区指针增1,为下次接收做准备POP Acc;恢复现场POP PSWERP:;出错处理程序段入口RETI7.2.4方式方式3SM0、SM1=11时,方式3。为波特率可变的9位异步通信方式,除了波特率外,方式3和方式2相同。方式3发送和接收时序如图7-11和图7-12所示。方式方式3波特率波特率=定时器T1的溢出率7.3多机通信多机通信多个单片机可利用串行口进行多机通信,经常采用如图7-16所示的主从

23、式结构主从式结构。系统中有1个主机(单片机或其他有串行接口的微机)和多个单片机组成的从机系统。主主机的机的RXD与所有从机的与所有从机的TXD端相连端相连,TXD与所有从机的RXD端相连。从机地址从机地址分别为01H、02H和03H。图图7-16多机通信系统示意图多机通信系统示意图主从式主从式是指多机系统中,只有一个主机,其余全是从机。主机主机发送的信息可以发送的信息可以被所有从机接收被所有从机接收,任何一个从机任何一个从机发送的信息,只能由发送的信息,只能由主机主机接收。从机和从机之间接收。从机和从机之间不能进行直接通信,只能经主机只能经主机才能实现。多机通信的工作原理:多机通信的工作原理:

24、要保证主机与与所选择的从机通信,须保证串口有识别串口有识别功能功能。SCON中的SM2位位就是为满足这一条件设置的多机多机通信控制位通信控制位。其工作原理是在串行口以方式2(或方式3)接收时,若若SM2=1,则表示进行多机通信,可能以下两两种情况种情况:(1)从机接收到的主机发来的第9位数据RB8=1时,前前8位位数据才装入数据才装入SBUF,并置中断标志置中断标志RI=1,向CPU发出中断请求。在中断服务程序中,从机把接收到的SBUF中的数据存入数据缓冲区中。(2)如果从机接收到的第)如果从机接收到的第9位数据位数据RB8=0时,则不产生中断标志RI=1,不引起中断不引起中断,从机不接收主机

25、发来的数据。若若SM2=0,则接收的第9位数据不论是0还是1,从机都将产生RI=1中断标志,接收到的数据装入SBUF中。应用这一特性,可实现单片机的多机通信。多机通信的多机通信的工作过程:工作过程:(1)各从机从机初始初始化程序允许从机的串行口中断,将串行口编程为方式2或方式3接收,即9位异步通信方式,且SM2和和REN位位置置“1”,使从机处于多机通信且只接收地只接收地址帧址帧的状态。(2)在主机和某个从机通信之前主机和某个从机通信之前,先将从机地址(即先将从机地址(即准备接收数据的从机)发送给各个从机准备接收数据的从机)发送给各个从机,接着才传送数据(或命令),主机发出的地址帧信息的第9位

26、为1,数据(或命令)帧的第9位为0。当主机向各从机发送地址帧时,各从机的串行口接收到的第9位信息RB8为1,且由于各从机的SM2=1,则RI置置“1”,各从机响应中断,在中断服务子程序中,判断主机送来的地址是否和本机地判断主机送来的地址是否和本机地址相符合,若为本机地址,则该从机址相符合,若为本机地址,则该从机SM2位清位清“0”,准备接收主机的数据或命令;若地址不相符不相符,则保持保持SM2=1。(3)接着主机发送数据(或命令)帧,数据帧的第9位为0。此时各从机接收到的RB8=0。只有与前面地址相符合地址相符合的从机(即SM2位已清“0”的从机)才能激活中断标志位激活中断标志位RI,从而进入

27、中断服务程序,接收主机发来的数据(或命令);与主机发来的地址不相符地址不相符的从机,由于SM2保持为1,又RB8=0,因此不能激活中断标志不能激活中断标志RI,就不能接受主机发来的数据帧。从而保证主机与从机间通信的正确性主机与从机间通信的正确性。此时主机与建立联系的从机已经设置为单机通信模式,即在整个通信中,通信的双方都要保持发送数据的第9位(即TB8位)为0,防止其他的从机误接收数据。(4)结束数据通信并为下一次的多机通信做好准备。)结束数据通信并为下一次的多机通信做好准备。在多机系统,每个从机都被赋予唯一的地址。例如,图7-16三个从机的地址可设为:01H、02H、03H。还要预留预留12

28、个个“广播地址广播地址”,它是所有从机共有的地址,例如将“广播地址”设为00H。当主机与从机的数据当主机与从机的数据通信通信结束后结束后,一定要将从机,一定要将从机再设置为多机通信模式再设置为多机通信模式,以便进行下一次的多机通信。这时要求与主机正在进行数据传输的从机必须随时注意,一旦接收的数据第一旦接收的数据第9位(位(RB8)为)为“1”,说明主机传送的不再是数据,而是地址,这个地址就有可能是可能是“广播地址广播地址”。当收到收到“广播地址广播地址”后后,便将从机的通信模式再设置成多机模式,为下一次的多机通信做好准备。7.4波特率的制定方法波特率的制定方法串行通信,收、发双方发送或接收的波

29、特率必须一致。波特率必须一致。4种工作方式。方式式0和方式和方式2的波特率是固定固定的;方式方式1和方式和方式3的波特率是可变的可变的,由T1溢出率确定。7.4.1波特率的定义波特率的定义波特率的定义:波特率的定义:串行口每秒发送(或接收)的位数每秒发送(或接收)的位数。设发送一位所需要的时间为T,则波特率为1/T。定时器的不同工作方式,得到的波特率的范围不一样,这是由T1在不同工作方式下不同工作方式下计数位数的不同计数位数的不同所决定。7.4.2定时器定时器T1产生波特率的计算产生波特率的计算和串行口的工作方式有关串行口的工作方式有关。(1)方式方式0时,波特率固定为时钟频率固定为时钟频率f

30、osc的的1/12,不受SMOD位值的影响。若fosc=12MHz,波特率为1Mbit/s。(2)方式方式2时,波特率仅与SMOD位的值有关。方式方式2波特率波特率=fosc若fosc=12MHz:SMOD=0,波特率=187.5kbit/s;SMOD=1,波特率为为375kbit/s。(3)方式1或方式3定时,常用T1作为波特率发生器,其关系式为波特率=定时器T1的溢出率(7-1)由式(7-1)见,T1溢出率溢出率和SMOD的值的值共同决定波特率共同决定波特率。在实际设定波特率时实际设定波特率时,T1常设置为方式2定时(自动重装初值),即TL1作为8位计数器,TH1存放备用初值。这种方式操作

31、方便,也避免因软件重装初值因软件重装初值带来的定时误差定时误差。设定时器T1方式2的初值为X,则有定时器定时器T1的溢出率的溢出率(7-2)将式(7-2)代入式(7-1),则有波特率波特率=(7-3)由式(7-3)可见,波特率波特率随fosc、SMOD和初值和初值X而变化。实际使用时,经常根据已知波特率和时钟频率已知波特率和时钟频率fosc来计计算算T1的初值的初值X。为避免繁杂的初值计算,常用的波特率和常用的波特率和初值初值X间的关系常列成间的关系常列成表表7-2的的形式形式,以供查用。表表7-2 用定时器用定时器T1产生的常用波特率产生的常用波特率波 特 率foscSMOD位方式初值X62

32、.5kbit/s12 MHz12FFH19.2kbit/s11.0592 MHz12FDH9.6kbit/s11.0592 MHz02FDH4.8kbit/s11.0592 MHz02FAH2.4kbit/s11.0592 MHz02F4H1.2kbit/s11.0592 MHz02E8H对对表表7-2有两点需要注意:有两点需要注意:(1)在使用的时钟振荡频率fosc为12MHz或或6MHz时,将初值X和fosc带入式(7-3)中计算出的波特率有一定误有一定误差差。消除误差可采用时钟频率时钟频率11.0592MHz。(2)如果选用很低的波特率很低的波特率,如波特率选为55,可将定时器T1设置为

33、方式1定时。但在这种情况下,T1溢出时,需在中断服务程序中重新装入初值。中断响应时间和执行指令时间会使波特率产生一定的误差,可用改变初值的方法加以调整。【例例7-3】若时钟频率为11.0592MHz,选用T1的方式方式2定时定时作为波特率发生器,波特率为波特率为2400bit/s,求初值。设T1为方式2定时,选SMOD=0。将已知条件带入式(7-3)中波特率波特率=2400从中解得X=244=F4H。只要把F4H装入TH1和TL1,则T1产生的波特率为2400bit/s。该结果也可直接从表7-2中查到。这里时钟振荡频率选为11.0592MHz,就可使初值为整数初值为整数,从而产生精确的波特率。

34、7.5串行口的应用串行口的应用利用串行口可实现单片机间的点对点串行通信点对点串行通信、多机通多机通信信以及单片机与单片机与PC机间机间的单机或多机通信。限于篇幅,本节仅介绍单片机间的双机串行通信双机串行通信的接口和软件设计。7.5.1双机串行通信的硬件连接双机串行通信的硬件连接51串行口的输入、输出均为TTL电平电平。抗干扰性差,抗干扰性差,传输距离短,传输速率低。传输距离短,传输速率低。为提高串行通信的可靠性,增大串行通信的距离和提高传输速率串行通信的距离和提高传输速率,都采用标准标准串行接口串行接口,如RS-232、RS-422A、RS-485等。根据通信距离和抗干扰性要求,可选择TTL电

35、平传输、RS-232C、RS-422A、RS-485串口进行串行数据传输。1TTL电平通信接口电平通信接口如果两个单片机相距在相距在1.5m之内,它们的串行口可直接相直接相连连,接口如图图7-9所示所示。甲机RXD与乙机TXD端相连,乙机RXD与甲机TXD端相连。2RS-232C双机通信接口双机通信接口如果双机通信距离在距离在1.515m之间时,可用RS-232C标准标准接口接口实现点对点的双机通信,接口如图图7-17所示所示。图7-17的MAX232A是美国MAXIM(美信)公司生产的RS-232C双工发送器/接收器电路芯片。图图7-17RS-232C双机通信接口电路双机通信接口电路7.5.

36、2 7.5.2 串行通信设计需要考虑的问题串行通信设计需要考虑的问题单片机的串行通信接口设计时,单片机的串行通信接口设计时,需考虑如下问题需考虑如下问题。(1 1)首先确定通信双方的)首先确定通信双方的数据传输速率数据传输速率。(2 2)由数据传输速率)由数据传输速率确定采用的串行通信接口确定采用的串行通信接口标准。标准。(3)在通信接口标准允许的范围内)在通信接口标准允许的范围内确定通信的波特率确定通信的波特率。为。为减小波特率的误差,通常减小波特率的误差,通常选用选用11.0592MHz的晶振频率。的晶振频率。(4)根据任务需要,确定收发双方使用的)根据任务需要,确定收发双方使用的通信协议

37、通信协议。(5)通信线的选择通信线的选择,这是要考虑的一个很重要的因素。通,这是要考虑的一个很重要的因素。通信线一般信线一般选用选用双绞线双绞线较好较好,并根据传输的距离选择纤芯的直径。,并根据传输的距离选择纤芯的直径。如果空间的干扰较多,还要选择带有屏蔽层的双绞线。如果空间的干扰较多,还要选择带有屏蔽层的双绞线。(6)通信协议确定后,进行通信)通信协议确定后,进行通信软件编程软件编程。7.5.3串行口的编程串行口的编程 串行口需初始化后,才能完成数据的输入、输出。其初始化过程如下:(1)按选定串行口的操作模式设定SCON的SM0、SM1两位二进制编码。(2)对于操作模式 2 或 3,应根据需

38、要在 TB8 中写入待发送的第 9 位数据。(3)若选定的操作模式不是模式 0,还需设定接收/发送的波特率。设定SMOD的状态,以控制波特率是否加倍。若选定操作模式1或3,则应对定时器 T1进行初始化以设定其溢出率。例例1 用 8031 串行口外接 74LS165 移位寄存器扩展8位输入口,输入数据由 8 个开关提供,另有一个开关 K提供联络信号。电路示意如图7-18所示。当开关K合上时,表示要求输入数据。输入 8 位开关量,处理不同的程序。图 7-18程序如下程序如下:START:JB P1.0,START;开关K未合上,等待 SETB P1.1;165并行输入数据 CLR P1.1 ;开始

39、串行移位 MOV SCON,10H ;串行口模式 0,并启动接收 WAIT:JNB RI,WAIT ;查询RI CLR RI;查询结束,清RI MOV A,SBUF ;输入数据 ;根据 A处理不同任务 SJMP START;准备下一次接收。例例 2 利用串行口进行双机通信。利用串行口进行双机通信。图 6.12 双机通信系统 甲机发送(采用查询方式):MOV SCON,80H ;设置工作方式2 MOV PCON,00;置SMOD=0,波特率不加倍 MOV R0,40H;数据区地址指针 MOV R2,10H;数据长度LOOP:MOV A,R0 ;取发送数据 MOV C,P ;奇偶位送TB8 MOV

40、 TB8,C MOV SBUF,A;送串口并开始发送数据 WAIT:JBC TI,NEXT ;检测是否发送结束并清TI SJMP WAITNEXT:INC R0;修改发送数据地址指针 DJNZ R2,LOOP RET乙机接收(查询方式):MOV SCON,90H;工作方式2,并允许接收MOV PCON,00H;置SMOD=0MOV R0,60H ;置数据区地址指针MOV R2,10H ;等待接收数据长度 LOOP:JBCRI,READ ;等待接收数据并清RI SJMP LOOPREAD:MOV A,SBUF ;读一帧数据 MOV C,P JNC LP0 ;C不为1转LP0 JNB RB8,ER

41、R;RB8=0,即 RB8不为 P转ERR AJMP LP1LP0:JB RB8,ERR;RB8=1,即 RB8不为 P转ERRLP1:MOV R0,A;RB8=P,接收一帧数据 INC R0 DJNZ R2,LOOP RETERR:;出错处理程序 习题习题1答案:答案:串行数据传送的主要优点是硬件接口简单,接口端口少(串行数据传送的主要优点是硬件接口简单,接口端口少(2个)。主要用于多个单片机系统之间的数据通信。个)。主要用于多个单片机系统之间的数据通信。习题习题2答案:答案:以方式一为例。以方式一为例。发送:发送:数据位由数据位由TXD端输出,发送端输出,发送1帧信息为帧信息为10位,当位

42、,当CPU执行执行1条数据写发送缓冲器条数据写发送缓冲器SBUF的指令,就启动发送。发送开始时,内部的指令,就启动发送。发送开始时,内部发送控制信号发送控制信号变为有效,将起始位向变为有效,将起始位向TXD输出,此后,每经过输出,此后,每经过1个个TX时钟周期,便产生时钟周期,便产生1个移位脉冲,并由个移位脉冲,并由TXD输出输出1个数据位。个数据位。8位数据位全部完毕后,置位数据位全部完毕后,置1中断标志位中断标志位TI,然后,然后信号失效。信号失效。接收:接收:当检测到起始位的负跳变时,则开始接收。接受时,定时当检测到起始位的负跳变时,则开始接收。接受时,定时控制信号有控制信号有2种,一种

43、是位检测器采样脉冲,它的频率是种,一种是位检测器采样脉冲,它的频率是RX时钟的时钟的16倍。也就是在倍。也就是在1位数据期间,有位数据期间,有16个采样脉冲,以波特率的个采样脉冲,以波特率的16倍的速倍的速率采样率采样RXD引脚状态,当采样到引脚状态,当采样到RXD端从端从1到到0的跳变时就启动检测的跳变时就启动检测器,接收的值是器,接收的值是3次连续采样,取其中次连续采样,取其中2次相同的值,以确认是否是真次相同的值,以确认是否是真正的起始位的开始,这样能较好地消除干扰引起的影响,以保证可靠正的起始位的开始,这样能较好地消除干扰引起的影响,以保证可靠无误的开始接受数据。无误的开始接受数据。习题习题11答案:答案:(1)初值计算(设T1工作于方式2,SMOD0。)(2)方式控制字MOVTMOD,#20HMOVTH1,#0FAHMOVTL1,#0FAHMOVSCON,#40H习题习题16答案:答案:串行口的方式串行口的方式0为同步移位寄存器输入输出方式,常用于外为同步移位寄存器输入输出方式,常用于外接移位寄存器,以扩展并行接移位寄存器,以扩展并行I/O口,一般不用于两个口,一般不用于两个MCS-51之之间的串行通信。该方式以间的串行通信。该方式以fosc/12的固定波特率从低位到高位发的固定波特率从低位到高位发送或接受数据。送或接受数据。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com