第6章 AT89S51单片机的串行口_第1页
第6章 AT89S51单片机的串行口_第2页
第6章 AT89S51单片机的串行口_第3页
第6章 AT89S51单片机的串行口_第4页
第6章 AT89S51单片机的串行口_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、51单片机单片机C语言程序设计授课语言程序设计授课PPT 第第 章章 成都大学工业制造学院 程 跃 6 89S5189S51单片机的串行口单片机的串行口 2 本讲主要内容:本讲主要内容: 补充知识:串行通信基础知识串行通信基础知识 6-1.串行口的结构串行口的结构 6-2.串行口的四种工作方式串行口的四种工作方式 6-3.多机通信多机通信 6-4 波特率的制定方法波特率的制定方法 6-5 串行通信的应用设计串行通信的应用设计 3 串行通信基础知识串行通信基础知识 并行通信是指数据的各位同时进行传送(发送或接收) 的通信方式。其优点是传递速度快;缺点是数据有多 少位,就需要多少根传送线。并行通信

2、在位数多、传 送距离又远时就不太适宜。 串行通信指数据是一位一位按顺序传送的通信方式, 它的突出优点是只需一对传送线(利用电话线就可作 为传送线),这样就大大降低了传送成本,特别适用 于远距离通信。其缺点是传送速度较低。 4 传输方式传输方式 单单 工工全双工全双工 半双工半双工 (l)(l)单工方式单工方式 信息只能沿一个方向传输,而不能沿相反方向传输。信息只能沿一个方向传输,而不能沿相反方向传输。 (2)(2)半双工方式半双工方式 信息可以沿着两个方向传输,但在指定时刻,信息只信息可以沿着两个方向传输,但在指定时刻,信息只 能沿一个方向传输。能沿一个方向传输。 (3)(3)全双工方式全双工

3、方式 信息可以同时沿着两个方向传输。信息可以同时沿着两个方向传输。 5 6 (1)异步通信 异步通信用起始位0表示字符的开始,然后从低位到高位逐 位传送数据,最后用停止位1表示字符结束,如后图所示。 一个字符又称一帧信息。图中,一帧信息包括1位起始位、 8位数据位和1位停止位,图中,数据位增加到9位。在 C8051F单片机系统中,第9位数据D8可以用作奇偶校验位, 也可以用作地址数据帧的标识位,D81表示该帧信息传 送的是地址,D80表示传送的是数据。两帧信息之间可以 无间隔,也可以有间隔,且间隔时间可任意改变,间隔用 空闲位“1”来填充。 7 异步通信异步通信 图 异步通信数据格式 8 奇偶

4、校验奇偶校验 是一种校验代码传输正确性的方法。根据被传是一种校验代码传输正确性的方法。根据被传 输的一组二进制代码的数位中输的一组二进制代码的数位中“1”1”的个数是奇数或的个数是奇数或 偶数来进行校验。采用奇数的称为奇校验,反之,偶数来进行校验。采用奇数的称为奇校验,反之, 称为偶校验。采用何种校验是事先规定好的。通常称为偶校验。采用何种校验是事先规定好的。通常 专门设置一个奇偶校验位,用它使这组代码中专门设置一个奇偶校验位,用它使这组代码中“1”1” 的个数为奇数或偶数。若用奇校验,则当接收端收的个数为奇数或偶数。若用奇校验,则当接收端收 到这组代码时,校验到这组代码时,校验“1”1”的个

5、数是否为奇数,从而的个数是否为奇数,从而 确定传输代码的正确性。确定传输代码的正确性。 9 异步通信的优缺点异步通信的优缺点 通常,异步通信的波特率为509600bit/s。 异步通信的优点是不需要传送同步时钟,字符 帧长度不受限制,故设备简单。缺点是字符帧 中因包含起始位和停止位而降低了有效数据的 传输速率。 10 (2 2)同步通信)同步通信 在同步通信中,每一数据块开头时发送一个或两个同步字符,使发送与接 收双方取得同步。数据块的各个字符间取消了起始位和停止位,所以通信 速度得以提高,如图所示。同步通信时,如果发送的数据块之间有间隔时 间,则发送同步字符填充。 同步通信的数据传输速率较高

