微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > PIC18f8772 串口通讯

PIC18f8772 串口通讯

时间:11-11 来源:互联网 点击:

  1. /***************************************************
  2. **
  3. ** MCU:PIC18f8772
  4. ** 功能:串口接收
  5. ** 说明:轮询方式
  6. ** 时间:2012-5-28 Lzy
  7. **
  8. *****************************************************/
  9. #include
  10. /* 串口初始化 */
  11. voidUartInit(void)
  12. {
  13. RCSTA1bits.SPEN=1;// 串口使能
  14. TRISCbits.TRISC7=1;// 异步串行接收数据输入
  15. TRISCbits.TRISC6=0;// 异步和同步主模式,TRISC<6> 零(= 0)
  16. // TXSTA1:发送状态和控制寄存器
  17. TXSTA1bits.SYNC=0;// 异步模式
  18. TXSTA1bits.TX9=0;// 选择8 位发送
  19. TXSTA1bits.TXEN=1;// 禁止发送
  20. TXSTA1bits.BRGH=1;// 高速
  21. TXSTA1bits.TXEN=1;// 使能发送
  22. // RCSTA1:接收状态和控制寄存器
  23. RCSTA1bits.RX9=0;// 选择8 位接收
  24. RCSTA1bits.CREN=1;// 使能接收器
  25. // BAUDCON1:波特率控制寄存器
  26. BAUDCON1bits.BRG16=0;// 8位波特率发生器——SPBRGHx 和SPBRGx
  27. SPBRG1=25;
  28. TRISF=0;
  29. }
  30. voidmain()
  31. {
  32. UartInit();
  33. if(PIR1bits.RC1IF)// 已接收数据
  34. {
  35. PORTF=RCREG1;// 读取接收到的数据
  36. }
  37. }

  1. /***************************************************
  2. **
  3. ** MCU:PIC18f8772
  4. ** 功能:串口发送
  5. ** 说明:
  6. ** 时间:2012-5-28 Lzy
  7. **
  8. *****************************************************/
  9. #include
  10. /* 串口初始化 */
  11. voidUartInit(void)
  12. {
  13. RCSTA1bits.SPEN=1;// 串口使能
  14. TRISCbits.TRISC7=1;// 异步串行接收数据输入
  15. TRISCbits.TRISC6=0;// 异步和同步主模式,TRISC<6> 零(= 0)
  16. // TXSTA1:发送状态和控制寄存器
  17. TXSTA1bits.SYNC=0;// 异步模式
  18. TXSTA1bits.TX9=0;// 选择8 位发送
  19. TXSTA1bits.TXEN=1;// 禁止发送
  20. TXSTA1bits.BRGH=1;// 高速
  21. TXSTA1bits.TXEN=1;// 使能发送
  22. // RCSTA1:接收状态和控制寄存器
  23. RCSTA1bits.RX9=0;// 选择8 位接收
  24. RCSTA1bits.CREN=1;// 使能接收器
  25. // BAUDCON1:波特率控制寄存器
  26. BAUDCON1bits.BRG16=0;// 8位波特率发生器——SPBRGHx 和SPBRGx
  27. SPBRG1=25;
  28. TRISE=0xff;
  29. TRISA=0;
  30. }
  31. voidmain()
  32. {
  33. UartInit();
  34. if(TXSTA1bits.TRMT)// 发送完毕
  35. {
  36. TXREG1=PORTE;// 发送数据
  37. }
  38. }


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top