PIC17C7XXX有2个USART模块(USART1,USART2),PIC17C4X有1个USART模块,与PIC17C7XXX的USART1完全相同。
USART1 USART2
寄存器:
RCSTA: RCSTA1 RCSTA2
TXSTA: TXSTA1 TXSTA2
SPBRG: SPBRG1 SPBRG2
RCREG: RCREG1 RCREG2
TXREG: TXREG1 TXREG2
中断控制位:
RCIE: RC1IE RC2IE
RCIF: RC1IF RC2IF
TXIE: TX1IE TX2IE
TXIF: TX1IF TX2IF
引脚:
RX/DT: RA4/RX1/DT1 RG6/RX2/DT2
TX/CK: RA5/TX1/CK1 RG7/TX2/CK2
PIC17CXXX中USAR有三种模式:异步方式(全双工)、同步主方式(半双工)、同步从方式(半双工)。
-------------------------------------------------------------------------------------
TXSTA: Bit7->Bit0
CSRC TX9 TXEN SYNC -- -- TRMT TX9D
CSRC: =1是同步方式中的主模式(时钟源为BRG)
=0是同步方式中的从模式(外部时钟源)
无关是异步方式
TX9:发送数据长度位 =1是9位,=0是8位
TXEN:发送使能位 =1是使能发送,=0是禁止发送
SYNC:USART模式选择位 =1是同步模式, =0是异步
TMRT:发送移位寄存器(TSR)空标志位 =1空,=0满
TX9D:第9个数据发送位(可用作软件奇偶计算)
RCSTA: Bit7->Bit0
SPEN RC9 SREN CREN FERR- OERR -- RX9D
SPEN: 串口使能位 =1设置RX/DT和TX/CK为串行口引脚,=0禁止串口功能
RC9:接收数据长度位,=1是9位,=0是8位
SREN:单个接收使能位(在接收一字节数据后,该位自动清除) 同步方式下=1接收使能,=0禁止接收,异步方式无关
CREN:连续接收使能位 异步方式下=1接收使能,=0禁止接收,同步方式下=1连续接收使能直至CREN=0,=0禁止连续接收
FERR:帧错误位 =1帧错误 =0无帧错误
OERR:溢出错误位 =1溢出错误 =0无溢出错误
RC9D:接收数据的第9位
USART有一个8位波特率发生器SPBRG,支持同步与异步通讯。
-------------------------------------------------------------------------------------
USART异步发送步骤:
1. 初始化SPBRG,设置合适的波特率
2. 设置SPEN=1,SYNC=0,使能异步串行口
3. 如需中断,设置TXIE=1
4. 如需发送9位数据,设置TX8/9=1
5. 将数据送入TXREG中
6. 如发送9位数据,第9位数据放入TXD8中
7. 设置TXEN=1,使能发送功能
USART同步主模式发送步骤:
1. 初始化SPBRG,设置合适的波特率
2. 设置SPEN=SYNC=CSRC=1,使能同步主模式功能
3. CREN=SREN=0
4. 如需中断,设置TXIE=1
5. 如需发送9位数据,设置TX8/9=1
6. 将数据送入TXREG中
7. 如需发送9位数据,第9位数据放入TXD8中
8. 设置TXEN=1,使能发送功能
USART同步从模式发送步骤:
1. 设置SYNC=SPEN=1,CSRC=0,使能同步从模式功能
2. CREN=0
3. 如需中断,设置TXIE=1
4. 如需发送9位数据,TX9=1
5. 将数据放入TXREG中
6. 如发送9位数据,第9位数据放入TXD9中
7. 设置TXEN=1,使能发送功能
-------------------------------------------------------------------------------------
USART异步接收步骤:
1. 初始化SPBRG,设置合适的波特率
2. 设置SPEN=1,SYNC=0,使能异步串行口
3. 如需中断,设置RCIE=1
4. 如需接收9位数据,设置RX8/9=1
5. 设置CREN=1,使能接收功能
6. 接收完成后,RCIF=1,如中断使能,这时产生中断
7. 读RCSTA得到第9个数据位(如RX8/9=1)和FERR位
8. 读RCREG寄存器以得到8位接收数据
9. 如有错误发生,清除OERR位
USART同步主模式接收步骤:
1. 初始化SPBRG,设置合适的波特率
2. 设置SPEN=SYNC=CSRC=1,使能同步主模式功能
3. 如需中断,设置RCIE=1
4. 如需接收9位数据,设置RX8/9=1
5. 如需单字接收功能,设置SREN=1,如需连续接收功能,设置CREN=1
6. 接收完成后,RCIF=1,如中断使能,这时产生中断
7. 读RCSTA得到第9个数据位(如RX8/9=1),同步确定接收过程是否正确
8. 读RCREG寄存器以得到8位接收数据
9. 如接收过程有误,清除CREN
USART同步从模式接收步骤:
1. 设置SYNC=SPEN=1,CSRC=0,使能同步从模式功能
2. 如需中断,RCIE=1
3. 如需接收9位数据,RX9=1
4. CREN=1
5. 接收完成后,RCIF=1,中断使能,则产生中断
6. 读RCSTA得到第9个数据位(如RX9=1),确定接收过程是否正确
7. 读RCREG以得到8位数据
8. 如接收过程错误,清除CREN
分享到:
相关推荐
本文主要讲解了该系列单片机的通用同步异步收发器USART的编程应用,包括其工作原理、接口电路设计以及C语言编程实践。 首先,介绍的是USART异步工作方式。PIC18FXX8单片机的USART模块由两个重要的寄存器控制,分别...
UART(通用异步接收发送器)是微控制器中常见的接口,用于实现设备之间的串行通信。在PIC单片机中,UART是一种非常重要的通信方式,它允许设备通过串行线进行数据交换,常用于传感器、显示器和其他外设的连接。在...
4. **通用同步异步收发传输器(USART)**:USART是一种常见的串行通信接口,它支持全双工通信,既可以发送数据也可以接收数据。在PIC18单片机中,USART用于与外部设备进行数据交换,比如串口调试、无线模块通信或者...
2. **串行通信(SCI)**:包括UART(通用异步接收/发送器)的配置,如波特率设定、奇偶校验、数据位数和停止位数的设定。 3. **模数转换(ADC)**:了解ADC的工作原理,包括采样率、分辨率和参考电压设置,以及如何...
1. "PIC单片机485通信发送--——源代码"涉及如何编写发送数据到RS485网络的代码,这通常涉及到初始化UART(通用异步收发传输器)设置,如波特率、数据位、停止位以及中断配置等。 2. "PIC单片机485通信接收——源...
通用同步/异步收发器USART;主控同步串行端口MSSP:SPI模式和I2C模式。突出特点:通俗易懂、可读性强、系统全面、学练结合、学用并重、实例丰富、习题齐全。本书作为Microchip公司大学计划选择用书,可广泛适用于...
常见的串口通信标准有UART(通用异步接收/发送器)、USART(通用同步异步收发传输器)和SPI(串行外围接口)等。 在PIC单片机中,USART通常支持异步通信模式,即没有时钟同步信号,而是通过起始位、数据位、停止位...
2. **RX/TX引脚**:PIC单片机的UART接口包含接收(RX)和发送(TX)两条线。PC的串口通常也有相应的RX和TX引脚,用于数据的双向传输。 3. **握手信号**:如CTS(清除发送)和RTS(请求发送)可以用来控制数据流,...
6. **UART(通用异步接收发送器)**:一种用于实现异步串行通信的接口。 7. **POR(上电复位功能)**:当电源上电时,单片机会自动复位。 8. **OST(振荡器起振定时器)**:用于确保振荡器稳定工作。 9. **PWRT...
串口通信,也称为UART(通用异步接收发送器),是一种简单但有效的串行通信协议,常用于设备间的短距离通信。它允许数据以字节为单位进行发送和接收,通常在波特率的控制下进行。在PIC单片机中,我们通常使用内置的...
串口通信通常指的是UART(通用异步收发传输器)或USART(通用同步/异步收发传输器),在这些通信协议中,波特率决定了数据传输的速度。例如,如果波特率为9600,那么每秒可以发送或接收9600个数据位。在PIC单片机中...
pic单片机中的串口一般包括UART(通用异步收发传输器)和SPI(串行外围接口)等。UART通常用于与PC或其它设备进行全双工通信,而SPI则常用于单主控多从设备的高速通信。在C语言编程中,我们需要配置单片机的波特率、...
本文将详细讲解基于PIC单片机的USART(通用同步/异步收发传输器)串口通信,以及如何编写中断程序进行有效数据交互。 USART是一种广泛应用于嵌入式系统的通信协议,它允许设备通过串行方式发送和接收数据。在PIC...
在描述中提到的“用PIC单片机模拟串口驱动nRF2401模块”,这表明开发过程中没有使用标准的UART(通用异步接收/发送)接口,而是通过模拟串行通信协议来与nRF2401交互。PIC单片机,由Microchip Technology制造,是一...
串口,即串行通信接口,是设备之间进行数据传输的一种常见方式,它通过串行传输数据,通常包括UART(通用异步收发传输器)或USART(通用同步/异步收发传输器)。 **描述分析:** 描述中的“使用起来还是蛮方便的”...
标题中的"PIC18F单片机ADC+UART+TIMER"指的是使用PIC18F45K20这款单片机进行模拟数字转换(ADC)、通用异步收发传输器(UART)以及定时器(TIMER)功能的开发。在嵌入式系统中,这些模块是极其重要的组成部分。 ADC...
USART(Universal Synchronous/Asynchronous Receiver/Transmitter)通用同步/异步收发传输器是微控制器中一种常用的通信接口,广泛应用于各种嵌入式系统中,如PIC单片机。在给定的"usart.rar"压缩包中,我们可以...
当上位机发送指令时,这些指令通常是经过编码的二进制数据,通过串行通信协议如UART(通用异步收发传输器)传递给单片机。UART允许两个设备在没有时钟线的情况下进行同步通信,只需两根线——TX(发送)和RX(接收)...
在实施过程中,PIC单片机需要将两个I/O引脚分别设置为输入(用于接收)和输出(用于发送)。在中档及以上具有中断机制的单片机上,可以通过定时中断实现定时采样;而在没有中断的低端单片机上,可以通过控制主循环的...