6、,通常可达同步通信的数据传输速率较高,通常可达56Kb/s或更高,其缺点是或更高,其缺点是 要求发送时钟和接收时钟必须保持严格同步要求发送时钟和接收时钟必须保持严格同步。 11 同步串口与异步串口同步串口与异步串口 同步串口 具有至少一根时钟线、1-2根数据线的串行通讯方式,利用时钟沿对齐数 据,所以此种通讯较为可靠,可以实现很高的通讯速率(1Mbps以上,可 达Gbps级别)。SPI、IIC、都属于同步串口。 异步串口 无专门的时钟线,只有1-2根数据线,收发双方依据实现约定好的位速率 确定各个数据位的时间位置,可靠性相对较差,速率在1Mbps以下。异步 串口最常见的是UART,以及衍生出来

7、的RS232、RS485等。MAXIM公司的1- WIRE总线属于只有一根线的异步串口,如温度传感器DS18B20。 12 串并转换 发送时的并转串 (1)串并转换与设备同步 13 接收时的串转并 14 设备同步 进行串行通信的两台设备必须同步工作才能有效进行串行通信的两台设备必须同步工作才能有效 地检测通信线路上的信号变化,从而采样传送数地检测通信线路上的信号变化,从而采样传送数 据脉冲。据脉冲。 设备同步对通信双方有两个共同要求:设备同步对通信双方有两个共同要求: 一是通信双方必须采用统一的编码方法;一是通信双方必须采用统一的编码方法; 二是通信双方必须能产生相同的传送速率。二是通信双方必

8、须能产生相同的传送速率。 15 (2 2)串行通信协议)串行通信协议 通信协议(communications protocol)是指双方实 体完成通信或服务所必须遵循的规则和约定。协议 定义了数据单元使用的格式,信息单元应该包含的 信息与含义,连接方式,信息发送和接收的时序, 从而确保网络中数据顺利地传送到确定的地方。 16 (2 2)串行通信协议)串行通信协议 协议主要由以下三个要素组成: 语法: “如何讲”,数据的格式、编码和信号等级(电平的高低)。 语义: “讲什么”,数据内容、含义以及控制信息。 定时:速率匹配和排序。 17 (2 2)串行通信协议)串行通信协议 起始位 数据位 奇偶校

9、验位 停止位 波特率设置 握手信号约定 18 6.1 6.1 串行口的结构串行口的结构 串行接口电路的种类和型号很多。能够完成异步通信的硬件 电路称为UART,即通用异步接收器/发送器;能够完成同步 通信的硬件电路称为USRT;既能够完成异步又能同步通信的 硬件电路称为USART。 从本质上说,所有的串行接口电路都是以并行数据形式与 CPU连接,以串行数据形式与外部逻辑设备连接。它们的基 本功能是从外部逻辑设备接收串行数据,转换成并行数据后 传送给CPU,或从CPU接收并行数据,转换成串行数据后输 出到外部逻辑设备。 19 89S51具有一个全双工串行通信接口。 作用: 作为UART使用。 作

10、为同步移位寄存器用。 功能: 扩展IO口。 通过计算机串口实现与PC机的单机或多机通讯。 实现单片机系统之间的点对点单机通讯。 20 89S5189S51串行口内部结构图串行口内部结构图 有两个物理上独立的接收、发送缓冲器有两个物理上独立的接收、发送缓冲器SBUFSBUF,它们占,它们占 用同一地址用同一地址99H 99H ;接收器是双缓冲结构;接收器是双缓冲结构 ;发送缓冲器,因;发送缓冲器,因 为发送时为发送时CPUCPU是主动的,不会产生重叠错误。是主动的,不会产生重叠错误。 21 引脚RXD(P3.0)串行数据接收端。 引脚TXD(P3.1)串行数据发送端。 89S51用T1作为串行通

