串行口通信功能_第1页
串行口通信功能_第2页
串行口通信功能_第3页
串行口通信功能_第4页
串行口通信功能_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

串行口通信功能第1页,共16页,2023年,2月20日,星期日本次课的目标学习完本课题后,您将能够:清楚串行通信基础中的通信分类和通信制式。清楚AT89S51单片机如何实现串行通信功能。初步具备使用串行通信功能来解决实际问题的能力。初步具备使用串行口中断功能来解决实际问题的能力。1/15第2页,共16页,2023年,2月20日,星期日本次课讲解内容一.串行通信基础二.AT89S51的串行通信功能三.AT89S51串行口的工作方式四.AT89S51的串行口中断源五.AT89S51串行口中断的应用步骤2/15第3页,共16页,2023年,2月20日,星期日一.串行通信基础1.串行通信的分类

3/15同步通信:

数据传送在双方同步脉冲的控制下进行,双方时钟源需同步。

异步通信:

数据传送以字符帧格式进行传送,双方时钟源彼此独立。

2.异步通信字符帧字符帧也叫数据帧,由起始位、数据位、校验位、停止位四部分组成。

起始位:

位于字符帧开头,只占1位。

数据位:

紧跟起始位之后,低位在前高位在后。

校验位:

数据位之后,占用1位,用于串行通信数据的奇校验或偶校验。

停止位:

位于字符帧末尾,表示该帧信息传递完毕。

第4页,共16页,2023年,2月20日,星期日3.异步通信的波特率4/15波特率的定义为每秒钟传送二进制数码的个数,单位是bps,即位/秒。

用波特率来反映数据传输的速度,波特率越高,帧数据传输速度越快。4.串行通信的制式半双工制式:

通信数据从A站到B站或从B站到A站,双方不能同时收发。

全双工制式:

通信数据在A站和B站间可以同时发送和接收。

第5页,共16页,2023年,2月20日,星期日二.AT89S51的串行通信功能1.AT89S51的内部串行通信接口

5/15

AT89S51内部含有一个全双工串行通信接口,由串行口控制寄存器SCON、发送和接收电路、串行数据缓冲寄存器SBUF组成。

发送与接收的SBUF在物理上独立存在,在使用上同名,单片机仅靠指令区分。

发送串行数据使用MOVSBUF,A;这里的SBUF是发送缓冲寄存器SBUF。在C语言中,向SBUF中写入数据就是串行口发送。

接收串行数据使用MOVA,SBUF;这里的SBUF是接收缓冲寄存器SBUF。在C语言中,向读取SBUF中数据就是串行口接收。第6页,共16页,2023年,2月20日,星期日2.AT89S51的外部串行通信引脚

6/15串行数据接收端RXD——P3.0(10号引脚)。串行数据发送端TXD——P3.1(11号引脚)。3.AT89S51的波特率发生器

固定波特率由晶振分频产生。

可变波特率由T1定时器溢出频分频产生。

具体波特率大小由SCON中方式位和相关的传递参数决定。第7页,共16页,2023年,2月20日,星期日4.串行口控制寄存器SCONSCON寄存器7/15特点:8位、可位寻址、复位后内容为00H;作用:设置串行口的工作方式,提供串行口工作的标志位;

SM0SM1SM2RENTB8

RB8ITRISM0、SM1:串行口四种工作方式设置位;SM2:多机通信位。SM2=0,单机对单机通信;SM2=1,多机通信;REN:接收允许控制位。REN=0,禁止接收;REN=1,允许接收;TB8:发送数据第9位;RB8:发送数据第9位;TI:发送中断标志位;RI:接收中断标志位;第8页,共16页,2023年,2月20日,星期日8/155.串行数据缓冲寄存器SBUF

特点:8位、复位后内容不确定;作用:

做串行数据发送接受缓冲区,完成串行数据的发送和接收功能。第9页,共16页,2023年,2月20日,星期日三.AT89S51串行口的工作方式1.方式0

9/15

将SCON中的SM0SM1设置成00即可。(SM2、TB8、RB8不起作用,设为0)

方式0下,串行口是作为同步的移位寄存器来使用,波特率为机器周期。(fosc/12)

RXD(10引脚)上发送8位数据,TXD(11引脚)上发送同步脉冲。发送数据在TI=0下通过向SBUF写入数据来完成。

接收数据在RI=0且REN=1下来启动的。

第10页,共16页,2023年,2月20日,星期日2.方式1

10/15

将SCON中的SM0SM1设置成01即可。(SM2、TB8、RB8不起作用,设为0)

方式1下,串行口是作10位异步收发通信,波特率为T1溢出频率的1/32。RXD(10引脚)上接收10位数据帧,TXD(11引脚)上发送10位数据帧。发送数据在TI=0下通过向SBUF写入数据来完成。

接收数据在RI=0且REN=1下来启动的。

第11页,共16页,2023年,2月20日,星期日3.方式2

11/15将SCON中的SM0SM1设置成10即可。

11位异步收发,波特率为fosc/64。

4.方式3

将SCON中的SM0SM1设置成11即可。

11位异步收发,波特率为T1溢出频率的1/32。第12页,共16页,2023年,2月20日,星期日四.AT89S51的串行口中断源12/15接收中断标志RI,中断矢量0023H,编号4;

发送中断标志TI,中断矢量0023H,编号4;

一帧数据发送完毕会使TI自动置1,向CPU提出发送中断申请;

一帧数据接收完毕会使RI自动置1,向CPU提出接收中断申请;

AT89S51单片机响应串行口中断请求后不会将中断标志位清0,在使用中必须人工将RI、TI标志清0,否则串行口将不能接收和发送数据帧。第13页,共16页,2023年,2月20日,星期日五.AT89S51串行口中断的应用步骤13/151.设置外部中断请求允许位,设置IE寄存器中的EA、ES;2.根据需要设置SCON寄存器,确定串行口的工作方式并初始化标志位;3.波特率与T1有关则设置TMOD寄存器,设定T1的工作方式;4.推算出对应波特率T1寄存器的初值,传递到T1;5.启动T1定时器,T1便成为了波特率发生器;6.将电源控制寄存器PCON最高位SMOD设置成1,单片机系统的波特率将翻一倍;7.编写中断处理子函数,中断编号是4;第14页,共16页,2023年,2月20日,星期日本课题的要求本课题教学完成后,初学者必须做到:正确理解串行异步通信中字符帧格式和波特率两个重要通信指标。正确理解串行通信中单工、半双工、全双工三种制式。牢记AT89S5

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论