ImageVerifierCode 换一换
格式:PPT , 页数:102 ,大小:2.95MB ,
文档编号:5588750      下载积分:20 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-5588750.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(ziliao2023)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(串行口方式1应用编程课件.ppt)为本站会员(ziliao2023)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

串行口方式1应用编程课件.ppt

1、之第七章第七章AT89S51AT89S51单片机的串行口单片机的串行口第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口-2-7.17.1 串行口的结构串行口的结构7.27.2 串行口的串行口的4 4种工作方式种工作方式7.37.3 多机通信多机通信7.47.4 波特率的制定方法波特率的制定方法7.57.5 串行口的应用串行口的应用本章主要内容本章主要内容第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口-3-p串行口的基本工作原理串行口的基本工作原理p与串行口有关的特殊功能寄存器与串行口有关的特殊功能寄存器p串行口的串行口的4 4种工作方式种工

2、作方式p串行口多机通信的工作原理串行口多机通信的工作原理p双机串行通信的软件编程双机串行通信的软件编程串行口为串行口为全双工全双工的的通用异步收发通用异步收发(UARTUART)。全)。全双工就是两个单片机之间串行数据可同时双向传双工就是两个单片机之间串行数据可同时双向传输。异步通信,就是收、发双方使用各自的时钟输。异步通信,就是收、发双方使用各自的时钟控制发送和接收过程,这样控制发送和接收过程,这样可省去收、发双方的可省去收、发双方的一条同步时钟信号线一条同步时钟信号线,连接简单且易实现。,连接简单且易实现。第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口-4-的结

3、构的结构 第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口-5-的结构的结构 v有有两个物理上独立两个物理上独立的接收、发送缓冲器的接收、发送缓冲器SBUFSBUF(属(属于特殊功能寄存器),可于特殊功能寄存器),可同时同时发送、接收数据。发送、接收数据。v 发送缓冲器发送缓冲器只能写入只能写入不能读出不能读出v 接收缓冲器接收缓冲器只能读出只能读出不能写入不能写入v 两个缓冲器两个缓冲器共用一个字节地址共用一个字节地址(99H99H)。)。v 控制寄存器共有两个:特殊功能寄存器控制寄存器共有两个:特殊功能寄存器SCONSCON和和PCONPCON。第第7 7章章-A

4、T89S51-AT89S51单片机的串行口单片机的串行口-6-串行口控制寄存器串行口控制寄存器SCONSCON6 字节地址字节地址98H98H,可位寻址,可位寻址,位地址位地址为为98H-9FH98H-9FH。格式如图格式如图7-27-2所示。所示。第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口-7-SCONSCON中各位的功能中各位的功能(1 1)SM0SM0、SM1SM1 串行口串行口4 4种工作方式选择位种工作方式选择位第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口-8-SCONSCON中各位的功能中各位的功能(2 2)SM2SM2

5、多机通信控制位多机通信控制位 多机通信是在方式多机通信是在方式2 2和和3 3下进行。下进行。串口以串口以方式方式2 2或方式或方式3 3接收时接收时 如果如果SM2=1SM2=1:则:则只有只有当接收到的第当接收到的第9 9位数据位数据(RB8RB8)为)为“1 1”时,才使时,才使RIRI置置“1 1”,产生中断请,产生中断请求,并将接收到的前求,并将接收到的前8 8位数据送入位数据送入SBUFSBUF。如果接收。如果接收到的第到的第9 9位数据(位数据(RB8RB8)为)为“0 0”时,则将接收到的时,则将接收到的前前8 8位数据丢弃。位数据丢弃。如果如果SM2=0SM2=0:则不论第:

6、则不论第9 9位数据是位数据是1 1还是还是0 0,都将,都将前前8 8位数据送入位数据送入SBUFSBUF中,并使中,并使RIRI置置1 1,产生中断请求。,产生中断请求。第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口-9-SCONSCON中各位的功能中各位的功能(2 2)SM2SM2多机通信控制位多机通信控制位 在在方式方式1 1时,如果时,如果SM2=1SM2=1,则只有收到有效的停,则只有收到有效的停止位时才会激活止位时才会激活RIRI。在在方式方式0 0时,时,SM2SM2必须为必须为0 0。第第7 7章章-AT89S51-AT89S51单片机的串行口单片

