单片机C语言程序设计 教学课件 ppt 作者 侯殿有 3.9

上传人:E**** 文档编号:89354371 上传时间:2019-05-23 格式:PPT 页数:62 大小:292KB
返回 下载 相关 举报
单片机C语言程序设计 教学课件 ppt 作者  侯殿有 3.9_第1页
第1页 / 共62页
单片机C语言程序设计 教学课件 ppt 作者  侯殿有 3.9_第2页
第2页 / 共62页
单片机C语言程序设计 教学课件 ppt 作者  侯殿有 3.9_第3页
第3页 / 共62页
单片机C语言程序设计 教学课件 ppt 作者  侯殿有 3.9_第4页
第4页 / 共62页
单片机C语言程序设计 教学课件 ppt 作者  侯殿有 3.9_第5页
第5页 / 共62页
点击查看更多>>
资源描述

《单片机C语言程序设计 教学课件 ppt 作者 侯殿有 3.9》由会员分享,可在线阅读,更多相关《单片机C语言程序设计 教学课件 ppt 作者 侯殿有 3.9(62页珍藏版)》请在金锄头文库上搜索。

1、第九章 MCS-51单片机串行接口,9.1 通讯的基本概念,1并行通信和串行通信 计算机与外界的通信有两种基本方式:并行通信和串行通信。 并行通信是一次发送和接收以字节为单位,发送信息量大,速度快,处理方便,缺点是需要硬件资源多,特别适合距离较近、需要传输速度快的场合。串行通信一次发送和接收以二进制位(bit)为单位, 发送信息量小、速度慢、数据处理比并行通信复杂,但它的最大优点是节省资源,特别适合距离较远、对速度要求不高的场合。,2同步通信和异步通信 串行通信按信息的格式又可分为异步通信和同步通信两种方式。 串行异步通信方式的特点是数据在线路上传送时是以一个字符(字节)为单位一位一位的传送,

2、未传送时线路处于空闲状态。空闲线路约定为高电平“1”。传送的一个字符又称为一帧信息,传送时每一个字符前加一个低电平的起始位,然后是数据位,数据位可以是58位,低位在前,高位在后,数据位后可以带一个奇偶校验位,最后是停止位,停止位用高电平表示,它可以是1位、1位半或2位。 异步通信时字符间可以有间隔,间隔的位数不限,对发送和接收的时钟要求不高。在实际应用时,常采用三线制,因此线路简单。在嵌入式控制系统中用的最多。 根据通信设备的功能,异步通信可有发送和接收可同时进行的双工,发送和接收分时进行的半双工,只能单方向进行的单工。MCS-51单片机有一个能同时发送和接收数据的双工串口。,3串行同步通信方

3、式 串行同步通信方式的特点是数据在线路上传送时以字符块为单位,一次传送多个字符,传送时须在前面加上一个或两个同步字符,后面加上校验字符。串行同步通信方式传送数据多,速度快,但要求控制线路复杂。在嵌入式控制系统中用的不多。 4波特率 波特率是指串行通信中,单位时间传送的二进制位数,单位为bps。常用波特率表示串行通信的速度。在异步通信中,波特率一般为50115200bps。,9.2 MCS-51单片机串行口功能与结构,1功能 MCS-51单片机具有一个全双工的串行异步通信接口,可以同时发送、接收数据,发送、接收数据可通过查询或中断方式处理,使用十分灵活 它有四种工作方式,分别是方式0、方式1、方

4、式2和方式3。其中: 方式0,称为同步移位寄存器方式,一般用于外接移位寄存器芯片扩展I/O接口。 方式1,10位的异步通信方式,通常用于双机点对点通信。方式1在嵌入式控制系统中用的最多。 方式2和方式3,11位的异步通信方式,原来通常用于多机通信。现在由于有了功能强、价格低廉的485转换芯片,在工业上多采用方式1/485接口标准的多机通信,方式2和方式3用的不多。,2结构和工作原理 MCS-51单片机串行口主要由发送数据寄存器、发送控制器、输出控制门、接收数据寄存器、接收控制器、输入移位寄存器等组成 。 从用户使用的角度,它由三个特殊功能寄存器组成:发送数据寄存器和接收数据寄存器,它们都叫SB

