第6章89C51串行数据通信.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6章89C51串行数据通信

第6章 89C51串行数据通信 单片机在工作过程中,不可避免的总要和外围设备进行信息和数据的交换,即通信。在数码管动态显示电路中,P0口输出的8位段码数据,利用8根传输线同时传送,采用的是并行通信方式。这8位数据还可以只用一根传输线,一位一位的按顺序传送,即采用串行通信。和并行通信相比,串行通信具有节省传输线的优点,但传送效率低。例如:传送一个字节,并行通信只需要1T的时间,而串行通信至少需要8T的时间。 由此可见,串行通信适合于长距离、低速率的数据传送;并行通信适合于短距离、高速率的数据传送。随着计算机外围设备使用的越来越多,设备的串行口化趋势明显,大家熟悉的USB接口就是串行接口。本章就讨论89C51单片机的串行接口及其应用。 6.1 89C51单片机的串行口 89C51单片机内部有一个功能很强的串行口,不仅可以进行串行通信,还可以用来扩展I/O口,使用起来非常方便。 6.1.1 89C51单片机串行口内部结构 89C51单片机串行口利用P3.0和P3.1(P3口第二功能)进行数据的传送。其结构框图如图6-1所示,内部有两个独立的缓冲器SBUF,一个为发送SBUF,一个为接收SBUF。当利用串行口传输数据时,无论发送还是接收,都必须经过缓冲器SBUF完成。当CPU发送数据时,需要将待发数据写到发送SBUF;当串行口接收数据完毕时,CPU通过读取接收SBUF的内容获取数据。所以,虽然两个缓冲器共用一个字节地址0x99H,但使用时也不会引起混淆。读是对接收缓冲器的操作,写是对发送缓冲器的操作。例如:语句“SUBF=outdata”就是将数据送至发送缓冲器SBUF;语句“getdata=SBUF;”,就是读取接收缓冲器的数据。 6.1.2 串行口控制寄存器SCON SCON是串行通信中最重要的一个寄存器,该寄存器字节地址为0x98,可以进行位寻址。SCON的格式如下: 位 D7 D6 D5 D4 D3 D2 D1 D0 SCON SM0 SM1 SM2 REN TB8 RB8 TI RI 位地址 9FH 9EH 9DH 9CH 9BH 9AH 99H 98H SCON各位的功能为: SM0、SM1:用于定义串行口的工作方式,见表6-1 ,各方式的功能和详见以后章节。 表6-1 串口工作方式 SM0 SM1 工作方式 功能说明 0 0 方式0 8位同步移位寄存器方式(1/12fosc) 0 1 方式1 10位 UART(波特率可变) 1 0 方式2 11位 UART(波特率为1/32fosc或1/64fosc) 1 1 方式3 11位UART(波特率可变) SM2:若SM2=0,则接收到的第9位信息(RB8)无论是0 还是1,接收到的数据装入SBUF,同时产生RI=1的中断标志。若SM2=1,只有接收到的第9位数据(RB8)为1时,才将接收的数据装入SBUF中,产生中断请求,置位RI;否则,如果接收到的第9位数据(RB8)为0,则RI(接收中断)不被激活,接收数据也将被丢弃。 REN:允许串行口接收控制位。由软件置位或清除。软件置1时,串行口进入接收状态,清零后禁止接收。 TB8:在通信的方式2和方式3中,它是发送的第9位数据,传送用户定义的信息。可以用软件置位和清零。该位可以作为奇偶校验位。在多机通信时,该位为1表示发送的本帧数码是地址码,该位为0时表示发送的本帧数码是数据码。发送时,位TB8的内容将自动地排在SBUF的第9位上发送出去,而接收机用RB8位接收。 RB8:在通信的方式2和方式3中是接收的第9位数据。串行口在接收一帧数据时,第9位将被写入RB8位。 TI:发送中断标志位。用于判断一帧数据是否发送完成。在方式0中,发送完第8位数据时由硬件自动置位。在其他方式中,在发送“停止位”之后,由硬件自动置位。该位状态可供软件查询,也可向CPU申请中断。在任何方式中,响应该中断请求后,TI必须用软件清零。 RI:接收中断标志位。用于判断一帧数据是否接收完成。在方式0中,接收第8 位数据结束时,由硬件自动置位RI。在其他方式中,在接收“停止位”之后,由硬件置位。该位状态可供软件查询,也可向CPU申请中断。在任何工作方式中,必须用软件清除RI。 当串行口采用中断方式时,两个中断标志位TI和RI共用一个中断源和一个中断入口地址,因此在同时使用这两个中断时,应该在中断服务子程序中先判断是哪一个标志位提出了中断申请,并清除标志位后,再进入相应的中断服务内容。 6.1.3 作业 1. 89C51单片机有几个串行口?使用哪些引脚? 89C51单片机串行口的SBUF作用是什么?如何使用? 串行口控制寄

文档评论(0)

shenlan118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档