1 / 34

第七章 MCS-51 串行口

第七章 MCS-51 串行口. 7 .1 串行口结构. 1. 7 .2 串行口工作方式. 2. § 7 .1 串行口结构. 学习内容. 1. 2. 串行通信基本概念. 串行口 结构. 一、基本概念. 通信的两种基本方式 串行通信的分类 波特率的概念 串行通信的制式. 1 、通信的两种基本方式. 通信: 是计算机与外界的 信息交换 。 两种基本方式 并行通信: 所传送数据的各位 同时 发送或接收,信息传输线的位数与数据的位数相等。 串行通信: 所传送数据的各位按顺序 一位一位 地发送或接收, 先 传送 低 位 后 送 高 位。.

zinna
Télécharger la présentation

第七章 MCS-51 串行口

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第七章 MCS-51串行口 7.1串行口结构 1 7.2串行口工作方式 2

  2. §7.1 串行口结构 学习内容 1 2 串行通信基本概念 串行口 结构

  3. 一、基本概念 • 通信的两种基本方式 • 串行通信的分类 • 波特率的概念 • 串行通信的制式

  4. 1、通信的两种基本方式 • 通信:是计算机与外界的信息交换。 • 两种基本方式 • 并行通信:所传送数据的各位同时发送或接收,信息传输线的位数与数据的位数相等。 • 串行通信:所传送数据的各位按顺序一位一位地发送或接收,先传送低位后送高位。

  5. 速度快,适合近距离传输;但占用数据线多,线路复杂,成本高。速度快,适合近距离传输;但占用数据线多,线路复杂,成本高。 线路简单,成本低,适合远距离通信;但传输速度慢。

  6. 2、串行通信的分类 • 按照串行数据的时钟控制方式,串行通信可分为: • 异步通信 • 同步通信 • ①异步通信: • 接收器和发射器有各自的时钟,它们的工作非同步; • 异步通信用一帧来表示一个字符。

  7. 第n个字符(一帧) n-1 n+1 … … 0 D1 D2 D3 D4 D5 D6 D7 P 1 0 D0 D0 P 1 校验位 起始位 停止位 数据位(5~8位) • 一帧信息包括起始位、数据位、奇偶校验位和停止 • 位四部分。

  8. ②同步通信: • 接收器和发射器由同一时钟源控制; • 同步传输方式去掉了异步传输的起始位和停止位,只在传输数据块时先送出一个同步标志即可。 • 比较: • 同步传输方式比异步传输方式速度快; • 同步传输方式必须用一个时钟来协调收发器的工作,所以它的硬件设备复杂。

  9. 3、波特率的概念 • 波特率:每秒钟所传送的二进制数码的位数。 • 单位:位/秒(bps) • 波特率反映了串行通信的速率。 • 在异步串行通信中,波特率为每秒传送的字符数和每个字符的位数的乘积。

  10. 3、波特率的概念 • [例7-1]:数据传送的速率为120字符/秒,而每个字符又 • 包含10位二进制数,计算波特率大小和每位传送时间。 • 解: • 波特率=120字符/秒×10位/字符 • =1200位/秒=1200bps。 • 每一位的传送时间为波特率的倒数: • T=1/1200=0.833ms。

  11. 4、串行通信的制式 • 在串行通信中,根据数据在两个站点之间的传送 • 方向可以分三种制式: • 单工 • 半双工 • 全双工

  12. ①单工制式 数据可以双向传送,但不能同时发送和接收,要通过换向器转换方向。 ②半双工制式

  13. ③全双工制式 通信双方用两个独立的收发器单独连接,可以同时发送和接收数据,因而提高了速度。

  14. 二、串行口结构 1、MSC-51串行口特点: • 功能很强的全双工串行口,可同时接收和发送数据; • 接收、发送数据均可工作在查询方式或中断方式; • 能方便地与其他计算机或外设实现双机、多机通信。

  15. 2、串行口数据缓冲器SBUF • SBUF是两个物理上独立的接收、发送寄存器。 • 接收SBUF 用于存放接收到的数据,只能读出、不能写入。 • 发送SBUF 用于存放欲发送的数据,只能写入,不能读出。

  16. 注意: 串行口可同时发送和接收数据,两个缓冲器公用一个地址99H,通过对SBUF的读/写指令来区别: • CPU读SBUF时: • MOV A, SBUF ;就是读取接收SBUF的内容; • CPU写SBUF时: • MOV SBUF, A ;就是修改发送SBUF的内容,同时启动数据串行发送。

  17. 3、串行口的控制寄存器 MCS-51串行口是一个可编程接口,涉及两个特 殊功能寄存器: • 串行口控制寄存器SCON • 电源控制寄存器PCON

  18. ①SCON(98H,可位寻址) • 功能:串行通信的方式选择 ,接受和发送控制及串行口的中断标志; • 格式:

  19. SM0 SM1 工作方式 功能说明 波特率 0 0 方式0 同步移位寄存器 fosc/12 0 1 方式1 8位UART 可变 1 0 方式2 9位UART fosc/64或fosc/32 1 1 方式3 9位UART 可变 • SM0、SM1:串行口工作方式控制位。 • SM2:多机通信控制位。用于方式2或方式3中。

  20. REN:串行接收允许位。 0---禁止接收, 1---允许接收 • TB8:发送数据D8位,一般作为奇偶校验位。 在方式2、3中,可以在多机通信中作为区分地址帧或数据帧的标志位,1为地址,0为数据。 • RB8: 接收数据D8位,一般作为奇偶校验位。 在方式2、3中,多机通信中还可根据RB8位的状态对接收数据进行某种控制。

  21. TI:发送中断标志位。 • 发送前必须用软件清零,发送过程中TI保持零 电平; • 发送完一帧数据后,由硬件自动置 “1”。 • RI:接收中断标志位。 • 接收前必须用软件清零,接收过程中RI保持零 电平; • 接收完一帧数据后由片内硬件自动置“1”。

  22. ②PCON(97H,不可位寻址) SMOD : 波特率加倍位。 在计算串行方式 1、 2、 3 的波特率时, SMOD=0——波特率不增倍; SMOD=1——波特率增大一倍。

  23. §7.2串行口工作方式 学习内容 1 2 工作方式 波特率 计算

  24. 一、串行口工作方式 MCS-51单片机的串行通信有四种工作方式: 1、工作方式0:移位寄存器方式 • SM0、SM1=00,同步通信; • 数据格式为8位,低位在前,高位在后; • RXD为串行数据的发送端或接收端; • TXD输出同步脉冲; • 每一个机器周期从RXD上发送或接收一位数据,波特率固定。

  25. RXD TXD 8051 A B CP 74LS164 Q0 Q7 RXD TXD 8051 Q7 CP 74LS165 D0 D7 通过外接串入并出移位 寄存器扩展输出接口。 • 应用:移位寄位器方式多用于接口的扩展。 通过外接并入串出移位寄存器扩展输入接口。 输出方式 输入方式

  26. 2、工作方式1:8位异步通信接口方式 • SM0、SM1=01; • RXD为接收端,TXD为发送端; • 每帧数据由10位构成:1个起始位 “0”,8个数据位和1个停止位“1”;其中起始位和停止位在发送时是自动插入的; • 波特率可变,由T1的溢出率和SMOD决定。

  27. 3、工作方式2/3:9位异步通信接口方式 • SM0、SM1=10/11; • RXD为接收端,TXD为发送端; • 每帧数据由11位构成:1个起始位 “0”,9个数据位和1个停止位“1”;其中起始位和停止位在发送时是自动插入的; • 方式2的波特率固定,方式3的波特率可变。

  28. 二、波特率计算 • 波特率发生器可以有两种选择: • 定时器T1作波特率发生器,改变计数初值就可以改变串行通信的速率,称为可变波特率; • 以内部时钟的分频器作波特率发生器,因内部时钟频率一定,称为固定波特率。

  29. 二、波特率计算 • 1、方式0和方式2:波特率固定 • 方式0中,波特率为:fosc/12; • 方式2中,波特率为: 注意: • 当SMOD=0时,波特率是fosc/64; • 当SMOD=1时,波特率是fosc/32。

  30. 2、方式1和方式3:波特率可变 注意: • T1的溢出率为每秒溢出的次数,取决于T1的计数速率和设置的初值。 • 实际应用中,T1作为波特率发生器时,常用方式2,即自动重载的8位定时器。TL1做计数用,TH1做初值寄存器。

  31. 设初值为x则每过(28-x)个机器周期,定时器溢出一次。设初值为x则每过(28-x)个机器周期,定时器溢出一次。 • 溢出周期为:(28-x)Tcy=(256-x) ×12/fosc • 溢出率是溢出周期的倒数: T1溢出率=fosc/(12 × (256-x) ) • 根据给定的波特率,可以计算T1的计数初值x。

  32. 波特率 (方式1、3) fosc=6M fosc=12M fosc = 11.059M SMOD T1方式 初值 SMOD T1方式 初值 SMOD T1方式 初值 62.5k 1 2 FFH 19.2k 1 2 FDH 9.6k 0 2 FDH 4.8k 1 2 F3H 0 2 FAH 2.4k 1 2 F3H 1 2 F3H 0 2 F4H 1.2k 1 2 E6H 0 2 E6H 0 2 E8H 600 1 2 CCH 0 2 CCH 0 2 D0H 300 0 2 CCH 0 2 98H 0 2 A0H 137. 5 1 2 1DH 0 2 1DH 0 2 2EH 110 0 2 72H 0 1 FEEBH 0 1 FEFFH 常用波特率一览表

  33. [例7-2]:设51单片机串行口工作于方式1,晶振频率为[例7-2]:设51单片机串行口工作于方式1,晶振频率为 • 12MHz,定时器T1工作于模式2作为波特率发生器, • 要求波特率为1200bit/s,SMOD=0,试计算T1的初 • 值和波特率误差。 • 答案: • T1初值: • x=256-2SMOD×fosc/(32×12×波特率)=256-26.04 • =230=E6H • 实际波特率= 2SMOD×fosc/(32×12×(256-230)) • =1201.9b/s=1202bps • 误差:2bps

More Related