第八章 数据通信.

Slides:



Advertisements
Similar presentations
第1章第1章 PC/AT 系統 1 Chapter 1 Chapter 1 PC/AT 系統 001.
Advertisements

单片机 C 语言应用程序设计 主讲教师:廉哲 QQ: 电话: 办公室:综合楼 C318.
5.1 中断的概述 5.2 MCS - 51中断系统 5.3 中断系统的应用
主讲人:刘利 交通大学网络控制课程系列 上海交通大学机电控制研究所 交通大学网络控制课程系列 考试课、专业基础课、必修课
第八章 数据通信 本章学习目标 了解通信的有关概念 掌握串行通信和并行通信的原理
第7章 AT89S51单片机的 串行口 1.
6 单片机的中断与定时系统 I/O设备必须通过I/O接口与计算机连接。 I/O接口的功能: 1.速度匹配: 锁存数据、传送联络信号。
项目二 中断应用系统设计 本项目学习目标: (1)制作一个单片机控制的彩灯电路。 (2) 理解中断的基本概念;
第三章 计算机系统 的组成与工作原理 本章学习目标 理解模型机的结构及工作过程 掌握单片机的结构 掌握单片机I/O口的使用
第5章 中断系统 5.1 中断的概念 5.2 MCS-51单片机的中断流程 5.3 MCS-51的中断响应条件和中断处理
单片机发展方向及教学改革探讨 ----基于可仿真的STC15F2K60S2系列.
KEIL C单片机设计与项目实践 课程主讲: 孙福成 张小义   王晓静 杨至辉 课件制作: 亢娟娜 王 淏.
本章内容: 中断的概念 MCS-51单片机中断系统 外部事件中断及应用
第一章 计算机基础知识 第一节 计算机概述 一、计算机的基本组成和工作原理 二、有关术语 三、计算机发展简史 四、微型计算机概述
第四章 指令系统及汇编语言程序设计.
任务1: 点亮你的LED----初识单片机.
8051 指令.
單晶片MCS-51 C語言入門實習 第1章 微電腦與單晶片MCS-51架構 作者:董勝源.
第四章 指令系统及汇编语言程序设计.
得技通电子 问题 1 右何者非為假指令 (1) XRL (2) EQU (3) MACRO (4) ORG.
汇编语言程序设计 Assembly Language Programming
第9章 数模转换器与模数转换器 本章学习目标 了解数模转换器的工作原理及性能指标 掌握模数转换器的应用 掌握数模转换器的应用.
复 习 一. 计算机中的数和编码 1. 2,10,16进制数及其之间的转换(整数) 按权展开,除x取余 2
本章内容: 中断的概念 MCS-51单片机中断系统 外部事件中断及应用
6.3 定时器/计数器的应用 初始化 初始化的内容如下:
一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置. 一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置.
第二部分 微机原理 第8章 单片机的 定时/计数器 主讲教师:喻红.
第6章 MCS - 51单片机内部定时器/ 计数器 及串行接口 6.1 定时器/计数器的结构及工作原理 6.2 方式和控制寄存器
單晶片微電腦控制實習 使用計時中斷作走馬燈 計時器的基礎實習 國立大甲高工 電機科 2018年11月21日
YM100开发实验板 演讲人:熊小燕 2009年月12月16日
本章分为三节,主要介绍: 6.1 计算机串行通信基础 C51的串行口 6.3 单片机串行口应用举例.
第十一章 复位、时钟和省电方式控制.
第八章 80C51单片机的串行通信 主要内容:本章主要介绍80C51串行通信相关知识,包括串行通信基本概念,80C51单片机的串行口及其工作方式,以及单片机在双机或多机通信中的应用。
单片机原理及应用 MCS-51系列单片机的基本硬件结构 MCS-51指令系统 MCS-51单片机的系统扩展与应用.
第五章 单片机的C语言程序设计及仿真调试.
第八章 数据通信.
8051's UART mode0 output 通訊二甲 B 洪紹凱.
第三章 计算机系统的组成与工作原理.
微算機(二) 's UART mode0 input
初始化串列通訊埠 在啟始串列傳輸介面時有以下3個步驟:假設傳輸的通訊協定為9600bps,傳送8個位元資料,沒有同位位元,1個停止位元。
第五章 单片机的C语言程序设计及仿真调试.
单片机原理及应用 ——基于Proteus与Keil C 哈工大出版社
第2章 单片机的结构原理与 简单应用 (课时:10学时).
本 章 重 点 单片机的简单I/O扩展 8255A可编程并口芯片 8279可编程键盘/显示器接口芯片 单片机键盘接口技术
第七章 定时/计数器.
第8章 MCS-51串行口 8.1 串行口及其通信方式 8.2 IBM-PC系列机与 单片机 的通信技术.
第2章 单片机系统组成原理 2.1 MCS-51单片机组成原理 2.2 单片机复位电路设计 2.3 MCS-51存储器配置
单元五 MCS-51单片机内部资源 5.1 任务九 单片机计数并显示 5.2 任务十 单片机流水灯控制 5.3 任务十一 两台单片机数据互传
本 章 重 点 单片机的结构特点 单片机的存储器特点 I/O端口的特点 CPU时序 课时安排:3个课时.
主要内容 定时/计数器的工作原理模式 定时/计数器的工作方式 定时/计数器的应用
一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置. 一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置.
第四章 指令系统及汇编语言程序设计.
第4章 中断技术 一个完整的微机系统是由硬件和软件共同构成的。微机系统的硬件有CPU、存储器和I/O口,外设组成。CPU与存储器之间的信息交换比较简单,而CPU与外设之间进行信息交换之前必须确定外设是否准备好,即选择I/O传送方式。I/O传送方式有4种:无条件、查询、中断和DMA。本章学习中断传送方式的有关内容。
第二章 单片机基础知识.
第九章 MCS-51串行接口 9.1 串行数据通信概述 通 信 并行 一、并行通信和串行通信 串行 串行通信 数据是一位一位传送的
单片机系统设计 教师:朱华贵 2016年03月01日
5-6 串列埠模式0輸出埠擴充實習.
汽车单片机应用技术 学习情景1: 汽车空调系统的单片机控制 主讲:向楠.
5-13 串列通訊實習.
CPU中的专用寄存器(SFR) 一、累加器Acc 二、通用寄存器B 三、程序计数器PC 四、堆栈指针SP 五、数据指针DPTR
四川工商学院 单片机原理及应用 刘 强
第三章 计算机系统的组成与工作原理.
微算機(二) 's UART mode1 communication
温度传感器DS18B20 MCU起航 QQ:
单片机原理与应用.
单片机应用技术 (C语言版) 第8章 串行通信接口
第1章 单片机及其开发环境 教学内容 初识单片机 单片机应用系统 Keil µVision软件的使用.
第二章 8086系统结构 /8086的存储器组织 的系统配置及引脚功能 CPU时序
第2章 80C51单片机的硬件结构 教学基本要求: (1)、熟悉单片机的定义、名称、分类方法;
第1章 微型计算机基础.
Presentation transcript:

