#include // PIC16f1828 / PIC16f1828 8M unsigned char error=0x00; bit Q=0; unsigned data; void interrupt isr(void) // 中断函数 { unsigned char Temp; if(RCIF&&RCIE) { Q = 1; while(FERR) {error=RCREG; Q=0;}; while(OERR) { CREN=0 ; CREN=1 ; error=RCREG; Q=0;} TXREG = RCREG; //收到的数据立马进行回显 } } void Uart_init() //UART初始 { // SCS FOSC; SPLLEN disabled; IRCF 8MHz_HF; OSCCON = 0x70; // LFIOFR disabled; HFIOFL not2percent_acc; OSTS intosc; PLLR disabled; HFIOFS not0.5percent_acc; HFIOFR disabled; MFIOFR disabled; T1OSCR disabled; OSCSTAT = 0x00; // TUN 0x0; OSCTUNE = 0x00; // Set the secondary oscillator #ifndef USE_DEAFULT_TX APFCON0bits.TXCKSEL = 1; //TX引脚使用1 = RC4 ------- 第二功能管脚 TRISCbits .TRISC4 = 0; #else APFCON0bits.TXCKSEL = 0; //TX引脚使用1 = RB7 --------原来的LED-FULL TRISBbits .TRISB7 = 0; #endif #ifdef USE_DEAFULT_RX APFCON0bits.RXDTSEL = 0; //RX引脚使用0 = RB5 TRISBbits .TRISB5 = 1; ANSELBbits.ANSB5 = 0; ; //关闭RB5的模拟输入功能 #else APFCON0bits.RXDTSEL = 1; //RX引脚使用0 = RC5 第二功能管脚 TRISCbits .TRISC5 = 1; //ANSELCbits.ANSC5 = 0; ; //关闭RB5的模拟输入功能 #endif //8mhz晶体 波特率设置, datasheet里面有线程的参数表格 SPBRG=51;//?9600,8M?? BRGH=1; // SYNC=0; SPEN=1; //串口使能 TXEN=1; //USART 发送使能 TXIE=0; //关发送中断 RCIE=1; //开接收中断 CREN=1; //接收允许 PEIE = 1; //开外围设备中断 GIE = 1; } void main() { Uart_init(); while(1){} }
上一篇:pic16f877a的AD实验学习
下一篇:PIC16F887 单片机 PROTEUS 仿真 C程序 温控电机
推荐阅读最新更新时间:2024-11-11 22:29
设计资源 培训 开发板 精华推荐
- 提高精度和增加输出电压固定线性稳压器
- EVALM5E1B1245NSICTOBO1、7.5 Kw CoolSiC MOSFET 电机驱动评估板
- DC1565A-E,用于 LTC2151-12、12 位、210 Msps 模数转换器的演示板
- 使用 LTC3459 和 LTC1844 的基于 SuperCap 的备用电源
- LTC6990IDCB#TRMPBF 使用 8 位 DAC 编程受控振荡器 NDIV 的典型应用
- MAC57D5xx评估板平台
- LTC3835EGN-1 高效降压转换器的典型应用电路
- 使用 Analog Devices 的 LT1171HVIQ#PBF 的参考设计
- LT1021CIN8-5 负串联电压基准的典型应用
- 5v蜂鸣器模块