`

PIC17单片机通用同步异步接收发送器

阅读更多

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

分享到:
评论

相关推荐

    PIC18FXX8单片机通用同步异步收发器的编程应用

    本文主要讲解了该系列单片机的通用同步异步收发器USART的编程应用,包括其工作原理、接口电路设计以及C语言编程实践。 首先,介绍的是USART异步工作方式。PIC18FXX8单片机的USART模块由两个重要的寄存器控制,分别...

    uart.rar_PIC_PIC UART_UART PIC_pic单片机uart_pic异步通信

    UART(通用异步接收发送器)是微控制器中常见的接口,用于实现设备之间的串行通信。在PIC单片机中,UART是一种非常重要的通信方式,它允许设备通过串行线进行数据交换,常用于传感器、显示器和其他外设的连接。在...

    PIC18单片机 官方示例所有程序 包含AD TIMER0123 USART 等

    4. **通用同步异步收发传输器(USART)**:USART是一种常见的串行通信接口,它支持全双工通信,既可以发送数据也可以接收数据。在PIC18单片机中,USART用于与外部设备进行数据交换,比如串口调试、无线模块通信或者...

    PIC18系列单片机各个功能模块的通用初始化代码

    2. **串行通信(SCI)**:包括UART(通用异步接收/发送器)的配置,如波特率设定、奇偶校验、数据位数和停止位数的设定。 3. **模数转换(ADC)**:了解ADC的工作原理,包括采样率、分辨率和参考电压设置,以及如何...

    pic单片机485通讯.DOC

    1. "PIC单片机485通信发送--——源代码"涉及如何编写发送数据到RS485网络的代码,这通常涉及到初始化UART(通用异步收发传输器)设置,如波特率、数据位、停止位以及中断配置等。 2. "PIC单片机485通信接收——源...

    PIC单片机实用教程-提高篇(清晰带书签版)

    通用同步/异步收发器USART;主控同步串行端口MSSP:SPI模式和I2C模式。突出特点:通俗易懂、可读性强、系统全面、学练结合、学用并重、实例丰富、习题齐全。本书作为Microchip公司大学计划选择用书,可广泛适用于...

    usart.rar_PIC 串口_PIC串口接收_USART_USART PIC_pic usart

    常见的串口通信标准有UART(通用异步接收/发送器)、USART(通用同步异步收发传输器)和SPI(串行外围接口)等。 在PIC单片机中,USART通常支持异步通信模式,即没有时钟同步信号,而是通过起始位、数据位、停止位...

    PIC单片机与串口通信

    2. **RX/TX引脚**:PIC单片机的UART接口包含接收(RX)和发送(TX)两条线。PC的串口通常也有相应的RX和TX引脚,用于数据的双向传输。 3. **握手信号**:如CTS(清除发送)和RTS(请求发送)可以用来控制数据流,...

    常用PIC系列8位单片机芯片引脚符号的功能

    6. **UART(通用异步接收发送器)**:一种用于实现异步串行通信的接口。 7. **POR(上电复位功能)**:当电源上电时,单片机会自动复位。 8. **OST(振荡器起振定时器)**:用于确保振荡器稳定工作。 9. **PWRT...

    PIC串口发送接收多字节

    串口通信,也称为UART(通用异步接收发送器),是一种简单但有效的串行通信协议,常用于设备间的短距离通信。它允许数据以字节为单位进行发送和接收,通常在波特率的控制下进行。在PIC单片机中,我们通常使用内置的...

    PIC单片机串口波特率计算工具

    串口通信通常指的是UART(通用异步收发传输器)或USART(通用同步/异步收发传输器),在这些通信协议中,波特率决定了数据传输的速度。例如,如果波特率为9600,那么每秒可以发送或接收9600个数据位。在PIC单片机中...

    pic单片机串口,时钟

    pic单片机中的串口一般包括UART(通用异步收发传输器)和SPI(串行外围接口)等。UART通常用于与PC或其它设备进行全双工通信,而SPI则常用于单主控多从设备的高速通信。在C语言编程中,我们需要配置单片机的波特率、...

    pic-USART.rar_PIC_PIC单片机_USART_USART PIC_pic usart

    本文将详细讲解基于PIC单片机的USART(通用同步/异步收发传输器)串口通信,以及如何编写中断程序进行有效数据交互。 USART是一种广泛应用于嵌入式系统的通信协议,它允许设备通过串行方式发送和接收数据。在PIC...

    pic单片机nRF2401驱动代码

    在描述中提到的“用PIC单片机模拟串口驱动nRF2401模块”,这表明开发过程中没有使用标准的UART(通用异步接收/发送)接口,而是通过模拟串行通信协议来与nRF2401交互。PIC单片机,由Microchip Technology制造,是一...

    PIC单片机串口驱动程序

    串口,即串行通信接口,是设备之间进行数据传输的一种常见方式,它通过串行传输数据,通常包括UART(通用异步收发传输器)或USART(通用同步/异步收发传输器)。 **描述分析:** 描述中的“使用起来还是蛮方便的”...

    PIC18F单片机ADC+UART+TIMER

    标题中的"PIC18F单片机ADC+UART+TIMER"指的是使用PIC18F45K20这款单片机进行模拟数字转换(ADC)、通用异步收发传输器(UART)以及定时器(TIMER)功能的开发。在嵌入式系统中,这些模块是极其重要的组成部分。 ADC...

    usart.rar_PIC_PIC 串口_PIC单片机_USART PIC_pic16f877 usart

    USART(Universal Synchronous/Asynchronous Receiver/Transmitter)通用同步/异步收发传输器是微控制器中一种常用的通信接口,广泛应用于各种嵌入式系统中,如PIC单片机。在给定的"usart.rar"压缩包中,我们可以...

    上位机发送指令给单片机 单片机完成相应指令动作

    当上位机发送指令时,这些指令通常是经过编码的二进制数据,通过串行通信协议如UART(通用异步收发传输器)传递给单片机。UART允许两个设备在没有时钟线的情况下进行同步通信,只需两根线——TX(发送)和RX(接收)...

    PIC单片机软件异步串行口实现技巧

    在实施过程中,PIC单片机需要将两个I/O引脚分别设置为输入(用于接收)和输出(用于发送)。在中档及以上具有中断机制的单片机上,可以通过定时中断实现定时采样;而在没有中断的低端单片机上,可以通过控制主循环的...

Global site tag (gtag.js) - Google Analytics