0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

深入剖析PIC16F870/871微控制器:功能特性与应用指南

chencui 2026-04-08 09:20 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

深入剖析PIC16F870/871微控制器:功能特性与应用指南

在电子设计领域,微控制器是核心组件之一,它如同电子设备的“大脑”,掌控着设备的各种功能和运行逻辑。Microchip的PIC16F870/871微控制器以其丰富的功能和出色的性能,在众多应用场景中得到了广泛应用。今天,我们就来深入剖析这款微控制器,探讨它的特性、应用以及设计要点。

文件下载:PIC16LF870-I/SS.pdf

一、设备概述

PIC16F870/871微控制器有28引脚的PIC16F870和40引脚的PIC16F871两种型号。它采用高性能RISC CPU,指令集简洁,仅需学习35条单字指令,且除程序分支指令为双周期外,其余均为单周期指令,运行速度快,操作频率范围为DC - 20 MHz,指令周期可达DC - 200 ns。

1.1 核心特性

  • 高性能RISC CPU:具备强大的运算能力,能高效处理各种任务。
  • 精简指令集:35条单字指令,易于学习和使用,降低了开发难度。
  • 丰富的内存资源:拥有2K x 14 words的FLASH程序内存、128 x 8 bytes的数据内存(RAM)以及64 x 8 bytes的EEPROM数据内存,满足不同的数据存储需求。
  • 多中断源:具备多达11个中断源,可实现快速响应外部事件,提高系统的实时性。
  • 低功耗设计:采用低功耗、高速CMOS FLASH/EEPROM技术,在不同工作模式下都能保持较低的功耗,如在5V、4 MHz典型工作条件下电流小于1.6 mA,3V、32 kHz时典型电流为20 μA,待机电流典型值小于1 μA。
  • 多种工作模式:支持Power-on Reset(POR)、Power-up Timer(PWRT)、Oscillator Start-up Timer(OST)、Watchdog Timer(WDT)等功能,确保系统的稳定性和可靠性;具备Power saving SLEEP模式,可在不需要工作时降低功耗;还支持In-Circuit Serial Programming(ICSP)和In-Circuit Debugging等功能,方便开发和调试。

1.2 外设特性

  • 定时器模块
    • Timer0:8位定时器/计数器,带有8位软件可编程预分频器,可选择内部或外部时钟源,溢出时可产生中断。
    • Timer1:16位定时器/计数器,可在SLEEP模式下通过外部晶体/时钟递增,具备预分频器,可工作在定时器或计数器模式。
    • Timer2:8位定时器,带有预分频器和后分频器,可作为PWM时间基准。
  • Capture/Compare/PWM模块:可实现16位捕获、比较和PWM功能,捕获分辨率最高可达12.5 ns,比较分辨率最高可达200 ns,PWM分辨率最高可达10位。
  • 模拟-to-数字转换器ADC:28引脚设备有5个输入通道,其他设备有8个输入通道,可实现10位多通道模拟-to-数字转换。
  • 通用同步异步收发器(USART):可配置为全双工异步系统或半双工同步系统,支持9位地址检测,具备多处理器通信能力。
  • 并行从端口(PSP):仅PIC16F871具备,可作为8位宽的微处理器端口,实现与外部设备的并行通信。

二、内存组织

PIC16F870/871的内存分为程序内存和数据内存,两者拥有独立的总线,可实现并发访问。

2.1 程序内存

程序内存采用13位程序计数器,可寻址8K x 14的程序内存空间,但实际只有2K x 14 words的FLASH程序内存。RESET向量位于0000h,中断向量位于0004h。

2.2 数据内存

数据内存被划分为多个存储体,包含通用寄存器和特殊功能寄存器。通过STATUS寄存器的RP1和RP0位进行存储体选择,每个存储体最大扩展到7Fh(128字节),下部位置保留给特殊功能寄存器,上部为通用寄存器,采用静态RAM实现。部分常用特殊功能寄存器会在不同存储体中镜像,以减少代码量并加快访问速度。

三、I/O端口

PIC16F870/871的I/O端口部分引脚与外设功能复用,当外设启用时,这些引脚可能无法作为通用I/O引脚使用。

3.1 PORTA

6位宽双向端口,对应数据方向寄存器为TRISA。部分引脚可作为模拟输入或VREF输入,RA4引脚还可作为Timer0模块的时钟输入,采用Schmitt Trigger输入和开漏输出。