11、信的波特率发生器。 22 SCON SCON 是一个特殊功能寄存器,用以设定串行口的工是一个特殊功能寄存器,用以设定串行口的工 作方式、接收作方式、接收/ /发送控制以及设置状态标志:发送控制以及设置状态标志: 6.1.1 6.1.1 串行口控制寄存器串行口控制寄存器SCONSCON SM0SM0和和SM1SM1为工作方式选择位,可选择四种工作方式:为工作方式选择位,可选择四种工作方式: SCON(98H)可位寻址可位寻址 23 SM2SM2,多机通信控制位,多机通信控制位,主要用于方式,主要用于方式2 2和方式和方式3 3。当。当接收机接收机 的的SM2=1SM2=1时可以利用收到的时可以利

12、用收到的RB8RB8来控制是否激活来控制是否激活RIRI(RB8RB80 0时不时不 激活激活RIRI,收到的信息丢弃;,收到的信息丢弃;RB8RB81 1时收到的数据进入时收到的数据进入SBUFSBUF,并,并 激活激活RIRI,进而在中断服务中将数据从,进而在中断服务中将数据从SBUFSBUF读走)。读走)。当当SM2=0SM2=0时,时, 不论收到的不论收到的RB8RB8为为0 0和和1 1,均可以使收到的数据进入,均可以使收到的数据进入SBUFSBUF,并激,并激 活活RIRI(即此时(即此时RB8RB8不具有控制不具有控制RIRI激活的功能)。通过控制激活的功能)。通过控制SM2SM

13、2, 可以实现多机通信。可以实现多机通信。 在方式在方式0 0时,时,SM2SM2必须是必须是0 0。在方式。在方式1 1时,若时,若SM2=1SM2=1,则只有接收,则只有接收 到有效停止位时,到有效停止位时,RIRI才置才置1 1。 RENREN,允许串行接收位,允许串行接收位。由软件置。由软件置REN=1REN=1,则启动串行口接收,则启动串行口接收 数据;若软件置数据;若软件置REN=0REN=0,则禁止接收。,则禁止接收。 24 TB8TB8,在方式,在方式2 2或方式或方式3 3中,是发送数据的第九位中,是发送数据的第九位, 可以用软件规定其作用。可以用作数据的奇偶校验可以用软件规

14、定其作用。可以用作数据的奇偶校验 位,或在多机通信中,作为地址帧位,或在多机通信中,作为地址帧/ /数据帧的标志数据帧的标志 位。位。 在方式在方式0 0和方式和方式1 1中,该位未用。中,该位未用。 RB8RB8,在方式,在方式2 2或方式或方式3 3中,是接收到数据的第九中,是接收到数据的第九 位位,作为奇偶校验位或地址帧,作为奇偶校验位或地址帧/ /数据帧的标志位。数据帧的标志位。 在方式在方式1 1时,若时,若SM2=0SM2=0,则,则RB8RB8是接收到的停止位。是接收到的停止位。 25 TITI,发送中断标志位,发送中断标志位。在方式。在方式0 0时,当串行发送时,当串行发送 第

15、第8 8位数据结束时,或在其它方式,串行发送停止位数据结束时,或在其它方式,串行发送停止 位的开始时,由内部硬件使位的开始时,由内部硬件使TITI置置1 1,向,向CPUCPU发中断申发中断申 请。在中断服务程序中,请。在中断服务程序中,必须用软件将其清必须用软件将其清0 0,取,取 消此中断申请。消此中断申请。 RIRI,接收中断标志位,接收中断标志位。在方式。在方式0 0时,当串行接收时,当串行接收 第第8 8位数据结束时,或在其它方式,串行接收停止位数据结束时,或在其它方式,串行接收停止 位的中间时,由内部硬件使位的中间时,由内部硬件使RIRI置置1 1,向,向CPUCPU发中断申发中断

