Pic16f1828 1829串口收发

#include<PIC.h> 

// 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){}

}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
高性能RISC CPU: • 仅需学习49 条指令: - 除了跳转指令以外,所有指令都是单周期的 • 工作速度: - DC- 32 MHz 振荡器/ 时钟输入 - DC- 125 ns 指令周期 • 可寻址最大4 KB 的线性程序存储空间 • 可寻址最大256 字节的线性数据存储空间 • 带有自动现场保护的中断功能 • 带有可选上溢/ 下溢复位的16 级深硬件堆栈 • 直接、间接和相对寻址模式: - 两个完全16 位文件选择寄存器(File Select Register, FSR) - FSR可以读取程序和数据存储器 灵活的振荡器结构: • 精确的32 MHz 内部振荡器模块: - 出厂时精度已校准到±1%,典型值 - 可通过软件选择频率范围:31 kHz 至32 MHz • 31 kHz 低功耗内部振荡器 • 4 种晶振模式,频率最高为32 MHz • 三种外部时钟模式,频率最高为32 MHz • 4 倍频锁相环(Phase Lock Loop, PLL) • 故障保护时钟监视器(Fail-Safe Clock Monitor, FSCM): - 当外设时钟停止时可使器件安全关闭 • 双速振荡器启动 • 参考时钟模块: - 可编程时钟输出频率和占空比 单片机特性: • 1.8V-5.5V 工作电压——PIC16F1824/1828 • 1.8V-3.6V 工作电压——PIC16LF1824/1828 • 可在软件控制下自编程 • 上电复位(Power-on Reset,POR)、上电延时定 时器(Power-up Timer,PWRT)和振荡器起振定 时器(Oscillator Start-up Timer, OST) • 可编程欠压复位(Brown-out Reset, BOR) • 扩展型看门狗定时器(Watchdog Timer, WDT) • 通过两个引脚进行在线串行编程(In-Circuit Serial Programming™, ICSP™) • 通过两个引脚进行在线调试(In-Circuit Debug,ICD) • 增强型低电压编程(Low-Voltage Programming, LVP) • 工作电压范围: - 1.8V-5.5V (PIC16F1824/1828) - 1.8V-3.6V (PIC16LF1824/1828) • 可编程代码保护 • 节能休眠模式 采用nanoWatt XLP 的超低功耗管理 PIC16LF1824/1828: • 休眠模式:20 nA • 看门狗定时器:500 nA • Timer1 振荡器:32 kHz 时为600 nA 模拟特性: • 模数转换器(Analog-to-Digital Converter,ADC) 模块: - 10位分辨率,最多12 路通道 - 自动采集功能 - 可在休眠模式下进行转换 • 模拟比较器模块: - 两个轨到轨模拟比较器 - 功耗模式控制 - 可通过软件控制滞后 • 参考电压模块: - 具有1.024V、2.048V 和4.096V 输出电压的固 定参考电压(Fixed Voltage Reference,FVR) - 带有正负参考电压选择的5位轨到轨电阻式DAC 外设特性: • 最多17 个I/O 引脚和1 个仅用作输入的引脚: - 高灌/ 拉电流:25 mA/25 mA - 可编程弱上拉 - 可编程电平变化中断引脚 • Timer0:带有8 位预分频器的8 位定时器/ 计数器 • 增强型Timer1: - 带有预分频器的16 位定时器/ 计数器 - 外部门控输入模式 - 专用的低功耗32 kHz 振荡器驱动器 • 3 个Timer2 型模块:带有8 位周期寄存器、预分频 器和后分频器的8 位定时器/ 计数器 • 两个捕捉/ 比较/PWM (Capture/Compare/PWM, CCP)模块 • 两个增强型CCP (ECCP)模块: - 可通过软件选择时基 - 自动关闭和自动重启 - PWM转向 • 带有SPI 和I2CTM 的主同步串行端口(Master Synchronous Serial Port, MSSP): - 7位地址掩码 - SMBus/PMBusTM 兼容 • 增强型通用同步/ 异步收发器(Enhanced Universal Synchronous Asynchronous Receiver Transmitter, EUSART)模块 • mTouch™ 传感振荡器模块: - 最多12 路输入通道 • 数据信号调制器模块: - 可选择调制器和载波源

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值