第八章 数据通信

任课教师:刘忠国 山东大学课程中心网站: http://course.sdu.edu.cn/G2S/stcmcu.cc 宏晶官方网站:http://www.stcmcu.com STC单片机编译(汇编)/编程(烧录)/仿真工具说 明书; stc15系列单片机器件手册等 keil μvision软件下载及指导手册(Help→μvision Help) http://www.keil.com/ Keil Software –Cx51 编译器用户手册: Cx51编译 器--对传统和扩展的8051微处理器的优化的C 编译器和库参考

第八章 数据通信 本章学习目标 了解通信的有关概念 掌握串行通信和并行通信的原理 第八章 数据通信 本章学习目标 了解通信的有关概念 掌握串行通信和并行通信的原理 掌握常见串行接口(RS232/RS485/SPI/I2C)的原 理及应用方法 掌握单片机并行接口的扩展方法

第八章 数据通信 8.1 通信的有关概念 8.1.1 串行通信的相关概念 8.1.2 并行通信的相关概念 8.2 串行接口 8.2.1 单片机的串行接口 8.2.2 RS232串行通信接口 8.2.3 RS485通信接口 8.2.4 SPI通信接口 8.2.5 I2C通信接口 8.3 并行接口的扩展方法 8.3.1 8255A接口及其应用 8.3.2 74HC595接口及其应用 1. 串行口的寄存器 2. 串行口的工作方式 3. 多处理机通信 4. 波特率的设定 5. 串行口通信应用举例