16、申 请。也请。也必须在中断服务程序中,用软件将其清必须在中断服务程序中,用软件将其清0 0, 取消此中断申请。取消此中断申请。 26 PCONPCON中只有一位中只有一位SMODSMOD与串行口工作有关与串行口工作有关 : SMOD SMOD(PCON.7PCON.7) 波特率倍增位。在串行口波特率倍增位。在串行口 方式方式1 1、方式、方式2 2、方式、方式3 3时,波特率与时,波特率与SMODSMOD有关,当有关,当 SMOD=1SMOD=1时,波特率提高一倍。复位时,时,波特率提高一倍。复位时,SMOD=0SMOD=0。 PCON(87H)不可位寻址不可位寻址 6.1.2 6.1.2 串

17、行口控制寄存器串行口控制寄存器PCONPCON 27 SM0SM1方式功 能 说 明 000 同步方式(扩展移位寄存器方式,用于 I/O口扩展),波特率固定(fosc12) 011 8位UART,波特率可变(由T1或T2溢出率 决定) 102 9位UART,波特率固定(fosc64或fosc 32) 113 9位UART,波特率可变(由T1或T2溢出率 决定) 6.2 6.2 串行口的串行口的4 4种工作方式种工作方式 28 6.2.1 6.2.1 方式方式0 0 方式方式0 0时,串行口为同步移位寄存器的输入输出方式。时,串行口为同步移位寄存器的输入输出方式。 主要用于扩展并行输入或输出口。

18、数据由主要用于扩展并行输入或输出口。数据由RXDRXD(P3.0P3.0)引脚)引脚 输入或输出,同步移位脉冲由输入或输出,同步移位脉冲由TXDTXD(P3.1P3.1)引脚输出。发送)引脚输出。发送 和接收均为和接收均为8 8位数据,低位在先,高位在后。波特率固定为位数据,低位在先,高位在后。波特率固定为 fosc/12fosc/12。 29 方式方式0 0输入输入 方式方式0 0接收和发送电路接收和发送电路 30 串口外接74HCl64串入并出移位寄存器的接口逻辑见课本图7-5 所示。TXD输出移位脉冲,RXD输出数据移入74LSl64。 CPU写发送SBUF,启动串行口从低位开始发送,经

19、过8个发送周 期,发送SBUF的内容移入74LSl64,并置位TI,完成一字节输 出。 若fosc=12MHz,则串行输出一位的时间是1s,传输一个字节 需8s。 从低位开始串行输出,数据的低位在右高位在左,在具体应用 中应加以注意。方式0输出时,可以串接多个移位寄存器。 31 例例6-1 6-1 串行数据转换为并行数据(串转并)串行数据转换为并行数据(串转并) 说明 本例的功能为单片机发出串行数据经串并转换芯片74HC164 转换为并行数据,并将转换的数据通过8只LED显示出来。 本例串口工作于模式0,移位寄存器I/O模式,串行数据由 RXD发送给74HC164,TXD用于输出移位时钟脉冲。

20、 32 电路图电路图 XTAL2 18 XTAL1 19 ALE 30 EA 31 PSEN 29 RST 9 P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32 P2.7/A15 28 P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27 P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7

21、8 P3.0/RXD 10 P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.7/RD 17 P3.6/WR 16 P3.5/T1 15 U1 甲机CLOCK=11.0592MHz XTAL2 18 XTAL1 19 ALE 30 EA 31 PSEN 29 RST 9 P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32 P2.7/A15 28 P2.0/A8 21 P2.1/A9 22 P2.2/A1

22、0 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27 P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8 P3.0/RXD 10 P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.7/RD 17 P3.6/WR 16 P3.5/T1 15 U4 乙机CLOCK=11.0592MHz K1 D2 R1 220 R2 220 D1 甲机按键控制乙机LED闪烁 R3 220 D3 D4 R4 220 2 3 4 5 6 7 8 9 1

