- /***************************************************
- **
- ** MCU:PIC18f8772
- ** 功能:串口接收
- ** 说明:轮询方式
- ** 时间:2012-5-28 Lzy
- **
- *****************************************************/
-
- #include
-
- /* 串口初始化 */
- void UartInit(void)
- {
- RCSTA1bits.SPEN = 1; // 串口使能
-
- TRISCbits.TRISC7 = 1; // 异步串行接收数据输入
- TRISCbits.TRISC6 = 0;// 异步和同步主模式,TRISC<6> 零(= 0)
-
- // TXSTA1:发送状态和控制寄存器
- TXSTA1bits.SYNC = 0; // 异步模式
- TXSTA1bits.TX9 = 0; // 选择8 位发送
- TXSTA1bits.TXEN = 1; // 禁止发送
- TXSTA1bits.BRGH = 1; // 高速
- TXSTA1bits.TXEN = 1; // 使能发送
-
- // RCSTA1:接收状态和控制寄存器
- RCSTA1bits.RX9 = 0; // 选择8 位接收
- RCSTA1bits.CREN = 1; // 使能接收器
-
- // BAUDCON1:波特率控制寄存器
- BAUDCON1bits.BRG16 = 0; // 8位波特率发生器——SPBRGHx 和SPBRGx
- SPBRG1 = 25;
-
- TRISF = 0;
- }
-
- void main()
- {
- UartInit();
-
- if(PIR1bits.RC1IF) // 已接收数据
- {
- PORTF = RCREG1; // 读取接收到的数据
- }
- }
- /***************************************************
- **
- ** MCU:PIC18f8772
- ** 功能:串口发送
- ** 说明:
- ** 时间:2012-5-28 Lzy
- **
- *****************************************************/
-
- #include
-
- /* 串口初始化 */
- void UartInit(void)
- {
- RCSTA1bits.SPEN = 1; // 串口使能
-
- TRISCbits.TRISC7 = 1; // 异步串行接收数据输入
- TRISCbits.TRISC6 = 0;// 异步和同步主模式,TRISC<6> 零(= 0)
-
- // TXSTA1:发送状态和控制寄存器
- TXSTA1bits.SYNC = 0; // 异步模式
- TXSTA1bits.TX9 = 0; // 选择8 位发送
- TXSTA1bits.TXEN = 1; // 禁止发送
- TXSTA1bits.BRGH = 1; // 高速
- TXSTA1bits.TXEN = 1; // 使能发送
-
- // RCSTA1:接收状态和控制寄存器
- RCSTA1bits.RX9 = 0; // 选择8 位接收
- RCSTA1bits.CREN = 1; // 使能接收器
-
- // BAUDCON1:波特率控制寄存器
- BAUDCON1bits.BRG16 = 0; // 8位波特率发生器——SPBRGHx 和SPBRGx
- SPBRG1 = 25;
-
- TRISE = 0xff;
- TRISA = 0;
- }
-
- void main()
- {
- UartInit();
-
- if(TXSTA1bits.TRMT) // 发送完毕
- {
- TXREG1 = PORTE; // 发送数据
- }
- }
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』