(1)串口1控制寄存器SCON 位号 D7 D 6 D 5 D 4 D 3 D 2 D 1 D 0 位名称 SM0/FE SM1 SM2 REN TB8 RB8 TI RI 1)SM0/FE: PCON寄存器中的SMOD0=1时,该位用于帧错误 检测,当检测到一个无效停止位时,FE置1。它必 须由软件清零。 PCON寄存器中的SMOD0=0时, SM0/FE位和 SM1一起指定串行通信的工作方式。(如下表) 表中SYSclk为振荡器频率

(1)串口1控制寄存器SCON 表8-1 串行通信的工作方式

8.2.1 单片机的串行接口 2、串行接口的工作方式 (1) 串行接口1的工作方式 STC15F2K60S2单片机的串行口1有4种工作方式, 通过设置SCON寄存器的SM0和SM1进行选择 。现 分别加以介绍。 (2) 串行口2的工作方式 方式0 8位UART, 波特率可变 方式1 9位UART, 波特率可变 SM0, SM1 串口1工作方式 0 0 方式0:同步移位寄存器输出方式 0 1 方式1:8位UART可变波特率方式 1 0 方式2:9位UART固定波特率方式 1 1 方式3:9位UART可变波特率方式

2、串行接口的工作方式 (1) 串行接口1的工作方式 ① 方式0: 移位寄存器方式 方式0为半双工方式,又称为同步移位寄存器输出 方式。 在这种方式下, TXD引脚输出同步移位时钟, RXD 用于发送和接收串行数据。 串行口输出端可直接与移位寄存器相连,也可用 作扩展I/O口或外接同步输入输出设备。 该方式下的数据帧为8位,低位在先,高位在后, 没有起始位和停止位。

① 方式0: 移位寄存器方式 图8-9 (a)串行口1方式0功能结构图

②串口1的UART方式 —— (a) 方式1: (a) 方式1:8位可变波特率方式 方式1提供异步全双工通信,适合于点到点的通信。 每个数据帧长度为10位:1个起始位(低电平)、8个 数据位和1个停止位(高电平)。 传输的数据位首先是起始位,然后是8位数据(低位 在前),最后一位是停止位。起始位和停止位是在 发送时自动插入的。 接收时,停止位进入SCON的RB8位。 TXD/P3.1为发送端口, RXD/P3.0为接收端口。

改教材(源于STC15F2K60S2系列单片机器件手册(2013/6/13)) (a) 方式1:8位可变波特率方式 ÷16 本图源于STC15系列单片机器件手册(2015/6/29) 图8-10(a)串行口1方式1功能结构图

方式1: 8位可变波特率方式: ——发送过程 发送数据时, 数据由串行发送端TxD输出。当单片机执 行写SBUF的指令时, 就启动串行通信发送, 写SBUF信 号还把1装入发送移位寄存器的第9位, 并通知TX控制 器开始发送。 发送各位的定时时间由16 4分频计数器同步(?)。 移位寄存器将数据不断右移送TxD端口发送, 数据左边 不断移入0作补充。当数据最高位移到移位寄存器输出 位置, 紧跟其后的是第9位“1” , 在它左边各位全为“0”, 此状态, 使TX控制器作最后一次移位输出后, 使允许发 送信号“SEND” 失效, 完成一帧信息发送, 并置位中断 请求位TI(TI=1), 向CPU请求中断处理。

方式1的发送、接收工作波形图如图所示 图8-10(b)串行口1方式1时序图 SEND 发送 DATA 接收 TI在停止位开始发送时由硬件置位 RI在接收到停止位的中间时刻时由硬件置位 图8-10(b)串行口1方式1时序图

方式1: 8位可变波特率方式: ——接收过程 当软件置位接收允许标志位REN, 即REN=1时, 接收器 便以选定波特率的16 4分频(?)速率采样接收端口RxD, 当检测到RxD端口从1→0的负跳变时就启动接收器准 备接收数据, 并立即复位16 4分频计数器, 将1FFH值装 入移位寄存器。复位16 4分频计数器的目的是使它与 输入位时间同步: 16 4分频计数器的16 4个状态是将每位的接收时间均 为16 4等份, 在每位时间的7, 8, 9状态由检测器对RxD 端口进行采样(?), 经“三中取二” 后的值作为本次所接 收的值, 即3次采样至少2次相同的值, 以此消除干扰 影响, 提高可靠性 。

