版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、7.1 串行通信的基础知识串行通信的基础知识 7.2 MCS-51 MCS-51的串行的串行I/O口及控制寄存器口及控制寄存器 7.3 串行口的工作方式串行口的工作方式 7.4 波特率的设计波特率的设计 7.5 MCS-51串行口的应用串行口的应用 7.6 MCS-51串行口的多机通信串行口的多机通信 教教 学学 目目 的的 和和 要要 求求 本章首先介绍串行通信的基本概念,然后重本章首先介绍串行通信的基本概念,然后重 点讨论点讨论MCS-51系列单片机串行口的特点和用法,系列单片机串行口的特点和用法, 要求掌握串行口的概念、要求掌握串行口的概念、 MCS-51串行口的结构、串行口的结构、 原
2、理及应用。原理及应用。 串串 行行 通通 信信 和和 基基 础础 知知 识识 v在计算机的应用领域中,通信在计算机的应用领域中,通信 是指是指CPU与外部的信息交换与外部的信息交换 (Commuciation)。基本的通)。基本的通 信方式有两种:信方式有两种:并行并行通信与通信与串串 行行通信。通信。 串串 行行 通通 信信 和和 基基 础础 知知 识识 v并行通信并行通信 v 并行通信:数据并行通信:数据各位同时传送各位同时传送。 v 特点:速度快、效率高,特点:速度快、效率高, 数据位决定数据线数。传送数据位决定数据线数。传送 成本高,适合近距离传输。成本高,适合近距离传输。 v 在集成
3、电路芯片的内部、在集成电路芯片的内部、 同一插件板上各部件之间同一插件板上各部件之间 同一机箱内各插件板之间。同一机箱内各插件板之间。 串串 行行 通通 信信 和和 基基 础础 知知 识识 v 串行通信串行通信 v 数据数据按位顺序按位顺序传送。传送。 v 特点:数据传送按位顺序进特点:数据传送按位顺序进 行,最少只需一根传输线即行,最少只需一根传输线即 可完成,成本低但速度慢。可完成,成本低但速度慢。 v 计算机与远程终端或终端与计算机与远程终端或终端与 终端之间的数据传送,通终端之间的数据传送,通 信的距离可以从几米到几千信的距离可以从几米到几千 公里。公里。 v 串行通信分为串行通信分为
4、异步异步和和同步同步。 串串 行行 通通 信信 和和 基基 础础 知知 识识 v异步通信和同步通信异步通信和同步通信 v异步通信异步通信(Asynchronous Communication)(Asynchronous Communication) v数据以字符数据以字符( (字节字节) )为单位组成字符帧传送。为单位组成字符帧传送。 发送端和接收端依靠字符帧格式规定和波发送端和接收端依靠字符帧格式规定和波 特率控制数据的发送和接收。特率控制数据的发送和接收。 v一个字符在异步传送中又称为一帧数据,一个字符在异步传送中又称为一帧数据, 字符帧也叫数据帧,由字符帧也叫数据帧,由起始位、数据位、起
5、始位、数据位、 奇偶校验位和停止位奇偶校验位和停止位四部分组成。四部分组成。 串串 行行 通通 信信 和和 基基 础础 知知 识识 串串 行行 通通 信信 和和 基基 础础 知知 识识 v 帧格式帧格式 v 起始位:为逻辑起始位:为逻辑“0”0”信号,位于字符帧开头,占一位,信号,位于字符帧开头,占一位, 表示发送端开始发送一帧信息。表示发送端开始发送一帧信息。 v 数据位:紧跟起始位之后就是数据位。在数据位中,低位数据位:紧跟起始位之后就是数据位。在数据位中,低位 在前在前( (左左) ),高位在后,高位在后( (右右) )。 v 奇偶校验位:此位位于数据位之后,仅占奇偶校验位:此位位于数据
6、位之后,仅占1 1位,用于对字位,用于对字 符传送作正确性检查。奇偶校验位有符传送作正确性检查。奇偶校验位有3 3种可能的选择,即种可能的选择,即 奇、偶或无校验,由用户根据需要选定。奇、偶或无校验,由用户根据需要选定。 串串 行行 通通 信信 和和 基基 础础 知知 识识 v 停止位:为逻辑停止位:为逻辑“1”1”信号,此位位于字符帧末尾,表示信号,此位位于字符帧末尾,表示 一帧字符信息已发送完毕。一帧字符信息已发送完毕。 v 异步通信的优点:不需要传送同步脉冲,字符帧的长度也异步通信的优点:不需要传送同步脉冲,字符帧的长度也 不受限制,故所需设备简单。不受限制,故所需设备简单。 v 异步通
7、信的缺点:字符帧中因包含有起始位和停止位而降异步通信的缺点:字符帧中因包含有起始位和停止位而降 低了有效数据的传输效率。低了有效数据的传输效率。 串串 行行 通通 信信 和和 基基 础础 知知 识识 v 同步通信(同步通信(Synchronous Communication) v 同步通信是以一种连续串行传送数据的通信方式,一次通同步通信是以一种连续串行传送数据的通信方式,一次通 信只传送一帧信息。信只传送一帧信息。 v 信息帧与异步通信中的字符帧不同,通常含有若干个数据信息帧与异步通信中的字符帧不同,通常含有若干个数据 字符既数据块,由同步字符、数据字符和校验字符三部分字符既数据块,由同步字
8、符、数据字符和校验字符三部分 组成。组成。 v 同步通信的缺点:要求发送时钟和接收时钟保持严格同步,同步通信的缺点:要求发送时钟和接收时钟保持严格同步, 故发送时钟除应和发送的波特率保持一致外,还要求把它故发送时钟除应和发送的波特率保持一致外,还要求把它 同时传送到接收端去。故这种方式对硬件要求较高。同时传送到接收端去。故这种方式对硬件要求较高。 串串 行行 通通 信信 和和 基基 础础 知知 识识 v 串行通信的制式串行通信的制式 v 按照数据传送的方向,串行通信可分为按照数据传送的方向,串行通信可分为3 3种制式,即种制式,即单工单工、 半双工半双工和和全双工全双工。 串串 行行 通通 信
9、信 和和 基基 础础 知知 识识 v波特率波特率 v 波特率是指每秒钟传送二进制数的位数波特率是指每秒钟传送二进制数的位数( (亦称比亦称比 特数特数) ),单位是,单位是b bs s。 v 波特率是串行通信的重要指标,用于表征数据传波特率是串行通信的重要指标,用于表征数据传 送的速率。波特率越高,数据传输速度越快。送的速率。波特率越高,数据传输速度越快。 MCS-51串行口的结构 串行口的结构 v 串行口的结构串行口的结构 v 5151单片机有一个全双工的串行口,可作为异步通单片机有一个全双工的串行口,可作为异步通 信串口,也可作为同步移位寄存器。信串口,也可作为同步移位寄存器。 v 字符帧
10、格式:字符帧格式:8 8,1010或或1111位。位。 MCS-51串行口的结构 串行口的结构 串串 行行 数数 据据 缓缓 冲冲 寄寄 存存 器器 输输 出出 控控 制制 门门 输入移位寄输入移位寄 存器存器 MCS-51串行口的结构 串行口的结构 v 两个特殊功能寄存器两个特殊功能寄存器SCONSCON和和PCONPCON用来控制串行口用来控制串行口 的工作方式和波特率。的工作方式和波特率。 v 发送缓冲寄存器发送缓冲寄存器SBUFSBUF只能写,不能读;接收缓冲只能写,不能读;接收缓冲 寄存器寄存器SBUFSBUF只能读,不能写。两个缓冲寄存器共只能读,不能写。两个缓冲寄存器共 用一个地
11、址用一个地址99H99H,可以用读写指令区分。,可以用读写指令区分。 v 发送时,通过发送时,通过“MOV SBUFMOV SBUF,A A”写指令,写指令,A A写入写入 SBUF(99H)SBUF(99H),由,由TxDTxD引脚一位一位地向外发送;引脚一位一位地向外发送; v 接收时,接收端从接收时,接收端从RxDRxD一位一位地接收数据,直到收到一位一位地接收数据,直到收到 一个完整的字符数据后通知一个完整的字符数据后通知CPUCPU,再通过,再通过“MOV AMOV A, SBUFSBUF”读指令,从读指令,从SBUF(99H)SBUF(99H)读出数据,送到累加器读出数据,送到累加
12、器A A。 串串 行行 口口 的的 控控 制制 寄寄 存存 器器 v串行口控制寄存器串行口控制寄存器SCON v 串行数据通信的方式选择、接收和发送控制以及串行数据通信的方式选择、接收和发送控制以及 串行口的状态标志均由串行口的状态标志均由SCON控制和指示。复位控制和指示。复位 时所有位被清时所有位被清0。SCON的格式如下:的格式如下: 方式控制方式控制 多机多机 允许允许 接收接收 8位发送位发送 接收控制接收控制 发送接收发送接收 中断控制中断控制 串串 行行 口口 的的 控控 制制 寄寄 存存 器器 v SCON各位功能:各位功能: 1SM0、SM1: 串行口工作方式选择位。串行口工
13、作方式选择位。 2SM2:在方式:在方式2和方式和方式3中用于多机通信控制。中用于多机通信控制。 串串 行行 口口 的的 控控 制制 寄寄 存存 器器 3REN: 允许接收位。允许接收位。0:禁止接收;:禁止接收;1:允许接:允许接 收。收。 4TB8: 在方式在方式2、3时:发送的第时:发送的第9位数据,也可作奇偶校验位。位数据,也可作奇偶校验位。 在多机通信中:表示主机发送的是地址还是数据:在多机通信中:表示主机发送的是地址还是数据:0:数:数 据;据;1:地址。:地址。 5. RB8: 在方式在方式2、3时:接收到的第时:接收到的第9位数据;位数据; 方式方式1时:若时:若SM2=0,则
14、,则RB8存放接收到的停止位;存放接收到的停止位; 方式方式0时:不使用时:不使用RB8。 串串 行行 口口 的的 控控 制制 寄寄 存存 器器 6TI:发送中断标志位。:发送中断标志位。 v 方式方式0:发送第:发送第8位数据结束时由硬件置位;位数据结束时由硬件置位; v 其他方式:在停止位之前置位。其他方式:在停止位之前置位。 v TI在发送前必须由软件清在发送前必须由软件清0。 v TI=1,表示发送帧结束,可供软件查询,也可请,表示发送帧结束,可供软件查询,也可请 求中断。求中断。 7RI:接收中断标志。:接收中断标志。 v 方式方式0:接收第:接收第8位数据结束时由硬件置位;位数据结
15、束时由硬件置位; v 其他方式:接收到停止位的中间位置时置位。其他方式:接收到停止位的中间位置时置位。 v RI在接收一帧字符之后必须由软件清在接收一帧字符之后必须由软件清0,准备接,准备接 收下一帧数据。收下一帧数据。 v RI=1,表示帧接收结束。,表示帧接收结束。RI可供软件查询,也可供软件查询,也 可请求中断。可请求中断。 串串 行行 口口 的的 控控 制制 寄寄 存存 器器 v 电源控制寄存器电源控制寄存器PCON v PCON主要是为主要是为CHMOS型单片机的电源控制而型单片机的电源控制而 设置的专用寄存器,地址为设置的专用寄存器,地址为87H。 v PCON的最高位的最高位SM
16、OD是串行口波特率倍增位。是串行口波特率倍增位。 当当SMOD=1时波特率加倍,复位时,时波特率加倍,复位时,SMOD=0。 PCON的格式如下:的格式如下: 串串 行行 口口 的的 控控 制制 寄寄 存存 器器 v 中断允许控制寄存器中断允许控制寄存器IE(A8H) v IE寄存器各位定义如下:寄存器各位定义如下: 其中,其中,ES为串行口中断允许控制位,为串行口中断允许控制位,ES=1允许允许RITI中中 断。断。ES=0,禁止,禁止RITI中断。中断。 串串 行行 口口 的的 控控 制制 寄寄 存存 器器 v 中断优先级寄存器中断优先级寄存器IP(B8H) v IP寄存器各位定义如下:寄
17、存器各位定义如下: v 其中,其中,PS为串行口中断优先级控制位,该位为为串行口中断优先级控制位,该位为“1”,串行,串行 口设定为高优先级。口设定为高优先级。 串串 行行 口口 的的 工工 作作 方方 式式 v MCS-51串行口有串行口有0、1、2、3四种工作方式。四种工作方式。 v 串行口方式串行口方式0 v 为同步移位寄存器方式;为同步移位寄存器方式; v 波特率固定为波特率固定为fOSC12; v 数据输入,输出,均由数据输入,输出,均由RxD(P3.0)端完成;端完成; v TxD(P3.1)端输出移位时钟脉冲;端输出移位时钟脉冲; v 发送和接收一帧的数据为发送和接收一帧的数据为
18、8位二进制,不设起始和停止位,位二进制,不设起始和停止位, 低位在前,高位在后;低位在前,高位在后; v 一般用于一般用于I/O口扩展。口扩展。 串串 行行 口口 的的 工工 作作 方方 式式 方式方式0发送发送 方式方式0发送时,执行任何一条以发送时,执行任何一条以SBUF为目的寄存器的指令,为目的寄存器的指令, 串行口即将串行口即将8位数据以振荡频率的十二分之一的波特率,位数据以振荡频率的十二分之一的波特率, 将数据从将数据从RxD端串行发送出去。端串行发送出去。 方式方式0接收接收 方式方式0接收时,在同时满足接收时,在同时满足REN=1和和RI=0的条件下,以读的条件下,以读 SBUF
19、寄存器的指令开始。寄存器的指令开始。 串串 行行 口口 的的 工工 作作 方方 式式 串串 行行 口口 的的 工工 作作 方方 式式 v串行口方式串行口方式1 v 为为10位通用异步通信接口;位通用异步通信接口; v 一帧信息包括一帧信息包括1位起始位位起始位(0)、8位数据位位数据位(低位在低位在 前前)和和1位停止位位停止位(1); v TXD是发送端,是发送端,RXD是接收端。其传送波特率是接收端。其传送波特率 可调。可调。 串串 行行 口口 的的 工工 作作 方方 式式 v 方式方式1发送发送 v数据由数据由TXD端输出,任何一条以端输出,任何一条以SBUF为目的为目的 寄存器的指令都
20、启动一次发送,发送条件是寄存器的指令都启动一次发送,发送条件是 TI=0。 v 发送开始时内部发送开始时内部SEND信号变为有效电平,信号变为有效电平, 随后由随后由TXD端输出自动加入的起始位,此后端输出自动加入的起始位,此后 每过一个时钟脉冲,由每过一个时钟脉冲,由TXD端输出一个数据端输出一个数据 位,位,8位数据发送完后,置位位数据发送完后,置位TI。 串串 行行 口口 的的 工工 作作 方方 式式 串行口方式串行口方式1 1时序时序 串串 行行 口口 的的 工工 作作 方方 式式 v 方式方式1接收接收 v数据从数据从RXD端输入。当端输入。当REN置置“1”后,就允后,就允 许接收
21、器接收,接收器便以波特率的许接收器接收,接收器便以波特率的16倍速倍速 率采样率采样RXD端电平,每一位采样端电平,每一位采样3次。次。 v在方式在方式1的接收器中设置有数据辨识功能,当的接收器中设置有数据辨识功能,当 同时满足以下两个条件时,接收的数据才有同时满足以下两个条件时,接收的数据才有 效,且实现装载效,且实现装载SBUF、把、把RB8及及RI置置“1”, 接收控制器再次采样接收控制器再次采样RXD的负跳变,以便接的负跳变,以便接 收下一帧数据。收下一帧数据。 vRI0; vSM20或接收到的停止位或接收到的停止位1。 串串 行行 口口 的的 工工 作作 方方 式式 v串行口方式串行
22、口方式2和串行口方式和串行口方式3 v 串行口工作在方式串行口工作在方式2、3时,为时,为11位异步通信口,位异步通信口, 即即1位起始位位起始位(0)、数据、数据8位位(低位在前低位在前)、1位可编位可编 程位程位(第第9数据位数据位)和和1位停止位位停止位(1)。 v 发送时,可编程位发送时,可编程位(TB8)可设置可设置0或或1,该位一般,该位一般 用做效验位;接收时,可编程位送入用做效验位;接收时,可编程位送入SCON中的中的 RB8。 串串 行行 口口 的的 工工 作作 方方 式式 v 方式方式2、3的区别在于:方式的区别在于:方式2的波特率为的波特率为fosc32 或或fosc64
23、,而方式,而方式3的波特率可变。的波特率可变。 v 方式方式2和方式和方式3发送发送 方式方式2、3发送时,数据由发送时,数据由TXD端输出,附加的端输出,附加的 第第9位数据为位数据为SCON中的中的TB8。 串串 行行 口口 的的 工工 作作 方方 式式 v 方式方式2和方式和方式3接收接收 方式方式2、3接收与方式接收与方式1类似。类似。 波波 特特 率率 的的 设设 计计 v波特率的设计波特率的设计 v方式方式0 v 每个机器周期发送或接收一位数据,波特率固定每个机器周期发送或接收一位数据,波特率固定 为单片机时钟频率的为单片机时钟频率的112(即即fosc12),不受,不受 SMOD
24、的影响。的影响。 v 若晶振频率若晶振频率fosc=12MHz时,则波特率时,则波特率=fosc 12=12MHz12=1Mb/s,即,即1 s移位一次。移位一次。 波波 特特 率率 的的 设设 计计 v方式方式1 v 方式方式1的波特率可变,由定时器的波特率可变,由定时器T1的溢出率与的溢出率与 SMOD的值共同决定。即:的值共同决定。即: 波特率波特率2SMOD/32 (定时器定时器1溢出率溢出率) 其中溢出率取决于计数速率和定时器的预置值。其中溢出率取决于计数速率和定时器的预置值。 波波 特特 率率 的的 设设 计计 v方式方式2 v 方式方式2的波特率取决于的波特率取决于PCON中的中
25、的SMOD之值,之值, 当当SMOD=0时,波特率为时,波特率为fosc的的1/64;若;若 SMOD=1时,则波特率为时,则波特率为fosc的的1/32。即:。即: 波特率波特率= osc SMOD f 64 2 波波 特特 率率 的的 设设 计计 v方式方式3 v 方式方式3的波特率可变,由定时器的波特率可变,由定时器T1的溢出率与的溢出率与 SMOD的值共同决定。即:的值共同决定。即: 波特率波特率2SMOD/32 (定时器定时器1溢出率溢出率) 其中溢出率取决于计数速率和定时器的预置值。其中溢出率取决于计数速率和定时器的预置值。 注:方式注:方式0与方式与方式2均为均为固定波特率固定波
26、特率,方式,方式1与方与方 式式3波特率由波特率由SMOD与与T1的溢出率的溢出率共同决定。共同决定。 波波 特特 率率 的的 设设 计计 波特率的计算:波特率的计算: v 对对T1初始化时,写入方式控制字初始化时,写入方式控制字 (TMOD)00100000B。这样每过。这样每过“256-X”个机个机 器周期,定时器器周期,定时器T1就会产生一次溢出,溢出周期就会产生一次溢出,溢出周期 为:为: (256-X) 12 / fosc, 溢出率为溢出周期之倒数,溢出率为溢出周期之倒数, 因此,波特率的公式还可写成:因此,波特率的公式还可写成: 波特率波特率(2SMOD/32) fosc / 12
27、(256-X) v注:注:实际应用时,总是先确定波特率,再计算定实际应用时,总是先确定波特率,再计算定 时器时器1的定时初值。的定时初值。 波波 特特 率率 的的 设设 计计 v 例:已知例:已知8051单片机时钟频率为单片机时钟频率为11.0592MHz, 选用定时器选用定时器T1工作方式工作方式2作波特率发生器,波特作波特率发生器,波特 率为率为2400波特,求初值。波特,求初值。 解:设波特率控制位解:设波特率控制位SMOD=0,则,则 2400(1/32) 11059200 / 12(256-X) 256 - X=11059200/(24003212) X=256-12=244=0F4
28、H 波特率 384 )1(SMODfosc MCS-51串行口的应用 串行口的应用 v利用串行口方式利用串行口方式0作作IO口扩展口扩展 v把串行口变为并行输出口使用时,要有一把串行口变为并行输出口使用时,要有一 个个8位位“串入并出串入并出”的同步移位寄存器配的同步移位寄存器配 合合(例如例如CD4094或或74LSl64) 。 MCS-51串行口的应用 串行口的应用 v 例:根据图例:根据图7-8的线路连接,请编写在数码管上的线路连接,请编写在数码管上 循环显循环显 示示09这这10个数字的程序。个数字的程序。 本题利用定时器控制每个数字的显示时间,每秒本题利用定时器控制每个数字的显示时间
29、,每秒 显示一位。假设系统晶振频率为显示一位。假设系统晶振频率为11.0592MHz。 ORG 0 SJMP ST ORG 000BH AJMP T0INT ST:MOV SCON,#0 MOV DPTR,#TAB MOV R0,#0 L0:CLR TI MOV A,R0 MOVC A,A+DPTR MOV SBUF,A ACALL DLY INC R0 CJNE R0,#11,L0 SJMP START DLY: MOV R7,#20 L1:MOV TMOD,#01H L2:MOV TL0,#0 MOV TH0,#4BH SETB TR0 SETB EA SETB ET0 CJNE R7,#
30、0,$ RET T0INT: CLR TR0 CLR ET0 DEC R7 MOV TL0,#0 MOV TH0,#4BH SETB TR0 SETB EA SETB ET0 RETI TAB:DB 0FCH,60H DB 0DAH,0F2H,66H, DB 0B6H,0BEH,0E0H DB 0FEH,0F6H END MCS-51串行口的应用 串行口的应用 v 程序如下程序如下 TIMER EQU 30H DATA EQU 3000H ORG 0000H AJMP START ORG 000BH AJMP INT0 ORG 0040H START: MOV SP,#60H MOV TMOD
31、,#01H MOV TL0,#00H MOV TH0,#4BH ;延时;延时50ms50ms的常数的常数 MOV R0,#0H MOV TIMER,#20 ;延时;延时1s1s的常数的常数 MOV SCON,00H SETB TR0 MCS-51串行口的应用 串行口的应用 v 程序如下(续)程序如下(续) SETB ET0 ;开中断;开中断 SETB EA SJMP $ INT0: PUSH ACC PUSH PSW CLR EA CLR TR0 MOV TL0,#00H MOV TH0,#4BH SETB TR0 DJNZ TIMER,EXIT MOV TIMER,#20 MOV DPTR,
32、#DATA ;置七段码表的基址;置七段码表的基址 MOV A,R0 ;置偏移量;置偏移量 MOVC A,A+DPTR CLR TI MCS-51串行口的应用 串行口的应用 v 程序如下(续)程序如下(续) CPL A MOV SBUF,A INC R0 CJNE R0,#0AH,EXIT ;判是否到表尾;判是否到表尾 MOV R0,#00H EXIT:SETB EA POP PSW POP ACC RETI ORG 3000H DATA:DB 0FCH,60H,0DAH,0F2H,66H DB 0B6H,0BEH,0E0H,0FEH,0F6H END MCS-51串行口的应用 串行口的应用 v
33、 串行口变为并行输入口使用时,要有一个串行口变为并行输入口使用时,要有一个8位位 “并入串出并入串出”功能的同步移位寄存器功能的同步移位寄存器(CD4014或或 74LSl65)与串行口配合使用。与串行口配合使用。 MCS-51串行口的应用 串行口的应用 v 例:根据上图电路,编写从例:根据上图电路,编写从16位扩展口读入位扩展口读入10个个 字节数据,并把它们转存到内部字节数据,并把它们转存到内部RAM20H29H 中的程序。中的程序。 解:解:74LS165是并行输入串行输出的同步移位寄存器。利是并行输入串行输出的同步移位寄存器。利 用用8051的的3根端口线扩展为根端口线扩展为16个输入
34、端端口线的实用电路。个输入端端口线的实用电路。 继续串接继续串接74LS165可以扩展更多的输入口,但会影响端口可以扩展更多的输入口,但会影响端口 的操作速度。的操作速度。 MCS-51串行口的应用 串行口的应用 v 程序如下:程序如下: DIZI EQU20H ZJSU EQU02H WSU EQU05H ORG 0000H START:MOV SP,#60H MOV R7,#WSU ;置循环次数;置循环次数5 MOV R6,#ZJSU ;置并入的字节数;置并入的字节数2 MOV R0,#DIZI ;设片内;设片内RAM指针指针20h REC0: CLR P1.0 ;并行置入;并行置入16位
35、数据位数据 SETB P1.0 ;允许串行移位输出;允许串行移位输出 MOV SCON,#10H ; REC1: JNB RI,REC1 CLR RI MOV A,SBUF MOV R0,A INC R0 DJNZ R6,REC1 MOV R6,#ZJSU ; DJNZ R7,REC0 RET 用用 串串 行行 口口 进进 行行 异异 步步 通通 信信 v 串行口工作在方式串行口工作在方式1 1、2 2、3 3时,都用于异步通信。时,都用于异步通信。 v 它们之间的主要差别在于字符帧格式和通信波特率的不同。它们之间的主要差别在于字符帧格式和通信波特率的不同。 双机异步通讯的连接线路见图双机异步
36、通讯的连接线路见图7-107-10。 用用 串串 行行 口口 进进 行行 异异 步步 通通 信信 v 例:用查询法编写串行口例:用查询法编写串行口方式方式1下的发送程序。设单片机下的发送程序。设单片机 主频为主频为11.059MHz,采用定时器,采用定时器1方式方式2作波特率发生器,作波特率发生器, 波特率为波特率为1200 b/s;发送数据在片内;发送数据在片内RAM的的20H-3FH单元,单元, 要求在最高位上加奇偶校验位后由串行口发送。要求在最高位上加奇偶校验位后由串行口发送。 解:根据发送的波特率解:根据发送的波特率1200b/s,取,取SMOD=0, 波特率波特率2SMOD/32 (
37、定时器定时器1溢出率溢出率) 1)计算计算THl和和TLl的时间常数初值的时间常数初值X为:为: X=256-11.05910620/(3841200) =232=0E8H 2) TMOD20H,PCON0, SCON40H 用用 串串 行行 口口 进进 行行 异异 步步 通通 信信 v 程序如下程序如下 ORG 0000H AJMP START ORG 1000H BLOCK DATA 40H START:MOV SP,#70H MOV TMOD,#20H ;定时器;定时器T1为方式为方式2 MOV THl,#0E8H ;给;给T1赋初值赋初值 MOV TLl,#0E8H SETB TRl
38、;启动;启动T1 MOV PCON,#00H ;令;令SMOD=0 MOV SCON,#40H ; 串行口为方式串行口为方式1 MOV R0,#20H ;字符块始址送;字符块始址送R0 MOV R2,#32 用用 串串 行行 口口 进进 行行 异异 步步 通通 信信 v 程序如下(续)程序如下(续) D01:MOV A,R0 ;发送字符送;发送字符送A MOV C,PSW.0 ;奇偶校验位;奇偶校验位P送送C CPL C ;形成奇校验位送;形成奇校验位送C MOV ACC.7,C ;使;使A中成为奇数中成为奇数1 MOV SBUF,A ;启动发送;启动发送 JNB TI,$ CLR TI IN
39、C R0 DJNZ R2,D01 ;若字符块未发完则转到;若字符块未发完则转到D01 ED: SJMP ED 用用 串串 行行 口口 进进 行行 异异 步步 通通 信信 v 例例7-5:请用中断法编写串行口:请用中断法编写串行口方式方式3下的接收程序。设下的接收程序。设 单片机的主频为单片机的主频为11.059MHz,波特率为,波特率为1200b/s,串行口,串行口 接收器把接收到的接收器把接收到的32个字节数据存入片外个字节数据存入片外2000H-201FH 单元。接收过程要求判奇偶效验标志单元。接收过程要求判奇偶效验标志RB8。若出错置。若出错置F0 标志为标志为1,正确置,正确置F0标志
40、为标志为0,然后返回。,然后返回。 解:根据波特率和主频选解:根据波特率和主频选SMOD=0,按公式计算得,按公式计算得THl和和 TLl的初值为的初值为0E8H。 参考程序如下:参考程序如下: ORG 0000H AJMP START ORG 0023H AJMP SPIN ORG 1000H 用用 串串 行行 口口 进进 行行 异异 步步 通通 信信 v 参考程序(续)参考程序(续) START:MOV SP,#70H MOV TMOD,#20H ;T/C1工作于方式工作于方式2 MOV TH1,#0E8H ;设置时间常数初值;设置时间常数初值 MOV TL1,#0E8H SETB TR1
41、 ;启动;启动T/C1 MOV DPTR,#2000H ;接收数据区始址送;接收数据区始址送R0 MOV R2,#32 ;累加和寄存器清零;累加和寄存器清零 MOV PCON,#00H ;使;使SMOD=1 MOV SCON,#0D0H ;串行口工作于方式;串行口工作于方式3接收接收 SETB EA SETB ES STOP: SJMP STOP ;等待串行中断;等待串行中断 用用 串串 行行 口口 进进 行行 异异 步步 通通 信信 v 参考程序(续)参考程序(续) 接收子程序接收子程序 ORG 2000H SPIN: CLR RI ;接收完后清;接收完后清RI MOV A,SBUF ;数据
42、块长度字节选送;数据块长度字节选送A JNB PSW.0,PZ ;1转转PZ JNB RB8,ERR ;判;判PSW.0是否等于是否等于RB8 SJMP YES PZ:JB RB8,ERR ;0转转ERR YES: MOVX DPTR,A ;存入;存入R2 INC DPTR DJNZ R2,RIGH CLR PSW.5 ;F0 CLR ES RIGH:RETI ERR: SETB PSW.5 CLR EA CLR ES RETI 用用 串串 行行 口口 进进 行行 异异 步步 通通 信信 ORG 0 MOV 20H,#77H MOV 21H,#78H MOV 22H,#79H MOV TMOD
43、,#20H MOV TH1,#0E8H MOV TL1,#0E8H SETB TR1 MOV PCON,#0 MOV SCON,#40H MOV R0,#20H MOV R2,#03 D01:MOV A,R0 MOV C,PSW.0 CPL C MOV ACC.7,C MOV SBUF,A JNB TI,$ CLR TI INC R0 DJNZ R2,D01 SJMP $ END 用用 串串 行行 口口 进进 行行 异异 步步 通通 信信 ORG 0 AJMP START ORG 0023H AJMP SINT START:MOV TMOD,#20H MOV TH1,#0E8H MOV TL1
44、,#0E8H SETB TR1 MOV PCON,#0 MOV SCON,#50H MOV R0,#30H SETB EA SETB ES SJMP $ SINT: CLR RI MOV A,SBUF JNB PSW.0,ERR CLR ACC.7 MOV R0,A INC R0 RETI ERR:SETB F0 RETI END MCS-51双机异步通讯 双机异步通讯 v双机通信也称为点对点的串行异步通信。双机通信也称为点对点的串行异步通信。 利用单片机的串行口,可以进行单片机与利用单片机的串行口,可以进行单片机与 单片机、单片机与通用微机间的点对点的单片机、单片机与通用微机间的点对点的 串
45、行通信。串行通信。 1 1TTLTTL电平信号直接传输电平信号直接传输 如果采用如果采用TTLTTL电平直接在电缆电平直接在电缆( (或双绞线或双绞线) )上传上传 输信息,传输距离一般不超过输信息,传输距离一般不超过1m,1m,双方的串行口双方的串行口 可以直接相连。可以直接相连。 例如例如80518051与扩展的串行打印机与扩展的串行打印机 的连接就是这样。的连接就是这样。 如果传输的距离在如果传输的距离在15m15m之内,就应该采用之内,就应该采用RS-RS- 232232电平信号传输。微机的串口采用的就是电平信号传输。微机的串口采用的就是RS-RS- 232232电平。电平。 MCS-
46、51双机异步通讯 双机异步通讯 2RS-232C电平信号传输电平信号传输 RS-232C是广泛使用的串行总线标准。是广泛使用的串行总线标准。RS-232C标准规定标准规定 了传送的数据和控制信号的电平。其规定如下:了传送的数据和控制信号的电平。其规定如下: (1)数据线上的信号电平数据线上的信号电平 Space(逻辑逻辑0): +3+15V Mark(逻辑逻辑1): -3-15V (2)控制和状态线上的信号电平控制和状态线上的信号电平 ON(逻辑逻辑0):+3 +15V(接通接通) OFF(逻辑逻辑1):-3 -15V(断开断开) v 以上信号电平与以上信号电平与TTL电平显然是不匹配的。电平
47、显然是不匹配的。 v 需要接口芯片:需要接口芯片:RS-232C电平电平TTL电平转换。如:电平转换。如: MAX232。 MCS-51双机异步通讯 双机异步通讯 v MAX232的芯片引脚见图的芯片引脚见图7-11。 MCS-51双机异步通讯 双机异步通讯 v 管脚说明如下:管脚说明如下: C0+、C0-、C1+、C1-是外接电容端;是外接电容端; R1IN、R2IN是是2路路RS-232C电平信号接收输入端;电平信号接收输入端; RlOUT、R2OUT是是2路转换后的路转换后的TTL电平接收信号输出端,送电平接收信号输出端,送 8051的的RXD接收端;接收端; T1IN、T2IN是是2路
48、路TTL电平发送输入端,接电平发送输入端,接8051的的TxD发送端;发送端; T1OUT、T2OUT是是2路转换后的发送路转换后的发送RS-232C电平信号输出端,接电平信号输出端,接 传输线;传输线; V+经电容接电源经电容接电源+5V; V-经电容接地。经电容接地。 v 这种连接的传输介质一般采用双绞线,通信距离一般不超过这种连接的传输介质一般采用双绞线,通信距离一般不超过15m, 传输率小于传输率小于20kB/s。 MCS-51双机异步通讯 双机异步通讯 v 双机通信编程举例双机通信编程举例 v 例:按照图例:按照图7-12的接口电路,分别编制发送通信程序和接的接口电路,分别编制发送通
49、信程序和接 收通信程序。收通信程序。 (1)通信双方的约定通信双方的约定 假定假定A机为发送者,机为发送者,B机为接收者。假定数据块长度为机为接收者。假定数据块长度为16个个 字节,数据缓冲区起始地址是字节,数据缓冲区起始地址是40H。 MCS-51双机异步通讯 双机异步通讯 v 通信过程通信过程 v 当当A机开始发送时,先送一个机开始发送时,先送一个“0AAH”信号,信号,B机收到后机收到后 回答一个回答一个“55H”,表示同意接收。,表示同意接收。 v 当当A机收到机收到“55H”后,开始发送数据,在发送数据之前将后,开始发送数据,在发送数据之前将 数据块长度发送给乙机,当发送完数据块长度
50、发送给乙机,当发送完16个字节,向乙机发送个字节,向乙机发送 一个一个“校验和校验和”。 v 校验和方法是针对数据块进行的。在数据发送时,发送方校验和方法是针对数据块进行的。在数据发送时,发送方 对块中数据简单求和,产生一单字节校验字符对块中数据简单求和,产生一单字节校验字符(校验和校验和)附附 加到数据块结尾。加到数据块结尾。 MCS-51双机异步通讯 双机异步通讯 v 通信过程(续)通信过程(续) v B机接收数据并将其转储到数据缓冲区。机接收数据并将其转储到数据缓冲区。 v 起始地址也为起始地址也为40H,每接收到一个数据也计算一次,每接收到一个数据也计算一次“校验校验 和和”。当收齐一
51、个数据块后,再接收。当收齐一个数据块后,再接收A机发来的机发来的“校验校验 和和”,并将它与,并将它与B机求出的机求出的“校验和校验和”进行比较。若两者进行比较。若两者 相等,说明接收正确,相等,说明接收正确,B机回答机回答“00H”;若两者不等,说;若两者不等,说 明接收不正确,明接收不正确,B机回答机回答“0FFH”,请求重发。,请求重发。 v A机收到机收到00H的回答后,结束发送。若收到的答复非零,的回答后,结束发送。若收到的答复非零, 则将数据再重发一次。则将数据再重发一次。 v 双方约定的传输波特率若为双方约定的传输波特率若为1200b/s,若双方的,若双方的fosc=11.059
52、 2MHz,T1工作在定时方式工作在定时方式2,(THl)=(TLl)=0E8H,PCON 寄存器的寄存器的SMOD位为位为0。 MCS-51双机异步通讯 双机异步通讯 (2)用于用于A机发送的通信子程序机发送的通信子程序 通信子程序如下:通信子程序如下: ORG 0000H SENDA: MOV TMOD,#20H ;设;设T1为定时方式为定时方式2 MOV TH1,#0E8H ;设定波持率;设定波持率 MOV TL1,#0E8H MOV PCON,#00H SETB TR1 ;启动;启动T/C1 MOV SCON,#50H ;方式;方式1 T1A:MOV SBUF,#0AAH ;发送联络信
53、号;发送联络信号 S1A:JBC TI,R1A ;等待发送出去;等待发送出去 SJMP S1A R1A:JBC RI,R2A ;等待;等待B机回答机回答 SJMP R1A MCS-51双机异步通讯 双机异步通讯 v 用于用于A机发送的通信子程序(续)机发送的通信子程序(续) R2A: MOV A,SBUF ;接收联络信号;接收联络信号 XRL A,#55H JNZ T1A ;B机未好,继续联络机未好,继续联络 T2A: MOV SBUF, #16 ;数据块长度数据块长度 JNB TI, $ CLR TI MOV R0,#40H ;R0指向缓冲区首址指向缓冲区首址 MOV R7,#10H ;装载
54、计数初值;装载计数初值 MOV R6,#00H ;清校验和寄存器;清校验和寄存器 T3A: MOV SBUF,R0 ;发送一个数据字节;发送一个数据字节 MOV A,R6 ADD A,R0 ;求校验和;求校验和 MOV R6,A ;保存校验和;保存校验和 INC R0 MCS-51双机异步通讯 双机异步通讯 v 用于用于A机发送的通信子程序(续)机发送的通信子程序(续) S2A:JBC TI,T4A SJMP S2A T4A: DJNZ R7,T3A ;判数据块发送完否;判数据块发送完否 MOV SBUF,R6 ;发送校验和;发送校验和 S4A: JBC TI,R3A SJMP S4 R3A:
55、 JBC RI,R4A ;等待;等待B机应答机应答 SJMP R3A R4A: MOV A,SBUF JNZ T2A ;回答出错,则重发;回答出错,则重发 RET MCS-51双机异步通讯 双机异步通讯 (3)用于用于B机接收的通信子程序机接收的通信子程序 子程序如下:子程序如下: REVB:MOV TMOD,#20H ;设;设T1为定时方式为定时方式2 MOV TH1,#0E8H ;设定波特率;设定波特率 MOV TL1,#0E8H MOV PCON,#00H SETB TR1 MOV SCON,#50H ;串行口工作在方式;串行口工作在方式1 R1B:JBC RI,R2B ;等待;等待A机联络信号机联络信号 SJMP R1B R2B:MOV A,SBUF XRL A,#0AAH ;判;判A机请求否机请求否 JZ T1B MOV SBUF,#0AAH SJMP R1B MCS-51双机异步通讯 双机异步通讯 v 用于用于B机接收的通信子程序(续)机接收的通信子程序(续) T1B: MOV SBUF,#55H ;发应答信号;发应答信号
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026山东青岛市澳柯玛股份有限公司招聘4人备考题库【原创题】附答案详解
- 2025-2026闽教院翔安一附小招聘非在编合同教师1人备考题库(二)(达标题)附答案详解
- 2026广东惠州博罗县人民医院招聘69人备考题库附完整答案详解(必刷)
- 2026福建漳州市龙文区教育局招聘43人备考题库附参考答案详解【满分必刷】
- 2026河北邯郸市第一医院医疗健康集团选聘53人备考题库重点附答案详解
- 2026湖北武汉刘三屋中医骨伤医院招聘49人备考题库及参考答案详解【预热题】
- 2026北京北化化学科技有限公司招聘2人备考题库带答案详解(培优b卷)
- 2026广西钦州市钦北区长田街道社区卫生服务中心招聘1人备考题库附完整答案详解【有一套】
- 2026江苏宿迁市沭阳县教师发展中心择优比选研训员6人备考题库附参考答案详解(能力提升)
- 2026年春季河北邯郸市鸡泽县博硕人才选聘10人备考题库及完整答案详解(全优)
- 企业外部董事申请书
- GB/T 46101-2025航空航天用MJ螺纹十二角头高强度螺栓
- 做操的好处教学课件
- 师德师风培训课件
- DB65T 3954-2016 反恐怖防范设置规范 加油、加气站
- 供热管网改造材料采购与存储管理方案
- 人防工程疏散演练实施方案
- 紧急订单处理管理办法
- 灵活用工结算2025年企业成本控制与风险防范分析报告
- 无乳链球菌讲解
- 监所食堂管理办法
评论
0/150
提交评论