8串行通信及串行接口技术解读.ppt

  1. 1、本文档共62页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
8串行通信及串行接口技术解读

8串行通信 及串行接口技术 2串行通信 (1)分类(按数据格式分) ? 异步通信 (3)串行通信的差错校验 ? 奇偶校验 发送数据时,数据后尾随一位奇偶校验位(0或1)。当设置为奇校验时,数据中1的个数与校验位1的个数之和应为奇数;当设置为偶校验时,数据中1的个数与校验位1的个数之和应为偶数。 接收时,接收方采用与发送方一样的差错校验方法对接收到的数据进行校验。 ? 和校验 发送方对发送的数据块求和,产生一个字节的校验和,并将其尾随数据块发送;接收方将接收的数据求和,将结果与发送方发送的“校验和”进行比较以判断是否出错。 2.串行口控制寄存器SCON 用于串行通信的方式选择、接收和发送控制以及串行口的状态标志指示。 ?SM0 SM1--串行口工作方式选择位 3.电源控制寄存器PCON ? SMOD--串行口波特率倍增位 ? PCON不可位寻址。可用下列指令设置SMOD位: ANL PCON,#7FH ;SMOD=0 ORL PCON,#80H ;SMOD=1 4. 串行通信工作方式 (1)串行工作方式0 * ?工作原理 ?串行口作为同步移位寄存器使用; ?以RXD(P3.0)端作为数据移位的输入端和输出端;TXD(P3.1)端输出移位脉冲; ?8位为一帧,不设起始位和停止位,低位在前,高位在后;帧格式如下: ?每个机器周期发送或接收一位,故波特率为fosc/12; ? 发送时,只需将数据写入串行口缓冲寄存器SBUF,即启动发送,串行口把8位数据以fosc/12的波特率从RXD端送出(低位在前),发送完置中断标志TI为“1”; ? 接收时,软件置REN=1时,串行口即开始从RXD端以fosc/12波特率输入数据(低位在前),当接收到8位数据时,置中断标志RI为“1”,用户可从SBUF读数据。 ?应用 ?串行工作方式0常用于扩展I/O接口。 (2)串行工作方式1 ?工作原理 ? 串行口作为通用异步接收和发送器(UART)使用; ? 10位为一帧,帧格式如下: ? 定时器T1作为波特率发生器,通常选用方式2(自动重装入初值方式)、定时、禁止中断; ? 波特率={T1溢出率}?2SMOD/32 T1溢出周期=(256-初值)?12/fosc T1溢出率=fosc/[12 ? (256-初值)] ?波特率=2SMOD ?fosc/[384 ? (256-初值)] 则定时器T1方式2的初值为: 初值=256- 2SMOD ?fosc/[384 ?波特率] ? 发送时,数据从引脚TXD输出,当数据写入串行口缓冲寄存器SBUF,即启动发送,发送完一帧数据置中断标志TI为“1”; ? 接收时,软件置REN=1时,串行口即开始采样RXD端,当检测到起始位时开始接收一帧数据,接收到停止位时置中断标志RI为“1”,用户可从SBUF读数据。 (3)串行工作方式2 * ?工作原理 ? 串行口作为通用异步接收和发送器(UART)使用; ? 11位为一帧,帧格式如下: 可编程位(第9数据位)D8由软件置“1”或清“0”,可作检验位,也可作它用。发送方发送时将TB8装入D8,接收方接收时将D8装入RB8; ? 波特率=2SMOD ?fosc/64 (4)串行工作方式3 * ?工作原理 ? 串行工作方式3的波特率与方式1相同;其他功能与方式2完全相同。 ?? START: SETB P1.7 ;SDA=1 SETB P1.6 ;SCL=1 NOP NOP NOP CLR P1.7 ;SDA=0 NOP NOP NOP CLR P1.6 ;SCL=0 ? RET STOP: CLR P1.7 ;SDA=0 SETB P1.6 ;SCL=1 NOP NOP NOP SETB P1.7 ;SDA=1 NOP NOP NOP CLR P1.6 CLR P1.7 ? RET 发送1字节数据子程序 S1BYTE:MOV R6,#08H ;8位数据长度送入R6中 WLP:RLC A ;A左移,发送位进入C MOV P1.7,C ;将发送位送入SDA引脚 SETB P1.6 ;SCL=1,使SDA引脚上的数据有效 NOP NOP

文档评论(0)

2299972 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档