好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

学习任务七 单片机串行口应用—单片机的双机通信 《单片机应用技术》教学课件.ppt

88页
  • 卖家[上传人]:206****923
  • 文档编号:54277790
  • 上传时间:2018-09-10
  • 文档格式:PPT
  • 文档大小:3.84MB
  • / 88 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 学习任务七 单片机串行口应用—— 单片机的双机通信,,单片机应用技术,学 习 目 标,学 习 目 标,学 习 目 标,实际应用中,不但计算机与外部设备之间常常要进行信息交换,而且计算机之间也需要交换信息,所有这些信息的交换均称为“通信”任 务 准 备,任 务 准 备,并行通信与串行通信,并行通信是构成一组数据的各位同时进行传送,如8位数据或16位数据并行传送其特点是传输速度快,但当距离较远、位数又多时通信线路复杂且成本高串行通信是数据一位接一位地顺序传送其特点是通信线路简单,只要一对传输线(如线)就可以实现通信,从而大大地降低了系统成本,特别适用于远距离通信缺点是传送速度慢任 务 准 备,任 务 准 备,异步通信的一帧数据格式由起始位、数据位、奇偶校验位和停止位四部分组成串行通信字符帧格式,任 务 准 备,(1)起始位按照串行通信协议规定,在通信双方实行数据传输时,线路呈逻辑“1”发送端需要发送字符时,首先发送一个起始位,即将线路置成逻辑“0”,起始位长度占1位2)数据位数据位紧跟在起始位之后,数据位可以为5~8位,通常使用7位或8位数据位数据位在传送时,低位(LSB)在前,高位(MSB)在后。

      任 务 准 备,(3)奇偶校验位在数据位之后,是一个奇偶校验位它是根据通信双方采用何种校验方式(奇校验或偶校验)的约定而加入的目前专用于串行通信中的IC芯片大多采用这种校验方式在传输过程中,CPU可以根据此标志进行纠错处理4)停止位它用来表示一个字符数据的结束,用逻辑“1”表示停止位长度可以是1位、1.5位或2位停止位之后紧接着可以是下一个字符的起始位,也可以是空闲位(逻辑“1”),意味着线路处于等待状态任 务 准 备,同步通信是以数据块方式传输数据通常在面向字符的同步传输中,其帧结构(或称为帧格式)由三部分组成,即由若干字符组成的数据块,在数据块前加上1~2个同步字符SYN,在数据块的后部根据需要加入若干校验字符CRC任 务 准 备,同步通信数据格式,任 务 准 备,串行通信数据传输速率用波特率来表示波特率就是在通信时每秒钟传送的二进制数的位数,单位为位/秒(b/s)在异步通信中,波特率为每秒传送的字符数与每个字符的位数的乘积假如每秒传送120个字符,而每个字符按规定包含10位(起始位、校验位、停止位各1位,数据位7位),则波特率为 120字符/s×10 b/字符=1 200 b/s波特率越高,数据传输的速度越快,一般异步通信的波特率为50~9 600 b/s。

      任 务 准 备,任 务 准 备,(1)单工(simplex)制式在单工方式下,通信双方的一方只能发送数据,另一方只能接收数据,如图所示通信线的A端只有发送器,B端只有接收器,信息数据只能单向传送,即只能由A端传送到B端,而不能反传任 务 准 备,单工通信方式,(2)半双工(half duplex)制式半双工方式中,通信线路两端的设备都有一个发送器和一个接收器,即收发一体,如图75所示数据可双方向传送,但不能同时传送,即A端发送B端接收或B端发送A端接收,A、B两端的发送/接收只能通过半双工通信协议切换交替工作任 务 准 备,半双工通信方式,(3)全双工(full duplex)制式全双工通信方式简称双工通信方式在全双工方式下,通信线路A、B两端都有发送器和接收器,A、B之间有两个独立通信的回路,两端数据可以同时发送和接收,因此通信效率比前两种要高该方式下所需的传输线至少要有三条,一条用于发送,一条用于接收,一条用于公用信号地任 务 准 备,全双工通信方式,任 务 准 备,根据通信距离的不同,串行口的电路连接方式可分为三种形式如果距离很近,只要两根信号线(TXD、RXD)和一根地线(GND)就可以实现互联;为了提高通信距离,并且距离在15 m以内可采用RS-232接口实现;如果是远程通信,可通过调制解调器进行通信互联。

      任 务 准 备,51系列单片机串行口内部结构,任 务 准 备,(1)串行口数据缓冲寄存器SBUF51系列单片机通过特殊功能寄存器SBUF实现读写操作,即实现同时对数据的串行接收和串行发送,串行接收和串行发送缓冲器寄存器在串行口内部占两个独立的存储单元,共用一个地址99H串行口数据传送使用的是内部数据传送指令“MOV A,SBUF”或“MOV SBUF,A”当执行写操作时,访问串行发送寄存器SBUF;当执行读操作时,访问串行接收寄存器SBUF串行接收寄存器具有双缓冲结构,即在从接收寄存器中读出前一个已收到的字节之前,便能接收第二个字节但如果第二个字节已经接收完毕,第一个字节还没有读出,则将丢失其中一个字节,编程时应引起注意对于发送器,因为数据是由CPU控制发送的,所以不需要双缓冲任 务 准 备,(2)串行口控制寄存器SCON串行口控制寄存器SCON用来控制单片机串行口的工作方式的设定、接收与发送控制的状态,是一个特殊功能寄存器,其地址为98H,可位寻址在复位时所有位被清零SCON的格式如下任 务 准 备,其中各位的作用定义如下①SM0、SM1串行口工作方式选择位,单片机串行口的工作方式见表7-1。

      任 务 准 备,在计算机执行程序的过程中,当出现某种情况时,由服务对象向CPU发出请求当前程序中断的信号,要求CPU暂时停止当前程序的执行,而转去执行相应的处理程序,待处理程序执行完毕后,再返回继续执行原来被中断的程序,这样的过程称为中断过程引起中断的原因或触发中断请求的来源称为中断源为实现中断而设置的各种硬件和软件称为中断系统任 务 准 备,中断请求信号发出后,必须在相应的存储单元中设定标志,以便CPU及时查询并作出响应与中断请求标志相关的寄存器有TCON和SCON两个特殊功能寄存器,其中对应于各中断源的标志位见表6-1任 务 准 备,②SM2多机通信控制位主要用于工作方式2和工作方式3在方式2和方式3中,如SM2=1时,则接收到的第9位数据(RB8)为0时不启动接收中断RI(RI=0),并且将接收到的前8位数据丢弃;RB8为1时,才将接收到的前8位数据送入SBUF,并置位RI产生中断请求当SM2=0时,则不论第9位数据为0或1,都将前8位数据装入SBUF中,并产生中断请求在方式0时,SM2必须为0任 务 准 备,③REN允许接收控制位由软件置位或清零REN=1时,允许接收;REN=0时,禁止接收。

      ④TB8在方式2和方式3时,存放要发送数据的第9位数据,常用作奇偶校验位在多机通信中,可作为区别地址帧或数据帧的标识位,若为地址帧,TB8=1;若为数据帧,TB8=0⑤RB8在方式2和方式3时,RB8保存接收到的第9位数据在方式0时,不用RB8;在方式1时,如果SM2=0,则RB8是接收到的停止位任 务 准 备,⑥TI发送中断标志位在方式0下,发送完第8位数据位时,由硬件置位;在其他方式下,当开始发送停止位时,由硬件将TI置位,即向CPU申请中断,CPU可以发送下一帧数据在任何方式下,TI必须用软件清零接收中断标志位在方式0下,当接收完1帧数据时,由硬件将该位置位,在其他方式下,当接收到停止位时RI置位,即申请请求中断,要求CPU取走数据响应中断后,用软件清零任 务 准 备,(3)电源控制寄存器PCON电源控制寄存器PCON是一个特殊的功能寄存器,它主要用于电源控制方面另外,PCON中的最高位SMOD位称为波特率加倍位,用于对串行口的波特率控制,它的格式如下其中,最高位SMOD为串行口波特率选择位当SMOD=1时,串行口工作在方式1、方式2、方式3时的波特率加倍任 务 准 备,(1)工作方式0。

      此时串行口作为同步移位寄存器使用,相当于一个并入串出或串入并出的移位寄存器其波特率固定,为单片机振荡频率 f osc /12数据从RXD输入或输出(低位在先,高位在后),TXD输出同步移位时钟,发送过程从“MOV SBUF,A”开始,当8位数据传送完毕后,TI被置1接收时,必须先使REN=1,RI=0当8位数据接收完后,RI会置1,此时可由“MOV A,SBUF”将数据读入累加器若要再次发送和接收数据,必须用软件将TI、RI清零任 务 准 备,这种方式常用于单片机外围接口电路的扩展串行发送时,外部可扩展一片(或几片)串入并出的移位寄存器,用来扩展一个并行口典型应用如图所示任 务 准 备,串行口方式0,任 务 准 备,(2)工作方式1此时串行口工作于异步通信方式,帧数据格式为10位(8位数据位、1位起始位、1位停止位),其波特率是可变的AT89S51串行口的波特率由工作在方式2下的定时器T1的溢出率决定此方式时常设置定时器T1工作在方式2下,且禁止中断任 务 准 备,定时器的溢出率,就是定时器一秒钟计满溢出的次数若将定时器当作一个可编程的分频器来理解,则溢出率就等于定时器对系统时钟分频后的信号频率。

      具体计算公式为T1溢出率= f osc /12÷(2n -预置初值)当串行口以方式1发送时,CPU执行一条写发送寄存器指令“MOU SBUF,A”就可将数据位逐一由TXD端送出发送一帧数据后,将TI置1任 务 准 备,(3)工作方式2和方式3此时串行口工作为异步通信方式,帧数据格式为11位(1位起始位、8位数据位、1位可编程数据位、1位停止位)方式2的波特率取决于SMOD位的值当SMOD=0时,波特率为 f osc /64;当SMOD=1时,波特率为 f osc /32任 务 准 备,方式3的波特率是可变的,是由定时器T1的溢出率决定的发送时,由软件设置TB8后构成第9位数据进行发送,TB8可作为多机通信中的地址/数据信息的标志位,也可作为奇偶校验位方式2、方式3的发送过程与方式1的发送过程类似方式2、方式3的接收过程也与方式1类似,当接收到第9位数据后,将这一位数据送入RB8中任 务 准 备,任 务 准 备,任 务 准 备,任 务 准 备,串行口的初始化编程主要是对串行口控制寄存器SCON、电源控制寄存器PCON中的相关位的设定及串行口波特率发生器TI1的初始化如果涉及中断系统,则还需要对中断允许控制寄存器IE及中断优先级控制寄存器IP进行设定。

      任 务 准 备,任 务 准 备,通信过程包含发送和接收两部分,因此通信软件也包括发送程序和接收程序,它们分别位于发送机和接收机中发送和接收程序的设计一般采用查询和中断两种设计方法异步串行通信是以帧为基本单位传送的在每次发送或接收完一帧数据后,将由硬件使SCON中的TI或RI置1查询方式就是根据TI或RI的状态是否有效来判断一次数据发送或接收是否完成,如图7-9所示在发送程序中,首先将数据发送出去,然后查询是否发送完毕,再决定是否发下一帧数据,即“先发后查”在接收程序中,首先判断是否接收到一帧数据,然后保存这一帧数据,即“先查后收”任 务 准 备,图7-9 查询方式程序流程图,任 务 准 备,如果采用中断方法编程,则将TI、RI作为中断申请标志如果设置系统允许串行口中断,则每当TI或RI产生一次中断申请,就表示一帧数据发送或接收结束CPU响应一次中断申请,执行一次中断服务程序,在中断服务程序中完成数据的发送或接收,如图7-10所示其中,发送程序中必须有一次发送数据的操作,目的是为了启动第一次中断,之后的所有数据的发送均在中断服务程序中完成而接收程序中,所有的数据接收操作均在中断服务程序中完成。

      任 务 准 备,实训模块 可中断控制的循环彩灯系统的设计,图7-10 中断方式程序流程图,任 务 准 备,接收参考程序如下ORG 0100H FIRST:MOV TMOD,#20H;定时器T1初始化MOV TH1,#0F3HMOV TL1,# 0F3HMOV SCON,#50H;串行口初始化,允许接收MOV PCON,#80H SETBTR1MOV R0,#50H;置数据块首地址MOV R1,#50H ……,。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.