版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 串行通信只用一位数据线传送数据的位信号,即使加上几串行通信只用一位数据线传送数据的位信号,即使加上几条通信联络控制线,也用不了很多电缆线。因此,串行通条通信联络控制线,也用不了很多电缆线。因此,串行通信适合远距离数据传送,如大型主机与其远程终端之间、信适合远距离数据传送,如大型主机与其远程终端之间、处于两地的计算机之间采用串行通信就非常经济。当然,处于两地的计算机之间采用串行通信就非常经济。当然,串行通信要求有转换数据格式、时间控制等逻辑电路,这串行通信要求有转换数据格式、时间控制等逻辑电路,这些电路目前已被集成在大规模集成电路中(称为可编程串些电路目前已被集成在大规模集成电路中(称为可编程
2、串行通信控制器),使用很方便。行通信控制器),使用很方便。 本章将介绍本章将介绍89C51串行口的结构及应用,串行口的结构及应用,PC机与机与89C51间的双机通信,一台间的双机通信,一台PC机控制多台机控制多台89C51前沿机的分布前沿机的分布式系统,以及通信接口电路和软件设计,并给出设计实例,式系统,以及通信接口电路和软件设计,并给出设计实例,包括接口电路、程序框图、主程序和接收包括接口电路、程序框图、主程序和接收/发送子程序。发送子程序。7.1 串行通信基本知识串行通信基本知识7.2 串行口及应用串行口及应用7.3 RS-232C标准接口总线及串行通信硬件设计标准接口总线及串行通信硬件设
3、计7.4 89C51与与89C51点对点异步通信点对点异步通信7.5 89C51与与PC机间通信软件的设计机间通信软件的设计7.6 PC机与多个单片机间的通信机与多个单片机间的通信7.7 思考题与习题思考题与习题返回7.1.1 数据通信数据通信7.1.2 串行通信的传输方式串行通信的传输方式7.1.3 异步通信和同步通信异步通信和同步通信7.1.4 串行通信的过程及通信协议串行通信的过程及通信协议返回 在实际工作中,计算机的在实际工作中,计算机的CPU与外部设备之间常常要进与外部设备之间常常要进行信息交换,一台计算机与其他计算机之间也往往要交行信息交换,一台计算机与其他计算机之间也往往要交换信
4、息,所有这些信息交换均可称为通信。换信息,所有这些信息交换均可称为通信。 通信方式有两种,即并行通信和串行通信。通信方式有两种,即并行通信和串行通信。 通常根据信息传送的距离决定采用哪种通信方式。通常根据信息传送的距离决定采用哪种通信方式。 例如,在例如,在IBM-PC机与外部设备(如打印机等)通信时,机与外部设备(如打印机等)通信时,如果距离小于如果距离小于30m,可采用并行通信方式;当距离大于,可采用并行通信方式;当距离大于30m时,则要采用串行通信方式。时,则要采用串行通信方式。89C51单片机具有并单片机具有并行和串行二种基本通信方式。行和串行二种基本通信方式。返回 并行通信是指数据的
5、各位同时进行传送(发送或接收)的并行通信是指数据的各位同时进行传送(发送或接收)的通信方式。通信方式。 其优点是传送速度快;其优点是传送速度快; 缺点是数据有多少位,就需要多少根传送线。缺点是数据有多少位,就需要多少根传送线。 例如,例如,89C51单片机与打印机之间的数据传送就属于并行单片机与打印机之间的数据传送就属于并行通信。通信。 图图7-1(a)所示为)所示为89C51与外设间与外设间8位数据并行通信的连位数据并行通信的连接方法。并行通信在位数多、传送距离又远时就不太合适接方法。并行通信在位数多、传送距离又远时就不太合适了。了。返回 串行通信指数据是一位一位按顺序传送的通信方式。串行通
6、信指数据是一位一位按顺序传送的通信方式。 它的突出优点是只需一对传输线(利用电话线就可作为传它的突出优点是只需一对传输线(利用电话线就可作为传输线),这样就大大降低了传送成本,特别适用于远距离输线),这样就大大降低了传送成本,特别适用于远距离通信;通信; 其缺点是传送速度较低。假设并行传送其缺点是传送速度较低。假设并行传送N位数据所需时间位数据所需时间位位T,那么串行传送的时间至少为,那么串行传送的时间至少为NT,实际上总是大于实际上总是大于NT的。的。 图图7-1(b)所示为串行通信方式的连接方法。)所示为串行通信方式的连接方法。返回返回串行通信的传送方向通常有三种:串行通信的传送方向通常有
7、三种:p 单向(或单工)配置,只允许数据向一个方向传送;单向(或单工)配置,只允许数据向一个方向传送;p 半双向(或半双工)配置,允许数据向两个方向中的半双向(或半双工)配置,允许数据向两个方向中的任一方向传送,但每次只能有一个站点发送;任一方向传送,但每次只能有一个站点发送;p 全双向(全双工)配置,允许同时双向传送数据,因全双向(全双工)配置,允许同时双向传送数据,因此,全双工配置是一对单向配置,它要求两端的通信此,全双工配置是一对单向配置,它要求两端的通信设备都具有完整和独立的发送和接受能力。设备都具有完整和独立的发送和接受能力。1.图图7-2所示为串行通信中的数据传送方式。所示为串行通
8、信中的数据传送方式。返回返回 串行通信有两种基本通信方式,即异步通信和同步通信。串行通信有两种基本通信方式,即异步通信和同步通信。1、异步通信、异步通信 返回返回 甲 机 乙 机 甲机时钟 乙机时钟 串行异步方式 1、异步通信、异步通信 在异步通信中,数据是一帧一帧(包括一个字符代码或在异步通信中,数据是一帧一帧(包括一个字符代码或一字节数据)传送的,每一帧的数据格式如图一字节数据)传送的,每一帧的数据格式如图7-3所示所示返回返回 在帧格式中,一个字符由四个部分组成:起始位、数据位、在帧格式中,一个字符由四个部分组成:起始位、数据位、奇偶校验位和停止位。首先是一个起始为(奇偶校验位和停止位。
9、首先是一个起始为(0),然后是),然后是5位位-8位数据(规定低位在前,高位在后),接下来是奇位数据(规定低位在前,高位在后),接下来是奇偶校验位(可省略),最后是停止位(偶校验位(可省略),最后是停止位(1)。)。返回图图7-3(a)表示一个字符紧接一个字符传送的情况,上一个字符的停止位和)表示一个字符紧接一个字符传送的情况,上一个字符的停止位和下一个字符的起始位是紧邻的;下一个字符的起始位是紧邻的;图图7-3(b)则是两个字符间有空闲位的情况,空闲位为)则是两个字符间有空闲位的情况,空闲位为1,线路处于等待状态。,线路处于等待状态。存在空闲位正是异步通信的特征之一。存在空闲位正是异步通信的
10、特征之一。 例如,规定用例如,规定用ASCII编码,字符为七位,加一个奇偶校验位、一个起始位、编码,字符为七位,加一个奇偶校验位、一个起始位、一个停止位,则一帧共十位。一个停止位,则一帧共十位。返回 同步通信中,由时钟来实现发送端和接收同步通信中,由时钟来实现发送端和接收端同步,。端同步,。 同步传送时,字符与字符之间没有间隙,同步传送时,字符与字符之间没有间隙,也不用起始位和停止位,仅在数据块开始也不用起始位和停止位,仅在数据块开始时用同步字符时用同步字符SYNC来指示,其数据格式如来指示,其数据格式如图图7-4所示。所示。返回返回 波特率,即数据传送速率,表示波特率,即数据传送速率,表示每
11、秒钟传送二进制代码的每秒钟传送二进制代码的位数位数,它的单位是,它的单位是b/s。 波特率对于波特率对于CPU与外界的通信是很重要的。与外界的通信是很重要的。 假设数据传送速率是假设数据传送速率是120字符字符/s,而每个字符格式包含,而每个字符格式包含10个代码位(个代码位(1个起始位、个起始位、1个终止位、个终止位、8个数据位)。这时,个数据位)。这时,传送的波特率为:传送的波特率为: 10b字符字符120字符字符s1200bs返回 每一位代码的传送时间每一位代码的传送时间Td为波特率的倒数。为波特率的倒数。 Td1b(1200b/s)0.833ms 异步通信的传送速率在异步通信的传送速率
12、在50b/s-19200b/s之间,常用于计之间,常用于计算机到终端机和打印机之间的通信、直通电报以及无线电算机到终端机和打印机之间的通信、直通电报以及无线电通信的数据发送等。通信的数据发送等。返回1、串、串并转换与设备同步并转换与设备同步 两个通信设备在串行线路上成功地实现通两个通信设备在串行线路上成功地实现通信必须解决两个问题:信必须解决两个问题: 一是串一是串并转换,即如何把要发送的并行数并转换,即如何把要发送的并行数据串行化,把接收的串行数据并行化;据串行化,把接收的串行数据并行化; 二是设备同步,即同步发送设备与接收设备的二是设备同步,即同步发送设备与接收设备的工作节拍,以确保发送数
13、据在接收端被正确读工作节拍,以确保发送数据在接收端被正确读出。出。返回(1)串)串并转换并转换 串行通信是将计算机内部的并行数据转换串行通信是将计算机内部的并行数据转换成串行数据,将其通过一根通信线传送;成串行数据,将其通过一根通信线传送;并将接收的串行数据再转换成并行数据送并将接收的串行数据再转换成并行数据送到计算机中。到计算机中。返回 在计算机串行在计算机串行发送发送数据之前,计算机内部的并行数据之前,计算机内部的并行数据被送入移位寄存器并一位一位地输出,将数据被送入移位寄存器并一位一位地输出,将并并行数据转换成串行数据行数据转换成串行数据。如图。如图7-5所示。所示。 在在接收接收数据时
14、,来自通信线路的数据时,来自通信线路的串行数据串行数据被压入被压入移位寄存器,满移位寄存器,满8位后位后并行并行送到计算机内部。送到计算机内部。 如如图图7-6所示。所示。 在串行通信控制电路中,串在串行通信控制电路中,串-并、并并、并-串转换逻辑串转换逻辑被集成在串行异步通信控制器芯片中。被集成在串行异步通信控制器芯片中。89C51单单片机的串行口和片机的串行口和PC中的中的8250都可实现这一功都可实现这一功能。能。返回返回返回 进行串行通信的两台设备必须同步工作才进行串行通信的两台设备必须同步工作才能有效地检测通信线路上的信号变化,从能有效地检测通信线路上的信号变化,从而采样传送数据脉冲
15、。而采样传送数据脉冲。 设备同步对通信双方有两个共同要求:设备同步对通信双方有两个共同要求:一是通信双方必须采用统一的编码方法;一是通信双方必须采用统一的编码方法;二是通信双方必须能产生相同的传送速率。二是通信双方必须能产生相同的传送速率。返回 采用统一的编码方法确定了一个字符二进制表示采用统一的编码方法确定了一个字符二进制表示值的位发送顺序和位串长度,当然还包括统一的值的位发送顺序和位串长度,当然还包括统一的逻辑电平规定,即电平信号高低与逻辑逻辑电平规定,即电平信号高低与逻辑1和逻辑和逻辑0的固定对应关系。的固定对应关系。 通信双方只有产生相同的传送速率,才能确保通信双方只有产生相同的传送速
16、率,才能确保设备同步,这就要求发送设备和接收设备采用相设备同步,这就要求发送设备和接收设备采用相同频率的时钟。发送设备在统一的时钟脉冲上发同频率的时钟。发送设备在统一的时钟脉冲上发出数据,接收设备才能正确检测出与时钟脉冲同出数据,接收设备才能正确检测出与时钟脉冲同步的数据信息。步的数据信息。返回 通信协议是对数据传送方式的规定,包括数据格通信协议是对数据传送方式的规定,包括数据格式定义和数据位定义等。式定义和数据位定义等。 通信双方必须遵守统一的通信协议。串行通信协通信双方必须遵守统一的通信协议。串行通信协议包括同步协议和异步协议两种。议包括同步协议和异步协议两种。 在此在此只讨论异步串行通信
17、协议和异步串性协议规只讨论异步串行通信协议和异步串性协议规定的字符数据的传送格式定的字符数据的传送格式。返回(1)起始位)起始位 通信线上没有数据被传送时处于逻辑通信线上没有数据被传送时处于逻辑1状态。状态。 当发送设备要发送一个字符数据时,首先发出一个逻辑当发送设备要发送一个字符数据时,首先发出一个逻辑0信号,这个逻辑低电平就是起始位。信号,这个逻辑低电平就是起始位。 起始位通过通信线传向接收设备,接收设备检测到这个起始位通过通信线传向接收设备,接收设备检测到这个逻辑低电平后,就开始准备接收数据位信号。逻辑低电平后,就开始准备接收数据位信号。 起始位所起的作用就是设备同步,通信双方必须在传送
18、起始位所起的作用就是设备同步,通信双方必须在传送数据位前协调同步。数据位前协调同步。返回(2)数据位)数据位 当接收设备收到起始位后,紧接着就会收到数据位。数当接收设备收到起始位后,紧接着就会收到数据位。数据位的个数可以是据位的个数可以是5、6、7或或8。IBM-PC中经常采用中经常采用7位位或或8位数据传送,位数据传送,89C51串行口采用串行口采用8位或位或9位数据传送位数据传送。这些数据位被接收到移位寄存器中,构成传送数据字符。这些数据位被接收到移位寄存器中,构成传送数据字符。在字符数据传送过程中,在字符数据传送过程中,数据位从最低有效位开始发送数据位从最低有效位开始发送,依次顺序在接收
19、设备中被转换为并行数据。依次顺序在接收设备中被转换为并行数据。返回(3)奇偶校验位)奇偶校验位 数据位发送完之后,可以发送奇偶校验位。奇偶校验用数据位发送完之后,可以发送奇偶校验位。奇偶校验用于有限差错检测,通信双方需约定已知的奇偶校验方式。于有限差错检测,通信双方需约定已知的奇偶校验方式。如果选择偶校验,那么组成数据位和奇偶位的逻辑如果选择偶校验,那么组成数据位和奇偶位的逻辑1的个的个数必须是偶数;如果选择奇校验,那么逻辑数必须是偶数;如果选择奇校验,那么逻辑1的个数必须的个数必须是奇数。是奇数。返回(4)停止位约定)停止位约定 在奇偶位或数据位(当无奇偶校验时)之后发送的是停在奇偶位或数据
20、位(当无奇偶校验时)之后发送的是停止位。停止位是一个字符数据的结束标志,可以是止位。停止位是一个字符数据的结束标志,可以是1位,位,1.5位或位或2位的高电平。接收设备收到停止位之后,通信线位的高电平。接收设备收到停止位之后,通信线路上便又恢复逻辑路上便又恢复逻辑1状态,直至下一个字符数据的起始位状态,直至下一个字符数据的起始位到来。到来。返回(5)波特率设置)波特率设置 通信线上传送的所有位信号都保持一致的信号持续时间,通信线上传送的所有位信号都保持一致的信号持续时间,每一位的信号持续时间都由数据传送速度确定,而传送速每一位的信号持续时间都由数据传送速度确定,而传送速度是以每秒多少个二进制位
21、来衡量的,这个速度叫波特率。度是以每秒多少个二进制位来衡量的,这个速度叫波特率。如果数据以如果数据以300个二进制位每秒在通信线上传送,那么传个二进制位每秒在通信线上传送,那么传送速度为送速度为300波特,通常记为波特,通常记为300b/s。返回(6)挂钩(握手)信号约定)挂钩(握手)信号约定 (见本章(见本章7.4节实例)节实例)返回 89C51单片机除具有单片机除具有4个个8位并行口外,还具有串行接口。位并行口外,还具有串行接口。此串行接口是一个此串行接口是一个全双工串行通信接口全双工串行通信接口,即能同时进行串行发送和接,即能同时进行串行发送和接收数据。收数据。它可以作它可以作UART(
22、通用异步接收和发送器)(通用异步接收和发送器)用,也可以作用,也可以作同步移位寄存同步移位寄存器器用。用。使用串行接口可以实现使用串行接口可以实现89C51单片机系统之间单片机系统之间点对点的单机通信点对点的单机通信和和89C51与系统机(如与系统机(如IBM-PC机等)的机等)的单机或多机通信单机或多机通信。返回 7.2.1 89C51串行口串行口 7.2.2 89C51串行口的工作方式及应用串行口的工作方式及应用返回1、结、结 构构2、串行口控制字及控制寄存器、串行口控制字及控制寄存器3、串行通信工作方式、串行通信工作方式4、波特率设计、波特率设计返回 89C5189C51通过引脚通过引脚
23、RXDRXD(P3.0P3.0,串行数据接收端)和引脚,串行数据接收端)和引脚TXDTXD(P3.1P3.1,串行数据发送端)与外界进行通信。其内部结构简化示意图如图串行数据发送端)与外界进行通信。其内部结构简化示意图如图7-77-7所示。图中所示。图中有两个物理有两个物理独立独立的接收、发送缓冲器的接收、发送缓冲器SBUFSBUF,它们占用同,它们占用同一地址一地址99H99H,可同时发送、接收数据,可同时发送、接收数据。发送缓冲器只能写入,不能读。发送缓冲器只能写入,不能读出;接收缓冲器只能读出,不能写入。出;接收缓冲器只能读出,不能写入。串行发送与接收的速率与移位时钟同步。串行发送与接收
24、的速率与移位时钟同步。89C5189C51用定时器用定时器T1T1作为串作为串行通信的波特率发生器,行通信的波特率发生器,T1T1溢出率经溢出率经2 2分频(或不分频)后又经分频(或不分频)后又经1616分分频作为串行发送或接收的移位脉冲。移位脉冲的速率即是波特率。频作为串行发送或接收的移位脉冲。移位脉冲的速率即是波特率。返回图图7-7 串行口内部结构示意简图串行口内部结构示意简图返回从图中可看出,接收器是双缓冲结构,在前一个字节被从接收缓冲器从图中可看出,接收器是双缓冲结构,在前一个字节被从接收缓冲器SBUF读出之前,第二个字节即开始被接收(串行输入至移位寄存器),但是,读出之前,第二个字节
25、即开始被接收(串行输入至移位寄存器),但是,在第二个字节接收完毕而前一个字节在第二个字节接收完毕而前一个字节CPU未读取时,会丢失前一个字节。未读取时,会丢失前一个字节。串行口的发送和接收都是以特殊功能寄存器串行口的发送和接收都是以特殊功能寄存器SBUF的名义进行读或写的。当的名义进行读或写的。当向向SBUF发发“写写”命令时(执行命令时(执行“MOV SBUF,A”指令),即是向发送缓冲指令),即是向发送缓冲器器SBUF装载并开始由装载并开始由TXD引脚向外发送一帧数据,发送完便使发送中断标引脚向外发送一帧数据,发送完便使发送中断标志位志位TI=1。在满足串行口接收中断标志位在满足串行口接收
26、中断标志位RI(SCON.0)=0的条件下,置允许接收位的条件下,置允许接收位REN(SCON.4)=1就会接收一帧数据进入移位寄存器,并装载到接收就会接收一帧数据进入移位寄存器,并装载到接收SBUF中,同时使中,同时使RI=1。当发读。当发读SBUF命令时(执行命令时(执行“MOV A,SBUF”命命令),便由接收缓冲器(令),便由接收缓冲器(SBUF)取出信息通过)取出信息通过89C51内部总线送内部总线送CPU。 对于发送缓冲器,因为发送时对于发送缓冲器,因为发送时CPU是主动的,不会产生重叠错误,一般是主动的,不会产生重叠错误,一般不需要用双缓冲器结构来保持最大传送速率。不需要用双缓冲
27、器结构来保持最大传送速率。返回 89C51串行口是可编程接口,对它初始化编程只用两个控制字分别写入特殊功串行口是可编程接口,对它初始化编程只用两个控制字分别写入特殊功能寄存器能寄存器SCON(98H)和电源控制寄存器)和电源控制寄存器PCON(87H)中即可。)中即可。(1)SCON(98H) 89C51串行通信的方式选择、接收和发送控制以及串行口的状态标串行通信的方式选择、接收和发送控制以及串行口的状态标志等均由特殊功能寄存器志等均由特殊功能寄存器SCON控制和指示,其控制字格式如图控制和指示,其控制字格式如图7-8所所示。示。返回图图7-8 串行口控制寄存器串行口控制寄存器SCON返回 S
28、M0SM0和和SM1SM1(SCON.7SCON.7,SCON.6SCON.6)串行口工作方串行口工作方式选择位。两个选择位对应式选择位。两个选择位对应4 4种通信方式,如表种通信方式,如表7-17-1所示。所示。其中,其中,foscfosc是振荡频率。是振荡频率。返回SM2(SCON.5)多机通信控制位,主要用于方式多机通信控制位,主要用于方式2和方式和方式3。若置若置SM2=1,则允许多机通信。当一片,则允许多机通信。当一片89C51(主机)与多片(主机)与多片89C51(从机)通(从机)通信时,所有从机的信时,所有从机的SM2位都置位都置1。主机首先发送的一帧数据为地址,即从机机号,。主
29、机首先发送的一帧数据为地址,即从机机号,其中第其中第9位为位为1,所有的从机接收到数据后,将其中第,所有的从机接收到数据后,将其中第9位装入位装入RB8中。中。各个从机根据收到的第各个从机根据收到的第9位数据(位数据(RB8中)的值来决定从机可否再接收主机的信中)的值来决定从机可否再接收主机的信息。若(息。若(RB8)0,说明是数据帧,则使接收中断标志位,说明是数据帧,则使接收中断标志位RI0,信息丢失;若,信息丢失;若(RB8)1,说明是地址帧,数据装入,说明是地址帧,数据装入SBUF并置并置RI1,中断所有从机,被寻,中断所有从机,被寻址的目标从机清除址的目标从机清除SM2以接收主机发来的
30、一帧数据。其他从机仍然保持以接收主机发来的一帧数据。其他从机仍然保持SM21。若若SM2=0,即不属于多机通信情况即不属于多机通信情况,则接收一贞数据后则接收一贞数据后,不管第九位数据是不管第九位数据是0还是还是1,都都制制RI=1,接收到的数据装入接收到的数据装入SBUF。根据根据SM2这个功能这个功能,可实现多个可实现多个89C51应用系统的串行通信。应用系统的串行通信。在方式在方式1时时,若若SM2=1,则只有接收到有效停止位时则只有接收到有效停止位时,RI才制才制1,以便接收下一贞数据。以便接收下一贞数据。在方式在方式0时时,SM2必须是必须是0。返回REN(SCON.4)允许接收控制
31、位。由软件置允许接收控制位。由软件置1或清或清0,只有当,只有当REN1时才允许接收,相当于串行接收的开关;若时才允许接收,相当于串行接收的开关;若REN0,则禁,则禁止接收。止接收。 在串行通信接收控制过程中,如果满足在串行通信接收控制过程中,如果满足RI0和和REN1(允许接收)(允许接收)的条件,就允许接收,一帧数据就装载入接收的条件,就允许接收,一帧数据就装载入接收SBUF中。中。TB8(SCON.3)发送数据的第发送数据的第9位(位(D8)装入)装入TB8中。在方式中。在方式2或方式或方式3中,根据发送数据的需要由软件置位或复位。在许多通信协中,根据发送数据的需要由软件置位或复位。在
32、许多通信协议中可用作奇偶校验位,也可在多机通信中作为发送地址帧或数据帧议中可用作奇偶校验位,也可在多机通信中作为发送地址帧或数据帧的标志位。对于后者,的标志位。对于后者,TB81,说明该帧数据为地址;,说明该帧数据为地址;TB80,说,说明该帧数据为数据字节。在方式明该帧数据为数据字节。在方式0或方式或方式1中,该为未用。中,该为未用。返回RB8(SCON.2)接收数据的第接收数据的第9位。在方式位。在方式2或方式或方式3中,接收到中,接收到的第的第9位数据放在位数据放在RB8位。它或是约定的奇位。它或是约定的奇/偶校验位,或是约定的地偶校验位,或是约定的地址址/数据标识位。在方式数据标识位。
33、在方式2和方式和方式3多机通信中,若多机通信中,若SM21,如果,如果RB81,说明收到的数据为地址帧。,说明收到的数据为地址帧。 在方式在方式1中,若中,若SM20(即不是多机通信情况),(即不是多机通信情况),RB8中存放的是已中存放的是已接收到的停止位。在方式接收到的停止位。在方式0中,该位未用。中,该位未用。TI(SCON.1)发送中断标志。在一帧数据发送完时被置位。在发送中断标志。在一帧数据发送完时被置位。在方式方式0串行发送第串行发送第8位结束或其他方式串行发送到停止位的开始时由硬位结束或其他方式串行发送到停止位的开始时由硬件置位,可用软件查询。它同时也申请中断,件置位,可用软件查
34、询。它同时也申请中断,TI置位意味着向置位意味着向CPU提提供供“发送缓冲器发送缓冲器SBUF已空已空”的信息,的信息,CPU可以准备发送下一帧数据。可以准备发送下一帧数据。串行口发送中断被响应后,串行口发送中断被响应后,TI不会自动清不会自动清0,必须由软件清,必须由软件清0。返回RI(SCON.0)接收中断标志。在节收到一帧有效数据后由硬件接收中断标志。在节收到一帧有效数据后由硬件置位。在方式置位。在方式0中,第中,第8位数据位数据接收接收结束时,由硬件置位;在其他三种结束时,由硬件置位;在其他三种方式中,当接收到停止位中间时由硬件置位。方式中,当接收到停止位中间时由硬件置位。RI1,申请
35、中断,表,申请中断,表示一帧数据接收结束,并已装入接收示一帧数据接收结束,并已装入接收SBUF中,要求中,要求CPU取走数据。取走数据。CPU响应中断,取走数据。响应中断,取走数据。RI也必须由软件清也必须由软件清0,清除中断申请,并,清除中断申请,并准备接收下一帧数据。准备接收下一帧数据。串行发送中断标志串行发送中断标志TI和接收中断标志和接收中断标志RI是同一个中断源,是同一个中断源,CPU事先不事先不知道是发送中断知道是发送中断TI还是接收中断还是接收中断RI产生的中断请求,所以,在全双工产生的中断请求,所以,在全双工通信时,必须由软件来判别。通信时,必须由软件来判别。 复位时,复位时,
36、SCON所有位均清所有位均清0。返回(2)PCON(87H) 电源控制寄存器电源控制寄存器PCON中只有中只有SMOD位与串行口工作有关,位与串行口工作有关,如图如图7-9所示。所示。图图7-9 电源控制寄存器电源控制寄存器PCON返回 SMOD(PCON.7)波特率倍增位。波特率倍增位。 在串行口方式在串行口方式1、方式、方式2和方式和方式3时,波特率和时,波特率和SMOD成正成正比,亦即当比,亦即当SMOD1时,波特率提高一倍。时,波特率提高一倍。 复位时,复位时,SMOD0。返回 根据实际需要,根据实际需要,89C51串行口可设置串行口可设置4种工作方式,可有种工作方式,可有8位、位、1
37、0位或位或11位帧格式。位帧格式。 方式方式0以以8位数据为一帧,不设起始位和停止位,先发送或位数据为一帧,不设起始位和停止位,先发送或接收最低位。其帧格式如下:接收最低位。其帧格式如下:返回 方式方式1以以10位为一帧传输,设有位为一帧传输,设有1个起始位(个起始位(0),),8个数个数据位和据位和1个停止位(个停止位(1)。其帧格式为:)。其帧格式为:返回 方式方式2和方式和方式3以以11位为位为1帧传输,设有帧传输,设有1个起始位(个起始位(0),),8个个数据位,数据位,1个附加第个附加第9位和位和1个停止位(个停止位(1)。其帧格式为)。其帧格式为: 附加第附加第9位(位(D8)由软
38、件置)由软件置1或清或清0。发送时在。发送时在TB8中,接收时中,接收时送送RB8中。中。返回(1)串行口方式)串行口方式0 方式方式0为同步移位寄存器输入为同步移位寄存器输入/输出方式,常用于输出方式,常用于扩展扩展I/O口。口。 串行数据通过串行数据通过RXD输入或输出,而输入或输出,而TXD用于输出用于输出移位时钟,作为外接部件的同步信号。移位时钟,作为外接部件的同步信号。图图7-10(a)为发送电路,为发送电路,图图7-11(a)为接收电为接收电路。路。 这种方式不适用于两个这种方式不适用于两个89C51之间的直接数据通之间的直接数据通信,但可以通过外接移位寄存器来实现单片机的信,但可
39、以通过外接移位寄存器来实现单片机的接口扩展。接口扩展。返回图图7-10 方式方式0发送电路及时序发送电路及时序返回图图7-11 方式方式0接收电路及时序接收电路及时序返回例如,例如,74LS164可用于扩展并行输出口,可用于扩展并行输出口,74LS165可用于扩展输入口。可用于扩展输入口。 在这种方式下,收在这种方式下,收/发的数据为发的数据为8位,低位在位,低位在前,无起始位、奇偶校验位及停止位,波前,无起始位、奇偶校验位及停止位,波特率是固定的。特率是固定的。返回发送过程中,当执行一条将数据写入发送缓冲器发送过程中,当执行一条将数据写入发送缓冲器SBUF(99H)的指)的指令时,串行口把令
40、时,串行口把SBUF中中8位数据以位数据以fosc/12的波特率从的波特率从RXD(P3.0)端输出,发送完毕置中断标志端输出,发送完毕置中断标志TI=1。方式。方式0发送时序如发送时序如图图7-10(b)所所示。写示。写SBUF指令在指令在S6P1处产生一个正脉冲,在下一个机器周期的处产生一个正脉冲,在下一个机器周期的S6P2处数据的最低位输出到处数据的最低位输出到RXD(P3.0)脚上;再在下一个机器周)脚上;再在下一个机器周期的期的S3,S4,S5输出移位时钟为低电平,而在输出移位时钟为低电平,而在S6级下一个机器周期级下一个机器周期的的S1,S2为高电平,就这样讲为高电平,就这样讲8位
41、数据由低位至高位一位一位顺序通位数据由低位至高位一位一位顺序通过过RXD线输出,并在线输出,并在TXD脚上输出脚上输出fosc/12的移位时钟,在的移位时钟,在“写写SBUF”有效后的第有效后的第10个机器周期的个机器周期的S1P1将发送中断标志将发送中断标志TI置位。图置位。图中,中,74LS164是是TTL“串入并出串入并出”移位寄存器。移位寄存器。返回 接收时,用软件置接收时,用软件置REN=1(同时,(同时,RI=0),即开始接收。接收时序),即开始接收。接收时序如图如图7-11(b)所示。当使所示。当使SCON中的中的REN=1(RI=0)时,产生一个正时,产生一个正脉冲,在下一个机
42、器周期的脉冲,在下一个机器周期的S3P1S5P2,从,从TXD(P3.1)脚上输出低电脚上输出低电平的移位时钟,在此机器周期的平的移位时钟,在此机器周期的S5P2对对P3.0脚采样,并在本机器周脚采样,并在本机器周期的期的S6P2通过串行口内的输入移位寄存器将采样值移位接收;在同通过串行口内的输入移位寄存器将采样值移位接收;在同一个机器的一个机器的S6P1到下一个机器周期的到下一个机器周期的S2P2,输出移位时钟为高电平。,输出移位时钟为高电平。于是,讲述句字节从地位至高位一位一位地接收下来病状如于是,讲述句字节从地位至高位一位一位地接收下来病状如SBUF中,中,在启动接收过程(即写在启动接收
43、过程(即写SCON,清,清RI位)将位)将SCON中的中的RI清清0之后的之后的第第10个机器周期的个机器周期的S1P1,RI被置位。这一帧数据接收完毕,可进行被置位。这一帧数据接收完毕,可进行下一帧接收。图下一帧接收。图7-11(b)中,)中,74LS165是是TTL“并入串出并入串出”移位寄存移位寄存器,器,QH端为端为74LS165的串行输出端,经的串行输出端,经P3.0输入至输入至89C51。返回(2)串行口方式)串行口方式1 方式方式1真正用于串行发送或接收,为真正用于串行发送或接收,为10位通用异步接口。位通用异步接口。TXD与与RXD分别用于发送与接收数据。分别用于发送与接收数据
44、。 收发一帧数据的格式为收发一帧数据的格式为1位起始位、位起始位、8位数据位(低位在前)、位数据位(低位在前)、1位停止位,共位停止位,共10位。位。 在接收时,停止位进入在接收时,停止位进入SCON的的RB8,此方式的传送波特率可调。,此方式的传送波特率可调。 串行口方式串行口方式1的发送和接收时序如的发送和接收时序如图图7-12(a)和()和(b)所示所示返回图图7-12 方式方式1发送和接收时序发送和接收时序返回方式方式1发送时,数据从引脚发送时,数据从引脚TXD(P3.1)端输出。当执行数据写入发)端输出。当执行数据写入发送缓冲器送缓冲器SBUF的命令时,就启动了发送器开始发送。发送时
45、的定时的命令时,就启动了发送器开始发送。发送时的定时信号,也就是发送移位时钟(信号,也就是发送移位时钟(TX时钟),是由定时器时钟),是由定时器T1(见图见图7-7)送送来的溢出信号经过来的溢出信号经过16分频或分频或32分频(取决于分频(取决于SMOD的值)而得到的,的值)而得到的,TX时钟就是发送波特率。可见,方式时钟就是发送波特率。可见,方式1的波特率是可变的。发送开始的波特率是可变的。发送开始的同时,的同时,SEND变为有效,将起始位向变为有效,将起始位向TXD输出;此后每经过一个输出;此后每经过一个TX时钟周期(时钟周期(16分频计数器溢出一次为一个时钟周期分频计数器溢出一次为一个时
46、钟周期,因此因此,TX时钟频率时钟频率由波特率决定。)产生一个移位脉冲,并由由波特率决定。)产生一个移位脉冲,并由TXD输出一个数据位;输出一个数据位;8位数据位全部发送完后,置为位位数据位全部发送完后,置为位TI,并申请中断置,并申请中断置TXD为为1作为停止作为停止位,再经一个时钟周期,位,再经一个时钟周期,SEND失效。失效。返回 方式方式1接收时,数据从引脚接收时,数据从引脚RXD(P3.0)端输入。接收是在端输入。接收是在SCON寄存寄存器中器中REN位置位置1的前提下,并检测到起始位(的前提下,并检测到起始位(RXD上检测到上检测到10的跳的跳变,即起始位)而开始的。接收时,定时信
47、号有两种(如图变,即起始位)而开始的。接收时,定时信号有两种(如图7-12(b)所示):一种是接收移位时钟(所示):一种是接收移位时钟(RX时钟),它的频率和传送波特率时钟),它的频率和传送波特率相同,也是由定时器相同,也是由定时器T1的溢出信号经过的溢出信号经过16或或32分频而得到的;另一分频而得到的;另一种是位检测器采样脉冲,它的频率是种是位检测器采样脉冲,它的频率是RX时钟的时钟的16倍,亦即在一位数倍,亦即在一位数据期间有据期间有16位检测器采样脉冲,为完成检测,以位检测器采样脉冲,为完成检测,以16倍于波特率的速倍于波特率的速率对率对RXD进行采样。进行采样。返回 为了接受准确无误
48、,在正式接受数据之前,还必须判定这为了接受准确无误,在正式接受数据之前,还必须判定这个个10跳变是否是干扰引起的。为此,在这位中间(即一跳变是否是干扰引起的。为此,在这位中间(即一位时间分成位时间分成16等份,在第等份,在第7,第,第8及第及第9等份)连续对等份)连续对RXD采样三次,取其中两次相同的值进行判断。这样能较好地采样三次,取其中两次相同的值进行判断。这样能较好地消除干扰的影响。当确认是真正的起始位(消除干扰的影响。当确认是真正的起始位(0)后,就开)后,就开始接受一帧数据。当一帧数据接受完毕后,必须同时满足始接受一帧数据。当一帧数据接受完毕后,必须同时满足以下两个条件,这次接受才真
49、正有效。以下两个条件,这次接受才真正有效。返回RI=0,即上一帧数据接收完成时,即上一帧数据接收完成时,RI=1发出的中断请求已被响应,发出的中断请求已被响应,SBUF中数据已被取走。由软件使中数据已被取走。由软件使RI=0,以便提供,以便提供“接收接收SBUF已空已空”的信息。的信息。SM2=0或收到的停止位为或收到的停止位为1(方式(方式1时,停止位进入时,停止位进入RB8),则将接收),则将接收到的数据装入串行口的到的数据装入串行口的SBUF和和RB8(RB8装入停止位),并置位装入停止位),并置位RI;如果不满足,接收到的数据不能装入如果不满足,接收到的数据不能装入SBUF,这意味着该
50、帧信息将会,这意味着该帧信息将会丢失。丢失。 值得注意的是,在整个接收过程中,保证值得注意的是,在整个接收过程中,保证REN=1是一个先决条件。是一个先决条件。只有当只有当REN=1时,才能对时,才能对RXD进行检测。进行检测。返回(3)串行口方式)串行口方式2和方式和方式3 串行口工作在方式串行口工作在方式2和方式和方式3均为每帧均为每帧11位异步通信格式,由位异步通信格式,由TXD和和RXD发送与接收(两种方式操作是完全一样的,所不同的只是波特发送与接收(两种方式操作是完全一样的,所不同的只是波特率)。率)。每帧每帧11位,即位,即1位起始位,位起始位,8位数据位(低位在前),位数据位(低
51、位在前),1位可编程的第位可编程的第9数据位和数据位和1位停止位。发送时,第位停止位。发送时,第9数据位(数据位(TB8)可以设置为)可以设置为1或或0,也可将奇偶位装入也可将奇偶位装入TB8,从而进行奇偶校验;接收时,第,从而进行奇偶校验;接收时,第9数据位进数据位进入入SCON的的RB8。方式方式2和方式和方式3的发送、接收时序如的发送、接收时序如图图7-13所示。其操作与方式所示。其操作与方式1类似。类似。返回图图7-13 方式方式2、方式、方式3发送和接收时序发送和接收时序返回发送前,先根据通信协议由软件设置发送前,先根据通信协议由软件设置TB8(如作奇偶校验位或地址(如作奇偶校验位或
52、地址/数数据标志位),然后将要发送的数据写入据标志位),然后将要发送的数据写入SBUF,即可启动发送过程。,即可启动发送过程。串行口能自动把串行口能自动把TB8取出,并装入到第取出,并装入到第9位数据位的位置,再逐一发位数据位的位置,再逐一发送出去。发送完毕,使送出去。发送完毕,使TI=1。 接收时,使接收时,使SCON中的中的REN=1,允许接收。当检测到,允许接收。当检测到RXD(P3.0)端端有有10的跳变(起始位)时,开始接收的跳变(起始位)时,开始接收9位数据,送入移位寄存器位数据,送入移位寄存器(9位)。当满足位)。当满足RI=0且且SM2=0,或接收到的第,或接收到的第9位数据为
53、位数据为1时,前时,前8位数据送入位数据送入SBUF,附加的第,附加的第9位数据送入位数据送入SCON中的中的RB8,置,置RI为为1;否则,这次接收无效,也不置位否则,这次接收无效,也不置位RI。返回 在串行通信中,收发双方对发送或接收的数据速率有一定的约定,在串行通信中,收发双方对发送或接收的数据速率有一定的约定,通过软件对通过软件对89C51串行口编程可约定四种工作方式。其中,方式串行口编程可约定四种工作方式。其中,方式0和和方式方式2的波特率是固定的;而方式的波特率是固定的;而方式1和方式和方式3的波特率是可变的,由定的波特率是可变的,由定时器时器T1的溢出率来决定。的溢出率来决定。
54、串行口的四种工作方式对应着三种波特率。由于输入的移位时钟来串行口的四种工作方式对应着三种波特率。由于输入的移位时钟来源不同,因此,各种方式的波特率计算公式也不同。源不同,因此,各种方式的波特率计算公式也不同。返回(1)方式)方式0的波特率的波特率 由由图图7-14可见,方式可见,方式0时,发送或接收一位数据的移位时钟时,发送或接收一位数据的移位时钟脉冲由脉冲由S6(即第(即第6个状态周期,第个状态周期,第12个节拍)给出,即每个机个节拍)给出,即每个机器周期产生一个移位时钟,发送或接收一位数据。因此,波特器周期产生一个移位时钟,发送或接收一位数据。因此,波特率固定为振荡频率的率固定为振荡频率的
55、1/12,并不受,并不受PCON寄存器中寄存器中SMOD位的位的影响。影响。图图7-14 串行口方式串行口方式0波特率的产生波特率的产生返回方式方式0波特率波特率 fosc / 12注意,符号注意,符号“ ”表示左面的表达式只是引拥右面表达式的数值,即表示左面的表达式只是引拥右面表达式的数值,即右面的表达式是提供了一种计算的方法。右面的表达式是提供了一种计算的方法。返回(2)方式)方式2的波特率的波特率 串行口方式串行口方式2波特率的产生与方式波特率的产生与方式0不同,即输入的时钟源不同,其时不同,即输入的时钟源不同,其时钟输入部分入钟输入部分入图图7-15所示。所示。控制接收与发送的移位时钟
56、由振荡频率控制接收与发送的移位时钟由振荡频率fosc的第二节拍的第二节拍P2时钟(即时钟(即fosc/2)给出,所以,方式)给出,所以,方式2波特率取决于波特率取决于PCON中中SMOD位的值:位的值:SMOD=0时,波特率为时,波特率为fosc的的1/64;SMOD=1时,波特率为时,波特率为fosc的的1/32。 即方式即方式2波特率波特率 2SMOD/64fosc图图7-15 串行口方式串行口方式2波特率的产生波特率的产生返回(3)方式)方式1和方式和方式3的波特率的波特率方式方式1和方式和方式3的移位时钟脉冲由定时器的移位时钟脉冲由定时器T1的溢出率决定,如的溢出率决定,如图图7-16
57、所示。因所示。因此,此,89C51串行口方式串行口方式1和方式和方式3的波特率由定时器的波特率由定时器T1的溢出率与的溢出率与SMOD值同值同时决定。即时决定。即方式方式1、方式、方式3波特率波特率 T1溢出率溢出率/n图图7-16 串行口方式串行口方式1、方式、方式3波特率的产生波特率的产生返回 当当SMOD=0时,时,n=32;SMOD=1时,时,n=16。所以,可用下式确定方。所以,可用下式确定方式式1和方式和方式3的波特率:的波特率:方式方式1、方式、方式3波特率波特率 2SMOD/32(T1溢出速率溢出速率)其中,其中,T1溢出速率取决于溢出速率取决于T1的计数速率(计数速率的计数速
58、率(计数速率 fosc/12)和)和T1预置的处置。预置的处置。若定时器若定时器T1采用模式采用模式1时,波特率公式如下:时,波特率公式如下:串行方式串行方式1、方式、方式3波特率波特率 2SMOD/32(fosc/12)/(216-初值初值)返回表表7-2列出了串行口方式列出了串行口方式1、方式、方式3常用波特率及其初值。常用波特率及其初值。 定时器定时器T1用作波特率发生器时,通常选用定时器模式用作波特率发生器时,通常选用定时器模式2(自动重装初值定时器)比较实用。要设置定时器(自动重装初值定时器)比较实用。要设置定时器T1为定为定时方式(使时方式(使C/T=0),让),让T1计数内部振荡
59、脉冲,即计数速计数内部振荡脉冲,即计数速率为率为fosc/12(注意应禁止(注意应禁止T1中断,以免溢出而产生不必中断,以免溢出而产生不必要的中断)。先设定要的中断)。先设定TH1和和TL1定时即输初值为定时即输初值为X,那么,那么每过每过“28-X”个机器周期,定时器个机器周期,定时器T1就会产生一次溢出。就会产生一次溢出。返回表7-2 常用波特率与其他参数选取关系返回 因此,因此,T1溢出速率为溢出速率为T1溢出速率溢出速率 (fosc/12)/(28-X)于是,可得出定时器于是,可得出定时器T1模式模式2的初始值的初始值X:返回 例例7-1:89C51单片机时钟振荡频率为单片机时钟振荡频
60、率为11.0592MHz,选用,选用定时器定时器T1工作模式工作模式2作为波特率发生器,波特率为作为波特率发生器,波特率为2400b/s,求初值。,求初值。 解:设置波特率控制为解:设置波特率控制为(SMOD)=0 所以,所以,(TH1)=(TL1)=F4H。返回 系统晶体振荡频率选为系统晶体振荡频率选为11.0592MHz就是为了使初值为整就是为了使初值为整数,从而产生精确的波特率。数,从而产生精确的波特率。 如果串行通信选用很低的波特率,可将定时器如果串行通信选用很低的波特率,可将定时器T1置于置于模式模式0或模式或模式1,即,即13位或位或16位定时方式;但在这种情况位定时方式;但在这种
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2022-2023学年广东省深圳市龙岗区三年级(上)期末英语试卷
- 大班健康活动四则教案:我的牙齿
- 脑卒中心理康复治疗
- 一年级下册数学教案-2.6 十几减5、4、3、2(4)-人教新课标
- 二年级上册数学说课教案-两位数减两位数退位减法 人教新课标
- 《渣罐类铸钢件技术规范》标准制编制说明(征求意见稿)
- 教育教学工作目标管理责任书
- 基础护理的解读
- 胎儿宫内窘迫的护理诊断
- 小班数学活动开课教案
- 压力容器生产单位压力容器质量安全日管控、周排查、月调度制度(含表格记录)
- 吸收放散实验课件
- 3.1《让小车运动起来》优质课件
- 新形势下,如何做好一人一事思想政治工作
- 《基于核心素养高中物理实验教学实施素质教育的研究》结题总结报告
- 行政人事部工作分析表
- 英语漫谈胶东海洋文化知到章节答案智慧树2023年威海海洋职业学院
- 航空母舰优秀课件
- 2023年芒果TV春季校园招聘笔试参考题库附带答案详解
- 共享中国知到章节答案智慧树2023年上海工程技术大学
- 中国十大传世名画课件
评论
0/150
提交评论