




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 7.1.1 7.1.1 数据通信数据通信 图图1 并行通信示意图并行通信示意图图图 2 串行通信示意图串行通信示意图 异步通信帧格式起始位(位);起始位(位);v 数据位(位);数据位(位);v 奇偶校验位(位,可无校验位);奇偶校验位(位,可无校验位);v 停止位(位)。停止位(位)。 特点 易于实现 效率不高 n差错检测:检测数据传送过程中是否差错检测:检测数据传送过程中是否存在错误存在错误 传输速率与传输距离v传输速率传输速率比特率比特率:每秒钟传送的信息量。单位:位秒(:每秒钟传送的信息量。单位:位秒(bpsbps) 波特率波特率:每秒钟传送码元数目,单位:波特(:每秒钟传送码元数目
2、,单位:波特(Baud) 基带传输基带传输(每个码元带有(每个码元带有“1”1”或或“0”0”这这1 bit1 bit信息,信息,传码率与传信率相同),传码率与传信率相同),波特率和比特率是相同的波特率和比特率是相同的。 常用波特率为:常用波特率为:24002400、48004800、 96009600、14.4K14.4K、19.2K19.2K等等 v传输距离与传输速率的关系传输距离与传输速率的关系传输距离随波特率的增加而减小。传输距离随波特率的增加而减小。 RS-232C接口 RS-232C标准接口是标准接口是EIA(美国电子工业(美国电子工业协会)于协会)于1969年颁布的串行通信接口标
3、准。年颁布的串行通信接口标准。RS是是“Recommended Standard”(推荐标(推荐标准)的缩写,准)的缩写,232为标准的编号,为标准的编号,C为版本号为版本号。在。在RS-232C之前为之前为RS-232A与与RS-232B,1987年修订为年修订为EIA-232D,1991年修订为年修订为EIA-232E,1997年又修订为年又修订为EIA-232F。其中,。其中,RS-232C最为常用。最为常用。RS-232C接口在远程数据通信系统中的应用 当两台计算机(当两台计算机(DTE)借助公用电话网进行)借助公用电话网进行远程数据通信时。远程数据通信时。RS-232C用于将用于将D
4、TE和和DCE进行连接,使两者能进行串行通信。进行连接,使两者能进行串行通信。 图图7-6 RS-232C接口在远程数据通信系统中的应用接口在远程数据通信系统中的应用1RS-232C的机械特性 RS-232C接口规定使用接口规定使用25针连接器针连接器(DB-25),连接器的尺寸及每个插针的),连接器的尺寸及每个插针的排列位置都有明确的定义。由于一般的应排列位置都有明确的定义。由于一般的应用中很少用到用中很少用到RS-232C标准的全部信号线标准的全部信号线,所以在实际应用中常常使用,所以在实际应用中常常使用9针连接器针连接器(DB-9)替代)替代25针连接器。两者的外形针连接器。两者的外形与
5、引脚排列如图与引脚排列如图7-7所示。通常一端做成所示。通常一端做成插针,另一端做成插孔。插针,另一端做成插孔。DB-25和DB-9连接器图图7-7 DB-25和和DB-9连接器连接器2RS-232C的引脚功能(表7-1 )引 脚序 号信 号名 称功 能信 号 方 向1PGND保护(屏蔽)接地2(3)TXD发送数据(串行输出)DTEDCE3(2)RXD接收数据(串行输入)DTEDCE4(7)RTS请求发送DTEDCE5(8)CTS允许发送DTEDCE6(6)DSRDCE就绪(数据建立就绪)DTEDCE7(5)SGND信号接地8(1)DCD载波检测DTEDCE9保留供测试用10保留供测试用注:引
6、脚序号栏中带括号的序号为注:引脚序号栏中带括号的序号为DB-9连接器的引脚序号。连接器的引脚序号。引 脚序 号信 号名 称功 能信 号 方 向11未定义12SDCD辅助信道载波检测DTEDCE13SCTS辅助信道允许发送DTEDCE14STXD辅助信道发送数据DTEDCE15TXC发送时钟DTEDCE16SRXD辅助信道接收数据DTEDCE17RXC接收时钟DTEDCE18未定义19SRTS辅助信道请求发送DTEDCE 20(4) DTRDTE就绪(数据终端准备就绪) DTEDCE21SQD信号质量检测DTEDCE22(9)RI振铃指示DTEDCE23DRS数据信号速率选择DTEDCE24ET
7、XC外部发送时钟DTEDCE25未定义注:引脚序号栏中带括号的序号为注:引脚序号栏中带括号的序号为DB-9连接器的引脚序连接器的引脚序号号3RS-232C的电气特性 RS-232C的信号电平的信号电平:RS-232C标准标准规定采用负逻辑电平。信号源点的逻辑规定采用负逻辑电平。信号源点的逻辑0(空(空号)电平范围为号)电平范围为+5V+15V,逻辑,逻辑1(传号(传号)电平范围为)电平范围为5V15V;信号目的点的逻;信号目的点的逻辑辑0(空号)电平范围为(空号)电平范围为+3V+15V,逻辑,逻辑1(传号)电平范围为(传号)电平范围为3V15V,噪声容限,噪声容限为为2V。RS-232C的信
8、号电平如图的信号电平如图7-8所示。所示。RS-232C的信号电平图图7-8 RS-232C的信号电平的信号电平 通常,通常,RS-232C的逻辑电平采用的逻辑电平采用12V表示逻表示逻辑辑0,12V表示逻辑表示逻辑1。RS-232C的传输距离与传输速率: RS-232C的传输距离:的传输距离:DTE和和DEC之间采用之间采用RS-232C传输的最大距离传输的最大距离不大于不大于15m。 RS-232C的传输速率:的传输速率:小于小于20kbit/s。4RS-232C与DTE和DCE的连接 RS-232C在远程通信中的连接在远程通信中的连接 远程通信是指传输距离在远程通信是指传输距离在15m以
9、上的远以上的远距离通信如图距离通信如图7-6:RS-232C在远程通信中的连接 远程通信通常需要采用调制解调器(远程通信通常需要采用调制解调器(MODEM),这),这时,时,RS-232C与与DTE和和DEC之间的连接方式如图之间的连接方式如图7-9:图图7-9 RS-232C在远程通信中的连接方式在远程通信中的连接方式 近程通信是通信距离小于近程通信是通信距离小于15m的通信,这时,无需使用的通信,这时,无需使用调制解调器,两台具有调制解调器,两台具有RS-232C接口的计算机可采用图接口的计算机可采用图7-10所示的两种连接方式中的任意一种进行直接连接。所示的两种连接方式中的任意一种进行直
10、接连接。RS-232C在近程通信中的连接图图7-10 RS-232C在近程通信中的连接方式在近程通信中的连接方式 5RS-232C与MCS-51系列单片机的连接 由于由于MCS-51系列单片机的串行口不是系列单片机的串行口不是标准标准RS-232C接口,采用的是正逻辑接口,采用的是正逻辑TTL电电平:即逻辑平:即逻辑1为为2.4V;逻辑;逻辑0为为0.4V。 所以使用所以使用RS-232C接口将接口将MCS-51系列系列单片机与计算机或其他具有单片机与计算机或其他具有RS-232C接口的接口的设备进行连接时,必须考虑电平转换问题。设备进行连接时,必须考虑电平转换问题。 通常使用专用的电平转换芯
11、片来进行电通常使用专用的电平转换芯片来进行电平转换。平转换。MC1488、MC1489电平转换芯片 图图7-11 MC1488、MC1489的内部结构和引脚排列的内部结构和引脚排列 MC1488用于将输入的用于将输入的TTL电平转换为电平转换为RS-232C电平,电平,MC1489用于将输入的用于将输入的RS-232C电平转换为电平转换为TTL电平输出。它电平输出。它们的内部结构和引脚排列如图们的内部结构和引脚排列如图7-11所示。所示。由MC1488、MC1489构成的电平转换电路 图图7-12 由由MC1488、MC1489构成的电平转换电路构成的电平转换电路 为了减少使用双电源的麻烦,现
12、在市场上为了减少使用双电源的麻烦,现在市场上出现了使用单电源供电的电平转换芯片,这种出现了使用单电源供电的电平转换芯片,这种芯片体积更小,连接更简便,而且抗干扰能力芯片体积更小,连接更简便,而且抗干扰能力更强,常见的有更强,常见的有MAXIM公司生产公司生产MAX232。它。它仅需要仅需要+5V电源,由内置的电子泵电压转换器电源,由内置的电子泵电压转换器将将 +5V转换成转换成 10V+10V。该芯片与。该芯片与TTL/CMOS电平兼容,片内有电平兼容,片内有2个发送器和个发送器和2个个接收器,使用比较方便。由它构成的电平转换接收器,使用比较方便。由它构成的电平转换电路如图电路如图7-13所示
13、。所示。MAX232电平转换芯片 由MAX232构成的电平转换电路图图7-13 由由MAX232构成的电平转换电路构成的电平转换电路6RS-232C的缺点 接口的信号电平值较高,易损坏接口电路接口的信号电平值较高,易损坏接口电路的芯片。的芯片。 与与TTL电平不兼容,与电平不兼容,与TTL电平接口连接需电平接口连接需进行电平转换。进行电平转换。 传输距离短,使用时传输距离一般不超过传输距离短,使用时传输距离一般不超过15m,线路条件好时也不超过几十米。,线路条件好时也不超过几十米。 传输速率较低,最高传送速率为传输速率较低,最高传送速率为20kbit/s。 由于收发信号采用共地传输,容易产生共
14、由于收发信号采用共地传输,容易产生共模干扰,所以抗干扰能力较差。模干扰,所以抗干扰能力较差。7.2.1 MCS-517.2.1 MCS-51串行口的结构串行口的结构 MCS-51 MCS-51有一个可编程的有一个可编程的全双工串行通信接口全双工串行通信接口,可作为通用异步收发器可作为通用异步收发器(UARTUART),也可作为同,也可作为同步移位寄存器。步移位寄存器。有四种工作方式,帧格式有有四种工作方式,帧格式有8 8、1010、1111位。位。为固定波特率和可为固定波特率和可变波特率。可变变波特率。可变波特率由片内定时器波特率由片内定时器/ /计数器计数器T1T1控制。控制。每发送或接收一
15、帧数据,均可发出中断请求。每发送或接收一帧数据,均可发出中断请求。MCS-51单片机串行口的结构单片机串行口的结构 MCS-51单片机串行口的结构单片机串行口的结构 图:图: 串行口控制寄存器串行口控制寄存器 SCON各位名称和功能各位名称和功能 SM0和和SM1(SCON.7和和SCON.6):串行口工作):串行口工作方式选择位。可选择方式选择位。可选择4种工作方式,如表种工作方式,如表7-2所示。所示。SM0SM1工作方式功 能波 特 率0008位同步移位寄存器fosc/1201110位异步收发(8位数据)可变,由定时器控制10211位异步收发(9位数据)fosc/64或fosc/3211
16、311位异步收发(9位数据)可变,由定时器控制表表7-2串行口的工作方式串行口的工作方式SM2(SCON.5):多机通信控制位。主要用于):多机通信控制位。主要用于方式方式2和方式和方式3中。中。 若接收方单片机的若接收方单片机的SM2 = 1,则由收到的,则由收到的RB8来控制是否使来控制是否使RI置置1:当收到的:当收到的RB8 = 0时,时, RI不不被置被置1,收到的信息被丢弃;当收到的,收到的信息被丢弃;当收到的RB8 = 1时时,收到的数据进入,收到的数据进入SBUF(接收),并将(接收),并将RI置置1,向向CPU发出串口中断请求,接收方可在串口中断发出串口中断请求,接收方可在串
17、口中断服务中将数据从服务中将数据从SBUF(接收)中读走。也可以通(接收)中读走。也可以通过查询过查询RI的办法,在发现的办法,在发现RI为为1后,将后,将SBUF(接(接收)中的数据读走。收)中的数据读走。 SCON各位名称和功能各位名称和功能 若接收收方单片机的若接收收方单片机的SM2 = 0,则,则RB8不再具不再具有控制有控制RI激活的功能,不论收到的激活的功能,不论收到的RB8为为0还是还是1,收到的数据都会进入,收到的数据都会进入SBUF,并使,并使RI = 1。 运用运用SM2的控制功能,便可以实现多机通信的控制功能,便可以实现多机通信(将在下一节中详细介绍)。(将在下一节中详细
18、介绍)。 在方式在方式0时,不使用时,不使用SM2控制位,应将控制位,应将SM2设设定为定为0。在方式。在方式1时,通常也将时,通常也将SM2设为设为0,若使,若使SM2 = 1,则只有接收到有效的停止位时,则只有接收到有效的停止位时,RI才才被置被置1。SCON各位名称和功能各位名称和功能 TB8(SCON.3):发送数据第):发送数据第9位。在位。在方式方式2或方式或方式3中,用于存放发送数据的第中,用于存放发送数据的第9位,此时,该位可以用作奇偶校验位,在多位,此时,该位可以用作奇偶校验位,在多机通信中,可以作为地址帧机通信中,可以作为地址帧/数据帧的标志数据帧的标志位。位。 REN(S
19、CON.4):允许接收控制位。):允许接收控制位。若使若使REN=1,则启动串行口接收数据;若,则启动串行口接收数据;若使使REN=0,则禁止串口接收。,则禁止串口接收。SCON各位名称和功能各位名称和功能 RB8(SCON.2):接收数据第):接收数据第9位。在位。在方式方式2或方式或方式3中,用于存放接收数据的第中,用于存放接收数据的第9位,此时,该位可能是奇偶校验位,也可位,此时,该位可能是奇偶校验位,也可能是多机通信中的地址帧能是多机通信中的地址帧/数据帧的标志位数据帧的标志位。在方式。在方式1时,若时,若SM2=0,则,则RB8为接收到为接收到的停止位。方式的停止位。方式0时,不使用
20、时,不使用RB8。 SCON各位名称和功能 TI(SCON.1):发送中断标志位。用):发送中断标志位。用于指示一帧信息是否发送完毕它的工作过于指示一帧信息是否发送完毕它的工作过程是:在方式程是:在方式0中,当串行发送第中,当串行发送第8位数据位数据结束时;在其他方式下,开始串行发送停结束时;在其他方式下,开始串行发送停止位时,由内部硬件电路使止位时,由内部硬件电路使TI=1,并向,并向CPU发出串口中断请求。与发出串口中断请求。与RI标志的清除标志的清除方法相似,方法相似,TI也必须通过软件才能将其清也必须通过软件才能将其清0(如执行(如执行CLR TI指令)。指令)。SCON各位名称和功能
21、 RI(SCON.0):接收中断标志位。用):接收中断标志位。用于指示一帧信息是否接收完毕它的工作过于指示一帧信息是否接收完毕它的工作过程是:在方式程是:在方式0中,当串行接收完第中,当串行接收完第8位数位数据时;在其他方式下,当串行口接收到停据时;在其他方式下,当串行口接收到停止位时;由内部硬件电路使止位时;由内部硬件电路使RI=1。一旦。一旦RI被硬件置被硬件置1,便产生串口中断请求(假设,便产生串口中断请求(假设串口中断是开放的,下同)。串口中断是开放的,下同)。SCON各位名称和功能 PCON的字节地址为的字节地址为87H,不能按位寻址,只能,不能按位寻址,只能按字节寻址。各位的定义如
22、图按字节寻址。各位的定义如图7-16所示。其中,只所示。其中,只有一位有一位SMOD与串行口工作有关。编程时只能使用与串行口工作有关。编程时只能使用字节操作指令对它赋值。字节操作指令对它赋值。图图7-16 电源控制寄存器电源控制寄存器 PCON控制位的名称和功能 SMOD(PCON.7):波特率倍增):波特率倍增位。在串行口方式位。在串行口方式1、方式、方式2、方式、方式3中,用中,用于控制是否倍增波特率。当于控制是否倍增波特率。当SMOD = 0时,时,波特率不倍增;当波特率不倍增;当SMOD = 1时,波特率提时,波特率提高一倍。高一倍。 PCON其余的位,只定义了其余的位,只定义了4位,
23、位,GF1、GF0为通用标志位,为通用标志位,PD、IDL用于节用于节电方式控制:前者为掉电控制位,后者为电方式控制:前者为掉电控制位,后者为空闲控制位。空闲控制位。7.3.1 串行接口的工作方式串行接口的工作方式7.3.2 串行接口的波特率串行接口的波特率1方式方式02方式方式13方式方式2和方式和方式3 图图7-17 串口工作在方式串口工作在方式0时的内部结构时的内部结构 方式方式0时,串行口被设定为时,串行口被设定为。这时,串行口的内部结构可简化为图这时,串行口的内部结构可简化为图7-17所示。所示。图图7-17说明说明当串行口工作于方式当串行口工作于方式0时,时,RXD(P3.0)引脚
24、用于输入或输出数据,引脚用于输入或输出数据,TXD(P3.1)引脚)引脚用于输出同步移位脉冲。波特率固定为用于输出同步移位脉冲。波特率固定为fosc/12。发送和接收均为。发送和接收均为8位数据,低位在前,高位位数据,低位在前,高位在后。在后。 串口工作于方式串口工作于方式0时,时,SM2、RB8和和TB8皆皆不起作用,通常将它们均设置为不起作用,通常将它们均设置为0状态。状态。 方式方式0发送时,发送时,SBUF(发送)相当于一个并入串(发送)相当于一个并入串出的移位寄存器。出的移位寄存器。 当当TI = 0时,通过指令向发送数据缓冲器时,通过指令向发送数据缓冲器SBUF写入一个数据,就会启
25、动串行口的发送过程。从写入一个数据,就会启动串行口的发送过程。从RXD引脚逐位移出引脚逐位移出SBUF中的数据,同时从中的数据,同时从TXD引脚引脚输出同步移位脉冲。这个移位脉冲可供与串口通信输出同步移位脉冲。这个移位脉冲可供与串口通信的外设作为输入移位脉冲移入数据。的外设作为输入移位脉冲移入数据。 当当SBUF中的中的8位数据完全移出后,硬件电路自动位数据完全移出后,硬件电路自动将中断标志将中断标志TI置置1,产生串口中断请求。如要再发送,产生串口中断请求。如要再发送下一字节数据,必须用指令先将下一字节数据,必须用指令先将TI清清0,再重复上述,再重复上述过程。过程。图7-18 串口方式0的
26、发送时序方式方式0发送时的时序发送时的时序 在方式在方式0接收时,接收时,SBUF(接收)相当于一个串入并出的(接收)相当于一个串入并出的移位寄存器。移位寄存器。 当当SCON中的接收允许位中的接收允许位REN = 1,并用指令使,并用指令使RI为为0时时,就会启动串行口接收过程。外设送来的串行数据从,就会启动串行口接收过程。外设送来的串行数据从RXD引引脚输入,同步移位脉冲从脚输入,同步移位脉冲从TXD引脚输出,供给外设作为输出引脚输出,供给外设作为输出移位脉冲用于移出数据。移位脉冲用于移出数据。 当一帧数据完全移入单片机的当一帧数据完全移入单片机的SBUF后,由硬件电路将后,由硬件电路将中
27、断标志中断标志RI置置1,产生串口中断请求。接收方可在查询到,产生串口中断请求。接收方可在查询到RI = l后或在串口中断服务程序中将后或在串口中断服务程序中将SBUF(接收)中的数据(接收)中的数据读走。如要再接收数据,必须用指令将读走。如要再接收数据,必须用指令将RI清清0,再重复上述,再重复上述过程。过程。 这种方式不适用于两个这种方式不适用于两个8051之间的串行通信,但可以通之间的串行通信,但可以通过外接移位寄存器来实现单片机的过外接移位寄存器来实现单片机的I/O接口扩展。接口扩展。图图7-19 串口方式串口方式0的接收时序的接收时序 工作方式工作方式1时,串口被设定为时,串口被设定
28、为10位异步通信口。位异步通信口。TXD为数据发送引脚,为数据发送引脚,RXD为数据接收引脚,所传送为数据接收引脚,所传送的字符帧格式如图的字符帧格式如图7-20所示。所示。图图7-20 串口方式串口方式1的字符帧格式的字符帧格式 ( 在在TI = 0时,当执行一条写时,当执行一条写SBUF的指令后,的指令后,即可启动串行口发送过程:即可启动串行口发送过程: 发送电路自动在写入发送电路自动在写入SBUF中的中的8位数据前位数据前后分别添加后分别添加1位起始位和位起始位和1位停止位。在发送移位停止位。在发送移位脉冲作用下,从位脉冲作用下,从TXD引脚逐位送出起始位、引脚逐位送出起始位、数据位和停
29、止位。发送完一个字符帧后,自动数据位和停止位。发送完一个字符帧后,自动维持维持TXD线为高电平。并使发送中断标志线为高电平。并使发送中断标志TI置置1,产生串口中断请求。通过软件将,产生串口中断请求。通过软件将TI清清0,便可,便可继续发送。继续发送。 串口方式1的发送时序图图9-21 串口方式串口方式1的发送时序的发送时序(2)方式)方式1接收接收 当使用命令使当使用命令使RI = 0,REN = 1时,串口开时,串口开始接收过程:始接收过程: 接收控制器先以速率为所选波特率的接收控制器先以速率为所选波特率的16倍的倍的采样脉冲对采样脉冲对RXD引脚电平进行采样,当连续引脚电平进行采样,当连
30、续8次次采样到采样到RXD线为低电平时,便可确认线为低电平时,便可确认RXD线上线上有起始位。有起始位。 此后,接收控制器就改为对第此后,接收控制器就改为对第7、8、9三个三个脉冲采样到的值进行位检测,并以三中取二原则脉冲采样到的值进行位检测,并以三中取二原则来确定所采样数据的值,如图来确定所采样数据的值,如图7-22所示。所示。 图图7-22 串口接收时对串口接收时对RXD引脚电平的采样引脚电平的采样方式方式1接收过程接收过程 RXD上的数据被逐位移入接收移位寄存器,当接收到停上的数据被逐位移入接收移位寄存器,当接收到停止位时,将去除起始位和停止位后的止位时,将去除起始位和停止位后的8位数据
31、装入接收缓冲位数据装入接收缓冲器器SBUF,并使,并使RI = 1,向,向CPU发出串口中断请求。但此时发出串口中断请求。但此时,若,若SM2 = 1,则只有接收到有效的停止位时,则只有接收到有效的停止位时,RI才被置才被置1。 方式方式1的接收时序如图的接收时序如图7-23所示。所示。 图图7-23 串口方式串口方式1的接收时序的接收时序 RI=0。即上一帧数据接收完成时,。即上一帧数据接收完成时,RI=1发出的中断请求发出的中断请求已被响应,已被响应,SBUF中数据已被取走。由软件使中数据已被取走。由软件使RI=0,以便,以便提供提供“接收接收SBUF已空已空”的信息。的信息。SM2=0或
32、收到的停止位为或收到的停止位为1(方式(方式1时,停止位进入时,停止位进入RB8)。)。 满足上述两个条件,将接收到的数据装入串行口的满足上述两个条件,将接收到的数据装入串行口的SBUF和和RB8(RB8装入停止位),并置位装入停止位),并置位RI,通知,通知CPU取数据;如果不满足,接收到的数据不能装入取数据;如果不满足,接收到的数据不能装入SBUF,这,这意味着该帧信息将会丢失。意味着该帧信息将会丢失。接收有效的两个条件:接收有效的两个条件: 将串行口定义为工作方式将串行口定义为工作方式2或方式或方式3时,串口被设定时,串口被设定为为11位异步通信口位异步通信口。TXD为数据发送引脚,为数
33、据发送引脚,RXD为数为数据接收引脚,所传送的字符帧格式如图据接收引脚,所传送的字符帧格式如图7-24所示。所示。图图7-24 串口方式串口方式2和方式和方式3的字符帧格式的字符帧格式 (1)方式)方式2和方式和方式3发送发送 方式方式2和方式和方式3的发送过程类似于方式的发送过程类似于方式1的发送过程,所不的发送过程,所不同的是,方式同的是,方式2和方式和方式3有有9位有效数据位。位有效数据位。 因此,发送时,除了通过写因此,发送时,除了通过写SBUF指令将指令将8位数据装入位数据装入SBUF(发送)外,还要把第(发送)外,还要把第9位数据预先装入位数据预先装入SCON的的TB8中。中。 第
34、第9位数据可以是奇偶校验位,也可以是其他控制位。位数据可以是奇偶校验位,也可以是其他控制位。 通常先使用指令通常先使用指令SETBTB8(第(第9位为位为1时)或时)或CLRTB8(第(第9位为位为0时)装入第时)装入第9位数据。然后再执行一条写位数据。然后再执行一条写SBUF指令,将低指令,将低8位发送数据送入位发送数据送入SBUF中,便可以启动发中,便可以启动发送过程。一帧字符发送完后,送过程。一帧字符发送完后,TI = 1。通过软件将其清。通过软件将其清0后,后,可用同样方法发送下一字符帧。可用同样方法发送下一字符帧。 方式2和方式3的发送时序 图图7-25 串口方式串口方式2和方式和方
35、式3的发送时序的发送时序 方式方式2和方式和方式3的接收过程也和方式的接收过程也和方式1的接收过程类似。但的接收过程类似。但不同的是:方式不同的是:方式1时,时,RB8中存放的是停止位,方式中存放的是停止位,方式2和方式和方式3时,时,RB8中存放的是第中存放的是第9位数据。位数据。 方式方式2和方式和方式3正常接收时的接收时序如图正常接收时的接收时序如图7-26所示。其所示。其中,中,TB8被接收后存为被接收后存为RB8。 图图7-26 串口方式串口方式2和方式和方式3的正常接收时序的正常接收时序 在串行通信中,为了保证接收方能正确识别在串行通信中,为了保证接收方能正确识别数据,收发双方必须
36、事先约定串行通信的波特率。数据,收发双方必须事先约定串行通信的波特率。 MCS-51单片机在不同的串口工作方式下,其单片机在不同的串口工作方式下,其串行通信的波特率是不同的。其中,方式串行通信的波特率是不同的。其中,方式0和方式和方式2的波特率是固定的;的波特率是固定的; 方式方式1和方式和方式3的波特率是可变的,由定时器的波特率是可变的,由定时器T1的溢出率决定。计算公式如下。的溢出率决定。计算公式如下。 方式方式0的波特率的波特率 = fosc/12 方式方式1的波特率的波特率 = (2SMOD/32)(T1溢出率溢出率) 方式方式2的波特率的波特率 = (2SMOD/64) fosc方式
37、方式3的波特率的波特率 = (2SMOD/32)(T1溢出率溢出率) 其中,其中,T1溢出率溢出率是指定时器是指定时器T1每秒钟溢出每秒钟溢出的次数。的次数。 由于由于T1每溢出一次所需的时间即为每溢出一次所需的时间即为T1的定时时间,所以的定时时间,所以T1溢出率等于溢出率等于T1定时时间的倒数。定时时间的倒数。T1的定时时间的定时时间 = (2n计数初值计数初值)12/foscT1溢出率溢出率 = 1/(T1的定时时间的定时时间) = fosc/(2n计数初值计数初值)12 公式中,公式中,n是定时器是定时器T1的位数,取值与的位数,取值与T1的工作的工作方式有关:方式有关: 若定时器若定
38、时器T1为方式为方式0,则,则n = 13 若定时器若定时器T1为方式为方式1,则,则n = 16 若定时器若定时器T1为方式为方式2或方式或方式3,则,则n = 8 在实际应用中,通常将定时器在实际应用中,通常将定时器T1选定为方式选定为方式2。因为定时。因为定时器器T1在方式在方式2时,为自动重装初值的时,为自动重装初值的8位定时器位定时器/计数器计数器 (当当TL1从全从全l变为全变为全0时,时,TH1重装重装TL1)。这种方式,可避免因。这种方式,可避免因重装计数初值而带来的定时误差。此时,重装计数初值而带来的定时误差。此时,T1溢出率取决于溢出率取决于T1的的计数初值(计数初值(TH
39、1),即:,即: T1溢出率溢出率 = fosc/256(TH1)12 综合以上分析,可得到定时器综合以上分析,可得到定时器T1工作于方式工作于方式2时,计数初值(时,计数初值(TH1)的计算公式如下:)的计算公式如下:OSCSMOD21(1) 2563212fTH波特率 在单片机应用中,常用的晶振频率为在单片机应用中,常用的晶振频率为6MHz或或12MHz(或(或11.0592MHz)。为)。为避免繁杂的计算,表避免繁杂的计算,表7-3列出了波特率和列出了波特率和有关参数的关系,以方便查用。有关参数的关系,以方便查用。根据接收器件采样点的不同,最大根据接收器件采样点的不同,最大可容许可容许4
40、%5%的波特率误差的波特率误差串行口 波特率 fosc SMDO 定时器 T1 工作方式 (bps) (MHz) /C T 工作方式 初值 0.5M 6 方式 0 1M 12 187.5K 6 1 方式 2 375K 12 1 62.5K 12 1 0 2 FFH 19.2K 11.0592 1 0 2 FDH 9600 11.0592 0 0 2 FDH 4800 11.0592 0 0 2 FAH 2400 11.0592 0 0 2 F4H 1200 11.0592 0 0 2 E8H 19.2K 6 1 0 2 FEH 9600 6 1 0 2 FCH 4800 6 0 0 2 FCH
41、 2400 6 0 0 2 F9H 方式 1 或方式 3 1200 6 0 0 2 F2H 7.4 串行接口的应用举例7.4.1 串行口方式串行口方式0的应用的应用7.4.2 串行口方式串行口方式1的应用的应用7.4.3 串行口方式串行口方式2和方式和方式3的应用的应用7.4.1 串行口方式串行口方式0的应用的应用 1 1将串行口作为并行输入口使用将串行口作为并行输入口使用2 2将串行口作为并行输出口使用将串行口作为并行输出口使用 串行口在方式串行口在方式0下,通过外接一个下,通过外接一个“并入串出并入串出”的的8位移位移位寄存器(位寄存器(74LS165或或CD4014),可以作为并行输入口
42、使用),可以作为并行输入口使用。例如,通过外接。例如,通过外接CD4014将将8路开关状态从串口读入单片机路开关状态从串口读入单片机的电路:的电路: 图图7-27 单片机与单片机与CD4014连接电路连接电路图7-27说明: CD4014是一个是一个8位并入位并入-串出移位寄存器,串出移位寄存器,CP为同步为同步移位脉冲输入端,移位脉冲输入端,P1P8为并行输入端,为并行输入端,Q8为串行输出为串行输出端。端。P/ 为控制端:为控制端: 若若P/ = 0,则,则CD4014为串行输出;为串行输出; 若若P/ = 1,则,则CD4014为并行输入。开关为并行输入。开关KC用于提供用于提供控制信号
43、,当控制信号,当KC闭合时,表示要求单片机读入开关量。闭合时,表示要求单片机读入开关量。 只要在程序中对只要在程序中对P1.1引脚进行查询,发现引脚进行查询,发现P1.1 = 0(即(即开关开关KC闭合),便通过闭合),便通过P1.0使使CD4014的的P/ = 1,然后,然后再启动单片机串口方式再启动单片机串口方式0接收过程,即可将接收过程,即可将CD4014并行输并行输入的开关状态通过串口输入到单片机中。入的开关状态通过串口输入到单片机中。SSSS图图7-27相应的程序:相应的程序: ORG 0500H CLRES ; 关串口中断关串口中断, 使用查询使用查询 方式控制方式控制START:
44、JB P1.1,$ ; 若若KC未闭合未闭合, 则等待则等待 SETB P1.0; 若若KC未闭合未闭合, 令令 CD4014并行输入开关量并行输入开关量 NOP; 适当延时适当延时 NOPCLR P1.0; 令令CD4014停止并行输入,停止并行输入, 准备串行输出准备串行输出 MOV SCON, #10H ; 置串口为方式置串口为方式0、RI = 0、 REN = 1、启动接收、启动接收 JNB RI, $ ; 若未接收完若未接收完, 则等待则等待 CLR RI; 接收完接收完,清清RIMOV A, SBUF ; 将开关量读入单片机的将开关量读入单片机的A中中 ; 进行开关量处理进行开关量
45、处理 SJMP START; 准备下一次读入开关量准备下一次读入开关量END 串行口在方式串行口在方式0下,通过外接一下,通过外接一个个“串入并出串入并出”的的8位移位寄存器位移位寄存器74LS164(或(或CD4094),可以作为),可以作为并行输出口使用。并行输出口使用。 例如,可以将应用项目中的例如,可以将应用项目中的LED显示电路改为使用串行口来驱动。显示电路改为使用串行口来驱动。【项目应用】将应用项目中单片机通过8155与LED数码管连接的接口电路,改为使用串行口与LED数码管连接。(1)硬件电路:)硬件电路:串行口与串行口与LED的连接电路如图的连接电路如图7-28所示。所示。 图
46、图7-28 串行口与串行口与LED的连接电路的连接电路图7-28工作原理 8031单片机串行口工作于方式单片机串行口工作于方式0,作为移位寄存器,作为移位寄存器,RXD用于输出字形码(段码),用于输出字形码(段码),TXD用于输出移位脉冲。用于输出移位脉冲。 74LS164为为8位并行输出串行移位寄存器,位并行输出串行移位寄存器,TXD每输入每输入一个移位脉冲,一个移位脉冲,74LS164便按便按QAQH的次序移位一次,的次序移位一次,8个移位脉冲过后,个移位脉冲过后,RXD输出的输出的8位二进制数便全部移入一位二进制数便全部移入一片片74LS164中,并从中,并从QAQH引脚并行输出至引脚并
47、行输出至LED的的dpa引脚。由于后级引脚。由于后级74LS164的输入端与前级的输入端与前级74LS164的的QH相相连,连,6片片74LS164首尾相串,因此,当首尾相串,因此,当6组(每组组(每组8个)移位个)移位脉冲过后,从脉冲过后,从RXD输出的输出的6个字形码(对应时、分、秒的个字形码(对应时、分、秒的数值)便会从左到右送入数值)便会从左到右送入6片片74LS164,再并行输出到,再并行输出到LED5LDE0,从而显示出实时时间。,从而显示出实时时间。 (2)应用程序 程序所用到的内部程序所用到的内部RAM数据存储单元如下。数据存储单元如下。27H:秒计数单元:秒计数单元 28H:
48、分计数单元:分计数单元29H:时计数单元:时计数单元 4AH4FH:显示缓冲区:显示缓冲区 源程序源程序DISP:CLRES ; 关串口中断,使用查询方式控制关串口中断,使用查询方式控制 MOVSCON, #00H ; 置串口为方式置串口为方式0 MOVR0, #4FH; 准备向缓冲区放数准备向缓冲区放数 MOVA, 27H; 取秒值取秒值 ACALL PUTT; 放秒值放秒值 MOVA, 28H; 取分值取分值 ACALL PUTT; 放分值放分值 MOVA, 29H; 取小时值取小时值 ACALL PUTT; 放小时值放小时值 MOVR0, #4FH; 指向显示缓冲区低字节(秒单元)指向显
49、示缓冲区低字节(秒单元) MOVR2, #06H; 共显示共显示6位字符位字符 MOVDPTR, #SEGTAB; 指向字形码表首指向字形码表首DISP1:MOVA, R0; 取出要显示的数取出要显示的数 源程序源程序DISP1:MOVA, R0; 取出要显示的数取出要显示的数 MOVC A, A+DPTR; 查表,获得字形码查表,获得字形码 MOVSBUF, A; 字形码送串口输出字形码送串口输出WAIT:JNBTI, $; 等待发送完一帧等待发送完一帧 CLRTI; 发送完,清发送完,清TI DECR0; 准备取下一个要显示的数准备取下一个要显示的数 DJNZR2, DISP1; 6位数未
50、显示完,继续位数未显示完,继续 RET; 显示完显示完6位,返回位,返回PUTT:MOVR1 , A; 暂存暂存 ACALL PUTT0; 低低4位先放入缓冲区位先放入缓冲区 MOVA, R1; 取出原数取出原数 SWAP A; 高高4位放入低位放入低4位中位中PUTT0:ANLA, #0FH; 屏蔽高屏蔽高4位位 MOVR0, A; 放进显示缓冲区放进显示缓冲区 DECR0 ; 缓冲区地址指针减缓冲区地址指针减1 RET; 字形码表:字形码表:SEGTAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H DB 0F8H,80FH,90H 串行口工作在方式串行口工作在方式
51、1时为时为10位异步通位异步通信口。除去信口。除去1位起始位和位起始位和1位停止位,有效位停止位,有效的数据为的数据为8位。这种方式通常应用于点对位。这种方式通常应用于点对点的双机通信中,实现单片机和单片机或点的双机通信中,实现单片机和单片机或单片机与通用微机之间的信息交换。单片机与通用微机之间的信息交换。 下面以单片机的下面以单片机的双机通信双机通信为例,介绍为例,介绍串行口在方式串行口在方式1中的应用。中的应用。1硬件连接 当进行通信的两台单片机距离很近时,它们的串当进行通信的两台单片机距离很近时,它们的串行口之间可直接连接,如图行口之间可直接连接,如图7-29 所示。所示。图图7-29
52、短距离双机通信的硬件连接短距离双机通信的硬件连接1硬件连接 当进行通信的两台单片机距离较远(当进行通信的两台单片机距离较远(5m15m)时,两)时,两台单片机之间则不宜直接连接。此时,通常采用台单片机之间则不宜直接连接。此时,通常采用RS-232C接接口进行点对点的通信连接,如图口进行点对点的通信连接,如图7-30所示。所示。图图7-30 长距离(长距离(5m15m)双机通信的硬件连接)双机通信的硬件连接2通信协议 1号机是发送方,号机是发送方,2号机是接收方。号机是接收方。1号机发送时,先发送一个号机发送时,先发送一个“E1”联络信号,联络信号,2号机号机收到后回答一个收到后回答一个“E2”
53、应答信号,表示同意接收。应答信号,表示同意接收。1号机收到应答信号号机收到应答信号“E2”后,开始发送数据,每发后,开始发送数据,每发送一个数据字节都要计算送一个数据字节都要计算“校验和校验和”。假定数据块长度为假定数据块长度为16个字节,起始地址为个字节,起始地址为40H,一,一个数据块发送完毕后立即发送个数据块发送完毕后立即发送“校验和校验和”。 2号机接收数据并转存到数据缓冲区,起始地址也号机接收数据并转存到数据缓冲区,起始地址也为为40H,每接收到一个数据字节便计算一次,每接收到一个数据字节便计算一次“校验和校验和”。当接收完一个数据块后,再接收。当接收完一个数据块后,再接收1号机发来
54、的号机发来的“校验和校验和”,并将它与本机求出的校验和进行比较。,并将它与本机求出的校验和进行比较。2通信协议若校验和进行比较时,两者相等,说明接收正若校验和进行比较时,两者相等,说明接收正确,确,2号机回答号机回答00H;若两者不相等,说明接收;若两者不相等,说明接收不正确,不正确,2号机回答号机回答FFH,请求重发。,请求重发。1号机接到号机接到00H后结束发送。若收到的答复不是后结束发送。若收到的答复不是00H,则重,则重新发送数据一次。新发送数据一次。双方约定采用串行口方式双方约定采用串行口方式1进行通信,波特率进行通信,波特率为为2400波特。波特。 T1工作在定时器方式工作在定时器
55、方式2,晶体振荡器频率选用,晶体振荡器频率选用11.0592MHz,PCON寄存器的寄存器的SMOD位为位为0,通,通过计算或查表过计算或查表7-3,可得定时器,可得定时器T1的初值为的初值为(TH1)=(TL1)= 0F4H。3程序流程图 (1号机) 图图7-31 单片机双机通信的程序流程图单片机双机通信的程序流程图 (a)3程序流程图(2号机) 图图7-31 单片机双机通信的程序流程图单片机双机通信的程序流程图 (b)4应用程序(1号机源程序)ASTART:CLRES ; 关串口中断,使用查询方式控制收发关串口中断,使用查询方式控制收发 MOVTMOD, #20H ; 置定时器置定时器T1
56、为方式为方式2 MOVTH1, #0F4H ; 装载定时初值装载定时初值, 波特率为波特率为2 400 MOVTL1, #0F4H MOVPCON, #00H ; 置置SMOD=0 SETBTR1; 启动定时器启动定时器T1 MOVSCON, #50H ; 置串口为方式置串口为方式1, 允许接收允许接收, 清清TI、RIALOOP1:MOV SBUF, #0E1H ; 发联络信号发联络信号 JNBTI, $ ; 等待一帧发完等待一帧发完 CLRTI ; 发完清发完清TI, 允许再发允许再发 JNBRI, $ ; 等待等待2号机的应答信号号机的应答信号 CLRRI ; 收到应答收到应答, 清清R
57、I, 允许再接收允许再接收 MOVA, SBUF; 读读2号机应答信号至号机应答信号至A XRLA, #0E2H; 判断判断2号机是否准备完毕号机是否准备完毕 JNZALOOP1 ; 2号机未准备好号机未准备好, 继续联络继续联络 4应用程序(1号机源程序)ALOOP2:MOV R0, #40H; 2号机准备好号机准备好, 设定数据块指针初值设定数据块指针初值 MOVR7, #10H; 设定数据块长度设定数据块长度 MOVR6, #00H ; 校验和单元清校验和单元清0ALOOP3:MOV SBUF, R0; 发送一个字节数据发送一个字节数据 MOVA, R6; 取出校验和取出校验和 ADDA
58、, R0 ; 求校验和求校验和 MOVR6, A ; 保存校验和保存校验和 INCR0; 数据块指针加数据块指针加1 JNBTI, $ ; 等待一帧发完等待一帧发完 CLRTI ; 一帧发完,清一帧发完,清TI, 允许再发允许再发 DJNZR7, ALOOP3 ; 整个数据块是否发送完毕整个数据块是否发送完毕 MOVSBUF, R6 ; 发送校验和发送校验和 JNBTI, $ CLRTI ; 发完,清发完,清TI JNBRI, $ ; 等待等待2号机的应答信号号机的应答信号 CLRRI ; 收到应答,清收到应答,清TI MOVA, SBUF; 读读2号机应答信号至号机应答信号至A JNZALO
59、OP2 ; 2号机应答号机应答“错误错误”, 转重新发送转重新发送 RET; 2号机应答号机应答“正确正确”, 返回主程序返回主程序4应用程序(2号机源程序)BSTART:CLRES; 关串口中断,使用查询方式控制收发关串口中断,使用查询方式控制收发 MOVTMOD, #20H; 置定时器置定时器T1为方式为方式2 MOVTH1, #0F4H; 装载定时初值,波特率为装载定时初值,波特率为2400 MOVTL1, #0F4H MOVPCON, #00H ; 置置SMOD = 0 SETBTR1; 启动定时器启动定时器T1 MOVSCON, #50H ; 置串口为方式置串口为方式1,允许接收,清
60、,允许接收,清T1、RIBLOOP1:JNBRI, $; 等待等待1号机的联络信号号机的联络信号 CLRRI; 收到收到1号机联络信号号机联络信号, 清清RI MOVA, SBUF ; 读读1号机联络信号到号机联络信号到A XRLA, #0E1H ; 判断是否为判断是否为1号机联络信号号机联络信号 JNZBLOOP1 ; 不是不是1号机联络信号号机联络信号, 再等待再等待 MOVSBUF, #0E2H ; 是是1号机联络信号号机联络信号, 发应答信号发应答信号 BLOOP2:JNB TI, $ CLRTI ; 发完,清发完,清TI MOVR0, #40H ; 准备接收数据准备接收数据, 设定数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江苏理工学院《基础俄语二》2023-2024学年第二学期期末试卷
- 淮阴师范学院《魏晋玄学》2023-2024学年第二学期期末试卷
- 四川音乐学院《城市建设与工程地质》2023-2024学年第二学期期末试卷
- 医疗器械销售服务合同书
- 快递公司授权合同
- 合作投资经营合同
- 出口贸易交易磋商订立合同阶段
- 设备借用合同
- 主持人劳务协议合同
- 代工生产合作合同协议
- 江苏省2024年中职职教高考文化统考英语试卷
- 五金材料采购投标方案(技术方案)
- 疼痛的中医护理
- 2024年许昌职业技术学院单招职业技能测试题库及答案解析
- 中国能源建设集团投资有限公司社会招聘考试试题及答案
- 【地理】2023-2024学年人教版地理七年级下册 期中区域复习课件
- 向世界介绍悠久灿烂的中华传统文化-统编三下第三单元整体设计教案
- 人教版七年级数学下册 第七章 平面直角坐标系小结与复习(课件)
- WizdomCloudUrban-EP-RM-013-市政综合监管平台用户操作手册
- 安琪酵母生产工艺
- 2024近零碳园区建设路径研究报告
评论
0/150
提交评论