第七章 MCS-51 串行口 - PowerPoint PPT Presentation

slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
第七章 MCS-51 串行口 PowerPoint Presentation
Download Presentation
第七章 MCS-51 串行口

play fullscreen
1 / 34
第七章 MCS-51 串行口
172 Views
Download Presentation
zinna
Download Presentation

第七章 MCS-51 串行口

- - - - - - - - - - - - - - - - - - - - - - - - - - - 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