PIC18f8772 串口通訊
- /***************************************************
- **
- ** MCU:PIC18f8772
- ** 功能:串口接收
- ** 說明:輪詢方式
- ** 時間:2012-5-28 Lzy
- **
- *****************************************************/
- #include
- /* 串口初始化 */
- voidUartInit(void)
- {
- RCSTA1bits.SPEN=1;// 串口使能
- TRISCbits.TRISC7=1;// 異步串行接收數(shù)據(jù)輸入
- TRISCbits.TRISC6=0;// 異步和同步主模式,TRISC<6> 零(= 0)
- // TXSTA1:發(fā)送狀態(tài)和控制寄存器
- TXSTA1bits.SYNC=0;// 異步模式
- TXSTA1bits.TX9=0;// 選擇8 位發(fā)送
- TXSTA1bits.TXEN=1;// 禁止發(fā)送
- TXSTA1bits.BRGH=1;// 高速
- TXSTA1bits.TXEN=1;// 使能發(fā)送
- // RCSTA1:接收狀態(tài)和控制寄存器
- RCSTA1bits.RX9=0;// 選擇8 位接收
- RCSTA1bits.CREN=1;// 使能接收器
- // BAUDCON1:波特率控制寄存器
- BAUDCON1bits.BRG16=0;// 8位波特率發(fā)生器——SPBRGHx 和SPBRGx
- SPBRG1=25;
- TRISF=0;
- }
- voidmain()
- {
- UartInit();
- if(PIR1bits.RC1IF)// 已接收數(shù)據(jù)
- {
- PORTF=RCREG1;// 讀取接收到的數(shù)據(jù)
- }
- }
- /***************************************************
- **
- ** MCU:PIC18f8772
- ** 功能:串口發(fā)送
- ** 說明:
- ** 時間:2012-5-28 Lzy
- **
- *****************************************************/
- #include
- /* 串口初始化 */
- voidUartInit(void)
- {
- RCSTA1bits.SPEN=1;// 串口使能
- TRISCbits.TRISC7=1;// 異步串行接收數(shù)據(jù)輸入
- TRISCbits.TRISC6=0;// 異步和同步主模式,TRISC<6> 零(= 0)
- // TXSTA1:發(fā)送狀態(tài)和控制寄存器
- TXSTA1bits.SYNC=0;// 異步模式
- TXSTA1bits.TX9=0;// 選擇8 位發(fā)送
- TXSTA1bits.TXEN=1;// 禁止發(fā)送
- TXSTA1bits.BRGH=1;// 高速
- TXSTA1bits.TXEN=1;// 使能發(fā)送
- // RCSTA1:接收狀態(tài)和控制寄存器
- RCSTA1bits.RX9=0;// 選擇8 位接收
- RCSTA1bits.CREN=1;// 使能接收器
- // BAUDCON1:波特率控制寄存器
- BAUDCON1bits.BRG16=0;// 8位波特率發(fā)生器——SPBRGHx 和SPBRGx
- SPBRG1=25;
- TRISE=0xff;
- TRISA=0;
- }
- voidmain()
- {
- UartInit();
- if(TXSTA1bits.TRMT)// 發(fā)送完畢
- {
- TXREG1=PORTE;// 發(fā)送數(shù)據(jù)
- }
- }
評論