方式1: 8位可变波特率方式: ——接收过程 检测到RxD从1→0的负跳变, 经“三中取二” 后的值作为本次所接收的值 在起始位, 如果接收到的值不为0 (低电平), 则起始位 无效, 复位接收电路, 并重新检测1→0的跳变。 若接收到的起始位有效, 则将它输入移位寄存器, 并 接收本帧的其余信息。 接收数据从接收移位寄存器右边移入, 已装入的1FFH 向左边移出, 当起始位0移到移位寄存器最左边时, 使 RX控制器作最后一次移位, 完成一帧的接收。 若同时满足两个条件: 1) RI=0;2) SM2=0或接收到的停止位为1。 则接收到的数据有效, 数据载入SBUF, 停止位进入RB8, 置位RI, 向CPU请求中断。 (SM2=0, 则RB8是接收到的停止位)

方式1: 8位可变波特率方式: ——接收过程 接收数据有效的两条件: 1) RI=0;2) SM2=0或接收到的停止位为1。 若上述两条件不能同时满足,则接收到的数据作废 并丢失; 无论条件满足与否,接收器重新检测RxD端口上的 1→0的跳变,继续下一帧的接收。 接收有效,在响应中断后,必须由软件将RI清0。 通常情况下,串行口工作于方式1时,SM2设置为0。 (SM2=0, 则RB8是接收到的停止位)

与下面定时器1工作于模式2(8位自动重装模式)比较。 方式1: 8位可变波特率方式: 波特率 串行通信方式1的波特率是可变的,波特率由定时器 1或定时器2(优先选择定时器2)的溢出率决定。 定时/计数器的溢出率定义为: 单位时间 (秒) 内定时器/计数器溢出的次数。 串行口1用定时器1作为波特率发生器且定时器1工作 于模式0(16位自动重装模式)时, 波特率=(定时器1的溢出率)/4。 注意:此时波特率与SMOD无关。 与下面定时器1工作于模式2(8位自动重装模式)比较。

方式1: 8位可变波特率方式: 波特率 当定时器1工作于模式0 (16位自动重装模式), 若 T1x12 = 0时, 定时器1的溢出率 = SYSclk/12/( 65536 -[RL_TH1, RL_TL1]); 而定时器1工作于模式0(16位自动重装模式)时, 串行 口1的波特率=(定时器1的溢出率)/4。 所以,串口1的波特率 = SYSclk/12/( 65536 - [RL_TH1, RL_TL1]) /4 其中,RL_TH1是TH1的自动重装载寄存器, RL_TL1是TL1的自动重装载寄存器。 计数次数 计满数后溢出 计数初值

方式1: 8位可变波特率方式: 波特率 定时器1工作于模式0(16位自动重装模式)且 T1x12 = 1时, 定时器1的溢出率 方式1: 8位可变波特率方式: 波特率 定时器1工作于模式0(16位自动重装模式)且 T1x12 = 1时, 定时器1的溢出率 = SYSclk / (65536 - [RL_TH1, RL_TL1])。 此时,串口1的波特率 = SYSclk/ ( 65536 - [RL_TH1, RL_TL1])/4。 其中,RL_TH1是TH1的自动重装载寄存器, RL_TL1是TL1的自动重装载寄存器。

方式1: 8位可变波特率方式: 波特率 当串行口1用定时器1作为波特率发生器且定时器1工作 于模式2 (8位自动重装模式)时 波特率= ×(定时器1的溢出率) 当定时器1工作于模式2(8位自重装模式)且T1x12 = 0时, 定时器1的溢出率= SYSclk/12/( 256 - TH1); 此时,串口1的波特率= × SYSclk/12/( 256 - TH1) PCON中SMOD为波特率加倍位: 当SMOD=1时,波特率 为SYSclk/16;当SMOD=0时,波特率为SYSclk/32。

方式1: 8位可变波特率方式: 波特率 当串行口1用定时器1作为波特率发生器且定时器1工作 于模式2(8位自动重装模式), 且T1x12 = 1时, 定时器1的溢出率= SYSclk / ( 256 - TH1) 此时,串口1的波特率= ×(定时器1的溢出率) = × SYSclk/ ( 256 - TH1)