7、机的串行口-10-SCONSCON中各位的功能中各位的功能(3 3)REN REN 允许串行接收位允许串行接收位 由软件置由软件置“1 1”或清或清“0 0”。REN=1 REN=1,允许允许串行口接收数据。串行口接收数据。REN=0 REN=0,禁止禁止串行口接收数据。串行口接收数据。(4 4)TB8 TB8 发送的发送的第第9 9位位数据数据 方式方式2 2和方式和方式3 3,TB8TB8是要发送的第是要发送的第9 9位数据,其位数据,其值由软件置值由软件置“1 1”或清或清“0 0”。在。在双机串行通信双机串行通信时,时,一般作为一般作为奇偶校验位奇偶校验位使用;在使用;在多机串行通信多

8、机串行通信中用来中用来表示主机发送的是地址帧还是数据帧,表示主机发送的是地址帧还是数据帧,TB8=1TB8=1为地为地址帧,址帧,TB8=0TB8=0为数据帧。为数据帧。第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口-11-SCONSCON中各位的功能中各位的功能(5 5)RB8 RB8 接收的第接收的第9 9位数据位数据 方式方式2 2和方式和方式3 3,RB8RB8存放接收到的存放接收到的第第9 9位位数据;数据;在在方式方式1 1,如,如SM2=0SM2=0,RB8RB8是接收到的停止位;在是接收到的停止位;在方方式式0 0,不使用,不使用RB8RB8。(6

9、6)TI TI 发送中断标志位发送中断标志位 方式方式0 0,串行发送的,串行发送的第第8 8位数据结束时位数据结束时TITI由硬件由硬件置置“1 1”;在;在其他方式其他方式中,串行口中,串行口发送停止位的开发送停止位的开始时始时置置TI TI 为为“1 1”。TI=1TI=1,表示,表示一帧数据发送结束一帧数据发送结束。CPUCPU响应中断响应中断后,在中断服务程序中向后,在中断服务程序中向SBUFSBUF写入要发送的下一帧写入要发送的下一帧数据。数据。TITI必须由软件清必须由软件清“0 0”。第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口-12-SCONSC

10、ON中各位的功能中各位的功能(7 7)RI RI 接收中断标志位接收中断标志位 方式方式0 0时,时,接收完第接收完第8 8位数据位数据时,时,RIRI由硬件置由硬件置“1 1”;在;在其他工作方式其他工作方式中,串行中,串行接收到停止位时接收到停止位时,该位置该位置“1 1”。RI=1 RI=1,表示一帧数据接收完毕,并申请中断,表示一帧数据接收完毕,并申请中断,要求要求CPUCPU从接收从接收SBUFSBUF取走数据。该位的状态也可供取走数据。该位的状态也可供软件查询。软件查询。RIRI必须由软件清必须由软件清“0 0”。SCON SCON的所有位都可进行位操作清的所有位都可进行位操作清“

11、0 0”或置或置“1 1”。第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口-13-寄能寄存器寄能寄存器PCONPCON 字节地址为字节地址为87H87H,不能不能位寻址。位寻址。第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口-14-PCONPCON中各位的功能中各位的功能 仅仅最高位最高位SMODSMOD与串口有关,其他各位的功能已与串口有关,其他各位的功能已在第在第2 2章的节电工作方式一节中作过介绍。章的节电工作方式一节中作过介绍。SMODSMOD:波特率选择位。波特率选择位。例如,方式例如,方式1 1的波特率计算公式为的波特率计算公

12、式为 方式方式1 1波特率波特率=定时器定时器T1T1的溢出率的溢出率 当当SMOD=1SMOD=1时,要比时,要比SMOD=0SMOD=0时的波特率加倍,所时的波特率加倍,所以也称以也称SMODSMOD位为位为波特率倍增位波特率倍增位。SMOD232第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口-15-的的4 4种工作方式种工作方式v 方式方式0 0v 方式方式1 1v 方式方式2 2v 方式方式3 3 4 4种工作方式由特殊功能寄存器种工作方式由特殊功能寄存器SCONSCON中中SM0SM0、SM1SM1位位定义。定义。第第7 7章章-AT89S51-AT89S