3.2 PORTB

8位宽双向端口,对应数据方向寄存器为TRISB。部分引脚与低电压编程功能复用,每个引脚都有内部弱上拉电阻,可通过OPTION_REG寄存器的RBPU位统一控制。RB7:RB4引脚具备中断变化功能,可用于按键唤醒等操作。

3.3 PORTC

8位宽双向端口,对应数据方向寄存器为TRISC。部分引脚与多个外设功能复用,采用Schmitt Trigger输入缓冲器。在启用外设功能时,需注意TRIS位的设置。

3.4 PORTD和PORTE(仅PIC16F871)

PORTD为8位端口,可配置为8位宽的微处理器端口(并行从端口),输入缓冲器在I/O模式下为Schmitt Trigger,在并行从端口模式下为TTL。PORTE有三个引脚,可作为通用I/O引脚或并行从端口的控制输入,输入缓冲器同样根据模式不同而变化。

四、定时器模块

定时器模块是PIC16F870/871的重要组成部分,可实现定时、计数等功能。

4.1 Timer0模块

8位定时器/计数器,可读可写,带有8位软件可编程预分频器,可选择内部或外部时钟源,溢出时可产生中断。在定时器模式下,每指令周期递增;在计数器模式下,根据RA4/T0CKI引脚的边沿变化递增。

4.2 Timer1模块

16位定时器/计数器,由TMR1H和TMR1L两个8位寄存器组成,可读可写。可工作在定时器或计数器模式,可通过T1CON寄存器进行配置。在SLEEP模式下,若配置为异步计数器模式,可继续运行并产生溢出中断,唤醒处理器。

4.3 Timer2模块

8位定时器,带有预分频器和后分频器,可作为PWM时间基准。TMR2寄存器可读可写,在设备复位时清零。通过T2CON寄存器可配置预分频器和后分频器,以及定时器的开启和关闭。

五、Capture/Compare/PWM模块

该模块包含一个16位寄存器,可作为16位捕获寄存器、16位比较寄存器或PWM主/从占空比寄存器。

5.1 捕获模式

在捕获模式下,CCPR1H:CCPR1L可捕获TMR1寄存器的16位值,根据不同的事件触发条件进行捕获,如每个下降沿、上升沿、第4个上升沿或第16个上升沿。捕获发生时,中断请求标志位CCP1IF会被置位,需在软件中清除。

5.2 比较模式

在比较模式下,16位CCPR1寄存器的值会与TMR1寄存器的值进行比较,当匹配时,RC2/CCP1引脚会根据配置进行相应操作,同时中断标志位CCP1IF会被置位。

5.3 PWM模式

在PWM模式下,CCP1引脚可产生最高10位分辨率的PWM输出。通过设置PR2寄存器可指定PWM周期,通过设置CCPR1L寄存器和CCP1CON<5:4>位可指定PWM占空比。

六、通用同步异步收发器(USART)

USART模块可配置为异步(全双工)、同步 - 主(半双工)或同步 - 从(半双工)模式,支持9位地址检测,可与多种外设进行通信。

6.1 波特率发生器

BRG是一个专用的8位波特率发生器,可支持USART的异步和同步模式。通过SPBRG寄存器控制8位定时器的周期,在异步模式下,BRGH位也会影响波特率。

6.2 异步模式

在异步模式下,USART采用标准的非归零(NRZ)格式,包括一个起始位、8或9个数据位和一个停止位。发送和接收功能相互独立,但使用相同的数据格式和波特率。

6.3 同步主模式

在同步主模式下,数据以半双工方式传输,处理器在CK线上发送主时钟。发送和接收操作通过TXEN和CREN或SREN位进行控制。

6.4 同步从模式

同步从模式与主模式的操作基本相同,但移位时钟由外部提供,可在SLEEP模式下进行数据传输。

七、模拟-to-数字转换器(ADC)模块

ADC模块有5个输入通道(28引脚设备)或8个输入通道(其他设备),可将模拟输入信号转换为10位数字结果。

7.1 转换过程

转换过程包括配置A/D模块、等待采样时间、启动转换、等待转换完成和读取转换结果等步骤。在转换过程中,需注意采样时间的计算和A/D转换时钟的选择。

7.2 特殊功能

ADC模块可在SLEEP模式下工作,但需将A/D时钟源设置为内部RC振荡器