5、UF(串行口数据寄存器),但一个用于发送,一个用于接收。使用时由于操作指令不同,不会混淆。还有一个串行口控制寄存器SCON。电源控制寄存器有一位PCON和串行信有关系。 MCS-51单片机串行口结构如图9.1所示。,发送数据时,当执行一条向SBUF写入数据的指令,把数据写入串口数据发送寄存器,就启动了发送过程。在发送时钟的控制下,先发送一个低电平的起始位,接着把发送寄存器中的数据,按低位在前,高位在后的顺序一位一位的发送出去。最后发送一个高电平的停止位。一个字节发送完毕,数据发送寄存器“空”标志TI置位。 接收数据时,当串口控制寄存器中的REN位为1,即串口允许接收数据时,接收器开始工作,经过

6、一系列采样和条件判定,如果接收有效,则把接收的数据放到接收数据寄存器中,数据接收寄存器“有数据”标志RI置位。 利用标志TI和RI,可以使用中断或查询方式处理数据的串行发送或接收。,3 串口控制寄存器SCON 串口控制寄存器SCON的结构如图9.2所示,它是MCS-51的一个特殊功能寄存器,已在头文件中定义,它每位有一个大写的名称,可以通过位名称进行位寻址,也可以以字节访问。,SM2:多机通信控制位。当SM2=1,是多机通信状态,在方式2或3接收数据时,如果RB8=0,则接收的是对方寻址地址;如果RB8=1,接收的是对方发来的数据。当寻址地址正确,此数据进入接收SBUF,RI=1。 SM2=0

7、,是点对点的单机通信,接收的数据不管RB8状态,都有效,数据进入接收SBUF,RI=1。方式0和1,SM2应置0。 REN:允许接收控制位。当REN=1,则允许接收,当REN=0,则禁止接收。 TB8:发送数据的第9位。用于多机通信。TB8=1,发送地址,TB8=0,发送数据。 RB8:接收数据的第9位。用于多机通信,用来存放对方发来的数据的第9位,在方式1,SM2=0时它实际是接收到的停止位。多机通信时RB8=1,接收的是地址,RB8=0,接收的是数据。,TI:发送中断标志位。当发送SBUF空时,系统硬件使TI=1,此时可以利用它向CPU申请中断,如中断允许,在中断服务程序中向发送SBUF写

8、下一字节数据;如果采用查询方式发送数据,查询到TI=1,说明发送SBUF空,可向发送SBUF写下一字节数据。 不管中断方式还是查询方式发送数据,发送数据后都要手工使TI=0,以便当对方将数据取走,TI又变为1,进入下一次发送。 RI:接收中断标志位。当接收SBUF有数据时,系统硬件使RI=1,此时可以利用它向CPU申请中断,如中断允许,在中断服务程序中接收SBUF一字节数据;如果采用查询方式发送数据,查询到RI=1,说明接收SBUF有数据,可读SBUF一字节数据。 不管中断方式还是查询方式接收数据,接收数据后都要手工使RI=0,当对方发送下一字节数据时,RI又变为1,进入下一次接收。,在MCS

9、-51系统中,串行通信的发送和接收中断共用一个中断向量,即一个中断服务程序入口,到底是发送还是接收中断,通过在程序中查RI和TI状态确定。 系统复位或上电时SCON清0。 4电源控制寄存器PCON 电源控制寄存器PCON结构如图9.3所示。它只有一位SMOD,称波特率加倍位。,当SMOD位为1,则串行口方式1、方式2、方式3的波特率加倍。系统复位或上电时PCON清0。由于MCS-51工作频率常采用6M或12M,相对较低,要想获得较高的通信速率,SMOD位应置1。在满足系统要求的情况下,通信频率选择低频,可以降低功耗,减少发热,有利系统稳定。,9.3.1 方式0,方式0通常用来外接移位寄存器,用

10、作扩展I/O口。方式0工作时波特率固定为系统主频fosc 的1/12。工作时,串行数据通过RXD输入和输出,同步时钟通过TXD输出。发送和接收数据时低位在前,高位在后,长度为8位。 1发送过程 在TI=0时,当CPU执行一条向SBUF写数据的指令时,如SBUF=i,就启动发送过程。经过一个机器周期,写入发送数据寄存器中的数据按低位在前,高位在后从RXD依次发送出去,同步时钟从TXD送出。8位数据(一帧)发送完毕后,由硬件使发送中断标志TI置位,向CPU申请中断。,2. 接收过程 在RI=0的条件下,将REN(SCON.4)置“1”就启动一次接收过程。串行数据通过RXD接收,同步移位脉冲通过TX