13、51单片机的串行口单片机的串行口-16-方式方式0 0为为同步移位寄存器输入同步移位寄存器输入/输出方式输出方式。该方。该方式并不用于两个式并不用于两个AT89S51AT89S51单片机之间的异步串行通单片机之间的异步串行通信,而是用于串行口外接移位寄存器,信,而是用于串行口外接移位寄存器,扩展并行扩展并行I/OI/O口口。8 8位数据为一帧,位数据为一帧,无起始位和停止位无起始位和停止位,先发送,先发送或接收最低位。波特率固定,为或接收最低位。波特率固定,为f foscosc/12/12。第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口-17-(1 1)方式)方式0

14、 0发送过程发送过程 当当CPUCPU执行一条将数据执行一条将数据写入发送缓冲器写入发送缓冲器SBUFSBUF的的指令指令时,产生一个正脉冲,串行口开始把时,产生一个正脉冲,串行口开始把SBUFSBUF中的中的8 8位数据以位数据以f foscosc/12/12的固定波特率从的固定波特率从RXDRXD引脚串行输出,引脚串行输出,低位在先,低位在先,TXDTXD引脚引脚输出同步移位脉冲输出同步移位脉冲,发送完,发送完8 8位位数据,中断标志位数据,中断标志位TITI置置“1 1”。第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口-18-(2 2)方式)方式0 0发送应用

15、举例发送应用举例外接外接串入并出移位寄存器串入并出移位寄存器74LS16474LS164扩展的并行输出口扩展的并行输出口第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口-19-(2 2)方式)方式0 0发送应用举例发送应用举例 通过串行口外接通过串行口外接8 8位串行输入并行输出移位寄位串行输入并行输出移位寄存器存器74LS16474LS164,扩展两个,扩展两个8 8位并行输出口。位并行输出口。方式方式0 0发送时,发送时,串行数据串行数据由由P3.0P3.0(RXDRXD端)送出端)送出,移位脉冲移位脉冲由由P3.1P3.1(TXDTXD端)送出端)送出。在移位脉

16、冲的作用下,串行口发送缓冲器的数在移位脉冲的作用下,串行口发送缓冲器的数据逐位地从据逐位地从P3.0P3.0串行移入串行移入74LS16474LS164中。中。第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口-20-(1 1)方式)方式0 0接收过程接收过程 方式方式0 0接收,接收,RENREN为串行口允许接收控制位,为串行口允许接收控制位,REN=0REN=0,禁止接收;,禁止接收;REN=1REN=1,允许接收。,允许接收。当向当向SCONSCON寄存器寄存器写入控制字写入控制字(设置为方式(设置为方式0 0,并使并使RENREN位置位置1 1,同时,同时RI=

17、0RI=0)时,产生一个正脉冲,)时,产生一个正脉冲,串行口串行口开始接收数据开始接收数据。引脚引脚RXDRXD为数据输入端,为数据输入端,TXDTXD为移位脉冲信号输为移位脉冲信号输出端出端,接收器以,接收器以f foscosc/12/12的固定波特率采样的固定波特率采样RXDRXD引脚引脚的数据信息,当的数据信息,当接收完接收完8 8位数据位数据时,中断标志时,中断标志RIRI置置1 1,表示一帧数据接收完毕表示一帧数据接收完毕第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口-21-第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口-22-

18、(2 2)方式)方式0 0接收应用举例接收应用举例图图7-8 7-8 扩展扩展74LS16574LS165作为并行输入口作为并行输入口第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口-23-(2 2)方式)方式0 0接收应用举例接收应用举例 图图7-87-8为串行口外接两片为串行口外接两片8 8位并行输入串行输出位并行输入串行输出的寄存器的寄存器74LS16574LS165扩展两个扩展两个8 8位并行输入口的电路。位并行输入口的电路。当当74LS16574LS165的的S/S/端由端由高到低跳变高到低跳变时,并行输时,并行输入端的数据被入端的数据被置入寄存器置入寄存器