方式1: 8位可变波特率方式: 波特率 当串行口1用定时器2(固定的16位自动重装模式) 时, 当T2x12=0时, 定时器2的溢出率 方式1: 8位可变波特率方式: 波特率 当串行口1用定时器2(固定的16位自动重装模式) 时, 当T2x12=0时, 定时器2的溢出率 =SYSclk/12/(65536- [RL_TH2, RL_TL2] ) 此时,串口1的波特率 = SYSclk/12/( 65536 - [RL_TH2,RL_TL2])/4 当T2x12 = 1时,定时器2的溢出率 =SYSclk/(65536- [RL_TH2,RL_TL2] )。 = SYSclk/ ( 65536 - [RL_TH2,RL_TL2])/4。 其中,RL_TH2是TH2的自动重装寄存器, RL_TL2是TL2的自动重装寄存器。

(b) 串口方式2:9位固定波特率方式 方式2提供异步全双工通信,适合于固定波特率的 多机通信。 每个数据字节长度为11位:1个起始位、8个数据位 (低位在前)、1个可编程的第9位(TB8/RB8)和1个停 止位。与方式1相比,每帧增加了一个第9位。 发送时, 第9位数据由TB8确定,可置位也可清0。 接收时,第9位进入RB8位。 TXD/P3.1为发送端口, RXD/P3.0为接收端口。

(b) 串口方式2:9位固定波特率方式 方式2的波特率= PCON寄存器中的SMOD为波特率加倍位 当SMOD=1时,波特率为SYSclk/32; 当SMOD=0时,波特率为SYSclk/64。 方式2的收发过程: 方式2和方式1相比, 除波特率发生源略有不同, 和发送 时由TB8提供给移位寄存器第9数据位不同外, 其余功 能结构均基本相同, 其接收/发送操作过程及时序也基 本相同。 (SYSclk:系统时钟频率)

8-12 串行通信方式2的功能结构示意图 图8-11 (a)串行通信方式2的功能结构示意图

——接收过程 (b) 串口方式2: 9位固定波特率方式 当接收器接收完一帧信息后必须同时满足下列条件: RI=0; SM2=0或SM2=1, 且接收到的第9数据位RB8=1。 当上述两条件同时满足时,才将接收到的移位寄存器 的数据装入SBUF和RB8中,并置位RI,向CPU请求 中断处理。 如果上述条件有一个不满足,则刚接收到移位寄存器 中的数据无效而丢失,也不置位RI。 无论上述条件满足与否,接收器又重新开始检测RxD 输入端口的跳变信息,接收下一帧的输入信息。

②串口1的UART方式 ——(c) 串口方式3 (c) 串口方式3:9位可变波特率方式 该方式也适于多机通信。方式3的每个数据字节长度 为11位:1个起始位、8个数据位(低位在前)、1个可编 程的第9位(TB8/RB8)和1个停止位。 发送时, 第9位数据由SCON的TB8确定, 可置1也可清0。 TB8既可作为多机通信中的地址数据标志位,又可作为 数据奇偶校验位 (将PSW中奇/偶校验位P值装入TB8) 接收时,第9位数据进入SCON的RB8位。 TXD/P3.1为发送端口, RXD/P3.0为接收端口,以全双工 模式进行接收/发发送。

改教材(源于STC15F2K60S2系列单片机器件手册(2013/6/13)) 图8-12 (a)串行口1方式3功能结构图

②串口1的UART方式——(c) 串口方式3 (c) 串口方式3: 9位可变波特率方式 图8-12是串行口工作方式3的功能结构示意图及其接收 /发送时序图。 由图可见,方式3和方式1相比, 除发送时由TB8提供给 移位寄存器第9数据位不同外, 其余功能结构和数据接 收/发送操作过程及时序也基本相同。 方式3和方式1一样, 其波特率可通过软件对定时器/计 数器1或定时器2的设置进行波特率选择,是可变的。波 特率的计算方法与方式1相同。

改教材(源于STC15F2K60S2系列单片机器件手册(2013/6/13)) (a) 方式1:8位可变波特率方式 ÷16 本图源于STC15系列单片机器件手册(2015/6/29) 图8-10(a)串行口1方式1功能结构图

②串口1的UART方式 总结 在实际应用中,应根据实际需要选择串行口的工作 方式。 由于方式1和方式3的波特率可以通过定时器1, 2控制, 通信波特率的设定比较灵活, 因此, 方式1和方式3使 用较多; 其中,方式1常用于点对点通信的情况;而方式3常 用语多机通信的情况。 串行口工作方式一览表(见表8-3)。

②串口1的UART方式 表8-3 串行口工作方式一览表。

