电子说
在嵌入式系统设计领域,选择一款合适的微控制器对于项目的成功至关重要。Microchip的PIC16F870/871微控制器以其丰富的功能和出色的性能,成为众多工程师的首选之一。今天,我们就来深入探讨这款微控制器的各项特性、功能模块以及实际应用中的注意事项。
文件下载:PIC16LF870T-I SO.pdf
PIC16F870和PIC16F871是Microchip推出的两款8位CMOS FLASH微控制器,分别采用28引脚和40引脚封装。它们具有高性能RISC CPU,指令集简洁,仅需学习35条单字指令,除程序分支指令为双周期外,其余均为单周期指令,运行速度快,时钟输入范围为DC - 20 MHz,指令周期可达200 ns。
PIC16F870/871的程序存储器为13位程序计数器可寻址的8K x 14空间,但实际只有2K x 14的FLASH程序存储器。复位向量位于0000h,中断向量位于0004h。当访问超出物理实现地址时,会发生回绕。
数据存储器分为多个存储体,由STATUS寄存器的RP1和RP0位选择。每个存储体最大为7Fh(128字节),低位用于特殊功能寄存器,高位为通用寄存器。特殊功能寄存器又分为核心(CPU)和外设两类,控制着设备的各种操作。
6位双向端口,对应数据方向寄存器为TRISA。部分引脚复用为模拟输入和VREF输入,RA4/T0CKI引脚为施密特触发输入和开漏输出。使用时需注意,上电复位时这些引脚配置为模拟输入,读取为'0',使用模拟输入时需确保TRISA寄存器相应位为1。
8位双向端口,对应数据方向寄存器为TRISB。部分引脚复用为低压编程功能,每个引脚有弱上拉电阻,可通过OPTION_REG寄存器的RBPU位控制。RB7:RB4引脚具有电平变化中断功能,可用于唤醒设备。
8位双向端口,对应数据方向寄存器为TRISC。部分引脚复用为多个外设功能,引脚具有施密特触发输入缓冲器。启用外设功能时,需注意TRIS位的设置,避免影响引脚功能。
PORTD为8位端口,可配置为并行从端口;PORTE有三个引脚,可配置为输入或输出,也可作为并行从端口的控制输入。
当TRISE寄存器的PSPMODE位设置时,PORTD可作为8位并行从端口,通过RE0/RD、RE1/WR和RE2/CS控制输入,可直接与8位微处理器数据总线接口。
8位定时器/计数器,具有8位可编程预分频器,可选择内部或外部时钟源,溢出时产生中断。预分频器与看门狗定时器共享,可通过OPTION_REG寄存器配置。
16位定时器/计数器,由TMR1H和TMR1L两个8位寄存器组成。可工作在定时器或计数器模式,通过T1CON寄存器控制。在异步计数器模式下可在睡眠模式下运行并产生中断唤醒处理器。
8位定时器,带有预分频器和后分频器,可作为CCP模块PWM模式的时基。TMR2寄存器可读可写,复位时清零。
每个CCP模块包含一个16位寄存器,可作为16位捕获寄存器、16位比较寄存器或PWM主/从占空比寄存器。
在捕获模式下,CCPR1H:CCPR1L捕获TMR1寄存器的16位值,根据CCP1CON寄存器的配置,可在不同的边沿触发捕获操作。
将16位CCPR1寄存器的值与TMR1寄存器对的值进行比较,根据CCP1CON寄存器的配置,在匹配时对RC2/CCP1引脚进行相应操作,并设置中断标志位CCP1IF。
在PWM模式下,CCP1引脚可产生最高10位分辨率的PWM输出。PWM周期由PR2寄存器指定,占空比由CCPR1L寄存器和CCP1CON<5:4>位指定。
USART模块可配置为全双工异步系统或半双工同步系统,支持9位地址检测的多处理器通信。
使用标准NRZ格式,通过波特率发生器产生时钟,可选择高速或低速模式。发送和接收功能独立,支持8位或9位数据传输。
数据半双工传输,由处理器在CK线发送主时钟。发送和接收操作通过TXEN和CREN、SREN控制。
移位时钟由外部提供,可在睡眠模式下传输或接收数据。
A/D转换器模块具有5个(28引脚设备)或8个(其他设备)模拟输入通道,可产生10位数字结果。通过ADCON0和ADCON1寄存器控制操作和配置端口引脚。支持在睡眠模式下操作,但需将A/D时钟源设置为内部RC振荡器。
支持LP、XT、HS、RC四种振荡器模式,可通过配置位FOSC1和FOSC0选择。不同模式适用于不同的应用场景,如RC模式适用于对时序要求不高的应用,可节省成本;LP模式则可节省功耗。
包括上电复位(POR)、MCLR复位、看门狗定时器复位(WDT)和欠压复位(BOR)。不同的复位情况会对寄存器产生不同的影响,可通过STATUS寄存器的(overline{TO})和(overline{PD})位判断复位类型。
具有多达14个中断源,通过INTCON、PIR1和PIR2寄存器记录中断请求,通过GIE、PEIE和各中断使能位控制中断。中断发生时,GIE位清零,返回地址压入堆栈,PC加载为0004h。
独立的片上RC振荡器,可在时钟停止时运行。正常运行时超时产生复位,睡眠模式下超时唤醒设备。可通过配置位WDTEN永久禁用。
执行SLEEP指令进入睡眠模式,此时看门狗定时器清零但继续运行,振荡器驱动关闭,I/O端口保持状态。可通过外部复位、看门狗定时器唤醒或中断唤醒。
具有EEPROM数据存储器和FLASH程序存储器的代码保护机制,可通过配置位控制。代码保护启用后,只有全擦除设备才能禁用。
支持在线串行编程,可在最终应用电路中对微控制器进行编程。低压ICSP编程模式允许使用正常工作电压的VDD源进行编程。
Microchip为PIC16F870/871提供了丰富的开发工具,包括集成开发环境(MPLAB IDE)、汇编器(MPASM)、编译器(MPLAB C17、MPLAB C18、MPLAB C30)、模拟器(MPLAB SIM、MPLAB SIM30)、仿真器(MPLAB ICE 2000、MPLAB ICE 4000)、在线调试器(MPLAB ICD 2)和设备编程器(PRO MATE II、PICSTART Plus)等,方便工程师进行开发和调试。
PIC16F870/871微控制器以其丰富的功能、低功耗和灵活的配置选项,适用于各种嵌入式应用场景。在实际设计中,工程师需要根据具体需求合理选择振荡器模式、配置寄存器、处理中断和进行编程调试。同时,要注意各项电气特性和时序要求,确保系统的稳定性和可靠性。希望本文能为电子工程师在使用PIC16F870/871微控制器时提供有价值的参考。
全部0条评论
快来发表一下你的评论吧 !