19、;当当S/=1S/=1,且时钟禁止,且时钟禁止端(第端(第1515脚)为低电平时,允许脚)为低电平时,允许TXDTXD(P3.1P3.1)串行)串行移位脉冲输入,这时在移位脉冲作用下,数据由右移位脉冲输入,这时在移位脉冲作用下,数据由右向左方向移动,以向左方向移动,以串行方式串行方式进入串行口的接收缓冲进入串行口的接收缓冲器中。器中。LL第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口-24-TXDTXD(P3.1P3.1)作为移位脉冲输出与所有)作为移位脉冲输出与所有75LS16575LS165的移位脉冲输入端的移位脉冲输入端CPCP相连;相连;RXD RXD(P3

20、.0P3.0)作为串行数据输入端与)作为串行数据输入端与74LS16574LS165的的串行输出端串行输出端Q QH H相连;相连;P1.0P1.0与与S/S/相连,用来控制相连,用来控制74LS16574LS165的串行移位或并行输入;的串行移位或并行输入;74LS165 74LS165的时钟禁止端(第的时钟禁止端(第1515脚)接地,表示脚)接地,表示允许时钟输入。允许时钟输入。当扩展多个当扩展多个8 8位输入口时,相邻两芯片的首尾位输入口时,相邻两芯片的首尾(Q QH H与与SINSIN)相连。)相连。L第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口-25-方

21、式方式1 1为为双机串行通信双机串行通信方式,如图所示。方式,如图所示。当当SM0SM0、SM1=01SM1=01时,串行口设为方式时,串行口设为方式1 1的双机串的双机串行通信。行通信。TXDTXD脚和脚和RXDRXD脚分别用于发送和接收数据。脚分别用于发送和接收数据。第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口-26-方式方式1 1一帧数据为一帧数据为1010位位,1 1个起始位(个起始位(0 0),),8 8个个数据位,数据位,1 1个停止位(个停止位(1 1),先发送或接收最低位。),先发送或接收最低位。帧格式如图所示。帧格式如图所示。方式方式1 1为为波

