本帖最后由 bellstudio 于 2020-7-14 11:05 编辑
- #include<pic.h>
- #include"My HFiles/Sys_Set.h"
- __CONFIG(FOSC_INTOSC&WDTE_OFF & PWRTE_OFF & MCLRE_OFF &CPD_OFF & CP_OFF & BOREN_OFF & CLKOUTEN_OFF & IESO_OFF & FCMEN_OFF);
- __CONFIG(WRT_OFF & PLLEN_OFF & STVREN_ON & BORV_LO & LVP_OFF);
- void Sys_Init(void);
- void interrupt Irt(void);//中断处理函数声明
- void EUsart_Init(void);
- #define _XTAL_FREQ 16000000//设置晶振时间16MHz
- void main(void)
- {
-
- Sys_Init();//系统初始化
- EUsart_Init();//串口初始化
- while(1)
- {
- //等待中断
- }
- }
- void Sys_Init(void)
- {
- OSCCON=0x78;//0x0111 1010 时钟初始化16MHz,内部振荡器,不使用锁相环
- }
- void EUsart_Init(void)
- {
- //设置波特率=9600=Fosc/(64*[SPBRGH:SPBRGL]+1)
- SPBRGL=25;
- //设置各IO口方向
- TRISA=0xFF;
- //设置波特率低速模式设置,8位产生器。
- BRGH=0;
- BRG16=0;
- //使能串口,异步通信模式设置
- SPEN=1;
- SYNC=0;
- //串口接收中断使能
- RCIE=1;
- GIE=1;
- PEIE=1;
- //9位接收模式设置
- RX9=0;
- //连续接收使能,发送使能
- TXEN=1;
- CREN=1;
- //
- }
- void interrupt Irt(void)//中断处理函数声明
- {
- if(RCIE&RCIF)//接收中断处理
- {
- TXREG=RCREG;//输入缓存器写到输出缓存器
- while(!TRMT);//等待发送完毕
- }
- }
|