23、RP1 RESPACK-8 K2 乙机按键控制甲机数码管显示 RXDA TXDA RXDA TXDA 33 知识补充(知识补充(7474系列芯片简介)系列芯片简介) 数字集成电路有双极型集成电路(如数字集成电路有双极型集成电路(如TTLTTL、ECLECL)和单极)和单极 型集成电路(如型集成电路(如CMOSCMOS)两大类,每类中又包含有不同的系列)两大类,每类中又包含有不同的系列 品种品种 1 TTL1 TTL数字集成电路数字集成电路 这类集成电路内部输入级和输出级都是晶体管结构,属于双这类集成电路内部输入级和输出级都是晶体管结构,属于双 极型数字集成电路。其主要系列有:极型数字集成电路。

24、其主要系列有: 7474系列系列 74H74H系列系列 (早期产品,逐渐被淘汰)(早期产品,逐渐被淘汰) 74S74S系列系列 74AS74AS系列(速度较高,但品种较少)系列(速度较高,但品种较少) 74LS74LS系列系列 (目前最常用)(目前最常用) 74ALS74ALS系列系列 (74LS74LS后续产品,速度高、功耗低、价格贵)后续产品,速度高、功耗低、价格贵) 34 74LS 74LS系列是当前系列是当前TTLTTL类型中的主要产品系列。品种和生产厂家类型中的主要产品系列。品种和生产厂家 都非常多。性能价格比比较高,目前在中小规模电路中应用都非常多。性能价格比比较高,目前在中小规模

25、电路中应用 非常普遍。非常普遍。 d1 d2 d3 d4 d5 d6 d7 d8 d1 d2 d3 d4 d5 d6 d7 d8 XTAL2 18 XTAL1 19 ALE 30 EA 31 PSEN 29 RST 9 P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32 P1.0/T2 1 P1.1/T2EX 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8 P3.0/RXD 10 P3.1/TXD 11 P3.2/I

26、NT0 12 P3.3/INT1 13 P3.4/T0 14 P3.7/RD 17 P3.6/WR 16 P3.5/T1 15 P2.7/A15 28 P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27 U1 AT89C52 C1 22pF C2 22pF C3 10uF X1 CRYSTAL R9 10k R1 220 R2 220 R3 220 R4 220 R5 220 R6 220 R7 220 R8 220 D1 LED-RED D2 LED-RED D3 LED-RED

27、D4 LED-RED D5 LED-RED D6 LED-RED D7 LED-RED D8 LED-RED A B C D SRG8 R C1/- /设为串口模式,并允许串口接收 while(1) SH = 0; /置数,读入并行输入口的8位数据 SH = 1; /移位,并口输入被封锁,串行转换开始 while (RI = 0); /未接收一字节等待 RI = 0; P0 = SBUF;/接收到的字节显示在P0端口,显示的值与拨码开 关对应 45 方式方式1 1是是1010位数据的异步通信口。位数据的异步通信口。TXDTXD为数据发送引脚,为数据发送引脚,RXDRXD为数据接收引脚,传送为数

28、据接收引脚,传送 一帧数据的格式如图所示。其中一帧数据的格式如图所示。其中1 1位起始位,位起始位,8 8位数据位,位数据位,1 1位停止位。位停止位。 1 1、方式、方式1 1输出输出 6.2.2 6.2.2 方式方式1 1 46 方式1输出 CPU向发送SBUF写入一个数据,即启动发送,从TXD端 输出一帧信息,先发送起始位0,接着从低位开始依次输出8 位数据,最后输出停止位1,并置1发送中断标志TI。 CPU查询TI=1后,清TI,再向SBUF写入数据,启动下一 字符发送。也可以采用中断方式,TI=1时向CPU产生中断请 求。 47 方式方式1 1输入输入 用软件置REN为1时,接收器以