22、特率可变波特率可变的的8 8位异步通信接口。波特位异步通信接口。波特率由下式确定:率由下式确定:方式方式1 1波特率波特率=定时器定时器T1T1的溢出率的溢出率 SMODSMOD为为PCONPCON寄存器的最高位的值(寄存器的最高位的值(0 0或或1 1)SMOD232第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口-27-方式方式1 1输出时,数据位由输出时,数据位由TXDTXD端端输出。当输出。当CPUCPU执执行一条数据行一条数据写写SBUFSBUF的指令的指令,就启动发送。,就启动发送。第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口

23、-28-图中图中TXTX时钟时钟的频率就是发送的波特率。的频率就是发送的波特率。发送开始时,发送开始时,内部发送控制信号内部发送控制信号SENDSEND变为有效,变为有效,将起始位向将起始位向TXDTXD脚(脚(P3.0P3.0)输出,此后每经过一个)输出,此后每经过一个TXTX时钟周期,便产生一个移位脉冲,并由时钟周期,便产生一个移位脉冲,并由TXDTXD引脚引脚输出一个数据位。输出一个数据位。8 8位数据位全部发送完毕后位数据位全部发送完毕后,中,中断标志位断标志位TITI置置1 1。第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口-29-方式方式1 1接收时(接

24、收时(REN=1REN=1),数据从),数据从RXDRXD(P3.1P3.1)引脚输入。当引脚输入。当检测到起始位的负跳变检测到起始位的负跳变,则,则开始接收开始接收。第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口-30-接收时,定时控制信号有接收时,定时控制信号有两种两种,一种是接收移一种是接收移位时钟(位时钟(RXRX时钟),时钟),它的频率和传送的波特率相同;它的频率和传送的波特率相同;另一种是位检测器采样脉冲另一种是位检测器采样脉冲,频率是频率是RXRX时钟的时钟的1616倍倍。即以波特率的即以波特率的1616倍速率采样倍速率采样RXDRXD脚状态。脚状态。

25、当采样到当采样到RXDRXD端从端从1 1到到0 0的负跳变时就启动检测器的负跳变时就启动检测器,接收的值接收的值是是3 3次连续采样(第次连续采样(第7 7、8 8、9 9个脉冲时采样)取两次个脉冲时采样)取两次相同的值相同的值,以确认起始位(负跳变)的开始,较好,以确认起始位(负跳变)的开始,较好地消除干扰引起的影响。地消除干扰引起的影响。第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口-31-当当确认起始位有效确认起始位有效时,开始接收一帧信息。每时,开始接收一帧信息。每一位数据,也都进行一位数据,也都进行3 3次连续采样次连续采样(第(第7 7、8 8、9 9

26、个脉个脉冲采样),接收的值是冲采样),接收的值是3 3次采样中至少两次相同的次采样中至少两次相同的值值。第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口-32-当一帧数据当一帧数据接收完毕后接收完毕后,同时满足以下两个条同时满足以下两个条件件,接收才有效。,接收才有效。(1 1)RIRI=0 0,即上一帧数据接收完成时,即上一帧数据接收完成时,RIRI=1 1发发出的中断请求已被响应,出的中断请求已被响应,SBUFSBUF中的数据已被取走中的数据已被取走,说明说明“接收接收SBUFSBUF”已空。已空。(2 2)SM2=0SM2=0或收到的停止位或收到的停止位=1=1

27、(方式(方式1 1时,停止位时,停止位已进入已进入RB8RB8),则将接收到的数据装入),则将接收到的数据装入SBUFSBUF和和RB8RB8(装入的是停止位),且中断标志(装入的是停止位),且中断标志RIRI置置“1 1”。若不同时满足两个条件,收的数据不能装入若不同时满足两个条件,收的数据不能装入SBUFSBUF,该帧数据将丢弃。,该帧数据将丢弃。第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口-33-方式方式2 2和方式和方式3 3,为,为9 9位异步通信接口。每帧数位异步通信接口。每帧数据为据为1111位,位,1 1位起始位位起始位0 0,8 8位数据位(先低

28、位),位数据位(先低位),1 1位可程控为位可程控为1 1或或0 0的第的第9 9位数据位数据和和1 1位停止位。方式位停止位。方式2 2、方式方式3 3帧格式如图帧格式如图7-137-13所示。所示。方式方式2 2波特率波特率=f foscoscSMOD264第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口-34-发送前,发送前,先根据通信协议由软件设置先根据通信协议由软件设置TB8TB8(奇(奇偶校验位或多机通信的地址偶校验位或多机通信的地址/数据标志位),然后数据标志位),然后将要发送的数据写入将要发送的数据写入SBUFSBUF,即启动发送。,即启动发送。TB8

29、TB8自动自动装入第装入第9 9位数据位位数据位,逐一发送。发送完毕,使,逐一发送。发送完毕,使TITI位位置置“1 1”。第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口-35-【例例7-17-1】方式方式2 2发送在发送在双机串行通信双机串行通信中的应用中的应用 下面的发送中断服务程序,以下面的发送中断服务程序,以TB8TB8作为奇偶校作为奇偶校验位,偶校验发送验位,偶校验发送。数据写入。数据写入SBUFSBUF之前,之前,先将数据先将数据的偶校验位写入的偶校验位写入TB8TB8(设第(设第2 2组的工作寄存器区的组的工作寄存器区的R0R0作为发送数据区地址指针)

30、。作为发送数据区地址指针)。第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口-36-PIPTI:PUSH PSW ;现场保护;现场保护 PUSH Acc SETB RS1 ;选择第;选择第2组工作寄存器区组工作寄存器区 CLR RS0 CLR TI ;发送中断标志清;发送中断标志清“0”MOV A,R0 ;取数据;取数据 MOV C,P ;校验位送;校验位送TB8,采用偶校验采用偶校验 MOV TB8,C;P=1,校验位,校验位TB8=1 ;P=0,校验位,校验位TB8=0 MOV SBUF,A ;A数据发送,同时发数据发送,同时发TB8 INC R0 ;数据指针加;

31、数据指针加1 POP Acc ;恢复现场;恢复现场 POP PSW RETI ;中断返回;中断返回第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口-37-SM0SM0、SM1=10SM1=10,且,且REN=1REN=1时,以方式时,以方式2 2接收数据。接收数据。数据由数据由RXDRXD端输入,接收端输入,接收1111位信息。当位检测逻辑位信息。当位检测逻辑采样到采样到RXDRXD的负跳变,判断起始位有效,便开始接的负跳变,判断起始位有效,便开始接收一帧信息。在接收完第收一帧信息。在接收完第9 9位数据后,位数据后,需满足以下需满足以下两个条件两个条件,才能将接收到

32、的数据送入才能将接收到的数据送入SBUFSBUF(接收缓(接收缓冲器)。冲器)。(1 1)RI=0RI=0,意味着,意味着接收缓冲器为空接收缓冲器为空。(2 2)SM2=0SM2=0或接收到的第或接收到的第9 9位数据位位数据位RB8=1RB8=1。第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口-38-当满足上述两个条件时,收到的数据送当满足上述两个条件时,收到的数据送SBUFSBUF(接收缓冲器),第(接收缓冲器),第9 9位数据送入位数据送入RB8RB8,且,且RIRI置置“1 1”。若不满足这两个条件,接收的信息将被丢。若不满足这两个条件,接收的信息将被丢弃。

33、弃。串行口方式串行口方式2 2和方式和方式3 3接收时序如图接收时序如图7-157-15所示。所示。第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口-39-【例例7-2】方式方式2接收在双机通信中的应用。接收在双机通信中的应用。本例对例本例对例7-1发送的数据进行偶校验接收,程序发送的数据进行偶校验接收,程序如下(设如下(设1组寄存器区的组寄存器区的R0为数据缓冲区指针)。为数据缓冲区指针)。PIRI:PUSH PSW;保护现场;保护现场PUSH AccSETB RS0 ;选择;选择1组寄存器区组寄存器区CLR RS1CLR RI MOV A,SBUF ;将接收到数据

34、送到累加器;将接收到数据送到累加器AMOV C,P ;接收到数据字节的奇偶性送入;接收到数据字节的奇偶性送入C位位第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口-40-JNC L1 ;C=0,收的字节,收的字节1的个数为偶数,跳的个数为偶数,跳L1处处 JNB RB8,ERP ;C=1,再判,再判RB8=0 AJMP L2 ;C=1,RB8=1,收的数据正确,跳,收的数据正确,跳L2处处L1:JB RB8,ERP ;C=0,再判,再判RB8=1L2:MOV R0,A ;接收数据正确,存入数据缓冲区;接收数据正确,存入数据缓冲区 INC R0 ;为下次接收做准备;为下

35、次接收做准备 POP Acc ;恢复现场;恢复现场 POP PSWERP:;出错处理程序段入口;出错处理程序段入口 RETI第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口-41-SM0 SM0、SM1=11SM1=11时,方式时,方式3 3。为波特率可变的。为波特率可变的9 9位位异步通信方式,异步通信方式,除了波特率外,方式除了波特率外,方式3 3和方式和方式2 2相同相同。方式方式3 3发送和接收时序如图发送和接收时序如图7-117-11和图和图7-127-12所示。所示。方式方式3 3波特率波特率=定时器定时器T1T1的溢出率的溢出率SMOD232第第7 7章

36、章-AT89S51-AT89S51单片机的串行口单片机的串行口-42-多个单片机可利用串行口进行多机通信,经常多个单片机可利用串行口进行多机通信,经常采用采用主从式结构。主从式结构。系统中有系统中有1 1个主机(单片机或其个主机(单片机或其他有串行接口的微机)和多个单片机组成的从机系他有串行接口的微机)和多个单片机组成的从机系统。主机的统。主机的RXDRXD与所有从机的与所有从机的TXDTXD端相连,端相连,TXDTXD与所与所有从机的有从机的RXDRXD端相连。从机地址分别为端相连。从机地址分别为01H01H、02H02H和和03H03H。第第7 7章章-AT89S51-AT89S51单片机

37、的串行口单片机的串行口-43-主从式是指多机系统中,只有一个主机,其余主从式是指多机系统中,只有一个主机,其余全是从机。主机发送的信息可以被所有从机接收,全是从机。主机发送的信息可以被所有从机接收,任何一个从机发送的信息,只能由主机接收。从机任何一个从机发送的信息,只能由主机接收。从机和从机之间不能进行直接通信,只能经主机才能实和从机之间不能进行直接通信,只能经主机才能实现。现。第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口-44-多机通信的工作过程:多机通信的工作过程:(1 1)各从机初始化程序允许从机的串行口中断,)各从机初始化程序允许从机的串行口中断,将串行口

