串行口通信功能

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

AT89S51的串行口通信功能课题八本次课的目标学习完本课题后,您将能够:•清楚串行通信基础中的通信分类和通信制式。•清楚AT89S51单片机如何实现串行通信功能。•初步具备使用串行通信功能来解决实际问题的能力。•初步具备使用串行口中断功能来解决实际问题的能力。1/15本次课讲解内容一.串行通信基础二.AT89S51的串行通信功能三.AT89S51串行口的工作方式四.AT89S51的串行口中断源五.AT89S51串行口中断的应用步骤2/15一.串行通信基础1.串行通信的分类3/15同步通信:数据传送在双方同步脉冲的控制下进行,双方时钟源需同步。异步通信:数据传送以字符帧格式进行传送,双方时钟源彼此独立。2.异步通信字符帧字符帧也叫数据帧,由起始位、数据位、校验位、停止位四部分组成。起始位:位于字符帧开头,只占1位。数据位:紧跟起始位之后,低位在前高位在后。校验位:数据位之后,占用1位,用于串行通信数据的奇校验或偶校验。停止位:位于字符帧末尾,表示该帧信息传递完毕。3.异步通信的波特率4/15波特率的定义为每秒钟传送二进制数码的个数,单位是bps,即位/秒。用波特率来反映数据传输的速度,波特率越高,帧数据传输速度越快。4.串行通信的制式半双工制式:通信数据从A站到B站或从B站到A站,双方不能同时收发。全双工制式:通信数据在A站和B站间可以同时发送和接收。二.AT89S51的串行通信功能1.AT89S51的内部串行通信接口5/15AT89S51内部含有一个全双工串行通信接口,由串行口控制寄存器SCON、发送和接收电路、串行数据缓冲寄存器SBUF组成。发送与接收的SBUF在物理上独立存在,在使用上同名,单片机仅靠指令区分。发送串行数据使用MOVSBUF,A;这里的SBUF是发送缓冲寄存器SBUF。在C语言中,向SBUF中写入数据就是串行口发送。接收串行数据使用MOVA,SBUF;这里的SBUF是接收缓冲寄存器SBUF。在C语言中,向读取SBUF中数据就是串行口接收。2.AT89S51的外部串行通信引脚6/15串行数据接收端RXD——P3.0(10号引脚)。串行数据发送端TXD——P3.1(11号引脚)。3.AT89S51的波特率发生器固定波特率由晶振分频产生。可变波特率由T1定时器溢出频分频产生。具体波特率大小由SCON中方式位和相关的传递参数决定。4.串行口控制寄存器SCONSCON寄存器7/15特点:8位、可位寻址、复位后内容为00H;作用:设置串行口的工作方式,提供串行口工作的标志位;SM0SM1SM2RENTB8RB8ITRISM0、SM1:串行口四种工作方式设置位;SM2:多机通信位。SM2=0,单机对单机通信;SM2=1,多机通信;REN:接收允许控制位。REN=0,禁止接收;REN=1,允许接收;TB8:发送数据第9位;RB8:发送数据第9位;TI:发送中断标志位;RI:接收中断标志位;8/155.串行数据缓冲寄存器SBUF特点:8位、复位后内容不确定;作用:做串行数据发送接受缓冲区,完成串行数据的发送和接收功能。三.AT89S51串行口的工作方式1.方式09/15将SCON中的SM0SM1设置成00即可。(SM2、TB8、RB8不起作用,设为0)方式0下,串行口是作为同步的移位寄存器来使用,波特率为机器周期。(fosc/12)RXD(10引脚)上发送8位数据,TXD(11引脚)上发送同步脉冲。发送数据在TI=0下通过向SBUF写入数据来完成。接收数据在RI=0且REN=1下来启动的。2.方式110/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下来启动的。3.方式211/15将SCON中的SM0SM1设置成10即可。11位异步收发,波特率为fosc/64。4.方式3将SCON中的SM0SM1设置成11即可。11位异步收发,波特率为T1溢出频率的1/32。四.AT89S51的串行口中断源12/15接收中断标志RI,中断矢量0023H,编号4;发送中断标志TI,中断矢量0023H,编号4;一帧数据发送完毕会使TI自动置1,向CPU提出发送中断申请;一帧数据接收完毕会使RI自动置1,向CPU提出接收中断申请;AT89S51单片机响应串行口中断请求后不会将中断标志位清0,在使用中必须人工将RI、TI标志清0,否则串行口将不能接收和发送数据帧。五.AT89S51串行口中断的应用步骤13/151.设置外部中断请求允许位,设置IE寄存器中的EA、ES;2.根据需要设置SCON寄存器,确定串行口的工作方式并初始化标志位;3.波特率与T1有关则设置TMOD寄存器,设定T1的工作方式;4.推算出对应波特率T1寄存器的初值,传递到T1;5.启动T1定时器,T1便成为了波特率发生器;6.将电源控制寄存器PCON最高位SMOD设置成1,单片机系统的波特率将翻一倍;7.编写中断处理子函数,中断编号是4;本课题的要求本课题教学完成后,初学者必须做到:•正确理解串行异步通信中字符帧格式和波特率两个重要通信指标。•正确理解串行通信中单工、半双工、全双工三种制式。•牢记AT89S51串行口控制寄存器各位符号及功能。•牢记AT89S51单片机串行口四种工作方式的各自特点。•牢记AT89S51串行口中断源的应用步骤。14/15下次讲解课题课题九中断优先及看门狗功能的使用~完~15/15

1 / 16
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功