八、特殊功能

PIC16F870/871具备多种特殊功能,可提高系统的可靠性和灵活性。

8.1 振荡器选择

支持LP低功耗晶体、XT晶体/谐振器、HS高速晶体/谐振器和RC电阻/电容四种振荡器模式,可通过配置位进行选择。

8.2 RESET功能

包括Power-on Reset(POR)、Power-up Timer(PWRT)、Oscillator Start-up Timer(OST)和Brown-out Reset(BOR)等,可确保系统在不同情况下的稳定启动。

8.3 中断功能

最多有14个中断源,通过INTCON寄存器记录中断请求标志位,可通过全局中断使能位GIE和各个中断使能位进行控制。

8.4 看门狗定时器(WDT)

WDT是一个独立的RC振荡器,可在正常运行时产生设备复位,在SLEEP模式下唤醒设备。可通过配置位永久禁用。

8.5 SLEEP模式

通过执行SLEEP指令进入低功耗模式,WDT可继续运行,I/O端口保持原有状态。可通过外部RESET、WDT唤醒或中断唤醒。

8.6 代码保护

具备代码保护功能,可对EEPROM数据内存和FLASH程序内存进行保护,防止数据和代码被非法读取。

8.7 在线串行编程(ICSP)

支持在线串行编程,可在最终应用电路中对微控制器进行编程,方便产品的生产和更新。

8.8 低电压ICSP编程

通过配置字的LVP位可启用低电压ICSP编程,使用正常工作电压的VDD源进行编程。

8.9 在线调试器

通过配置字的DEBUG位可启用在线调试器功能,方便进行调试和开发。

九、开发支持

Microchip为PIC16F870/871提供了丰富的开发支持工具,包括集成开发环境、汇编器/编译器/链接器、模拟器、仿真器、在线调试器、设备编程器、低成本演示板和评估套件等,可满足不同开发阶段的需求。

9.1 MPLAB集成开发环境软件

提供了便捷的软件开发环境,支持多种调试工具,可实现源代码编辑、编译、下载和调试等功能。

9.2 MPASM汇编器

全功能的通用宏汇编器,可生成可重定位目标文件、Intel标准HEX文件、MAP文件和绝对LST文件等,支持用户自定义宏和条件汇编。

9.3 MPLAB C17和MPLAB C18 C编译器

完整的ANSI C编译器,提供强大的集成能力、优秀的代码优化和易用性,可生成适用于PIC17CXXX和PIC18CXXX系列微控制器的代码。

9.4 MPLINK对象链接器/MPLIB对象库管理器

MPLINK可将MPASM汇编器和MPLAB C17、MPLAB C18 C编译器生成的可重定位对象进行链接,MPLIB可管理预编译代码的库文件。

9.5 MPLAB C30 C编译器

全功能的ANSI兼容优化编译器,可将标准ANSI C程序转换为dsPIC30F汇编语言源代码,支持多种命令行选项和语言扩展。

9.6 MPLAB ASM30汇编器、链接器和库管理器

可生成dsPIC30F设备的可重定位机器代码,支持固定点和浮点数据,具备丰富的指令集和灵活的宏语言。

9.7 MPLAB SIM软件模拟器

可在PC环境中模拟PIC系列微控制器的指令级操作,支持符号调试,可进行单步执行、执行到断点和跟踪模式等操作。

9.8 MPLAB ICE 2000和MPLAB ICE 4000高性能通用在线仿真

提供完整的微控制器设计工具集,具备高级的跟踪、触发和数据监测功能,可进行实时仿真和调试。

9.9 MPLAB ICD 2在线调试器

低成本、强大的运行时开发工具,可通过RS-232或高速USB接口连接到主机PC,支持在线调试和编程功能。

9.10 设备编程器和演示板

包括PRO MATE II通用设备编程器、PICSTART Plus开发编程器和多种PICDEM演示板,可方便进行设备编程和功能演示。

十、总结