38、编程为方式将串行口编程为方式2 2或方式或方式3 3接收,即接收,即9 9位异步通位异步通信方式,且信方式,且SM2SM2和和RENREN位置位置“1 1”,使从机处于多机,使从机处于多机通信且通信且只接收地址帧只接收地址帧的状态。的状态。第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口-45-(2 2)在主机和某从机通信前,)在主机和某从机通信前,先将从机地址(即先将从机地址(即准备接收数据的从机)发送给各个从机准备接收数据的从机)发送给各个从机,接着才传,接着才传送数据(或命令),主机发出的送数据(或命令),主机发出的地址帧信息第地址帧信息第9 9位位为为1 1,

39、数据(或命令)帧的第,数据(或命令)帧的第9 9位为位为0 0。当主机向各。当主机向各从机发送地址帧时,各从机串行口接收到的第从机发送地址帧时,各从机串行口接收到的第9 9位位信息信息RB8RB8为为1 1,且由于各从机的,且由于各从机的SM2=1SM2=1,则,则RIRI置置“1 1”,各从机响应中断,在中断服务子程序中,各从机响应中断,在中断服务子程序中,判断主机判断主机送来的地址是否和本机地址相符合,若为本机地址,送来的地址是否和本机地址相符合,若为本机地址,则该从机则该从机SM2SM2位清位清“0 0”,准备接收主机的数据或命准备接收主机的数据或命令;令;若地址不相符,则保持若地址不相