2.串行口的工作方式 2) 串行口2的工作方式: 2种UART方式 ①方式0 10位数据通过RXD2/P1.0 (RXD2_2/P4.6)接收, 通过 TxD2/P1.1 (TxD2_2/P4.7)发送。 一帧数据含一个起始位(0), 8个数据位和一个停止位(1)。 接收时, 停止位进入特殊功能寄存器S2CON的S2RB8位。 波特率由定时器T2的溢出率决定: 波特率=T2溢出率/4 P_SW2 S2_S 串口2可以在2个地方切换, 由S2_S0控制位选择: 0: 串口2在[P1.0/RxD2, P1.1/TxD2] 1: 串口2在[P4.6/RxD2_2, P4.7/TxD2_2]

(2)串口2控制寄存器S2CON 当T2x12=1时, 定时器2的溢出率: 位号 D7 D 6 D 5 D 4 D 3 D 2 D 1 D 0 位名称 S2SM0 0 - S2SM2 S2REN S2TB8 S2RB8 S2TI S2RI 其中,S2SM0用于指定串口2的工作方式,如表所示: S2SM0 工作方式 功能说明 波特率 方式0 8位UART, 波特率可变 (定时器2的溢出率)/4 1 方式1 9位UART, 波特率可变 当T2x12=1时, 定时器2的溢出率: = SYSclk/(65536 - [RL_TH2, RL_TL2]) 当T2x12=0时, 定时器2的溢出率: = SYSclk /12 /(65536 - [RL_TH2, RL_TL2]) RL_TH2, RL_TL2分别是T2H, T2L的重装载寄存器。

2)串行口2的工作方式: ②方式1 11位数据通过RXD2/P1.0 (RXD2_2/P4.6)接收,通 过TxD2/P1.1 (TxD2_2/P4.7)发送。 一帧数据包含一个起始位(0),8个数据位,一个 可编程的第9位和一个停止位(1)。 发送时,第9位数据由特殊功能寄存器S2CON的 S2TB8位确定;接收时,第9位数据进入特殊功能 寄存器S2CON的S2RB8位。 波特率的计算方法与方式0相同,在此略。

8.2.1 单片机的串行接口 3、多处理机通信 以使用串口1为例,说明多机通信的过程。 串行口控制寄存器SCON中的SM2位为方式2和方式3 工作时进行多机通信的控制位。 这种多机通信方式一般为“一台主机,多台从机” 系统, 主机发送的信息可被各从机接收,而从机只能对主机 发送信息,从机间互相不能直接通信。 典型的多机通信结构图

4、波特率的设定 ← 8.2.1 单片机的串行接口 (1)串行口1的波特率设定 方式0的波特率 当UART_M0x6=0时,波特率为SYSclk/12; 当UART_M0x6=1时,波特率为SYSclk/2。 方式2的波特率(固定) 当SMOD=0时,波特率为SYSclk/64; 当SMOD=1时,为SYSclk/32。 方式1和3的波特率 (可变) 串行口1用方式1和3时, 波特率可变,可编程改变定时 器1的溢出率或者定时器2的溢出率来确定波特率。

4、波特率的设定 编程时应注意 当定时器作为波特率发生器使用时,应禁止定时 器产生中断( ET1=0或者ET2=0 )。 典型用法是定时器1工作在自动再装入时间常数的 定时方式2。设置完成后,启动定时器1(TR1=1或 T2R=1 )。 STC15F2K60S2单片机是“一个时钟周期” 的8051 单片机,选用定时器1,2作为波特率发生器时,应 注意时钟分频的设置与波特率之间的关系,1T模 式下的波特率是相同条件下12T模式的12倍。

4、波特率的设定 常用串行口波特率、系统时钟以及定时器1(工 作于方式2时)重装时间常数之间关系如表8-4 所示。 可以直接从表中查得所需设置的时间常数。 定时器1工作于方式0时以及使用定时器T2作 为波特率发生器时的重装时间常数,可根据 计算公式自行计算。

4、波特率的设定 表8-4 串口1常用波特率与系统时钟及定时器1(方式2)重装时间常数之间 关系 波特率(bps) 时间常数(SMOD=1) 时钟频率(MHz) 分频模式 波特率(bps) 时间常数(SMOD=1) 时间常数(SMOD=0) 1.8432 1T 115200 FFH 57600 FEH 38400 FDH 28800 FCH 19200 FAH 9600 F4H 4800 E8H 2400 D0H 1200 A0H 18.432 576000 288000 144000 F6H ECH E2H D8H C4H 88H 12T FBH B0H 11.0592 14400

