十年專注單片機方案開發的方案公司英銳恩,分享PIC16C73單片機的串口通訊。英銳恩現提供服務產品涉及主控芯片:8位單片機、16位單片機、32位單片機及各類運算放大器等。
SPBRG=0x4d; //設置傳輸波特率為38400 SYNC=1; //選擇同步模式 CSRC=1; //選擇主控模式 TXEN=1; TXREG=98; TXEN=1; TXREG=101;
#include #define uchar unsigned char void interrupt R(void) { uchar x; if(RCIF) { x=RCREG; RB7=1; TXREG=x; //將x的值送到移位寄存器TXREG中,準備發送 TXEN=1; //使能發送 while(!TRMT); //等待發送完成 TXEN=0; RB7=0; }
} void init(void) { PORTA=0B11111110; TRISA=0B00000000; PORTB=0B11111110; TRISB=0B01100011; RB7=0; //RS-485的接受控制 SYNC=0; //0 = 異步模式 BRGH=0; //高速波特率使能位,0 = 低速 SPBRG=17; //使波特率=9600 SPEN=1; //1 = 允許串口工作( 把 RX/DT 和TX/CK 引腳配置為串口引腳 ) GIE=1; //開總中斷 PEIE=1; //開外部中斷 TXIE=0; //發送中斷屏蔽 TX9=0; //0 = 選擇8 位數據發送 RCIE=1; //接收中斷使能 RX9=0; //0 = 選擇8 位接收 CREN=1; //接受使能 } main() {uchar xx; init(); while(1) { } }