本帖最后由 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);//等待发送完毕
}
}
|