40、符,则保持SM2SM2=1 1。第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口-46-(3 3)接着主机发送数据(或命令)帧接着主机发送数据(或命令)帧,数据帧的,数据帧的第第9 9位为位为0 0。此时各从机接收到的。此时各从机接收到的RB8RB8=0 0。只有与前面地址相符合的从机(即只有与前面地址相符合的从机(即SM2SM2位已清位已清“0 0”的从机)的从机)才能激活中断标志位才能激活中断标志位RIRI,从而进入中断服,从而进入中断服务程序,接收主机发来的数据(或命令);与主机务程序,接收主机发来的数据(或命令);与主机发来的发来的地址不相符的从机地址不相符的

41、从机,由于,由于SM2SM2保持为保持为1 1,又,又RB8=0RB8=0,因此不能激活中断标志,因此不能激活中断标志RIRI,就不能接受主,就不能接受主机发来的数据帧。从而保证机发来的数据帧。从而保证主机与从机间通信的正主机与从机间通信的正确性确性。此时主机与建立联系的从机已经设置为单机。此时主机与建立联系的从机已经设置为单机通信模式,即在整个通信中,通信的双方都要保持通信模式,即在整个通信中,通信的双方都要保持发送数据的第发送数据的第9 9位(即位(即TB8TB8位)为位)为0 0,防止其他的从,防止其他的从机误接收数据。机误接收数据。第第7 7章章-AT89S51-AT89S51单片机的

42、串行口单片机的串行口-47-(4 4)结束数据通信并为下一次的多机通信做好准)结束数据通信并为下一次的多机通信做好准备。备。第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口-48-第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口-49-串行通信,收、发双方发送或接收的串行通信,收、发双方发送或接收的波特率必波特率必须一致须一致。4 4种工作方式。种工作方式。方式方式0 0和方式和方式2 2的波特率是的波特率是固定固定的;的;方式方式1 1和方式和方式3 3的波特率是的波特率是可变的可变的,由,由T1T1溢出率溢出率确定。确定。第第7 7章章-

43、AT89S51-AT89S51单片机的串行口单片机的串行口-50-波特率的定义波特率的定义:串行口每秒发送(或接收)的串行口每秒发送(或接收)的位数。设发送一位所需要的时间为位数。设发送一位所需要的时间为T T,则波特率为,则波特率为1/1/T T。定时器的不同工作方式,得到的波特率的范围定时器的不同工作方式,得到的波特率的范围不一样,这是由不一样,这是由T1T1在在不同工作方式不同工作方式下下计数位数的不计数位数的不同同所决定。所决定。第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口-51-定时器定时器T1T1产生波特率的计算产生波特率的计算(1 1)方式方式0 0

44、时,波特率时,波特率固定为时钟频率固定为时钟频率f foscosc的的1/121/12,不受不受SMODSMOD位值的影响。位值的影响。(2 2)方式方式2 2时,波特率仅与时,波特率仅与SMODSMOD位的值有关。位的值有关。方式方式2 2波特率波特率=f foscosc假设假设f foscosc=12MHz=12MHz,若,若SMOD=0SMOD=0,则波特率,则波特率=187.5=187.5 kbit/skbit/s;若;若SMOD=SMOD=1 1,波特率为,波特率为375kbit/s375kbit/s。SMOD264第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的

