- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PIC上海技术培训中心 9.3 USART串行通信模块 PIC系列芯片中,片内除了含有同步串行口SSP(SPI,I2C)外,还有一个串行通信接口SCI。这是一个通用同步/异步收发器,简称USART,它是计算机最常用的通信接口之一。 USART可工作于如下三种方式:全双工异步方式;半双工同步主控方式;半双工同步从动方式。 9.3.1 与USART模块相关的寄存器 1.发送状态兼控制寄存器:TXSTA 2.接收状态兼控制寄存器:RCSTA 3.USART发送缓冲寄存器: TXREG 4.USART接收缓冲寄存器 :RCREG 5.PIE寄存器 6.PIR寄存器 1.发送状态兼控制寄存器TXSTA Bit0/TX9D:发送数据的第9位,可作为奇偶校验位。(使用9位数据格式)。 0:不发送9位数据; 1:发送9位数据帧。 Bit1/TRMT:发送移位寄存器状态位,只读。 0:发送移位寄存器正在发送数据; 1:发送移位寄存器已空。 Bit2/BRGH:波特率控制位。 异步通信时:0:低速波特率发生模式; 1:高速波特率发生模式。 同步方式下,未用。 Bit4/SYNC:USART同步/异步模式选择位。 0:选择异步通信模式(USAT); 1:选择同步通信模式(USRT)。 Bit5/TXEN:发送使能控制位。 0:关闭发送功能; 1:使能发送功能。 Bit6/TX9:发送数据长度选择位。8位数据加1位校验或标识位(9位数据使能控制位)。 0:8位数据位发送; 1:9位数据发送。 Bit7/CSRC:同步通信时钟源选择控制位。 同步模式下: 0:选择同步通信从模式(时钟来自外部输入 信号); 1:选择同步通信主模式(时钟来自内部波特率发生器)。 异步模式下,未用。 2. 接收状态兼控制寄存器RCSTA Bit3/ADDEN:地址检测使能位; 9位异步模式(RX9=1): 0:取消地址检测,接收所有字节并且第9位可作为奇偶校验位; 1:启用地址检测,使能中断,当RSR8置1时装入接收缓冲器; 8位异步模式(RX9=0):此位不起作用; Bit4/CREN:数据连续接收使能位。 异步模式下: 0:禁止连续接收功能; 1:使能连续接收功能。 同步模式下: 0:禁止数据连续接收,将由SREN决定是否启动单次数据接收。 1:使能数据连续接收,直到此位被清0。优于SREN位。 Bit5/SREN:单次接收使能控制位。 同步通信主模式式时: 0:禁止单次接收数据; 1:使能单次接收方式,当接收完一个数据后自动清0。 异步通信时:该位不起作用。 Bit6/RX9:9位数据格式接收使能控制位。 0:选择8位数据格式接收; 1:选择9位数据格式接收。 Bit7/SPEN:串行通信端口使能控制位。 0:禁止串行端口工作; 1:允许串行端口工作。 此时,RC7和RC6作为USART的接收发送引脚。 3.TXREG—USART发送缓冲寄存器 4.RCREG—USART接收缓冲寄存器 每次接收到的数据都可从该缓冲器读取出来的。 5.SPBRG波特率控制寄存器 SPBRG寄存器的设定值(0-255)与波特率成反比关系。在同步方式下,波特率仅由该寄存器来决定;而在异步方式下,则由BRGH位(TXSTA寄存器的bit2)和该寄存器共同确定。 9.3.2 USART波特率发生器 USART模块带有一个波特率发生器BRG(baud rate generator),用以产生串行传送所需的时钟,它支持USART的同步方式和异步方式。在异步方式下,BRGH位用来控制波特率。在同步方式下, BRGH位不起作用。 波特率发生器的逻辑结构如图9-24。其核心实际是一个递减的8位二进制计数器,其计数初始值是由寄存器SPBRG装入,在每次递减计数器到达00H之后的下一个计数脉冲到来时进行装入。系统时钟经过6位分频器后作为传递计数器的计数脉冲,其分频比可以由BRGH位和SYNC位设定为1:4、1:16、或1:64。 波特率时钟发生器示意图 其波特率计算方式如下: 1.同步方式 波特率=fosc/[4(N+1)] N=fosc/(4×波特率)-1 注意,N为SPBRG寄存器的初始值;BRGH必须
文档评论(0)