29、所选择波特率的16倍速率采样RXD引脚电 平,检测到RXD引脚输入电平发生负跳变时,则说明起始位有效,将其移入 输入移位寄存器,并开始接收这一帧信息的其余位。接收过程中,数据从输 入移位寄存器右边移入,起始位移至输入移位寄存器最左边时,控制电路进 行最后一次移位。当RI=0,且SM2=0(或接收到的停止位为1)时,将接收到 的9位数据的前8位数据装入接收SBUF,第9位(停止位)进入RB8,并置RI=1, 向CPU请求中断。 48 方式一输入 REN置1允许接收器接收。接收器以所选波特率的16倍的速率采样 RXD端的电平。当检测到RXD端输入电平发生负跳变时,复位内部的十 六分频计数器。 计数

30、器的16个状态把传送一位数据的时间分为16等分,在每位中心, 即7、8、9这三个计数状态,位检测器采样RXD的输入电平,接收的值是 三次采样中至少是两次相同的值,这样处理可以防止干扰。 如果在第1位时间接收到的值(起始位)不是0,则起始位无效,复位 接收电路,重新搜索RXD端上的负跳变。接收到停止位为1时,将接收到 的8位数据装入接收数据缓冲器SBUF,置位RI,供CPU查询或向CPU请求 中断。 49 6.2.3 6.2.3 方式方式2 2和方式和方式3 3 方式2和方式3是9位异步串行通信方式,TXD为数据发送端,RXD为数据 接收端。方式2的波特率固定为振荡器频率的164或132,而方式

31、3的波 特率由定时器T1或T2的溢出率确定(UART1方式3的波特率由定时器T1或 T4的溢出率确定)。 在方式2和方式3中,一帧信息为11位:1位起始位,8位数据位(先低位后 高位),1位附加的第9位数据(发送时为SCON中的TB8,接收时为SCON 中的RB8。用于奇偶校验和多机通信),1位停止位。数据的格式如下图 所示。 50 方式方式2 2或方式或方式3 3时为时为1111位数据的异步通信口。位数据的异步通信口。TXDTXD为数据发送引为数据发送引 脚,脚,RXDRXD为数据接收引脚为数据接收引脚 。 方式方式2 2和方式和方式3 3时起始位时起始位1 1位,数据位,数据9 9位(含位

32、(含1 1位附加的第位附加的第9 9位,发送时为位,发送时为SCONSCON中中 的的TB8TB8,接收时为,接收时为RB8RB8),停止位),停止位1 1位,一帧数据为位,一帧数据为1111位。方式位。方式2 2的波特率固定为晶的波特率固定为晶 振频率的振频率的1/641/64或或1/321/32,方式,方式3 3的波特率由定时器的波特率由定时器T1T1的溢出率决定。的溢出率决定。 方式方式2 2和方式和方式3 3 51 1 1、方式、方式2 2和方式和方式3 3输出输出 发送开始时,先把起始位发送开始时,先把起始位0 0输出到输出到TXDTXD引脚,然后发送移位寄存器引脚,然后发送移位寄存

33、器 的输出位(的输出位(D0D0)到)到TXDTXD引脚。每一个移位脉冲都使输出移位寄存器的各引脚。每一个移位脉冲都使输出移位寄存器的各 位右移一位,并由位右移一位,并由TXDTXD引脚输出。引脚输出。 第一次移位时,停止位第一次移位时,停止位“1”1”移入输出移位寄存器的第移入输出移位寄存器的第9 9位上位上 ,以,以 后每次移位,左边都移入后每次移位,左边都移入0 0。当停止位移至输出位时,左边其余位全为。当停止位移至输出位时,左边其余位全为0 0, 检测电路检测到这一条件时,使控制电路进行最后一次移位,并置检测电路检测到这一条件时,使控制电路进行最后一次移位,并置TI=1TI=1, 向向