45、串行口-52-定时器定时器T1T1产生波特率的计算产生波特率的计算(3 3)T1T1工作在方式工作在方式1 1或方式或方式3 3定时时,常作为波特定时时,常作为波特率发生器,其关系式为率发生器,其关系式为 波特率波特率=定时器定时器T1T1的溢出率的溢出率 (7-17-1)由式(由式(7-17-1)见,)见,T1T1溢出率溢出率和和SMODSMOD的值的值共同决共同决定波特率。定波特率。在在实际设定波特率时实际设定波特率时,T1T1常设置为方式常设置为方式2 2定时定时(自动装初值)。这种方式操作方便,也避免(自动装初值)。这种方式操作方便,也避免因软因软件重装初值件重装初值带来的带来的定时误

46、差定时误差。设定时器设定时器T1T1方式方式2 2的初值为的初值为X X,则有,则有 定时器定时器T1T1的溢出率的溢出率=(7-27-2)SMOD232osc/12256256fXX计数速率第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口-53-定时器定时器T1T1产生波特率的计算产生波特率的计算 将式(将式(7-27-2)代入式()代入式(7-17-1),则有),则有 波特率波特率=(7-37-3)由式(由式(7-37-3)可见,)可见,波特率随波特率随f foscosc、SMODSMOD和初值和初值X X而变化而变化。实际使用时,经常根据实际使用时,经常根据已知

47、波特率和时钟频率已知波特率和时钟频率f foscosc来来计算计算T1T1的初值的初值X X。常用的波特率和初值。常用的波特率和初值X X间的间的关系常列成表关系常列成表7-27-2的形式,以供查用。的形式,以供查用。SMODosc23212(256)fX第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口-54-定时器定时器T1T1产生波特率的计算产生波特率的计算波 特 率foscSMOD位方式初值X62.5kbit/s12 MHz12FFH19.2kbit/s11.0592 MHz12FDH9.6kbit/s11.0592 MHz02FDH4.8kbit/s11.05

48、92 MHz02FAH2.4kbit/s11.0592 MHz02F4H1.2kbit/s11.0592 MHz02E8H第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口-55-定时器定时器T1T1产生波特率的计算产生波特率的计算对表对表7-27-2有两点需要注意:有两点需要注意:(1 1)在使用的时钟振荡频率)在使用的时钟振荡频率f foscosc为为12MHz12MHz或或6MHz6MHz时,时,将初值将初值X X和和f foscosc带入式(带入式(7-37-3)中计算出的波特率)中计算出的波特率有有一定误差一定误差。消除误差可采用。消除误差可采用时钟频率时钟频

49、率11.0592MHz11.0592MHz。(2 2)如果选用)如果选用很低的波特率很低的波特率,如波特率选为,如波特率选为5555,可将定时器可将定时器T1T1设置为方式设置为方式1 1定时。但在这种情况下,定时。但在这种情况下,T1T1溢出时,需在中断服务程序中重新装入初值。中溢出时,需在中断服务程序中重新装入初值。中断响应时间和执行指令时间会使波特率产生一定的断响应时间和执行指令时间会使波特率产生一定的误差,可用改变初值的方法加以调整。误差,可用改变初值的方法加以调整。第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口-56-定时器定时器T1T1产生波特率的计算产

50、生波特率的计算【例例7-37-3】若时钟频率为若时钟频率为11.0592MHz11.0592MHz,选用,选用T1T1的方的方式式2 2定时作为波特率发生器,波特率为定时作为波特率发生器,波特率为2400bit/s2400bit/s,求初值。求初值。设设SMOD=0SMOD=0。将已知条件带入式(将已知条件带入式(7-37-3)中)中 =24002400 从中解得从中解得X X=244244=F4HF4H。只要把只要把F4HF4H装入装入TH1TH1和和TL1TL1,则,则T1T1产生的波特率产生的波特率为为2400bit/s2400bit/s。这里时钟振荡频率选为这里时钟振荡频率选为11.0

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|