PIC16F870/871微控制器以其丰富的功能、低功耗设计和良好的开发支持,在电子设计领域具有广泛的应用前景。无论是工业控制消费电子还是物联网等领域,都能发挥其优势。在实际应用中,我们需要根据具体需求合理选择和配置微控制器的各种功能,充分发挥其性能。同时,借助Microchip提供的开发工具,可提高开发效率,缩短开发周期。希望本文能为电子工程师们在使用PIC16F870/871微控制器时提供一些帮助和参考。大家在实际设计过程中遇到过哪些问题呢?欢迎在评论区分享交流。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    49

    文章

    8830

    浏览量

    165579
  • 功能特性
    +关注

    关注

    1

    文章

    72

    浏览量

    112
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    探索Microchip PIC16F5X系列微控制器特性、应用与开发指南

    探索Microchip PIC16F5X系列微控制器特性、应用与开发指南 在电子工程领域,微控制器是众多项目的核心组件。Microchip
    的头像 发表于 04-16 16:45 65次阅读

    深入剖析Microchip PIC16F84A微控制器特性、应用与开发指南

    深入剖析Microchip PIC16F84A微控制器特性、应用与开发指南 在电子工程师的工具
    的头像 发表于 04-08 09:10 426次阅读

    深入解析Microchip PIC16F8X系列微控制器

    深入解析Microchip PIC16F8X系列微控制器 在电子工程领域,微控制器是众多项目的核心组件,其性能和特性直接影响着整个系统的表现
    的头像 发表于 04-08 09:10 517次阅读

    深度剖析PIC16F818/819微控制器特性、应用与设计指南

    深度剖析PIC16F818/819微控制器特性、应用与设计指南 在当今的电子领域,微控制器扮演
    的头像 发表于 04-08 09:10 441次阅读

    深入剖析Microchip PIC16C62B/72A微控制器特性、应用与开发指南

    深入剖析Microchip PIC16C62B/72A微控制器特性、应用与开发指南 在电子工程
    的头像 发表于 04-08 09:05 447次阅读

    PIC16(L)F183XX:全功能、低引脚数微控制器的技术剖析

    PIC16(L)F183XX:全功能、低引脚数微控制器的技术剖析 在电子设计领域,微控制器是众多
    的头像 发表于 04-08 09:05 419次阅读

    深度剖析Microchip PIC16F62X系列微控制器:硬件设计与应用指南

    、低功耗和丰富的外设功能,成为众多嵌入式系统设计的理想选择。本文将深入探讨PIC16F62X系列微控制器的特点、架构、外设功能以及应用开发,
    的头像 发表于 04-07 17:20 469次阅读

    深入剖析PIC16LF1902/3微控制器特性功能与应用

    深入剖析PIC16LF1902/3微控制器特性功能与应用 在电子工程领域,选择一款合适的
    的头像 发表于 04-07 17:15 486次阅读

    深入剖析PIC16C71X系列微控制器:设计与应用的全方位指南

    深入剖析PIC16C71X系列微控制器:设计与应用的全方位指南 在电子工程师的工具箱中,微控制器
    的头像 发表于 04-07 16:45 449次阅读

    PIC16CE62X系列微控制器功能特性与设计指南

    PIC16CE62X系列微控制器功能特性与设计指南 在电子设计领域,选择合适的微控制器对于项目
    的头像 发表于 04-07 16:35 148次阅读

    PIC16F72微控制器特性、应用与设计指南

    PIC16F72微控制器特性、应用与设计指南 在电子设计领域,微控制器是核心组件之一,它能够实现各种复杂的
    的头像 发表于 04-07 16:05 146次阅读

    探索PIC16CR7X系列微控制器功能特性与应用指南

    探索PIC16CR7X系列微控制器功能特性与应用指南 在电子设计领域,选择一款合适的微控制器
    的头像 发表于 04-07 15:30 140次阅读

    PIC16F716:8位闪存微控制器的性能剖析与应用指南

    PIC16F716:8位闪存微控制器的性能剖析与应用指南 在电子工程领域,微控制器作为核心部件,广泛应用于各种嵌入式系统中。Microchi
    的头像 发表于 03-24 17:30 602次阅读

    深度剖析Microchip PIC16F870/871微控制器:硬件特性与应用指南

    深度剖析Microchip PIC16F870/871微控制器:硬件特性与应用指南 在嵌入式系统
    的头像 发表于 03-19 17:35 1114次阅读

    PIC16F818/819微控制器深度剖析特性、应用与设计要点

    PIC16F818/819微控制器深度剖析特性、应用与设计要点 在电子设计的领域中,选择合适的微控制器是实现项目成功的关键一步。Micro
    的头像 发表于 02-09 14:05 412次阅读