34、CPUCPU请求中断。请求中断。 方式方式2 2和方式和方式3 3 52 2 2、方式、方式2 2和方式和方式3 3输入输入 接收时,数据从右边移入输入移位寄存器,在起始位接收时,数据从右边移入输入移位寄存器,在起始位0 0移移 到最左边时,控制电路进行最后一次移位。当到最左边时,控制电路进行最后一次移位。当RI=0RI=0,且,且SM2=0SM2=0 (或接收到的第(或接收到的第9 9位数据为位数据为1 1)时,接收到的数据装入接收缓)时,接收到的数据装入接收缓 冲器冲器SBUFSBUF和和RB8RB8(接收数据的第(接收数据的第9 9位),置位),置RI=1RI=1,向,向CPUCPU请求

35、中请求中 断。如果条件不满足,则数据丢失,且不置位断。如果条件不满足,则数据丢失,且不置位RIRI,继续搜索,继续搜索 RXDRXD引脚的负跳变。引脚的负跳变。 方式方式2 2和方式和方式3 3 53 方式方式2 2和方式和方式3 3 多一附加位TB8、RB8,可用于多机通信和奇偶校验 区别是波特率不同 输出:写发送SBUF即启动发送发完置位TI 输入:置位REN 接收完后,若RI=0、SM2=0或收到 的第9位为1,则置位RI 读接收SBUF 54 6.3 6.3 多机通信多机通信 多个AT89S51单片机可利用串行口进行多机通信,经常采用主 从式结构,该多机系统中有一个主机(AT89S51

36、单片机或PC机) 和多个从机(AT89S51单片机)。 55 主机与从机,每个从机有一个唯一的地址码。主机与从机,每个从机有一个唯一的地址码。 主机可与每个从机通信,从机之间不能通信。主机可与每个从机通信,从机之间不能通信。 主机每一时段只能与一个从机通信。主机每一时段只能与一个从机通信。 先叫地址,然后再通信。先叫地址,然后再通信。 主机的主机的RXD与从机的与从机的TXD相连,主机相连,主机TXD与从机与从机 的的RXD端相连。从机地址分别为端相连。从机地址分别为00H、01H、02H。 56 波特率(Baud rate)即调制速率,指的是信号被调制以后 在单位时间内的变化,即单位时间内载

37、波参数变化的次数。 它是对符号传输速率的一种度量,1波特即指每秒传输1个符 号。 比特率:比特率:每秒钟传送的二进制位数,用每秒钟传送的二进制位数,用 b / s b / s 表示表示 (b b表示表示bitbit) 波特率是指数据信号对载波的调制速率,它用单位时间内波特率是指数据信号对载波的调制速率,它用单位时间内 载波调制状态改变的次数来表示,其单位是波特(载波调制状态改变的次数来表示,其单位是波特(BaudBaud)。)。 波特率与比特率的关系是比特率波特率与比特率的关系是比特率= =波特率波特率X X单个调制状态对单个调制状态对 应的二进制位数。应的二进制位数。 6.4 6.4 波特率

38、的制定方法波特率的制定方法 在无信号调制的串行传输中,波特率在无信号调制的串行传输中,波特率= =比特率比特率 ,因此课,因此课 本定义为:串口每秒发送(或接收)的位数。本定义为:串口每秒发送(或接收)的位数。 57 在串行通信中,收发双方对发送或接收数据的速率要在串行通信中,收发双方对发送或接收数据的速率要 有约定。通过软件可对单片机串行口编程为四种工作有约定。通过软件可对单片机串行口编程为四种工作 方式,其中方式方式,其中方式0 0和方式和方式2 2的波特率是固定的,而方式的波特率是固定的,而方式 1 1和方式和方式3 3的波特率是可变的,由定时器的波特率是可变的,由定时器T1T1的溢出率