4、波特率的设定 表8-4 串口1常用波特率与系统时钟及定时器1(方式2)重装时间常数之间 关系 波特率(bps) 时间常数(SMOD=1) 时钟频率(MHz) 分频模式 波特率(bps) 时间常数(SMOD=1) 时间常数(SMOD=0) 18.432 1T 576000 FEH FFH 288000 FDH 144000 FCH 115200 F6H 57600 ECH 38400 E2H 28800 D8H 19200 C4H 9600 88H 4800 12T FBH 2400 1200 B0H 11.0592 14400 FAH F4H E8H D0H

8.2.1 单片机的串行接口 (1)串口1的编程要点 5、串行接口通信应用举例 下面分别说明STC15F2K60S2单片机使用串口1和串口2 的串行通信程序编程要点。 编程应用中, 虽然可用查询(RI, TI)方式进行通信, 但为 了有效进行实时任务处理, 一般用中断方式进行串行通 信。 (1)串口1的编程要点 1)设置串口的工作模式 设置SCON寄存器的内容。若要串口接收, 需将其中的 REN位置1。 串口1控制寄存器SCON 位号 D7 D 6 D 5 D 4 D 3 D 2 D 1 D 0 位名称 SM0/FE SM1 SM2 REN TB8 RB8 TI RI

5、串行接口通信应用举例 (1)串口1的编程要点 2)设置正确的波特率 ①使用定时器1作为波特率发生器时, 需设置定时器1的工 作方式和时间常数(设置TMOD和TH1,TL1寄存器内容), PCON. SMOD位;启动定时器1(置位TCON. TR1)。 ②使用定时器2作为波特率发生器时, 需设置定时器2寄 存器和相应的位, 包括: 定时器2自动重装寄存器T2H和 T2L, AUXR. T2_C/ 位, T2x12位。启动T2(置位T2R), T2开始计数。 位号 D7 D6 D5 D4 D3 D2 D1 D0 定时器名 定时器1 定时器0 位名称 GATE C/ M1 M0 TMOD

5、串行接口通信应用举例 (1)串口1的编程要点 3)设置串口的中断优先级 (设置IP寄存器PS位, 也 可以不设置, 取默认值), 设置相应的中断控制位 (IE. ES和IE. EA)。 4)如要串口1发送,将数据送入SBUF。 5)编制串行中断服务程序,在中断服务程序中要有 清除中断标志指令(将SCON. TI和RI清0)。 中断优先级寄存器IP 位号 D7 D6 D5 D4 D3 D2 D1 D0 位名称 PPCA PLVD PADC PS PT1 PX1 PT0 PX0 中断允许寄存器IE 位号 D7 D6 D5 D4 D3 D2 D1 D0 位名称 EA ELVD EADC ES ET1 EX1 ET0 EX0

5、串行接口通信应用举例 (2)串口2的编程要点 1)设置串口2的工作模式 设置S2CON寄存器中的S2SM0位。如要串口2接 收,将S2REN置1。 2)设置串口2的波特率相应的寄存器和位: 包括:T2H和T2L, AUXR. T2_C/ 位,T2x12 位。启动T2(置位T2R),T2开始计数。

5、串行接口通信应用举例 (2)串口2的编程要点 3)设置串口2的中断优先级(设置PS2, 也可以不设置, 取默认值), 设置打开相应的中断控制位(ES2和EA)。 4)如要串口2发送,将数据送入S2BUF。 5)编制串行中断服务程序,在中断服务程序中要设置 清除中断标志指令(分别是接收完成标志S2RI和发送 完成标志S2TI (位于S2CON ) )。 第二中断优先级低字节寄存器IP2 位号 D7 D6 D5 D4 D3 D2 D1 D0 位名称 PSPI PS2 中断允许寄存器IE2 位号 D7 D6 D5 D4 D3 D2 D1 D0 位名称 ET2 ESPI ES2

5、串行接口通信应用举例 下面举例说明12T模式下,STC15F2K60S2单片机 串行通信程序的编制方法。 【例8-1】 设有甲、乙两台单片机,编写程序,使 两台单片机间实现如下串行通信功能。(假设系 统时钟为11.0592MHz。) 甲机(发送机):将首址为ADDRT的128字节外 部RAM数据块顺序向乙机发送; 乙机(接收机):将接收的数据,顺序存放在以 首址为ADDRR的外部RAM中。