11、D输出。在移位脉冲的控制下,RXD上的串行数据依次移入移位寄存器。当8位数据(一帧)全部移入移位寄存器后,接收控制器发出控制信号,将8位数据并行送入接收数据缓冲器SBUF中,同时,由硬件使接收中断标志RI置位,向CPU申请中断。方式0应用不多,具体见例9.1。,9.3.2 方式1,方式1为8位异步通信方式,在方式1下,一帧信息为10位:1位起始位(0),8位数据位(低位在前)和1位停止位(1)。TXD为发送数据端,RXD为接收数据端。波特率可变,由定时/计数器T1的溢出率和电源控制寄存器PCON中的SMOD位决定。 即:波特率=2(T1的溢出率)/32。 1. 发送过程 在TI=0时,当CPU

12、执行一条向SBUF写数据的指令时,如SBUF=i,就启动了发送过程。数据由TXD引脚送出,发送时钟由定时/计数器T1送来的溢出信号经过16分频或32分频后得到,在发送时钟的作用下,先通过TXD端送出一个低电平的起始位,然后是8位数据(低位在前),其后是一个高电平的停止位,当一帧数据发送完毕后,由硬件使发送中断标志TI置位,向CPU申请中断,完成一次发送过程。,2. 接收过程 当允许接收控制位REN被置1,接受器就开始工作,由接收器以所选波特率的16倍速率对RXD引脚上的电平进行采样。当采样到从“1”到“0”的负跳变时,启动接收控制器开始接收数据。在接收移位脉冲的控制下依次把所接收的数据移入移位

13、寄存器,当8位数据及停止位全部移入后,根据以下状态,进行响应操作。 (1)如果RI=0、SM2=0,接收控制器发出“装载SBUF”信号,将输入移位寄存器中的8位数据装入接收数据寄存器SBUF,停止位装入RB8,并置RI=1,向CPU申请中断。 (2)如果RI=0、SM2=1,那么只有停止位为“1”才发生上述操作。 (3)RI=0、SM2=1且停止位为“0”,所接收的数据不装入SBUF,数据将会丢失。 (4)如果RI=1,则所接收的数据在任何情况下都不装入SBUF,即数据丢失。,9.3.3 方式2和方式3,方式2和方式3都为9位异步通信接口,接收和发送一帧信息长度为11位,即1个低电平的起始位,

14、9位数据位,1个高电平的停止位。发送的第9位数据放于TB8中,接收的第9位数据放于RB8中。TXD为发送数据端,RXD为接收数据端。方式2和方式3的区别在于波特率不一样,其中方式2的波特率只有两种:fosc/32或fosc/64,方式3的波特率与方式1的波特率相同,由定时/计数器T1的溢出率和电源控制寄存器PCON中的SMOD位决定,即: 波特率=2(T1的溢出率)/32。 在方式1时,也需要对定时/计数器T1进行初始化。,1发送过程 方式2和方式3发送的数据为9位,其中发送的第9位在TB8中,在启动发送之前,必须把要发送的第9位数据装入SCON寄存器中的TB8中。准备好TB8后,就可以通过向

15、SBUF中写入发送的字符数据来启动发送过程,发送时前8位数据从发送数据寄存器中取得,发送的第9位从TB8中取得。一帧信息发送完毕,置TI为1。 2接收过程 方式2和方式3的接收过程与方式1类似,当REN位置1时也启动接收过程,所不同的是接收的第9位数据是发送过来的TB8位,而不是停止位,接收到后存放到SCON中的RB8中,对接收是否有效判断也是用接收的第9位,而不是用停止位。其余情况与方式1相同。,9.4 串行口波特率计算,1串行口控制寄存器SCON位的确定。 根据工作方式确定SM0、SM1位;对于方式2和方式3还要确定SM2位;如果是接收端,则置允许接收位REN为1;如果是方式2和方式3发送

16、数据,则应将发送数据的第9位写入TB8中。,2波特率计算。 对于方式0,不需要对波特率进行设置。 对于方式2,设置波特率仅须对PCON中的SMOD位进行设置。 对于方式1和方式3,设置波特率不仅须对PCON中的SMOD位进行设置,还要对定时/计数器T1进行设置,这时定时/计数器T1一般工作于方式2 (8位可重置方式),初值可由下面公式求得: 由于: 波特率=2(T1的溢出率)/32 则: T1的溢出率=波特率32/2而T1工作于方式2的溢出率又可由下式表示: T1的溢出率=fosc/(12(256-初值),所以: T1的初值=256 - fosc2 /(12波特率32) MCS-51单片机多使用6M或12M的主频,方式1常用波特率的T1的初值见表9.2。 12M的主频使用11.0592M晶振,所以表中只列主频11.0592M的情况。,9.5.1 串行口的编程步骤,1. 串口初始化 MCS-51的串口使用之前,必需对串口初始化才能使用。串口初始化的内容是指定串口工作方式,设置波特率、启动发送和接

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号