39、来的溢出率来 决定。决定。 串行口的四种工作方式对应串行口的四种工作方式对应三种波特率三种波特率。由于输。由于输 入的移位时钟的来源不同,所以,各种方式的波特率入的移位时钟的来源不同,所以,各种方式的波特率 计算公式也不相同。计算公式也不相同。 方式方式0 0的波特率的波特率 = fosc/12= fosc/12 方式方式2 2的波特率的波特率 = =(2 2SMOD/64/64) fosc fosc 方式方式1 1的波特率的波特率 = =(2 2SMOD/32/32)(T1T1溢出率)溢出率) 方式方式3 3的波特率的波特率 = =(2 2SMOD/32/32)(T1T1溢出率)溢出率) 波

40、特率设计波特率设计 58 当当T1T1作为波特率发生器时,最典型的用法是使作为波特率发生器时,最典型的用法是使T1T1工作在自工作在自 动再装入的动再装入的8 8位定时器方式(即方式位定时器方式(即方式2 2,且,且TCONTCON的的TR1=1TR1=1,以启,以启 动定时器)。这时溢出率取决于动定时器)。这时溢出率取决于TH1TH1中的计数值。中的计数值。 T1 T1 溢出率溢出率 = fosc /12= fosc /12256 256 (TH1TH1) 在单片机的应用中,常用的晶振频率为:在单片机的应用中,常用的晶振频率为:12MHz12MHz和和 11.0592MHz11.0592MH

41、z。所以,选用的波特率也相对固定。常用的串行。所以,选用的波特率也相对固定。常用的串行 口波特率以及各参数的关系如表所示。口波特率以及各参数的关系如表所示。 59 60 例例 89C51单片机时钟振荡频率为11.0592MHz,选用定 时器T1工作模式2为波特率发生器,波特率为 2400b/s,求初值。 解:解:设波特率控制位设波特率控制位SMOD0=0,定时器,定时器T1计数计数 脉冲控制位脉冲控制位T1M=0,则有:,则有: XTAL2 18 XTAL1 19 ALE 30 EA 31 PSEN 29 RST 9 P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0

42、.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32 P1.0/T 2 1 P1.1/T2EX 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8 P3.0/RXD 10 P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T 0 14 P3.7/RD 17 P3.6/WR 16 P3.5/T 1 15 P2.7/A15 28 P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26

43、 P2.6/A14 27 U1 AT89C52 C1 22pF C2 22pF C3 10uF X1 CRYSTAL R1 10k XTAL2 18 XTAL1 19 ALE 30 EA 31 PSEN 29 RST 9 P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32 P1.0/T 2 1 P1.1/T2EX 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8 P3.0/RXD 10 P3.1/TXD 11 P3.2

44、/INT0 12 P3.3/INT1 13 P3.4/T 0 14 P3.7/RD 17 P3.6/WR 16 P3.5/T 1 15 P2.7/A15 28 P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27 U2 AT89C52 C4 22pF C5 22pF C6 10uF X2 CRYSTAL R2 10k D1 D2 R3 220 R4 220 单片机甲单片机甲 单片机乙单片机乙 61 UARTUART使用步骤使用步骤 1.设置串口工作模式,SCON的SM0,SM1使其工作

45、于模式1,REN=1 使能接收。 2.根据波特率计算公式设置波特率,通常选用定时器模式2(自 动重装初值定时器)比较适用。 3.波特率是否需要倍速,PCON寄存器中的SMOD=1,波特率倍速。 4.串口中断,一般来讲串口发送均会采用查询模式,串口接收较 多采用中断模式,EA=1开全总中断,ES=1开串口中断,注意, 要写好中断服务程序,且AT89C51的串口收发中断共用,因此 中断服务函数中需要判断TI与RI的值。 5.向SBUF写入数据启动串口发送,读SBUF可取出接收到的数据。 62 串行口工作之前,应对其进行初始化,主要是设置产串行口工作之前,应对其进行初始化,主要是设置产 生波特率的定时器生波特率的定时器1 1、串行口控制和中断控制。具体步骤如、串行口控制和中断控制。具体步骤如 下:下: 确定确定T1T1的工作方式的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论