1 / 15

jpk.tgc/ dpjyl

www. jpk.tgc.edu.cn/ dpjyl .com. 第六章. 80C51 的串行接口. 第六章 80C51 的串行接口. 第二十四讲 单片机的串行接口. 一、串行通信概述 1 、什么叫串行通信? 并行、串行举生活中的例子(排横队行走,排纵队行走)说明; 引出并行通信,串行通信的概念。. P00 P01 P02 P03 单片机 RXD. 外设 1. 外设 2. TXD. 2 、同步通信、异步通信

lael
Download Presentation

jpk.tgc/ dpjyl

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. www.jpk.tgc.edu.cn/dpjyl.com 第六章 80C51的串行接口

  2. 第六章 80C51的串行接口 第二十四讲 单片机的串行接口 一、串行通信概述 1、什么叫串行通信? 并行、串行举生活中的例子(排横队行走,排纵队行走)说明; 引出并行通信,串行通信的概念。 P00 P01 P02 P03 单片机 RXD 外设1 外设2 TXD

  3. 2、同步通信、异步通信 提问:数字电路中移位寄存器是怎样进行移位的? 同步——发送设备时钟等于接收设备时钟。 同步字符1 同步字符2 数据1 数据2 ···数据n 校验字符 校验字符 异步——发送时钟不一定等于接收时钟。 空闲位 起始位 5 ~ 8位数据 奇偶校验位 停止位 空闲位

  4. 3、串行通信方向 A B 发 单工 收 A B 发 半双工 发 收 收 A 全双工 B 发 收 收 发

  5. 4、波特率 • 即串行通信速率。 b/s 、 bps • 举例、设有一帧信息,1个起始位、8个数据位、1个停止位,传输速率为 • 240个字符。求波特率。 • 解: • (1+8+1)×240 = 2400 b/s = 2400波特。 • 5、串行通信接口 • 发送: 展示投影胶片 CPU • D7 D6 D5 D4 D3 D2 D1 D0 发送数据寄存器 • SBUF(99H) • 1 D7 D6 D5 D4 D3 D2 D1 D0 0 发送数据 • 发送时钟

  6. 接收时钟 0 D0 D1 D2 D3 D4 D5 D6 D7 1 接收数据 D0 D1 D2 D3 D4 D5 D6 D7 接收数据寄存器 SBUF(99H) CPU

  7. 二、80C51单片机机串行接口 • 单片机内有:通用异步接收/发送器 UART • 全双工,4种工作方式,波特率可编程设置,可中断。 • 1、串口的组成 • 从编程角度讲来看主要由以下寄存器组成。 • PCON SMOD • SCON SM0 SM1 SM2 REN TB8 RB8 TI RI • SBUF D7 D6 D5 D4 D3 D2 D1 D0 SBUF发 SBUF收

  8. SM0、SM1:工作方式选择位(后面再讲) • SM2:多机通信控制位,常与RB8配合,决定是否激活RI • REN:允许接收 • TB8:发送的第九位数 • RB8:接收的第九位数 • TI :中断标志 • RI • SMOD:波特系数选择位,0 —— 20 = 1 • 1 —— 21 = 2

  9. 2、串行口的工作方式 • (1)方式0:同步移位寄存器方式,波特率固定为fosc / 12 • RXD —— 接收发送数据 • TXD —— 产生同步移位脉冲 • 接收/发送完,置位RI / TI ,(要求SM2 = 0) • 方式0 D7 D6 D5 D4 D3 D2 D1 D0 发送 • D0 D1 D2 D3 D4 D5 D6 D7 接收 • 无起始位,无停止位

  10. (2)方式1:8位UART,波特率为(2SMOD×T1的溢出率)/ 32 • 停止位 D7 D6 D5 D4 D3 D2 D1 D0 起始位 发送位 • 起始位 D0 D1 D2 D3 D4 D5 D6 D7 停止位 接收位 • 送RB8位 • 1帧信息,10位。 • 波特率可变: 2SMOD / 32 ×(T1的溢出率) • 发送完置位TI。 • 接收完数据置位RI。 • 置位RI是有条件的。即: • REN = 1,RI = 0 且SM2 = 0或SM2 = 1但是接收到的停止位为1。 • 此时,数据装载SBUF,停止位进入RB8,RI置1。

  11. (3)方式2、方式3 :9位UART,多机通信。 • 停止位 TB8 D7 D6 D5 D4 D3 D2 D1 D0 起始位 发送 • 起始位 D0 D1 D2 D3 D4 D5 D6 D7 TB8 停止位 接收 • 送RB8 • 方式2波特率:(固定)2SMOD / 64 × fosc • 方式3波特率: 2SMOD / 32 ×(T1溢出率) • 发送完数据置位TI。 • 接收到有效数据完毕,置位RI。 • 有效数据条件:REN = 1,RI = 0 且SM2 = 0或接收到第9位数据为1。 • 此时,数据装载SBUF,第9位数据(TB8) RB8,RI置1。

  12. 3、波特率的设置 • 方式0、方式2固定。 • 方式1,方式3可变。波特率 = 2SMOD / 32 ×(T1的溢出率) • T1溢出率 = 单位时间内溢出次数 = 1 /(T1的定时时间) • 而T1的定时时间t就是T1溢出一次所用的时间。此情况下,一般设T1工作在模式2(8位自动重装初值)。 • N = 28- t / T, t = (28-N)T =(28-N)×12 / fosc • 所以,T1溢出率 = 1/t = fosc / 12(28-N), • 故, 波特率 = 2SMOD / 32 × fosc / 12(256-N)。 • 若已知波特率,则可求出T1的计数初值: • y = 256-2SMOD×fosc / (波特率×32×12)

  13. 巩固练习: • 例、若fosc = 6MHz,波特率为2400波特,设SMOD = 1,则定时/计数器T1的计数初值为多少?并进行初始化编程。 • 解:y = 256-2SMOD×fosc / (2400×32×12)= 242.98≈243 = F3H • 同理,fosc = 11.0592MHz,波特率为2400,设SMOD = 0,则 • y = F4H • 初始化编程: • MOV TMOD,#20H • MOV PCON,#80H • MOV TH1,#0F3H • MOV TL1,#0F3H • SETB TR1 • MOV SCON,#50H

  14. 小结: • 1、什么叫串行通信? • 2、UART叫什么?(通用异步接收/发送器) • 3、单工、半双工、全双工? • 4、串口工作用到哪些寄存器?(PCON、SCON、SBUF) • 5、串口有几种工作方式? • 6、波特率如何设置?(T1的计数初值如何确定)

  15. Thank You !

More Related