欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    第七章 串行通信精选文档.ppt

    • 资源ID:87568120       资源大小:3.03MB        全文页数:41页
    • 资源格式: PPT        下载积分:18金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要18金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第七章 串行通信精选文档.ppt

    第七章 串行通信本讲稿第一页,共四十一页7.1 串行通信的基本概念串行通信的基本概念7.1.1 通信数据的传输方式通信数据的传输方式传输方式传输方式并行方式并行方式串行方式串行方式同步方式同步方式异步方式异步方式单工方式单工方式半双工方式半双工方式全双工方式全双工方式多工方式多工方式NEXTHOME7.1.2 串行通信的通信标准串行通信的通信标准 串行通信的通信标准主要是指通信的电气和硬件标准,常用的有串行通信的通信标准主要是指通信的电气和硬件标准,常用的有RS-232;RS-485/422等。等。8051单片机的通讯方式有两种,并行通讯:数据的各位同时发送或接收。串行通讯:单片机的通讯方式有两种,并行通讯:数据的各位同时发送或接收。串行通讯:数据一位一位顺序发送或接收。数据一位一位顺序发送或接收。本讲稿第二页,共四十一页BACKNEXTHOMERS-232标准标准 电气特性:逻辑电气特性:逻辑“1”=-3V-15V;逻辑;逻辑“0”=+3V+15V。在与。在与TTL标准连标准连接时必须进行电平转换,常用芯片有接时必须进行电平转换,常用芯片有MC1488、MC1489及及MAX202MAX232等等。机械特性:常用机械特性:常用DB-9和和DB-25两种连接器,经常只使用其中的两种连接器,经常只使用其中的9个引脚。个引脚。接口信号:标准接口信号:标准RS-232接口定义了接口定义了25条线,包括条线,包括4条数据线、条数据线、11条控制线、条控制线、3条定时线、条定时线、7条备用和未定义线,一般只用其中的条备用和未定义线,一般只用其中的9条。而在实际控制系统条。而在实际控制系统中,为了尽量减少连接线的数量,只使用其中的中,为了尽量减少连接线的数量,只使用其中的3条线,即:发送数据条线,即:发送数据(TXD)、接收数据()、接收数据(RXD)、地线()、地线(GND)。)。RS-485/422标准标准电气特性:逻辑电气特性:逻辑“1”=0.2V 7(12)V;逻辑逻辑“0”=-0.2V-7(-12)V。在与。在与TTL标准连接时同样必须进行电平转换,常用芯片有标准连接时同样必须进行电平转换,常用芯片有MC1485等。等。机械特性:通常采用双线制(双绞线)平衡方式传输。机械特性:通常采用双线制(双绞线)平衡方式传输。本讲稿第三页,共四十一页BACKNEXTHOME7.1.3 串行通信的通信方式串行通信的通信方式 串行通信又可分为异步通信和同步通信。异步通信的接受器和发送器使串行通信又可分为异步通信和同步通信。异步通信的接受器和发送器使用各自的时钟,每次只传送一字节数据,允许时钟产生误差;同步通信每用各自的时钟,每次只传送一字节数据,允许时钟产生误差;同步通信每次传送的数据量较大,要求精度高,因此接受器和发送器使用同一时钟。次传送的数据量较大,要求精度高,因此接受器和发送器使用同一时钟。异步通讯异步通讯 以字符为传送单位用起始位和停止位标识每个字符的开始和结束字以字符为传送单位用起始位和停止位标识每个字符的开始和结束字符间隔不固定,只需字符传送时同步。异步通讯数据常用一帧为单位,符间隔不固定,只需字符传送时同步。异步通讯数据常用一帧为单位,一帧字符位数的规定:起始位,数据位,校验位和停止位,校验位紧跟一帧字符位数的规定:起始位,数据位,校验位和停止位,校验位紧跟在数据位后,也可以省略。下图为省略校验位后一帧数据的示意图。在数据位后,也可以省略。下图为省略校验位后一帧数据的示意图。D0D1D2D3D4D5D6D7停止位停止位起始位起始位优点是硬件要求低,可靠性高,传送距离远,但速度较慢。优点是硬件要求低,可靠性高,传送距离远,但速度较慢。本讲稿第四页,共四十一页BACKNEXTHOME同步通信同步通信 以一串字符为一个传送单位,字符间不加标识位,在一串字符开始用以一串字符为一个传送单位,字符间不加标识位,在一串字符开始用同步字符标识,硬件要求高,通讯双方须严格同步。同步字符标识,硬件要求高,通讯双方须严格同步。【提示】:在单片机与外设进行数据通信时,多采用异步串行通信。【提示】:在单片机与外设进行数据通信时,多采用异步串行通信。7.1.4 串行通信数据的传送速率串行通信数据的传送速率 数据传送的速率又称为波特率,其定义是每秒钟传送的二进制数的位数。例如,数据传送的速率又称为波特率,其定义是每秒钟传送的二进制数的位数。例如,数据传送的速率是数据传送的速率是120字符字符/s,而每个字符如上述规定包含,而每个字符如上述规定包含10数位,则传送波特率数位,则传送波特率为为1200波特。波特。数据在单片机中都是以并行的方式处理和存储的,要进行串行数据通信时,数据在单片机中都是以并行的方式处理和存储的,要进行串行数据通信时,就必须将并行数据转换成串行数据,这部分工作由单片机中的串行通讯口来完就必须将并行数据转换成串行数据,这部分工作由单片机中的串行通讯口来完成。成。7.1.5 串行通信数据的校验串行通信数据的校验 数据传送的过程中经常会出现错误,因而必须对数据的正确性进行校验,数据传送的过程中经常会出现错误,因而必须对数据的正确性进行校验,常分为横向校验和纵向校验。常分为横向校验和纵向校验。本讲稿第五页,共四十一页7.2 串行口的工作方式串行口的工作方式7.2.1 串行口控制寄存器串行口控制寄存器 控制单片机串行口工作的寄存器有两个,即串行口控制寄存器控制单片机串行口工作的寄存器有两个,即串行口控制寄存器SCON和特殊功能寄存器和特殊功能寄存器PCON。串行口控制寄存器串行口控制寄存器SCON,字节地址,字节地址98H 串行口控制寄存器用于定义串行口的工作方式及实施接收和发送控制。字节地址串行口控制寄存器用于定义串行口的工作方式及实施接收和发送控制。字节地址为为98H,其各位定义如下表,其各位定义如下表:RITIRB8TB8RENSM2SM1SM0 模式选择模式选择 多机通讯位多机通讯位 允许接收位允许接收位 发送、接收第发送、接收第9位位 发送、接收标志发送、接收标志BACKNEXTHOME本讲稿第六页,共四十一页u SM0、SM1:串行口工作方式选择位,其定义如下:串行口工作方式选择位,其定义如下:可变可变1+9+1位异步通信位异步通信UART3 1 1Fosc/64或或/321+9+1位异步通信位异步通信UART2 1 0可变可变1+8+1位异步通信位异步通信UART1 0 1Fosc/12同步移位寄存器模式同步移位寄存器模式0 0 0波特率波特率功功 能能模式模式SM0 SM1其中其中fosc为晶振频率为晶振频率u SM2:多机通讯控制位。在方式:多机通讯控制位。在方式0时,时,SM2一定要等于一定要等于0。在方式。在方式1中,当中,当(SM2)=1时,只有接收到有效停止位时,时,只有接收到有效停止位时,RI才置才置1。在方式。在方式2或方式或方式3当(当(SM2)=1且接收到的第九位数据且接收到的第九位数据RB8=1时,时,RI才置才置1。BACKNEXTHOME本讲稿第七页,共四十一页BACKNEXTHOMEu REN:接收允许控制位。由软件置位以允许接收,又由软件清:接收允许控制位。由软件置位以允许接收,又由软件清0来禁止接收。来禁止接收。u TB8:是要发送数据的第:是要发送数据的第9位。在方式位。在方式2或方式或方式3中,作为要发送的第中,作为要发送的第9位数据,位数据,根据需要由软件置根据需要由软件置1或清或清0。例如,可约定作为奇偶校验位,或在多机通讯中作。例如,可约定作为奇偶校验位,或在多机通讯中作为区别地址帧或数据帧的标志位。为区别地址帧或数据帧的标志位。u RB8:接收到的数据的第:接收到的数据的第9位。在方式位。在方式0中不使用中不使用RB8。在方式。在方式1中,若中,若(SM2)=0,RB8为接收到的停止位。在方式为接收到的停止位。在方式2或方式或方式3中,中,RB8为接收到的为接收到的第第9位数据。位数据。u TI:发送中断标志。在方式:发送中断标志。在方式0中,第中,第8位发送结束时,由硬件置位。在其它方式位发送结束时,由硬件置位。在其它方式的发送停止位前,由硬件置位。的发送停止位前,由硬件置位。TI置位既表示一帧信息发送结束,同时也是申请置位既表示一帧信息发送结束,同时也是申请中断,可根据需要,用软件查询的方法获得数据已发送完毕的信息,或用中断的中断,可根据需要,用软件查询的方法获得数据已发送完毕的信息,或用中断的方式来发送下一个数据。方式来发送下一个数据。TI必须用软件清必须用软件清0。u RI:接收中断标志位。在方式:接收中断标志位。在方式0,当接收完第,当接收完第8位数据后,由硬件置位。在其它方式中,位数据后,由硬件置位。在其它方式中,在接收到停止位的中间时刻由硬件置位(例外情况见于在接收到停止位的中间时刻由硬件置位(例外情况见于SM2的说明)。的说明)。RI置位表示一帧数置位表示一帧数据接收完毕,可用查询的方法获知或者用中断的方法获知。据接收完毕,可用查询的方法获知或者用中断的方法获知。RI也必须用软件清也必须用软件清0。本讲稿第八页,共四十一页BACKNEXTHOME特殊功能寄存器特殊功能寄存器PCON,字节地址,字节地址87H 特殊功能寄存器特殊功能寄存器PCON中只有最高位中只有最高位D7(SMOD位)作为波特率选择位使用,其余位)作为波特率选择位使用,其余位与串行通信无关。位与串行通信无关。PCON只能字节寻址,因此须用字节寻址指令对其进行赋值,只能字节寻址,因此须用字节寻址指令对其进行赋值,SMOD=1:波特率加倍;:波特率加倍;SMOD=0:波特率不变。:波特率不变。7.2.2 工作方式工作方式0 方式方式0为移位寄存器输入为移位寄存器输入/输出方式。可外接移位寄存器以扩展输出方式。可外接移位寄存器以扩展I/O口,口,也可以外接同步输入也可以外接同步输入/输出设备。输出设备。8位串行数据者是从位串行数据者是从RXD输入或输出,输入或输出,TXD用来输出同步脉冲。用来输出同步脉冲。输出:串行数据从输出:串行数据从RXD引脚输出,引脚输出,TXD引脚输出移位脉冲。引脚输出移位脉冲。CPU将数据写入发送寄存器将数据写入发送寄存器时,立即启动发送,将时,立即启动发送,将8位数据以位数据以fos/12的固定波特率从的固定波特率从RXD输出,低位在前,高位在后。输出,低位在前,高位在后。发送完一帧数据后,发送中断标志发送完一帧数据后,发送中断标志TI由硬件置位,必须由软件复位。由硬件置位,必须由软件复位。输入:当串行口以方式输入:当串行口以方式0接收时,先置位允许接收控制位接收时,先置位允许接收控制位REN。此时,。此时,RXD为串行数据输入端,为串行数据输入端,TXD仍为同步脉冲移位输出端。当(仍为同步脉冲移位输出端。当(RI)=0和和(REN)=1同时满足时,开始接收。当接收到第同时满足时,开始接收。当接收到第8位数据时,将数据移入接收位数据时,将数据移入接收寄存器,并由硬件置位寄存器,并由硬件置位RI,同样必须由软件复位,同样必须由软件复位。本讲稿第九页,共四十一页下图是方式下图是方式0扩展输出和输入的接线图。扩展输出和输入的接线图。focs/12方式方式0串行口的波特率串行口的波特率 BB=focs/12发送、接收控制器发送、接收控制器BACKNEXTHOME方式方式0时,波特率为固定的时,波特率为固定的focs/12。本讲稿第十页,共四十一页BACKNEXTHOME7.2.3 工作方式工作方式1 方式方式1为波特率可变的为波特率可变的10位异步通讯接口方式。发送或接收一帧信息,包括位异步通讯接口方式。发送或接收一帧信息,包括1个起个起始位始位0,8个数据位和个数据位和1个停止位个停止位1。输出:当输出:当CPU执行一条指令将数据写入发送缓冲执行一条指令将数据写入发送缓冲SBUF时,就启动发送。串行数据时,就启动发送。串行数据从从TXD引脚输出,发送完一帧数据后,就由硬件置位引脚输出,发送完一帧数据后,就由硬件置位TI。输入:在(输入:在(REN)=1时,串行口采样时,串行口采样RXD引脚,当采样到引脚,当采样到1至至0的跳变时,确的跳变时,确认是开始位认是开始位0,就开始接收一帧数据。只有当(,就开始接收一帧数据。只有当(RI)=0且停止位为且停止位为1或者或者(SM2)=0时,停止位才进入时,停止位才进入RB8,8位数据才能进入接收寄存器,并由硬件位数据才能进入接收寄存器,并由硬件置位中断标志置位中断标志RI;否则信息丢失。所以在方式;否则信息丢失。所以在方式1接收时,应先用软件清零接收时,应先用软件清零RI和和SM2标志。标志。1/161/2T1溢出溢出10SMOD方式方式1、3时串行口的波特率时串行口的波特率 B B=1/32T1溢出率溢出率或或=1/16T1溢出率溢出率发送、接收控制器发送、接收控制器方式方式1时,波特率是可变的,由定时时,波特率是可变的,由定时/计数计数器器T1的溢出率决定,如左图所示:的溢出率决定,如左图所示:本讲稿第十一页,共四十一页7.2.4 工作方式工作方式2 方式方式2为可选定波特率的为可选定波特率的11位位UART方式。它比方式方式。它比方式1增加了一位可程控增加了一位可程控为为1或或0的第的第9位数据。位数据。输出输出:发送的串行数据由发送的串行数据由TXD端输出一帧信息为端输出一帧信息为11位,附加的第位,附加的第9位来自位来自SCON寄存器的寄存器的TB8位,用软件置位或复位。它可作为多机通讯中地址位,用软件置位或复位。它可作为多机通讯中地址/数据信息的标志位,也可以作为数数据信息的标志位,也可以作为数据的奇偶校验位。当据的奇偶校验位。当CPU执行一条数据写入执行一条数据写入SUBF的指令时,就启动发送器发送。发送一帧的指令时,就启动发送器发送。发送一帧信息后,置位中断标志信息后,置位中断标志TI。输入输入:在(在(REN)=1时,串行口采样时,串行口采样RXD引脚,当采样到引脚,当采样到1至至0的跳变时,确的跳变时,确认是开始位认是开始位0,就开始接收一帧数据。在接收到附加的第,就开始接收一帧数据。在接收到附加的第9位数据后,当位数据后,当(RI)=0且(且(SM2)=0时,接收完停止位后,第时,接收完停止位后,第9位数据进入位数据进入RB8,8位数据进位数据进入接收寄存器,并由硬件置位中断标志入接收寄存器,并由硬件置位中断标志RI;否则信息丢失。且不置位;否则信息丢失。且不置位RI。再。再过一位传送时间后,不管上述条件是否满足,接收电路即行复位,并重新检过一位传送时间后,不管上述条件是否满足,接收电路即行复位,并重新检测测RXD上从上从1到到0的跳变。当(的跳变。当(SM2)=1时,若第时,若第9位数据为位数据为0,则不置位,则不置位RI,只,只有第有第9位数据为位数据为1,才激活,才激活RI。波特率的计算公式为:波特率波特率的计算公式为:波特率=2SMOD(振荡器频率)(振荡器频率)/64BACKNEXTHOME本讲稿第十二页,共四十一页7.2.5 工作方式工作方式3 方式方式3为波特率可变的为波特率可变的11位位UART方式。除波特率外,其余与方式方式。除波特率外,其余与方式2相同。相同。1/2focs/210SMOD方式方式2串行口的波特率串行口的波特率 B1/16B=focs/32或或=fosc/64发送、接收控制器发送、接收控制器BACKNEXTHOME 方式方式2时,波特率是可选择的,由时,波特率是可选择的,由PCON中的中的SMOD位决定,如左图所示:位决定,如左图所示:本讲稿第十三页,共四十一页BACKNEXTHOME7.2.6 工作方式工作方式1、3时波特率的计算时波特率的计算定时器定时器T1作为波特率发生器,其公式如下作为波特率发生器,其公式如下:波特率波特率=2SMOD/32定时器定时器T1溢出率溢出率 T1溢出率溢出率=T1计数率计数率/产生溢出所需的周期数产生溢出所需的周期数 式中式中T1计数率取决于它工作在定时器状态还是计数器状态。当工作于定时器状态时,计数率取决于它工作在定时器状态还是计数器状态。当工作于定时器状态时,T1计数率为计数率为fosc/12;当工作于计数器状态时,当工作于计数器状态时,T1计数率为外部输入频率,此频率应小计数率为外部输入频率,此频率应小于于fosc/24。产生溢出所需周期与定时器。产生溢出所需周期与定时器T1的工作方式、的工作方式、T1的预置值有关。的预置值有关。定时器定时器T1工作于方式工作于方式0:溢出所需周期数:溢出所需周期数=8192-x 定时器定时器T1工作于方式工作于方式1:溢出所需周期数:溢出所需周期数=65536-x定时器定时器T1工作于方式工作于方式2:溢出所需周期数:溢出所需周期数=256-x 因为方式因为方式2为自动重装入初值的为自动重装入初值的8位定时器位定时器/计数器模式,所以用它来做波计数器模式,所以用它来做波特率发生器最恰当。特率发生器最恰当。当时钟频率选用当时钟频率选用11.0592MHZ时,极易获得标准的波特率,所以很多单片机系统选用这时,极易获得标准的波特率,所以很多单片机系统选用这个看起来个看起来“怪怪”的晶振就是这个道理。的晶振就是这个道理。本讲稿第十四页,共四十一页下表列出了定时器下表列出了定时器T1工作于方式工作于方式2常用波特率及初值:常用波特率及初值:常用波特率常用波特率Fosc(MHZ)SMODTH1初值初值1920011.05921FDH960011.05920FDH480011.05920FAH240011.05920F4h120011.05920E8hBACKNEXTHOME本讲稿第十五页,共四十一页BACKNEXTHOME方式方式发送条件发送条件接收条件接收条件接收方式接收方式主要应用主要应用0TI=0RI=0,REN=1查询、中断查询、中断同步移位同步移位,系统扩并口系统扩并口1TI=0RI=0,REN=1查询、中断查询、中断8位数据异步传送位数据异步传送2、3TI=0RI=0,REN=1,SM2=0查询查询(无中断)(无中断)8位数据位数据+奇偶位的奇偶位的异步收发异步收发 UARTRI=0,REN=1,RB8=1 若若SM2=0时查时查询。询。若若SM2=1时引时引发中断发中断8位数据位数据+控制位的控制位的异步收发异步收发 UART四种模式的接收、发送条件四种模式的接收、发送条件本讲稿第十六页,共四十一页7.2.7 应用举例应用举例1工作方式工作方式0应用举例应用举例 8051单片机串行口方式单片机串行口方式0为移位寄存器方式为移位寄存器方式,外接一个串入并出的移位寄存器外接一个串入并出的移位寄存器,就可就可以扩展一个并行口。以扩展一个并行口。【例】:【例】:用用8051串行口外接串行口外接CD4094扩展扩展8位并行输出口,位并行输出口,如图所示,如图所示,8位并行口的各位位并行口的各位都接一个发光二极管,要求发都接一个发光二极管,要求发光管呈流水灯状态。光管呈流水灯状态。串行口串行口方式方式0的数据传送可采用中断的数据传送可采用中断方式,也可采用查询方式,无方式,也可采用查询方式,无论哪种方式,都要借助于论哪种方式,都要借助于TI或或RI标志。标志。串行发送时,可以靠串行发送时,可以靠TI置位(发完一帧数据后)引起中断申请,在置位(发完一帧数据后)引起中断申请,在中断服务程序中发送下一帧数据,或者通过查询中断服务程序中发送下一帧数据,或者通过查询TI的状态,只要的状态,只要TI为为0就就继续查询,继续查询,TI为为1就结束查询,发送下一帧数据。在串行接收时,则由就结束查询,发送下一帧数据。在串行接收时,则由RI引起中断或对引起中断或对RI查询来确定何时接收下一帧数据。无论采用什么方式,查询来确定何时接收下一帧数据。无论采用什么方式,在开始通讯之前,都要先对控制寄存器在开始通讯之前,都要先对控制寄存器SCON进行初始化。在方式进行初始化。在方式0中中将将00H送送SCON就可以了。就可以了。BACKNEXTHOME本讲稿第十七页,共四十一页【解】:【解】:程序清单如下程序清单如下ORG2000H START:MOVSCON,#00H;置串行口工作方式;置串行口工作方式0MOVA,#80H;最高位灯先亮;最高位灯先亮 CLRP1.0;关闭并行输出;关闭并行输出(避免传输过程避免传输过程;中;中,各各LED的的暗红暗红现象现象)CLRTI;清;清TI标志标志OUT0:MOVSBUF,A;开始串行输出;开始串行输出 OUT1:JNBTI,$;输出完否;输出完否 CLRTI;完了,清;完了,清TI标志,以备下次标志,以备下次;发送;发送 SETBP1.0;打开并行口输出;打开并行口输出 ACALL DELAY;延时一段时间;延时一段时间 RRA;循环右移;循环右移 CLRP1.0;关闭并行输出;关闭并行输出 JMPOUT0;循环;循环 BACKNEXTHOME本讲稿第十八页,共四十一页2工作方式工作方式1应用举例应用举例 发送程序(查询方式):发送程序(查询方式):T1初始化初始化启动启动T1串行口初始化串行口初始化输入数据到输入数据到A发送一帧数据发送一帧数据MOV SBUF,ATI=1?软件清软件清TIYNBACKNEXTHOME 编写发送程序的一般方法是:先初始化串行口和编写发送程序的一般方法是:先初始化串行口和T1,然后将发送数据送入然后将发送数据送入SBUF,查询,查询TI位,当位,当TI为为1后,复位后,复位TI并立即发送下一帧数据,直至数据发送完毕。框图如右图所并立即发送下一帧数据,直至数据发送完毕。框图如右图所示:示:M0M1C/TGATEM0M1C/TGATE设定定时器设定定时器T1的工作模式的工作模式 00100000BRITIRB8TB8RENSM2SM1SM0设定串行口模式寄存器设定串行口模式寄存器SCON为为01000000B本讲稿第十九页,共四十一页BACKNEXTHOME程序清单如下:程序清单如下:org0000hljmp0100horg0100hStart:movtmod,#20h;设定定时器;设定定时器T1为模式为模式2movtl1,#0f4h ;送定时初值;送定时初值(fosc=11.059)movth1,#0f4h;波特率;波特率B=2400setbtr1;启动定时器;启动定时器T1movscon,#40h;设定串行口为模式;设定串行口为模式1movpcon,#00h;PCON中的中的SMOD=0clrtiLoop2:movp1,#0ffh mova,p1;从;从P1口输入数据口输入数据movsbuf,a;数据送;数据送SBUF发送发送Loop1:jnbti,loop1;判断数据是否发送完毕?;判断数据是否发送完毕?clrti;发送完一帧后清标志;发送完一帧后清标志sjmploop2;返回继续;返回继续end本讲稿第二十页,共四十一页接收程序(查询方式):接收程序(查询方式):M0M1C/TGATEM0M1C/TGATE定时器定时器TMOD(89H)的工作模式)的工作模式 00100000BRITIRB8TB8RENSM2SM1SM0串行口模式寄存器串行口模式寄存器SCON(98H)为)为01010000BT1初始化初始化启动启动T1串行口初始化串行口初始化输出数据到输出数据到P1数据送数据送AMOV A,SBUFRI=1?软件清软件清TIYN 编写接收程序与发送程序类似:先初始化串行口和编写接收程序与发送程序类似:先初始化串行口和T1,然后查询,然后查询RI位,当位,当RI为为1后,复位后,复位RI并立即接收一帧数据,并立即接收一帧数据,直至数据接收完毕。框图如右图所示:直至数据接收完毕。框图如右图所示:BACKNEXTHOME本讲稿第二十一页,共四十一页程序清单如下:程序清单如下:org0000hljmp0100horg0100hStart:movtmod,#20h;选定;选定T1为模式为模式2(自动重装)(自动重装)movtl1,#0f4h;设定初值;设定初值movth1,#0f4h;同上;同上movpcon,#00h;PCON的的SMOD=0setbtr1;启动;启动T1定时器定时器clrri;清接收标志;清接收标志movscon,#50h;设定串行口为方式;设定串行口为方式1Loop1:jnbri,loop1;判断是否接收到数据?;判断是否接收到数据?clrri;接收到数据后清接收标志;接收到数据后清接收标志mova,sbuf ;数据送累加器;数据送累加器Amovp1,a ;从;从P1口输出口输出sjmploop1 ;继续;继续endBACKNEXTHOME【习题】:将上述程序用中断方式编写。【习题】:将上述程序用中断方式编写。本讲稿第二十二页,共四十一页3工作方式工作方式2、3应用举例应用举例 与模式与模式1相比,模式相比,模式2、3的主要特点:的主要特点:1,9位数据的传送格式:发送时第位数据的传送格式:发送时第9位在位在TB8;接收时第;接收时第9位在位在RB8中。中。2,SM2:多机通讯位:多机通讯位:在模式在模式0、1中中:SM2=0。当。当RI=1时便可以引发中断。时便可以引发中断。在模式在模式2、3中中:如果如果SM2=0,TI和和RI 可以被激活,并引发中断!可以被激活,并引发中断!如果如果SM2=1,且且RB8=1时,时,RI被激活时可以引发中断!被激活时可以引发中断!根据上面特点,模式根据上面特点,模式2、3可以可以:1,利用第利用第9位数据来传送、接收每一字节的位数据来传送、接收每一字节的“奇偶效验位奇偶效验位”。2,利用利用SM2、RB8 实现多机通讯功能。实现多机通讯功能。BACKNEXTHOME本讲稿第二十三页,共四十一页利用模式利用模式2,3进行带奇校验的串行通讯程序流程图进行带奇校验的串行通讯程序流程图数据送累加器数据送累加器APSW.P=1?SET SCON.TB8CLR SCON.TB8MOV SBUF,ATI=1?CLR SCON.TIYESNONOYES发送端程序发送端程序RI=1?MOV A,SBUFPSW.P RB8=0?出错处理出错处理CLR SCON.RIYESNO接收端程序接收端程序NY数据送内存数据送内存BACKNEXTHOME本讲稿第二十四页,共四十一页7.3 串行口的多机通信串行口的多机通信主机主机从机从机 N从机从机 4从机从机 3从机从机 2从机从机 1串行数据线(串行数据线(2条)条)BACKNEXTHOME本讲稿第二十五页,共四十一页1、主从式多机通讯原理主从式多机通讯原理1,主机发送的数据可以传送到各个从机,从机发送的数据只能为主机接收,从,主机发送的数据可以传送到各个从机,从机发送的数据只能为主机接收,从机之间不能直接通讯。机之间不能直接通讯。2,主机和从机的设置为模式,主机和从机的设置为模式2或或3,其中,其中:主机的主机的SM2=0(单机方式);(单机方式);从机的从机的SM2=1(多机方式)。(多机方式)。3,主机发送地址码来寻找从机(地址码特征是第,主机发送地址码来寻找从机(地址码特征是第9位数据为位数据为“1”),所有从机都接收主),所有从机都接收主机发出的地址码(因为机发出的地址码(因为RB8=1),既),既RI=1引发中断。在中断服务程序中,将接收到地址码引发中断。在中断服务程序中,将接收到地址码与自己的地址进行比较,被选中的从机将自己的与自己的地址进行比较,被选中的从机将自己的SM2=0,并维持在中断服务程序中保持与,并维持在中断服务程序中保持与主机的联系。而未被选中的从机仍保持主机的联系。而未被选中的从机仍保持SM2=1,并退出中断服务程序。,并退出中断服务程序。4,当主机找到从机后,开始向从机发数据、命令(其特征为第,当主机找到从机后,开始向从机发数据、命令(其特征为第9位位=0)。由于选中的从机)。由于选中的从机SM2=0,从机仍可以使用查询或中断的方式接收主机发出的数据或命令(而未选中的从机,从机仍可以使用查询或中断的方式接收主机发出的数据或命令(而未选中的从机因因RB8=0不会引发它们的中断)。当主机与从机的通讯完成后,该从机再将其不会引发它们的中断)。当主机与从机的通讯完成后,该从机再将其SM2=1并并退出中断服务程序。主机重新发出另一个从机的地址,所有从机可以马上响应并接收地址退出中断服务程序。主机重新发出另一个从机的地址,所有从机可以马上响应并接收地址信息。信息。BACKNEXTHOME本讲稿第二十六页,共四十一页2、多机通讯中主机与从机之间的控制、状态信息多机通讯中主机与从机之间的控制、状态信息u 主机发送的通信请求命令:主机发送的通信请求命令:主机发送,从机接收;主机发送,从机接收;从机回送通信应答命令:主机接收,从机发送。从机回送通信应答命令:主机接收,从机发送。u 从机状态字:从机向主机发送的用于表征从机工作状态的信息(如下图)。从机状态字:从机向主机发送的用于表征从机工作状态的信息(如下图)。BACKNEXTHOMETB8=1地址码地址码主机发送的地址码主机发送的地址码RRDYTRDYERR0:合法命令:合法命令 0:发送未就绪:发送未就绪 0:接收未就绪:接收未就绪1:非法命令:非法命令 1:发送就绪:发送就绪 1:接收就绪:接收就绪从机返回的状态字从机返回的状态字TB8=0本讲稿第二十七页,共四十一页主机程序框图主机程序框图T1为定时为定时,模式模式2B=1200,启动,启动T1设串口为模式设串口为模式3REN=1,SM2=0TB8=1设定程序数据:设定程序数据:R0R5调用调用MCOMMU停机停机MCOMMU发送从机地址发送从机地址从机应答?从机应答?地址相符?地址相符?发送命令字发送命令字TB8=0从机应答?从机应答?命令正确?命令正确?命令分类命令分类接收数据块接收数据块发送数据块发送数据块从机接收就绪?从机接收就绪?从机发送就绪?从机发送就绪?RET命令从命令从机复位机复位NNYYNNYYNNYY接收接收发送发送BACKNEXTHOME本讲稿第二十八页,共四十一页从机程序框图从机程序框图T1为定时为定时,模式模式2B=1200,启动,启动T1设串口为模式设串口为模式3REN=1,SM2=0TB8=1设定程序参数:设定程序参数:R0R3开串行口中断开串行口中断停机停机主程序主程序BACKNEXTHOME本讲稿第二十九页,共四十一页保护现场保护现场接收地址符合本机?接收地址符合本机?回送本机地址回送本机地址接收下一字符接收下一字符是命令吗?是命令吗?命令分类命令分类 本机发送准备就绪?本机发送准备就绪?本机接收准备就绪?本机接收准备就绪?发发TRDY=1状态字状态字发发RRDY=1状态字状态字发送数据发送数据接收数据接收数据发送完?发送完?接收完?接收完?保护现场返回保护现场返回NNYY发送命令发送命令接收命令接收命令非法命令非法命令送送TRDY=0送送RRDY=0NNNY中断服务程序中断服务程序BACKNEXTHOME本讲稿第三十页,共四十一页7.4 串行口的编程与应用串行口的编程与应用7.4.1 常规编程方式常规编程方式串行口初始化编程格式:串行口初始化编程格式:SIO:MOVSCON,#控制状态字控制状态字;写方式字且;写方式字且TI=RI=0MOVPCON,#X0H ;选择波特率;选择波特率MOVTMOD,#20H;T1作波特率发生器作波特率发生器MOVTH1,#X;选定波特率;选定波特率MOVTL1,#XSETBTR1 SETBES;开串行口中断;开串行口中断SETBEA;开中断;开中断【注意】:若采用查询方式,最后两条指令可以省略。【注意】:若采用查询方式,最后两条指令可以省略。BACKNEXTHOME本讲稿第三十一页,共四十一页发送程序:先发送一个字符,等待发送程序:先发送一个字符,等待TI=1后再发送下一个字符。后再发送下一个字符。1.查询方式:查询方式:TRAM:MOV A,R0 ;取数据;取数据 MOVSBUF,A ;发送一个字符;发送一个字符WAIT:JBCTI,NEXT;等待发送结束;等待发送结束SJMPWAITNEXT:INCR0 ;准备下一次发送;准备下一次发送SJMPTRAM2.中断方式:中断方式:ORG0023H;串行口中断入口;串行口中断入口 AJMP SINTMAIN:;初始化编程;初始化编程TRAM:MOVA,R0 ;取数据;取数据MOVSBUF,A ;发送第一个字符;发送第一个字符H:SJMPH ;其它工作;其它工作SINT:CLR TI ;中断服务程序;中断服务程序INCR0MOVA,R0 ;取数据;取数据MOVSBUF,A ;发送下一个字符;发送下一个字符RETIBACKNEXTHOME本讲稿第三十二页,共四十一页BACKNEXTHOME接收程序:接收程序:REN=1、RI=0等待接收,当等待接收,当RI=1,从,从SBUF读取数据读取数据1.查询方式:查询方式:WAIT:JBCRI,NEXT;查询等待;查询等待SJMPWAITNEXT:MOVA,SBUF;读取接收数据;读取接收数据MOVR0,A;保存数据;保存数据INCR0 ;准备下一次接收;准备下一次接收SJMPWAIT2.中断方式:中断方式:ORG0023HAJMPRINTMAIN:;初始化编程;初始化编程H:SJMPH ;其它任务;其它任务RINT:CLRRI ;清中断标志;清中断标志MOVA,SBUF;读取接收数据;读取接收数据MOVR0,A;保存数据;保存数据INCR0RETI本讲稿第三十三页,共四十一页7.4.2 编程举例编程举例【例】:【例】:设有两单片机进行异步通信,发送方将片内设有两单片机进行异步通信,发送方将片内RAM 50H起始单元的起始单元的16个数由串行口发送,接收方以查询和中断两种方式进行接收。要求串行口波个数由串行口发送,接收方以查询和中断两种方式进行接收。要求串行口波特率为特率为2400(设晶振为设晶振为11.0592MHz),并进行奇偶校验。,并进行奇偶校验。【解】:【解】:根据题目要求,通信波特率可变,且需进行奇偶校验,因此选择工根据题目要求,通信波特率可变,且需进行奇偶校验,因此选择工作方式作方式3,先进行初始化,发送方和接收方相同,程序如下:,先进行初始化,发送方和接收方相同,程序如下:BACKNEXTHOMEORG0000HLJMPMAINMAIN:MOVSCON,#0B0H;写方式字且;写方式字且TI=RI=0MOVPCON,#00H ;选择波特率;选择波特率MOVTMOD,#20H;T1作波特率发生器作波特率发生器MOVTH1,#0F4H;选定波特率;选定波特率MOVTL1,#0F4HSETBTR1 LCALLTXD;调用发送子程序;调用发送子程序SJMP$;CPU转去执行其它任务转去执行其它任务本讲稿第三十四页,共四十一页BACKNEXTHOME发送方程序。发送方程序。1,查询方式:,查询方式:TXD:MOV R0,#50H ;设数据指针;设数据指针MOV R7,#10H ;数据长度;数据长度LOOP:MOV A,R0 ;取一个字符;取一个字符MOV C,P ;加奇偶校验;加奇偶校验MOV TB8,CMOV SBUF,A ;启动一次发送;启动一次发送LOOP1:JBCTI,LOOP2;查询是否发送完成;查询是否发送完成LJMPLOOP1LOOP2:INCR0;数据地址指针加;数据地址指针加1DJNZR7,LOOP;全部数据发送完成则返回;全部数据发送完成则返回RET本讲稿第三十五页,共四十一页发送方程序。发送方程序。2,中断方式:,中断方式:ORG0023HLJMPTINTMAIN:。SETBES;开串行口中断;开串行口中断SETBEA;开中断;开中断MOV R0,#50H ;设数据指针;设数据指针MOV R7,#10H ;数据长度;数据长度CLRTI;复位发送标志;复位发送标志MOV A,R0 ;取一个字符;

    注意事项

    本文(第七章 串行通信精选文档.ppt)为本站会员(石***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开