PIC16F913/914/916/917/946 数据手册 带 LCD 驱动器、采用纳瓦技术的 28/40/44/64 引脚基于闪存的 8 位 CMOS 单片机 2007 Microchip Technology Inc. DS41250F_CN 请注意以下有关 Microchip 器件代码保护功能的要点: • Microchip 的产品均达到 Microchip 数据手册中所述的技术指标。 • Microchip 确信:在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一。 • 目前,仍存在着恶意、甚至是非法破坏代码保护功能的行为。就我们所知,所有这些行为都不是以 Microchip 数据手册中规定的 操作规范来使用 Microchip 产品的。这样做的人极可能侵犯了知识产权。 • Microchip 愿与那些注重代码完整性的客户合作。 • Microchip 或任何其他半导体厂商均无法保证其代码的安全性。代码保护并不意味着我们保证产品是 “牢不可破”的。 代码保护功能处于持续发展中。 Microchip 承诺将不断改进产品的代码保护功能。任何试图破坏 Microchip 代码保护功能的行为均可视 为违反了 《数字器件千年版权法案 (Digital Millennium Copyright Act)》。如果这种行为导致他人在未经授权的情况下,能访问您的 软件或其他受版权保护的成果,您有权依据该法案提起诉讼,从而制止这种行为。 提供本文档的中文版本仅为了便于理解。请勿忽视文档中包含 的英文部分,因为其中提供了有关 Microchip 产品性能和使用 情况的有用信息。Microchip Technology Inc. 及其分公司和相 关公司、各级主管与员工及事务代理机构对译文中可能存在的 任何差错不承担任何责任。建议参考 Microchip Technology Inc. 的英文原版文档。 商标 本出版物中所述的器件应用信息及其他类似内容仅为您提供便 利,它们可能由更新之信息所替代。确保应用符合技术规范, 是您自身应负的责任。Microchip 对这些信息不作任何明示或 暗示、书面或口头、法定或其他形式的声明或担保,包括但不 限于针对其使用情况、质量、性能、适销性或特定用途的适用 性的声明或担保。 Microchip 对因这些信息及使用这些信息而 引起的后果不承担任何责任。如果将 Microchip 器件用于生命 维持和 / 或生命安全应用,一切风险由买方自负。买方同意在 由此引发任何一切伤害、索赔、诉讼或费用时,会维护和保障 Microchip 免于承担法律责任,并加以赔偿。在 Microchip 知识 产权保护下,不得暗中或以其他方式转让任何许可证。 AmpLab、 FilterLab、 Linear Active Thermistor、 Migratable Memory、 MXDEV、 MXLAB、 SEEVAL、 SmartSensor 和 The Embedded Control Solutions Company 均为 Microchip Technology Inc. 在美国的注册商标。 Microchip 的名称和徽标组合、 Microchip 徽标、 Accuron、 dsPIC、 KEELOQ、 KEELOQ 徽标、 microID、 MPLAB、 PIC、 PICmicro、 PICSTART、 PRO MATE、 rfPIC 和 SmartShunt 均为 Microchip Technology Inc. 在美国和其他国家或地区的 注册商标。 Analog-for-the-Digital Age、 Application Maestro、 CodeGuard、 dsPICDEM、 dsPICDEM.net、 dsPICworks、 dsSPEAK、 ECAN、 ECONOMONITOR、 FanSense、 FlexROM、 fuzzyLAB、 In-Circuit Serial Programming、 ICSP、 ICEPIC、 Mindi、 MiWi、 MPASM、 MPLAB Certified 徽标、 MPLIB、MPLINK、PICkit、PICDEM、 PICDEM.net、 PICLAB、 PICtail、 PowerCal、 PowerInfo、 PowerMate、 PowerTool、 REAL ICE、 rfLAB、 Select Mode、 Smart Serial、 SmartTel、 Total Endurance、 UNI/O、 WiperLock 和 ZENA 均为 Microchip Technology Inc. 在美国和其他国家或地 区的商标。 SQTP 是 Microchip Technology Inc. 在美国的服务标记。 在此提及的所有其他商标均为各持有公司所有。 © 2007, Microchip Technology Inc. 版权所有。 Microchip 位于美国亚利桑那州 Chandler 和 Tempe 与位于俄勒冈州 Gresham 的全球总部、设计和晶圆生产厂及位于美国加利福尼亚州和 印度的设计中心均通过了 ISO/TS-16949:2002 认证。公司在 PIC® MCU 与 dsPIC® DSC、 KEELOQ® 跳码器件、串行 EEPROM、单片机外 设、非易失性存储器和模拟产品方面的质量体系流程均符合 ISO/TS16949:2002。此外, Microchip 在开发系统的设计和生产方面的质量体 系也已通过了 ISO 9001:2000 认证。 DS41250F_CN 第 ii 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 带 LCD 驱动器、采用纳瓦技术的 28/40/44/64 引脚 8 位 CMOS 闪存单片机 高性能的 RISC CPU: 低功耗特性: • 仅需学习 35 条指令: - 除跳转指令外的所有指令都是单周期的 • 工作速度: - 振荡器 / 时钟的输入频率为 DC – 20 MHz - 指令周期为 DC – 200 ns • 程序存储器读取 (Program Memory Read, PMR)功能 • 中断功能 • 8 级深硬件堆栈 • 直接、间接和相对寻址模式 • 待机电流: - <100 nA (当电压为 2.0V 时),典型值 • 工作电流: - 11 µA (当频率为 32 kHz,电压为 2.0V 时),典型值 - 220 µA (当频率为 4 MHz,电压为 2.0V 时),典型值 • 看门狗定时器电流: - 1 µA (当电压为 2.0V 时),典型值 单片机的特点: • 液晶显示模块: - 28/40/64 引脚器件最大可分别驱动 60/96/168 像素 - 4 个公共端 • 最多 24/35/53 个 I/O 引脚和 1 个仅输入的引脚: - 高灌 / 拉电流可直接驱动 LED - 引脚电平变化中断 - 独立的可编程弱上拉 • 通过两个引脚进行的在线串行编程 (In-Circuit Serial Programming™, ICSP™) • 模拟比较器模块带有: - 两个模拟比较器 - 可编程的片上参考电压 (CVREF)模块 (占 VDD 的百分比) - 可从外部访问的比较器输入和输出 • A/D 转换器: - 10 位分辨率并且最多 8 个通道 • Timer0:带 8 位可编程预分频器的 8 位定时器 / 计 数器 • 增强型 Timer1: - 带有预分频器的 16 位定时器 / 计数器 - 外部 Timer1 门控信号 (使能计数) - 如果选择了 INTOSCIO 或 LP 模式,可选择 使用 OSC1 和 OSC2 作为 Timer1 的振荡器 • Timer2:带 8 位周期寄存器、预分频器和后分频 器的 8 位定时器 / 计数器 • 可寻址通用同步 / 异步收发器 (Addressable Universal Synchronous Asynchronous Receiver Transmitter, AUSART) • 最多 2 个捕捉 / 比较 /PWM 模块: - 16 位捕捉,最大分辨率为 12.5 ns - 16 位比较,最大分辨率为 200 ns - 10 位 PWM,最大频率为 20 kHz • 具有 I2C™ 工作模式的同步串行端口 (Synchronous Serial Port , SSP) • 高精度内部振荡器: - 出厂时精度校准为 ±1% (典型值) - 可用软件选择的频率范围为 125 kHz 到 8 MHz - 可用软件调节 - 双速启动模式 - 适用于关键应用的晶振故障检测 - 在节能模式下工作时可进行时钟模式切换 • 可用软件选择 31 kHz 内部振荡器 • 节能的休眠模式 • 宽工作电压范围 (2.0V 到 5.5V) • 工业级和扩展级温度范围 • 上电复位 (Power-on Reset, POR) • 上电延时定时器 (Power-up Timer, PWRT)和 振荡器起振定时器 (Oscillator Start-up Timer, OST) • 带软件控制选择的欠压复位 (Brown-out Reset, BOR) • 带片上振荡器 (可由软件选择预分频比,当预分 频比最大时其标称值为 268 秒)并且可软件使能 的增强型低电流看门狗定时器 (Watchdog Timer , WDT) • 与上拉 / 输入引脚复用的主复位 • 可编程代码保护 • 高耐用性闪存 /EEPROM 单元: - 闪存可经受 10 万次写操作 - EEPROM 可经受 100 万次写操作 - 闪存 / 数据 EEPROM 保存时间:>40 年 2007 Microchip Technology Inc. 外设特性: DS41250F_CN 第 1 页 PIC16F913/914/916/917/946 程序存储器 数据存储器 10 位 A/D LCD 转换器 (段驱动器) (通道数) 闪存 (字 / 字节) SRAM (字节) EEPROM (字节) I/O PIC16F913 4K/7K 256 256 24 5 PIC16F914 4K/7K 256 256 35 8 器件 CCP 8/16位 定时器 16(1) 1 2/1 24 2 2/1 (1) PIC16F916 8K/14K 352 256 24 5 1 2/1 PIC16F917 8K/14K 352 256 35 8 24 2 2/1 PIC16F946 8K/14K 336 256 53 8 42 2 2/1 注 16 1: PIC16F913/916 器件的 COM3 和 SEG15 共用同一物理引脚,因此使用 1/4 复用显示时 SEG15 不可用。 引脚框图 — PIC16F914/917, 40 引脚 RE3/MCLR/VPP RA0/AN0/C1-/SEG12 RA1/AN1/C2-/SEG7 RA2/AN2/C2+/VREF-/COM2 RA3/AN3/C1+/VREF+/SEG15 RA4/C1OUT/T0CKI/SEG4 RA5/AN4/C2OUT/SS/SEG5 RE0/AN5/SEG21 RE1/AN6/SEG22 RE2/AN7/SEG23 VDD VSS RA7/OSC1/CLKIN/T1OSI RA6/OSC2/CLKOUT/T1OSO RC0/VLCD1 RC1/VLCD2 RC2/VLCD3 RC3/SEG6 RD0/COM3 RD1 DS41250F_CN 第 2 页 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 PIC16F914/917 40 引脚 PDIP 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 RB7/ICSPDAT/ICDDAT/SEG13 RB6/ICSPCLK/ICDCK/SEG14 RB5/COM1 RB4/COM0 RB3/SEG3 RB2/SEG2 RB1/SEG1 RB0/INT/SEG0 VDD VSS RD7/SEG20 RD6/SEG19 RD5/SEG18 RD4/SEG17 RC7/RX/DT/SDI/SDA/SEG8 RC6/TX/CK/SCK/SCL/SEG9 RC5/T1CKI/CCP1/SEG10 RC4/T1G/SDO/SEG11 RD3/SEG16 RD2/CCP2 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 PIC16F914/917 40 引脚汇总 表 1: I/O 引脚 A/D LCD 比较器 定时器 CCP AUSART SSP 中断 上拉 RA0 2 AN0 SEG12 C1- — — — — — — — RA1 3 AN1 SEG7 C2- — — — — — — — 基本功能 RA2 4 AN2/VREF- COM2 C2+ — — — — — — — RA3 5 AN3/VREF+ SEG15 C1+ — — — — — — — SEG4 C1OUT T0CKI — — — — — — AN4 SEG5 C2OUT — — — SS — — — RA4 6 RA5 7 RA6 14 — — — T1OSO — — — — — OSC2/CLKOUT RA7 13 — — — T1OSI — — — — — OSC1/CLKIN RB0 33 — SEG0 — — — — — INT 有 — RB1 34 — SEG1 — — — — — — 有 — RB2 35 — SEG2 — — — — — — 有 — RB3 36 — SEG3 — — — — — — 有 — RB4 37 — COM0 — — — — — IOC 有 — RB5 38 — COM1 — — — — — IOC 有 — RB6 39 — SEG14 — — — — — IOC 有 ICSPCLK/ICDCK ICSPDAT/ICD-DAT RB7 40 — SEG13 — — — — — IOC 有 RC0 15 — VLCD1 — — — — — — — — RC1 16 — VLCD2 — — — — — — — — RC2 17 — VLCD3 — — — — — — — — RC3 18 — SEG6 — — — — — — — — — RC4 23 — SEG11 — T1G — — SDO — — RC5 24 — SEG10 — T1CKI CCP1 — — — — — RC6 25 — SEG9 — — — TX/CK SCK/SCL — — — RC7 26 — SEG8 — — — RX/DT SDI/SDA — — — RD0 19 — COM3 — — — — — — — — RD1 20 — — — — — — — — — — RD2 21 — — — — CCP2 — — — — — RD3 22 — SEG16 — — — — — — — — RD4 27 — SEG17 — — — — — — — — RD5 28 — SEG18 — — — — — — — — RD6 29 — SEG19 — — — — — — — — RD7 30 — SEG20 — — — — — — — — RE0 8 AN5 SEG21 — — — — — — — — RE1 9 AN6 SEG22 — — — — — — — — RE2 10 AN7 SEG23 — — — — — — — — RE3 1 — — — — — — — — 有 (1) MCLR/VPP — 11 — — — — — — — — — VDD — 32 — — — — — — — — — VDD 注 — 12 — — — — — — — — — VSS — 31 — — — — — — — — — VSS 1: 只有在采用外部 MCLR 配置时才能使能上拉。 2007 Microchip Technology Inc. DS41250F_CN 第 3 页 PIC16F913/914/916/917/946 引脚框图 — PIC16F913/916, 28 引脚 28 引脚 PDIP、SOIC 和 SSOP DS41250F_CN 第 4 页 RB5/COM1 RB4/COM0 22 RB6/ICSPCLK/ICDCK/SEG14 RB7/ICSPDAT/ICDDAT/SEG13 RE3/MCLR/VPP 26 25 24 23 RA0/AN0/C1-/SEG12 12 13 14 RC4/T1G/SDO/SEG11 RC5/T1CKI/CCP1/SEG10 RC6/TX/CK/SCK/SCL/SEG9 7 RC3/SEG6 RA6/OSC2/CLKOUT/T1OSO 11 RA7/OSC1/CLKIN/T1OSI 5 6 VSS PIC16F913/916 RC2/VLCD3 RA5/AN4/C2OUT/SS/SEG5 10 3 4 RC1/VLCD2 RA4/C1OUT/T0CKI/SEG4 9 2 8 1 RC0/VLCD1 RA2/AN2/C2+/VREF-/COM2 28 27 RA1/AN1/C2-/SEG7 28 引脚 QFN RA3/AN3/C1+/VREF+/COM3/SEG15 28 27 26 25 24 23 22 21 20 19 18 17 16 15 PIC16F913/916 1 2 3 4 5 6 7 8 9 10 11 12 13 14 RE3/MCLR/VPP RA0/AN0/C1-/SEG12 RA1/AN1/C2-/SEG7 RA2/AN2/C2+/VREF-/COM2 RA3/AN3/C1+/VREF+/COM3/SEG15 RA4/C1OUT/T0CKI/SEG4 RA5/AN4/C2OUT/SS/SEG5 VSS RA7/OSC1/CLKIN/T1OSI RA6/OSC2/CLKOUT/T1OSO RC0/VLCD1 RC1/VLCD2 RC2/VLCD3 RC3/SEG6 RB7/ICSPDAT/ICDDAT/SEG13 RB6/ICSPCLK/ICDCK/SEG14 RB5/COM1 RB4/COM0 RB3/SEG3 RB2/SEG2 RB1/SEG1 RB0/INT/SEG0 VDD VSS RC7/RX/DT/SDI/SDA/SEG8 RC6/TX/CK/SCK/SCL/SEG9 RC5/T1CKI/CCP1/SEG10 RC4/T1G/SDO/SEG11 21 20 19 18 RB3/SEG3 17 16 15 VDD RB2/SEG2 RB1/SEG1 RB0/INT/SEG0 VSS RC7/RX/DT/SDI/SDA/SEG8 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 PIC16F913/916 28 引脚 (PDIP、 SOIC 和 SSOP)汇总 表 2: I/O 引脚 A/D LCD 比较器 定时器 CCP AUSART SSP 中断 上拉 RA0 2 AN0 SEG12 C1- — — — — — — — RA1 3 AN1 SEG7 C2- — — — — — — — RA2 4 AN2/VREF- COM2 C2+ — — — — — — — RA3 5 AN3/VREF+ SEG15/ COM3 C1+ — — — — — — — 基本功能 RA4 6 — SEG4 C1OUT T0CKI — — — — — — RA5 7 — SEG5 C2OUT — — — SS — — — RA6 10 — — — T1OSO — — — — — OSC2/CLKOUT RA7 9 — — — T1OSI — — — — — OSC1/CLKIN RB0 21 — SEG0 — — — — — INT 有 — RB1 22 — SEG1 — — — — — — 有 — RB2 23 — SEG2 — — — — — — 有 — RB3 24 — SEG3 — — — — — — 有 — RB4 25 — COM0 — — — — — IOC 有 — RB5 26 — COM1 — — — — — IOC 有 — RB6 27 — SEG14 — — — — — IOC 有 ICSPCLK/ICDCK ICSPDAT/ICD-DAT RB7 28 — SEG13 — — — — — IOC 有 RC0 11 — VLCD1 — — — — — — — — RC1 12 — VLCD2 — — — — — — — — RC2 13 — VLCD3 — — — — — — — — RC3 14 — SEG6 — — — — — — — — RC4 15 — SEG11 — T1G — — SDO — — — RC5 16 — SEG10 — T1CKI CCP1 — — — — — RC6 17 — SEG9 — — — TX/CK SCK/SCL — — — RC7 18 — SEG8 — — — RX/DT SDI/SDA — — — RE3 1 — — — — — — — — 有 (1) MCLR/VPP — 20 — — — — — — — — — VDD — 8 — — — — — — — — — VSS — 19 — — — — — — — — — VSS 注 1: 只有在采用外部 MCLR 配置时才能使能上拉。 2007 Microchip Technology Inc. DS41250F_CN 第 5 页 PIC16F913/914/916/917/946 PIC16F913/916 28 引脚 (QFN)汇总 表 3: I/O 引脚 A/D LCD 比较器 定时器 CCP AUSART SSP 中断 上拉 RA0 27 AN0 SEG12 C1- — — — — — — — RA1 28 AN1 SEG7 C2- — — — — — — — 基本功能 RA2 1 AN2/VREF- COM2 C2+ — — — — — — — RA3 2 AN3/VREF+ SEG15/ COM3 C1+ — — — — — — — RA4 3 — SEG4 C1OUT T0CKI — — — — — — RA5 4 AN4 SEG5 C2OUT — — — SS — — — RA6 7 — — — T1OSO — — — — — OSC2/CLKOUT RA7 6 — — — T1OSI — — — — — OSC1/CLKIN RB0 18 — SEG0 — — — — — INT 有 — RB1 19 — SEG1 — — — — — — 有 — RB2 20 — SEG2 — — — — — — 有 — RB3 21 — SEG3 — — — — — — 有 — RB4 22 — COM0 — — — — — IOC 有 — RB5 23 — COM1 — — — — — IOC 有 — RB6 24 — SEG14 — — — — — IOC 有 ICSPCLK/ICDCK ICSPDAT/ICD-DAT RB7 25 — SEG13 — — — — — IOC 有 RC0 8 — VLCD1 — — — — — — — — RC1 9 — VLCD2 — — — — — — — — RC2 10 — VLCD3 — — — — — — — — RC3 11 — SEG6 — — — — — — — — RC4 12 — SEG11 — T1G — — SDO — — — RC5 13 — SEG10 — T1CKI CCP1 — — — — — RC6 14 — SEG9 — — — TX/CK SCK/SCL — — — RC7 15 — SEG8 — — — RX/DT SDI/SDA — — — RE3 26 — — — — — — — — 有 (1) MCLR/VPP — 17 — — — — — — — — — VDD — 5 — — — — — — — — — VSS — 16 — — — — — — — — — VSS 注 1: 只有在采用外部 MCLR 配置时才能使能上拉。 DS41250F_CN 第 6 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 44 43 42 41 40 39 38 37 36 35 34 1 2 3 4 5 6 7 8 9 10 11 PIC16F914/917 NC RC0/VLCD1 RA6/OSC2/CLKOUT/T1OSO RA7/OSC1/CLKIN/T1OSI VSS VDD RE2/AN7/SEG23 RE1/AN6/SEG22 RE0/AN5/SEG21 RA5/AN4/C2OUT/SS/SEG5 RA4/C1OUT/T0CKI/SEG4 33 32 31 30 29 28 27 26 25 24 23 RC6/TX/CK/SCK/SCL/SEG9 RC5/T1CKI/CCP1/SEG10 RC4/T1G/SDO/SEG11 RD3/SEG16 RD2/CCP2 RD1 RD0/COM3 RC3/SEG6 RC2/VLCD3 RC1/VLCD2 RC0/VLDC1 1 2 3 4 5 6 7 8 9 10 11 PIC16F914/917 33 32 31 30 29 28 27 26 25 24 23 RA6/OSC2/CLKOUT/T1OSO RA7/OSC1/CLKIN/T1OSI VSS VSS NC VDD RE2/AN7/SEG23 RE1/AN6/SEG22 RE0/AN5/SEG21 RA5/AN4/C2OUT/SS/SEG5 RA4/C1OUT/T0CKI/SEG4 RB3/SEG3 NC RB4/COM0 RB5/COM1 RB6/ICSPCLK/ICDCK/SEG14 RB7/ICSPDAT/ICDDAT/SEG13 RE3/MCLR/VPP RA0/AN0/C1-/SEG12 RA1/AN1/C2-/SEG7 RA2/AN2/C2+/VREF-/COM2 RA3/AN3/C1+/VREF+/SEG15 RC7/RX/DT/SDI/SDA/SEG8 RD4/SEG17 RD5/SEG18 RD6/SEG19 RD7/SEG20 VSS VDD VDD RB0/INT/SEG0 RB1/SEG1 RB2/SEG2 44 43 42 41 40 39 38 37 36 35 34 44 引脚 QFN 12 13 14 15 16 17 18 19 20 21 22 NC NC RB4/COM0 RB5/COM1 RB6/ICSPCLK/ICDCK/SEG14 RB7/ICSPDAT/ICDDAT/SEG13 RE3/MCLR/VPP RA0/C1-/AN0/SEG12 RA1/C2-/AN1/SEG7 RA2/AN2/C2+/VREF-/COM2 RA3/AN3/VREF+/C1+/SEG15 RC7/RX/DT/SDI/SDA/SEG8 RD4/SEG17 RD5/SEG18 RD6/SEG19 RD7/SEG20 VSS VDD RB0/SEG0/INT RB1/SEG1 RB2/SEG2 RB3/SEG3 12 13 14 15 16 17 18 19 20 21 22 44 引脚 TQFP RC6/TX/CK/SCK/SCL/SEG9 RC5/T1CKI/CCP1/SEG10 RC4/T1G/SDO/SEG11 RD3/SEG16 RD2/CCP2 RD1 RD0/COM3 RC3/SEG6 RC2/VLCD3 RC1/VLCD2 NC 引脚框图 — PIC16F914/917, 44 引脚 2007 Microchip Technology Inc. DS41250F_CN 第 7 页 PIC16F913/914/916/917/946 PIC16F914/917 44 引脚 (TQFP)汇总 表 4: I/O 引脚 A/D LCD 比较器 定时器 CCP AUSART SSP 中断 上拉 RA0 19 AN0 SEG12 C1- — — — — — — — RA1 20 AN1 SEG7 C2- — — — — — — — 基本功能 RA2 21 AN2/VREF- COM2 C2+ — — — — — — — RA3 22 AN3/VREF+ SEG15 C1+ — — — — — — — — RA4 23 — SEG4 C1OUT T0CKI — — — — — RA5 24 AN4 SEG5 C2OUT — — — SS — — — RA6 31 — — — T1OSO — — — — — OSC2/CLKOUT RA7 30 — — — T1OSI — — — — — OSC1/CLKIN RB0 8 — SEG0 — — — — — INT 有 — RB1 9 — SEG1 — — — — — — 有 — RB2 10 — SEG2 — — — — — — 有 — RB3 11 — SEG3 — — — — — — 有 — RB4 14 — COM0 — — — — — IOC 有 — RB5 15 — COM1 — — — — — IOC 有 — RB6 16 — SEG14 — — — — — IOC 有 ICSPCLK/ICDCK ICSPDAT/ICD-DAT RB7 17 — SEG13 — — — — — IOC 有 RC0 32 — VLCD1 — — — — — — — — RC1 35 — VLCD2 — — — — — — — — RC2 36 — VLCD3 — — — — — — — — RC3 37 — SEG6 — — — — — — — — RC4 42 — SEG11 — T1G — — SDO — — — RC5 43 — SEG10 — T1CKI CCP1 — — — — — RC6 44 — SEG9 — — — TX/CK SCK/SCL — — — RC7 1 — SEG8 — — — RX/DT SDI/SDA — — — RD0 38 — COM3 — — — — — — — — — RD1 39 — — — — — — — — — RD2 40 — — — — CCP2 — — — — — RD3 41 — SEG16 — — — — — — — — RD4 2 — SEG17 — — — — — — — — RD5 3 — SEG18 — — — — — — — — RD6 4 — SEG19 — — — — — — — — RD7 5 — SEG20 — — — — — — — — RE0 25 AN5 SEG21 — — — — — — — — RE1 26 AN6 SEG22 — — — — — — — — RE2 27 AN7 SEG23 — — — — — — — — RE3 18 — — — — — — — — 有 (1) MCLR/VPP — 7 — — — — — — — — — VDD — 28 — — — — — — — — — VDD — 6 — — — — — — — — — VSS — 29 — — — — — — — — — VSS — 12 — — — — — — — — — NC — 13 — — — — — — — — — NC 注 — 33 — — — — — — — — — NC — 34 — — — — — — — — — NC 1: 只有在采用外部 MCLR 配置时才能使能上拉。 DS41250F_CN 第 8 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 PIC16F914/917 44 引脚 (QFN)汇总 表 5: I/O 引脚 A/D LCD 比较器 定时器 CCP AUSART SSP 中断 上拉 RA0 19 AN0 SEG12 C1- — — — — — — — RA1 20 AN1 SEG7 C2- — — — — — — — 基本功能 RA2 21 AN2/VREF- COM2 C2+ — — — — — — — RA3 22 AN3/VREF+ SEG15 C1+ — — — — — — — RA4 23 — SEG4 C1OUT T0CKI — — — — — — RA5 24 AN4 SEG5 C2OUT — — — SS — — — RA6 33 — — — T1OSO — — — — — OSC2/CLKOUT RA7 32 — — — T1OSI — — — — — OSC1/CLKIN RB0 9 — SEG0 — — — — — INT 有 — RB1 10 — SEG1 — — — — — — 有 — RB2 11 — SEG2 — — — — — — 有 — RB3 12 — SEG3 — — — — — — 有 — RB4 14 — COM0 — — — — — IOC 有 — RB5 15 — COM1 — — — — — IOC 有 — RB6 16 — SEG14 — — — — — IOC 有 ICSPCLK/ICDCK ICSPDAT/ICD-DAT RB7 17 — SEG13 — — — — — IOC 有 RC0 34 — VLCD1 — — — — — — — — RC1 35 — VLCD2 — — — — — — — — RC2 36 — VLCD3 — — — — — — — — RC3 37 — SEG6 — — — — — — — — RC4 42 — SEG11 — T1G — — SDO — — — RC5 43 — SEG10 — T1CKI CCP1 — — — — — — RC6 44 — SEG9 — — — TX/CK SCK/SCL — — RC7 1 — SEG8 — — — RX/DT SDI/SDA — — — RD0 38 — COM3 — — — — — — — — RD1 39 — — — — — — — — — — RD2 40 — — — — CCP2 — — — — — RD3 41 — SEG16 — — — — — — — — RD4 2 — SEG17 — — — — — — — — RD5 3 — SEG18 — — — — — — — — RD6 4 — SEG19 — — — — — — — — RD7 5 — SEG20 — — — — — — — — RE0 25 AN5 SEG21 — — — — — — — — RE1 26 AN6 SEG22 — — — — — — — — RE2 27 AN7 SEG23 — — — — — — — — RE3 18 — — — — — — — — 有 (1) MCLR/VPP — 7 — — — — — — — — — VDD — 8 — — — — — — — — — VDD — 28 — — — — — — — — — VDD — 6 — — — — — — — — — VSS — 30 — — — — — — — — — VSS — 13 — — — — — — — — — NC — 29 — — — — — — — — — NC 注 1: 只有在采用外部 MCLR 配置时才能使能上拉。 2007 Microchip Technology Inc. DS41250F_CN 第 9 页 PIC16F913/914/916/917/946 RC1/VLCD2 RC0/VLCD1 RC2/VLCD3 RC3/SEG6 RD0/COM3 RD1 RD2/CCP2 VSS RD3/SEG16 VDD RC4/T1G/SDO/SEG11 RC5/T1CKI/CCP1/SEG10 RC6/TX/CK/SCK/SCL/SEG9 RD4/SEG17 RD5/SEG18 64 引脚 TQFP RC7/RX/DT/SDI/SDA/SEG8 引脚框图 — PIC16F946 64 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 RD6/SEG19 RD7/SEG20 1 2 48 47 RG0/SEG36 RG1/SEG37 3 46 45 RG2/SEG38 RG3/SEG39 RG4/SEG40 RG5/SEG41 VSS VDD RF0/SEG32 RF1/SEG33 RF2/SEG34 RF3/SEG35 RB0/INT/SEG0 RB1/SEG1 4 5 6 7 8 9 10 11 12 13 14 44 43 42 41 40 PIC16F946 39 38 15 16 RF7/SEG31 RF6/SEG30 RF5/SEG29 RF4/SEG28 RE7/SEG27 RE6/SEG26 RE5/SEG25 VSS RA6/OSC2/CLKOUT/T1OSO RA7/OSC1/CLKIN/T1OSI 37 36 35 VDD RE4/SEG24 RE3/MCLR/VPP RE2/AN7/SEG23 34 33 RE1/AN6/SEG22 RE0/AN5/SEG21 RA5/AN4/C2OUT/SS/SEG5 RA4/C1OUT/T0CKI/SEG4 RA2/AN2/C2+/VREF-/COM2 RA3/AN3/C1+/VREF+/SEG15 RA1/AN1/C2-/SEG7 RA0/AN0/C1-/SEG12 AVDD RB7/ICSPDAT/ICDDAT/SEG13 AVSS RB5/COM1 RB6/ICSPCLK/ICDCK/SEG14 RB4/COM0 VSS RB2/SEG2 DS41250F_CN 第 10 页 RB3/SEG3 VDD 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 PIC16F946 64 引脚 (TQFP)汇总 表 6: I/O 引脚 A/D LCD 比较器 定时器 CCP AUSART SSP 中断 上拉 基本功能 RA0 27 AN0 SEG12 C1- — — — — — — — RA1 28 AN1 SEG7 C2- — — — — — — — RA2 29 AN2/VREF- COM2 C2+ — — — — — — — RA3 30 AN3/VREF+ SEG15 C1+ — — — — — — — RA4 31 — SEG4 C1OUT T0CKI — — — — — — RA5 32 AN4 — C2OUT — — — SS — — — RA6 40 SEG5 — — T1OSO — — — — — OSC2/CLKOUT RA7 39 — — — T1OSI — — — — — OSC1/CLKIN RB0 15 — SEG0 — — — — — INT 有 — RB1 16 — SEG1 — — — — — — 有 — RB2 17 — SEG2 — — — — — — 有 — RB3 18 — SEG3 — — — — — — 有 — RB4 21 — COM0 — — — — — IOC 有 — RB5 22 — COM1 — — — — — IOC 有 — RB6 23 — SEG14 — — — — — IOC 有 ICSPCLK/ICDCK RB7 24 — SEG13 — — — — — IOC 有 ICSPDAT/ICDDAT RC0 49 — VLCD1 — — — — — — — — RC1 50 — VLCD2 — — — — — — — — RC2 51 — VLCD3 — — — — — — — — RC3 52 — SEG6 — — — — — — — — RC4 59 — SEG11 — T1G — — SDO — — — RC5 60 — SEG10 — T1CKI CCP1 — — — — — RC6 61 — SEG9 — — — TX/CK SCK/SCL — — — RC7 62 — SEG8 — — — RX/DT SDI/SDA — — — RD0 53 — COM3 — — — — — — — — RD1 54 — — — — — — — — — — RD2 55 — — — — CCP2 — — — — — RD3 58 — SEG16 — — — — — — — — RD4 63 — SEG17 — — — — — — — — RD5 64 — SEG18 — — — — — — — — RD6 1 — SEG19 — — — — — — — — RD7 2 — SEG20 — — — — — — — — RE0 33 AN5 SEG21 — — — — — — — — RE1 34 AN6 SEG22 — — — — — — — — RE2 35 AN7 SEG23 — — — — — — — — MCLR/VPP RE3 36 — — — — — — — — 有 (1) RE4 37 — SEG24 — — — — — — — — RE5 42 — SEG25 — — — — — — — — RE6 43 — SEG26 — — — — — — — — RE7 44 — SEG27 — — — — — — — — RF0 11 — SEG32 — — — — — — — — RF1 12 — SEG33 — — — — — — — — RF2 13 — SEG34 — — — — — — — — 注 1: 只有在采用外部 MCLR 配置时才能使能上拉。 2007 Microchip Technology Inc. DS41250F_CN 第 11 页 PIC16F913/914/916/917/946 PIC16F946 64 引脚 (TQFP)汇总 (续) 表 6: I/O 引脚 A/D LCD 比较器 定时器 CCP AUSART SSP 中断 上拉 基本功能 RF3 14 — SEG35 — — — — — — — — RF4 45 — SEG28 — — — — — — — — RF5 46 — SEG29 — — — — — — — — RF6 47 — SEG30 — — — — — — — — RF7 48 — SEG31 — — — — — — — — RG0 3 — SEG36 — — — — — — — — RG1 4 — SEG37 — — — — — — — — RG2 5 — SEG38 — — — — — — — — RG3 6 — SEG39 — — — — — — — — RG4 7 — SEG40 — — — — — — — — RG5 8 — SEG41 — — — — — — — — — 26 — — — — — — — — — AVDD — 25 — — — — — — — — — AVSS — 10 — — — — — — — — — VDD — 19 — — — — — — — — — VDD — 38 — — — — — — — — — VDD — 57 — — — — — — — — — VDD — 9 — — — — — — — — — VSS — 20 — — — — — — — — — VSS — 41 — — — — — — — — — VSS — 56 — — — — — — — — — VSS 注 1: 只有在采用外部 MCLR 配置时才能使能上拉。 DS41250F_CN 第 12 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 目录 1.0 器件概述 .................................................................................................................................................................................... 15 2.0 存储器构成 ................................................................................................................................................................................ 23 3.0 I/O 端口 .................................................................................................................................................................................... 43 4.0 振荡器模块 (带故障保护时钟监视器) .................................................................................................................................... 87 5.0 Timer0 模块 ............................................................................................................................................................................... 99 6.0 带门控的 Timer1 模块 .............................................................................................................................................................. 102 7.0 Timer2 模块 ............................................................................................................................................................................. 107 8.0 比较器模块 .............................................................................................................................................................................. 109 9.0 可寻址通用同步 / 异步收发器 (AUSART) ............................................................................................................................ 121 10.0 液晶显示 (LCD)驱动模块 .................................................................................................................................................... 143 11.0 可编程低电压检测 (PLVD)模块 .......................................................................................................................................... 171 12.0 模数转换器 (ADC)模块 ....................................................................................................................................................... 175 13.0 数据 EEPROM 和闪存程序存储器控制 .................................................................................................................................... 187 14.0 SSP 模块概述 .......................................................................................................................................................................... 193 15.0 捕捉 / 比较 /PWM (CCP)模块 ............................................................................................................................................. 211 16.0 CPU 的特性 ............................................................................................................................................................................. 219 17.0 指令集综述 ............................................................................................................................................................................. 241 18.0 开发支持 .................................................................................................................................................................................. 251 19.0 电气规范 ................................................................................................................................................................................. 255 20.0 DC 和 AC 特性图表 ................................................................................................................................................................ 283 21.0 封装信息 .................................................................................................................................................................................. 305 附录 A: 数据手册版本历史 ......................................................................................................................................................... 315 附录 B: 从其他 PIC® 器件移植 ................................................................................................................................................. 315 附录 C: 转换注意事项 ................................................................................................................................................................ 316 Microchip 网站 ................................................................................................................................................................................... 325 变更通知客户服务 ............................................................................................................................................................................. 325 客户支持 ............................................................................................................................................................................................ 325 读者反馈表 ....................................................................................................................................................................................... 326 产品标识体系 .................................................................................................................................................................................... 327 全球销售及服务网点.......................................................................................................................................................................... 328 致客户 我们旨在提供最佳文档供客户正确使用 Microchip 产品。 为此,我们将不断改进出版物的内容和质量,使之更好地满足您的要求。 出版物的质量将随新文档及更新版本的推出而得到提升。 如果您对本出版物有任何问题和建议,请通过电子邮件联系我公司 TRC 经理,电子邮件地址为 [email protected],或将本 数据手册后附的 《读者反馈表》传真到 86-21-5407 5066。我们期待您的反馈。 最新数据手册 欲获得本数据手册的最新版本,请查询我公司的网站: http://www.microchip.com 查看数据手册中任意一页下边角处的文献编号即可确定其版本。 文献编号中数字串后的字母是版本号,例如:DS30000A 是 DS30000 的 A 版本。 勘误表 现有器件可能带有一份勘误表,描述了实际运行与数据手册中记载内容之间存在的细微差异以及建议的变通方法。 一旦我们了解到 器件 / 文档存在某些差异时,就会发布勘误表。 勘误表上将注明其所适用的硅片版本和文件版本。 欲了解某一器件是否存在勘误表,请通过以下方式之一查询: • Microchip 网站 http://www.microchip.com • 当地 Microchip 销售办事处 (见最后一页) 在联络销售办事处时,请说明您所使用的器件型号、硅片版本和数据手册版本 (包括文献编号)。 客户通知系统 欲及时获知 Microchip 产品的最新信息,请到我公司网站 www.microchip.com 上注册。 2007 Microchip Technology Inc. DS41250F_CN 第 13 页 PIC16F913/914/916/917/946 注: DS41250F_CN 第 14 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 1.0 器件概述 本数据手册涉及 PIC16F91X/946 系列的所有器件。器件有 28/40/44/64 引脚三类封装形式。图 1-1 给出了 PIC16F913/916 器件的框图,图 1-2 给出了 PIC16F914/917 器件的框图。图 1-3 给出了 PIC16F946 器件的框图,表 1-1 给出了其引脚配置说明。 图 1-1: PIC16F913/916 框图 INT 配置 13 8 数据总线 程序计数器 PORTA RA0 RA1 RA2 RA3 RA4 RA5 RA7 闪存 4K/8K x 14 程序 程序 总线 RAM 256/352 字节 文件 寄存器 8 级堆栈(13 位) 存储器 14 读程序存储器 (PMR) 9 RAM 地址 PORTB RB0 RB1 RB2 RB3 RB4 RB5 RB6 RB7 地址多路开关 指令寄存器 直接地址 7 8 间接 地址 FSR 寄存器 STATUS 寄存器 8 PORTC 3 指令 译码和 控制 振荡器 起振定时器 OSC1/CLKIN OSC2/CLKOUT ALU 上电 复位 时序 发生 RC0 RC1 RC2 RC3 RC4 RC5 RC6 RC7 MUX 上电延时 定时器 8 看门狗 定时器 W 寄存器 PORTE 欠压 复位 内部 振荡器 模块 RE3/MCLR VDD VSS 数据 EEPROM 256 字节 Timer0 Timer1 Timer2 10 位 A/D 比较器 CCP1 SSP 可寻址 USART 2007 Microchip Technology Inc. PLVD LCD DS41250F_CN 第 15 页 PIC16F913/914/916/917/946 图 1-2: PIC16F914/917 框图 INT 配置 13 8 数据总线 程序计数器 PORTA RA0 RA1 RA2 RA3 RA4 RA5 RA6 RA7 闪存 4K/8K x 14 程序 程序 总线 RAM 256/352 字节 文件 寄存器 8 级堆栈(13 位) 存储器 14 读程序存储器 (PMR) 9 RAM 地址 PORTB RB0 RB1 RB2 RB3 RB4 RB5 RB6 RB7 地址多路开关 指令寄存器 直接地址 7 8 间接 地址 FSR 寄存器 STATUS 寄存器 8 PORTC 3 上电延时 定时器 指令 译码和 控制 振荡器 起振定时器 OSC1/CLKIN OSC2/CLKOUT ALU 上电 复位 时序 发生 RC0 RC1 RC2 RC3 RC4 RC5 RC6 RC7 MUX 8 PORTD W 寄存器 看门狗 定时器 RD0 RD1 RD2 RD3 RD4 RD5 RD6 RD7 欠压 复位 内部 振荡器 模块 VDD VSS PORTE RE0 RE1 RE2 RE3/MCLR Timer0 比较器 DS41250F_CN 第 16 页 Timer1 CCP1 Timer2 CCP2 SSP 数据 EEPROM 256 字节 10 位 A/D 可寻址 USART PLVD LCD 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 图 1-3: PIC16F946 框图 INT PORTA 配置 13 程序计数器 RA0 RA1 RA2 RA3 RA4 RA5 RA6 RA7 8 数据总线 闪存 8K x 14 程序 程序 总线 RAM 336 x 8 字节 文件 寄存器 8 级堆栈(13 位) 存储器 14 读程序存储器 (PMR) 9 PORTB RB0 RB1 RB2 RB3 RB4 RB5 RB6 RB7 RAM 地址 地址多路开关 指令寄存器 直接地址 7 8 间接 地址 FSR 寄存器 上电延时 定时器 MUX PORTD 上电 复位 看门狗 定时器 时序 发生 内部 振荡器 模块 3 振荡器 起振定时器 OSC1/CLKIN OSC2/CLKOUT RC0 RC1 RC2 RC3 RC4 RC5 RC6 RC7 STATUS 寄存器 8 指令 译码和 控制 PORTC RD0 RD1 RD2 RD3 RD4 RD5 RD6 RD7 ALU 8 W 寄存器 欠压 复位 PORTE VDD RE0 RE1 RE2 RE3/MCLR RE4 RE5 RE6 RE7 VSS PORTF RF0 RF1 RF2 RF3 RF4 RF5 RF6 RF7 PORTG RG0 RG1 RG2 RG3 RG4 RG5 AVDD AVSS 比较器 Timer0 Timer1 Timer2 10 位 A/D CCP1 CCP2 SSP 可寻址 USART 2007 Microchip Technology Inc. 数据 EEPROM 256 字节 PLVD LCD DS41250F_CN 第 17 页 PIC16F913/914/916/917/946 表 1-1: PIC16F91X/946 引脚配置说明 名称 RA0/AN0/C1-/SEG12 RA1/AN1/C2-/SEG7 RA2/AN2/C2+/VREF-/COM2 RA3/AN3/C1+/VREF+/COM3(1)/ SEG15 功能 输入 类型 RA0 TTL AN0 AN C1- AN — SEG12 — AN RA1 TTL AN1 AN C2- AN — SEG7 — AN RA2 TTL AN2 AN C2+ AN — 比较器 2 同相输入。 VREF- AN — 外部 A/D 参考电压 — 负电压。 COM2 — AN RA3 TTL AN3 AN C1+ AN — 比较器 1 同相输入。 VREF+ AN — 外部参考电压 — 正电压。 LCD 模拟输出。 RA5/AN4/C2OUT/SS/SEG5 AN RA4 TTL 注 1: 2: 3: 4: ST — SEG4 — AN RA5 TTL AN4 AN — RA6 TTL OSC2 — CLKOUT — RB0/INT/SEG0 图注: — T0CKI SEG5 RA7/OSC1/CLKIN/T1OSI AN = 模拟输入或输出 TTL = TTL 兼容输入 HV = 高电压 LCD 模拟输出。 CMOS 通用 I/O。 CMOS 比较器 1 输出。 C1OUT — RA6/OSC2/CLKOUT/T1OSO LCD 模拟输出。 CMOS 通用 I/O。 — 模拟输入通道 3。 AN TTL T1OSO — RA7 TTL OSC1 XTAL 比较器 2 反相输入。 LCD 模拟输出。 CMOS 通用 I/O。 — 模拟输入通道 2 — SS 比较器 1 反相输入。 LCD 模拟输出。 CMOS 通用 I/O。 — 模拟输入通道 1 — C2OUT 说明 CMOS 通用 I/O。 — 模拟输入通道 0。 SEG15 COM3 RA4/C1OUT/T0CKI/SEG4 (1) 输出 类型 Timer0 时钟输入。 LCD 模拟输出。 CMOS 通用 I/O。 — 模拟输入通道 4。 CMOS 比较器 2 输出。 — 从模式选择输入。 AN LCD 模拟输出。 CMOS 通用 I/O。 XTAL 晶振 / 谐振器。 CMOS TOSC/4 参考时钟。 XTAL Timer1 振荡器输出。 CMOS 通用 I/O。 — 晶振 / 谐振器。 CLKIN ST — T1OSI XTAL — RB0 TTL INT ST SEG0 — 时钟输入。 Timer1 振荡器输入。 CMOS 通用 I/O。可单独使能其上拉功能。 — 外部中断引脚。 AN LCD 模拟输出。 CMOS = CMOS 兼容输入或输出 ST = CMOS 电平的施密特触发器输入 XTAL = 晶振 OD = 漏极开路 P = 电源 对于 PIC16F913/916, COM3 在 RA3 上;对于 PIC16F914/917 和 PIC16F946, COM3 在 RD0 上。 仅 PIC16F914/917 和 PIC16F946 器件才有的引脚。 仅 PIC16F946 才有的引脚。 I2C 施密特触发器输入有特定的输入电平。 DS41250F_CN 第 18 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 表 1-1: PIC16F91X/946 引脚配置说明 名称 RB1/SEG1 RB2/SEG2 RB3/SEG3 RB4/COM0 RB5/COM1 TTL SEG1 — RB2 TTL SEG2 — RB3 TTL SEG3 — RB4 TTL COM0 — RB5 TTL — TTL ICSPCLK ST 输出 类型 CMOS 通用 I/O。可单独使能其上拉功能。 AN LCD 模拟输出。 CMOS 通用 I/O。可单独使能其上拉功能。 AN LCD 模拟输出。 CMOS 通用 I/O。可单独控制电平变化中断。可单独使能其上拉功 能。 AN LCD 模拟输出。 CMOS 通用 I/O。可单独控制电平变化中断。可单独使能其上拉功 能。 AN LCD 模拟输出。 CMOS 通用 I/O。可单独控制电平变化中断。可单独使能其上拉功 能。 — ICSP™ 时钟。 ICDCK ST — — AN RB7 TTL ICSPDAT ST ICDDAT ST SEG13 — RC0 ST VLCD1 AN RC1 ST VLCD2 AN RC1/VLCD2 RC2/VLCD3 RC3/SEG6 RC4/T1G/SDO/SEG11 RC5/T1CKI/CCP1/SEG10 AN = 模拟输入或输出 TTL = TTL 兼容输入 HV = 高电压 RC2 ST VLCD3 AN RC3 ST SEG6 — RC4 ST T1G ST SDO — SEG11 — RC5 ST T1CKI ST CCP1 ST SEG10 — 说明 CMOS 通用 I/O。可单独使能其上拉功能。 AN LCD 模拟输出。 SEG14 RC0/VLCD1 1: 2: 3: 4: RB1 RB6 RB7/ICSPDAT/ICDDAT/SEG13 注 输入 类型 COM1 RB6/ICSPCLK/ICDCK/SEG14 图注: 功能 (续) ICD 时钟。 LCD 模拟输出。 CMOS 通用 I/O。可单独控制电平变化中断。可单独使能其上拉功 能。 CMOS ICSP 数据 I/O。 CMOS ICD 数据 I/O。 AN LCD 模拟输出。 CMOS 通用 I/O。 — LCD 模拟输入。 CMOS 通用 I/O。 — LCD 模拟输入。 CMOS 通用 I/O。 — LCD 模拟输入。 CMOS 通用 I/O。 AN LCD 模拟输出。 CMOS 通用 I/O。 — Timer1 门控信号输入。 CMOS 串行数据输出。 AN LCD 模拟输出。 CMOS 通用 I/O。 — Timer1 时钟输入。 CMOS 捕捉 1 输入 / 比较 1 输出 /PWM 1 输出。 AN LCD 模拟输出。 CMOS = CMOS 兼容输入或输出 ST = CMOS 电平的施密特触发器输入 XTAL = 晶振 OD = 漏极开路 P = 电源 对于 PIC16F913/916, COM3 在 RA3 上;对于 PIC16F914/917 和 PIC16F946, COM3 在 RD0 上。 仅 PIC16F914/917 和 PIC16F946 器件才有的引脚。 仅 PIC16F946 才有的引脚。 I2C 施密特触发器输入有特定的输入电平。 2007 Microchip Technology Inc. DS41250F_CN 第 19 页 PIC16F913/914/916/917/946 表 1-1: PIC16F91X/946 引脚配置说明 名称 RC6/TX/CK/SCK/SCL/SEG9 RC7/RX/DT/SDI/SDA/SEG8 RD0/COM3(1, 2) RD1(2) RD2/CCP2 (2) RD3/SEG16 (2) RD4/SEG17(2) RD5/SEG18(2) RD6/SEG19(2) RD7/SEG20(2) RE0/AN5/SEG21(2) RE1/AN6/SEG22(2) RE2/AN7/SEG23 (2) RE3/MCLR/VPP 图注: 注 1: 2: 3: 4: AN = 模拟输入或输出 TTL = TTL 兼容输入 HV = 高电压 功能 输入 类型 RC6 ST TX — CK ST SCK ST SCL ST(4) SEG9 — RC7 ST RX ST DT ST (续) 输出 类型 CMOS 通用 I/O。 CMOS USART 异步串行发送。 CMOS USART 同步串行时钟。 CMOS SPI 时钟。 OD I2C™ 时钟。 AN LCD 模拟输出。 CMOS 通用 I/O。 — USART 异步串行接收。 CMOS USART 同步串行数据。 CMOS SPI 数据输入。 SDI ST SDA ST(4) OD SEG8 — AN RD0 ST COM3 — RD1 ST RD2 ST CCP2 ST RD3 ST SEG16 — RD4 ST SEG17 — RD5 ST SEG18 — RD6 ST SEG19 — RD7 ST SEG20 — RE0 ST AN5 AN SEG21 — RE1 ST AN6 AN SEG22 — 说明 I2C™ 数据。 LCD 模拟输出。 CMOS 通用 I/O。 AN LCD 模拟输出。 CMOS 通用 I/O。 CMOS 通用 I/O。 CMOS 捕捉 2 输入 / 比较 2 输出 /PWM 2 输出。 CMOS 通用 I/O。 AN LCD 模拟输出。 CMOS 通用 I/O。 AN LCD 模拟输出。 CMOS 通用 I/O。 AN LCD 模拟输出。 CMOS 通用 I/O。 AN LCD 模拟输出。 CMOS 通用 I/O。 AN LCD 模拟输出。 CMOS 通用 I/O。 — 模拟输入通道 5。 AN LCD 模拟输出。 CMOS 通用 I/O。 — 模拟输入通道 6。 AN LCD 模拟输出。 RE2 ST AN7 AN CMOS 通用 I/O。 — 模拟输入通道 7。 SEG23 — AN LCD 模拟输出。 RE3 ST — 仅数字输入。 MCLR ST — 带内部上拉的主复位。 VPP HV — 编程电压。 CMOS = CMOS 兼容输入或输出 ST = CMOS 电平的施密特触发器输入 XTAL = 晶振 OD = 漏极开路 P = 电源 对于 PIC16F913/916, COM3 在 RA3 上;对于 PIC16F914/917 和 PIC16F946, COM3 在 RD0 上。 仅 PIC16F914/917 和 PIC16F946 器件才有的引脚。 仅 PIC16F946 才有的引脚。 I2C 施密特触发器输入有特定的输入电平。 DS41250F_CN 第 20 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 表 1-1: PIC16F91X/946 引脚配置说明 名称 RE4/SEG24(3) RE5/SEG25(3) RE6/SEG26(3) RE7/SEG27(3) RF0/SEG32(3) RF1/SEG33(3) RF2/SEG34(3) RF3/SEG35(3) RF4/SEG28(3) RF5/SEG29(3) RF6/SEG30(3) RF7/SEG31(3) RG0/SEG36(3) RG1/SEG37(3) RG2/SEG38(3) RG3/SEG39(3) RG4/SEG40(3) 功能 输入 类型 RE4 ST SEG24 — RE5 ST SEG25 — RE6 ST SEG26 — RE7 ST SEG27 — RF0 ST SEG32 — RF1 ST SEG33 — RF2 ST SEG34 — RF3 ST SEG35 — RF4 ST SEG28 — RF5 ST SEG29 — RF6 ST SEG30 — RF7 ST SEG31 — RG0 ST SEG36 — RG1 ST SEG37 — RG2 ST SEG38 — RG3 ST SEG39 — RG4 ST (续) 输出 类型 说明 CMOS 通用 I/O。 AN LCD 模拟输出。 CMOS 通用 I/O。 AN LCD 模拟输出。 CMOS 通用 I/O。 AN LCD 模拟输出。 CMOS 通用 I/O。 AN LCD 模拟输出。 CMOS 通用 I/O。 AN LCD 模拟输出。 CMOS 通用 I/O。 AN LCD 模拟输出。 CMOS 通用 I/O。 AN LCD 模拟输出。 CMOS 通用 I/O。 AN LCD 模拟输出。 CMOS 通用 I/O。 AN LCD 模拟输出。 CMOS 通用 I/O。 AN LCD 模拟输出。 CMOS 通用 I/O。 AN LCD 模拟输出。 CMOS 通用 I/O。 AN LCD 模拟输出。 CMOS 通用 I/O。 AN LCD 模拟输出。 CMOS 通用 I/O。 AN LCD 模拟输出。 CMOS 通用 I/O。 AN LCD 模拟输出。 CMOS 通用 I/O。 AN LCD 模拟输出。 CMOS 通用 I/O。 AN LCD 模拟输出。 SEG10 — RG5 ST SEG41 — AVDD(3) AVDD P — 单片机模拟电源。 AVSS(3) AVSS P — 单片机模拟接地参考点。 VDD VDD P — 单片机电源。 RG5/SEG41(3) 图注: 注 1: 2: 3: 4: AN = 模拟输入或输出 TTL = TTL 兼容输入 HV = 高电压 CMOS 通用 I/O。 AN LCD 模拟输出。 CMOS = CMOS 兼容输入或输出 ST = CMOS 电平的施密特触发器输入 XTAL = 晶振 OD = 漏极开路 P = 电源 对于 PIC16F913/916, COM3 在 RA3 上;对于 PIC16F914/917 和 PIC16F946, COM3 在 RD0 上。 仅 PIC16F914/917 和 PIC16F946 器件才有的引脚。 仅 PIC16F946 才有的引脚。 I2C 施密特触发器输入有特定的输入电平。 2007 Microchip Technology Inc. DS41250F_CN 第 21 页 PIC16F913/914/916/917/946 表 1-1: PIC16F91X/946 引脚配置说明 名称 VSS 图注: 注 1: 2: 3: 4: AN = 模拟输入或输出 TTL = TTL 兼容输入 HV = 高电压 (续) 功能 输入 类型 输出 类型 VSS P — 说明 单片机接地参考点。 CMOS = CMOS 兼容输入或输出 ST = CMOS 电平的施密特触发器输入 XTAL = 晶振 OD = 漏极开路 P = 电源 对于 PIC16F913/916, COM3 在 RA3 上;对于 PIC16F914/917 和 PIC16F946, COM3 在 RD0 上。 仅 PIC16F914/917 和 PIC16F946 器件才有的引脚。 仅 PIC16F946 才有的引脚。 I2C 施密特触发器输入有特定的输入电平。 DS41250F_CN 第 22 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 图 2-2: 2.0 存储器构成 2.1 程序存储器构成 pc<12:0> PIC16F91X/946 系列单片机具有 13 位程序计数器,可以 对 PIC16F913/914 器件的 4K x 14 的程序存储器空间(地 址为 0000h-0FFFh)和 PIC16F916/917 和 PIC16F946 器 件的 8K x 14 的程序存储器空间(地址为 0000h-1FFFh) 进行寻址。访问 PIC16F913 和 PIC16F914 器件存储边界 外的单元将导致实际访问存储器的第一个4K x 14存储空 间。复位向量地址为 0000h,中断向量地址为 0004h。 图 2-1: 堆栈深度 1 堆栈深度 2 堆栈深度 8 pc<12:0> 复位向量 0000h 中断向量 0004h 0005h 13 Page 0 堆栈深度 1 堆栈深度 2 片上 程序 存储器 堆栈深度 8 复位向量 Page 1 Page 2 0000h 片上 程序 存储器 0004h 0005h 07FFh 0800h 0FFFh 1000h Page 3 中断向量 13 CALL, RETURN RETFIE, RETLW PIC16F913/914 器件的程序 存储器映射和堆栈 CALL, RETURN RETFIE, RETLW PIC16F916/917/PIC16F946 的程序存储器映射和堆栈 17FFh 1800h 1FFFh Page 0 Page 1 07FFh 0800h 0FFFh 1000h 1FFFh 2007 Microchip Technology Inc. DS41250F_CN 第 23 页 PIC16F913/914/916/917/946 2.2 数据存储器构成 数据存储器被分为若干存储区,其中包含通用寄存器 (General Purpose Register,GPR)和特殊功能寄存器 (Special Function Register,SFR)。RP0 和 RP1 位为 存储区选择位。 RP1 RP0 0 0 → 选择 Bank 0 0 1 → 选择 Bank 1 1 0 → 选择 Bank 2 1 1 → 选择 Bank 3 每个存储区扩展到地址 7Fh (128 字节)。 每个存储区 中地址较低的单元被保留给特殊功能寄存器。在特殊功 能寄存器上方是通用寄存器,它们以静态 RAM 的方式 实现。所有实现的存储区均包含特殊功能寄存器。某些 经常使用的特殊功能寄存器还会从一个存储区映射到另 一个存储区,从而可减少代码开销和加快访问速度。 2.2.1 通用文件寄存器 在 PIC16F913/914 中通用寄存器是按 256 x 8 的形式实现 的,在 PIC16F916/917 器件中是 352 x 8,而在 PIC16F946 中则是 336 x 8。可直接访问每个寄存器或通过指针寄存器 (File Select Register, FSR)间接访问每个存储器 (见第 2.5 节 “间接寻址、INDF 和 FSR 寄存器”)。 2.2.2 特殊功能寄存器 特殊功能寄存器是 CPU 和外设模块用来控制所需的器 件操作的寄存器 (见表 2-1、 2-2、 2-3 和 2-4)。 这些 寄存器都为静态 RAM。 它们可被分成两类: 内核与外设。 本章仅讲述与 “内 核”有关的特殊功能寄存器。那些与外设功能部件的操 作有关的特殊功能寄存器将在相应的外设功能部件章节 中讲述。 DS41250F_CN 第 24 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 图 2-3: PIC16F913/916 特殊功能寄存器 间接地址 (1) TMR0 PCL STATUS FSR PORTA PORTB PORTC PORTE PCLATH INTCON PIR1 PIR2 TMR1L TMR1H T1CON TMR2 T2CON SSPBUF SSPCON CCPR1L CCPR1H CCP1CON RCSTA TXREG RCREG ADRESH ADCON0 文件 寄存器 地址 00h 01h 02h 03h 04h 05h 06h 07h 08h 09h 0Ah 0Bh 0Ch 0Dh 0Eh 0Fh 10h 11h 12h 13h 14h 15h 16h 17h 18h 19h 1Ah 1Bh 1Ch 1Dh 1Eh 1Fh 20h 文件 寄存器 地址 80h 间接地址 (1) OPTION_REG 81h PCL 82h STATUS 83h FSR 84h TRISA 85h TRISB 86h TRISC 87h 88h TRISE 89h PCLATH 8Ah INTCON 8Bh PIE1 8Ch PIE2 8Dh PCON 8Eh OSCCON 8Fh OSCTUNE 90h ANSEL 91h PR2 92h SSPADD 93h SSPSTAT 94h WPUB 95h IOCB 96h CMCON1 97h TXSTA 98h SPBRG 99h 9Ah 9Bh CMCON0 9Ch VRCON 9Dh ADRESL 9Eh ADCON1 9Fh A0h 通用 寄存器 96 字节 7Fh Bank 0 间接地址 (1) TMR0 PCL STATUS FSR WDTCON PORTB LCDCON LCDPS LVDCON PCLATH INTCON EEDATL EEADRL EEDATH EEADRH LCDDATA0 LCDDATA1 LCDDATA3 LCDDATA4 LCDDATA6 LCDDATA7 LCDDATA9 LCDDATA10 LCDSE0 LCDSE1 通用 寄存器 通用 寄存器 80 字节 80 字节 EFh 快速操作存储区 F0h 70h-7Fh FFh Bank 1 文件 寄存器 地址 100h 101h 102h 103h 104h 105h 106h 107h 108h 109h 10Ah 10Bh 10Ch 10Dh 10Eh 10Fh 110h 111h 112h 113h 114h 115h 116h 117h 118h 119h 11Ah 11Bh 11Ch 11Dh 11Eh 11Fh 120h 16Fh 快速操作存储区 170h 70h-7Fh 17Fh Bank 2 间接地址 (1) OPTION_REG PCL STATUS FSR TRISB PCLATH INTCON EECON1 EECON2(1) 保留 保留 文件 寄存器 地址 180h 181h 182h 183h 184h 185h 186h 187h 188h 189h 18Ah 18Bh 18Ch 18Dh 18Eh 18Fh 190h 通用 寄存器 (2) 96 字节 1EFh 快速操作存储区 1F0h 70h-7Fh 1FFh Bank 3 未实现的数据存储单元,读为 0。 注 1: 这不是物理寄存器。 2: 在 PIC16F913 器件上未实现的数据存储单元,读为 0。 2007 Microchip Technology Inc. DS41250F_CN 第 25 页 PIC16F913/914/916/917/946 图 2-4: PIC16F914/917 特殊功能寄存器 间接地址 (1) TMR0 PCL STATUS FSR PORTA PORTB PORTC PORTD PORTE PCLATH INTCON PIR1 PIR2 TMR1L TMR1H T1CON TMR2 T2CON SSPBUF SSPCON CCPR1L CCPR1H CCP1CON RCSTA TXREG RCREG CCPR2L CCPR2H CCP2CON ADRESH ADCON0 文件 寄存器 地址 00h 01h 02h 03h 04h 05h 06h 07h 08h 09h 0Ah 0Bh 0Ch 0Dh 0Eh 0Fh 10h 11h 12h 13h 14h 15h 16h 17h 18h 19h 1Ah 1Bh 1Ch 1Dh 1Eh 1Fh 20h 通用 寄存器 96 字节 7Fh Bank 0 文件 寄存器 地址 80h 间接地址 (1) OPTION_REG 81h PCL 82h STATUS 83h FSR 84h TRISA 85h TRISB 86h TRISC 87h TRISD 88h TRISE 89h PCLATH 8Ah INTCON 8Bh PIE1 8Ch PIE2 8Dh PCON 8Eh OSCCON 8Fh OSCTUNE 90h ANSEL 91h PR2 92h SSPADD 93h SSPSTAT 94h WPUB 95h IOCB 96h CMCON1 97h TXSTA 98h SPBRG 99h 9Ah 9Bh CMCON0 9Ch VRCON 9Dh ADRESL 9Eh ADCON1 9Fh A0h 间接地址 (1) TMR0 PCL STATUS FSR WDTCON PORTB LCDCON LCDPS LVDCON PCLATH INTCON EEDATL EEADRL EEDATH EEADRH LCDDATA0 LCDDATA1 LCDDATA2 LCDDATA3 LCDDATA4 LCDDATA5 LCDDATA6 LCDDATA7 LCDDATA8 LCDDATA9 LCDDATA10 LCDDATA11 LCDSE0 LCDSE1 LCDSE2 通用 寄存器 通用 寄存器 80 字节 80 字节 EFh 快速操作存储区 F0h 70h-7Fh FFh Bank 1 文件 寄存器 地址 100h 101h 102h 103h 104h 105h 106h 107h 108h 109h 10Ah 10Bh 10Ch 10Dh 10Eh 10Fh 110h 111h 112h 113h 114h 115h 116h 117h 118h 119h 11Ah 11Bh 11Ch 11Dh 11Eh 11Fh 120h 16Fh 快速操作存储区 170h 70h-7Fh 17Fh Bank 2 文件 寄存器 地址 180h 间接地址 (1) OPTION_REG 181h PCL 182h STATUS 183h FSR 184h 185h TRISB 186h 187h 188h 189h PCLATH 18Ah INTCON 18Bh EECON1 18Ch EECON2(1) 18Dh 18Eh 保留 18Fh 保留 190h 通用 寄存器 (2) 96 字节 1EFh 快速操作存储区 1F0h 70h-7Fh 1FFh Bank 3 未实现的数据存储单元,读为 0。 注 1: 这不是物理寄存器。 2: 在 PIC16F914 器件上未实现的数据存储单元,读为 0。 DS41250F_CN 第 26 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 图 2-5: PIC16F946 特殊功能寄存器 间接地址 (1) TMR0 PCL STATUS FSR PORTA PORTB PORTC PORTD PORTE PCLATH INTCON PIR1 PIR2 TMR1L TMR1H T1CON TMR2 T2CON SSPBUF SSPCON CCPR1L CCPR1H CCP1CON RCSTA TXREG RCREG CCPR2L CCPR2H CCP2CON ADRESH ADCON0 文件 寄存器 地址 00h 01h 02h 03h 04h 05h 06h 07h 08h 09h 0Ah 0Bh 0Ch 0Dh 0Eh 0Fh 10h 11h 12h 13h 14h 15h 16h 17h 18h 19h 1Ah 1Bh 1Ch 1Dh 1Eh 1Fh 20h 文件 寄存器 地址 80h 间接地址 (1) OPTION_REG 81h PCL 82h STATUS 83h FSR 84h TRISA 85h TRISB 86h TRISC 87h TRISD 88h TRISE 89h PCLATH 8Ah INTCON 8Bh PIE1 8Ch PIE2 8Dh PCON 8Eh OSCCON 8Fh OSCTUNE 90h ANSEL 91h PR2 92h SSPADD 93h SSPSTAT 94h WPUB 95h IOCB 96h CMCON1 97h TXSTA 98h SPBRG 99h 9Ah 9Bh CMCON0 9Ch VRCON 9Dh ADRESL 9Eh ADCON1 9Fh A0h 通用 寄存器 96 字节 7Fh Bank 0 间接地址 (1) TMR0 PCL STATUS FSR WDTCON PORTB LCDCON LCDPS LVDCON PCLATH INTCON EEDATL EEADRL EEDATH EEADRH LCDDATA0 LCDDATA1 LCDDATA2 LCDDATA3 LCDDATA4 LCDDATA5 LCDDATA6 LCDDATA7 LCDDATA8 LCDDATA9 LCDDATA10 LCDDATA11 LCDSE0 LCDSE1 LCDSE2 文件 寄存器 地址 100h 101h 102h 103h 104h 105h 106h 107h 108h 109h 10Ah 10Bh 10Ch 10Dh 10Eh 10Fh 110h 111h 112h 113h 114h 115h 116h 117h 118h 119h 11Ah 11Bh 11Ch 11Dh 11Eh 11Fh 120h 文件 寄存器 地址 180h 间接地址 (1) OPTION_REG 181h PCL 182h STATUS 183h FSR 184h TRISF 185h TRISB 186h TRISG 187h PORTF 188h PORTG 189h PCLATH 18Ah INTCON 18Bh EECON1 18Ch (1) EECON2 18Dh 18Eh 保留 18Fh 保留 LCDDATA12 190h LCDDATA13 191h LCDDATA14 192h LCDDATA15 193h LCDDATA16 194h LCDDATA17 195h LCDDATA18 196h LCDDATA19 197h LCDDATA20 198h LCDDATA21 199h LCDDATA22 19Ah LCDDATA23 19Bh LCDSE3 19Ch LCDSE4 19Dh LCDSE5 19Eh 19Fh 1A0h 通用 寄存器 通用 寄存器 通用 寄存器 80 字节 80 字节 80 字节 EFh 快速操作存储区 F0h 70h-7Fh FFh Bank 1 16Fh 170h 快速操作存储区 70h-7Fh 17Fh Bank 2 1EFh 快速操作存储区 1F0h 70h-7Fh 1FFh Bank 3 未实现的数据存储单元,读为 0。 注 1: 这不是物理寄存器。 2007 Microchip Technology Inc. DS41250F_CN 第 27 页 PIC16F913/914/916/917/946 表 2-1: 地址 PIC16F91X/946 BANK 0 内的特殊功能寄存器汇总 名称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 上电复位与欠 压复位时的值 所在页 Bank 0 00h INDF 使用 FSR 的内容对数据存储器进行寻址来寻址此单元 (非物理寄存器) xxxx xxxx 41,226 01h TMR0 Timer0 模块寄存器 xxxx xxxx 99,226 02h PCL 程序计数器 (PC)的低字节 0000 0000 40,226 03h STATUS 04h FSR 05h PORTA RA7 06h PORTB RB7 07h PORTC RC7 RC6 RC5 RC4 08h PORTD(2) RD7 RD6 RD5 RD4 RE4(3) RE3 IRP RP1 RP0 TO PD Z DC C 0001 1xxx 32,226 xxxx xxxx 41,226 RA6 RA5 RA4 RA3 RA2 RA1 RA0 xxxx xxxx 44,226 RB6 RB5 RB4 RB3 RB2 RB1 RB0 xxxx xxxx 54,226 RC3 RC2 RC1 RC0 xxxx xxxx 62,226 RD3 RD2 RD1 RD0 xxxx xxxx 71,226 RE2(2) RE1(2) RE0(2) xxxx xxxx 76,226 间接数据存储器地址指针 09h PORTE RE7(3) RE6(3) RE5(3) 0Ah PCLATH — — — 0Bh INTCON GIE PEIE T0IE 程序计数器高 5 位的写缓冲器 INTE RBIE T0IF INTF RBIF ---0 0000 40,226 0000 000x 34,226 0Ch PIR1 EEIF ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 0000 0000 37,226 0Dh PIR2 OSFIF C2IF C1IF LCDIF — LVDIF —- CCP2IF(2) 0000 -0-0 38,226 0Eh TMR1L 16 位 TMR1 低字节的保持寄存器 xxxx xxxx 102,226 0Fh TMR1H 16 位 TMR1 高字节的保持寄存器 xxxx xxxx 102,226 10h T1CON 105,226 11h TMR2 12h T2CON 13h SSPBUF 14h SSPCON 15h CCPR1L 16h CCPR1H 17h CCP1CON 18h RCSTA 19h TXREG 1Ah RCREG 1Bh(2) CCPR2L 1Ch(2) CCPR2H 捕捉 / 比较 /PWM 寄存器 2 (MSB) 1Dh(2) CCP2CON 1Eh ADRESH 1Fh ADCON0 图注: 注 1: 2: 3: T1GINV TMR1GE T1CKPS1 T1CKPS0 T1OSCEN T1SYNC TMR1CS TMR1ON 0000 0000 0000 0000 107,226 TOUTPS2 TOUTPS1 TOUTPS0 TMR2ON T2CKPS1 T2CKPS0 -000 0000 108,226 xxxx xxxx 196,226 SSPM3 SSPM2 SSPM1 SSPM0 0000 0000 195,226 捕捉 / 比较 /PWM 寄存器 1 (LSB) xxxx xxxx 213,226 捕捉 / 比较 /PWM 寄存器 1 (MSB) xxxx xxxx 213,226 Timer2 模块寄存器 — TOUTPS3 同步串行端口接收缓冲器 / 发送寄存器 WCOL SSPOV SSPEN CKP — — CCP1X CCP1Y CCP1M3 CCP1M2 CCP1M1 CCP1M0 --00 0000 212,226 SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 0000 000x 131,226 USART 发送数据寄存器 0000 0000 130,226 USART 接收数据寄存器 0000 0000 128,227 捕捉 / 比较 /PWM 寄存器 2 (LSB) xxxx xxxx 213,227 — — xxxx xxxx 213,227 CCP2X CCP2Y CCP2M3 CCP2M2 CCP2M1 CCP2M0 --00 0000 212,227 xxxx xxxx 182,227 VCFG0 CHS2 CHS1 CHS0 GO/DONE ADON 0000 0000 180,227 A/D 结果寄存器高字节 ADFM VCFG1 - = 未实现单元 (读为 0), u = 不变, x = 未知, q = 取值根据条件而定,阴影单元 = 未实现 其他 (非上电)复位包括正常工作期间的 MCLR 复位和看门狗定时器复位 。 仅在 PIC16F914/917 和 PIC16F946 器件上可用,而在 PIC16F913/916 器件上强制为 0。 仅在 PIC16F946 器件上可用,而在 PIC16F91X 器件上强制为 0。 DS41250F_CN 第 28 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 表 2-2: 地址 PIC16F91X/946 BANK 1 内的特殊功能寄存器汇总 名称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 PS1 PS0 上电复位与欠 压复位时的值 所在页 xxxx xxxx 41,226 1111 1111 33,227 Bank 1 80h INDF 81h OPTION_REG 82h PCL 83h STATUS 使用 FSR 的内容对数据存储器进行寻址来寻址此单元 (非物理寄存器) RBPU INTEDG T0CS T0SE PSA PS2 程序计数器 (PC)的低字节 84h FSR 85h TRISA IRP RP1 TRISA6 40,226 32,226 RP0 TO PD Z DC C 0001 1xxx xxxx xxxx 41,226 TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA0 1111 1111 44,227 间接数据存储器地址指针 TRISA7 0000 0000 86h TRISB TRISB7 TRISB6 TRISB5 TRISB4 TRISB3 TRISB2 TRISB1 TRISB0 1111 1111 54,227 87h TRISC TRISC7 TRISC6 TRISC5 TRISC4 TRISC3 TRISC2 TRISC1 TRISC0 1111 1111 62,227 88h TRISD(3) TRISD7 TRISD6 TRISD5 TRISD4 TRISD3 TRISD2 TRISD1 TRISD0 1111 1111 71,227 89h TRISE 8Ah PCLATH TRISE7(2) TRISE6(2) TRISE5(2) TRISE4(2) TRISE3(5) TRISE2(3) TRISE1(3) TRISE0(3) — — — 程序计数器高 5 位的写缓冲器 1111 1111 76,227 ---0 0000 40,226 8Bh INTCON GIE PEIE T0IE INTE RBIE T0IF INTF RBIF 0000 000x 34,226 8Ch PIE1 EEIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 35,227 8Dh PIE2 OSFIE C2IE C1IE LCDIE — LVDIE — CCP2IE(3) 0000 -0-0 36,227 8Eh PCON — — — SBOREN — — POR BOR ---1 --qq 39,227 8Fh OSCCON — IRCF2 IRCF1 IRCF0 OSTS(4) HTS LTS SCS -110 q000 88,227 90h OSCTUNE 92,227 91h ANSEL 92h PR2 Timer2 周期寄存器 93h SSPADD 同步串行端口 (I2C 模式)地址寄存器 94h SSPSTAT 95h 96h — — — TUN4 TUN3 TUN2 TUN1 TUN0 ---0 0000 ANS7(3) ANS6(3) ANS5(3) ANS4 ANS3 ANS2 ANS1 ANS0 1111 1111 43,227 1111 1111 107,227 0000 0000 202,227 SMP CKE D/A P S R/W UA BF 0000 0000 194,227 WPUB WPUB7 WPUB6 WPUB5 WPUB4 WPUB3 WPUB2 WPUB1 WPUB0 1111 1111 55,227 IOCB IOCB7 IOCB6 IOCB5 IOCB4 — — — — 0000 ---- 54,227 — — — — — — T1GSS C2SYNC ---- --10 117,227 CSRC TX9 TXEN SYNC —- BRGH TRMT TX9D 0000 -010 130,227 SPBRG7 SPBRG6 SPBRG5 SPBRG4 SPBRG3 SPBRG2 SPBRG1 SPBRG0 0000 0000 132,227 — — 97h CMCON1 98h TXSTA 99h SPBRG 9Ah — 未实现 9Bh — 未实现 — — 0000 0000 116,227 9Ch CMCON0 9Dh VRCON 9Eh ADRESL 9Fh ADCON1 图注: 注 1: 2: 3: 4: 5: C2OUT C1OUT C2INV C1INV CIS CM2 CM1 CM0 VREN — VRR — VR3 VR2 VR1 VR0 A/D 结果寄存器低字节 — ADCS2 ADCS1 ADCS0 — — — — 0-0- 0000 118,227 xxxx xxxx 182,227 -000 ---- 181,227 - = 未实现单元 (读为 0), u = 不变, x = 未知, q = 取值根据条件而定,阴影单元 = 未实现 其他 (非上电)复位包括正常工作期间的 MCLR 复位和看门狗定时器复位 。 仅在 PIC16F946 器件上可用,而在 PIC16F91X 器件上强制为 0。 仅在 PIC16F914/917 和 PIC16F946 器件上可用,而在 PIC16F913/916 器件上强制为 0。 OSTS 位的值取决于器件配置字 (CONFIG)的值。请参见第 4.2 节 “振荡器控制”。 只读位; TRISE3 始终为 1。 2007 Microchip Technology Inc. DS41250F_CN 第 29 页 PIC16F913/914/916/917/946 表 2-3: 地址 PIC16F91X/946 BANK 2 内的特殊功能寄存器汇总 Bit 7 名称 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 上电复位与欠 压复位时的值 所在页 Bank 2 100h INDF 使用 FSR 的内容对数据存储器进行寻址来寻址此单元 (非物理寄存器) xxxx xxxx 41,226 101h TMR0 Timer0 模块寄存器 xxxx xxxx 99,226 102h PCL 程序计数器 (PC)的低字节 0000 0000 40,226 103h STATUS 32,226 104h FSR 105h WDTCON 106h PORTB 107h LCDCON 108h LCDPS 109h LVDCON IRP RP1 RP0 TO PD Z DC C 0001 1xxx xxxx xxxx 41,226 — WDTPS3 WDTPS2 WDTPS1 WDTPS0 SWDTEN ---0 1000 235,227 间接数据存储器地址指针 — — RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 xxxx xxxx 54,226 LCDEN SLPEN WERR VLCDEN CS1 CS0 LMUX1 LMUX0 0001 0011 145,227 WFT BIASMD LCDA WA LP3 LP2 LP1 LP0 0000 0000 146,227 — — IRVST LVDEN — LVDL2 LVDL1 LVDL0 --00 -100 145,228 ---0 0000 40,226 10Ah PCLATH — — — 10Bh INTCON GIE PEIE T0IE INTE RBIE T0IF INTF RBIF 0000 000x 34,226 10Ch EEDATL EEDATL7 EEDATL6 EEDATL5 EEDATL4 EEDATL3 EEDATL2 EEDATL1 EEDATL0 0000 0000 188,228 10Dh EEADRL EEADRL7 EEADRL6 EEADRL5 EEADRL4 EEADRL3 EEADRL2 EEADRL1 EEADRL0 0000 0000 188,228 EEDATH5 EEDATH4 EEDATH3 EEDATH2 EEDATH1 EEDATH0 --00 0000 188,228 10Eh EEDATH — 10Fh EEADRH — 程序计数器高 5 位的写缓冲器 EEADRH4 EEADRH3 EEADRH2 EEADRH1 EEADRH0 — — — ---0 0000 188,228 110h LCDDATA0 SEG7 COM0 SEG6 COM0 SEG5 COM0 SEG4 COM0 SEG3 COM0 SEG2 COM0 SEG1 COM0 SEG0 COM0 xxxx xxxx 147,228 111h LCDDATA1 SEG15 COM0 SEG14 COM0 SEG13 COM0 SEG12 COM0 SEG11 COM0 SEG10 COM0 SEG9 COM0 SEG8 COM0 xxxx xxxx 147,228 112h LCDDATA2(2) SEG23 COM0 SEG22 COM0 SEG21 COM0 SEG20 COM0 SEG19 COM0 SEG18 COM0 SEG17 COM0 SEG16 COM0 xxxx xxxx 147,228 113h LCDDATA3 SEG7 COM1 SEG6 COM1 SEG5 COM1 SEG4 COM1 SEG3 COM1 SEG2 COM1 SEG1 COM1 SEG0 COM1 xxxx xxxx 147,228 114h LCDDATA4 SEG15 COM1 SEG14 COM1 SEG13 COM1 SEG12 COM1 SEG11 COM1 SEG10 COM1 SEG9 COM1 SEG8 COM1 xxxx xxxx 147,228 115h LCDDATA5(2) SEG23 COM1 SEG22 COM1 SEG21 COM1 SEG20 COM1 SEG19 COM1 SEG18 COM1 SEG17 COM1 SEG16 COM1 xxxx xxxx 147,228 116h LCDDATA6 SEG7 COM2 SEG6 COM2 SEG5 COM2 SEG4 COM2 SEG3 COM2 SEG2 COM2 SEG1 COM2 SEG0 COM2 xxxx xxxx 147,228 117h LCDDATA7 SEG15 COM2 SEG14 COM2 SEG13 COM2 SEG12 COM2 SEG11 COM2 SEG10 COM2 SEG9 COM2 SEG8 COM2 xxxx xxxx 147,228 118h LCDDATA8(2) SEG23 COM2 SEG22 COM2 SEG21 COM2 SEG20 COM2 SEG19 COM2 SEG18 COM2 SEG17 COM2 SEG16 COM2 xxxx xxxx 147,228 119h LCDDATA9 SEG7 COM3 SEG6 COM3 SEG5 COM3 SEG4 COM3 SEG3 COM3 SEG2 COM3 SEG1 COM3 SEG0 COM3 xxxx xxxx 147,228 11Ah LCDDATA10 SEG15 COM3 SEG14 COM3 SEG13 COM3 SEG12 COM3 SEG11 COM3 SEG10 COM3 SEG9 COM3 SEG8 COM3 xxxx xxxx 147,228 11Bh LCDDATA11(2) SEG23 COM3 SEG22 COM3 SEG21 COM3 SEG20 COM3 SEG19 COM3 SEG18 COM3 SEG17 COM3 SEG16 COM3 xxxx xxxx 147,228 11Ch LCDSE0(3) SE7 SE6 SE5 SE4 SE3 SE2 SE1 SE0 0000 0000 147,228 11Dh LCDSE1(3) SE15 SE14 SE13 SE12 SE11 SE10 SE9 SE8 0000 0000 147,228 SE23 SE22 SE21 SE20 SE19 SE18 SE17 SE16 0000 0000 147,228 — — 11Eh LCDSE2(2,3) 11Fh —- 图注: 注 1: 2: 3: – = 未实现单元 (读为 0), u = 不变, x = 未知, q = 取值根据条件而定,阴影单元 = 未实现 其他 (非上电)复位包括正常工作期间的 MCLR 复位和看门狗定时器复位 。 仅在 PIC16F914/917 和 PIC16F946 器件上可用。 此寄存器只能通过上电复位或欠压复位初始化,其他复位均不能改变它。 未实现 DS41250F_CN 第 30 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 表 2-4: PIC16F91X/946 BANK 3 内的特殊功能寄存器汇总 地址 Bit 7 名称 Bank 3 180h INDF 181h OPTION_REG 182h PCL 183h STATUS 184h FSR 185h TRISF(3) TRISF7 186h TRISB 187h Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 PS1 PS0 使用 FSR 的内容对数据存储器进行寻址来寻址此单元 (非物理寄存器) RBPU INTEDG T0CS T0SE PSA PS2 程序计数器 (PC)的低字节 IRP RP1 上电复位与欠 压复位时的值 所在页 xxxx xxxx 41,226 1111 1111 33,227 0000 0000 40,226 0001 1xxx 32,226 RP0 TO PD Z DC C xxxx xxxx 41,226 TRISF6 TRISF5 TRISF4 TRISF3 TRISF2 TRISF1 TRISF0 1111 1111 81,228 TRISB7 TRISB6 TRISB5 TRISB4 TRISB3 TRISB2 TRISB1 TRISB0 1111 1111 54,227 TRISG(3) — — TRISG5 TRISG4 TRISG3 TRISG2 TRISG1 TRISG0 --11 1111 84,228 188h PORTF(3) RF7 RF6 RF5 RF4 RF3 RF2 RF1 RF0 xxxx xxxx 81,228 189h PORTG(3) — — RG5 RG4 RG3 RG2 RG1 RG0 --xx xxxx 84,228 18Ah PCLATH — — — ---0 0000 40,226 18Bh INTCON GIE PEIE T0IE INTE RBIE T0IF INTF RBIF 0000 000x 34,226 EEPGD — — — WRERR WREN WR RD 0--- x000 189,229 ---- ---- 187 — — — — 间接数据存储器地址指针 18Ch EECON1 18Dh EECON2 程序计数器高 5 位的写缓冲器 EEPROM 控制寄存器 2 (非物理寄存器) 18Eh 18Fh — — 190h LCDDATA12(3) 191h LCDDATA13(3) 192h LCDDATA14(3) 193h LCDDATA15(3) 194h LCDDATA16(3) 195h LCDDATA17 (3) 196h 保留 保留 SEG31 COM0 SEG30 COM0 SEG29 COM0 SEG28 COM0 SEG27 COM0 SEG26 COM0 SEG25 COM0 SEG24 COM0 xxxx xxxx 147,228 SEG39 COM0 — SEG38 COM0 — SEG37 COM0 — SEG36 COM0 — SEG35 COM0 — SEG34 COM0 — 147,228 ---- --xx 147,228 SEG30 COM1 SEG38 COM1 SEG29 COM1 SEG37 COM1 SEG28 COM1 SEG36 COM1 SEG27 COM1 SEG35 COM1 SEG26 COM1 SEG34 COM1 SEG32 COM0 SEG40 COM0 SEG24 COM1 SEG32 COM1 xxxx xxxx SEG31 COM1 SEG39 COM1 SE33 COM0 SEG41 COM0 SEG25 COM1 SEG33 COM1 xxxx xxxx 147,228 xxxx xxxx 147,228 — — — — — — SEG41 COM1 SEG40 COM1 ---- --xx 147,228 LCDDATA18(3) SEG31 COM2 SEG30 COM2 SEG29 COM2 SEG28 COM2 SEG27 COM2 SEG26 COM2 SEG25 COM2 SEG24 COM2 xxxx xxxx 147,228 197h LCDDATA19(3) SEG37 COM2 — SEG36 COM2 — SEG35 COM2 — SEG34 COM2 — 147,228 LCDDATA21(3) LCDDATA22 SEG29 COM3 SEG37 COM3 SEG28 COM3 SEG36 COM3 SEG27 COM3 SEG35 COM3 SEG26 COM3 SEG34 COM3 147,228 19Ah SEG30 COM3 SEG38 COM3 xxxx xxxx (3) SEG31 COM3 SEG39 COM3 SEG32 COM2 SEG40 COM2 SEG24 COM3 SEG32 COM3 ---- --xx 199h SEG33 COM2 SEG41 COM2 SEG25 COM3 SEG33 COM3 147,228 LCDDATA20(3) SEG38 COM2 — xxxx xxxx 198h SEG39 COM2 — xxxx xxxx 147,228 19Bh LCDDATA23(3) — — — — — — SEG41 COM3 SEG40 COM3 ---- --xx 147,228 19Ch LCDSE3(2, 3) SE31 SE30 SE29 SE28 SE27 SE26 SE25 SE24 0000 0000 147,229 19Dh LCDSE4(2, 3) SE37 — SE36 — SE35 — SE34 — SE32 0000 0000 147,229 LCDSE5(2, 3) — SE38 — SE33 19Eh 19Fh SE39 — SE41 SE40 ---- --00 — 147,229 — 图注: 注 1: 2: 3: 未实现 – = 未实现单元 (读为 0), u = 不变, x = 未知, q = 取值根据条件而定,阴影单元 = 未实现 其他 (非上电)复位包括正常工作期间的 MCLR 复位和看门狗定时器复位 。 此寄存器只能通过上电复位或欠压复位初始化,其他复位均不能改变它。 仅在 PIC16F946 器件上可用。 2007 Microchip Technology Inc. DS41250F_CN 第 31 页 PIC16F913/914/916/917/946 2.2.2.1 STATUS 寄存器 例如,执行 CLRF STATUS 会清零该寄存器的高三位并 将 Z 位置 1。从而使 STATUS 寄存器的值为 000u u1uu (其中 u 表示未变化)。 如寄存器 2-1 所示, STATUS 寄存器包含: • ALU 的算术运算状态 • 复位状态 • 数据存储器 (SRAM)的存储区选择位 因此,建议仅使用 BCF、BSF、SWAPF 和 MOVWF 指令来 改变STATUS寄存器,因为这些指令不影响任何状态位。 欲知其他不会影响状态位的指令,请参见第 17.0 节 “指 令集综述”。 和任何其他寄存器一样,STATUS 寄存器也可以作为任 何指令的目标寄存器。如果一条影响 Z、 DC 或 C 位的 指令以 STATUS 寄存器作为目标寄存器,将禁止写这三 位。根据器件逻辑,这些位会被置 1 或清零。此外,也 不能写 TO 和 PD 位。因此,当执行一条把 STATUS 寄 存器作为目标寄存器的指令后,STATUS 寄存器的结果 可能和预想的不一样。 寄存器 2-1: R/W-0 IRP 注 1: 在减法运算中, C 和 DC 位分别作为借位 和半借位标志位。 STATUS:STATUS 寄存器 R/W-0 RP1 R/W-0 RP0 R-1 R-1 PD TO R/W-x R/W-x R/W-x Z DC(1) C(1) bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位, 读为 0 - n = 上电复位时的值 1=置1 0 = 清零 bit 7 IRP:寄存器存储区选择位 (用于间接寻址) 1 = Bank 2 和 Bank 3 (100h - 1FFh) 0 = Bank 0 和 Bank 1 (00h - FFh) bit 6-5 RP<1:0>:寄存器存储区选择位 (用于直接寻址) 00 = Bank 0 (00h-7Fh) 01 = Bank 1 (80h - FFh) 10 = Bank 2 (100h - 17Fh) 11 = Bank 3 (180h - 1FFh) bit 4 TO:超时状态位 1 = 上电后,执行了 CLRWDT 指令或 SLEEP 指令 0 = 发生 WDT 超时 bit 3 PD:掉电标志位 1 = 上电复位后或执行了 CLRWDT 指令 0 = 执行了 SLEEP 指令 bit 2 Z:零标志位 1 = 算术运算或逻辑运算的结果为零 0 = 算术运算或逻辑运算的结果不为零 bit 1 DC:半进位 / 借位位 (ADDWF、 ADDLW、 SUBLW 和 SUBWF 指令) (1) 1 = 结果的第 4 低位发生了进位 0 = 结果的第 4 低位未发生进位 bit 0 C:进位 / 借位位 (1) (ADDWF、 ADDLW、 SUBLW 和 SUBWF 指令) (1) 1 = 结果的最高位发生了进位 0 = 结果的最高位未发生进位 注 x = 未知 1: 对于借位,极性是相反的。减法是通过加上第二个操作数的二进制补码来实现的。对于移位指令 (RRF 和 RLF),此位的值来自源寄存器的最高位或最低位。 DS41250F_CN 第 32 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 2.2.2.2 OPTION 寄存器 注: 如寄存器2-2所示,OPTION寄存器是可读写的寄存器, 包含可对以下各项进行配置的各个配置位: • Timer0/WDT 预分频器 • 外部 RB0/INT 中断 • Timer0 要为 Timer0 寄存器指定 1:1 的预分频比, 应将 OPTION 寄存器的 PSA 位置 1,以将 预分频器分配给 WDT。请参见第 6.3 节 “Timer1 预分频器”。 • PORTB 上的弱上拉 寄存器 2-2: OPTION_REG:OPTION 寄存器 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0 bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位, 读为 0 - n = 上电复位时的值 1=置1 0 = 清零 bit 7 RBPU:PORTB 上拉使能位 1 = 禁止 PORTB 上拉 0 = 由 WPUB 寄存器中的各个位使能 PORTB 上拉 bit 6 INTEDG:中断边沿选择位 1 = 在 RB0/INT 引脚的上升沿触发中断 0 = 在 RB0/INT 引脚的下降沿触发中断 bit 5 T0CS:Timer0 时钟源选择位 1 = RA4/T0CKI 引脚上信号的跳变 0 = 内部指令周期时钟 (FOSC/4) bit 4 T0SE:Timer0 时钟源边沿选择位 1 = 在 RA4/T0CKI 引脚电平发生由高到低的跳变时递增 0 = 在 RA4/T0CKI 引脚电平发生由低到高的跳变时递增 bit 3 PSA:预分频器分配位 1 = 将预分频器分配给 WDT 0 = 将预分频器分配给 Timer0 模块 bit 2-0 PS<2:0>:预分频比选择位 位值 000 001 010 011 100 101 110 111 2007 Microchip Technology Inc. x = 未知 Timer0 分频比 WDT 分频比 1:2 1:4 1:8 1 : 16 1 : 32 1 : 64 1 : 128 1 : 256 1:1 1:2 1:4 1:8 1 : 16 1 : 32 1 : 64 1 : 128 DS41250F_CN 第 33 页 PIC16F913/914/916/917/946 2.2.2.3 INTCON 寄存器 注: INTCON 寄存器是可读写的寄存器,包含 TMR0 寄存器 溢出、PORTB 电平变化和外部 RB0/INT/SEG0 引脚中 断的各种允许和标志位。 寄存器 2-3: R/W-0 GIE 当有中断条件产生时,不管相应的中断允 许位或 INTCON 寄存器中的全局中断允许 位 GIE 的状态如何,中断标志位都将置 1。 用户软件应该在允许中断之前确保将相应 的中断标志位清零。 INTCON:中断控制寄存器 R/W-0 PEIE R/W-0 R/W-0 R/W-0 R/W-0 INTE RBIE(1) (2) T0IE T0IF R/W-0 R/W-x INTF RBIF bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位,读为 0 - n = 上电复位时的值 1=置1 0 = 清零 x = 未知 bit 7 GIE:全局中断允许位 1 = 允许所有未屏蔽的中断 0 = 禁止所有中断 bit 6 PEIE:外设中断允许位 1 = 允许所有未屏蔽的外设中断 0 = 禁止所有外设中断 bit 5 T0IE:Timer0 溢出中断允许位 1 = 允许 Timer0 中断 0 = 禁止 Timer0 中断 bit 4 INTE:RB0/INT 外部中断允许位 1 = 允许 RB0/INT 外部中断 0 = 禁止 RB0/INT 外部中断 bit 3 RBIE:PORTB 电平变化中断允许位 (1) 1 = 允许 PORTB 电平变化中断 0 = 禁止 PORTB 电平变化中断 bit 2 T0IF:Timer0 溢出中断标志位 (2) 1 = TMR0 寄存器已溢出 (必须由软件清零) 0 = TMR0 寄存器未溢出 bit 1 INTF:RB0/INT 外部中断标志位 1 = 发生了 RB0/INT 外部中断 (必须由软件清零) 0 = 未发生 RB0/INT 外部中断 bit 0 RBIF:PORTB 电平变化中断标志位 1 = 至少一个 PORTB 通用 I/O 引脚的电平状态发生了改变 (必须由软件清零) 0 = 没有一个 PORTB 通用 I/O 引脚的电平状态发生改变 注 1: 必须同时将 IOCB 寄存器中的相应位置 1。 2: 当 Timer0 计满返回时, T0IF 位置 1。复位时 Timer0 的状态不会改变,它应该在清零 T0IF 位之前被初始 化。 DS41250F_CN 第 34 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 2.2.2.4 PIE1 寄存器 PIE1 寄存器包含中断允许位,如寄存器 2-4 所示。 寄存器 2-4: 注: 要允许任何一个外设中断,必须将 INTCON 寄存器中的 PEIE 位置 1。 PIE1:外设中断允许寄存器 1 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 EEIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位,读为 0 - n = 上电复位时的值 1=置1 0 = 清零 bit 7 EEIE:EE 写完成中断允许位 1 = 允许 EE 写完成中断 0 = 禁止 EE 写完成中断 bit 6 ADIE:A/D 转换器 (ADC)中断允许位 1 = 允许 ADC 中断 0 = 禁止 ADC 中断 bit 5 RCIE:USART 接收中断允许位 1 = 允许 USART 接收中断 0 = 禁止 USART 接收中断 bit 4 TXIE:USART 发送中断允许位 1 = 允许 USART 发送中断 0 = 禁止 USART 发送中断 bit 3 SSPIE:同步串行端口 (SSP)中断允许位 1 = 允许 SSP 中断 0 = 禁止 SSP 中断 bit 2 CCP1IE:CCP1 中断允许位 1 = 允许 CCP1 中断 0 = 禁止 CCP1 中断 bit 1 TMR2IE:TMR2 与 PR2 匹配中断允许位 1 = 允许 Timer2 与 PR2 匹配中断 0 = 禁止 Timer2 与 PR2 匹配中断 bit 0 TMR1IE:Timer1 溢出中断允许位 1 = 允许 Timer1 溢出中断 0 = 禁止 Timer1 溢出中断 2007 Microchip Technology Inc. x = 未知 DS41250F_CN 第 35 页 PIC16F913/914/916/917/946 2.2.2.5 PIE2 寄存器 PIE2 寄存器包含中断允许位,如寄存器 2-5 所示。 寄存器 2-5: 注: 要允许任何一个外设中断,必须将 INTCON 寄存器中的 PEIE 位置 1。 PIE2:外设中断允许寄存器 2 R/W-0 R/W-0 R/W-0 R/W-0 U-0 R/W-0 U-0 R/W-0 OSFIE C2IE C1IE LCDIE — LVDIE — CCP2IE(1) bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位,读为 0 - n = 上电复位时的值 1=置1 0 = 清零 bit 7 OSFIE:振荡器故障中断允许位 1 = 允许振荡器故障中断 0 = 禁止振荡器故障中断 bit 6 C2IE:比较器 C2 中断允许位 1 = 允许比较器 C2 中断 0 = 禁止比较器 C2 中断 bit 5 C1IE:比较器 C1 中断允许位 1 = 允许比较器 C1 中断 0 = 禁止比较器 C1 中断 bit 4 LCDIE:LCD 模块中断允许位 1 = 允许 LCD 中断 0 = 禁止 LCD 中断 bit 3 未实现:读为 0 bit 2 LVDIE:低电压检测中断允许位 1 = 允许 LVD 中断 0 = 禁止 LVD 中断 bit 1 未实现:读为 0 bit 0 CCP2IE:CCP2 中断允许位 (1) 1 = 允许 CCP2 中断 0 = 禁止 CCP2 中断 注 x = 未知 1: 仅适用于 PIC16F914/PIC16F917/PIC16F946 器件。 DS41250F_CN 第 36 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 2.2.2.6 PIR1 寄存器 PIR1 寄存器包含中断允许位,如寄存器 2-6 所示。 寄存器 2-6: 注: 当有中断条件产生时,不管相应的中断允 许位或 INTCON 寄存器中的全局中断允许 位 GIE 状态如何,中断标志位都将置 1。用 户软件应该在允许中断之前确保将相应的 中断标志位清零。 PIR1:外设中断请求寄存器 1 R/W-0 R/W-0 R-0 R-0 R/W-0 R/W-0 R/W-0 R/W-0 EEIF ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位, 读为 0 - n = 上电复位时的值 1=置1 0 = 清零 bit 7 EEIF:EE 写操作中断标志位 1 = 写操作完成 (必须由软件清零) 0 = 写操作尚未完成或尚未启动 bit 6 ADIF:A/D 转换器中断标志位 1 = A/D 转换完成 (必须由软件清零) 0 = A/D 转换未完成或尚未启动 bit 5 RCIF:USART 接收中断标志位 1 = USART 接收缓冲器已满 (通过读 RCREG 清零) 0 = USART 接收缓冲器未满 bit 4 TXIF:USART 发送中断标志位 1 = USART 发送缓冲器为空 (通过写 TXREG 清零) 0 = USART 发送缓冲器已满 bit 3 SSPIF:同步串行端口 (SSP)中断标志位 1 = 发送 / 接收完成 (必须由软件清零) 0 = 等待发送 / 接收 bit 2 CCP1IF:CCP1 中断标志位 捕捉模式: 1 = 发生了 TMR1 寄存器捕捉 (必须由软件清零) 0 = 未发生 TMR1 寄存器捕捉 比较模式: 1 = 发生了 TMR1 寄存器比较匹配 (必须由软件清零) 0 = 未发生 TMR1 寄存器比较匹配 PWM 模式 在此模式下未使用 bit 1 TMR2IF:Timer2 与 PR2 匹配中断标志位 1 = 发生了 Timer2 与 PR2 的比较匹配 (必须由软件清零) 0 = 未发生 Timer2 与 PR2 的比较匹配 bit 0 TMR1IF:Timer1 溢出中断标志位 1 = TMR1 寄存器已溢出 (必须由软件清零) 0 = TMR1 寄存器未溢出 2007 Microchip Technology Inc. x = 未知 DS41250F_CN 第 37 页 PIC16F913/914/916/917/946 2.2.2.7 PIR2 寄存器 PIR2 寄存器包含中断标志位,如寄存器 2-7 所示。 寄存器 2-7: 注: 当有中断条件产生时,不管相应的中断允 许位或 INTCON 寄存器中的全局中断允许 位 GIE 的状态如何,中断标志位都将置 1。 用户软件应该在允许中断之前确保将相应 的中断标志位清零。 PIR2:外设中断请求寄存器 2 R/W-0 R/W-0 R/W-0 R/W-0 U-0 R/W-0 U-0 R/W-0 OSFIF C2IF C1IF LCDIF — LVDIF — CCP2IF(1) bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位,读为 0 - n = 上电复位时的值 1=置1 0 = 清零 x = 未知 bit 7 OSFIF:振荡器故障中断标志位 1 = 系统振荡器发生故障,时钟输入切换为 INTOSC (必须由软件清零) 0 = 系统时钟正常运行 bit 6 C2IF:比较器 C2 中断标志位 1 = 比较器输出 (C2OUT 位)发生了改变 (必须由软件请零) 0 = 比较器输出 (C2OUT 位)未发生改变 bit 5 C1IF:比较器 C1 中断标志位 1 = 比较器输出 (C1OUT 位)发生了改变 (必须由软件请零) 0 = 比较器输出 (C1OUT 位)未发生改变 bit 4 LCDIF:LCD 模块中断标志位 1 = 产生了 LCD 中断 0 = 未产生 LCD 中断 bit 3 未实现:读为 0 bit 2 LVDIF:低电压检测中断标志位 1 = 产生了 LVD 中断 0 = 未产生 LVD 中断 bit 1 未实现:读为 0 bit 0 CCP2IF:CCP2 中断标志位 (1) 捕捉模式: 1 = 发生了 TMR1 寄存器捕捉 (必须由软件清零) 0 = 未发生 TMR1 寄存器捕捉 比较模式: 1 = 发生了 TMR1 寄存器比较匹配 (必须由软件清零) 0 = 未发生 TMR1 寄存器比较匹配 PWM 模式: 在此模式下未使用 注 1: 仅适用于 PIC16F914/PIC16F917/PIC16F946 器件。 DS41250F_CN 第 38 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 2.2.2.8 PCON 寄存器 电源控制 (PCON)寄存器 (见表 16-2)包含区分以下 复位的标志位: • • • • 上电复位 (POR) 欠压复位 (BOR) 看门狗定时器复位 (WDT) 外部 MCLR 复位 PCON 寄存器也用于软件控制欠压复位的使能。 PCON 寄存器中的位如寄存器 2-8 所示。 寄存器 2-8: PCON:电源控制寄存器 U-0 U-0 U-0 R/W-1 U-0 U-0 R/W-0 R/W-x — — — SBOREN — — POR BOR bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位, 读为 0 - n = 上电复位时的值 1=置1 0 = 清零 bit 7-5 未实现:读为 0 bit 4 SBOREN:软件欠压复位使能位 (1) 1 = 使能欠压复位 0 = 禁止欠压复位 bit 3-2 未实现:读为 0 bit 1 POR:上电复位状态位 1 = 未发生上电复位 0 = 发生了上电复位 (必须在发生上电复位后由软件清零) bit 0 BOR:欠压复位状态位 1 = 未发生欠压复位 0 = 发生了欠压复位 (必须在发生上电复位或欠压复位后由软件清零) 注 x = 未知 1: 当配置字寄存器中的 BOREN<1:0> = 01 时,允许使用该位控制 BOR。 2007 Microchip Technology Inc. DS41250F_CN 第 39 页 PIC16F913/914/916/917/946 2.3 PCL 和 PCLATH 程序计数器(Program Counter,PC)为 13 位宽。它的 低字节来自可读写的 PCL 寄存器。高字节(PC<12:8>) 来自 PCLATH,不可直接读写。任何复位都将清零 PC。 图 2-6 给出了装载 PC 的两种情况。图 2-6 中上面的示例 给出了在写 PCL (PCLATH<4:0> → PCH)时,装载 PC 的过程。 图 2-6 中下面的示例给出了在执行 CALL 或 GOTO 指令(PCLATH<4:3> → PCH)时,装载 PC 的过 程。 图 2-6: 在不同情况下装载 PC PCH PCL 12 8 7 0 PC 8 PCLATH<4:0> 5 将 PCL 作为 目标寄存器 的指令 ALU 结果 PCLATH PCH 12 11 10 PCL 8 PC 1: 没有用于表示堆栈上溢或堆栈下溢条件 的状态位。 2: 没有称为 PUSH 或 POP 的指令或助记符。 这是在执行 CALL、 RETURN、 RETLW 和 RETFIE 指令或跳转到中断向量地址时发 生的操作。 2.4 程序存储器分页 所有 PIC16F91X/946 器件都能够寻址一块连续的 8 K 字 的程序存储区。 而 CALL 和 GOTO 指令仅提供 11 位的地 址,允许在任一 2K 的程序存储器页内进行跳转。当执行 CALL 或 GOTO 指令时,地址的高两位由 PCLATH<4:3> 提 供。当执行 CALL 或 GOTO 指令时,用户必须确保已正确 设置了页选择位,从而可以对想访问的程序存储器页进 行寻址。若执行了一条从 CALL 指令 (或中断)返回的 指令,将从堆栈弹出整个 13 位 PC。因此,执行 RETURN 指 令 (该 指 令 会 使 地 址 从 堆 栈 弹 出)不 需 要 操 作 PCLATH<4:3> 位。 注: 0 7 注 GOTO, CALL 2 PCLATH<4:3> 11 操作码 <10:0> PCLATH 2.3.1 相对跳转 相对跳转是通过向程序计数器加一个偏移量 (ADDWF PCL)实现的。 当通过使用相对跳转方法进行表读操作 时,要注意表地址是否超过了 PCL 的存储边界 (每块 256 个字节)。请参见应用笔记 AN556 “Implementing a Table Read”(DS00556)。 2.3.2 例 2-1 给出了调用程序存储器第 1 页中子程序的示例。 此例假设 PCLATH 寄存器由中断服务程序保存和恢复 (如果使用中断)。 例 2-1: 此堆栈作为循环缓冲器使用。 也就是说,压栈 8 次之 后,第 9 次压栈时进栈的数据将覆盖第 1 次压栈存储的 数据。而第 10 次压栈时进栈的数据将覆盖第 2 次压栈 存储的数据,依此类推。 DS41250F_CN 第 40 页 在 PAGE 0 中调用 PAGE 1 中的子程序 ORG 500h BCF PCLATH,4 BSF PCLATH,3 CALL SUB1_P1 : : ORG 900h 堆栈 PIC16F91X/946 系列器件有一个 8 级深 x 13 位宽的硬 件堆栈(见图 2-1 和图 2-2)。该堆栈既不占用程序存储 空间也不占用数据存储空间,且栈指针不能读写。当执 行 CALL 指令或由于中断导致程序跳转时, PC 的值会 被压入堆栈。当执行 RETURN、RETLW 或 RETFIE 指令 时, PC 值从堆栈弹出。PCLATH 的值不受压栈或出栈 操作的影响。 执行RETURN或RETFIE指令之后,PCLATH 寄存器的内容不变。要执行后续的子程序调 用或 GOTO 指令,用户必须重写 PCLATH 寄 存器。 ;Select page 1 ;(800h-FFFh) ;Call subroutine in ;page 1 (800h-FFFh) ;page 1 (800h-FFFh) SUB1_P1 : : RETURN ;called subroutine ;page 1 (800h-FFFh) ;return to ;Call subroutine ;in page 0 ;(000h-7FFh) 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 2.5 间接寻址、 INDF 和 FSR 寄存器 例 2-2: 间接寻址 MOVLW MOVWF BANKISEL NEXT CLRF INCF BTFSS GOTO CONTINUE INDF 寄存器不是物理寄存器。对 INDF 寄存器进行寻址 将导致间接寻址。 使用INDF寄存器可以实现间接寻址。任何使用INDF寄 存器的指令实际上访问的是由指针寄存器(FSR)所指 向的数据。间接读 INDF 本身会返回 00h。 而使用间接 寻址对 INDF 寄存器进行写操作将导致执行一个空操作 (虽然可能会影响状态位)。 有效的 9 位地址是通过连 接 8 位 FSR 寄存器和 STATUS 寄存器中的 IRP 位获得 的,如图 2-7 所示。 020h FSR 020h INDF FSR FSR,4 NEXT ;initialize pointer ;to RAM ;clear INDF register ;inc pointer ;all done? ;no clear next ;yes continue 例 2-2 给出了使用间接寻址清零 RAM 单元 020h-02Fh 的简单程序。 图 2-7: 直接 / 间接寻址 PIC16F91X/946 直接寻址 RP1 RP0 6 来自操作码 存储区选择 间接寻址 0 7 IRP 存储区选择 单元选择 00 01 10 指针寄存器 0 单元选择 11 00h 180h 数据 存储器 7Fh 1FFh Bank 0 注: Bank 1 Bank 2 Bank 3 欲知详细的存储器映射信息,请参见图 2-3 和图 2-4。 2007 Microchip Technology Inc. DS41250F_CN 第 41 页 PIC16F913/914/916/917/946 注: DS41250F_CN 第 42 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 3.0 I/O 端口 3.1 PIC16F913/914/916/917/946 系列器件包括多个 8 位端 口寄存器及其相应的 TRIS 寄存器和一个 4 位端口: • • • • • • • PORTA 和 TRISA PORTB 和 TRISB PORTC 和 TRISC PORTD 和 TRISD(1) PORTE 和 TRISE PORTF 和 TRISF(2) PORTG 和 TRISG(2) ANSEL 寄存器 ANSEL 寄存器 (寄存器 3-1)用于将 I/O 引脚的输入模 式配置为模拟模式。将相应的 ANSEL 位置 1 将导致 I/O 引脚上所有数字都被读为 0,且该引脚上的模拟功能可 以正常工作。 ANSEL 位的状态不会影响数字输出功能。TRIS 位清零 且 ANSEL 位置 1 的引脚仍将作为数字输出,但是输入 模式为模拟模式。这会导致在作用的端口上执行读-修 改-写指令时发生意外行为。 1: 仅适用于 PIC16F914/917 和 PIC16F946 器件。 注 2: 仅适用于 PIC16F946 器件。 所有 器件 均实 现了 PORTA、 PORTB、 PORTC 和 RE3/MCLR/VPP。仅 PIC16F914/917 和 PIC16F946 器 件实 现了 PORTD 和 RE<2:0> (PORTE) 。仅 PIC16F946 器件实现了 RE<7:4>(PORTE)、PORTF 和 PORTG。 寄存器 3-1: ANSEL:模拟选择寄存器 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 ANS7(2) ANS6(2) ANS5(2) ANS4 ANS3 ANS2 ANS1 ANS0 bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位,读为 0 - n = 上电复位时的值 1=置1 0 = 清零 bit 7-0 注 x = 未知 ANS<7:0>:模拟选择位 用于将 AN<7:0> 引脚分别设置为模拟或数字功能。 1 = 模拟输入。引脚被分配为模拟输入 (1)。 0 = 数字 I/O。引脚被分配为端口或是特殊功能。 1: 将引脚设置为模拟输入将自动禁止数字输入电路、弱上拉和引脚电平变化中断功能 (如果可用)。相应的 TRIS 位必须设置为输入模式以允许对引脚电压进行外部控制。 2: 仅适用于 PIC16F914/PIC16F917/PIC16F946 器件。 2007 Microchip Technology Inc. DS41250F_CN 第 43 页 PIC16F913/914/916/917/946 3.2 PORTA 和 TRISA 寄存器 即使在 PORTA 引脚用作模拟输入时,TRISA 寄存器仍 然控制 PORTA 引脚的方向。 当将 PORTA 引脚用作模 拟输入时,用户必须确保 TRISA 寄存器中的位保持为置 1 状态。配置为模拟输入的 I/O 引脚总是读为 0。 PORTA 是 8 位宽的双向端口。 它所对应的数据方向寄 存器是 TRISA(寄存器 3-3)。将 TRISA 的一个位置 1 (= 1)可以将相应的 PORTA 引脚配置为输入 (即,将 相应的输出驱动器置于高阻模式)。清零 TRISA 的一个 位 (= 0)可将相应的 PORTA 引脚配置为输出 (即, 将输出锁存器的内容输出到所选择的引脚)。例 3-1 说 明了如何初始化 PORTA。 注 可以将 PORTA 的五个引脚配置为模拟输入。 其中,在 器件上电时,RA5 和 RA<3:0> 被配置为模拟输入引脚, 用户必须对其进行重新配置才可将其用作普通 I/O 引 脚。这可以通过将相应的值写入 CMCON0 和 ANSEL 寄 存器来完成 (见例 3-1)。 例 3-1: BANKSEL CLRF BANKSEL MOVLW MOVWF CLRF MOVLW MOVWF 读 PORTA 寄存器(寄存器 3-2)读的是引脚的状态而写 该寄存器将会写入端口锁存器。 所有写操作都是读-修 改-写操作。 因此,写一个端口就意味着先读该端口的 引脚电平,修改读到的值,然后再将改好的值写入端口 数据锁存器。 寄存器 3-2: 1: 必须对 CMCON0 和 ANSEL 寄存器进行初 始化来将模拟通道配置为数字输入。 配置 为模拟输入的引脚将读为 0。 初始化 PORTA PORTA PORTA TRISA 07h CMCON0 ANSEL 0F0h TRISA ; ;Init PORTA ; ;Set RA<2:0> to ;digital I/O ;Make all PORTA digital I/O ;Set RA<7:4> as inputs ;and set RA<3:0> as outputs PORTA:PORTA 寄存器 R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x RA7 RA6 RA5 RA4 RA3 RA2 RA1 RA0 bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位,读为 0 - n = 上电复位时的值 1=置1 0 = 清零 bit 7-0 x = 未知 RA<7:0>:PORTA I/O 引脚位 1 = 端口引脚电平 >VIH 最小值。 0 = 端口引脚电平 <VIL 最大值。 寄存器 3-3: TRISA:PORTA 三态寄存器 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 TRISA7 TRISA6 TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA0 bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位,读为 0 - n = 上电复位时的值 1=置1 0 = 清零 bit 7-0 注 x = 未知 TRISA<7:0>:PORTA 三态控制位 1 = PORTA 引脚被配置为输入 (三态) 0 = PORTA 引脚被配置为输出 1: TRISA<7:6> 在 XT、 HS 和 LP 振荡器模式下总是读为 1。 DS41250F_CN 第 44 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 3.2.1 引脚说明及框图 每个PORTA引脚都与其他功能复用。这里将简要地描述 这些引脚和与它们复用的功能。 欲知有关各个功能的具 体信息,请参阅此数据手册中的相应章节。 3.2.1.1 RA0/AN0/C1-/SEG12 图 3-1 是该引脚的框图。 RA0 引脚可以被配置为以下功 能之一: • • • • 通用 I/O ADC 转换器的模拟输入 比较器 C1 的模拟输入 LCD 的模拟输出 图 3-1: RA0 的框图 数据总线 D 写 PORTA Q CK VDD Q 数据锁存器 D 写 TRISA Q CK I/O 引脚 VSS Q TRIS 锁存器 模拟输入或 SE12 和 LCDEN 读 TRISA SE12 和 LCDEN TTL 输入缓冲器 读 PORTA SEG12 SE12 和 LCDEN 到 A/D 转换器和比较器 2007 Microchip Technology Inc. DS41250F_CN 第 45 页 PIC16F913/914/916/917/946 3.2.1.2 RA1/AN1/C2-/SEG7 图 3-2 是该引脚的框图。RA1 引脚可以被配置为以下功 能之一: • • • • 通用 I/O ADC 转换器的模拟输入 比较器 C2 的模拟输入 LCD 的模拟输出 图 3-2: RA1 的框图 数据总线 写 PORTA D Q CK VDD Q 数据锁存器 D 写 TRISA Q CK I/O 引脚 VSS Q TRIS 锁存器 模拟输入或 SE7 和 LCDEN 读 TRISA SE7 和 LCDEN TTL 输入缓冲器 读 PORTA SEG7 SE7 和 LCDEN 到 A/D 转换器和比较器 DS41250F_CN 第 46 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 3.2.1.3 RA2/AN2/C2+/VREF-/COM2 图 3-3 是该引脚的框图。RA2 引脚可以被配置为以下功 能之一: • • • • • 通用 I/O ADC 转换器的模拟输入 比较器 C2 的模拟输入 ADC 转换器的参考电压输入 LCD 的模拟输出 图 3-3: RA2 的框图 数据总线 D 写 PORTA Q CK VDD Q 数据锁存器 D 写 TRISA Q CK I/O 引脚 VSS Q TRIS 锁存器 读 TRISA 模拟输入或 LCDEN 和 LMUX<1:0> = 1X LCDEN 和 LMUX<1:0> = 1X TTL 输入缓冲器 读 PORTA COM2 LCDEN 和 LMUX<1:0> = 1X 到 A/D 转换器和比较器 到 A/D 模块 VREF- 输入 2007 Microchip Technology Inc. DS41250F_CN 第 47 页 PIC16F913/914/916/917/946 3.2.1.4 RA3/AN3/C1+/VREF+/COM3/SEG15 图 3-4 是该引脚的框图。RA3 引脚可以被配置为以下功 能之一: • • • • • 通用输入 ADC 转换器的模拟输入 比较器 C1 的模拟输入 ADC 转换器的参考电压输入 LCD 的模拟输出 图 3-4: RA3 的框图 数据总线 写 PORTA D Q CK VDD Q 数据锁存器 Q D 写 TRISA CK I/O 引脚 VSS Q TRIS 锁存器 模拟输入或 LCDMODE_EN(2) 读 TRISA LCDMODE_EN(2) TTL 输入缓冲器 读 PORTA COM3(1) 或 SEG15 LCDMODE_EN(2) 到 A/D 转换器和比较器 到 A/D 模块 VREF+ 输入 注 1: 仅适用于 PIC16F913/916 器件。 2: 对于 PIC16F913/916, LCDMODE_EN = LCDEN 和 (SE15 或 LMUX<1:0> = 11)。 对于 PIC16F914/917 和 PIC16F946, LCDMODE_EN = LCDEN 和 SE15。 DS41250F_CN 第 48 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 3.2.1.5 RA4/C1OUT/T0CKI/SEG4 图 3-5 是该引脚的框图。RA4 引脚可以被配置为以下功 能之一: • • • • 通用 I/O 比较器 C1 的数字输出 Timer0 的时钟输入 LCD 的模拟输出 图 3-5: RA4 的框图 CM<2:0> = 110 或 101 C1OUT 数据总线 D Q 1 0 VDD 写 PORTA CK Q 数据锁存器 D I/O 引脚 Q VSS 写 TRISA CK Q TRIS 锁存器 SE4 和 LCDEN 读 TRISA SE4 和 LCDEN TTL 输入缓冲器 读 PORTA 施密特触发器 T0CKI SEG4 2007 Microchip Technology Inc. SE4 和 LCDEN SE4 和 LCDEN DS41250F_CN 第 49 页 PIC16F913/914/916/917/946 3.2.1.6 RA5/AN4/C2OUT/SS/SEG5 图 3-6 是该引脚的框图。RA5 引脚可以被配置为以下功 能之一: • • • • • 通用 I/O 比较器 C2 的数字输出 从选择输入 LCD 的模拟输出 ADC 转换器的模拟输入 图 3-6: RA5 的框图 CM<2:0> = 110 或 101 C2OUT 数据总线 写 PORTA D Q 1 0 VDD CK Q 数据锁存器 D 写 TRISA I/O 引脚 Q VSS CK Q TRIS 锁存器 读 TRISA 模拟输入或 SE5 和 LCDEN SE5 和 LCDEN TTL 输入缓冲器 读 PORTA 到 SS 输入 SE5 和 LCDEN SEG5 到 A/D 转换器 DS41250F_CN 第 50 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 3.2.1.7 RA6/OSC2/CLKOUT/T1OSO 图 3-7 是该引脚的框图。RA6 引脚可以被配置为以下功 能之一: • • • • 通用 I/O 连接晶振 / 谐振器 时钟输出 连接 Timer1 振荡器 图 3-7: RA6 的框图 FOSC = 1x1 CLKOUT(FOSC/4) 数据总线 D Q 来自 OSC1 振荡 电路 1 0 VDD 写 PORTA CK Q 数据锁存器 D 写 TRISA FOSC = 00x,010 或 T1OSCEN I/O 引脚 Q VSS CK Q TRIS 锁存器 FOSC = 00x,010 或 T1OSCEN TTL 输入缓冲器 读 TRISA 读 PORTA 2007 Microchip Technology Inc. DS41250F_CN 第 51 页 PIC16F913/914/916/917/946 3.2.1.8 RA7/OSC1/CLKIN/T1OSI 图 3-8 是该引脚的框图。RA7 引脚可以被配置为以下功 能之一: • • • • 通用 I/O 连接晶振 / 谐振器 时钟输入 连接 Timer1 振荡器 图 3-8: RA7 的框图 到 OSC2 数据总线 写 PORTA D 振荡 电路 FOSC = 011 Q CK Q VDD 数据锁存器 D 写 TRISA FOSC = 10x Q CK I/O 引脚 VSS Q FOSC = 10x TRIS 锁存器 TTL 输入缓冲器 读 TRISA 读 PORTA 表 3-1: 与 PORTA 相关的寄存器汇总 上电复位与欠 压复位时的值 所有其他 复位时的值 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 ADCON0 ADFM VCFG1 VCFG0 CHS2 CHS1 CHS0 GO/DONE ADON 0000 0000 0000 0000 ANSEL ANS7 ANS6 ANS5 ANS4 ANS3 ANS2 ANS1 ANS0 1111 1111 1111 1111 CMCON0 C2OUT C1OUT C2INV C1INV CIS CM2 CM1 CM0 0000 0000 0000 0000 CONFIG(1) CPD CP MCLRE PWRTE WDTE FOSC2 FOSC1 FOSC0 — — RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0 1111 1111 1111 1111 LCDEN SLPEN WERR VLCDEN CS1 CS0 LMUX1 LMUX0 0001 0011 0001 0011 名称 OPTION_REG LCDCON LCDSE0 SE7 SE6 SE5 SE4 SE3 SE2 SE1 SE0 0000 0000 uuuu uuuu LCDSE1 SE15 SE14 SE13 SE12 SE11 SE10 SE9 SE8 0000 0000 uuuu uuuu PORTA RA7 RA6 RA5 RA4 RA3 RA2 RA1 RA0 xxxx xxxx uuuu uuuu WCOL SSPOV SSPEN CKP SSPM3 SSPM2 SSPM1 SSPM0 0000 0000 0000 0000 T1GINV TMR1GE T1SYNC TMR1CS TMR1ON 0000 0000 uuuu uuuu TRISA7 TRISA6 TRISA2 TRISA1 TRISA0 1111 1111 1111 1111 SSPCON T1CON TRISA 图注: 注 1: T1CKPS1 T1CKPS0 T1OSCEN TRISA5 TRISA4 TRISA3 x = 未知, u = 不变, - = 未实现单元 (读为 0)。 PORTA 不使用阴影单元。 所有寄存器位的操作请参见配置字寄存器 (CONFIG)。 DS41250F_CN 第 52 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 3.3 PORTB 和 TRISB 寄存器 PORTB 是 8 位双向 I/O 端口。 所有 PORTB 引脚都具有 弱上拉功能,其中 PORTB<7:4> 还具有在输入电平发生 改变时产生中断的功能。 PORTB 也用作串行闪存编程接口和 ICD 接口。 例 3-2: BANKSEL CLRF BANKSEL MOVLW MOVWF 初始化 PORTB PORTB PORTB TRISB 0FFh TRISB ; ;Init PORTB ; ;Set RB<7:0> as inputs ; 3.4 其他 PORTB 引脚功能 RB<7:6> 可分别用作器件在串行编程和在线调试时的数 据和时钟信号。并且可以将 RB0 配置为外部中断输入。 3.4.1 弱上拉 每个 PORTB 引脚都有各自的可配置内部弱上拉。 控制 位 WPUB<7:0> 使能或禁止每个弱上拉。 参见寄存器 3-7。 当将端口引脚配置为输出时,其弱上拉会自动切 断。在上电复位时,弱上拉由OPTION寄存器中的RBPU 位禁止。 3.4.2 电平变化中断 四个 PORTB 引脚可以被分别配置为电平变化中断引 脚。控制位 IOCB<7:4> 为每个引脚允许或禁止该中断功 能。 参见寄存器 3-6。 上电复位时禁止引脚上的电平变 化中断功能。 对于已允许电平变化中断的引脚,则将该引脚上的值与 上次读 PORTB 时锁存的旧值进行比较。 将与上次读操 作 “不 匹 配”的 输 出 一 起 进 行 逻 辑 或 运 算,以 便 将 INTCON 寄存器中的 PORTB 电平变化中断标志位 (RBIF)置 1 (寄存器 2-3)。 该中断可将器件从休眠中唤醒。 用户可在中断服务程序 中通过以下方式清除中断: a) b) 对 PORTB 进行读或写操作。 这将结束电平不匹 配条件。 将标志位 RBIF 清零。 电平不匹配条件会继续将 RBIF 标志位置 1。 读或写 PORTB将结束这种不匹配条件并允许将标志位 RBIF清 零。锁存器将保持最后一次读取的值而不受 MCLR 和欠 压复位的影响。在这些复位之后,如果出现电平不匹 配, RBIF 标志位将继续被置 1。 注: 2007 Microchip Technology Inc. 如果在执行读操作时(Q2 周期的开始)I/O 引脚的电平发生变化,则 RBIF 中断标志位 不会被置 1。 此外,由于对端口的读或写影 响到该端口的所有位,所以在电平变化中 断模式下使用多个引脚的时候必须特别小 心。 在处理一个引脚电平变化的时候可能 不会注意到另一个引脚上的电平变化。 DS41250F_CN 第 53 页 PIC16F913/914/916/917/946 寄存器 3-4: PORTB:PORTB 寄存器 R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位,读为 0 - n = 上电复位时的值 1=置1 0 = 清零 bit 7-0 x = 未知 RB<7:0>:PORTB I/O 引脚位 1 = 端口引脚电平 >VIH 最小值。 0 = 端口引脚电平 <VIL 最大值。 寄存器 3-5: TRISB:PORTB 三态寄存器 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 TRISB7 TRISB6 TRISB5 TRISB4 TRISB3 TRISB2 TRISB1 TRISB0 bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位,读为 0 - n = 上电复位时的值 1=置1 0 = 清零 bit 7-0 x = 未知 TRISB<7:0>:PORTB 三态控制位 1 = PORTB 引脚被配置为输入 (三态) 0 = PORTB 引脚被配置为输出 寄存器 3-6: IOCB:PORTB 电平变化中断寄存器 R/W-0 R/W-0 R/W-0 R/W-0 U-0 U-0 U-0 U-0 IOCB7 IOCB6 IOCB5 IOCB4 — — — — bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位,读为 0 - n = 上电复位时的值 1=置1 0 = 清零 bit 7-4 IOCB<7:4>:电平变化中断位 1 = 允许电平变化中断 0 = 禁止电平变化中断 bit 3-0 未实现:读为 0 DS41250F_CN 第 54 页 x = 未知 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 寄存器 3-7: WPUB:弱上拉寄存器 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 WPUB7 WPUB6 WPUB5 WPUB4 WPUB3 WPUB2 WPUB1 WPUB0 bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位,读为 0 - n = 上电复位时的值 1=置1 0 = 清零 bit 7-0 注 x = 未知 WPUB<7:0>:弱上拉寄存器位 1 = 使能上拉 0 = 禁止上拉 1: 为了使能各个上拉必须使能全局 RBPU。 2: 如果引脚处于输出模式 (TRISx<7:0> = 0),将自动禁止弱上拉器件。 2007 Microchip Technology Inc. DS41250F_CN 第 55 页 PIC16F913/914/916/917/946 3.4.3 3.4.3.2 引脚说明及框图 图 3-9 是该引脚的框图。RB1 引脚可以被配置为以下功 能之一: 每个PORTB引脚都与其他功能复用。这里将简要地描述 这些引脚和与它们复用的功能。 欲知有关各个功能 (例 如 LCD 或中断)的具体信息,请参阅此数据手册中的相 应章节。 3.4.3.1 RB1/SEG1 • 通用 I/O • LCD 的模拟输出 RB0/INT/SEG0 3.4.3.3 图 3-9 是该引脚的框图。RB0 引脚可以被配置为以下功 能之一: RB2/SEG2 图 3-9 是该引脚的框图。RB2 引脚可以被配置为以下功 能之一: • 通用 I/O • 外部边沿触发中断 • LCD 的模拟输出 • 通用 I/O • LCD 的模拟输出 3.4.3.4 RB3/SEG3 图 3-9 是该引脚的框图。RB3 引脚可以被配置为以下功 能之一: • 通用 I/O • LCD 的模拟输出 图 3-9: RB<3:0> 的框图 WPUB<3:0> SE<3:0> VDD VDD P 弱上拉 RBPU 数据总线 写 PORTB D Q I/O 引脚 CK VSS 数据锁存器 D 写 TRISB Q CK TRIS 锁存器 SE<3:0> 和 LCDEN TTL 输入缓冲器 读 TRISB 读 PORTB SEG<3:0> SE<3:0> 和 LCDEN 施密特触发器 INT(1) 注 SE0 和 LCDEN 1: 仅适用于 RB0。 DS41250F_CN 第 56 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 3.4.3.5 RB4/COM0 图 3-10 是该引脚的框图。 RB4 引脚可以被配置为以下 功能之一: • 通用 I/O • LCD 的模拟输出 图 3-10: RB4 的框图 LCDEN WPUB<4> VDD VDD P 弱上拉 RBPU 数据总线 写 PORTB D Q I/O 引脚 CK VSS 数据锁存器 D 写 TRISB Q CK TRIS 锁存器 LCDEN 读 TRISB TTL 输入缓冲器 读 PORTB D 写 IOC CK Q Q Q 读 IOC 电平变化 中断 D EN Q1 RBIF 置 1 Q LCDEN S R Q 来自其他 RB<7:4> 引脚 EN 将 0 写入 RBIF COM0 2007 Microchip Technology Inc. D 读 PORTB LCDEN DS41250F_CN 第 57 页 PIC16F913/914/916/917/946 3.4.3.6 RB5/COM1 图 3-11 是该引脚的框图。 RB5 引脚可以被配置为以下 功能之一: • 通用 I/O • LCD 的模拟输出 图 3-11: RB5 的框图 WPUB<5> LCDEN 和 LMUX<1:0> ≠ 00 VDD VDD P 弱上拉 RBPU 数据总线 写 PORTB D Q I/O 引脚 CK VSS 数据锁存器 D 写 TRISB Q CK TRIS 锁存器 LCDEN 和 LMUX<1:0> 读 TRISB ≠ 00 TTL 输入缓冲器 读 PORTB D 写 IOC CK Q Q 读 IOC 电平变化 中断 LCDEN 和 LMUX<1:0> RBIF 置 1 Q Q ≠ 00 Q 来自其他 RB<7:4> 引脚 D EN 将 0 写入 RBIF DS41250F_CN 第 58 页 Q1 EN S R COM1 D LCDEN 和 LMUX<1:0> 读 PORTB ≠ 00 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 3.4.3.7 RB6/ICSPCLK/ICDCK/SEG14 图 3-12 是该引脚的框图。 RB6 引脚可以被配置为以下 功能之一: • • • • 通用 I/O 在线串行编程时钟 ICD 时钟输入 LCD 的模拟输出 图 3-12: RB6 的框图 编程模式 /ICD WPUB<6> VDD RBPU SE14 和 LCDEN P 数据总线 D 弱上拉 VDD Q I/O 引脚 写 PORTB CK VSS 数据锁存器 D 写 TRISB Q SE14 和 LCDEN CK TRIS 锁存器 TTL 输入缓冲器 读 TRISB 读 PORTB D 写 IOC CK Q Q Q 读 IOC D EN Q1 RBIF 置 1 电平变化 中断 Q 编程模式 /ICD S R Q 来自其他 RB<7:4> 引脚 D EN 将 0 写入 RBIF 读 PORTB 施密特触发器 ICSPCLK SEG14 2007 Microchip Technology Inc. 编程模式或 ICD 或(SE14 和 LCDEN) SE14 和 LCDEN DS41250F_CN 第 59 页 PIC16F913/914/916/917/946 3.4.3.8 RB7/ICSPDAT/ICDDAT/SEG13 图 3-13 是该引脚的框图。 RB7 引脚可以被配置为以下 功能之一: • • • • 通用 I/O 在线串行编程 I/O ICD 数据 I/O LCD 的模拟输出 图 3-13: RB7 的框图 PORT/ 编程模式 /ICD ICSPDAT 数据总线 写 PORTB VDD RBPU SE13 和 LCDEN D P 弱上拉 1 Q 0 I/O 引脚 CK VSS 数据锁存器 D 写 TRISB VDD Q CK TRIS 锁存器 PGD DRVEN 0 TTL 输入缓冲器 1 SE13 和 LCDEN 读 TRISB 读 PORTB D 写 IOC CK Q Q D Q1 EN Q 读 IOC RBIF 置 1 电平变化 中断 Q 编程 模式 /ICD S R 来自其他 RB<7:4> 引脚 Q D EN 读 PORTB 将 0 写入 RBIF 施密特触发器 ICSPDAT/ICDDAT SEG13 DS41250F_CN 第 60 页 编程模式或 ICD 或(SE13 和 LCDEN) SE13 和 LCDEN 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 表 3-2: 与 PORTB 相关的寄存器汇总 Bit 7 名称 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 上电复位与欠 压复位时的值 所有其他 复位时的值 GIE PEIE T0IE INTE RBIE T0IF INTF RBIF 0000 000x 0000 000x IOCB IOCB7 IOCB6 IOCB5 IOCB4 — — — — 0000 ---- 0000 ---0001 0011 INTCON LCDCON LCDEN SLPEN WERR VLCDEN CS1 CS0 LMUX1 LMUX0 0001 0011 LCDSE0 SE7 SE6 SE5 SE4 SE3 SE2 SE1 SE0 0000 0000 uuuu uuuu LCDSE1 SE15 SE14 SE13 SE12 SE11 SE10 SE9 SE8 0000 0000 uuuu uuuu OPTION_REG 1111 1111 RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0 1111 1111 PORTB RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 xxxx xxxx uuuu uuuu TRISB TRISB7 TRISB6 TRISB5 TRISB4 TRISB3 TRISB2 TRISB1 TRISB0 1111 1111 1111 1111 WPUB7 WPUB6 WPUB5 WPUB4 WPUB3 WPUB2 WPUB1 WPUB0 1111 1111 1111 1111 WPUB 图注: 注 1: 2: x = 未知, u = 不变, - = 未实现单元 (读为 0)。 PORTB 不使用阴影单元。 此寄存器只能通过上电复位或欠压复位初始化,其他复位均不能改变它。 配置字寄存器位 DEBUG <12> 还与 PORTB 相关。 详情请参见寄存器 16-1。 2007 Microchip Technology Inc. DS41250F_CN 第 61 页 PIC16F913/914/916/917/946 3.5 PORTC 和 TRISC 寄存器 例 3-3: PORTC 是 8 位宽的双向端口。 PORTC 与几种外设功能 复用。PORTC 引脚都有施密特触发器输入缓冲器。 所有的 PORTC 引脚都有锁存位 (PORTC 寄存器)。 它们在写入的时候会修改 PORTC 锁存器的内容;因 此,如果相应的 TRISC 位被配置为输出,将修改在该引 脚上驱动输出的值。 寄存器 3-8: BANKSEL CLRF BANKSEL MOVLW MOVWF BANKSEL CLRF 初始化 PORTC PORTC PORTC TRISC 0FFh TRISC LCDCON LCDCON ; ;Init PORTC ; ;Set RC<7:0> as inputs ; ; ;Disable VLCD<3:1> ;inputs on RC<2:0> PORTC:PORTC 寄存器 R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x RC7 RC6 RC5 RC4 RC3 RC2 RC1 RC0 bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位,读为 0 - n = 上电复位时的值 1=置1 0 = 清零 bit 7-0 x = 未知 RC<7:0>:PORTC I/O 引脚位 1 = 端口引脚电平 >VIH 最小值 0 = 端口引脚电平 <VIL 最大值 寄存器 3-9: TRISC:PORTC 三态寄存器 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 TRISC7 TRISC6 TRISC5 TRISC4 TRISC3 TRISC2 TRISC1 TRISC0 bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位,读为 0 - n = 上电复位时的值 1=置1 0 = 清零 bit 7-0 x = 未知 TRISC<7:0>:PORTC 三态控制位 1 = PORTC 引脚被配置为输入 (三态) 0 = PORTC 引脚被配置为输出 DS41250F_CN 第 62 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 3.5.1 3.5.1.3 引脚说明及框图 每个PORTC引脚都与其他功能复用。这里将简要地描述 这些引脚和与它们复用的功能。 欲知有关各个功能 (例 如 LCD 或 SSP)的具体信息,请参阅此数据手册中的相 应章节。 3.5.1.1 RC2/VLCD3 图 3-16 是该引脚的框图。 RC2 引脚可以被配置为以下 功能之一: • 通用 I/O • LCD 偏置电压的模拟输入 RC0/VLCD1 图 3-14 是该引脚的框图。 RC0 引脚可以被配置为以下 功能之一: • 通用 I/O • LCD 偏置电压的模拟输入 3.5.1.2 RC1/VLCD2 图 3-15 是该引脚的框图。 RC1 引脚可以被配置为以下 功能之一: • 通用 I/O • LCD 偏置电压的模拟输入 图 3-14: RC0 的框图 数据总线 写 PORTC D Q CK 数据锁存器 D 写 TRISC VDD Q CK I/O 引脚 Q VSS Q TRIS 锁存器 (VLCDEN 和 LMUX<1:0> ≠ 00) 读 TRISC 施密特 触发器 读 PORTC VLCD1 2007 Microchip Technology Inc. (LCDEN 和 LMUX<1:0> ≠ 00) DS41250F_CN 第 63 页 PIC16F913/914/916/917/946 图 3-15: RC1 的框图 数据总线 写 PORTC D CK VDD Q Q I/O 引脚 数据锁存器 D 写 TRISC Q VSS Q CK TRIS 锁存器 (VLCDEN 和 LMUX<1:0> ≠ 00) 读 TRISC 施密特 触发器 读 PORTC (LCDEN 和 LMUX<1:0> ≠ 00) VLCD2 图 3-16: RC2 的框图 数据总线 写 PORTC D CK VDD Q Q I/O 引脚 数据锁存器 D 写 TRISC Q VSS Q CK TRIS 锁存器 VLCDEN 读 TRISC 施密特 触发器 读 PORTC VLCD3 DS41250F_CN 第 64 页 LCDEN 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 3.5.1.4 RC3/SEG6 图 3-17 是该引脚的框图。 RC3 引脚可以被配置为以下 功能之一: • 通用 I/O • LCD 的模拟输出 图 3-17: RC3 的框图 数据总线 写 PORTC D CK VDD Q Q I/O 引脚 数据锁存器 D 写 TRISC CK Q VSS Q TRIS 锁存器 SE6 和 LCDEN 读 TRISC 施密特 触发器 读 PORTC SEG6 和 LCDEN 2007 Microchip Technology Inc. SE6 和 LCDEN DS41250F_CN 第 65 页 PIC16F913/914/916/917/946 3.5.1.5 RC4/T1G/SDO/SEG11 图 3-18 是该引脚的框图。 RC4 引脚可以被配置为以下 功能之一: • • • • 通用 I/O Timer1 门控信号输入 串行数据输出 LCD 的模拟输出 图 3-18: RC4 的框图 PORT/SDO 选择 SDO 数据总线 D Q 0 1 VDD 写 PORTC CK Q 数据锁存器 D 写 TRISC I/O 引脚 Q VSS CK Q TRIS 锁存器 读 TRISC SE11 和 LCDEN 施密特 触发器 读 PORTC Timer1 门控信号 SEG11 DS41250F_CN 第 66 页 SE11 和 LCDEN 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 3.5.1.6 RC5/T1CKI/CCP1/SEG10 图 3-19 是该引脚的框图。 RC5 引脚可以被配置为以下 功能之一: • • • • 通用 I/O Timer1 时钟输入 捕捉输入、比较输出或 PWM 输出 LCD 的模拟输出 图 3-19: RC5 的框图 (PORT/CCP1 选择)和 CCPMX CCP1 数据输出 0 数据总线 D Q 1 VDD 写 PORTC CK Q 数据锁存器 D 写 TRISC I/O 引脚 Q VSS CK Q TRIS 锁存器 读 TRISC SE10 和 LCDEN 施密特 触发器 读 PORTC Timer1 时钟输入 SEG10 2007 Microchip Technology Inc. SE10 和 LCDEN DS41250F_CN 第 67 页 PIC16F913/914/916/917/946 3.5.1.7 RC6/TX/CK/SCK/SCL/SEG9 图 3-20 是该引脚的框图。 RC6 引脚可以被配置为以下 功能之一: • • • • • • 通用 I/O 异步串行输出 同步时钟 I/O SPI 时钟 I/O I2C 数据 I/O LCD 的模拟输出 图 3-20: RC6 的框图 PORT/USART/SSP 模式选择 (1) I2CTM 数据输出 TX/CK 数据输出 SCK 数据输出 数据总线 D Q VDD 写 PORTC CK Q 数据锁存器 D 写 TRISC I/O 引脚 Q VSS CK Q TRIS 锁存器 读 TRISC USART 或 I2C™ 驱动 SE9 和 LCDEN 施密特 触发器 读 PORTC CK/SCL/SCK 输入 SEG9 注 SE9 和 LCDEN 1: 如果使能了全部的三个数据输出源,将采用以下优先级顺序: • USART 数据 (最高优先级) • SSP 数据 • 端口数据 (最低优先级) DS41250F_CN 第 68 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 3.5.1.8 RC7/RX/DT/SDI/SDA/SEG8 图 3-21 是该引脚的框图。 RC7 引脚可以被配置为以下 功能之一: • • • • • • 通用 I/O 异步串行输入 同步串行数据 I/O SPI 数据输入 I2C 数据 I/O LCD 的模拟输出 图 3-21: RC7 的框图 USART/I2C™ 模式选择 (1) DT 数据输出 I2C™ 数据输出 PORT/(USART 或 I2C™)选择 VDD 0 1 数据总线 写 PORTC D Q CK Q I/O 引脚 VSS 数据锁存器 D Q 写 TRISC CK Q TRIS 锁存器 SE8 和 LCDEN I2C™ 驱动 或 SCEN 驱动 读 TRISC 施密特 触发器 读 PORTC RX/SDI 输入 SE8 和 LCDEN SEG8 注 1: 如果使能了全部的三个数据输出源,将采用以下优先级顺序: • USART 数据 (最高优先级) • SSP 数据 • 端口数据 (最低优先级) 2007 Microchip Technology Inc. DS41250F_CN 第 69 页 PIC16F913/914/916/917/946 表 3-3: 与 PORTC 相关的寄存器汇总 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 上电复位与欠 压复位时的值 所有其他 复位时的值 — — CCP1X CCP1Y CCP1M3 CCP1M2 CCP1M1 CCP1M0 --00 0000 --00 0000 LCDCON LCDEN SLPEN WERR VLCDEN CS1 CS0 LMUX1 LMUX0 0001 0011 0001 0011 LCDSE0 SE7 SE6 SE5 SE4 SE3 SE2 SE1 SE0 0000 0000 uuuu uuuu LCDSE1 SE15 SE14 SE13 SE12 SE11 SE10 SE9 SE8 0000 0000 uuuu uuuu PORTC RC7 RC6 RC5 RC4 RC3 RC2 RC1 RC0 xxxx xxxx uuuu uuuu RCSTA SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 0000 000x 0000 000x 名称 CCP1CON SSPCON WCOL SSPOV SSPEN CKP SSPM3 SSPM2 SSPM1 SSPM0 0000 0000 0000 0000 T1CON T1GINV TMR1GE T1CKPS1 T1CKPS0 T1OSCEN T1SYNC TMR1CS TMR1ON 0000 0000 uuuu uuuu TRISC TRISC7 TRISC6 TRISC5 TRISC4 TRISC3 TRISC2 TRISC1 TRISC0 1111 1111 1111 1111 图注: x = 未知, u = 不变, - = 未实现单元 (读为 0)。 PORTC 不使用阴影单元。 DS41250F_CN 第 70 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 3.6 PORTD 和 TRISD 寄存器 例 3-4: PORTD是一个带有施密特触发器输入缓冲器的8位端口。 各 引 脚 都 可 以 被 分 别 配 置 为 输 入 或 输 出。仅 PIC16F914/917 和 PIC16F946 系列器件可使用 PORTD。 寄存器 3-10: BANKSEL CLRF BANKSEL MOVLW MOVWF 初始化 PORTD PORTD PORTD TRISD 0FF TRISD ; ;Init PORTD ; ;Set RD<7:0> as inputs ; PORTD:PORTD 寄存器 R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x RD7 RD6 RD5 RD4 RD3 RD2 RD1 RD0 bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位, 读为 0 - n = 上电复位时的值 1=置1 0 = 清零 bit 7-0 x = 未知 RD<7:0>:PORTD I/O 引脚位 1 = 端口引脚电平 >VIH 最小值 0 = 端口引脚电平 <VIL 最大值 寄存器 3-11: TRISD:PORTD 三态寄存器 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 TRISD7 TRISD6 TRISD5 TRISD4 TRISD3 TRISD2 TRISD1 TRISD0 bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位,读为 0 - n = 上电复位时的值 1=置1 0 = 清零 bit 7-0 x = 未知 TRISD<7:0>:PORTD 三态控制位 1 = PORTD 引脚被配置为输入 (三态) 0 = PORTD 引脚被配置为输出 2007 Microchip Technology Inc. DS41250F_CN 第 71 页 PIC16F913/914/916/917/946 3.6.1 引脚说明及框图 每个PORTD引脚都与其他功能复用。这里将简要地描述 这些引脚和与它们复用的功能。 欲知有关各个功能 (例 如比较器或 ADC 转换器)的具体信息,请参阅此数据手 册中的相应章节。 3.6.1.1 RD0/COM3 图 3-22 是该引脚的框图。 RD0 引脚可以被配置为以下 功能之一: • 通用 I/O • LCD 的模拟输出 3.6.1.2 3.6.1.7 RD6/SEG19 图 3-25 是该引脚的框图。 RD6 引脚可以被配置为以下 功能之一: • 通用 I/O • LCD 的模拟输出 3.6.1.8 RD7/SEG20 图 3-25 是该引脚的框图。 RD7 引脚可以被配置为以下 功能之一: • 通用 I/O • LCD 的模拟输出 RD1 图 3-23 是该引脚的框图。 RD1 引脚可以被配置为以下 功能之一: • 通用 I/O 3.6.1.3 RD2/CCP2 图 3-24 是该引脚的框图。 RD2 引脚可以被配置为以下 功能之一: • 通用 I/O • 捕捉输入、比较输出或 PWM 输出 3.6.1.4 RD3/SEG16 图 3-25 是该引脚的框图。 RD3 引脚可以被配置为以下 功能之一: • 通用 I/O • LCD 的模拟输出 3.6.1.5 RD4/SEG17 图 3-25 是该引脚的框图。 RD4 引脚可以被配置为以下 功能之一: • 通用 I/O • LCD 的模拟输出 3.6.1.6 RD5/SEG18 图 3-25 是该引脚的框图。 RD5 引脚可以被配置为以下 功能之一: • 通用 I/O • LCD 的模拟输出 DS41250F_CN 第 72 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 图 3-22: RD0 的框图 VDD 数据总线 写 PORTD D Q CK I/O 引脚 Q VSS 数据锁存器 写 TRISD D Q CK Q TRIS 锁存器 读 TRISD LCDEN 和 LMUX<1:0> = 11 施密特 触发器 读 PORTD LCDEN 和 LMUX<1:0> = 11 COM3 图 3-23: RD1 的框图 VDD 数据总线 写 PORTD D Q CK RD1 引脚 Q VSS 数据锁存器 写 TRISD D Q CK Q TRIS 锁存器 读 TRISD 施密特 触发器 读 PORTD 2007 Microchip Technology Inc. DS41250F_CN 第 73 页 PIC16F913/914/916/917/946 图 3-24: RD2 的框图 (PORT/CCP2 选择)和 CCPMX VDD CCP2 数据输出 0 数据总线 写 PORTD D Q CK Q 1 I/O 引脚 VSS 数据锁存器 写 TRISD D Q CK Q TRIS 锁存器 施密特 触发器 读 TRISD 读 PORTD CCP2 输入 图 3-25: RD<7:3> 的框图 VDD 数据总线 写 PORTD D Q CK I/O 引脚 Q VSS 数据锁存器 写 TRISD D Q CK Q TRIS 锁存器 SE<20:16> 和 LCDEN 读 TRISD 施密特 触发器 读 PORTD SEG<20:16> DS41250F_CN 第 74 页 SE<20:16> 和 LCDEN 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 与 PORTD 相关的寄存器汇总 (1) 表 3-4: 名称 CCP2CON(1) LCDCON LCDSE2(1) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 上电复位与欠 压复位时的值 所有其他 复位时的值 — — CCP2X CCP2Y CCP2M3 CCP2M2 CCP2M1 CCP2M0 --00 0000 --00 0000 LCDEN SLPEN WERR VLCDEN CS1 CS0 LMUX1 LMUX0 0001 0011 0001 0011 SE23 SE22 SE21 SE20 SE19 SE18 SE17 SE16 0000 0000 uuuu uuuu PORTD(1) RD7 RD6 RD5 RD4 RD3 RD2 RD1 RD0 xxxx xxxx uuuu uuuu TRISD(1) TRISD7 TRISD6 TRISD5 TRISD4 TRISD3 TRISD2 TRISD1 TRISD0 1111 1111 1111 1111 图注: 注 1: x = 未知, u = 不变, - = 未实现单元 (读为 0)。 PORTD 不使用阴影单元。 仅适用于 PIC16F914/917 和 PIC16F946 器件。 2007 Microchip Technology Inc. DS41250F_CN 第 75 页 PIC16F913/914/916/917/946 3.7 例 3-5: PORTE 和 TRISE 寄存器 PORTE 是一个带有施密特触发器输入缓冲器的 1 位、4 位或 8 位端口。RE<7:4> 和 RE<2:0> 可以被分别配置为 输入或输出,且如果配置字(寄存器 16-1)中的 MCLRE 位为 0,则 RE3 只能用作输入引脚。 仅PIC16F914/917和PIC16F946器件可使用RE<2:0> 。 仅 PIC16F946 器件可使用 RE<7:4>。 寄存器 3-12: R/W-x RE7 初始化 PORTE PORTE PORTE TRISE 0Fh TRISE ANSEL ; ;Init PORTE ; ;Set RE<3:0> as inputs ; ;Make RE<2:0> as I/Os PORTE:PORTE 寄存器 R/W-x (1,3) BANKSEL CLRF BANKSEL MOVLW MOVWF CLRF (1,3) RE6 R/W-x RE5 R/W-x (1,3) (1,3) RE4 R-x RE3 R/W-x RE2 (2,4) R/W-x RE1 (2,4) bit 7 R/W-x RE0(2,4) bit 0 图注: R = 可读位 W = 可写位 U = 未实现位,读为 0 - n = 上电复位时的值 1=置1 0 = 清零 bit 7-0 RE<7:0>:PORTE I/O 引脚位 1 = 端口引脚电平 >VIH 最小值 0 = 端口引脚电平 <VIL 最大值 1: 2: 3: 4: 注 x = 未知 仅适用于 PIC16F946 器件。 仅适用于 PIC16F914/917 和 PIC16F946 器件。 对于 PIC16F91X 器件,读为 0。 对于 PIC16F913/916 器件,读为 0。 寄存器 3-13: TRISE:PORTE 三态寄存器 R/W-1 R/W-1 R/W-1 R/W-1 R-1 R/W-1 R/W-1 R/W-1 TRISE7(1,3) TRISE6(1,3) TRISE5(1,3) TRISE4(1,3) TRISE3 TRISE2(2,4) TRISE1(2,4) TRISE0(2,4) bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位,读为 0 - n = 上电复位时的值 1=置1 0 = 清零 bit 7-0 注 x = 未知 TRISE<7:0>:PORTE 三态控制位 1 = PORTE 引脚被配置为输入 (三态) 0 = PORTE 引脚被配置为输出 1: 2: 3: 4: 仅适用于 PIC16F946 器件。 仅适用于 PIC16F914/917 和 PIC16F946 器件。 对于 PIC16F91X 器件,读为 0。 对于 PIC16F913/916 器件,读为 0。 DS41250F_CN 第 76 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 3.7.1 引脚说明及框图 每个PORTE引脚都与其他功能复用。这里将简要地描述 这些引脚和与它们复用的功能。 欲知有关各个功能 (例 如比较器或 ADC 转换器)的具体信息,请参阅此数据手 册中的相应章节。 3.7.1.1 RE0/AN5/SEG21(1) 图 3-26 是该引脚的框图。 RE0 引脚可以被配置为以下 功能之一: • 通用 I/O • ADC 转换器的模拟输入 • LCD 的模拟输出 3.7.1.2 RE1/AN6/SEG22(1) 图 3-26 是该引脚的框图。 RE1 引脚可以被配置为以下 功能之一: 3.7.1.7 RE6/SEG26(2) 图 3-28 是该引脚的框图。RE6/SEG26 引脚可以被配置 为以下功能之一: • 通用 I/O • LCD 的模拟输出 3.7.1.8 RE7/SEG27(2) 图 3-28 是该引脚的框图。RE7/SEG27 引脚可以被配置 为以下功能之一: • 通用 I/O • LCD 的模拟输出 注 1: 仅 PIC16F914/917 和 PIC16F946 器件可 使用该引脚。 2: 仅 PIC16F946 器件可使用该引脚。 • 通用 I/O • ADC 转换器的模拟输入 • LCD 的模拟输出 3.7.1.3 RE2/AN7/SEG23(1) 图 3-26 是该引脚的框图。 RE2 引脚可以被配置为以下 功能之一: • 通用 I/O • ADC 转换器的模拟输入 • LCD 的模拟输出 3.7.1.4 RE3/MCLR/VPP 图 3-27 是该引脚的框图。 RE3 引脚可以被配置为以下 功能之一: • 仅数字输入 • 带弱上拉的主复位 • 编程参考电压输入 3.7.1.5 RE4/SEG24(2) 图 3-28 是该引脚的框图。RE4/SEG24 引脚可以被配置 为以下功能之一: • 通用 I/O • LCD 的模拟输出 3.7.1.6 RE5/SEG25(2) 图 3-28 是该引脚的框图。RE5/SEG25 引脚可以被配置 为以下功能之一: • 通用 I/O • LCD 的模拟输出 2007 Microchip Technology Inc. DS41250F_CN 第 77 页 PIC16F913/914/916/917/946 图 3-26: RE<2:0> 的框图 (仅适用于 PIC16F914/917 和 PIC16F946) VDD 数据总线 D 写 PORTE Q CK I/O 引脚 Q VSS 数据锁存器 D Q CK Q 写 TRISE TRIS 锁存器 模拟模式或 SEG<23:21> 和 LCDEN 读 TRISE 施密特 触发器 读 PORTE SEG<23:21> 和 LCDEN SEG<23:21> AN<7:5> 图 3-27: RE3 的框图 MCLR 电路 HV 施密特触发器 缓冲器 MCLR 滤波器 编程模式 HV 检测 输入引脚 MCLRE VSS 数据总线 读 TRISE VSS HV 施密特触发器 缓冲器 读 PORTE DS41250F_CN 第 78 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 图 3-28: RE<7:4> 的框图 (仅适用于 PIC16F946) VDD 数据总线 写 PORTE D Q CK I/O 引脚 Q VSS 数据锁存器 写 TRISE D Q CK Q TRIS 锁存器 模拟模式或 读 TRISE SEG<27:24> 和 LCDEN 施密特 触发器 读 PORTE SEG<27:24> SEG<27:24> 和 LCDEN AN<7:5> 2007 Microchip Technology Inc. DS41250F_CN 第 79 页 PIC16F913/914/916/917/946 表 3-5: 与 PORTE 相关的寄存器汇总 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 上电复位与欠 压复位时的值 所有其他 复位时的值 ADCON0 ADFM VCFG1 VCFG0 CHS2 CHS1 CHS0 GO/DONE ADON 0000 0000 0000 0000 ANSEL ANS7 ANS6 ANS5 ANS4 ANS3 ANS2 ANS1 ANS0 1111 1111 1111 1111 LCDEN SLPEN WERR VLCDEN CS1 CS0 LMUX1 LMUX0 0001 0011 0001 0011 LCDSE2(1,2) SE23 SE22 SE21 SE20 SE19 SE18 SE17 SE16 0000 0000 uuuu uuuu LCDSE3(1, 3) SE31 SE30 SE29 SE28 SE27 SE26 SE25 SE24 0000 0000 uuuu uuuu (3) (3) (3) (3) (2) (2) (2) xxxx xxxx uuuu uuuu 1111 1111 1111 1111 名称 LCDCON PORTE TRISE 图注: 注 1: 2: 3: 4: RE7 TRISE7(3) RE6 TRISE6(3) RE5 TRISE5(3) RE4 TRISE4(3) RE3 TRISE3(4) RE2 TRISE2(2) RE1 TRISE1(2) RE0 TRISE0(2) x = 未知, u = 不变, - = 未实现单元 (读为 0)。 PORTE 不使用阴影单元。 此寄存器只能通过上电复位或欠压复位初始化,其他复位均不能改变它。 仅适用于 PIC16F914/917 和 PIC16F946 器件。 仅适用于 PIC16F946 器件。 只读位; TRISE 始终为 1。 DS41250F_CN 第 80 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 3.8 例 3-6: PORTF 和 TRISF 寄存器 PORTF 是一个带有施密特触发器输入缓冲器的 8 位端 口。RF<7:0> 可以被分别配置为输入或输出,具体取决 于端口方向的状态。 端口位也和 LCD 段功能复用。 仅 PIC16F946 器件可使用 PORTF。 BANKSEL CLRF BANKSEL MOVLW MOVWF 初始化 PORTF PORTF PORTF TRISF 0FFh TRISF ; ;Init PORTF ; ;Set RF<7:0> as inputs ; PORTF:PORTF 寄存器 (1) 寄存器 3-14: R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x RF7 RF6 RF5 RF4 RF3 RF2 RF1 RF0 bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位,读为 0 - n = 上电复位时的值 1=置1 0 = 清零 bit 7-0 x = 未知 RF<7:0>:PORTF I/O 引脚位 1 = 端口引脚电平 >VIH 最小值 0 = 端口引脚电平 <VIL 最大值 1: 仅适用于 PIC16F946 器件。 注 TRISF:PORTF 三态寄存器 (1) 寄存器 3-15: R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 TRISF7 TRISF6 TRISF5 TRISF4 TRISF3 TRISF2 TRISF1 TRISF0 bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位,读为 0 - n = 上电复位时的值 1=置1 0 = 清零 bit 7-0 注 x = 未知 TRISF<7:0>:PORTF 三态控制位 1 = PORTF 引脚被配置为输入 (三态) 0 = PORTF 引脚被配置为输出 1: 仅适用于 PIC16F946 器件。 2007 Microchip Technology Inc. DS41250F_CN 第 81 页 PIC16F913/914/916/917/946 3.8.1 引脚说明及框图 每个PORTF引脚都与其他功能复用。这里将简要地描述 这些引脚和与它们复用的功能。 欲知有关各个功能的具 体信息,请参阅此数据手册中的相应章节。 3.8.1.1 RF0/SEG32 图 3-29 是该引脚的框图。 RF0 引脚可以被配置为以下 功能之一: • 通用 I/O • LCD 的模拟输出 3.8.1.2 RF1/SEG33 3.8.1.7 RF6/SEG30 图 3-29 是该引脚的框图。 RF6 引脚可以被配置为以下 功能之一: • 通用 I/O • LCD 的模拟输出 3.8.1.8 RF7/SEG31 图 3-29 是该引脚的框图。 RF7 引脚可以被配置为以下 功能之一: • 通用 I/O • LCD 的模拟输出 图 3-29 是该引脚的框图。 RF1 引脚可以被配置为以下 功能之一: • 通用 I/O • LCD 的模拟输出 3.8.1.3 RF2/SEG34 图 3-29 是该引脚的框图。 RF2 引脚可以被配置为以下 功能之一: • 通用 I/O • LCD 的模拟输出 3.8.1.4 RF3/SEG35 图 3-29 是该引脚的框图。 RF3 引脚可以被配置为以下 功能之一: • 通用 I/O • LCD 的模拟输出 3.8.1.5 RF4/SEG28 图 3-29 是该引脚的框图。 RF4 引脚可以被配置为以下 功能之一: • 通用 I/O • LCD 的模拟输出 3.8.1.6 RF5/SEG29 图 3-29 是该引脚的框图。 RF5 引脚可以被配置为以下 功能之一: • 通用 I/O • LCD 的模拟输出 DS41250F_CN 第 82 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 图 3-29: RF<7:0> 的框图 VDD 数据总线 D 写 PORTF Q CK I/O 引脚 Q VSS 数据锁存器 写 TRISF D Q CK Q TRIS 锁存器 读 TRISF SE<35:28> 和 LCDEN 施密特 触发器 读 PORTF SE<35:28> 和 LCDEN SEG<35:28> 表 3-6: 名称 LCDCON 与 PORTF 相关的寄存器汇总 (1) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 上电复位与欠 压复位时的值 所有其他 复位时的值 LCDEN SLPEN WERR VLCDEN CS1 CS0 LMUX1 LMUX0 0001 0011 0001 0011 (1) SE31 SE30 SE29 SE28 SE27 SE26 SE25 SE24 0000 0000 uuuu uuuu LCDSE4(1) SE39 SE38 SE37 SE36 SE35 SE34 SE33 SE32 0000 0000 uuuu uuuu PORTF(1) RF7 RF6 RF5 RF4 RF3 RF2 RF1 RF0 xxxx xxxx uuuu uuuu TRISF(1) TRISF7 TRISF6 TRISF5 TRISF4 TRISF3 TRISF2 TRISF1 TRISF0 1111 1111 1111 1111 LCDSE3 图注: x = 未知, u = 不变, – = 未实现单元 (读为 0)。 PORTF 不使用阴影单元。 注 1: 仅适用于 PIC16F946 器件。 2007 Microchip Technology Inc. DS41250F_CN 第 83 页 PIC16F913/914/916/917/946 3.9 例 3-7: PORTG 和 TRISG 寄存器 PORTG 是一个带有施密特触发器输入缓冲器的 8 位端 口。RG<5:0> 可以被分别配置为输入或输出,具体取决 于端口方向的状态。 端口位也和 LCD 段功能复用。 仅 PIC16F946 器件可使用 PORTG。 BANKSEL CLRF BANKSEL MOVLW MOVWF 初始化 PORTG PORTG PORTG TRISG 3Fh TRISG ; ;Init PORTG ; ;Set RG<5:0> as inputs ; PORTG:PORTG 寄存器 (1) 寄存器 3-16: U-0 U-0 R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x — — RG5 RG4 RG3 RG2 RG1 RG0 bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位, 读为 0 - n = 上电复位时的值 1=置1 0 = 清零 bit 7-6 未实现:读为 0 bit 5-0 RG<5:0>:PORTG I/O 引脚位 1 = 端口引脚电平 >VIH 最小值 0 = 端口引脚电平 <VIL 最大值 x = 未知 1: 仅适用于 PIC16F946 器件。 注 TRISG:PORTG 三态寄存器 (1) 寄存器 3-17: U-0 U-0 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 — — TRISG5 TRISG4 TRISG3 TRISG2 TRISG1 TRISG0 bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位,读为 0 - n = 上电复位时的值 1=置1 0 = 清零 bit 7-6 未实现:读为 0 bit 5-0 TRISF<5:0>:PORTG 三态控制位 1 = PORTG 引脚被配置为输入 (三态) 0 = PORTG 引脚被配置为输出 注 x = 未知 1: 仅适用于 PIC16F946 器件。 DS41250F_CN 第 84 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 3.9.1 3.9.1.4 引脚说明及框图 每个 PORTG 引脚都与其他功能复用。这里将简要地描 述这些引脚和与它们复用的功能。 欲知有关各个功能的 具体信息,请参阅此数据手册中的相应章节。 3.9.1.1 RG0/SEG36 图 3-30 是该引脚的框图。 RG0 引脚可以被配置为以下 功能之一: • 通用 I/O • LCD 的模拟输出 3.9.1.2 图 3-30 是该引脚的框图。 RG3 引脚可以被配置为以下 功能之一: • 通用 I/O • LCD 的模拟输出 3.9.1.5 RG4/SEG40 图 3-30 是该引脚的框图。 RG4 引脚可以被配置为以下 功能之一: • 通用 I/O • LCD 的模拟输出 RG1/SEG37 图 3-30 是该引脚的框图。 RG1 引脚可以被配置为以下 功能之一: • 通用 I/O • LCD 的模拟输出 3.9.1.3 RG3/SEG39 3.9.1.6 RG5/SEG41 图 3-30 是该引脚的框图。 RG5 引脚可以被配置为以下 功能之一: • 通用 I/O • LCD 的模拟输出 RG2/SEG38 图 3-30 是该引脚的框图。 RG2 引脚可以被配置为以下 功能之一: • 通用 I/O • LCD 的模拟输出 图 3-30: RG<5:0> 的框图 VDD 数据总线 写 PORTG D Q CK I/O 引脚 Q VSS 数据锁存器 写 TRISG D Q CK Q TRIS 锁存器 读 TRISG SE<41:36> 和 LCDEN 施密特 触发器 读 PORTG SEG<41:36> 2007 Microchip Technology Inc. SE<41:36> 和 LCDEN DS41250F_CN 第 85 页 PIC16F913/914/916/917/946 与 PORTG 相关的寄存器汇总 (1) 表 3-7: 名称 LCDCON Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 上电复位与欠 压复位时的值 所有其他 复位时的值 LCDEN SLPEN WERR VLCDEN CS1 CS0 LMUX1 LMUX0 0001 0011 0001 0011 LCDSE4(1) SE39 SE38 SE37 SE36 SE35 SE34 SE33 SE32 0000 0000 uuuu uuuu LCDSE5(1) — — — — — — SE41 SE40 ---- --00 ---- --uu PORTG(1) — — RG5 RG4 RG3 RG2 RG1 RG0 --xx xxxx --uu uuuu TRISG(1) — — TRISG5 TRISG4 TRISG3 TRISG2 TRISG1 TRISG0 --11 1111 --11 1111 图注: x = 未知, u = 不变, – = 未实现单元 (读为 0)。 PORTG 不使用阴影单元。 注 1: 仅适用于 PIC16F946 器件。 DS41250F_CN 第 86 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 4.0 4.1 振荡器模块 (带故障保护时钟监 视器) 振荡器模块可配置为以下八种时钟模式之一。 概述 2. 3. 4. 5. 1. 该振荡器模块具有很多种时钟源和选择功能,从而使其应 用非常广泛,并可最大限度地提高性能和降低功耗。图4-1 所示为振荡器模块的框图。 时钟源可以配置为由外部振荡器、石英晶体谐振器、陶 瓷谐振器以及阻容(RC)电路提供。此外,系统时钟源 可以配置为由两个内部振荡器之一提供,并可以通过软 件选择速度。其他的时钟功能包括: 6. 7. • 通过软件可以选择外部或内部系统时钟源。 • 双速时钟启动模式,使外部振荡器起振到代码执行 之间的延时达到最小。 • 故障保护时钟监视器 (Fail-Safe Clock Monitor, FSCM)旨在检测外部时钟源的故障 (LP、 XT、 HS、 EC 或 RC 模式),并自动切换到内部振荡 器。 图 4-1: 8. EC — OSC2/CLKOUT 为 I/O 引脚的外部时钟模 式。 LP — 32 kHz 低功耗晶振模式。 XT — 中等增益晶体或陶瓷谐振器振荡模式。 HS — 高增益晶体或陶瓷谐振器模式。 RC — 外 部 阻 容 (RC)振 荡 模 式,且 OSC2/CLKOUT 为 FOSC/4 输出。 RCIO — OSC2/CLKOUT 为 I/O 引脚的外部阻容 (RC)振荡模式。 INTOSC — OSC2作为FOSC/4输出且OSC1/CLKIN 作为 I/O 引脚的内部振荡模式。 INTOSCIO — OSC1/CLKIN 和 OSC2/CLKOUT 作为 I/O 引脚的内部振荡模式。 时 钟 源 模 式 由 配 置 字 寄 存 器 (CONFIG)中 的 FOSC<2:0> 位配置。 内部时钟可以由两个内部振荡器 产生。 HFINTOSC 是高 频、已校 准的 振荡 器。 LFINTOSC 是低频、未校准的振荡器。 PIC® MCU 时钟源简化框图 FOSC<2:0> (配置字寄存器) SCS<0> (OSCCON 寄存器) 外部振荡器 OSC2 Sleep MUX LP,XT,HS,RC,RCIO,EC OSC1 IRCF<2:0> (OSCCON 寄存器) 8 MHz 内部振荡器 4 MHz 系统时钟 (CPU 和外设) INTOSC 111 110 1 MHz 500 kHz 250 kHz 125 kHz LFINTOSC 31 kHz 31 kHz 101 100 011 MUX HFINTOSC 8 MHz 后分频器 2 MHz 010 001 000 上电延时定时器(PWRT) 看门狗定时器(WDT) 故障保护时钟监视器(FSCM) 2007 Microchip Technology Inc. DS41250F_CN 第 87 页 PIC16F913/914/916/917/946 4.2 振荡器控制 振荡器控制 (OSCCON)寄存器 (图 4-1)控制系统时 钟和频率选择。OSCCON 寄存器包含以下位: • 频率选择位 (IRCF) • 频率状态位 (HTS 和 LTS) • 系统时钟控制位 (OSTS 和 SCS) 寄存器 4-1: U-0 — OSCCON:振荡器控制寄存器 R/W-1 R/W-1 IRCF2 IRCF1 R/W-0 R-1 (1) IRCF0 OSTS R-0 R-0 R/W-0 HTS LTS SCS bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位 , 读为 0 - n = 上电复位时的值 1= 置1 0 = 清零 bit 7 未实现:读为 0 bit 6-4 IRCF<2:0>:内部振荡器频率选择位 111 = 8 MHz 110 = 4 MHz (默认) 101 = 2 MHz 100 = 1 MHz 011 = 500 kHz 010 = 250 kHz 001 = 125 kHz 000 = 31 kHz (LFINTOSC) bit 3 OSTS:振荡器起振延时状态位 (1) 1 = 器件使用由配置字寄存器中的 FOSC<2:0> 定义的外部时钟源 0 = 器件使用内部振荡器 (HFINTOSC 或 LFINTOSC) bit 2 HTS:HFINTOSC 状态位 (高频 — 8 MHz 到 125 kHz) 1 = HFINTOSC 稳定 0 = HFINTOSC 不稳定 bit 1 LTS:LFINTOSC 稳定位 (低频 — 31 kHz) 1 = LFINTOSC 稳定 0 = LFINTOSC 不稳定 bit 0 SCS:系统时钟选择位 1 = 内部振荡器用作系统时钟 0 = 时钟源由配置字寄存器中的 FOSC<2:0> 定义 注 x = 未知 1: 双速启动时如果选择了 LP、 XT 或 HS 振荡器模式或使能了故障保护模式会使该位复位为 0。 DS41250F_CN 第 88 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 4.3 4.4 外部时钟模式 时钟源模式可以分为外部或内部两类。 4.4.1 振荡器起振定时器 (OST) • 外部时钟模式依赖外部电路作为时钟源。示例有: 振荡器模块 (EC 模式)、石英晶体谐振器或陶瓷 谐振器 (LP、 XT 和 HS 模式)以及阻容 (RC) 模式电路。 • 振荡器模块内部包含了内部时钟源。该振荡器模块 有两个内部振荡器:8 MHz 高频内部振荡器 (High-Frequency Internal Oscillator , HFINTOSC) 和 31 kHz 低频内部振荡器 (Low-Frequency Internal Oscillator, LFINTOSC)。 如果振荡器模块配置为 LP、 XT 或 HS 模式,当发生上 电复位 (POR)后且上电延时定时器 (PWRT)延时 已结束 (如果配置了此延时)时或从休眠状态唤醒时, 振荡器起振定时器 (Oscillator Start-up Timer, OST) 将对 OSC1 引脚上的 1024 次振荡进行计数 。在这段时 间内,程序计数器不进行递增计数,并且程序执行被暂 停。 OST 确保使用石英晶体谐振器或陶瓷谐振器的振 荡电路已起振并且为振荡器模块提供稳定的系统时钟。 在不同时钟源之间切换时需要一个延时以使新的时钟稳 定下来。表 4-1 中显示了这些振荡器延时。 时钟源模式 可以通过 OSCCON 寄存器中的系统时钟选择(System Clock Select, SCS)位选择外部或内部时钟源。 更多 详细信息,请参见第 4.6 节 “时钟切换”。 表 4-1: 为了让外部振荡器起振和代码执行之间的延时缩到最 短,可以选择双速时钟启动模式(见第 4.7 节“双速时 钟启动模式”)。 振荡器延时示例 切换自 切换到 频率 休眠 / 上电复位 LFINTOSC HFINTOSC 休眠 / 上电复位 EC 或 RC 31 kHz 125 kHz 至 8 MHz DC – 20 MHz LFINTOSC (31 kHz) EC 或 RC DC – 20 MHz 休眠 / 上电复位 LP、 XT 或 HS HFINTOSC 32 kHz 至 20 MHz 1024 个时钟周期 (OST) 125 kHz 至 8 MHz 1 µs (近似值) LFINTOSC (31 kHz) 4.4.2 EC 模式 外部时钟 (External Clock, EC)模式将外部产生的逻 辑电平作为系统时钟源。 当在此模式下工作时,外部时 钟源连接到 OSC1 输入引脚,而 OSC2 引脚用作通用 I/O 引脚。图 4-2 显示了 EC 模式的引脚连接。 当选择 EC 模式时,振荡器起振定时器 (OST)被禁 止。 因此,在上电复位 (POR)后或从休眠状态唤醒 后,不会有延时操作。由于 PIC® MCU 的设计是全静态 的,停止外部时钟输入可以在停止器件的同时使所有的 数据保持原样。外部时钟重新起振之后,器件将恢复工 作就像没有时间流逝一样。 2007 Microchip Technology Inc. 振荡器延时 振荡器预热延时 (TWARM) 2 个指令周期 各 1 个周期 图 4-2: 外部时钟 (EC)模式的工 作原理 OSC1/CLKIN 来自外部系 统的时钟 PIC® MCU I/O 注 OSC2/CLKOUT(1) 1: 第 1.0 节 “器件概述”中列出了备用引脚功 能。 DS41250F_CN 第 89 页 PIC16F913/914/916/917/946 4.4.3 LP、 XT 和 HS 模式 注 LP、 XT 和 HS 模式支持使用石英晶体谐振器或陶瓷谐 振器与 OSC1 和 OSC2 引脚连接(图 4-3)。该模式选 择内部反相放大器的低、中等或高增益设置以支持多种 谐振器类型和速度。 1: 石英晶振的特性取决于类型、封装以及制 造商。 用户应该查阅制造商的数据手册以 获知规范和推荐的应用场合。 2: 请总是在应用期望的 VDD 和温度范围下验 证振荡器的性能。 LP 振荡模式选择内部反相放大器的最低增益设置。 LP 模式的电流消耗是三种模式中最低的。 此模式只适合于 驱动 32.768 kHz 的调节音叉型晶振 (表面晶体)。 3: 要 获 取 振 荡 器 设 计 帮 助,请 参 见 以 下 Microchip 应用笔记: • AN826“ Crystal Oscillator Basics and Crystal Selection for rfPIC® and PIC® Devices”(DS00826) • AN849 “Basic PIC® Oscillator Design”(DS00849) • AN943 “Practical PIC® Oscillator Analysis and Design”(DS00943) • AN949 “Making Your Oscillator Work”(DS00949) XT 振荡模式选择内部反相放大器的中等增益设置。 XT 模式的电流消耗在三种模式中处于中等水平。此模式最 适合于驱动具有中等驱动电平规范的谐振器。 HS 振荡模式选择内部反相放大器的最高增益设置。 HS 模式的电流消耗是三种模式中最高的。 此模式最适合于 要求高电平驱动设置的谐振器。 图 4-3 和图 4-4 分别显示了典型的石英晶体谐振器和陶 瓷谐振器电路。 图 4-4: 陶瓷谐振器的工作原理 (XT 或 HS 模式) PIC® MCU 图 4-3: OSC1/CLKIN 石英晶振工作原理 (LP、 XT 或 HS 模式) C1 PIC® MCU 到内部 逻辑电路 RP(3) RF(2) Sleep OSC1/CLKIN C1 到内部 逻辑电路 石英 晶振 C2 注 RS(1) RF(2) C2 陶瓷 谐振器 RS(1) OSC2/CLKOUT Sleep 注 OSC2/CLKOUT 1: 用低电平驱动的石英晶振可能需要一个串联电 阻 (RS)。 1:用低电平驱动的陶瓷谐振器可能需要一个串联 电阻 (RS)。 2:RF 的值随选定的振荡模式而变化 (通常介于 2 MΩ 和 10 MΩ 之间)。 3:要让陶瓷谐振器正常工作可能还需要一个并联 反馈电阻 (RP)。 2: RF 的值随选定的振荡模式而变化 (通常介于 2 MΩ 和 10 MΩ 之间)。 DS41250F_CN 第 90 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 4.4.4 4.5 外部 RC 模式 外部阻容 (RC)模式支持使用外部 RC 电路。 当对时 钟精度要求不高时,外部 RC 模式可以让设计人员在选 择频率上有最大的灵活性,同时将成本保持在最低。有 两种模式:RC 和 RCIO。 在 RC 模式下,RC 电路与 OSC1 引脚相连。OSC2/CLKOUT 引脚输出 RC 振荡器频率的四分频。此信号可以为外部电 路、同步、校准、测试或其他应用要求提供时钟源。图 4-5 显示了外部 RC 模式的连接。 图 4-5: VDD 内部 时钟 CEXT VSS 建议值: 注 1. 2. HFINTOSC (高频内部振荡器)已经过厂家校 准,工作频率为 8 MHz。 用户可以通过软件使用 OSCTUNE 寄存器 (寄存器 4-2)对 HFINTOSC 的频率进行调节。 LFINTOSC(低频内部振荡器)未经过厂家校准, 工作频率大约为 31 kHz。 可以通过 OSCCON 寄存器的系统时钟选择 (SCS)位 选择外部或内部时钟源作为系统时钟。 更多详细信息, 请参见第 4.6 节 “时钟切换”。 PIC® MCU REXT FOSC/4 或 I/O(2) 该振荡器模块有两个独立的内部振荡器,可被配置或选 定为系统时钟源。 可以通过软件使用 OSCCON 寄存器的内部振荡器频率 选择位 IRCF<2:0> 选择系统时钟速度。 外部 RC 模式 OSC1/CLKIN 内部时钟模式 OSC2/CLKOUT(1) 10 kΩ ≤ REXT ≤ 100 kΩ(<3V) 3 kΩ ≤ REXT ≤ 100 kΩ (3-5V) CEXT > 20 pF (2-5V) 1: 第 1.0 节 “器件概述”中列出了备用引脚功 能。 2: 引脚输出取决于 RC 或 RCIO 时钟模式。 在 RCIO 模式下, RC 电路与 OSC1 引脚相连。 OSC2 引脚变成了一个附加的通用 I/O 引脚。 RC 振荡器的频率是供电电压、电阻 (REXT) 、电容 (CEXT)值以及工作温度的函数。其他影响振荡器频率 的因素有: • 门限电压差异 • 元件容差 • 电容封装差异 用户还需要考虑由于所使用的外部 RC 元件的容差所引 起的频率差异。 4.5.1 INTOSC 和 INTOSCIO 模式 当使用配置字寄存器 (CONFIG)中的振荡器选择位 (FOSC<2:0>)对器 件进 行编 程时, INTOSC 和 INTOSCIO 模式将内部振荡器配置为系统时钟源。更多 详细信息,请参见第 16.0 节 “CPU 的特性”。 在 INTOSC 模式下,OSC1/CLKIN 引脚可用作通用 I/O 引脚。OSC2/CLKOUT 引脚输出选定的内部振荡器频率 的四分频。 CLKOUT 信号可以为外部电路、同步、校 准、测试或其他应用需求提供时钟源。 在 INTOSCIO 模式下,OSC1/CLKIN 和 OSC2/CLKOUT 引脚可用作通用 I/O 引脚。 4.5.2 HFINTOSC 高频内部振荡器(HFINTOSC)是经过厂家校准、工作 频率 为 8 MHz 的内 部时 钟源。可 以通 过软 件使 用 OSCTUNE 寄存器 (寄存器 4-2)对 HFINTOSC 的频 率进行调节。 HFINTOSC 的输出连接到后分频器和多路开关 (见图 4-1)。可以通过软件使用OSCCON寄存器的IRCF<2:0> 位在七种频率中选择一种频率。 更多详细信息,请参见 第 4.5.4 节 “频率选择位 (IRCF)”。 通过选择 8 MHz 和 125 kHz 之间的任何频率 (通过将 OSCCON 寄存器的 IRCF<2:0> 位设置为≠ 000)作为 系统时钟源,然后将 OSCCON 寄存器中的系统时钟源 选择位 SCS 置 1 或使能双速启动 (通过将配置字寄存 器(CONFIG)中的 IESO 位置 1)来使能 HFINTOSC。 OSCCON 寄存器的 HF 内部振荡器 (HTS)位表示 HFINTOSC 是否稳定。 2007 Microchip Technology Inc. DS41250F_CN 第 91 页 PIC16F913/914/916/917/946 4.5.2.1 OSCTUNE 寄存器 HFINTOSC 已经过厂家的校准,但是可以用软件通过写 OSCTUNE 寄存器 (寄存器 4-2)对其进行调节。 OSCTUNE 寄存器的默认值是 0。该值是一个 5 位的二 进制补码。 寄存器 4-2: 当修改 OSCTUNE 寄存器时, HFINTOSC 将开始改变 到新的频率。 在此变动期间,代码会继续执行。 不会有 任何迹象表明发生了时钟变动。 OSCTUNE 不影响 LFINTOSC 的频率。依赖 LFINTOSC 时 钟 源 频 率 工 作 的 部 件,诸 如 上 电 延 时 定 时 器 (PWRT)、看门狗定时器(WDT)、故障保护时钟监视 器 (FSCM)以及外设,它们的工作不受频率更改的影 响。 OSCTUNE:振荡器调节寄存器 U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 — — — TUN4 TUN3 TUN2 TUN1 TUN0 bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位 , 读为 0 - n = 上电复位时的值 1= 置1 0 = 清零 bit 7-5 未实现:读为 0 bit 4-0 TUN<4:0>:频率调节位 01111 = 最高频率 01110 = • • • 00001 = 00000 = 振荡器模块以校准后的频率运行。 11111 = • • • 10000 = 最低频率 DS41250F_CN 第 92 页 x = 未知 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 4.5.3 LFINTOSC 低频内部振荡器 (LFINTOSC)是未经过校准、工作频 率大约为 31 kHz 的内部时钟源。 LFINTOSC的输出连接到后分频器和多路开关(见图4-1)。 可以通过软件使用 OSCCON 寄存器中的 IRCF<2:0> 位选 择 31 kHz。更多详细信息,请参见第 4.5.4 节 “频率选择 位(IRCF)”。LFINTOSC 输出的频率也是上电延时定时器 (PWRT)、看门狗定时器(WDT)和故障保护时钟监视器 (FSCM)的时钟频率。 通过选择 31 kHz(OSCCON 寄存器中的 IRCF<2:0> 位 = 000)作为系统时钟源 (OSCCON 寄存器中的 SCS 位 = 1)或者使能以下任何一项可以使能 LFINTOSC: • 双速启动 (配置字寄存器中的 IESO 位 = 1 且 OSCCON 寄存器中的 IRCF<2:0> 位 = 000) • 上电延时定时器 (PWRT) • 看门狗定时器 (WDT) • 故障保护时钟监视器 (FSCM) OSCCON 寄存器中的 LF 内部振荡器 (LTS)位表示 LFINTOSC 是否稳定。 4.5.4 频率选择位 (IRCF) 8 MHz HFINTOSC 的输出和 31 kHz LFINTOSC 的输出 连接到后分频器和多路开关(见图 4-1)。 OSCCON 寄 存器中的内部振荡器频率选择位 IRCF<2:0> 选择内部振 荡器的输出频率。通过软件可以选择八种频率中的一 种: 4.5.5 HF 和 LF INTOSC 时钟切换时序 当在 LFINTOSC 和 HFINTOSC 之间切换时,新的振荡 器可能已被关闭以节省功耗 (见图 4-6) 。 此时,在 OSCCON 寄存器中的 IRCF<2:0> 位被修改后到频率选 择生效之前将有一段延时。 OSCCON 寄存器的 LTS 和 HTS 位将反映 LFINTOSC 和 HFINTOSC 振荡器的当前 状态。频率选择的时序如下: 1. 2. 3. 4. 5. 6. 修改 OSCCON 寄存器中的 IRCF<2:0> 位。 如果新的时钟已关闭,将开始一段时钟起振延 时。 时钟切换电路等待当前时钟的下降沿。 CLKOUT 保持低电平,时钟切换电路等待新的时 钟的上升沿。 CLKOUT 现在与新的时钟连接。 按照要求更新 OSCCON 寄存器中的 LTS 和 HTS 位。 时钟切换完成。 详情请见图 4-1。 如果选定的内部振荡器频率介于 125 kHz 和 8 MHz 之 间,在选定新的频率之前将没有起振延时。这是因为旧 的和新的频率都是由 HFINTOSC 通过后分频器和多路 开关后得到的。 第 19.0 节 “电气规范”中的振荡器参数给出了起振延时 规范。 • 8 MHz • • • • • • 4 MHz (复位后的默认值) 2 MHz 1 MHz 500 kHz 250 kHz 125 kHz • 31 kHz (LFINTOSC) 注: 发生任何复位后, OSCCON 寄存器中的 IRCF<2:0> 位被设置为 110 且频率选择被 设置为 4 MHz。 用户可以修改 IRCF 位以 选择不同的频率。 2007 Microchip Technology Inc. DS41250F_CN 第 93 页 PIC16F913/914/916/917/946 图 4-6: 内部振荡器切换时序 HFINTOSC LFINTOSC(禁止 FSCM 和 WDT) HFINTOSC 起振时间 2 周期同步 运行 2 周期同步 运行 LFINTOSC ≠0 IRCF<2:0> =0 系统时钟 HFINTOSC LFINTOSC(使能 FSCM 或 WDT) HFINTOSC LFINTOSC ≠0 IRCF<2:0> =0 系统时钟 LFINTOSC HFINTOSC 除非使能 WDT 或 FSCM,否则 LFINTOSC 振荡器关闭 LFINTOSC 起振时间 2 周期同步 运行 HFINTOSC IRCF<2:0> =0 ≠0 系统时钟 DS41250F_CN 第 94 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 4.6 时钟切换 通过软件使用OSCCON寄存器的系统时钟选择(SCS) 位可以在外部和内部时钟源之间切换系统时钟源。 4.6.1 系统时钟选择 (SCS)位 OSCCON 寄存器的系统时钟选择 (SCS)位选择供 CPU 和外设使用的系统时钟源。 • 当 OSCCON 寄存器中的 SCS 位 = 0 时,系统时 钟源由配置字寄存器 (CONFIG)中的 FOSC<2:0> 位的配置决定。 • 当 OSCCON 寄存器中的 SCS 位 = 1 时,系统时 钟源由通过 OSCCON 寄存器中的 IRCF<2:0> 位 选定的内部振荡器频率决定。复位后, OSCCON 寄存器中的 SCS 位总是清零。 注: 4.6.2 可能由双速启动或故障保护时钟监视器引 起的任何自动时钟切换将不会更新 OSCCON 寄存器中的 SCS 位。 用户可以 监视 OSCCON 寄存器中的 OSTS 位来确定 当前的系统时钟源。 振荡器起振延时状态 (OSTS)位 OSCCON 寄存器中的振荡器起振延时状态(OSTS)位 表明系统时钟是来自于由配置字寄存器 (CONFIG)中 的 FOSC<2:0> 位定义的外部时钟源还是来自于内部时 钟源。特别地,当处于 LP、 XT 或 HS 模式时, OSTS 表示振荡器起振定时器 (OST)已经超时溢出。 4.7 双速时钟启动模式 双速时钟启动模式通过使外部振荡器起振到代码执行之 间的延时达到最小而进一步降低功耗。在大量利用休眠 模式的应用中,双速启动将使唤醒所花费的时间中不包 含振荡器的起振时间,并能降低器件的总功耗。 此模式允许应用从休眠状态唤醒,使用 INTOSC 作为时 钟源来执行一些指令,然后返回休眠状态,无需等待主 振荡器稳定后让其充当执行指令的时钟源。 注: 当振荡器模块被配置为 LP、 XT 或 HS 模式时,振荡器 起振定时器 (OST)被使能 (见第 4.4.1 节 “振荡器起 振定时器 (OST)”)。 OST 定时器将暂停程序执行直 到计数完 1024 次振荡为止。 双速启动模式通过在 OST 计数时使用内部振荡器作为时钟源,最大限度地缩短代 码执行的延时。当 OST 计数达到 1024 且 OSCCON 寄 存器中的 OSTS 位置 1 时,程序执行将切换到由外部振 荡器充当时钟源。 4.7.1 双速启动模式的配置 通过下列设置配置双速启动模式: • IESO (配置字寄存器中) = 1 ;内部 / 外部切换 位 (使能双速启动模式)。 • SCS (OSCCON 寄存器中) = 0。 • 将配置字寄存器 (CONFIG)中的 FOSC<2:0> 位 配置为 LP、 XT 或 HS 模式。 发生下列事件后进入双速启动模式: • 上电复位 (POR)后,上电延时定时器 (PWRT) 延时结束 (如果使能)后,或者 • 从休眠状态唤醒后。 如果外部时钟振荡器被配置为除 LP、 XT 或 HS 以外的 任何其他模式,那么双速启动将被禁止。 这是因为在上 电复位后或从休眠状态退出后,外部时钟振荡器将不需 要任何稳定时间。 4.7.2 1. 2. 3. 4. 5. 6. 7. 双速启动时序 发生上电复位或从休眠状态唤醒。 以内部振荡器作为时钟源 (以 OSCCON 寄存器 中的 IRCF<2:0> 位设置的频率)开始执行指令。 使能 OST 计数 1024 个时钟周期。 OST 超时,等待内部振荡器的下降沿。 OSTS 置 1。 系统时钟保持低电平直到新的时钟的下一个下降 沿 (LP、 XT 或 HS 模式)。 系统时钟切换到外部时钟源。 执行 SLEEP 指令将中止振荡器起振延时并 将使 OSCCON 寄存器中的 OSTS 位保持清 零。 2007 Microchip Technology Inc. DS41250F_CN 第 95 页 PIC16F913/914/916/917/946 4.7.3 检查双速时钟状态 检查 OSCCON 寄存器中的 OSTS 位的状态可确定单片 机 是 在 使 用 由 配 置 字 寄 存 器 (CONFIG)中 的 FOSC<2:0> 位定义的外部时钟源还是内部振荡器。 图 4-7: 双速启动 HFINTOSC TOST OSC1 0 1 1022 1023 OSC2 程序计数器 PC - N PC PC + 1 系统时钟 DS41250F_CN 第 96 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 4.8 4.8.3 故障保护时钟监视器 故障保护时钟监视器 (FSCM)旨在使器件能在外部振 荡器发生故障时继续运行。FSCM 可以检测当振荡器起 振定时器(OST)延时结束后的任何时刻发生的振荡器 故障。 通过将配置字寄存器 (CONFIG)中的 FCMEN 位置 1 使能 FSCM 功能。它适用于所有外部振荡器模式 (LP、 XT、 HS、 EC、 RC 和 RCIO 模式)。 图 4-8: FSCM 框图 外部 时钟 LFINTOSC 振荡器 ÷ 64 31 kHz ( 约 32 µs) 488 HZ (约 2 ms) 采样时钟 4.8.1 在复位后、执行了 SLEEP 指令或者修改了 OSCCON 寄 存器中的 SCS 位后将清除故障保护条件。 如果修改 SCS 位, OST 将重新起振。OST 运行时,器件将继续 使用在 OSCCON 中选择的 INTOSC 作为系统时钟。 OST 超时后,故障保护条件会被清除,器件将使用外部 时钟源作为系统时钟。必须先清除故障保护条件才能清 零 OSFIF 标志位。 4.8.4 时钟监视 锁存器 S Q R Q 清除故障保护条件 复位或从休眠状态唤醒 FSCM 设计为检测在振荡器起振定时器(OST)延时结 束后发生的振荡器故障。从休眠状态唤醒和任何类型的 复位之后使用 OST。OST 不与 EC 或 RC 时钟模式一起 使用,因此 FSCM 将在复位或唤醒后立即生效。 使能 FSCM 也将使能双速启动。 因此,在 OST 运行时,器 件将始终执行代码。 注: 检测到 时钟故障 由于振荡器的起振时间范围很广,故障保 护电路在振荡器起振期间 (即,从复位或 休眠状态退出后)不工作。 在一段适当的 时间后,用户应该检查 OSCCON 寄存器的 OSTS 位以验证振荡器起振和系统时钟切 换是否已经成功完成。 故障保护检测 FSCM 模块通过将外部振荡器和 FSCM 采样时钟进行比 较检测有故障的振荡器。通过对 LFINTOSC 时钟进行 64 分频得到 FSCM 采样时钟。参见图 4-8。故障检测电 路内部有一个锁存器。在外部时钟的每个下降沿上将锁 存器置 1。在采样时钟的每个上升沿将锁存器清零。如 果采样时钟的一个完整半周期在主时钟变为低电平之前 结束,则将检测到故障。 4.8.2 故障保护工作原理 当外部时钟发生故障时,FSCM 将器件时钟切换到内部 时钟源,并将 PIR2 寄存器中的 OSFIF 标志位置 1,且 如果 PIE2 寄存器的 OSFIE 位也置 1, 将产生振荡器故 障中断。器件固件可采取措施以减轻可能由故障时钟造 成的问题。系统时钟将继续采用内部时钟源,直到器件 固件成功地重启外部振荡器并使时钟重新切换到外部振 荡器为止。 FSCM 选择的内 部时钟 源由 OSCCON 寄 存器中 的 IRCF<2:0> 位决定,从而允许在故障发生之前配置内部 振荡器。 2007 Microchip Technology Inc. DS41250F_CN 第 97 页 PIC16F913/914/916/917/946 图 4-9: FSCM 时序图 采样时钟 振荡器 故障 系统 时钟 输出 时钟监视器输出 (Q) 检测到 故障 OSCFIF 检测 注: 表 4-2: 名称 检测 检测 通常,系统时钟的频率比采样时钟高很多。 本例中选择的相对频率是为了明了起见。 与时钟源相关的寄存器汇总 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 上电复位与欠 压复位时的值 所有其他 复位时的值 (1) CONFIG(2) CPD CP MCLRE PWRTE WDTE FOSC2 FOSC1 FOSC0 — — INTCON GIE PEIE T0IE INTE RBIE T0IF INTF RBIF 0000 000x 0000 000x OSCCON — IRCF2 IRCF1 IRCF0 OSTS HTS LTS SCS -110 x000 -110 x000 OSCTUNE — — — TUN4 TUN3 TUN2 TUN1 TUN0 ---0 0000 ---u uuuu PIE2 OSFIE C2IE C1IE LCDIE — LVDIE — CCP2IE 0000 -0-0 0000 -0-0 PIR2 OSFIF C2IF C1IF LCDIF — LVDIF — CCP2IF 0000 -0-0 0000 -0-0 T1GINV TMR1GE T1CKPS1 T1CKPS0 T1OSCEN T1SYNC 0000 0000 0000 0000 T1CON 图注: 注 1: 2: TMR1CS TMR1ON x = 未知, u = 不变,- = 未实现单元 (读为 0)。振荡器不使用阴影单元。 其他 (非上电)复位包括正常工作期间的 MCLR 复位和看门狗定时器复位 。 有关寄存器所有位的操作请参见配置字寄存器 (CONFIG)。 DS41250F_CN 第 98 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 5.0 TIMER0 模块 5.1 用作定时器时,Timer0 模块既可用作 8 位定时器也可用 作 8 位计数器。 Timer0 模块是具有以下特点的 8 位定时器 / 计数器: • • • • • Timer0 工作原理 8 位定时器 / 计数器寄存器 (TMR0) 8 位预分频器 (与看门狗定时器共享) 可编程的内部或外部时钟源 可编程的外部时钟边沿选择 溢出中断 5.1.1 8 位定时器模式 用作定时器时,Timer0 模块在每个指令周期均会递增 1 (不带预分频器)。 通过将 OPTION 寄存器中的 T0CS 位清零可选择定时器模式。 图 5-1 是 Timer0 模块的框图。 如果对 TMR0 执行写操作,则在接下来的两个指令周 期,它都不会递增 1。 注: 5.1.2 可调整写入 TMR0 寄存器的值,使得在写 入 TMR0 时计入两个指令周期的延时。 8 位计数器模式 用作计数器时,Timer0 模块将在 T0CKI 引脚信号的每个 上升沿或下降沿进行递增计数。具体是上升沿还是下降 沿由 OPTION 寄存器的 T0SE 位决定。通过将 T0CS 位 置 1 可选择计数器模式。 图 5-1: TIMER0/WDT 预分频器框图 FOSC/4 数据总线 0 8 1 同步 2 个 Tcy 1 T0CKI 引脚 TMR0 0 T0SE 0 T0CS 8位 预分频器 溢出时将 标志位 T0IF 置 1 PSA 1 8 PSA WDTE SWDTEN PS<2:0> 16 位 预分频器 31 kHz INTOSC 1 WDT 超时 0 16 看门狗 定时器 PSA WDTPS<3:0> 注 1: T0SE、 T0CS、 PSA 和 PS<2:0> 位在 OPTION 寄存器中。 2: SWDTEN 和 WDTPS<3:0> 位在 WDTCON 寄存器中。 3: WDTE 位在配置字寄存器中。 2007 Microchip Technology Inc. DS41250F_CN 第 99 页 PIC16F913/914/916/917/946 5.1.3 软件可编程预分频器 Timer0 和看门狗定时器 (WDT)共用一个软件可编程 预分频器,但不能同时使用。通过 OPTION 寄存器中的 PSA 控制位控制预分频器的分配。清零 PSA 位可将预 分频器分配给 Timer0。 Timer0 模块具有 8 种预分频比选择,范围为 1:2 至 1:256。可通过 OPTION 寄存器中的 PS<2:0> 位选择预 分频比。要使 Timer0 模块具有 1:1 的预分频比,必须将 预分频器分配给 WDT 模块。 该预分频器不可读写。当将其分配给 Timer0 模块时,所 有对 TMR0 寄存器执行写操作的指令都将清零预分频 器。 当将其分配给 WDT 时,执行 CLRWDT 指令将同时清零 预分频器和 WDT。 5.1.3.1 在 Timer0 模块和 WDT 模块之间切 换预分频器 将预分频器分配给 Timer0 或 WDT 后,在切换预分频比 时可能会产生意外的器件复位。 当将预分频器从分配给 Timer0 改为分配给 WDT 模块时,必须执行例 5-1 所示 的指令序列。 例 5-1: 更改预分频器 (TIMER0 → WDT) BANKSEL CLRWDT CLRF TMR0 BANKSEL BSF CLRWDT OPTION_REG OPTION_REG,PSA MOVLW ANDWF IORLW MOVWF b’11111000’ OPTION_REG,W b’00000101’ OPTION_REG TMR0 DS41250F_CN 第 100 页 ; ;Clear WDT ;Clear TMR0 and ;prescaler ; ;Select WDT ; ; ;Mask prescaler ;bits ;Set WDT prescaler ;to 1:32 要将预分频器从分配给 WDT 改为分配给 Timer0 模块, 必须执行以下指令序列 (见例 5-2)。 例 5-2: 更改预分频器 (WDT → TIMER0) CLRWDT ;Clear WDT and ;prescaler BANKSEL OPTION_REG ; MOVLW b’11110000’ ;Mask TMR0 select and ANDWF OPTION_REG,W ;prescaler bits IORLW b’00000011’ ;Set prescale to 1:16 MOVWF OPTION_REG ; 5.1.4 TIMER0 中断 当 TMR0 寄存器从 FFh 溢出至 00h 时,会产生 Timer0 中断。每次 TMR0 寄存器溢出时,不论是否允许 Timer0 中断,INTCON 寄存器中的 T0IF 中断标志位都会置 1。 必须用软件将 T0IF 位清零。 Timer0 中断允许位是 INTCON 寄存器中的 T0IE 位。 注: 5.1.5 由于在休眠状态下定时器是关闭的,所以 Timer0 中断无法唤醒处理器。 将 TIMER0 与外部时钟一起使用 当 Timer0 工作在计数器模式下时,在内部相位时钟的 Q2 和 Q4 周期对预分频器输出进行采样,可实现 T0CKI 输入与 Timer0 寄存器的同步。因此,外部时钟源的高、 低电平时间必须符合第 19.0 节 “电气规范”给出的时 序要求。 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 寄存器 5-1: OPTION_REG:OPTION 寄存器 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0 bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位,读为 0 - n = 上电复位时的值 1=置1 0 = 清零 bit 7 RBPU:PORTB 上拉使能位 1 = 禁止 PORTB 上拉 0 = 按各个端口锁存值使能 PORTB 上拉 bit 6 INTEDG:中断边沿选择位 1 = 在 INT 引脚的上升沿触发中断 0 = 在 INT 引脚的下降沿触发中断 bit 5 T0CS:TMR0 时钟源选择位 1 = 在 T0CKI 引脚信号的跳变沿 0 = 内部指令周期时钟 (FOSC/4) bit 4 T0SE:TMR0 时钟源边沿选择位 1 = 在 T0CKI 引脚信号的下降沿进行递增计数 0 = 在 T0CKI 引脚信号的上升沿进行递增计数 bit 3 PSA:预分频器分配位 1 = 将预分频器分配给 WDT 0 = 将预分频器分配给 Timer0 模块 bit 2-0 PS<2:0>:预分频比选择位 位值 TMR0 分频比 WDT 分频比 000 001 010 011 100 101 110 111 1:2 1:4 1:8 1 : 16 1 : 32 1 : 64 1 : 128 1 : 256 1:1 1:2 1:4 1:8 1 : 16 1 : 32 1 : 64 1 : 128 x = 未知 1: 可使用专用 16 位 WDT 后分频器。更多信息,请参见第 16.4 节 “看门狗定时器 (WDT)”。 注 表 5-1: 与 TIMER0 相关的寄存器汇总 Bit 7 名称 TMR0 OPTION_REG 图注: Bit 5 Timer0 模块寄存器 GIE PEIE T0IE INTCON TRISA Bit 6 RBPU INTEDG T0CS Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 上电复位与欠 所有其他 压复位时的值 复位时的值 xxxx xxxx uuuu uuuu INTE RBIE T0IF INTF RBIF 0000 000x 0000 000x T0SE PSA PS2 PS1 PS0 1111 1111 1111 1111 TRISA7 TRISA6 TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA0 1111 1111 1111 1111 - = 未实现单元 (读为 0), u = 不变,x = 未知。Timer0 模块不使用阴影单元。 2007 Microchip Technology Inc. DS41250F_CN 第 101 页 PIC16F913/914/916/917/946 6.0 带门控的 TIMER1 模块 6.1 Timer1 工作原理 Timer1 模块是一个通过 TMR1H:TMR1L 寄存器对访问 的 16 位递增计数器。写入 TMR1H 或 TMR1L 可直接更 新该计数器。 Timer1 模块是具有以下特点的 16 位定时器 / 计数器: • 16 位定时器/计数器寄存器对 (TMR1H:TMR1L) • 可编程的内部或外部时钟源 • 3 位预分频器 • 可选 LP 振荡器 • 同步或异步操作 • 通过比较器或 T1G 引脚提供 Timer1 门控信号 (使能计数) • 溢出中断 • 溢出时唤醒 (仅外部时钟异步模式) • LCD 模块的时钟源 当与内部时钟源一同使用时,该模块用作定时器。当与 外部时钟源一同使用时,该模块可用作定时器或计数 器。 6.2 时钟源选择 T1CON 寄存器中的 TMR1CS 位用于选择时钟源。 当 TMR1CS = 0 时,时钟源频率为 FOSC/4。当 TMR1CS = 1 时,时钟源由外部提供。 图 6-1 是 Timer1 模块的框图。 图 6-1: TMR1CS 时钟源 FOSC/4 0 T1CKI 引脚 1 TIMER1 框图 TMR1GE T1GINV TMR1ON 溢出时 将标志位 TMR1IF 置 1 到 C2 比较器模块 Timer1 时钟 TMR1(2) TMR1H TMR1L EN (1) OSC1/T1OSI 1 到 LCD 模块 LP OSC 同步 时钟输入 0 T1SYNC 1 1 0 OSC2/T1OSO FOSC/4 内部 时钟 FOSC = 000 FOSC = x00 TMR1CS T1OSCEN 同步 (3) 预分频器 1, 2, 4, 8 检测 0 2 T1CKPS<1:0> T1G 1 SYNCC2OUT(4) T1CKI 0 T1GSS 注 1: 2: 3: 4: ST 缓冲器在使用 LP 振荡器时处于低功耗模式,而在使用 T1CKI 时处于高速模式。 Timer1 寄存器在上升沿递增 1。 休眠时不进行同步。 当 CMCON1 寄存器中的 C2SYNC 位置 1 时执行 SYNCC2OUT 同步。 DS41250F_CN 第 102 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 6.2.1 内部时钟源 如果选择使用内部时钟源,TMR1H:TMR1L 寄存器对将 以 TCY 的倍数为频率递增,具体倍数由 Timer1 预分频器 决定。 6.2.2 外部时钟源 如果选择使用外部时钟源,Timer1 模块可作为定时器或 计数器。 计数时,Timer1 在外部时钟输入 T1CKI 的上升沿递增。 此外,计数器模式下的时钟可以与单片机系统时钟同步 或异步运行。 6.5 如果 T1CON 寄存器的控制位 T1SYNC 被置 1,外部时 钟输入就不同步。定时器继续进行与内部相位时钟异步 的递增计数。 在休眠状态下定时器仍将继续运行,并在 溢出时产生中断,从而唤醒处理器。 但是,在用软件对 定时器进行读 / 写操作时应该特别小心 (见第 6.5.1 节 “异步计数器模式下对 Timer1 的读写操作”)。 注 在计数器模式下,必须先经过一个下降沿,计数器才可 以在发生下列一个或多个条件时进行第一次递增计数: • 在上电复位或欠压复位后使能 Timer1 • 写入 TMR1H 或 TMR1L • 当禁止 Timer1 时, T1CKI 为高电平;而重新使能 Timer1 时, T1CKI 为低电平。请参见图 6-2。 6.3 Timer1 预分频器 Timer1 具有四种预分频比选择,允许对时钟输入进行 1、2、4 或 8 分频。T1CON 寄存器的 T1CKPS 位控制 该预分频计数器。不能直接对预分频计数器进行读写操 作;但是,通过写入 TMR1H 或 TMR1L 可清零预分频计 数器。 6.4 Timer1 振荡器 在引脚 OSC1 (输入)和 OSC2 (放大器输出)之间连 接一个内置的低功耗 32.768 kHz 晶振。将 T1CON 寄存 器的 T1OSCEN 控制位置 1 可使能该振荡器。该振荡器 将在休眠期间继续工作。 Timer1 振荡器与系统 LP 振荡器共享。因此,Timer1 只 有在由内部振荡器提供主系统时钟或处于 LP 振荡器模 式时才可使用此模式。用户必须提供软件延时来确保振 荡器正确起振。 当使能 Timer1 振荡器时, TRISA7 和 TRISA6 位被置 1。RA7 和RA6 读为0,且 TRISA7 和TRISA6位读为 1。 注: 在使用振荡器之前需要一段起振和稳定时 间。因此,在使能Timer1前应将T1OSCEN 置 1 并经过适当的延时。 2007 Microchip Technology Inc. 在异步计数器模式下的 Timer1 工作 原理 6.5.1 1: 当从同步操作切换到异步操作模式时,有 可能跳过一次递增。 当从异步操作切换到 同步操作模式时,有可能产生一次额外的 递增。 异步计数器模式下对 TIMER1 的读写 操作 当定 时器 采用 外部 异步 时钟 工作 时,对 TMR1H 或 TMR1L 的读操作将确保有效(硬件操作时应当注意)。 但是用户应注意,通过两个 8 位值本身来读取 16 位定 时器会产生某些问题,因为定时器可能在读操作之间产 生溢出。 对于写操作,建议用户停止定时器后再写入需要的数 值。当计数器正在递增计数时,向定时器的寄存器写入 数据可能会产生写争用, 从而在 TMR1H:TMR1L 寄存 器对中产生不可预测的值。 6.6 Timer1 门控 可用软件将Timer1 门控信号源配置为 T1G 引脚或比较器 C2的输出。这让器件可以直接使用T1G 为外部事件定时 或使用比较器C2为模拟事件定时。有关如何选择Timer1 门控信号源的更多信息,请参见 CMCON1 寄存器 (寄 存器 8-2)。此功能部件可以仅仅是 ∆-Σ A/D 转换器的软 件,也可以是很多其他应用。欲知有关 ∆-Σ A/D 转换器的 更多信息,请访问Microchip 网站(www.microchip.com)。 注: 必须将 T1CON 寄存器的 TMR1GE 位置 1 以使用 Timer1 门控。 可使用 T1CON 寄存器的 T1GINV 位来设置 Timer1 门 控信号的极性,门控信号可以来自 T1G 引脚也可以来自 比较器 C2 的输出。该位可将 Timer1 配置为对两个事件 之间的高电平时间或低电平时间进行计时。 DS41250F_CN 第 103 页 PIC16F913/914/916/917/946 6.7 Timer1 中断 6.8 休眠期间的 Timer1 工作原理 Timer1 寄存器对(TMR1H:TMR1L)递增计数到 FFFFh 后,计满返回到 0000h。当 Timer1 计满返回时, PIR1 寄存器的 Timer1 中断标志位置 1。要允许该溢出中断, 用户应将以下位置 1: 只有设置为异步计数器模式时,Timer1 才可在休眠模式 下工作。在该模式下,可使用外部晶振或时钟源使计数 器进行递增计数。 通过如下设置使定时器能够唤醒器 件: • PIE1 寄存器的 Timer1 中断允许位 • INTCON 寄存器的 PEIE 位 • INTCON 寄存器的 GIE 位 • 必须将 T1CON 寄存器的 TMR1ON 位置 1 • 必须将 PIE1 寄存器的 TMR1IE 位置 1 • 必须将 INTCON 寄存器的 PEIE 位置 1 在中断服务程序中将 TMR1IF 位清零可以清除该中断。 器 件 将 在溢 出 时 被 唤 醒 并 执 行 下一 条 指 令。如 果 将 INTCON 寄存器的 GIE 位置 1,器件将调用中断服务程 序 (0004h)。 允许该中断前,应将 TMR1H:TMR1L 寄存 器对以及 TMR1IF 位清零。 注: 6.9 LCD 模块的时钟源 Timer1 振荡器可用于为 LCD 模块提供时钟。 可将该时 钟设置为在休眠期间继续运行。 更多详细信息,请参见第 10.0 节 “液晶显示 (LCD) 驱动模块”。 图 6-2: TIMER1 递增边沿 T1CKI = 1 当 TMR1 使能时 T1CKI = 0 当 TMR1 使能时 注 1: 箭头表示计数器递增。 2: 在计数器模式下,必须先经过一个下降沿,计数器才可以在随后的上升沿进行第一次递增计数。 DS41250F_CN 第 104 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 6.10 Timer1 控制寄存器 Timer1 控制寄存器 (T1CON)如寄存器 6-1 所示,用 于控制 Timer1 并选择 Timer1 模块的各种功能。 寄存器 6-1: T1CON:TIMER 1 控制寄存器 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 T1GINV(1) TMR1GE(2) T1CKPS1 T1CKPS0 T1OSCEN T1SYNC TMR1CS TMR1ON bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位,读为 0 - n = 上电复位时的值 1=置1 0 = 清零 bit 7 T1GINV:Timer1 门控信号极性位 (1) 1 = Timer1 门控信号高电平有效 (门控信号为高电平时 Timer1 计数) 0 = Timer1 门控信号低电平有效 (门控信号为低电平时 Timer1 计数) bit 6 TMR1GE:Timer1 门控使能位 (2) 如果 TMR1ON = 0: 此位被忽略。 如果 TMR1ON = 1: 1 = Timer1 计数由 Timer1 门控功能控制 0 = Timer1 总是计数 bit 5-4 T1CKPS<1:0>:Timer1 输入时钟预分频比选择位 11 = 1:8 预分频比 10 = 1:4 预分频比 01 = 1:2 预分频比 00 = 1:1 预分频比 bit 3 T1OSCEN:LP 振荡器使能控制位 如果单片机正在使用不带 CLKOUT 振荡器的 INTOSC: 1 = 使能 LP 振荡器作为 Timer1 的时钟源 0 = LP 振荡器关闭 否则: 此位被忽略。禁止 LP 振荡器。 bit 2 T1SYNC:Timer1 外部时钟输入同步控制位 TMR1CS = 1: 1 = 不与外部时钟输入同步 0 = 与外部时钟输入同步 TMR1CS = 0: 此位被忽略。Timer1 使用内部时钟。 bit 1 TMR1CS:Timer1 时钟源选择位 1 = 来自 T1CKI 引脚的外部时钟源 (在上升沿触发) 0 = 内部时钟源 (FOSC/4) bit 0 TMR1ON:Timer1 使能位 1 = 使能 Timer1 0 = 禁止 Timer1 注 x = 未知 1: T1GINV 位可使 Timer1 门控信号的逻辑电平反相,而不管门控信号源如何。 2: TMR1GE 位必须置 1 以便使用由 CMCON1 寄存器的 T1GSS 位选择的 T1G 引脚或 C2OUT 作为 Timer1 的门控信号源。 2007 Microchip Technology Inc. DS41250F_CN 第 105 页 PIC16F913/914/916/917/946 表 6-1: 名称 与 TIMER1 相关的寄存器汇总 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 上电复位与欠 压复位时的值 所有其他 复位时的值 CMCON1 — — — — — — T1GSS C2SYNC ---- --10 ---- --10 INTCON GIE PEIE T0IE INTE RBIE T0IF INTF RBIF 0000 000x 0000 000x PIE1 EEIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000 EEIF ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF PIR1 0000 0000 0000 0000 TMR1H 16 位 TMR1 寄存器高字节的保持寄存器 xxxx xxxx uuuu uuuu TMR1L 16 位 TMR1 寄存器低字节的保持寄存器 xxxx xxxx uuuu uuuu 0000 0000 uuuu uuuu T1CON 图注: T1GINV TMR1GE T1CKPS1 T1CKPS0 T1OSCEN T1SYNC TMR1CS TMR1ON x = 未知, u = 不变, - = 未实现单元 (读为 0)。 Timer1 模块不使用阴影单元。 DS41250F_CN 第 106 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 7.0 TIMER2 模块 TMR2 和 PR2 寄存器都是完全可读写的。任何复位时, TMR2寄存器被设置为 00h,PR2寄存器被设置为 FFh。 Timer2 模块是具有以下特点的 8 位定时器: • • • • • 通过将T2CON寄存器中的TMR2ON位置1使能Timer2。 通过将 TMR2ON 位清 0 禁止 Timer2。 8 位定时器寄存器 (TMR2 寄存器) 8 位周期寄存器 (PR2 寄存器) TMR2 与 PR2 匹配时产生中断 可软件编程的预分频比 (1:1、 1:4 和 1:16) 可软件编程的后分频比 (1:1 到 1:16) Timer2 预分频器由 T2CON 寄存器的 T2CKPS 位控制。 Timer2 后分频器由 T2CON 寄存器的 TOUTPS 位控制。 预分频器和后分频器计数器在以下情况下被清零: • 对 TMR2 进行写操作。 • 对 T2CON 进行写操作。 • 发生任何器件复位 (上电复位、 MCLR 复位、看 门狗定时器复位或者欠压复位)。 Timer2 的框图请参见图 7-1。 7.1 Timer2 工作原理 注: 到 Timer2 模块的时钟输入是系统指令时钟(FOSC/4)。 时钟输入到 Timer2 预分频器,有如下几种分频比可供 选择:1:1、 1:4 或 1:16。预分频器的输出随后用于使 TMR2 寄存器递增。 写 T2CON 不会使 TMR2 清零。 不断将 TMR2 和 PR2 的值进行比较以确定它们何时匹 配。 TMR2 将从 00h 开始递增,直至与 PR2 中的值匹 配。发生匹配时,会发生以下两个事件: • TMR2 在下一个递增周期被复位为 00h。 • Timer2 后分频器递增。 Timer2/PR2 比较器的匹配输出值随后输入到 Timer2 后 分频器。后分频器具有 1:1 至 1:16 的预分频比可供选 择。 Timer2 后分频器的输出用于将 PIR1 寄存器中的 TMR2IF 中断标志位置 1。 图 7-1: TIMER2 框图 TMR2 输出 FOSC/4 预分频器 1:1, 1:4, 1:16 2 TMR2 将标志位 TMR2IF 置 1 复位 比较器 相等 后分频器 1:1 至 1:16 T2CKPS<1:0> PR2 4 TOUTPS<3:0> 2007 Microchip Technology Inc. DS41250F_CN 第 107 页 PIC16F913/914/916/917/946 寄存器 7-1: T2CON:TIMER 2 控制寄存器 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 — TOUTPS3 TOUTPS2 TOUTPS1 TOUTPS0 TMR2ON T2CKPS1 T2CKPS0 bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位,读为 0 - n = 上电复位时的值 1=置1 0 = 清零 bit 7 未实现:读为 0 bit 6-3 TOUTPS<3:0>:Timer2 输出后分频比选择位 0000 = 1:1 后分频比 0001 = 1:2 后分频比 0010 = 1:3 后分频比 0011 = 1:4 后分频比 0100 = 1:5 后分频比 0101 = 1:6 后分频比 0110 = 1:7 后分频比 0111 = 1:8 后分频比 1000 = 1:9 后分频比 1001 = 1:10 后分频比 1010 = 1:11 后分频比 1011 = 1:12 后分频比 1100 = 1:13 后分频比 1101 = 1:14 后分频比 1110 = 1:15 后分频比 1111 = 1:16 后分频比 bit 2 TMR2ON:Timer2 使能位 1 = 使能 Timer2 0 = 禁止 Timer2 bit 1-0 T2CKPS<1:0>:Timer2 时钟预分频比选择位 00 = 预分频比为 1 01 = 预分频比为 4 1x = 预分频比为 16 表 7-1: 名称 x = 未知 与 TIMER2 相关的寄存器汇总 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 上电复位与欠 压复位时的值 所有其他复位 时的值 0000 000x INTCON GIE PEIE T0IE INTE RBIE T0IF INTF RBIF 0000 000x PIE1 EEIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000 PIR1 EEIF ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 0000 0000 0000 0000 PR2 Timer2 模块周期寄存器 1111 1111 1111 1111 TMR2 8 位 TMR2 寄存器的保持寄存器 0000 0000 0000 0000 -000 0000 -000 0000 T2CON — 图注: x = 未知, u = 不变, — = 未实现单元 (读为 0)。 Timer2 模块不使用阴影单元。 TOUTPS3 DS41250F_CN 第 108 页 TOUTPS2 TOUTPS1 TOUTPS0 TMR2ON T2CKPS1 T2CKPS0 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 8.0 比较器模块 比较器用作模拟电路与数字电路的接口,通过比较两个 模拟电压的大小并输出一个数字量以指示输入量的相对 大小。它是非常有用的复合信号构建块,因为它可以提 供独立于程序执行的模拟功能。 模拟比较器模块包含如 下特性: • • • • • • • • • 双比较器 多个比较器配置 可从外部或内部获取比较器输出 可编程输出极性 电平变化中断 从休眠唤醒 Timer1 门控 (使能计数) 输出与 Timer1 时钟输入同步 可编程参考电压 注: 8.1 比较器概述 图 8-1 给出了某个比较器及其模拟输入电压和数字输出 电平之间的关系。如果 VIN+ 上的模拟输入电压低于 VIN上的模拟电压,比较器输出数字低电平。 如果 VIN+ 上 的模拟电压高于 VIN- 上的模拟电压,比较器输出数字高 电平。 图 8-1: 单比较器 VIN+ + VIN- – 输出 VINVIN+ 仅比较器 C2 与 Timer1 相关联。 输出 注: 比较器输出的阴影区表示因输入失调和 响应时间所造成的不确定区。 图 8-2 和图 8-3 给出了该器件包含的两个比较器。 这两 个比较器不可单独配置。 2007 Microchip Technology Inc. DS41250F_CN 第 109 页 PIC16F913/914/916/917/946 图 8-2: 比较器 C1 输出框图 多路开关 端口引脚 C1INV 至 C1OUT 引脚 C1 D Q1 至数据总线 Q EN 读 CMCON0 将 C1IF 位置 1 D Q3* 读 CMCON0 Q EN CL 复位 注 1: Q1 和 Q3 为四相系统时钟 (FOSC)的相位。 2: 在休眠模式下, Q1 保持高电平。 图 8-3: 比较器 C2 输出框图 C2SYNC 至 SYNCC2OUT 多路开关 端口引脚 C2INV 0 C2 D Q D Q 至 C2OUT 引脚 1 Timer1 时钟源 (1) Q1 EN 至数据总线 读 CMCON0 将 C2IF 位置 1 D Q3* 读 CMCON0 Q EN CL 复位 注 1: 比较器输出在 Timer1 时钟源的下降沿被锁存。 2: Q1 和 Q3 为四相系统时钟 (FOSC)的相位。 3: 在休眠模式下, Q1 保持高电平。 DS41250F_CN 第 110 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 8.1.1 模拟输入连接注意事项 图 8-4 是一个简化的模拟输入电路。 由于模拟输入引脚 与数字输入端相连,因而它们与 VDD 和 VSS 之间加有 反向偏置 ESD 保护二极管,从而将模拟输入电压限制 在 VSS 和 VDD。一旦输入电压在任一方向上超出该范围 0.6V,其中一个二极管就会发生正向偏置从而使输入电 压被钳位。 注 1: 读端口寄存器时,所有配置为模拟输入的 引脚都将读为 0。而配置为数字输入的引 脚将根据输入规范,对模拟输入信号进行 相应的转换。 2: 施加在数字输入引脚上的模拟电平会使其 输入缓冲器消耗的电流超过规定值。 模拟信号源的最大阻抗推荐值为10 kΩ。连接到模拟输入 引脚的任何外部元件 (如电容器或齐纳二极管) ,要保 证其泄漏电流极小,从而使引入的误差最小。 图 8-4: 模拟输入模型 VDD VT ≈ 0.6V Rs < 10K RIC 至比较器 AIN CPIN 5 pF VA VT ≈ 0.6V ILEAKAGE ± 500 nA Vss 图注: CPIN = 输入电容 ILEAKAGE = 各个连接点在引脚上产生的泄漏电流 RIC = 内部走线等效电阻 = 源阻抗 RS = 模拟电压 VA VT = 门限电压 2007 Microchip Technology Inc. DS41250F_CN 第 111 页 PIC16F913/914/916/917/946 8.2 比较器配置 比较器共有8种工作模式,CMCON0寄存器的CM<2:0> 位用于选择这些模式,如图 8-5 所示。 I/O 线根据模式 的不同而有所变化,且可被指定为: • 模拟功能 (A):数字输入缓冲器被禁止 • 数字功能 (D):比较器数字输出,覆盖端口功能 • 普通端口功能 (I/O):与比较器无关 被指定为 “A”功能的端口引脚读为 0,与 I/O 引脚的 状态及 I/O 控制位 TRIS 无关。 引脚用作模拟输入引脚 时,还应将相应的 TRIS 位置 1 以禁止数字输出驱动器。 引脚被指定为 “D”功能时,应将相应的 TRIS 位置为 0 以使能数字输出驱动器。 注: 改变比较器模式的过程中应禁止比较器中 断,以免产生意外中断。 DS41250F_CN 第 112 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 图 8-5: 比较器 I/O 工作模式 比较器复位(上电复位默认值) CM<2:0> = 000 A VINC1INC1IN+ C2IN- A VIN+ A VINVIN+ C2IN+ A 两个独立的比较器 CM<2:0> = 100 C1 关(读为 0) C2 关(读为 0) C1IN+ C2INC2IN+ A A C1IN+ VIN+ C1 C1OUT C2INC2IN+ A A VIN+ C2 C2OUT CIS = 0 CIS = 1 VINVIN+ C1 VIN+ 两个具有公共参考端的比较器 CM<2:0> = 011 A VINC1IN- C2INC2IN+ 图注: VIN+ A VIN- A VIN+ A VIN- A VIN+ C2IN+ C1 C1OUT C2 C2OUT C2IN+ VIN+ C1 I/O C1IN+ 关(读为 0) VIN- A A C2OUT CIS = 0 VIN+ C2 CIS = 1 内部 固定参考电压 VIN+ C1OUT C2OUT(引脚) C1 C1OUT C2 C2OUT C1OUT(引脚)D VIN- CIS = 0 CIS = 1 I/O VIN+ 两个具有公共参考端且带输出的比较器 CM<2:0> = 110 A VINC1IN- C2 C2OUT 来自 CVREF 模块 C1IN+ A C2IN- VIN- A A C1IN+ C1IN- VIN- CIS = 0 CIS = 1 A A VIN- 一个带参考电压选择的独立比较器 CM<2:0> = 101 VINI/O 四路输入的双比较器 CM<2:0> = 010 C1IN- A C2IN- 三路输入的双比较器 CM<2:0> = 001 C1IN- C1IN- C1 C1OUT C2 C2OUT C2INC2IN+ A VIN- A VIN+ C2OUT(引脚)D 比较器关闭(功耗最低) CM<2:0> = 111 I/O VINC1INC1IN+ C2INC2IN+ I/O VIN+ I/O VIN- I/O VIN+ C1 关(读为 0) C2 关(读为 0) A = 模拟输入,端口始终读为 0 CIS = 比较器输入开关 (CMCON0<3>) I/O = 普通端口 I/O D = 比较器数字输出 2007 Microchip Technology Inc. DS41250F_CN 第 113 页 PIC16F913/914/916/917/946 8.3 8.4 比较器控制 CMCON0 寄存器 (寄存器 8-1)可以控制以下比较器 功能: • • • • 模式选择 输出状态 输出极性 输入切换 8.3.1 比较器输出状态 比较器输出极性 将比较器输出反相与交换比较器的两个输入端功能相 同。将 CMCON0 寄存器的 CxINV 位置 1 可以将比较器 输出的极性反相。 清零 CxINV 将导致输出不反相。 表 8-1 给出了对应于不同输入条件和极性位设置情况下的 输出状态的完整信息。 表 8-1: 注: 8.3.3 在改变输入源或选择了新的参考电压后的一段时间内, 比较器的输出为不确定状态。 这段时间称为响应时间。 比较器的响应时间根据参考电压达到稳定值的时间不同 而不同。 因此,在确定比较器输入电压发生变化后的总 响应时间时,这些时间都要考虑在内。请参见第 19.0 节 “电气规范”的比较器和参考电压规范获得更多详细信 息。 8.5 可以通过 CMCON0 寄存器中相应的 CxOUT 位从内部 读取每个比较器的状态。当 CM<2:0> = 110 时,比较 器状态直接输出到 CxOUT 引脚。 如果选择该模式,必 须将相应 CxOUT 引脚的 TRIS 位清零以使能输出驱动。 8.3.2 比较器的响应时间 任何一个比较器的输出电平一旦发生了变化,就会将比 较器的中断标志位置 1。通过失配电路识别输出端变 化,该电路包含两个锁存器和一个异或门 (见图 8-2 和 图 8-3)。当读 CMCON0 寄存器时,使用比较器的输出 电平更新一个锁存器。此锁存器保留更新后的值,直到 下一次读取 CMCON0 寄存器或发生复位为止。失配电 路的另一个锁存器在每个 Q1 系统时钟更新。 如果比较 器的输出电平变化在Q1时钟周期内通过第二个锁存器锁 存,则将引发不匹配条件。 该不匹配条件持续存在,保 持 PIR2 寄存器的 CxIF 位为真,直到读 CMCON0 寄存 器或比较器输出返回先前状态为止。 注: 不同输入条件下的输出状态 输入条件 CxINV CxOUT VIN- > VIN+ 0 0 VIN- < VIN+ 0 1 VIN- > VIN+ 1 1 VIN- < VIN+ 1 0 CxOUT 指的是寄存器位和输出引脚。 比较器输入切换 在下列模式下,比较器的反相输入可在两个模拟引脚或 一个模拟输入引脚和一个固定的参考电压之间切换: 比较器中断工作原理 对CMCON0寄存器执行写操作也将清除不 匹配条件,因为在每个写周期开始会首先 执行读操作。 需要用软件来保持比较器输出的状态信息以判断实际发 生的变化。 PIR2 寄存器的 CxIF 位是比较器中断标志位。必须由软 件清零复位。因为可以人为向该寄存器写 1,所以也可 以模拟中断的产生。 PIE2 寄存器的 CxIE 位和 INTCON 寄存器的 PEIE 和 GIE 位必须置 1,以允许比较器中断。 只要清零这些位 中的任何一位,尽管当中断条件产生时 PIR2 寄存器的 CxIF 位仍会置 1,但中断却是被禁止的。 用户可用以下方式在中断服务程序中清除该中断: • CM<2:0> = 001 (仅比较器 C1) • CM<2:0> = 010 (比较器 C1 和 C2) • CM<2:0> = 101 (仅比较器 C2) b) 在上述模式中,无论选择哪个引脚作为输入引脚,比较 器的两个引脚都保持处于模拟模式。CMCON0 寄存器的 CIS 位控制比较器输入切换。 引脚上电平的不匹配条件会不断地将 CxIF 中断标志位 置 1。 读 CMCON0 寄存器将结束引脚上电平不匹配条 件,并允许 CxIF 标志位清零。 DS41250F_CN 第 114 页 a) 对 CMCON0 的任意读或写。 这将结束引脚电平 不匹配条件。请参见图 8-6 和 8-7。 清零 CxIF 中断标志位。 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 图 8-6: 比较器中断时序 (不读 CMCON0 寄存器时) Q1 Q3 CIN+ TRT COUT 置 1 CxIF(电平) CxIF 由软件复位 图 8-7: 比较器中断时序 (读 CMCON0 寄存器时) 8.6 如果在进入休眠模式以前已使能了比较器,那么它们将 在休眠期间继续保持工作。比较器额外消耗的电流由第 19.0 节“电气规范”单独给出。如果不使用比较器唤醒 器件的话,休眠模式下可以关掉比较器从而实现最小功 耗。通过选择 CMCON0 寄存器的 CM<2:0> = 000 或 CM<2:0> = 111 模式关闭比较器。 改变比较器的输出可将器件从休眠模式唤醒。将PIE2寄 存器的 CxIE 位和 INTCON 寄存器的 PEIE 位置 1 可使 比较器将器件从休眠模式唤醒。 跟随在唤醒指令之后的 指令总是在执行完休眠唤醒之后执行。如果将 INTCON 寄存器的 GIE 位也置 1,该器件将执行中断服务程序。 8.7 Q1 Q3 CIN+ 休眠期间工作原理 复位的影响 器件复位强制 CMCON0 和 CMCON1 寄存器为各自的 复位状态。这将强制比较器模块处于比较器复位模式 (CM<2:0> = 000) 。 因此,比较器禁止,所有的比较 器输入都为模拟输入,以使电流消耗最小。 TRT COUT 置 1 CxIF(电平) CxIF 通过读 CMCON0 寄存器清零 注 由软件复位 1: 如果在执行一次读操作时 (Q2 周期的开 始) CMCON0 寄存器 (CxOUT)的值发 生了改变,那么 PIR2 寄存器的 CxIF 中断 标志位可能不会被置 1。 2:当先使能任一比较器时,比较器模块中的 偏置电路可能导致比较器产生无效输出, 直至偏置电路达到稳态。允许大约 1 µs 的 偏置稳定时间,然后在允许比较器中断之 前,清除不匹配条件和中断标志。 2007 Microchip Technology Inc. DS41250F_CN 第 115 页 PIC16F913/914/916/917/946 寄存器 8-1: CMCON0:比较器配置寄存器 R-0 R-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 C2OUT C1OUT C2INV C1INV CIS CM2 CM1 CM0 bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位,读为 0 - n = 上电复位时的值 1=置1 0 = 清零 bit 7 x = 未知 C2OUT:比较器 2 输出位 当 C2INV = 0 时: 1 = C2 VIN+ > C2 VIN0 = C2 VIN+ < C2 VIN当 C2INV = 1 时: 1 = C2 VIN+ < C2 VIN0 = C2 VIN+ > C2 VIN- bit 6 C1OUT:比较器 1 输出位 当 C1INV = 0 时: 1 = C1 VIN+ > C1 VIN0 = C1 VIN+ < C1 VIN当 C1INV = 1 时: 1 = C1 VIN+ < C1 VIN0 = C1 VIN+ > C1 VIN- bit 5 C2INV:比较器 2 输出反相位 1 = C2 输出反相 0 = C2 输出不反相 bit 4 C1INV:比较器 1 输出反相位 1 = C1 输出反相 0 = C1 输出不反相 bit 3 CIS:比较器输入开关位 当 CM<2:0> = 010 时: 1 = C1IN+ 连接到 C1 VINC2IN+ 连接到 C2 VIN0 = C1IN- 连接到 C1 VINC2IN- 连接到 C2 VIN当 CM<2:0> = 001 时: 1 = C1IN+ 连接到 C1 VIN0 = C1IN- 连接到 C1 VIN当 CM<2:0> = 101 时: (16F91x/946) 1 = C2 VIN+ 连接到固定参考电压 0 = C2 VIN+ 连接到 C2IN+ bit 2-0 CM<2:0>:比较器模式位 (见图 8-5) 000 = 关闭比较器。CxIN 引脚被配置为模拟引脚 001 = 三路输入的双比较器 010 = 四路输入的双比较器 011 = 具有公共参考端的双比较器 100 = 两个独立的比较器 101 = 一个独立的比较器 110 = 两个具有公共参考端且带输出的比较器 111 = 关闭比较器。CxIN 引脚被配置为数字 I/O DS41250F_CN 第 116 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 8.8 比较器 C2 为 Timer1 提供门控信号 该功能可以用来为模拟事件的持续时间或间隔时间定 时。清零 CMCON1 寄存器的 T1GSS 位将使能 Timer1 以比较器 C2 的输出为基准递增。此操作要求 Timer1 打 开并且已被选通。 请参见第 6.0 节 “带门控的 Timer1 模块”获得详细信息。 当将比较器 C2 用作 Timer1 门控源时,建议通过将 C2SYNC 位置 1 使比较器 C2 与 Timer1 同步。 这样可 以确保比较器在 Timer1 递增期间改变输出状态时, Timer1 不会丢失计数。 寄存器 8-2: 8.9 比较器 C2 输出与 Timer1 同步 将 CMCON1 寄存器的 C2SYNC 位置 1 可使比较器 C2 输出与Timer1同步。使能时,比较器C2的输出在Timer1 时钟源的下降沿被锁存。如果 Timer1 使用预分频器,比 较器的输出将在被执行预分频后锁存。为防止出现争 用,比较器输出在 Timer1 时钟源的下降沿被锁存,而 Timer1 在其时钟源的上升沿递增。 请参见比较器框图 (图 8-2 和图 8-3)和 Timer1 框图 (图 6-1)获得更多 详细信息。 CMCON1:比较器配置寄存器 U-0 U-0 U-0 U-0 U-0 U-0 R/W-1 R/W-0 — — — — — — T1GSS C2SYNC bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位,读为 0 - n = 上电复位时的值 1=置1 0 = 清零 bit 7-2 未实现:读为 0 bit 1 T1GSS: Timer1 门控源选择位 (1) 1 = Timer1 门控源是 T1G 引脚 (引脚必须被配置为数字输入引脚) 0 = Timer1 门控源是比较器 C2 的输出 bit 0 C2SYNC:比较器 C2 输出同步位 (2) 1 = 输出与 Timer1 时钟源的下降沿同步 0 = 输出异步 注 x = 未知 1: 请参见第 6.6 节 “Timer1 门控”。 2: 请参见图 8-3。 2007 Microchip Technology Inc. DS41250F_CN 第 117 页 PIC16F913/914/916/917/946 8.10 比较器参考电压 比较器参考电压模块为比较器提供内部产生的参考电 压。它具有如下特性: • • • • 独立于比较器操作 两个具有 16 种电平的电压范围 输出电压箝位为 VSS 与 VDD 成比例 CV REF = (VDD/4) + (VR<3:0> × VDD/32) VRCON 寄存器 (寄存器 8-3)控制参考电压模块,如 图 8-8 所示。 8.10.1 独立操作 比较器参考电压独立于比较器配置。将 VRCON 寄存器 的 VREN 位置 1 可使能参考电压。 8.10.2 公式 8-1: CVREF 输出电压 V RR = 1(低电压): CVREF = (VR<3:0>/24) × V DD V RR = 0(高电压): 输出电压选择 CVREF 参考电压有 2 个范围,每个范围都有 16 种不同 的电平。 由 VRCON 寄存器的 VRR 位控制范围选择。 由 VRCON 寄存器的 VR<3:0> 位设置 16 种电平。 下面的公式可用来计算 CVREF 输出电压: 由于模块结构的限制,无法实现从 VSS 到 VDD 的满量 程输出。请参见图 8-8。 8.10.3 输出电压箝位为 VSS 按如下配置 VRCON ,将 CVREF 输出电压设置为 Vss 而无额外功耗。 • VREN = 0 • VRR = 1 • VR<3:0> = 0000 此操作允许比较器进行过零检测,而不会使 CVREF 模块 消耗额外的电流。 8.10.4 输出与 VDD 成比例 由于比较器参考电压是由 VDD 产生的,因此 CVREF 的 输出会随着 VDD 的波动而变化。可以在 第 19.0 节 “电 气规范”中找到测试所得的比较器参考电压的绝对精 度。 寄存器 8-3: VRCON:参考电压控制寄存器 R/W-0 U-0 R/W-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 VREN — VRR — VR3 VR2 VR1 VR0 bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位,读为 0 - n = 上电复位时的值 1=置1 0 = 清零 bit 7 VREN:CVREF 使能位 1 = CVREF 电路上电 0 = CVREF 电路掉电,无 IDD 漏电流且 CVREF = VSS。 bit 6 未实现:读为 0 bit 5 VRR:CVREF 量程范围选择位 1 = 低电压范围 0 = 高电压范围 bit 4 未实现:读为 0 bit 3-0 VR<3:0>: CVREF 值选择位 (0 ≤ VR<3:0> ≤ 15) 当 VRR = 1 时:CVREF = (VR<3:0>/24) * VDD 当 VRR = 0 时:CVREF = VDD/4 + (VR<3:0>/32) * VDD DS41250F_CN 第 118 页 x = 未知 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 图 8-8: 比较器参考电压框图 16 级 8R R R R R VDD VRR 8R 16 选 1 模拟 MUX VREN 15 14 CVREF 至 比较器 输入 2 1 0 VR<3:0>(1) VREN VR<3:0> = 0000 VRR 注 表 8-2: 1: 应格外小心,以确保 VREF 始终处于比较器共模输入 电压范围内。详情请参见第 19.0 节“电气规范”。 与比较器和参考电压模块相关的寄存器汇总 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 上电复位与欠 压复位时的值 所有其他 复位时的值 ANS7 ANS6 ANS5 ANS4 ANS3 ANS2 ANS1 ANS0 1111 1111 1111 1111 CMCON0 C2OUT C1OUT C2INV C1INV CIS CM2 CM1 CM0 0000 0000 0000 0000 CMCON1 — — — — — — T1GSS C2SYNC ---- --10 ---- --10 INTCON 名称 ANSEL GIE PEIE T0IE INTE RBIE T0IF INTF RBIF 0000 000x 0000 000x PIE2 OSFIE C2IE C1IE LCDIE — LVDIE — CCP2IE 0000 -0-0 0000 -0-0 PIR2 OSFIF C2IF C1IF LCDIF — LVDIF — CCP2IF 0000 -0-0 0000 -0-0 PORTA RA7 RA6 RA5 RA4 RA3 RA2 RA1 RA0 xxxx xxxx uuuu uuuu TRISA TRISA7 TRISA6 TRISA1 TRISA0 1111 1111 1111 1111 VREN — VR1 VR0 0-0- 0000 0000 0000 VRCON 图注: TRISA5 TRISA4 TRISA3 TRISA2 VRR — VR3 VR2 x = 未知,u = 不变, - = 未实现单元 (读为 0)。比较器不使用阴影单元。 2007 Microchip Technology Inc. DS41250F_CN 第 119 页 PIC16F913/914/916/917/946 注: DS41250F_CN 第 120 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 9.0 可寻址通用同步 / 异步收发器 (AUSART) AUSART 模块包含如下功能: • • • • • • • • • • 可寻址通用同步 / 异步收发器 (AUSART)模块是一个 串行 I/O 通信外设。该模块包括所有执行与器件程序执 行无关的输入或输出串行数据传输所必需的时钟发生 器、移位寄存器和数据缓冲器。AUSART 也称为串行通 信接口 (Serial Communications Interface, SCI),它 可配置为全双工异步系统,与 CRT 终端和个人计算机 等外设系统进行通信;也可以配置为半双工同步系统, 与 A/D 或 D/A 集成电路、串行 EEPROM 或其他单片机 等外设进行通信。 与之通信的单片机通常不具有产生波 特率的内部时钟,需要由主同步器件提供外部时钟信 号。 图 9-1: 全双工异步发送和接收 双字符输入缓冲 单字符输出缓冲 可将字符长度设定为 8 位或 9 位 9 位模式下的地址检测 输入缓冲溢出错误检测 接收到字符的帧错误检测 半双工同步主模式 半双工同步从模式 在休眠模式下工作 图 9-1 和图 9-2 给出了 AUSART 收发器的框图。 AUSART 发送框图 数据总线 TXIE 中断 TXIF TXREG 寄存器 8 MSb LSb (8) 0 • • • TX/CK 引脚 引脚缓冲 和控制 发送移位寄存器(TSR) TXEN TRMT 波特率发生器 FOSC ÷n TX9 n +1 SPBRG 倍频器 x4 SYNC 1 0 0 BRGH x 1 0 2007 Microchip Technology Inc. SPEN x16 x64 TX9D DS41250F_CN 第 121 页 PIC16F913/914/916/917/946 图 9-2: AUSART 接收框图 SPEN CREN RX/DT 引脚 数据 恢复 波特率发生器 FOSC +1 SPBRG RSR 寄存器 MSb 引脚缓冲 和控制 倍频器 x4 x16 x64 SYNC 1 0 0 BRGH x 1 0 OERR 停止位 (8) ••• 7 LSb 1 0 起始位 RX9 ÷n n FERR RX9D RCREG 寄存器 8 FIFO 数据总线 RCIF RCIE 中断 AUSART 模块的操作是通过以下两个寄存器控制的: • 发送状态和控制寄存器 (TXSTA) • 接收状态和控制寄存器 (RCSTA) 寄存器 9-1 和寄存器 9-2 分别详细介绍了这两个寄存器。 DS41250F_CN 第 122 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 9.1 AUSART 异步模式 AUSART 使用标准非归零码 (non-return-to-zero, NRZ)格式发送和接收数据。 使用 2 种电平实现 NRZ: 由 VOH 标号状态代表数据位 1, VOL 空格状态代表数据 位 0。采用 NRZ 格式连续发送相同值的数据位时,输出 电平保持该位的电平,而不会在发送完每个位后返回中 间电平值。NRZ 发送端口在标号状态空闲。每个发送的 字符都包括一个起始位,后面跟有 8 位或 9 位数据位和 一个或多个终止字符发送的停止位。 起始位总是处于空 格状态,停止位总是处于标号状态。 最常用的数据格式 为 8 位。每个发送位存在时间为 1/( 波特率 )。片上专用 的 8 位波特率发生器可用于通过系统振荡器产生标准的 波特率频率。请参见表 9-5 了解波特率配置示例。 AUSART 首先发送和接收 LSb。 AUSART 的发送器和 接收器在功能上是独立的,但采用相同的数据格式和波 特率。AUSART 硬件不支持奇偶校验,但可以用软件实 现,奇偶校验位是第 9 个数据位。 9.1.1 AUSART 异步发送器 图 9-1 所示为 AUSART 发送器的框图。 发送器的核心 是串行发送移位寄存器 (TSR),该寄存器不能由软件 直接访问。 TSR 从发送缓冲器寄存器 TXREG 获取数 据。 9.1.1.1 使能发送器 通过配置如下三个控制位使能 AUSART 发送器,以用 于异步操作: • TXEN = 1 • SYNC = 0 • SPEN = 1 假设所有其他 AUSART 控制位处于其默认状态。 将 TXSTA 寄存器的 TXEN 位置 1,使能 AUSART 发送 器电路。 将 TXSTA 寄存器的 SYNC 位清零,配置 AUSART 以用于异步操作。 将 RCSTA 寄存器的 SPEN 位置 1 使能 AUSART 并自动将 TX/CK I/O 引脚配置为输 出引脚。 注 1: 将 SPEN 位置 1 会自动将 RX/DT I/O 引脚 配置为输入引脚,无需考虑相应的 TRIS 位 的状态以及 AUSART 接收器使能与否。可 以通过普通端口读 RX/DT 引脚数据,但无 法使用端口锁存输出数据。 2: 将 TXEN 使能位置 1 时,TXIF 发送器中断 标志位会置 1。 9.1.1.2 发送数据 向 TXREG 寄存器写入一个字符,以开始发送。 如果这 是第一个字符,或者前一个字符已经完全从 TSR 中清 除,TXREG 中的数据会立即发送给 TSR 寄存器。如果 TSR 中仍保存前一字符的全部或一部分,新的字符数据 将保存在 TXREG 中,直到发送完前一字符的停止位为 止。然后,在停止位发送完毕后经过一个 TCY,TXREG 中待处理数据将被传输到 TSR。当数据从 TXREG 传输 至 TSR 后,立即开始进行起始位、数据位和停止位序列 的发送。 9.1.1.3 发送中断标志 只要使能 AUSART 发送器且 TXREG 中没有待发送数 据,就将 PIR1 寄存器的 TXIF 中断标志位置 1。也就是 说,当 TSR 忙于处理字符时和 TXREG 中有排队等待发 送的新字符时,才会清零 TXIF 位。写 TXREG 时,不立 即清零 TXIF 标志位。 TXIF 在写指令后的第 2 个指令周 期清零。 在写 TXREG 后立即查询 TXIF 会返回无效结 果。 TXIF 为只读位,不能由软件置 1 或清零。 通过将 PIE1 寄存器的 TXIE 中断允许位置 1 可允许 TXIF 中断。 然而,只要 TXREG 为空,不管 TXIE 允许位的 状态如何,都会将 TXIF 标志位置 1, 如果要在发送数据时使用中断,仅当有多个待发送数据 时,才将 TXIE 位置 1。 将待发送的最后一个字符写入 TXREG 后,清零 TXIE 中断允许位。 如果 TX/CK 引脚与 LCD 外设共用,则必须清零 LCDSE1 寄存器的 SE9 位以禁止 LCD SEG9 功能。 2007 Microchip Technology Inc. DS41250F_CN 第 123 页 PIC16F913/914/916/917/946 9.1.1.4 TSR 状态 9.1.1.6 TXSTA 寄存器的 TRMT 位指示 TSR 寄存器的状态。 TRMT 位为只读位。 当 TSR 寄存器为空时,将 TRMT 位置 1,当有字符从 TXREG 传送到 TSR 寄存器时,清 零 TRMT。TRMT 位保持清零状态,直到所有位从 TSR 寄存器移出为止。 TRMT 位与任何中断逻辑均无关联, 所以用户必须查询该位来确定 TSR 位的状态。 1. 2. 3. TSR 寄存器并未映射到数据存储器中,因 此用户不能访问它。 注: 9.1.1.5 4. 发送 9 位字符 5. AUSART 支持 9 位字符发送。当 TXSTA 寄存器的 TX9 位置 1 时, AUSART 将移出每个待发送字符的 9 位。 TXSTA 寄存器的 TX9D 位为第 9 位,即最高数据位。当 发送 9 位数据时,必须先写 TX9D 数据位,然后再将低 8 位写入 TXREG。在写入 TXREG 寄存器后会立即将所 有 9 个数据位传输到 TSR 移位寄存器。 6. 7. 使用多个接收器时可使用特殊的 9 位地址模式。请参见 第 9.1.2.7 节 “地址检测”获得有关地址模式的更多详 细信息。 图 9-3: 设置异步发送: 初始化 SPBRG 寄存器和 BRGH 位,以获得所需 的波特率 (见第 9.2 节 “AUSART 波特率发生 器 (BRG)”)。 通过将 SYNC 位清零并将 SPEN 位置 1 使能异 步串口。 如果需要发送 9 位数据,则应将 TX9 控制位置 1。 当接收器被设置为进行地址检测时,将数据 的第 9 位置 1,表示 8 个最低数据位为地址。 将 TXEN 控制位置 1,使能发送,这将导致 TXIF 中断位置 1。 如果需要中断,将 PIE1 寄存器的 TXIE 中断允许 位置 1。如果 INTCON 寄存器的 GIE 和 PEIE 位 也置 1,将立即产生中断。 如果选择发送 9 位数据,应将第 9 位装入 TX9D 数据位。 将 8 位数据装入 TXREG 寄存器,这将开始发送 数据。 异步发送 写 TXREG BRG 输出 (移位时钟) 字1 TX/CK 引脚 起始位 图 9-4: bit 1 bit 7/8 停止位 字1 TXIF 位 (发送缓冲器 空标志位) TRMT 位 (发送移位 寄存器空标志位) bit 0 1 TCY 字1 发送移位寄存器 异步发送 (背靠背模式) 写 TXREG BRG 输出 (移位时钟) 字1 TX/CK 引脚 TXIF 位 (发送缓冲器 空标志位) TRMT 位 (发送移位 寄存器空标志位) 注: 字2 起始位 bit 0 1 TCY bit 1 字1 bit 7/8 停止位 起始位 bit 0 字2 1 TCY 字1 发送移位寄存器 字2 发送移位寄存器 本时序图显示了两次连续的发送。 DS41250F_CN 第 124 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 表 9-1: 名称 与异步发送相关的寄存器 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 上电复位与欠 压复位时的值 所有其他 复位时的值 INTCON GIE PEIE T0IE INTE RBIE T0IF INTF RBIF 0000 000x 0000 000x LCDCON LCDEN SLPEN WERR VLCDEN CS1 CS0 LMUX1 LMUX0 0001 0011 0001 0011 LCDSE1 SE15 SE14 SE13 SE12 SE11 SE10 SE9 SE8 0000 0000 0000 0000 PIE1 EEIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000 PIR1 EEIF ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 0000 0000 0000 0000 RCSTA SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 0000 000x 0000 000x SPBRG BRG7 BRG6 BRG5 BRG4 BRG3 BRG2 BRG1 BRG0 0000 0000 0000 0000 SSPCON WCOL SSPOV SSPEN CKP SSPM3 SSPM2 SSPM1 SSPM0 0000 0000 0000 0000 TRISC TRISC7 TRISC6 TRISC5 TRISC4 TRISC3 TRISC2 TRISC1 TRISC0 1111 1111 1111 1111 0000 0000 0000 0000 SYNC — BRGH TRMT TX9D 0000 -010 0000 -010 TXREG TXSTA AUSART 发送数据寄存器 CSRC TX9 TXEN 图注: x = 未知, - = 未实现单元 (读为 0)。异步发送不使用阴影单元。 2007 Microchip Technology Inc. DS41250F_CN 第 125 页 PIC16F913/914/916/917/946 9.1.2 AUSART 异步接收器 异步模式通常用于 RS-232 系统。 图 9-2 给出了接收器 的框图。在 RX/DT 引脚上接收数据,并驱动数据恢复电 路。数据恢复电路实际上是一个以 16 倍波特率为工作 频率的高速移位器,而串行接收移位寄存器 (Receive Shift Register,RSR)则工作在比特率下。当字符的全 部 8 位或 9 位数据位被移入后,立即将它们传送到一个 2 字符的先进先出(First-In-First-Out,FIFO)存储器。 FIFO 缓冲器允许接收 2 个完整的字符和第 3 个字符的 起始位,然后必须由软件将收到的数据提供给 AUSART 接收器。FIFO 和 RSR 寄存器不能直接由软件访问。通 过 RCREG 寄存器访问接收到的数据。 9.1.2.1 使能接收器 通过配置如下三个控制位使能 AUSART 接收器,以用 于异步操作: • CREN = 1 • SYNC = 0 • SPEN = 1 假设所有其他 AUSART 控制位处于其默认状态。 将 RCSTA 寄存器的 CREN 位置 1,使能 AUSART 接收 器电路。 将 TXSTA 寄存器的 SYNC 位清零,配置 AUSART 以用于异步操作。 将 RCSTA 寄存器的 SPEN 位置 1,使能 AUSART 并自动将 RX/DT I/O 引脚配置为 输入引脚。 如果 RX/DT引脚与 LCD 外设共用,则必须清零 LCDSE1 寄存器的 SE8 位以禁止 LCD SEG8 功能。 9.1.2.2 接收数据 接收器数据恢复电路在第一位的下降沿开始接收字符。 第一位,通常称为起始位,始终为 0。 由数据恢复电路 计数半个位时间,到达起始位的中心位置,校验该位是 否仍为零。如果该位不为零,数据恢复电路放弃接收该 字符,而不会产生错误,并且继续查找起始位的下降 沿。如果起始位零校验通过,则数据恢复电路计数一个 完整的位时间,到达下一位的中心位置。由择多检测电 路对该位进行采样,将相应的采样结果0或1移入RSR。 重复该过程,直到完成所有数据位的采样并将其全部移 入 RSR 寄存器。 测量最后一个位时间和采样电平。 此 位为停止位,始终为 1。如果数据恢复电路在停止位采 样到 0,则该字符的帧错误标志位将置 1,反之,该字 符帧错误标志位会清零。 请参见第 9.1.2.4 节 “接收帧 错误”获得有关帧错误的更多相关信息。 当收到所有数据位和停止位后,RSR 中的字符会被立即 传输到 AUSART 的接收 FIFO,并将 PIR1 寄存器的 RCIF 中断标志位置 1。通过读 RCREG 寄存器将 FIFO 最顶端的字符移出 FIFO。 注: 9.1.2.3 如果接收 FIFO 溢出,则不能再继续接收其 他字符,直到溢出条件被清除。请参见第 9.1.2.5 节 “接收溢出错误”获得有关溢出 错误的更多相关信息。 接收中断 只要使能 AUSART 接收器且在接收 FIFO 中没有待读字 符,PIR1 寄存器中的 RCIF 中断标志位就会置 1。RCIF 中断标志位为只读位,不能由软件置 1 或清零。 通过将下列位置 1 允许 RCIF 中断: 注: 将 SPEN 位置 1 会自动将 TX/CK I/O 引脚 配置为输出引脚,无需考虑相应的 TRIS 位 的状态以及 AUSART 发送器使能与否。端 口锁存器与输出驱动器是断开的,从而不 能将 TX/CK 引脚用作通用输出引脚。 DS41250F_CN 第 126 页 • PIE1 寄存器的 RCIE 中断允许位 • INTCON 寄存器的 PEIE 外设中断允许位 • INTCON 寄存器的 GIE 全局中断允许位 如果 FIFO 中有未读字符,无论中断允许位的状态如何, 都会将 PIR1 寄存器的 RCIF 中断标志位置 1。 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 9.1.2.4 接收帧错误 接收 FIFO 缓冲器中的每个字符都有一个相应的帧错误 状态位。帧错误指示没有在预期的时间内接收到停止 位。 由 RCSTA 寄存器的 FERR 位获取帧错误状态。 FERR位代表接收 FIFO 最顶端未读字符的状态。因此, 必须在读 RCREG 寄存器之前读 FERR 位。 FERR 位为只读位,且只能用于表示接收 FIFO 的最顶 端未读字符。 帧错误 (FERR = 1)并不会阻止接收更 多的字符。无需清零 FERR 位。从 FIFO 缓冲器读下一 字符, FIFO 指针前进至下一字符和下一相应帧错误。 清零 RCSTA 寄存器的 SPEN 位会复位 AUSART,并强 制清零 FERR 位。清零 RCSTA 寄存器的 CREN 位不影 响 FERR 位。帧错误本身不会产生中断。 注: 9.1.2.5 9.1.2.7 地址检测 当多个接收器共享同一传输线时 (如在 RS-485 系统 中),可使用特殊地址检测模式。 将 RCSTA 寄存器的 ADDEN 位置 1,使能地址检测模式。 地址检测要求接收 9 位字符。使能地址检测后,只有第 9 位数据位被置 1 的字符可以被传输到接收 FIFO 缓冲 器,从而使 PIR1 寄存器的 RCIF 中断标志位置 1。忽略 所有其他字符。 由用户软件判断接收到的地址字符是否与其匹配。如果 匹配,用户软件必须在下一个停止位产生之前,清零 ADDEN 位以禁止地址检测。 当用户软件检测到信息的 末尾(由所使用的信息协议判断)时,由软件将 ADDEN 位置 1,从而使接收器返回地址检测模式。 如果接收FIFO 缓冲器中的所有收到的字符 都有帧错误,重复读 RCREG 不会清零 FERR 位。 接收溢出错误 接收 FIFO 缓冲器可以保存 2 个字符。 但如果在访问 FIFO 之前,接收到完整的第 3 个字符,则会产生溢出 错误。此时, RCSTA 寄存器的 OERR 位会置 1。可以 读取 FIFO 缓冲器内的字符,但是在错误清除之前,不 能再接收其他字符。 可以通过清零 RCSTA 寄存器的 CREN 位来清除错误。 9.1.2.6 接收 9 位字符 AUSART 支持 9 位字符接收。将 RCSTA 寄存器的 RX9 位置 1 时, AUSART 将接收到的每个字符的 9 位移入 RSR。 RCSTA 寄存器的 RX9D 位是接收 FIFO 顶端未 读字符的第 9 位,同时也是最高数据位。当从接收 FIFO 缓冲器读取 9 位数据时,必须在读 RCREG 的低 8 位之 前,读取 RX9D 数据位。 2007 Microchip Technology Inc. DS41250F_CN 第 127 页 PIC16F913/914/916/917/946 9.1.2.8 1. 2. 3. 4. 5. 6. 7. 8. 9. 9.1.2.9 异步接收设置: 初始化 SPBRG 寄存器和 BRGH 位,以获得所需 的波特率 (见第 9.2 节 “AUSART 波特率发生 器 (BRG)”)。 将SPEN位置1,使能串行端口。必须清零SYNC 位以执行异步操作。 如果需要中断,将 PIE1 寄存器的 RCIE 位和 INTCON 寄存器的 GIE 和 PEIE 位置 1。 如果需要接收 9 位数据,将 RX9 位置 1。 将 CREN 位置 1,使能接收。 当一个字符从 RSR 传输到接收缓冲器时,将 PIR1 寄存器的 RCIF 中断标志位置 1。如果 PIE1 寄存器的 RCIE 位也被置 1,还将产生中断。 读 RCSTA 寄存器获取错误标志位和第 9 位数据 位 (如果使能 9 位数据接收)。 读 RCREG 寄存器,从接收缓冲器获取接收到的 8 个低数据位。 如果产生溢出,通过清零 CREN 接收器使能位清 零 OERR 标志位。 图 9-5: 9 位地址检测模式设置 此模式通常用在 RS-485 系统中。 要设置使能地址检测 的异步接收: 1. 初始化 SPBRG 寄存器和 BRGH 位,以获得所需 的波特率 (见第 9.2 节 “AUSART 波特率发生 器 (BRG)”)。 2. 将SPEN位置1,使能串行端口。必须清零SYNC 位以执行异步操作。 3. 如果需要中断,将 PIE1 寄存器的 RCIE 位和 INTCON 寄存器的 GIE 和 PEIE 位置 1。 4. 将 RX9 位置 1,使能 9 位数据接收。 5. 将 ADDEN 位置 1,使能地址检测。 6. 将 CREN 位置 1,使能接收。 7. 当一个第 9 位置 1 的字符从 RSR 传输到接收缓 冲器时,将 PIE1 寄存器的 RCIF 中断标志位置 1。如果 PIE1 寄存器的 RCIE 中断允许位也被置 1,还将产生中断。 8. 读 RCSTA 寄存器获取错误标志位。 第 9 个数据 位始终置 1。 9. 读 RCREG 寄存器,从接收缓冲器获取接收到的 8 个低数据位。 由软件判断此地址是否为本器件 的地址。 10. 如果发生溢出,通过清零 CREN 接收器使能位清 零 OERR 标志位。 11. 如果已经对器件进行了寻址,将 ADDEN 位清零 以允许所有接收到的数据进入接收缓冲器并产生 中断。 异步接收 起始 位 bit 0 RX/DT 引脚 接收移位 寄存器 接收缓冲寄存器 bit 1 bit 7/8 停止 位 起始 位 字1 RCREG bit 0 bit 7/8 停止 位 起始 位 bit 7/8 停止 位 字2 RCREG 读接收 缓冲寄存器 RCREG RCIF (中断标志位) OERR 位 CREN 注: 此时序图显示了在 RX 输入引脚接收 3 个字的情况。在第 3 个字后读取 RCREG(接收缓存器),将导致 OERR(溢出)位置 1。 DS41250F_CN 第 128 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 表 9-2: 名称 与异步接收相关的寄存器 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 上电复位与欠 压复位时的值 所有其他 复位时的值 INTCON GIE PEIE T0IE INTE RBIE T0IF INTF RBIF 0000 000x 0000 000x LCDCON LCDEN SLPEN WERR VLCDEN CS1 CS0 LMUX1 LMUX0 0001 0011 0001 0011 LCDSE1 SE15 SE14 SE13 SE12 SE11 SE10 SE9 SE8 0000 0000 0000 0000 PIE1 EEIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000 PIR1 EEIF ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF RCREG RCSTA AUSART 接收数据寄存器 SPEN RX9 SREN 0000 0000 0000 0000 0000 0000 0000 0000 CREN ADDEN FERR OERR RX9D 0000 000x 0000 000x SPBRG BRG7 BRG6 BRG5 BRG4 BRG3 BRG2 BRG1 BRG0 0000 0000 0000 0000 SSPCON WCOL SSPOV SSPEN CKP SSPM3 SSPM2 SSPM1 SSPM0 0000 0000 0000 0000 TRISC TRISC7 TRISC6 TRISC5 TRISC4 TRISC3 TRISC2 TRISC1 TRISC0 1111 1111 1111 1111 TXSTA CSRC TX9 TXEN SYNC — BRGH TRMT TX9D 0000 -010 0000 -010 图注: x = 未知, - = 未实现单元 (读为 0)。异步接收不使用阴影单元。 2007 Microchip Technology Inc. DS41250F_CN 第 129 页 PIC16F913/914/916/917/946 寄存器 9-1: R/W-0 CSRC TXSTA:发送状态和控制寄存器 R/W-0 R/W-0 TX9 TXEN (1) R/W-0 U-0 R/W-0 R-1 R/W-0 SYNC — BRGH TRMT TX9D bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位,读为 0 - n = 上电复位时的值 1=置1 0 = 清零 bit 7 CSRC:时钟源选择位 异步模式: 忽略 同步模式: 1 = 主模式 (时钟来自内部 BRG) 0 = 从模式 (时钟来自外部时钟源) bit 6 TX9:9 位发送使能位 1 = 选择 9 位发送 0 = 选择 8 位发送 bit 5 TXEN:发送使能位 (1) 1 = 使能发送 0 = 禁止发送 bit 4 SYNC:AUSART 模式选择位 1 = 同步模式 0 = 异步模式 bit 3 未实现:读为 0 bit 2 BRGH:高波特率选择位 异步模式: 1 = 高速 0 = 低速 同步模式: 在此模式下未使用 bit 1 TRMT:发送移位寄存器状态位 1 = TSR 为空 0 = TSR 已满 bit 0 TX9D:发送数据的第 9 位 可以是地址 / 数据位或奇偶校验位。 注 x = 未知 1: 同步模式下, SREN/CREN 的优先级高于 TXEN。 DS41250F_CN 第 130 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 RCSTA:接收状态和控制寄存器 (1) 寄存器 9-2: R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R-0 R-0 R-x SPEN RX9 SREN CREN ADDEN FERR OERR RX9D bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位,读为 0 - n = 上电复位时的值 1=置1 0 = 清零 x = 未知 bit 7 SPEN:串行端口使能位 1 = 使能串行端口 (将 RX/DT 和 TX/CK 引脚配置为串行端口引脚) 0 = 禁止串行端口 (保持在复位状态) bit 6 RX9:9 位接收使能位 1 = 选择 9 位接收 0 = 选择 8 位接收 bit 5 SREN:单字接收使能位 异步模式: 忽略 同步主模式: 1 = 使能单字接收 0 = 禁止单字接收 此位在接收完成后清零。 同步从模式: 忽略 bit 4 CREN:连续接收使能位 异步模式: 1 = 使能接收器 0 = 禁止接收器 同步模式: 1 = 使能连续接收,直到使能位 CREN 清零 (CREN 的优先级高于 SREN) 0 = 禁止连续接收 bit 3 ADDEN:地址检测使能位 9 位异步模式 (RX9 = 1 ): 1 = 当 RSR<8> 置 1 时,使能地址检测,允许中断并装载接收缓冲器 0 = 禁止地址检测,接收所有字节并且第 9 位可用作奇偶校验位 8 位异步模式 (RX9 = 0 ): 忽略 同步模式: 必须设置为 0 bit 2 FERR:帧错误标志位 1 = 帧错误 (读 RCREG 寄存器可更新该位,并接收下一个有效字节) 0 = 无帧错误 bit 1 OERR:溢出错误位 1 = 溢出错误 (清零 CREN 位可将该位清零) 0 = 无溢出错误 bit 0 RX9D:接收数据的第 9 位 此位可以是地址 / 数据位或奇偶校验位,但必须由用户固件计算得到。 2007 Microchip Technology Inc. DS41250F_CN 第 131 页 PIC16F913/914/916/917/946 9.2 AUSART 波特率发生器 (BRG) 例 9-1: 计算波特率误差 波特率发生器 (Baud Rate Generator, BRG)是一个 8 位定时器,专用于支持 AUSART 的异步和同步模式。 SPBRG寄存器控制着自由运行的波特率定时器的周期。 在异步模式下,由 TXSTA 寄存器的 BRGH 控制波特率 倍频器周期。在同步模式下, BRGH 位被忽略。 针对工作在异步模式下,工作频率 FOSC 为 16 MHz, 目标波特率为 9600 bps 的器件: FOSC 目标波特率 = -------------------------------------64 ( SPBRG + 1 ) 表 9-3 包含了计算波特率的公式。例 9-1 给出了一个计 算波特率和波特率误差的示例。 求解 SPBRG: 表 9-3 中给出了已经计算好的各种异步模式下的典型波 特率和波特率误差值,可便于您使用。 使用高波特率 (BRGH = 1)有利于减少波特率误差。 F OS C -------------------------------------------------目标波特率 Desired Baud Rate X = --------------------------------------------------- – 1 64 向 SPBRG 寄存器写入新值,会导致 BRG 定时器复位 (或清零)。这可以确保 BRG 无需等待定时器溢出就可 以输出新的波特率。 16000000 -----------------------9600 = ------------------------ – 1 64 = [ 25.042 ] = 25 16000000 = --------------------------64 ( 25 + 1 ) 计算波特率 Calculat ed Baud Rate = 9615 计算波特率 目标波特率 Calc. Baud Rate – Desired Baud Rate Error 误差 = --------------------------------------------------------------------------------------------------------Desired Baud Rate 目标波特率 ( 9615 – 9600 ) = ---------------------------------- = 0.16% 9600 表 9-3: 波特率计算公式 配置位 AUSART 模式 波特率计算公式 0 异步 FOSC/[64 (n+1)] 0 1 异步 FOSC/[16 (n+1)] 1 x 同步 FOSC/[4 (n+1)] SYNC BRGH 0 图注: 表 9-4: x = 忽略, n = SPBRG 寄存器的值 与波特率发生器相关的寄存器 名称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 上电复位与欠 压复位时的值 所有其他 复位时的值 RCSTA SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 0000 000x 0000 000x SPBRG BRG7 BRG6 BRG5 BRG4 BRG3 BRG2 BRG1 BRG0 0000 0000 0000 0000 TXSTA CSRC TX9 TXEN SYNC — BRGH TRMT TX9D 0000 -010 0000 -010 图注: x = 未知, - = 未实现单元 (读为 0)。波特率发生器不使用阴影单元。 DS41250F_CN 第 132 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 表 9-5: 目标 波特率 异步模式下的波特率 FOSC = 20.000 MHz SYNC = 0, BRGH = 0 FOSC = 18.432 MHz FOSC = 11.0592 MHz SPBRG 实际 值 波特率 (十进制) SPBRG 实际 值 波特率 (十进制) SPBRG 实际 值 波特率 (十进制) 实际 波特率 误差 % 300 1200 — 1221 — 1.73 — 255 — 1200 — 0.00 — 239 — 1200 — 0.00 — 143 2400 2404 0.16 129 2400 0.00 119 2400 0.00 71 误差 % 误差 % FOSC = 8.000 MHz 误差 % SPBRG 值 (十进制) — 1202 — 0.16 — 103 2404 0.16 51 9600 9470 -1.36 32 9600 0.00 29 9600 0.00 17 9615 0.16 12 10417 10417 0.00 29 10286 -1.26 27 10165 -2.42 16 10417 0.00 11 19.2k 19.53k 1.73 15 19.20k 0.00 14 19.20k 0.00 8 — — — 7 57.60k 0.00 2 — — — — — — — — — — 57.6k — — — 57.60k 0.00 115.2k — — — — — SYNC = 0, BRGH = 0 目标 波特率 FOSC = 3.6864 MHz FOSC = 2.000 MHz FOSC = 1.000 MHz FOSC = 4.000 MHz SPBRG SPBRG SPBRG SPBRG 实际 误差 实际 误差 实际 误差 实际 误差 值 值 值 值 % % % % 波特率 波特率 波特率 波特率 (十进制) (十进制) (十进制) (十进制) 0.00 300 1200 300 1202 0.16 0.16 207 51 300 1200 0.00 191 47 300 1202 0.16 0.16 103 25 300 1202 0.16 0.16 51 12 2400 2404 0.16 25 2400 0.00 23 2404 0.16 12 — — — 9600 — — — 9600 0.00 5 — — — — — — 10417 10417 0.00 5 — — — 10417 0.00 2 — — — 19.2k — — — 19.20k 0.00 2 — — — — — — 57.60k — 0.00 0 — — — — — — — — — — — — — — 57.6k — — — 115.2k — — — SYNC = 0, BRGH = 1 目标 波特率 FOSC = 20.000 MHz FOSC = 18.432 MHz SPBRG 实际 值 波特率 (十进制) 误差 % FOSC = 11.0592 MHz SPBRG 实际 值 波特率 (十进制) 误差 % FOSC = 8.000 MHz SPBRG 实际 值 波特率 (十进制) 误差 % SPBRG 值 (十进制) — — 实际 波特率 误差 % 300 — — — — — — — — — 1200 — — — — — — — — — — — — 2400 — — — — — — — — — 2404 0.16 207 — 9600 9615 0.16 129 9600 0.00 119 9600 0.00 71 9615 0.16 51 10417 10417 0.00 119 10378 -0.37 110 10473 0.53 65 10417 0.00 47 19.2k 19.23k 0.16 64 19.20k 0.00 59 19.20k 0.00 35 19231 0.16 25 57.6k 56.82k -1.36 21 57.60k 0.00 19 57.60k 0.00 11 55556 -3.55 8 115.2k 113.64k -1.36 10 115.2k 0.00 9 115.2k 0.00 5 — — — 2007 Microchip Technology Inc. DS41250F_CN 第 133 页 PIC16F913/914/916/917/946 表 9-5: 异步模式下的波特率 SYNC = 0, BRGH = 1 目标 波特率 FOSC = 4.000 MHz 实际 波特率 误差 % FOSC = 3.6864 MHz SPBRG 实际 值 波特率 (十进制) 误差 % FOSC = 2.000 MHz SPBRG 实际 值 波特率 (十进制) 误差 % FOSC = 1.000 MHz SPBRG 实际 值 波特率 (十进制) 误差 % SPBRG 值 (十进制) 300 — — — — — — — — — 300 0.16 207 1200 1202 0.16 207 1200 0.00 191 1202 0.16 103 1202 0.16 51 2400 2404 0.16 103 2400 0.00 95 2404 0.16 51 2404 0.16 25 9600 9615 0.16 25 9600 0.00 23 9615 0.16 12 — — — 10417 10417 0.00 23 10473 0.53 21 10417 0.00 11 10417 0.00 5 19.2k 19.23k 0.16 12 19.2k 0.00 11 — — — — — — 57.6k — — — 57.60k 0.00 3 — — — — — — 115.2k — — — 115.2k 0.00 1 — — — — — — DS41250F_CN 第 134 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 9.3 AUSART 同步模式 同步串行通信通常用于具有一个主器件和一个或多个从 器件的系统中。主器件包含产生波特率所必需的电路, 并为系统中所有器件提供时钟。从器件可以使用主器件 时钟,从而无需内部时钟生成电路。 在同步模式下,有 2 条信号线: 双向数据线和时钟线。 从器件使用主器件提供的外部时钟,将串行数据移入或 移出相应的接收和发送寄存器。 因为使用双向数据线, 所以同步操作只能采用半双工方式。 半双工方式是指: 主器件和从器件都可以接收和发送数据,但是不能同时 进行接收或发送。AUSART 既可以作为主器件,也可以 作为从器件。 9.3.1.2 由器件的 RX/DT 引脚输出数据。当 AUSART 配置为同 步主发送操作时,器件的 RX/DT 和 TX/CK 引脚输出驱 动器自动使能。 向 TXREG 寄存器写入一个字符开始发送。如果 TSR 中 仍 保 存 全 部 或 部 分 前 一 字 符,新 的 字 符 将 保 存 在 TXREG 中,直到发送完前一字符的停止位为止。 如果 这是第一个字符,或者前一个字符已经完全从 TSR 中清 除,则 TXREG 中的数据会被立即传输到 TSR 寄存器。 当数据从 TXREG 传输到 TSR 后会立即开始发送字符。 每个数据位在主时钟的上升沿发生改变,并保持有效, 直至下一个时钟上升沿为止。 同步发送时无需使用起始位和停止位。 9.3.1 注: 同步主模式 下列位用来将 EUSART 配置为同步主器件操作: 9.3.1.3 • SYNC = 1 • CSRC = 1 1. • SREN = 0 (用于发送); SREN = 1 (用于接收) • CREN = 0 (用于发送); CREN = 1 (用于接收) • SPEN = 1 将 TXSTA 寄存器的 SYNC 位置 1,配置器件以用于同步 操作。将 TXSTA 寄存器的 CSRC 位置 1,将器件配置为 主器件。 将 RCSTA 寄存器的 SREN 和 CREN 位清零, 以确保器件处于发送模式,否则器件配置为接收模式。 将 RCSTA 寄存器的 SPEN 位置 1,使能 AUSART。 如果 TX/CK 和 RX/DT 引脚与 LCD 外设共用,必须清零 LCDSE1 寄存器的 SE8 和 SE9 位以禁止 LCD SEG8 和 SEG9 功能。 9.3.1.1 同步主发送 2. 3. 4. 5. 6. 7. 8. TSR 寄存器并未映射到数据存储器中,因 此用户不能访问它。 同步主发送设置: 初始化 SPBRG 寄存器和 BRGH 位,以获得所需 的波特率 (见第 9.2 节 “AUSART 波特率发生 器 (BRG)”)。 通过将 SYNC、SPEN 和 CSRC 位置 1 可以使能 同步主串行端口。 将 SREN 和 CREN 位清零,禁止接收模式。 将 TXEN 位置 1 使能发送模式。 如果需要发送 9 位数据,则将 TX9 位置 1。 如果需要中断,将 PIE1 寄存器中的 TXIE 位和 INTCON 寄存器中的 GIE 和 PEIE 位置 1。 如果选择发送 9 位数据,应该将第 9 位数据装入 TX9D 位。 把数据装入 TXREG 寄存器启动发送。 主时钟 同步数据传输使用独立的时钟线同步数据传输。配置为 主器件的器件在TX/CK 引脚发送时钟信号。当AUSART 被配置为同步发送或接收操作时,TX/CK 引脚输出驱动 器自动使能。串行数据位在时钟上升沿发生改变,以确 保它们在每个时钟的下降沿有效。每个数据位的时间为 一个时钟周期,有多少数据位就有多少个时钟周期。 2007 Microchip Technology Inc. DS41250F_CN 第 135 页 PIC16F913/914/916/917/946 图 9-6: 同步发送 RX/DT 引脚 bit 0 bit 1 字1 bit 2 bit 7 bit 0 bit 1 bit 7 字2 TX/CK 引脚 写入 TXREG 寄存器 写字 1 写字 2 TXIF 位 (中断标志位) TRMT 位 TXEN 位 注: 1 1 同步主模式 ( SPBRG = 0)连续发送 2 个 8 位字。 图 9-7: 同步发送 (通过 TXEN 位) RX/DT 引脚 bit 0 bit 2 bit 1 bit 6 bit 7 TX/CK 引脚 写入 TXREG 寄存器 TXIF 位 TRMT 位 TXEN 位 表 9-6: 名称 与同步主发送相关的寄存器 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 上电复位与欠 压复位时的值 所有其他 复位时的值 INTCON GIE PEIE T0IE INTE RBIE T0IF INTF RBIF 0000 000x 0000 000x LCDCON LCDEN SLPEN WERR VLCDEN CS1 CS0 LMUX1 LMUX0 0001 0011 0001 0011 LCDSE1 SE15 SE14 SE13 SE12 SE11 SE10 SE9 SE8 0000 0000 0000 0000 PIE1 EEIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000 PIR1 EEIF ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 0000 0000 0000 0000 RCSTA SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 0000 000x 0000 000x SPBRG BRG7 BRG6 BRG5 BRG4 BRG3 BRG2 BRG1 BRG0 0000 0000 0000 0000 SSPCON WCOL SSPOV SSPEN CKP SSPM3 SSPM2 SSPM1 SSPM0 0000 0000 0000 0000 TRISC TRISC7 TRISC6 TRISC5 TRISC4 TRISC3 TRISC2 TRISC1 TRISC0 1111 1111 1111 1111 0000 0000 0000 0000 SYNC — BRGH TRMT TX9D 0000 -010 0000 -010 TXREG TXSTA 图注: AUSART 发送数据寄存器 CSRC TX9 TXEN x = 未知, - = 未实现单元 (读为 0)。同步主发送不使用阴影单元。 DS41250F_CN 第 136 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 9.3.1.4 同步主接收 RX/DT 引脚用作接收数据。 当 AUSART 配置为同步主 接收时,自动禁止器件的 RX/DT 引脚输出驱动器。 在同步模式下,将单字接收使能位 (RCSTA 寄存器的 SREN 位)或连续接收使能位(RCSTA 寄存器的 CREN 位)置 1 使能接收。 当将 SREN 置 1,CREN 位清零时,只产生与单字符的 数据位位数相同的时钟周期数量。 一个字符传输结束 后,自动清零 SREN 位。 将 CREN 置 1 时,将产生连 续时钟,直到清零 CREN 为止。如果在接收字符过程中 清零 CREN,则 CK 时钟将立即停止,并丢弃接收到的 部分字符。如果 SREN 和 CREN 都被置 1,则在第一个 字符传输完成时,清零SREN位,CREN的优先级更高。 将 SREN 或 CREN 位置 1,启动接收。 在 TX/CK 时钟 引脚下降沿采样 RX/DT 引脚上的数据,并将采样数据移 入接收移位寄存器 (RSR)。 当 RSR 接收到一个完整 字符时,将 PIR1 寄存器的 RCIF 位置 1,字符自动移入 2 字节接收 FIFO。接收 FIFO 中最顶端字符的低 8 位可 通过 RCREG 读取。 只要接收 FIFO 中仍有未读字符, 则 RCIF 位就保持置 1 状态。 9.3.1.5 从时钟 同步数据传输使用独立的时钟线同步传输数据。 配置为 从器件的器件在 TX/CK引脚接收时钟信号。当 AUSART 配置为同步从发送或接收操作时,TX/CK 引脚输出驱动 器自动禁止。 串行数据位在时钟上升沿发生改变,以确 保它们在每个时钟的下降沿有效。 每个数据位的时间为 一个时钟周期,有多少数据位就有多少个时钟周期。 9.3.1.6 接收溢出错误 接收 FIFO 缓冲器可以保存 2 个字符。 在读 RCREG 以 访问 FIFO 之前,若完整地收到第 3 个字符,则产生溢 出错误。此时,将 RCSTA 寄存器的 OERR 位置 1。 FIFO 中先前的数据不会被覆盖。可以读取 FIFO 缓冲器 内的 2 个字符,但是在错误清除之前,不能再接收其他 字符。只能通过清除溢出条件,将 OERR 位清零。如果 发生溢出错误时,SREN 位为置 1 状态,CREN 位为清 零状态,则通过读 RCREG 寄存器清除此错误。如果溢 出时, CREN 也为置 1 状态,则可以清零 RCSTA 寄存 器的 CREN 位,从而清除错误条件。 2007 Microchip Technology Inc. 9.3.1.7 接收 9 位字符 AUSART 支持接收 9 位字符。将 RCSTA 寄存器的 RX9 位置 1 时,AUSART 将接收到的每个字符的 9 位数据移 入 RSR。 RCSTA 寄存器的 RX9D 位是接收 FIFO 顶端 未读字符的第九位数据位 (最高数据位) 。 当从接收 FIFO 缓冲器读取 9 位数据时,必须在读 RCREG 的低 8 位之前,读取 RX9D 数据位。 由于同步模式不支持地址检测,因此必须清零 RCSTA 寄存器的 ADDEN 位。 9.3.1.8 同步主接收设置: 1. 用正确的波特率初始化 SPBRG 寄存器。按需要 将 BRGH 位置 1 或清零,以获得所需的波特率。 2. 通过将 SYNC、SPEN 和 CSRC 位置 1 可以使能 同步主串行端口。 3. 确保 CREN 和 SREN 位清零。 4. 如果需要中断,将 PIE1 寄存器的 RCIE 位和 INTCON 寄存器的 GIE 和 PEIE 位置 1。 5. 如果需要接收 9 位字符,则将 RX9 位置 1。 6. 将 RCSTA 寄存器的 ADDEN 位清零,禁止校验 地址检测。 7. 将 SREN 位置 1,启动接收,或将 CREN 位置 1 使能连续接收。 8. 当字符接收完毕后,将 PIR1 寄存器的 RCIF 中 断标志位置 1。如果将 PIE1 寄存器的 RCIE 中断 允许位置 1,还会产生中断。 9. 读 RCSTA 寄存器以获取第 9 位数据位 (使能 时),并判断接收过程中是否产生错误。 10. 读 RCREG 寄存器来读取接收到的 8 位数据。 11. 如果产生溢出错误,清零RCSTA寄存器的CREN 位或清零 SPEN(复位 AUSART)以清除错误。 DS41250F_CN 第 137 页 PIC16F913/914/916/917/946 图 9-8: 同步接收 (主模式, SREN) RX/DT 引脚 bit 0 bit 1 bit 2 bit 3 bit 4 bit 5 bit 6 bit 7 TX/CK 引脚 (SCKP = 0) TX/CK 引脚 (SCKP = 1) 写入 SREN 位 SREN 位 CREN 位 0 0 RCIF 位 (中断) 读 RXREG 注: 时序图说明了 SREN = 1 和 BRGH = 0 时的同步主模式。 表 9-7: 名称 与同步主接收相关的寄存器 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 上电复位与欠 压复位时的值 所有其他 复位时的值 INTCON GIE PEIE T0IE INTE RBIE T0IF INTF RBIF 0000 000x 0000 000x LCDCON LCDEN SLPEN WERR VLCDEN CS1 CS0 LMUX1 LMUX0 0001 0011 0001 0011 LCDSE1 SE15 SE14 SE13 SE12 SE11 SE10 SE9 SE8 0000 0000 0000 0000 PIE1 EEIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000 EEIF ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF PIR1 RCREG RCSTA AUSART 接收数据寄存器 SPEN RX9 SREN 0000 0000 0000 0000 0000 0000 0000 0000 CREN ADDEN FERR OERR RX9D 0000 000X 0000 000X SSPCON WCOL SSPOV SSPEN CKP SSPM3 SSPM2 SSPM1 SSPM0 0000 0000 0000 0000 TRISC TRISC7 TRISC6 TRISC5 TRISC4 TRISC3 TRISC2 TRISC1 TRISC0 1111 1111 1111 1111 TXSTA CSRC TX9 TXEN SYNC — BRGH TRMT TX9D 0000 -010 0000 -010 图注: x = 未知, - = 未实现单元 (读为 0)。同步主接收不使用阴影单元。 DS41250F_CN 第 138 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 9.3.2 如果向缓冲器 TXREG 写入 2 个字,然后执行 SLEEP 指 令,则会发生以下事件: 同步从模式 下列位用来将 AUSART 配置为同步从操作: 1. 2. 3. 4. • SYNC = 1 • CSRC = 0 • SREN = 0 (用于发送); SREN = 1 (用于接收) • CREN = 0 (用于发送); CREN = 1 (用于接收) • SPEN = 1 将 TXSTA 寄存器的 SYNC 位置 1,配置器件以用于同步 操作。 将 TXSTA 寄存器的 CSRC 位清零,将器件配置 为从器件。将 RCSTA 寄存器的 SREN 和 CREN 位清零, 以确保器件处于发送模式,否则器件将被配置为接收模 式。将 RCSTA 寄存器的 SPEN 位置 1,使能 AUSART。 如果 TX/CK 和 RX/DT 引脚与 LCD 外设共用,必须清零 LCDSE1 寄存器的 SE8 和 SE9 位以禁止 LCD SEG8 和 SEG9 功能。 9.3.2.1 5. 9.3.2.2 1. 2. 3. 4. 5. 6. AUSART 同步从发送 除了休眠模式以外,同步主模式、从模式的工作原理是 相同的 (见第 9.3.1.2 节 “同步主发送”)。 7. 8. 表 9-8: 第一个字立即传输到 TSR 寄存器并进行发送。 第二个字留在 TXREG 寄存器中。 TXIF 位不会置 1。 第一个字符移出 TSR 后,TXREG 寄存器将把第 二个字符传输到 TSR,然后标志位 TXIF 置 1。 如果 PEIE 和 TXIE 位都置 1,则由中断将器件从 休眠模式唤醒,然后执行下一条指令。如果 GIE 位也置 1,程序将调用中断服务程序。 同步从发送设置: 将 SYNC 和 SPEN 位置 1,并将 CSRC 位清零。 将 CREN 和 SREN 位清零。 如果使用中断,应确保将 INTCON 寄存器的 GIE 和 PEIE 位置 1,并将 TXIE 位置 1。 如果需要发送 9 位数据,则将 TX9 位置 1。 将 TXEN 位置 1 使能发送。 将 RCSTA 寄存器的 ADDEN 位清零,禁止校验 地址检测。 如果选择发送9位数据,将最高位写入TX9D 位。 将低 8 位数据写入 TXREG 寄存器启动发送。 与同步从发送相关的寄存器 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 上电复位与欠 压复位时的值 所有其他 复位时的值 INTCON GIE PEIE T0IE INTE RBIE T0IF INTF RBIF 0000 000x 0000 000x 名称 LCDCON LCDEN SLPEN WERR VLCDEN CS1 CS0 LMUX1 LMUX0 0001 0011 0001 0011 LCDSE1 SE15 SE14 SE13 SE12 SE11 SE10 SE9 SE8 0000 0000 0000 0000 PIE1 EEIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000 PIR1 EEIF ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 0000 0000 0000 0000 RCSTA SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 0000 000X 0000 000X SSPCON WCOL SSPOV SSPEN CKP SSPM3 SSPM2 SSPM1 SSPM0 0000 0000 0000 0000 TRISC TRISC7 TRISC6 TRISC5 TRISC4 TRISC3 TRISC2 TRISC1 TRISC0 1111 1111 1111 1111 0000 0000 0000 0000 SYNC — BRGH TRMT TX9D 0000 -010 0000 -010 TXREG TXSTA AUSART 发送数据寄存器 CSRC TX9 TXEN 图注: x = 未知, - = 未实现单元 (读为 0)。同步从发送不使用阴影单元。 2007 Microchip Technology Inc. DS41250F_CN 第 139 页 PIC16F913/914/916/917/946 9.3.2.3 AUSART 同步从接收 9.3.2.4 除了以下不同外,同步主、从模式的工作原理是相同的 (见第 9.3.1.4 节 “同步主接收”)。 1. 2. • 休眠 • CREN 位总是置 1,因此接收器不能进入空闲状 态。 • SREN 位在从模式下被忽略。 3. 4. 5. 6. 如果在进入休眠模式之前,已经将 CREN 位置 1,则在 休眠模式仍可接收字符。接收完该字后,RSR 寄存器将 把接收到的数据传输到 RCREG 寄存器。如果将 PIE1 寄存器的 RCIE 中断允许位置 1,则将产生中断,并将 器件从休眠模式唤醒,然后执行下一条指令。如果 GIE 位也置 1,则程序将跳转到中断向量处执行。 7. 8. 9. 表 9-9: 名称 同步从接收设置: 将 SYNC 和 SPEN 位置 1,并将 CSRC 位清零。 如果需要中断,将 PIE1 寄存器的 RCIE 位和 INTCON 寄存器的 GIE 和 PEIE 位置 1。 如果需要接收 9 位数据,则将 RX9 位置 1。 将 RCSTA 寄存器的 ADDEN 位清零,禁止校验 地址检测。 将 CREN 位置 1,使能接收。 当接收完成后,将 PIR1 寄存器的 RCIF 位置 1。 如果 PIE1 寄存器的 RCIE 位也被置 1,还将产生 中断。 如果使能 9 位模式,则从 RCSTA 寄存器的 RX9D 位获取最高数据位。 通过读 RCREG 寄存器,可从接收 FIFO 缓冲器 获取接收到的 8 个低数据位。 如果产生溢出错误,清零RCSTA寄存器的CREN 位以清除错误。 与同步从接收相关的寄存器 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 上电复位与欠 压复位时的值 所有其他 复位时的值 INTCON GIE PEIE T0IE INTE RBIE T0IF INTF RBIF 0000 000x 0000 000x LCDCON LCDEN SLPEN WERR VLCDEN CS1 CS0 LMUX1 LMUX0 0001 0011 0001 0011 LCDSE1 SE15 SE14 SE13 SE12 SE11 SE10 SE9 SE8 0000 0000 0000 0000 PIE1 EEIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000 PIR1 EEIF ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF RCREG RCSTA AUSART 接收数据寄存器 SPEN RX9 SREN 0000 0000 0000 0000 0000 0000 0000 0000 0000 000X CREN ADDEN FERR OERR RX9D 0000 000X SSPCON WCOL SSPOV SSPEN CKP SSPM3 SSPM2 SSPM1 SSPM0 0000 0000 0000 0000 TRISC TRISC7 TRISC6 TRISC5 TRISC4 TRISC3 TRISC2 TRISC1 TRISC0 1111 1111 1111 1111 CSRC TX9 TXEN SYNC — BRGH TRMT TX9D 0000 -010 0000 -010 TXSTA 图注: x = 未知, - = 未实现单元 (读为 0)。同步从接收不使用阴影单元。 DS41250F_CN 第 140 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 9.4 AUSART 在休眠期间的工作 只有在同步从模式下,AUSART 在休眠期间才可继续工 作。所有其他模式都需要系统时钟,因此不能产生在休 眠模式下运行发送或接收移位寄存器所必需的信号。 同步从模式使用外部产生的时钟对发送和接收移位寄存 器进行操作。 9.4.1 休眠期间的同步接收 要在休眠期间执行接收操作,在进入休眠模式之前必须 满足下列所有条件: • RCSTA 和 TXSTA 控制寄存器必须配置为同步从 接收 (见第 9.3.2.4 节 “同步从接收设置:”)。 • 如果需要中断,将 PIE1 寄存器的 RCIE 位和 INTCON 寄存器的 PEIE 位置 1。 • 必须通过读取 RCREG 寄存器将 RCIF 中断标志位 清零,以卸载接收缓冲器中所有待处理的字符。 进入休眠模式后,器件已准备好分别接受 RX/DT 和 TX/CK 引脚上的数据和时钟信号。当外部器件将数据字 完全移入后,将 PIR1 寄存器的 RCIF 中断标志位置 1。 从而,将处理器从休眠模式唤醒。 9.4.2 休眠期间的同步发送 要在休眠期间执行发送操作,在进入休眠模式之前必须 满足下列所有条件: • RCSTA 和 TXSTA 控制寄存器必须配置为同步从 发送模式 (见第 9.3.2.2 节 “同步从发送设 置:”)。 • 将输出数据写入 TXREG 来清零 TXIF 中断标志 位,从而填充 TSR 和发送缓冲器。 • 如果需要中断,将 PIE1 寄存器的 TXIE 位和 INTCON 寄存器的 PEIE 位置 1。 进入休眠模式后,器件已准备好接受 TX/CK 上的时钟信 号和发送 RX/DT 引脚上的数据。当外部器件将 TSR 中 数据字全部移出后, TXREG 中的待处理字节将被发送 到 TSR,且 TXIF 标志位置 1。 从而将处理器从休眠模 式唤醒。 此时, TXREG 可用于接收其他发送字符,此 操作将清零 TXIF 标志位。 从休眠模式唤醒后,器件将执行 SLEEP 指令后面的指 令。如果GIE全局中断允许位也置1,则调用地址0004h 处的中断服务程序。 从休眠模式唤醒后,器件将执行 SLEEP 指令后面的指 令。如果 INTCON 寄存器的 GIE 全局中断允许位也置 1,则调用地址 004h 处的中断服务程序。 2007 Microchip Technology Inc. DS41250F_CN 第 141 页 PIC16F913/914/916/917/946 注: DS41250F_CN 第 142 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 10.0 液晶显示 (LCD)驱动模块 液晶显示 (Liquid Crystal Display, LCD)驱动模块产 生时 序控 制来 驱动 静态 或复 用的 LCD 面 板。在 PIC16F913/916 器件中,模块最多能驱动 4 个公共端和 16 段的面板。在 PIC16F914/917 器件中,模块最多能 驱动 4 个公共端和 24 段的面板。在 PIC16F946 器件 中,模块最多能驱动 4 个公共端和 42 段的面板。 LCD 模块同时可以控制 LCD 像素数据。 LCD 驱动模块支持: • LCD 面板的直接驱动 • 3 个带有可选择预分频比的 LCD 时钟源 • 多达 4 个公共端: - 静态 (1 个公共端) - 1/2 复用 (2 个公共端) - 1/3 复用 (3 个公共端) - 1/4 复用 (4 个公共端) • 段多达: - 16 (PIC16F913/916 器件中) - 24 (PIC16F914/917 器件中) - 42 (PIC16F946 器件中) • 静态、 1/2 或 1/3 LCD 偏置 10.1 下列 LCDSE 寄存器可用于控制相应端口引脚: • • • • • • LCDSE0 LCDSE1 LCDSE2 LCDSE3 LCDSE4 LCDSE5 注 SE<7:0> SE<15:8> SE<23:16>(1) SE<31:24>(2) SE<39:32>(2) SE<41:40>(2) 1: 仅 PIC16F914/917 和 PIC16F946 器件。 2: 仅 PIC16F946 器件。 一旦为 LCD 面板初始化了模块,LCDDATA<11:0> 寄存 器的各个位就被清零/置1以分别代表透明/不透明像素: PIC16F913/916 器件的 COM3 和 SEG15 共用同一物理引脚,所以使用 1/4 复用显示 时 SEG15 不可用。 注: LCDCON 寄存器(寄存器 10-1)控制 LCD 驱动模块的 操作。 LCDPS 寄存器 (寄存器 10-2)配置 LCD 时钟 源预分频器和波形类型:A 型或 B 型。 LCDSE 寄存器 (寄存器 10-3)配置以下端口引脚的功能。 LCD 寄存器 • • • • • • • • • • • • LCDDATA0 LCDDATA1 LCDDATA2 LCDDATA3 LCDDATA4 LCDDATA5 LCDDATA6 LCDDATA7 LCDDATA8 LCDDATA9 LCDDATA10 LCDDATA11 SEG<7:0>COM0 SEG<15:8>COM0 SEG<23:16>COM0 SEG<7:0>COM1 SEG<15:8>COM1 SEG<23:16>COM1 SEG<7:0>COM2 SEG<15:8>COM2 SEG<23:16>COM2 SEG<7:0>COM3 SEG<15:8>COM3 SEG<23:16>COM3 下列寄存器仅在 PIC16F946 器件上可用: 该模块包含下列寄存器: PIC16F913/916 2 8 • • • • • • • • • • • • PIC16F914/917 3 12 作为示例,寄存器 10-4 详细说明了 LCDDATAx。 PIC16F946 6 24 一旦配置了模块后,LCDCON 寄存器的 LCDEN 位就可 用来使能或禁止 LCD 模块。通过清零 LCDCON 寄存器 的 SLPEN 位可使 LCD 面板在休眠模式下仍继续工作。 • • • • LCD 控制寄存器 (LCDCON) LCD 相位寄存器 (LCDPS) 最多 6 个 LCD 段使能寄存器 (LCDSEn) 最多 24 个 LCD 数据寄存器 (LCDDATA) 表 10-1: 器件 LCD 段寄存器和数据寄存器 LCD 寄存器数 段使能 数据 LCDDATA12 LCDDATA13 LCDDATA14 LCDDATA15 LCDDATA16 LCDDATA17 LCDDATA18 LCDDATA19 LCDDATA20 LCDDATA21 LCDDATA22 LCDDATA23 注: 2007 Microchip Technology Inc. SEG<31:24>COM0 SEG<39:32>COM0 SEG<41:40>COM0 SEG<31:24>COM1 SEG<39:32>COM1 SEG<41:40>COM1 SEG<31:24>COM2 SEG<39:32>COM2 SEG<41:40>COM2 SEG<31:24>COM3 SEG<39:32>COM3 SEG<41:40>COM3 在PIC16F913/916器件中未实现LCDDATA2、 LCDDATA5、LCDDATA8 和 LCDDATA11 寄 存器。 DS41250F_CN 第 143 页 PIC16F913/914/916/917/946 图 10-1: LCD 驱动模块框图 数据总线 LCDDATAx 寄存器 MUX SEG<41:0>(1, 2, 3) 到 I/O 引脚 (1) 时序控制 LCDCON LCDPS COM<3:0>(3) 到 I/O 引脚 (1) LCDSEn FOSC/8192 T1OSC/32 LFINTOSC/32 注 时钟源 选择和 预分频器 1: 这些信号不直接与 I/O 引脚相连,根据于 LCD 模块的配置,它们可能处于三态。 2: 在 PIC16F914/917 器件上为 SEG<23:0>,在 PIC16F913/916 器件上为 SEG<15:0>。 3: PIC16F913/916 器件的 COM3 和 SEG15 共用同一物理引脚,所以使用 1/4 复用显示时 SEG15 不可用。 DS41250F_CN 第 144 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 寄存器 10-1: LCDCON:液晶显示控制寄存器 R/W-0 R/W-0 R/C-0 R/W-1 R/W-0 R/W-0 R/W-1 R/W-1 LCDEN SLPEN WERR VLCDEN CS1 CS0 LMUX1 LMUX0 bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位,读为 0 C = 只可清零位 1=置1 0 = 清零 x = 未知 - n = 上电复位时的值 bit 7 LCDEN:LCD 驱动使能位 1 = 使能 LCD 驱动模块 0 = 禁止 LCD 驱动模块 bit 6 SLPEN:休眠模式下 LCD 驱动使能位 1 = 休眠模式下禁止 LCD 驱动模块 0 = 休眠模式下使能 LCD 驱动模块 bit 5 WERR:LCD 写失败错误位 1 = 当 LCDPS 寄存器的 WA = 0 时,写 LCDDATAx 寄存器 (必须由软件清零) 0 = 无 LCD 写错误 bit 4 VLCDEN:LCD 偏置电压引脚使能位 1 = 使能 VLCD 引脚 0 = 禁止 VLCD 引脚 bit 3-2 CS<1:0>:时钟源选择位 00 = FOSC/8192 01 = T1OSC (Timer1) /32 1x = LFINTOSC (31 kHz) /32 bit 1-0 LMUX<1:0>:公共端选择位 最大像素数 LMUX<1:0> 复用 00 静态 (COM0) 16 24 42 静态 48 84 1/2 或 1/3 10 1/2 (COM<1:0>) 1/3 (COM<2:0>) 32 48 72 126 11 1/4 (COM<3:0>) 60(1) 96 168 1/2 或 1/3 1/3 01 注 PIC16F913/916 PIC16F914/917 PIC16F946 偏置 1: PIC16F913/916 器件的 COM3 和 SEG15 共用同一引脚,从而限制器件最多驱动 64 个像素。 2007 Microchip Technology Inc. DS41250F_CN 第 145 页 PIC16F913/914/916/917/946 寄存器 10-2: LCDPS:LCD 预分频比选择寄存器 R/W-0 R/W-0 R-0 R-0 R/W-0 R/W-0 R/W-0 R/W-0 WFT BIASMD LCDA WA LP3 LP2 LP1 LP0 bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位,读为 0 - n = 上电复位时的值 1=置1 0 = 清零 bit 7 WFT:波形类型选择位 1 = B 型波形 (在每一帧边界改变相位) 0 = A 型波形 (在每一公共端类型内改变相位) bit 6 BIASMD:偏置模式选择位 当 LMUX<1:0> = 00 时: 0 = 静态偏置模式 (不要将该位置 1) 当 LMUX<1:0> = 01 时: 1 = 1/2 偏置模式 0 = 1/3 偏置模式 当 LMUX<1:0> = 10 时: 1 = 1/2 偏置模式 0 = 1/3 偏置模式 当 LMUX<1:0> = 11 时: 0 = 1/3 偏置模式 (不要将该位置 1) bit 5 LCDA:LCD 工作状态位 1 = 使能 LCD 驱动模块 0 = 禁止 LCD 驱动模块 bit 4 WA:LCD 写允许状态位 1 = 允许写入 LCDDATAx 寄存器 0 = 不允许写入 LCDDATAx 寄存器 bit 3-0 LP<3:0>:LCD 预分频比选择位 1111 = 1:16 1110 = 1:15 1101 = 1:14 1100 = 1:13 1011 = 1:12 1010 = 1:11 1001 = 1:10 1000 = 1:9 0111 = 1:8 0110 = 1:7 0101 = 1:6 0100 = 1:5 0011 = 1:4 0010 = 1:3 0001 = 1:2 0000 = 1:1 DS41250F_CN 第 146 页 x = 未知 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 寄存器 10-3: LCDSEn:LCD 段使能寄存器 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 SEn SEn SEn SEn SEn SEn SEn SEn bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位,读为 0 - n = 上电复位时的值 1=置1 0 = 清零 bit 7-0 SEn:段使能位 1 = 使能引脚的段功能 0 = 使能引脚的 I/O 功能 寄存器 10-4: R/W-x x = 未知 LCDDATAx:LCD 数据寄存器 R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x SEGx-COMy SEGx-COMy SEGx-COMy SEGx-COMy SEGx-COMy SEGx-COMy SEGx-COMy SEGx-COMy bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位,读为 0 - n = 上电复位时的值 1=置1 0 = 清零 bit 7-0 x = 未知 SEGx-COMy:像素点亮位 1 = 点亮像素 (不透明) 0 = 不点亮象素 (透明) 2007 Microchip Technology Inc. DS41250F_CN 第 147 页 PIC16F913/914/916/917/946 10.2 LCD 时钟源选择 10.2.1 LCD 预分频器 一个 4 位计数器可用作 LCD 时钟的预分频器。该预分频 器不可直接读写;它的值由 LCDPS 寄存器的 LP<3:0> 位设置,该值决定了预分频器的分配和预分频比。 LCD 驱动模块具有 3 个可用的时钟源: • FOSC/8192 • T1OSC/32 • LFINTOSC/32 预分频比从 1:1 到 1:16。 第一 个时 钟源 是系 统时 钟的 8192 分 频时 钟信 号 (FOSC/8192)。 当系统时钟为 8 MHz 时,选择该分频 比将提供约 1 kHz 的输出。该分频比不可编程。 相反, LCDPS 寄存器的 LCD 预分频比位 LP<3:0> 则用于设置 LCD 帧时钟速率。 第二个时钟源是 T1OSC/32。当 Timer1 振荡器使用 32.768 kHz 晶振时它同样提供约 1 kHz 的输出。 要把 Timer1 振荡器用作时钟源,需将 T1CON 寄存器的 T1OSCEN 位置 1。 第三个时钟源是 31 kHz 的 LFINTOSC/32,它提供大约 1 kHz 的输出。 当处理器休眠时,第二个和第三个时钟源用于维持 LCD 运行。 使用 LCDCON 寄存器的 CS<1:0> 位可选择其中一个时 钟源。 图 10-2: 10.3 LCD 偏置类型 LCD 驱动模块可被配置为 3 种偏置类型: • 静态偏置 (2 种电压等级:VSS 和 VDD) • 1/2 偏置 (3 种电压等级:VSS、 1/2 VDD 和 VDD) • 1/3 偏置 (4 种电压等级:VSS、 1/3 VDD、 2/3 VDD 和 VDD) 模块使用外部梯形电阻产生 LCD 偏置电压。 外部梯形电阻应该连接到 VLCD1 引脚(偏置引脚 1)、 VLCD2 引脚 (偏置引脚 2)、 VLCD3 引脚 (偏置引脚 3)和 VSS。还应该把 VLCD3 引脚连接到 VDD。 图 10-2 给出了连接梯形电阻与偏置引脚的正确方法。 注: 上电复位 (POR)时,用于提供 LCD 偏置 电压的 VLCD 引脚会被使能,用户必须通过 清零 LCDCON 寄存器的 VLCDEN 位来禁 止 VLCD 引脚。 LCD 偏置梯形电阻连接框图 静态偏置 VLCD 3 至 VLCD 2 LCD VLCD 1 驱动器 VLCD 0(1) LCD 偏置 3 LCD 偏置 2 LCD 偏置 1 1/3 偏置 VLCD 0 VSS VSS VSS VLCD 1 — 1/2 VDD 1/3 VDD VLCD 2 — 1/2 VDD 2/3 VDD VLCD 3 VDD VDD VDD 连接外部梯形电阻 静态偏置 VDD* VDD* 1/2 偏置 10 kΩ* 1/2 偏置 10 kΩ* VSS VDD* 10 kΩ* 10 kΩ* 1/3 偏置 10 kΩ* VSS 注 * 上述值仅供设计参考,设计人员在实际应用时应对其进行优化。 1: 内部连接。 DS41250F_CN 第 148 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 10.4 LCD 复用类型 10.7 LCD 驱动模块可以被配置为 4 种复用类型: • • • • COM 和 SEG 输出改变的速率称为 LCD 帧频率。 静态 (只使用 COM0) 1/2 复用 (使用 COM<1:0>) 1/3 复用 (使用 COM<2:0>) 1/4 复用 (使用 COM<3:0>) 表 10-3: LCDCON 寄存器的 LMUX<1:0> 位的设置决定 RB5、 RA2 和 RA3 或 RD0 引脚的功能 (详情见表 10-2)。 如果引脚为数字 I/O,相应的 TRIS 位控制数据方向。如 果引脚为 COM 驱动,那么该引脚的 TRIS 设置将不起 作用。 上电复位时,LCDCON寄存器的LMUX<1:0> 位为 11。 注: 表 10-2: LMUX <1:0> RA3/RD0(1) RA2 RB5 静态 00 数字 I/O 数字 I/O 数字 I/O 1/2 01 数字 I/O 数字 I/O 1/3 10 数字 I/O 1/4 11 COM3 驱动 10.5 1: 帧频率公式 复用 帧频率 = 静态 1/2 时钟源 /(4 x 1 x (LP<3:0> + 1)) 1/3 时钟源 /(1 x 3 x (LP<3:0> + 1)) 1/4 注: 表 10-4: RA3/RD0、 RA2 和 RB5 的功能 复用 注 LCD 帧频率 时钟源 /(2 x 2 x (LP<3:0> + 1)) 时钟源 /(1 x 4 x (LP<3:0> + 1)) 时钟源是 FOSC/8192、 T1OSC/32 LFINTOSC/32。 或 使用 8 MHz 的 FOSC、工作在 32.768 kHz 的 TIMER1 或 LFINTOSC 振荡器时的近似帧频 率 (单位 Hz) LP<3:0> 静态 1/2 1/3 1/4 COM1 驱动 2 85 85 114 85 COM2 驱动 COM1 驱动 3 64 64 85 64 COM2 驱动 COM1 驱动 4 51 51 68 51 5 43 43 57 43 6 37 37 49 37 7 32 32 43 32 PIC16F913/916 使用 RA3, PIC16F914/917 和 PIC16F946 使用 RD0 段使能 LCDSEn 寄存器用于选择每个段引脚的引脚功能。引脚 功能选择可使每个引脚工作为LCD段驱动或者负责提供 引脚的备用功能。要把引脚配置为段引脚,LCDSEn 寄 存器中的相应位必须置 1。 如果引脚为数字 I/O,相应的 TRIS 位控制数据方向。 LCDSEn 寄存器中的任何一位置 1 都会覆盖对应 TRIS 寄存器中相应位的设置。 注: 10.6 在 上 电复 位 时,这 些 引 脚 被配 置 为 数 字 I/O。 像素控制 LCDDATAx寄存器中的位用于定义像素状态。每一位只 定义一个像素。 寄存器 10-4 所示为 LCDDATAx 寄存器中的每一位同各 个公共端、段信号间的相互关系。 没有用于显示的 LCD 像素地址可被用作通用 RAM。 2007 Microchip Technology Inc. DS41250F_CN 第 149 页 PIC16F913/914/916/917/946 LCD 时钟产生 FOSC COM0 COM1 COM2 COM3 图 10-3: ÷8192 T1OSC 32 kHz 晶振 LFINTOSC 标称频率 = 31 kHz ÷32 CS<1:0> (LCDCON<3:2>) DS41250F_CN 第 150 页 ÷4 静态 ÷2 1/2 ÷32 4 位可编程预分频器 ÷1, 2, 3, 4 环形计数器 1/3, 1/4 LP<3:0> (LCDPS<3:0>) LMUX<1:0> (LCDCON<1:0>) LMUX<1:0> (LCDCON<1:0>) 2007 Microchip Technology Inc. COM0 2007 Microchip Technology Inc. LCDDATA2, 4 SEG20 COM1 LCDDATA5, 7 LCDDATA5, 6 LCDDATA5, 5 LCDDATA5, 4 LCDDATA5, 3 LCDDATA5, 2 LCDDATA5, 1 LCDDATA5, 0 LCDDATA4, 7 LCDDATA4, 6 LCDDATA4, 5 LCDDATA4, 4 LCDDATA4, 3 LCDDATA4, 2 LCDDATA4, 1 LCDDATA4, 0 LCDDATA3, 7 LCDDATA3, 6 LCDDATA3, 5 LCDDATA3, 4 LCDDATA3, 3 LCDDATA3, 2 LCDDATA3, 1 LCDDATA3, 0 LCDDATAx 地址 仅适用于PIC16F914/917 和 PIC16F946。 * = 仅适用于 PIC16F913/916。 LCDDATA2, 7 LCDDATA2, 3 SEG19 LCDDATA2, 6 LCDDATA2, 2 SEG18 SEG23 LCDDATA2, 1 SEG17 SEG22 LCDDATA2, 0 SEG16 LCDDATA2, 5 LCDDATA1, 7 SEG21 LCDDATA1, 6 SEG15 LCDDATA1, 1 SEG9 SEG14 LCDDATA1, 0 SEG8 LCDDATA1, 5 LCDDATA0, 7 SEG7 SEG13 LCDDATA0, 6 SEG6 LCDDATA1, 4 LCDDATA0, 5 SEG5 SEG12 LCDDATA0, 4 SEG4 LCDDATA1, 2 LCDDATA0, 3 SEG3 LCDDATA1, 3 LCDDATA0, 2 SEG2 SEG11 LCDDATA0, 1 SEG1 LCD 段 LCD 段 COM2 LCDDATA8, 7 LCDDATA8, 6 LCDDATA8, 5 LCDDATA8, 4 LCDDATA8, 3 LCDDATA8, 2 LCDDATA8, 1 LCDDATA8, 0 LCDDATA7, 7 LCDDATA7, 6 LCDDATA7, 5 LCDDATA7, 4 LCDDATA7, 3 LCDDATA7, 2 LCDDATA7, 1 LCDDATA7, 0 LCDDATA6, 7 LCDDATA6, 6 LCDDATA6, 5 LCDDATA6, 4 LCDDATA6, 3 LCDDATA6, 2 LCDDATA6, 1 LCDDATA6, 0 LCDDATAx 地址 LCD 段 COM3 LCDDATA11, 7 LCDDATA11, 6 LCDDATA11, 5 LCDDATA11, 4 LCDDATA11, 3 LCDDATA11, 2 LCDDATA11, 1 LCDDATA11, 0 LCDDATA10, 7 LCDDATA10, 6 LCDDATA10, 5 LCDDATA10, 4 LCDDATA10, 3 LCDDATA10, 2 LCDDATA10, 1 LCDDATA10, 0 LCDDATA9, 7 LCDDATA9, 6 LCDDATA9, 5 LCDDATA9, 4 LCDDATA9, 3 LCDDATA9, 2 LCDDATA9, 1 LCDDATA9, 0 LCDDATAx 地址 LCD 段 — — — — — — — — 5 27 28 2 15 16 17 18 3 14 7 6 24 23 22 21 28 引脚 10 9 8 30 29 28 27 26 5 39 40 2 23 24 25 26 3 18 7 6 36 35 34 33 40 引脚 引脚号 35 34 33 2 1 64 63 58 30 23 24 27 59 60 61 62 28 52 32 31 18 17 16 15 64 引脚 RE2 RE1 RE0 RD7 RD6 RD5 RD4 RD3 RA3 RB6 RB7 RA0 RC4 RC5 RC6 RC7 RA1 RC3 RA5 RA4 RB3 RB2 RB1 RB0 端口 AN7 AN6 AN5 AN3/VREF+/COM3* ICSPCLK/ICDCK ICSPDAT/ICDDAT AN0/C1- T1G/SDO T1CKI/CCP1 TX/CK/SCK/SCL RX/DT/SDI/SDA AN1/C2- C2OUT/AN4/SS C1OUT/T0CKI INT 备用 功能 图 10-4: SEG10 LCDDATA0, 0 LCDDATAx 地址 SEG0 LCD 功能 PIC16F913/914/916/917/946 LCD 段映射工作表 (第 1 部分,共 2 部分) DS41250F_CN 第 151 页 LCDDATA12, 1 LCDDATA12, 2 LCDDATA12, 3 LCDDATA12, 4 LCDDATA12, 5 LCDDATA12, 6 LCDDATA12, 7 LCDDATA13, 0 LCDDATA13, 1 LCDDATA13, 2 LCDDATA13, 3 LCDDATA13, 4 LCDDATA13, 5 LCDDATA13, 6 LCDDATA13, 7 LCDDATA14, 0 LCDDATA14, 1 SEG25 SEG26 SEG27 SEG28 SEG29 SEG30 SEG31 SEG32 SEG33 SEG34 SEG35 SEG36 SEG37 SEG38 SEG39 SEG40 SEG41 LCD 段 DS41250F_CN 第 152 页 LCDDATA17, 1 LCDDATA17, 0 LCDDATA16, 7 LCDDATA16, 6 LCDDATA16, 5 LCDDATA16, 4 LCDDATA16, 3 LCDDATA16, 2 LCDDATA16, 1 LCDDATA16, 0 LCDDATA15, 7 LCDDATA15, 6 LCDDATA15, 5 LCDDATA15, 4 LCDDATA15, 3 LCDDATA15, 2 LCDDATA15, 1 LCDDATA15, 0 LCDDATAx 地址 COM1 LCD 段 LCDDATA20, 1 LCDDATA20, 0 LCDDATA19, 7 LCDDATA19, 6 LCDDATA19, 5 LCDDATA19, 4 LCDDATA19, 3 LCDDATA19, 2 LCDDATA19, 1 LCDDATA19, 0 LCDDATA18, 7 LCDDATA18, 6 LCDDATA18, 5 LCDDATA18, 4 LCDDATA18, 3 LCDDATA18, 2 LCDDATA18, 1 LCDDATA18, 0 LCDDATAx 地址 COM2 LCD 段 LCDDATA23, 1 LCDDATA23, 0 LCDDATA22, 7 LCDDATA22, 6 LCDDATA22, 5 LCDDATA22, 4 LCDDATA22, 3 LCDDATA22, 2 LCDDATA22, 1 LCDDATA22, 0 LCDDATA21, 7 LCDDATA21, 6 LCDDATA21, 5 LCDDATA21, 4 LCDDATA21, 3 LCDDATA21, 2 LCDDATA21, 1 LCDDATA21, 0 LCDDATAx 地址 COM3 LCD 段 引脚号 8 7 6 5 4 3 14 13 12 11 48 47 46 45 44 43 42 37 64 引脚 RG5 RG4 RG3 RG2 RG1 RG0 RF3 RF2 RF1 RF0 RF7 RF6 RF5 RF4 RE7 RE6 RE5 RE4 端口 备用 功能 图 10-5: 仅适用于 PIC16F946。 LCDDATA12, 0 LCDDATAx 地址 COM0 SEG24 LCD 功能 PIC16F913/914/916/917/946 LCD 段映射工作表 (第 2 部分,共 2 部分) 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 10.8 LCD 波形产生 因为要产生 LCD 波形,所以不透明像素上的净 AC 电压 应该是最大值,而透明像素上的净 AC 电压应该是最小 值。任何像素上的净 DC 电压应该为零。 COM 信号表示每个公共端的时间片,而 SEG 中包含像 素数据。 像素信号 (COM-SEG)中将不包含 DC 分量,并且只 可取两个 rms 值中的一个。 高 rms 值会产生不透明像 素,而低 rms 值会产生透明像素。 随着公共端数量的增加,两个 rms 值间的差值逐渐减 小。这个差值表示显示器可具有的最大对比度。 可以用两种波形驱动 LCD:A 型和 B 型。在 A 型波形 中,相位在每个公共端类型中改变,然而在 B 型波形 中,相位在每个帧边界上改变。这样, A 型波形在单帧 中维持 0 VDC,而 B 型波形则需要两个帧。 注 1: 如果器件休眠时必须使能 LCD 休眠 (LCDCON<SLPEN> = 1),则必须格外 小心,因为只有当所有像素上的 VDC 为 0 时才可执行 SLEEP 指令。 2: 当 LCD 时钟源为 FOSC/8192 时,不管 LCDCON<SLPEN> 设置如何,只要执行 SLEEP 指令,LCD 就会进入休眠状态。因 而当执行 SLEEP 指令时应注意查看所有像 素上的 VDC 是否为 0。 图 10-6 至图 10-16 所示为 A 型和 B 型波形在静态、1/2 复用、 1/3 复用和 1/4 复用驱动时的波形。 图 10-6: 在静态驱动时的 A/B 型波形 V1 COM0 V0 COM0 V1 SEG0 V0 V1 SEG1 V0 V1 V0 COM0-SEG0 -V1 COM0-SEG1 V0 SEG1 SEG0 SEG2 SEG7 SEG6 SEG5 SEG4 SEG3 1 个帧 2007 Microchip Technology Inc. DS41250F_CN 第 153 页 PIC16F913/914/916/917/946 图 10-7: 在 1/2 复用、 1/2 偏置驱动时的 A 型波形 V2 COM0 V1 V0 COM1 V2 COM1 COM0 V1 V0 V2 V1 SEG0 V0 V2 V1 SEG1 V2 SEG1 SEG0 SEG2 SEG3 V0 V1 V0 COM0-SEG0 -V1 -V2 V2 V1 V0 COM0-SEG1 -V1 1 个帧 DS41250F_CN 第 154 页 -V2 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 图 10-8: 在 1/2 复用、 1/2 偏置驱动时的 B 型波形 V2 V1 COM0 COM1 V0 COM0 V2 COM1 V1 V0 V2 SEG0 V1 SEG1 SEG0 SEG2 SEG3 V0 V2 SEG1 V1 V0 V2 V1 V0 COM0-SEG0 -V1 -V2 V2 V1 V0 COM0-SEG1 -V1 2 个帧 2007 Microchip Technology Inc. -V2 DS41250F_CN 第 155 页 PIC16F913/914/916/917/946 图 10-9: 在 1/2 复用、 1/3 偏置驱动时的 A 型波形 V3 V2 COM0 V1 COM1 V0 V3 COM0 V2 COM1 V1 V0 V3 V2 SEG0 V1 V0 SEG1 SEG0 SEG2 SEG3 V3 V2 SEG1 V1 V0 V3 V2 V1 V0 COM0-SEG0 -V1 -V2 -V3 V3 V2 V1 V0 COM0-SEG1 -V1 1 个帧 DS41250F_CN 第 156 页 -V2 -V3 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 图 10-10: 在 1/2 复用、 1/3 偏置驱动时的 B 型波形 V3 V2 COM0 V1 COM1 V0 V3 COM0 V2 COM1 V1 V0 V3 V2 SEG0 V1 V0 SEG1 SEG0 SEG2 SEG3 V3 V2 SEG1 V1 V0 V3 V2 V1 V0 COM0-SEG0 -V1 -V2 -V3 V3 V2 V1 V0 COM0-SEG1 -V1 2 个帧 2007 Microchip Technology Inc. -V2 -V3 DS41250F_CN 第 157 页 PIC16F913/914/916/917/946 图 10-11: 在 1/3 复用、 1/2 偏置驱动时的 A 型波形 V2 COM0 V1 V0 V2 COM2 COM1 V1 V0 COM1 V2 COM0 COM2 V1 V0 V2 SEG0 SEG2 V1 V0 V2 V1 V0 SEG0 SEG1 SEG2 SEG1 V2 V1 V0 COM0-SEG0 -V1 -V2 V2 V1 V0 COM0-SEG1 -V1 -V2 1 个帧 DS41250F_CN 第 158 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 图 10-12: 在 1/3 复用、 1/2 偏置驱动时的 B 型波形 V2 COM0 V1 V0 COM2 V2 COM1 V1 COM1 V0 COM0 V2 COM2 V1 V0 V2 V1 V0 SEG0 SEG1 SEG2 SEG0 V2 SEG1 V1 V0 V2 V1 V0 COM0-SEG0 -V1 -V2 V2 V1 V0 COM0-SEG1 -V1 -V2 2 个帧 2007 Microchip Technology Inc. DS41250F_CN 第 159 页 PIC16F913/914/916/917/946 图 10-13: 在 1/3 复用、 1/3 偏置驱动时的 A 型波形 V3 V2 COM0 V1 V0 V3 COM2 V2 COM1 V1 COM1 V0 COM0 V3 V2 COM2 V1 V0 V3 V2 V1 V0 SEG0 SEG1 SEG2 SEG0 SEG2 V3 V2 SEG1 V1 V0 V3 V2 V1 V0 COM0-SEG0 -V1 -V2 -V3 V3 V2 V1 V0 COM0-SEG1 -V1 -V2 -V3 1 个帧 DS41250F_CN 第 160 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 图 10-14: 在 1/3 复用、 1/3 偏置驱动时的 B 型波形 V3 V2 COM0 V1 V0 V3 COM2 V2 COM1 V1 COM1 V0 COM0 V3 V2 COM2 V1 V0 V3 V2 V1 V0 SEG0 SEG1 SEG2 SEG0 V3 V2 SEG1 V1 V0 V3 V2 V1 V0 COM0-SEG0 -V1 -V2 -V3 V3 V2 V1 V0 COM0-SEG1 -V1 -V2 -V3 2 个帧 2007 Microchip Technology Inc. DS41250F_CN 第 161 页 PIC16F913/914/916/917/946 图 10-15: 在 1/4 复用、 1/3 偏置驱动时的 A 型波形 COM3 COM2 COM1 COM0 V3 V2 V1 V0 COM1 V3 V2 V1 V0 COM2 V3 V2 V1 V0 COM3 V3 V2 V1 V0 SEG0 V3 V2 V1 V0 SEG1 V3 V2 V1 V0 COM0-SEG0 V3 V2 V1 V0 -V1 -V2 -V3 COM0-SEG1 V3 V2 V1 V0 -V1 -V2 -V3 SEG0 SEG1 COM0 1 个帧 DS41250F_CN 第 162 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 图 10-16: 在 1/4 复用、 1/3 偏置驱动时的 B 型波形 COM3 COM2 COM1 COM0 V3 V2 V1 V0 COM1 V3 V2 V1 V0 COM2 V3 V2 V1 V0 COM3 V3 V2 V1 V0 SEG0 V3 V2 V1 V0 SEG1 V3 V2 V1 V0 COM0-SEG0 V3 V2 V1 V0 -V1 -V2 -V3 COM0-SEG1 V3 V2 V1 V0 -V1 -V2 -V3 SEG0 SEG1 COM0 2 个帧 2007 Microchip Technology Inc. DS41250F_CN 第 163 页 PIC16F913/914/916/917/946 10.9 LCD 中断 形和偶数帧波形不再互补,在面板中会引入一个直流分 量。因此,当使用 B 型波形时,用户必须同步帧中断后 的下一帧中发生的 LCD 像素更新。 LCD 时序发生提供了一个中断,该中断定义 LCD 的帧 时序。 在 B 型波形时要使写入时序正确,中断将只能发生在完 整的相位间隔内。当禁止写入时,一旦用户试图进行写 操作, LCDCON 寄存器的 WERR 位将被置 1,且不会 发生写操作。 一个新帧开始于 COM0 公共端信号的前沿。在 LCD 控 制器完成对帧所需的所有像素数据的访问后将立即产生 中断。中断发生在帧边界前的某一固定时间 (TFINT), 如图 10-17 所示。在中断发生的 TFWR 时间后,LCD 控 制器将开始访问下一帧数据。 新数据必须在 TFWR 内写 入,因为在此间隔后 LCD 控制器将开始访问下一帧数 据。 注: 当选择 A 型波形和选择不复用 (静态)的 B 型波形时不产生中断。 当 LCD 驱动器由 B 型波形驱动且 LMUX<1:0> 位不等于 00(静态驱动)时,必须处理一些额外的问题。由于需 要两帧来维持像素上的 DC 电压为零,因此在此期间像 素数据要保持不变。一旦像素数据发生改变,奇数帧波 图 10-17: 1/4 占空比驱动时的波形和中断时序 (示例- B 型,非静态) LCD 中断 发生 控制器访问 下一帧数据 COM0 V3 V2 V1 V0 COM1 V3 V2 V1 V0 COM2 V3 V2 V1 V0 V3 V2 V1 V0 COM3 2 个帧 TFINT 帧边界 帧边界 TFWR 帧边界 TFWR = TFRAME/2*(LMUX<1:0> + 1) + TCY/2 TFINT = (TFWR/2 – (2 TCY + 40 ns)) → 最小值 = 1.5(TFRAME/4) – (2 TCY + 40 ns) (TFWR/2 – (1 TCY + 40 ns)) → 最大值 = 1.5(TFRAME/4) – (1 TCY + 40 ns) DS41250F_CN 第 164 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 10.10 在休眠模式下工作 LCD模块可以工作在休眠模式下。模式选择由LCDCON 寄存器中的 SLPEN 位控制。将 SLPEN 位置 1 将允许 LCD 模块进入休眠模式。清零 SLPEN 位将使模块在休 眠模式下继续工作。 如果执行 SLEEP 指令并且 SLPEN = 1,LCD 模块将中 止所有的功能,进入极低的电流消耗模式。模块将立即 停止工作,并在段和公共端上输出最小 LCD 驱动电压。 图 10-18 所示为此操作过程。 要确保没有直流分量引入面板,应在 LCD 帧边界后立即 执行 SLEEP 指令。 对于 B 型 (非静态)复用,可用 LCD 中断判定帧边界。 参见第 10.9 节“LCD 中断”中 的公式来计算延时。在所有其他模式下,LCDA 位均可 用于确定显示的时间。要使用该方法,在进入休眠模式 时,应执行以下序列: • 清零 LCDEN • 等待 LCDA 清零 • 使用 PORT 和 TRIS 寄存器将所有 LCD 引脚驱动 为停止状态 • 执行 SLEEP 指令 注: 表 10-5 给出了 LCD 模块在休眠模式下使用三个可用时 钟源中每一个时钟源时的状态: 表 10-5: 休眠模式下 LCD 模块的状态 SLPEN 在休眠模式下是 否工作? 0 是 1 否 LFINTOSC 0 是 1 否 FOSC/4 0 否 1 否 时钟源 T1OSC 注: 要使 LCD 模块在休眠模式下工作,必须使 用 LFINTOSC 或外部 T1OSC 振荡器。 如果产生 LCD 中断 (非静态复用模式的 B 型波形)且 LCDIE = 1,则器件将会在下一个帧边界从休眠模式中 唤醒。 如果 LCDEN 位被清零, LCD 模块将在帧 完成时被禁止。此时,端口引脚将恢复数 字功能。 要最小化由于悬空数字输入而产 生的功耗,应该使用 PORT 和 TRIS 寄存 器将 LCD 引脚驱动为低电平。 如果执行 SLEEP 指令并且 SLPEN = 0,模块将继续显 示 LCDDATA 寄存器的当前内容。要使模块在休眠模式 下继续工作,时钟源必须为 LFINTOSC 或 T1OSC 外部 振荡器。在休眠模式下,LCD 数据不能改变。在此模式 下,LCD 模块电流消耗并未降低;然而,器件的整体功 耗将因内核和其他外设功能的关闭而降低。 2007 Microchip Technology Inc. DS41250F_CN 第 165 页 PIC16F913/914/916/917/946 图 10-18: 当 SLPEN = 1 时进入 / 退出休眠模式 V3 V2 V1 COM0 V0 V3 V2 V1 V0 COM1 V3 V2 V1 V0 COM2 V3 V2 V1 V0 SEG0 2 个帧 执行 SLEEP 指令 DS41250F_CN 第 166 页 唤醒 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 10.11 配置 LCD 模块 10.13 LCD 电流消耗 以下是配置 LCD 模块的步骤: 使用 LCD 模块时,电流消耗包含以下三方面: 1. 1. 2. 3. 2. 3. 4. 5. 6. 7. 使用 LCDPS 寄存器的 LP<3:0> 位选择帧时钟预 分频比。 使用LCDSEn寄存器把相应的引脚配置为段驱动 引脚。 使用 LCDCON 寄存器配置 LCD 模块: - 使用 LMUX<1:0> 位配置复用和偏置模式 - 使用 CS<1:0> 位配置时钟源 - 使用 SLPEN 位配置休眠模式 把像素数据的初始值写入 LCDDATA0 到 LCDDATA11 (PIC16F946 器 件上 为 LCDDATA23)像素数据寄存器。 清零 PIR2 寄存器中的 LCD 中断标志位 LCDIF, 如果需要,将 PIE2 寄存器中的 LCDIE 位置 1 允 许中断。 通过将 LCDCON 寄存器的 VLCDEN 位置 1 使 能偏置电压引脚 (VLCD<3:1>)。 将 LCDCON 寄存器的 LCDEN 位置 1,使能 LCD 模块。 选择的振荡器 LCD 偏置源 给 LCD 段充电所需的电流 与其他因素相比,只有 LCD 模块上的电流消耗可以忽 略。 选择的振荡器: 对于休眠期间的 LCD 操作,T1oc 或 LFINTOSC 时钟源 需要作为主系统振荡器(在休眠期间被禁止)使用。休 眠期间, LFINTOSC 电流消耗由电气参数 D021 给出, 此时LFINTOSC与看门狗定时器使用同一个内部振荡器 电路。 LCD 偏置源: LCD 偏置源通常是一个外部梯形电阻,该电阻本身消耗 电流。 给 LCD 段充电所需的电流: 可以把 LCD 段看作电容,该电容必须在每一帧进行充放 电。LCD 段的大小及其技术决定 LCD 段的电容。 10.12 禁止 LCD 模块 要禁止 LCD 模块,应向 LCDCON 寄存器写入全 0。 2007 Microchip Technology Inc. DS41250F_CN 第 167 页 PIC16F913/914/916/917/946 表 10-6: 与 LCD 操作相关的寄存器 Bit 7 Bit 6 Bit 5 Bit 4 CMCON0 C2OUT C1OUT C2INV INTCON GIE PEIE T0IE 名称 Bit 1 Bit 0 上电复位与欠 压复位时的值 所有其他 复位时的值 Bit 3 Bit 2 C1INV CIS CM2 CM1 CM0 0000 0000 0000 0000 INTE RBIE T0IF INTF RBIF 0000 000x 0000 000x LCDCON LCDEN SLPEN WERR VLCDEN CS1 CS0 LMUX1 LMUX0 0001 0011 0001 0011 LCDDATA0 SEG7 COM0 SEG6 COM0 SEG5 COM0 SEG4 COM0 SEG3 COM0 SEG2 COM0 SEG1 COM0 SEG0 COM0 xxxx xxxx uuuu uuuu LCDDATA1 SEG15 COM0 SEG14 COM0 SEG13 COM0 SEG12 COM0 SEG11 COM0 SEG10 COM0 SEG9 COM0 SEG8 COM0 xxxx xxxx uuuu uuuu LCDDATA2(2) SEG23 COM0 SEG22 COM0 SEG21 COM0 SEG20 COM0 SEG19 COM0 SEG18 COM0 SEG17 COM0 SEG16 COM0 xxxx xxxx uuuu uuuu LCDDATA3 SEG7 COM1 SEG6 COM1 SEG5 COM1 SEG4 COM1 SEG3 COM1 SEG2 COM1 SEG1 COM1 SEG0 COM1 xxxx xxxx uuuu uuuu LCDDATA4 SEG15 COM1 SEG14 COM1 SEG13 COM1 SEG12 COM1 SEG11 COM1 SEG10 COM1 SEG9 COM1 SEG8 COM1 xxxx xxxx uuuu uuuu LCDDATA5(2) SEG23 COM1 SEG22 COM1 SEG21 COM1 SEG20 COM1 SEG19 COM1 SEG18 COM1 SEG17 COM1 SEG16 COM1 xxxx xxxx uuuu uuuu LCDDATA6 SEG7 COM2 SEG6 COM2 SEG5 COM2 SEG4 COM2 SEG3 COM2 SEG2 COM2 SEG1 COM2 SEG0 COM2 xxxx xxxx uuuu uuuu LCDDATA7 SEG15 COM2 SEG14 COM2 SEG13 COM2 SEG12 COM2 SEG11 COM2 SEG10 COM2 SEG9 COM2 SEG8 COM2 xxxx xxxx uuuu uuuu LCDDATA8(2) SEG23 COM2 SEG22 COM2 SEG21 COM2 SEG20 COM2 SEG19 COM2 SEG18 COM2 SEG17 COM2 SEG16 COM2 xxxx xxxx uuuu uuuu LCDDATA9 SEG7 COM3 SEG6 COM3 SEG5 COM3 SEG4 COM3 SEG3 COM3 SEG2 COM3 SEG1 COM3 SEG0 COM3 xxxx xxxx uuuu uuuu LCDDATA10 SEG15 COM3 SEG14 COM3 SEG13 COM3 SEG12 COM3 SEG11 COM3 SEG10 COM3 SEG9 COM3 SEG8 COM3 xxxx xxxx uuuu uuuu LCDDATA11(2) SEG23 COM3 SEG22 COM3 SEG21 COM3 SEG20 COM3 SEG19 COM3 SEG18 COM3 SEG17 COM3 SEG16 COM3 xxxx xxxx uuuu uuuu LCDDATA12(3) SEG31 COM0 SEG30 COM0 SEG29 COM0 SEG28 COM0 SEG27 COM0 SEG26 COM0 SEG25 COM0 SEG24 COM0 xxxx xxxx uuuu uuuu LCDDATA13(3) SEG39 COM0 SEG38 COM0 SEG37 COM0 SEG36 COM0 SEG35 COM0 SEG34 COM0 SE33 COM0 SEG32 COM0 xxxx xxxx uuuu uuuu LCDDATA14(3) — — — — — — SEG41 COM0 SEG40 COM0 ---- --xx ---- --uu LCDDATA15(3) SEG31 COM1 SEG30 COM1 SEG29 COM1 SEG28 COM1 SEG27 COM1 SEG26 COM1 SEG25 COM1 SEG24 COM1 xxxx xxxx uuuu uuuu LCDDATA16(3) SEG39 COM1 SEG38 COM1 SEG37 COM1 SEG36 COM1 SEG35 COM1 SEG34 COM1 SEG33 COM1 SEG32 COM1 xxxx xxxx uuuu uuuu LCDDATA17(3) — — — — — — SEG41 COM1 SEG40 COM1 ---- --xx ---- --uu LCDDATA18(3) SEG31 COM2 SEG30 COM2 SEG29 COM2 SEG28 COM2 SEG27 COM2 SEG26 COM2 SEG25 COM2 SEG24 COM2 xxxx xxxx uuuu uuuu LCDDATA19(3) SEG39 COM2 SEG38 COM2 SEG37 COM2 SEG36 COM2 SEG35 COM2 SEG34 COM2 SEG33 COM2 SEG32 COM2 xxxx xxxx uuuu uuuu LCDDATA20(3) — — — — — — SEG41 COM2 SEG40 COM2 ---- --xx ---- --uu LCDDATA21(3) SEG31 COM3 SEG30 COM3 SEG29 COM3 SEG28 COM3 SEG27 COM3 SEG26 COM3 SEG25 COM3 SEG24 COM3 xxxx xxxx uuuu uuuu LCDDATA22(3) SEG39 COM3 SEG38 COM3 SEG37 COM3 SEG36 COM3 SEG35 COM3 SEG34 COM3 SEG33 COM3 SEG32 COM3 xxxx xxxx uuuu uuuu LCDDATA23(3) — — — — — — SEG41 COM3 SEG40 COM3 ---- --xx ---- --uu WFT BIASMD LCDA WA LP3 LP2 LP1 LP0 0000 0000 0000 0000 LCDPS LCDSE0 SE7 SE6 SE5 SE4 SE3 SE2 SE1 SE0 0000 0000 uuuu uuuu LCDSE1 SE15 SE14 SE13 SE12 SE11 SE10 SE9 SE8 0000 0000 uuuu uuuu 图注: 注 1: 2: 3: x = 未知, u = 不变, - = 未实现单元 (读为 0)。 LCD 模块不使用阴影单元。 可以根据所选择的振荡器模式将这些引脚配置为端口引脚。 仅适用于 PIC16F914/917 和 PIC16F946 器件。 仅适用于 PIC16F946 器件 。 DS41250F_CN 第 168 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 表 10-6: 与 LCD 操作相关的寄存器 (续) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 上电复位与欠 压复位时的值 所有其他 复位时的值 LCDSE2(2) SE23 SE22 SE21 SE20 SE19 SE18 SE17 SE16 0000 0000 uuuu uuuu LCDSE3(3) SE31 SE30 SE29 SE28 SE27 SE26 SE25 SE24 0000 0000 0000 0000 LCDSE4(3) SE39 SE38 SE37 SE36 SE35 SE34 SE33 SE32 0000 0000 0000 0000 名称 (3) LCDSE5 — — — — — — SE41 SE40 ---- --00 ---- --00 PIE2 OSFIE C2IE C1IE LCDIE — LVDIE — CCP2IE 0000 -0-0 0000 -0-0 PIR2 OSFIF C2IF C1IF LCDIF — LVDIF — CCP2IF 0000 -0-0 0000 -0-0 T1GINV TMR1GE T1CKPS1 T1CKPS0 T1OSCEN T1SYNC TMR1CS TMR1ON 0000 0000 uuuu uuuu T1CON 图注: 注 1: 2: 3: x = 未知, u = 不变, - = 未实现单元 (读为 0)。LCD 模块不使用阴影单元。 可以根据所选择的振荡器模式将这些引脚配置为端口引脚。 仅适用于 PIC16F914/917 和 PIC16F946 器件。 仅适用于 PIC16F946 器件 。 2007 Microchip Technology Inc. DS41250F_CN 第 169 页 PIC16F913/914/916/917/946 注: DS41250F_CN 第 170 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 11.0 可编程低电压检测 (PLVD)模块 可编 程低 电压 检测 (Programmable Low-Voltage Detect,PLVD)模块是电源电压检测器,用于监视内部 电源电压。此模块通常用于密钥卡以及其他在电池电压 下降时需要采取某些措施的器件。 PLVD 模块有如下特性: • • • • 8 个可编程跳变点 在 VDD 下降沿触发中断 稳定参考电压指示 在休眠期间工作 图 11-1 所示为 PLVD 模块的框图。 图 11-1: PLVD 框图 8级 VDD 8选1 模拟 MUX LVDEN 0 1 2 + 6 7 - 检测 LVDIF LVDL<2:0> 参考 电压 发生器 图 11-2: PLVD 工作原理 VDD PLVD 跳变点 LVDIF 由硬件 置1 2007 Microchip Technology Inc. 由软件 清零 DS41250F_CN 第 171 页 PIC16F913/914/916/917/946 11.1 PLVD 工作原理 必须执行下列步骤以使 PLVD 工作: • 通过将 LVDCON 寄存器的 LVDEN 位置 1 使能该 模块。 • 通过将 LVDCON 寄存器的 LVDL<2:0> 位置 1 配 置跳变点。 • 等待直到参考电压稳定。请参见第 11.4 节 “稳定 参考电压指示”。 • 将 PIR2 寄存器的 LVDIF 位清零。 如果 VDD 电压低于 PLVD 跳变点,则将 LVDIF 位置 1。 LVDIF 位保持置 1 状态,直到用软件清零。 请参见图 11-2。 11.2 11.4 稳定参考电压指示 使能 PLVD 模块时,在 PLVD 提供有效结果之前必须保证 参考电压稳定。关于稳定时间,请参考第 19.0 节 “电气 规范”中的表 19-13。 HFINTOSC 运行时,LVDCON 寄存器的 IRVST 位表示 参考电压的稳定性。IRVST 位置 1 时,参考电压稳定。 11.5 在休眠期间工作 要从休眠模式唤醒,应将 PIE2 寄存器的 LVDIE 位和 INTCON 寄存器的 PEIE 位置 1。如果 LVDIE 和 PEIE 位都置 1,器件将从休眠模式唤醒,并执行下一条指令。 如果 GIE 位也置 1,在从休眠模式唤醒后第一条指令执 行完成时,程序将调用中断服务程序。 可编程跳变点 可以选择 8 个电压值中的一个做为 PLVD 跳变点。 LVDCON 寄存器的 LVDL 位用于选择该跳变点。关于可 用 PLVD 跳变点的信息,请参见寄存器 11-1。 11.3 在 VDD 下降沿触发中断 如果 VDD 低于 PLVD 跳变点,下降沿检测器会将 LVDIF 位置 1。 请参见图 11-2。 如果下列位也被置 1,则将产 生中断: • INTCON 寄存器的 GIE 和 PEIE 位 • PIE2 寄存器的 LVDIE 位 必须用软件将 LVDIF 位清零。 如果用软件将 LVDIF 位 置 1,即可通过模拟 PLVD 事件产生中断。 DS41250F_CN 第 172 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 寄存器 11-1: LVDCON:低电压检测控制寄存器 U-0 U-0 — R-0 (1) — IRVST R/W-0 U-0 R/W-1 R/W-0 R/W-0 LVDEN — LVDL2 LVDL1 LVDL0 bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位,读为 0 - n = 上电复位时的值 1=置1 0 = 清零 bit 7-6 未实现:读为 0 bit 5 IRVST:内部参考电压稳定状态标志位 (1) 1 = 表示 PLVD 稳定且 PLVD 中断可靠 0 = 表示 PLVD 不稳定,不应允许 PLVD 中断 bit 4 LVDEN:低电压检测模块使能位 1 = 使能 PLVD 模块,让 PLVD 电路及支持参考电路上电 0 = 禁止 PLVD 模块,让 PLVD 电路及支持参考电路掉电 bit 3 未实现:读为 0 bit 2-0 LVDL<2:0>:低电压检测级别位 (标称值) (3) 111 = 4.5V 110 = 4.2V 101 = 4.0V 100 = 2.3V (默认值) 011 = 2.2V 010 = 2.1V 001 = 2.0V(2) 000 = 保留 x = 未知 1: IRVST 位仅在 HFINTOSC 运行时可用。 2: 未经测试并低于最小工作条件。 3: 请参见第 19.0 节 “电气规范”。 注 表 11-1: 名称 INTCON 与可编程低电压检测寄存器相关的寄存器 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 上电复位与欠 所有其他 压复位时的值 复位时的值 GIE PEIE T0IE INTE RBIE T0IF INTF RBIF 0000 000x 0000 000x LVDL0 --00 -100 --00 -100 — — IRVST LVDEN — LVDL2 LVDL1 PIE2 OSFIE C2IE C1IE LCDIE — LVDIE — CCP2IE 0000 -0-0 0000 -0-0 PIR2 OSFIF C2IF C1IF LCDIF — LVDIF — CCP2IF 0000 -0-0 0000 -0-0 LVDCON 图注: x = 未知, - = 未实现 (读为 0)。 PLVD 模块不使用阴影单元。 2007 Microchip Technology Inc. DS41250F_CN 第 173 页 PIC16F913/914/916/917/946 注: DS41250F_CN 第 174 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 12.0 用软件选择 ADC 参考电压来自内部还是外部。 模数转换器 (ADC)模块 模数转换器(Analog-to-Digital converter,ADC)可以 将模拟输入信号转换为表示该信号的一个 10 位二进制 表示。器件采用模拟输入通道,它们共用一个采样保持 电路。 采样保持电路的输出与模数转换器的输入相连。 转换器采用逐次逼近法产生一个 10 位二进制结果,并 将该转换结果存入 ADC 结果寄存器 (ADRESL 和 ADRESH)。 图 12-1: ADC 在转换完成之后可产生中断。此中断可以将器件从 休眠状态唤醒。 图 12-1 为 ADC 的框图。 ADC 框图 VDD VCFG0 = 0 VREF+ RA0/AN0 RA1/AN1 RA2/AN2 RA3/AN3 RA5/AN4 000 RE0/AN5(1) RE1/AN6(1) RE2/AN7(1) 101 001 ADC 010 011 10 GO/DONE 100 110 111 ADFM 0 = 左对齐 1 = 右对齐 ADON 10 VSS ADRESH ADRESL VCFG1 = 0 CHS VREF- 注 VCFG0 = 1 VCFG1 = 1 1: 仅 PIC16F914/917 和 PIC16F946 器件上才有这些通道。 2007 Microchip Technology Inc. DS41250F_CN 第 175 页 PIC16F913/914/916/917/946 12.1 ADC 配置 配置和使用 ADC 时,必须考虑以下功能: • • • • • • 端口配置 通道选择 ADC 参考电压选择 ADC 转换时钟源 中断控制 结果格式化 12.1.1 端口配置 ADC 既可以转换模拟信号,又可以转换数字信号。当转 换模拟信号时,通过将相应的 TRIS 和 ANSEL 位置 1, 可将 I/O 引脚配置为模拟输入引脚。更多详细信息,请参 见相应的端口章节。 注: 12.1.2 对定义为数字输入的引脚施加模拟电压可 能导致输入缓冲器出现过电流。 通道选择 由 ADCON0 寄存器的 CHS 位决定将哪一路通道与采样 保持电路相连。 如果更改了通道,在下一个转换开始前需要一定的延 迟。更多详细信息请参见第 12.2 节“ADC 工作原理”。 DS41250F_CN 第 176 页 12.1.3 ADC 参考电压 由ADCON0寄存器的VCFG位单独控制正负参考电压。 正参考电压可以是 VDD 或外部电压源。同样,负参考电 压可以是 VSS 或外部电压源。 12.1.4 转换时钟 可通过 ADCON1 寄存器的 ADCS 位来用软件选择转换 的时钟源。有以下 7 种时钟频率可供选择: • • • • • • FOSC/2 FOSC/4 FOSC/8 FOSC/16 FOSC/32 FOSC/64 • FRC (专用内部振荡器) 完成一位转换的时间定义为 TAD。一次完整的10 位转换 需要 11 个 TAD 周期,如图 12-2 所示 。 必须符合相应的 TAD 规范,才能获得正确的转换结果。 更多详细信息,请参见第 19.0 节 “电气规范”中的 A/D 转换要求。表 12-1 给出了正确选择 ADC 时钟的示例。 注: 除非使用 FRC,否则系统时钟频率的任何改 变都会改变 ADC 时钟频率,从而对 ADC 转换结果产生不利影响。 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 表 12-1: ADC 时钟周期 (TAD)与器件工作频率的关系 (VDD > 3.0V) ADC 时钟周期 (TAD) ADC 时钟源 器件频率 (FOSC) ADCS<2:0> 20 MHz 8 MHz (2) 250 ns FOSC/2 000 100 ns FOSC/4 100 200 ns(2) 500 ns(2) FOSC/8 001 400 ns (2) (2) FOSC/16 101 800 ns(2) 1.6 µs 4.0 µs FOSC/64 110 3.2 µs 8.0 µs(3) 图注: 注 1: 2: 3: 4: (1,4) 4.0 µs 2.0 µs 8.0 µs(3) 4.0 µs 16.0 µs(3) (3) (1,4) 2-6 µs x11 2.0 µs 1.0 µs(2) 500 ns 2.0 µs 010 1 MHz (2) 1.0 µs FOSC/32 FRC 4 MHz (2) 2-6 µs 8.0 µs 32.0 µs(3) 16.0 µs(3) 64.0 µs(3) (1,4) 2-6 µs(1,4) 2-6 µs 建议不要使用阴影单元内的值。 对于 VDD > 3.0V 的情况, FRC 时钟源的典型 TAD 时间为 4 µs。 这些值均违反了最小 TAD 时间要求。 为了加快转换速度,建议选用别的时钟源。 当器件的工作频率高于 1 MHz 时,仅当在休眠期间进行转换时才推荐使用 FRC 时钟源。 图 12-2: 模数转换 TAD 周期 TCY 到 TAD TAD1 TAD2 TAD3 TAD4 TAD5 TAD6 TAD7 TAD8 TAD9 TAD10 TAD11 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0 转换开始 保持电容与模拟输入断开(通常为 100 ns) 将 GO/DONE 位置 1 12.1.5 装载 ADRESH 和 ADRESL 寄存器, 清零 GO 位, 将 ADIF 位置 1, 保持电容和模拟输入通道相连 中断 ADC 模块允许在完成模数转换后产生中断。 ADC 中断 标志位是 PIR1 寄存器中的 ADIF 位。 ADC 中断允许位 是 PIE1 寄存器中的 ADIE 位。ADIF 位必须用软件清零。 注: 每次转换结束后都会将 ADIF 位置 1,而与 是否允许 ADC 中断无关。 不管器件处于工作模式还是休眠模式都可以产生中断。 如果器件处于休眠模式,中断可将器件唤醒。当将器件 从休眠状态唤醒后,总是执行 SLEEP 指令后的下一条指 令。如果用户尝试使器件从休眠状态唤醒并继续执行主 程序代码,必须禁止全局中断。如果允许全局中断,将 跳转到中断服务程序。 更多详细信息,请参见第 12.1.5 节 “中断”。 2007 Microchip Technology Inc. DS41250F_CN 第 177 页 PIC16F913/914/916/917/946 12.1.6 结果格式化 10 位 A/D 转换结果可采用两种格式:左对齐或右对齐。 由 ADCON0 寄存器中的 ADFM 位控制输出格式。 图 12-3 给出了这两种输出格式。 图 12-3: 10 位 A/D 转换结果的格式 ADRESH (ADFM = 0) ADRESL MSB LSB bit 7 bit 0 bit 7 10 位 A/D 转换结果 未实现: 读为 0 MSB (ADFM = 1) bit 7 LSB bit 0 12.2.1 ADC 工作原理 启动转换 要使能 ADC 模块,必须将 ADCON0 寄存器中的 ADON 位置 1。将 ADCON0 寄存器的 GO/DONE 位置 1 启动 模数转换。 注: 12.2.2 不能用开启 ADC 的同一指令将 GO/DONE 位 置1。请参见第 12.2.6 节“A/D 转换过程”。 完成转换 bit 7 bit 0 10 位 A/D 转换结果 未实现: 读为 0 12.2 bit 0 12.2.4 ADC 在休眠模式下的工作原理 ADC 模块可以在休眠模式下运行。这就要求 ADC 时钟 源被设置为 FRC 项。若选择了 FRC 时钟源,ADC 在开 始 转 换 之前 要 多 等 待 一 个 指 令 周期,从 而 允 许 执 行 SLEEP指令,以减少转换时的系统噪声。如果允许ADC 中断,当转换结束时,将使器件从休眠模式唤醒。如果 禁止 ADC 中断,即使 ADON 位保持置 1,转换结束后 也还是会关闭 ADC 模块。 如果 ADC 时钟源不是 FRC,即使 ADON 位保持置 1, SLEEP 指令还是会中止当前的转换,并关闭 ADC 模块。 当转换完成时, ADC 模块将: 12.2.5 • 清零 GO/DONE 位 • 将 ADIF 标志位置 1 • 用新的转换结果更新 ADRESH:ADRESL 寄存器 CCP 特殊事件触发器允许在没有软件介入的情况下,周 期性 地进 行 ADC 测量。引 发触 发时,由 硬件 将 GO/DONE 位置 1,并将 Timer1 计数器复位为 0。 12.2.3 使用特殊事件触发器不能确保正确的 ADC 时序。 由用 户来确保满足 ADC 的时序要求。 终止转换 如果必须要在转换完成前终止转换,则可用软件清零 GO/DONE 位。 不会用部分完成的模数转换结果更新 ADRESH:ADRESL 寄存器。因此, ADRESH:ADRESL 寄存器对将保持上次转换所得到的值。 此外,必须经过 2 个 TAD 的延时才能开始下一次采集。 延时过后,将自 动开始对选定通道的输入信号进行采集。 注: 特殊事件触发器 更多详细信息,请参见第 15.0 节 “捕捉 / 比较 /PWM (CCP)模块”。 器件复位强制所有寄存器进入各自的复位 状态。因此,复位会关闭 ADC 模块并且终 止任何待处理的转换。 DS41250F_CN 第 178 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 12.2.6 A/D 转换过程 下列步骤给出了使用 ADC 进行模数转换的示例: 1. 2. 3. 4. 5. 6. 7. 8. 配置端口: • 禁止引脚输出驱动器 (见 TRIS 寄存器) • 将引脚配置为模拟输入引脚 配置 ADC 模块: • 选择 ADC 转换时钟 • 配置参考电压 • 选择 ADC 输入通道 • 选择结果格式 • 启动 ADC 模块 配置 ADC 中断 (可选): • 清零 ADC 中断标志位 • 允许 ADC 中断 • 允许外设中断 • 允许全局中断 (1) 等待所需的采集时间 (2)。 通过将 GO/DONE 位置 1 启动转换。 等待 ADC 转换完成,通过以下两种方法之一判 断转换是否完成: • 查询 GO/DONE 位 • 等待 ADC 中断 (允许中断) 读 ADC 结果 将 ADC 中断标志位清零 (如果允许中断的话, 必须进行此操作)。 注 例 12-1: A/D 转换 ;This code block configures the ADC ;for polling, Vdd reference, Frc clock ;and AN0 input. ; ;Conversion start & polling for completion ; are included. ; BANKSEL ADCON1 ; MOVLW B’01110000’ ;ADC Frc clock MOVWF ADCON1 ; BANKSEL TRISA ; BSF TRISA,0 ;Set RA0 to input BANKSEL ANSEL ; BSF ANSEL,0 ;Set RA0 to analog BANKSEL ADCON0 ; MOVLW B’10000001’ ;Right justify, MOVWF ADCON0 ;Vdd Vref, AN0, On CALL SampleTime ;Acquisiton delay BSF ADCON0,GO ;Start conversion BTFSC ADCON0,GO ;Is conversion done? GOTO $-1 ;No, test again BANKSEL ADRESH ; MOVF ADRESH,W ;Read upper 2 bits MOVWF RESULTHI ;store in GPR space BANKSEL ADRESL ; MOVF ADRESL,W ;Read lower 8 bits MOVWF RESULTLO ;Store in GPR space 12.2.7 ADC 寄存器定义 以下寄存器用于控制 ADC 的操作。 1: 如果用户尝试在使器件从休眠模式唤醒后 继续执行主程序代码,则必须禁止全局中 断。 2: 请参见第 12.3 节 “A/D 采集要求”。 2007 Microchip Technology Inc. DS41250F_CN 第 179 页 PIC16F913/914/916/917/946 寄存器 12-1: ADCON0:A/D 控制寄存器 0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 ADFM VCFG1 VCFG0 CHS2 CHS1 CHS0 GO/DONE ADON bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位,读为 0 - n = 上电复位时的值 1=置1 0 = 清零 bit 7 ADFM:A/D 转换结果格式选择位 1 = 右对齐 0 = 左对齐 bit 6 VCFG1:参考电压选择位 1 = VREF- 引脚 0 = VSS bit 5 VCFG0:参考电压选择位 1 = VREF+ 引脚 0 = VSS bit 4-2 CHS<2:0>:模拟通道选择位 000 = AN0 001 = AN1 010 = AN2 011 = AN3 100 = AN4 101 = AN5(1) 110 = AN6(1) 111 = AN7(1) bit 1 GO/DONE:A/D 转换状态位 1 = A/D 转换正在进行。将该位置 1 可启动 A/D 转换。 当 A/D 转换完成以后,该位由硬件自动清零 0 = A/D 转换完成 / 不在进行 bit 0 ADON:ADC 使能位 1 = 使能 ADC 0 = 禁止 ADC,且不消耗工作电流 注 x = 未知 1: 在 28 引脚器件上不可用。 DS41250F_CN 第 180 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 寄存器 12-2: ADCON1:A/D 控制寄存器 1 U-0 R/W-0 R/W-0 R/W-0 U-0 U-0 U-0 U-0 — ADCS2 ADCS1 ADCS0 — — — — bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位,读为 0 - n = 上电复位时的值 1=置1 0 = 清零 x = 未知 bit 7 未实现:读为 0 bit 6-4 ADCS<2:0>:A/D 转换时钟选择位 000 = FOSC/2 001 = FOSC/8 010 = FOSC/32 x11 = FRC (时钟信号由专用的内部振荡器产生,最高频率可达 500 kHz) 100 = FOSC/4 101 = FOSC/16 110 = FOSC/64 bit 3-0 未实现:读为 0 2007 Microchip Technology Inc. DS41250F_CN 第 181 页 PIC16F913/914/916/917/946 寄存器 12-3: ADRESH:ADC 结果寄存器的高字节 (ADRESH) ADFM = 0 R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x ADRES9 ADRES8 ADRES7 ADRES6 ADRES5 ADRES4 ADRES3 ADRES2 bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位,读为 0 - n = 上电复位时的值 1=置1 0 = 清零 bit 7-0 x = 未知 ADRES<9:2>:ADC 结果寄存器位 10 位转换结果的高 8 位 寄存器 12-4: ADRESL:ADC 结果寄存器的低字节 (ADRESL) ADFM = 0 R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x ADRES1 ADRES0 — — — — — — bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位,读为 0 - n = 上电复位时的值 1=置1 0 = 清零 bit 7-6 ADRES<1:0>:ADC 结果寄存器位 10 位转换结果的低 2 位 bit 5-0 保留:未用。 寄存器 12-5: x = 未知 ADRESH:ADC 结果寄存器的高字节 (ADRESH) ADFM = 1 R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x — — — — — — ADRES9 ADRES8 bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位,读为 0 - n = 上电复位时的值 1=置1 0 = 清零 bit 7-2 保留:未用。 bit 1-0 ADRES<9:8>:ADC 结果寄存器位 10 位转换结果的高 2 位 寄存器 12-6: x = 未知 ADRESL:ADC 结果寄存器的低字节 (ADRESL) ADFM = 1 R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x ADRES7 ADRES6 ADRES5 ADRES4 ADRES3 ADRES2 ADRES1 ADRES0 bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位,读为 0 - n = 上电复位时的值 1=置1 0 = 清零 bit 7-0 x = 未知 ADRES<7:0>:ADC 结果寄存器位 10 位转换结果的低 8 位 DS41250F_CN 第 182 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 12.3 A/D 采集要求 为了使 ADC 转换达到规定精度,必须使充电保持电容 (CHOLD)充满至输入通道的电平。图 12-4 给出了模拟输 入电路模型。 信号源阻抗 (RS)和内部采样开关阻抗 (RSS)直接影响给电容 CHOLD 充电所需要的时间。采样 开关阻抗 (RSS)随器件电压 (VDD)不同而有所不同, 请参见图 12-4。模拟信号源的最大阻抗推荐值为 10 kΩ。 采集时间随着阻抗的降低而缩短。选择(或改变)模拟输 公式 12-1: 入通道后,在启动转换前必须对 A/D 进行采集。可以使 用公式12-1来计算最小采集时间。该公式假设误差为1/2 LSb (ADC 转换需要 1024 步)。 1/2 LSb 误差是 ADC 达到规定分辨率所允许的最大误差。 采集时间示例 50鸆 ,且外部阻抗为10kΩ( 5.0V V DD) 假设 :温度 = 50°C + 保持电容充电时间 T ACQ = 放大器稳定时间 Amplifier Settling Time + Hold+ 温度系数 Capacitor Charging Time + Temper = T AMP + T C + T COFF = 2祍 [ ( Temperature 25鸆 ) ( 0.05祍/鸆 )] 2µs + T C +[(温度- 25°C)(-0.05 µs/°C )] 可以使用如下公式估算 TC 的值: 1 = V CHOLD V AP PLIE D 1 – ------------------------- n+1 (2 )–1 ;[1] 在 1/2 lsb 误差范围内对 VCHOLD 进行充电 –T C ---------- RC V AP P LIED 1 – e = V CHOLD ;[2] 依照 VAPPLIED 对 VCHOLD 进行充电 – Tc --------- RC 1 V A PP LIE D 1 – e = V AP PLI ED 1 – ------------------------- ; 结合 [1] 和 [2] n+1 (2 )–1 注 :此处 n 为 ADC 的位数。 计算 TC: – C HOLD ( R IC + R SS + R S ) ln(1/2047) = – 10pF ( 1kΩ + 7kΩ + 10kΩ ) ln(0.0004885) TC = = 1.37µs 因此 : T ACQ = 2μS + 1.37μS + [ ( 50℃- 25℃ ) ( 0.05μs/℃ ) ] = 4.67µs 注 1: 由于可以将参考电压 (VREF)消掉,因此它对公式的结果不会产生影响。 2: 在每次转换后,充电保持电容 (CHOLD)并不放电。 3: 模拟信号源的最大阻抗推荐值为 10 kΩ。它必须符合引脚漏电流规范中的规定。 2007 Microchip Technology Inc. DS41250F_CN 第 183 页 PIC16F913/914/916/917/946 图 12-4: 模拟输入模型 VDD Rs VA VT = 0.6V ANx CPIN 5 pF VT = 0.6V 采样 开关 SS Rss RIC ≤ 1k I LEAKAGE(1) CHOLD = 10 pF VSS/VREF- 图注: 注 6V 5V VDD 4V 3V 2V CPIN = 输入电容 VT = 门限电压 I LEAKAGE = 各个连接点在引脚 产生的泄漏电流 RIC = 内部走线等效电阻 SS = 采样开关 CHOLD = 采样 / 保持电容 RSS 5 6 7 8 9 10 11 采样开关 (kΩ) 1: 请参见第 19.0 节 “电气规范”。 图 12-5: ADC 传递函数 满量程范围 3FFh 3FEh 3FDh 3FCh 理想的 1 LSB ADC 输出码 3FBh 满量程转换 004h 003h 002h 001h 000h 模拟输入电压 理想的 1 LSB VSS/VREF- DS41250F_CN 第 184 页 0 刻度 转换 VDD/VREF+ 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 表 12-2: 与 ADC 相关的寄存器汇总 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 上电复位与欠压 复位时的值 所有其他 复位时的值 VCFG0 CHS2 CHS1 CHS0 GO/DONE ADON 0000 0000 0000 0000 ADCS1 ADCS0 — — — — -000 ---- -000 ---- ANS5 ANS4 ANS3 ANS2 ANS1 ANS0 1111 1111 1111 1111 uuuu uuuu Bit 7 Bit 6 Bit 5 ADCON0 ADFM VCFG1 ADCON1 — ADCS2 ANS7 ANS6 名称 ANSEL ADRESH A/D 结果寄存器的高字节 xxxx xxxx ADRESL A/D 结果寄存器的低字节 xxxx xxxx uuuu uuuu INTCON GIE PEIE T0IE INTE RBIE T0IF INTF RBIF 0000 000x 0000 000x LCDCON LCDEN SLPEN WERR VLCDEN CS1 CS0 LMUX1 LMUX0 0001 0011 0001 0011 0000 0000 LCDSE0 SE7 SE6 SE5 SE4 SE3 SE2 SE1 SE0 0000 0000 LCDSE1 SE15 SE14 SE13 SE12 SE11 SE10 SE9 SE8 0000 0000 0000 0000 LCDSE2(1) SE23 SE22 SE21 SE20 SE19 SE18 SE17 SE16 0000 0000 0000 0000 PIE1 EEIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000 PIR1 EEIF ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 0000 0000 0000 0000 PORTA RA7 RA6 RA5 RA4 RA3 RA2 RA1 RA0 xxxx xxxx uuuu uuuu PORTB RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 xxxx xxxx uuuu uuuu PORTE RE7 RE6 RE5 RE4 RE3 RE2 RE1 RE0 xxxx xxxx uuuu uuuu TRISA TRISA7 TRISA6 TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA0 1111 1111 1111 1111 TRISB TRISB7 TRISB6 TRISB5 TRISB4 TRISB3 TRISB2 TRISB1 TRISB0 1111 ---- 1111 ---- TRISE7 TRISE6 TRISE5 TRISE4 TRISE3 TRISE2 TRISE1 TRISE0 1111 1111 1111 1111 TRISE 图注: x = 未知, u = 不变, — = 未实现 (读为 0)。 ADC 模块不使用阴影单元。 2007 Microchip Technology Inc. DS41250F_CN 第 185 页 PIC16F913/914/916/917/946 注: DS41250F_CN 第 186 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 13.0 数据 EEPROM 和闪存程序存储器 控制 数据 EEPROM 是可读写的存储器,而闪存程序存储器 在正常工作 (整个 VDD 范围)期间是可读的。 这两种 存储器没有直接映射到文件寄存器空间,而是通过特殊 功能寄存器间接寻址。 有 6 个 SFR 用于访问这两种存 储器 : • • • • • • EECON1 EECON2 EEDATL EEDATH EEADRL EEADRH 当与数据存储器模块接口时,EEDATL 寄存器存放要读 写的 8 位数据,而 EEADRL 寄存器存放被访问的 EE 数 据单元的地址。该系列中的器件具有 256 字节的数据 EEPROM,地址范围为 00h 到 FFh。 当与程序存储器模块接口时, EEDATL 和 EEDATH 寄 存器形成双字节字,存放要读的 14 位数据,而 EEADRL 和 EEADRH 寄 存器 形成 双字 节字,存 放被 访问 的 EEPROM 存储单元的 13 位地址。 本类器件具有 4K 和 8K 字 的程 序闪 存,地址 范围 分别 为 0h-0FFFh 和 0h-1FFFh。程序存储器允许以字为单位读取。 EEPROM 数据存储器允许以字节为单位读写。 字节写 操作会自动擦除目标存储单元并写入新数据(在写入前 擦除)。 写入时间由片上定时器控制。写入和擦除电压是由片上 充电泵产生的,此充电泵使得在器件电压范围内进行字 节或字操作成为可能。 13.1 EEADRL 和 EEADRH 寄存器 EEADRL 和 EEADRH 寄存器能寻址最大 256 字节的数 据 EEPROM 或最大 8K 字的程序闪存。 当选择程序地址值时,地址的高字节被写入 EEADRH 寄存器而低字节被写入 EEADRL 寄存器。 当选择数据 地址值时,只将地址的低字节写入 EEADRL 寄存器。 13.1.1 EECON1 和 EECON2 寄存器 EECON1 是访问 EE 存储器的控制寄存器。 控制位 EEPGD 决定访问的是程序存储器还是数据存储 器。 当被清零时,和在复位时一样,任何后续操作都将 针对数据存储器进行。 当置 1 时,任何后续操作都将针 对程序存储器进行。程序存储器是只读的。 控制位 RD 和 WR 分别启动读和写。用软件只能将这些 位置 1 而无法清零。在读或写操作完成后,由硬件将它 们清零。由于无法用软件将 WR 位清零,可避免因意外 而过早地终止写操作。 当 WREN 置 1 时,允许对数据 EEPROM 执行写操作。 上电时,WREN 位被清零。当正常的写入操作被 MCLR 复位或 WDT 超时复位中断时, WRERR 位会置 1。 在 这些情况下,复位后用户可以检查 WRERR 位。复位时 数据寄存器和地址寄存器将被清零。然后用户代码可以 运行适当的恢复程序。 当写操作完成时,PIR1 寄存器的中断标志位 EEIF 被置 1。此标志位必须用软件清零。 EECON2 不是物理寄存器。 读 EECON2 得到的全部是 0。EECON2寄存器仅在数据EEPROM写过程中使用。 当器件被代码保护时,CPU 仍可继续读写数据 EEPROM 存储器和读程序存储器。 当代码保护时,器件编程器将 不再能访问数据或程序存储器。 2007 Microchip Technology Inc. DS41250F_CN 第 187 页 PIC16F913/914/916/917/946 寄存器 13-1: EEDATL:EEPROM/ 程序存储器数据低字节寄存器 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 EEDATL7 EEDATL6 EEDATL5 EEDATL4 EEDATL3 EEDATL2 EEDATL1 EEDATL0 bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位,读为 0 - n = 上电复位时的值 1= 置1 0 = 清零 bit 7-0 x = 未知 EEDATL<7:0>:要从数据 EEPROM 中读取或向数据 EEPROM 写入的字节值,或者要从程序存储器中读取的字 节值 寄存器 13-2: EEADRL:EEPROM/ 程序存储器地址低字节寄存器 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 EEADRL7 EEADRL6 EEADRL5 EEADRL4 EEADRL3 EEADRL2 EEADRL1 EEADRL0 bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位,读为 0 - n = 上电复位时的值 1= 置1 0 = 清零 bit 7-0 x = 未知 EEADRL<7:0>:指定 EEPROM 读 / 写操作的 256 个存储单元中的一个或程序存储器读操作的低字节地址 寄存器 13-3: EEDATH:程序存储器数据高字节寄存器 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 — — EEDATH5 EEDATH4 EEDATH3 EEDATH2 EEDATH1 EEDATH0 bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位,读为 0 - n = 上电复位时的值 1= 置1 0 = 清零 bit 7-6 未实现:读为 0 bit 5-0 EEDATH<5:0>:从程序存储器中读取的字节值 寄存器 13-4: x = 未知 EEADRH:程序存储器地址高字节寄存器 U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 — — — EEADRH4 EEADRH3 EEADRH2 EEADRH1 EEADRH0 bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位,读为 0 - n = 上电复位时的值 1= 置1 0 = 清零 bit 7-5 未实现: 读为 0 bit 4-0 EEADRH<4:0>:指定程序存储器读取的高字节地址 DS41250F_CN 第 188 页 x = 未知 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 寄存器 13-5: EECON1:EEPROM 控制寄存器 R/W-x U-0 U-0 U-0 R/W-x R/W-0 R/S-0 R/S-0 EEPGD — — — WRERR WREN WR RD bit 7 bit 0 图注: S = 只能被置 1 的位 R = 可读位 W = 可写位 U = 未实现位,读为 0 - n = 上电复位时的值 1= 置1 0 = 清零 x = 未知 bit 7 EEPGD:程序 / 数据 EEPROM 选择位 1 = 访问程序存储器 0 = 访问数据存储器 bit 6-4 未实现:读为 0 bit 3 WRERR:EEPROM 错误标志位 1 = 写操作过早终止 (正常工作期间的任何 MCLR 复位、 WDT 复位,或欠压复位) 0 = 写操作完成 bit 2 WREN:EEPROM 写使能位 1 = 允许写 0 = 禁止写入数据 EEPROM bit 1 WR:写控制位 EEPGD = 1: 此位被忽略。 EEPGD = 0: 1 = 启动写周期 (写操作一旦完成,由硬件清零该位。用软件只能将 WR 位置 1,但不能清零。) 0 = 数据 EEPROM 写周期完成 bit 0 RD:读控制位 1 = 启动存储器读操作 ( 由硬件清零 RD,用软件只能将 RD 位置 1,而不能清零。) 0 = 不启动存储器读操作 2007 Microchip Technology Inc. DS41250F_CN 第 189 页 PIC16F913/914/916/917/946 13.1.2 读数据 EEPROM 存储器 要读取数据存储器单元,用户必须将地址写入 EEADRL 寄存器,清零 EEPGD 控制位,然后将 EECON1 寄存 器中 的控 制位 RD 置 1。 在 紧接 着的 下一 个周 期, EEDATL 寄存器中就有数据了,因此该数据可由下一条 指令读取。EEDATL 将把此值保存至下一次用户向该单 元读取或写入数据时 (在写操作过程中)为止。 例 13-1: 读取数据 EEPROM BANKSEL MOVF MOVWF BANKSEL BCF EEADRL DATA_EE_ADDR,W EEADRL EECON1 EECON1,EEPGD BSF EECON1,RD BANKSEL EEDATL MOVF EEDATL,W 13.1.3 ; ;Data Memory ;Address to read ; ;Point to Data ;memory ;EE Read ; ;W = EEPROM Data 写数据 EEPROM 存储器 要写 EEPROM 数据存储单元,用户应首先将该单元的 地址写入 EEADRL 寄存器并将数据写入 EEDATL 寄存 器。然后用户必须按特定顺序开始写入每个字节。 如果没有完全按照下面的指令顺序(即首先将 55h 写入 EECON2,随后将 AAh 写入 EECON2,最后将 WR 位 置 1)写每个字节,将不会启动写操作。 在该代码段中 应禁止中断。 下面是写 EEPROM 数据存储器的步骤: 1. 如果没有实现第 10 步,检查 WR 位以判断写操 作是否正在进行。 2. 将地址写入EEADRL。确保地址不大于器件存储 器大小。 3. 写 8 位数据值,将其编程到 EEDATL 寄存器。 4. 清零 EEPGD 位,以指向 EEPROM 数据存储器。 5. 将 WREN 置 1,使能编程操作。 6. 如果已经允许了中断,请将其禁止。 7. 执行 5 个特殊指令序列: • 分两步将 55h 写入 EECON2 (首先写入 W, 然后写入 EECON2) • 分两步将 AAh 写入 EECON2 (首先写入 W, 然后写入 EECON2) • 将 WR 位置 1 8. 允许中断 (如果使用中断)。 9. 清零 WREN 位,禁止编程操作。 10. 当写周期完成时,WR 位被清零,EEIF 中断标志 位被置 1。(EEIF 必须用固件清零。)如果未实 现步骤 1,固件应检查 EEIF 是否置 1 或 WR 是 否清零,以判断编程周期是否结束。 例 13-2: BANKSEL BTFSC GOTO BANKSEL MOVF MOVWF MOVF MOVWF BANKSEL BCF 此外,必须将 EECON1 中的 WREN 位置 1 以使能写操 作。这种机制可防止由于代码执行错误 (异常)(即程 序跑飞)导致误写 EEPROM。除了更新 EEPROM 时以 外,用户应该始终保持 WREN 位清零。 WREN 位不能 由硬件清零。 一个写序列启动后,清零 WREN 位将不会影响此写周 期。除非 WREN 位置 1,否则 WR 位将无法置 1。 必需的 序列 写周期完成时, WR 位由硬件清零并且 EE 写完成中断 标志位 (EEIF)置 1。用户可以允许中断或查询此位。 EEIF 必须用软件清零。 DS41250F_CN 第 190 页 写入数据 EEPROM BSF EECON1 ; EECON1,WR ;Wait for write $-1 ;to complete EEADRL ; DATA_EE_ADDR,W ;Data Memory EEADRL ;Address to write DATA_EE_DATA,W ;Data Memory Value EEDATL ;to write EECON1 ; EECON1,EEPGD ;Point to DATA ;memory EECON1,WREN ;Enable writes BCF MOVLW MOVWF MOVLW MOVWF BSF INTCON,GIE 55h EECON2 AAh EECON2 EECON1,WR BSF BCF INTCON,GIE EECON1,WREN ;Disable INTs. ; ;Write 55h ; ;Write AAh ;Set WR bit to ;begin write ;Enable INTs. ;Disable writes 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 13.1.4 读闪存程序存储器 要读取程序存储器单元,用户必须将地址的两个字节分 别写入 EEADRL 和 EEADRH 寄存器,将 EEPGD 控制位 置 1,然后将 EECON1 寄存器中的控制位 RD 置 1。一旦 设置好读控制位,闪存程序存储器控制器将使用第二个 指令周期来读数据。这会导致紧随 “BSF EECON1,RD” 指 令 的 第 二 条 指 令 被 忽 略。在 紧 接 着 的 下 一 个 周 期 EEDATL 和 EEDATH 寄存器中就有数据了,因此在随后 的指令中将该数据读作两个字节。 EEDATL 和 EEDATH 寄存器将把此值保存至下一次用户向该单元读取或写入 数据时 (在写操作过程中)为止。 注 1: 程序存储器读操作后的两条指令必须为 NOP,从而阻止用户在RD位置1后的下一 条指令执行双周期指令。 2: 当 EEPGD = 1 时如果 WR 位置 1,它会 立即复位为 0,而不执行任何操作。 例 13-3: 读闪存存储器 必需的 序列 BANKSEL MOVLW MOVWF MOVLW MOVWF BANKSEL BSF BSF EEADRL ; MS_PROG_EE_ADDR; EEADRH ;MS Byte of Program Address to read LS_PROG_EE_ADDR; EEADRL ;LS Byte of Program Address to read EECON1 ; EECON1, EEPGD ;Point to PROGRAM memory EECON1, RD ;EE Read ; NOP NOP ;Any instructions here are ignored as program ;memory is read in second cycle after BSF ; BANKSEL MOVF MOVWF MOVF MOVWF EEDATL EEDATL, W DATAL EEDATH, W DATAH 2007 Microchip Technology Inc. ; ;W = LS Byte of EEPROM Data program ; ;W = MS Byte of EEPROM Data program ; DS41250F_CN 第 191 页 PIC16F913/914/916/917/946 图 13-1: 闪存程序存储器读周期执行时序 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 PC 闪存地址 PC + 1 闪存数据 INSTR (PC) 在此执行 INSTR (PC -1) EEADRH,EEADRL INSTR (PC + 1) 在此执行 BSF EECON1,RD PPC+3 C+3 EEDATH,EEDATL 在此执行 INSTR (PC + 1) PC +5 PC +4 INSTR (PC +3) 在此强制 执行 NOP INSTR (PC +4) 在此执行 INSTR (PC +3) 在此执行 INSTR (PC +4) RD 位 EEDATH EEDATL 寄存器 EERHLT 表 13-1: 名称 与数据 EEPROM 相关的寄存器汇总 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 上电复位与欠压 复位时的值 所有其他 复位时的值 INTCON GIE PEIE T0IE INTE RBIE T0IF INTF RBIF 0000 000x 0000 000x PIE1 EEIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000 PIR1 TXIF SSPIF CCP1IF TMR2IF TMR1IF EEIF ADIF RCIF EEADRH — — — EEADRL EEADRL7 EEADRL6 EEADRL5 EEADRL4 EEADRL3 EEADRL2 EEADRL1 EEADRL0 0000 0000 0000 0000 EECON1 EEPGD — — — WRERR WREN WR RD 0--- x000 ---- q000 ---- ---- ---- ---- EEDATH4 EEDATH3 EEDATH2 EEDATH1 EEDATH0 --00 0000 --00 0000 EEDATL4 EEDATL3 EEDATL2 EEDATL1 EEDATL0 0000 0000 0000 0000 EECON2 EEPROM 控制寄存器 2 (非物理寄存器) EEDATH — — EEDATH5 EEDATL EEDATL7 EEDATL6 EEDATL5 图注: EEADRH4 EEADRH3 EEADRH2 EEADRH1 EEADRH0 0000 0000 0000 0000 ---0 0000 ---0 0000 x = 未知, u = 不变, - = 未实现 (读为 0), q = 具体值根据条件而定。 数据 EEPROM 模块不使用阴影单元。 DS41250F_CN 第 192 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 14.0 SSP 模块概述 图 14-1: 内部 数据总线 同步串行端口(SSP)模块是用于同其他外设或单片机 进行通信的串行接口。这些外设可能是串行EEPROM、 移位寄存器、显示驱动器以及 A/D 转换器等。 SSP 模 块有下列两种工作模式: 读 14.1 SPI 模式 SSPSR 寄存器 SDI/SDA SDO 本节包含寄存器定义和 SPI 模块的可操作特性。 SPI 模式允许同时同步发送和接收 8 位数据。 通常使用 以下三个引脚来完成通信: • 串行数据输出 (Serial Data Out , SDO) • 串行数据输入 (Serial Data In , SDI) • 串行时钟 (Serial Clock, SCK) 写 SSPBUF 寄存器 • 串行外设接口 (Serial Peripheral Interface, SPI) • 内部集成电路 (Inter-Integrated Circuit, I2C™) 请参考应用笔记 AN578 “Use of the SSP Module in the Multi-Master Environment”(DS00578)。 SSP 框图 (SPI 模式) 移位 时钟 bit 0 外设 OE SS 控制 使能 SS 边沿 选择 2 时钟选择 此外,当工作在从模式下时可以使用第 4 个引脚: • 从选择 (SS) 注 SSPM<3:0> 1: 当 SPI 用于从模式且使能了 SS 引脚控制 (SSPCON 寄存 器中 的 SSPM<3:0> = 0100)时,如果 SS 引脚设置为 VDD,那么 SPI 模块将复位。 2: 当 SPI 工作在从模式下并且 CKE = 1,则 必须使能 SS 引脚控制。 4 边沿 选择 SCK/ SCL TMR2 输出 2 预分频器 4, 16, 64 TCY TRISC<6> 3: 当 SPI 用于从模式且使能了 SS 引脚控制 (SSPCON 寄存器中的 SSPM<3:0> = 0100)时, SS 引脚的状态会影响从 TRISC<4> 位读回的状态。从 SSP 模块 向 PORTC 发送的外设输出使能信号控制 从 TRISC<4> 位读回的状态 (如需了解 PORTC 的更多信息,请参见第 19.0 节 “电气规范”)。如果在 SS 引脚处于高电 平时,对 TRISC 寄存器执行读-修改- 写指令 (如 BSF),将使 TRISC<4> 位 置 1,从而禁止 SDO 输出。 2007 Microchip Technology Inc. DS41250F_CN 第 193 页 PIC16F913/914/916/917/946 寄存器 14-1: SSPSTAT:同步串行端口状态寄存器 R/W-0 R/W-0 R-0 R-0 R-0 R-0 R-0 R-0 SMP CKE D/A P S R/W UA BF bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位, 读为 0 - n = 上电复位时的值 1=置1 0 = 清零 x = 未知 bit 7 SMP:SPI 数据输入采样阶段位 SPI 主模式: 1 = 在数据输出时间结束时采样输入数据 0 = 在数据输出时间中间采样输入数据 (Microwire) SPI 从模式: 当 SPI 用于从模式时,必须将 SMP 清零 I2 C™ 模式: 此位必须保持清零 bit 6 CKE:SPI 时钟边沿选择位 SPI 模式, CKP = 0: 1 = 数据在 SCK 的上升沿稳定 (Microwire 备用方案) 0 = 数据在 SCK 的下降沿稳定 SPI 模式, CKP = 1: 1 = 数据在 SCK 的下降沿稳定 (Microwire 默认方案) 0 = 数据在 SCK 的上升沿稳定 I2 C 模式: 此位必须保持清零 bit 5 D/A:数据 / 地址位 (仅 I2C 模式) 1 = 表示上次接收或发送的字节是数据 0 = 表示上次接收或发送的字节是地址 bit 4 P:停止位 (仅 I2C 模式) 当禁止 SSP 模块或上次检测到起始位时,该位被清零。 SSPEN 被清零。 1 = 表示上次检测到了停止位 (此位在复位时为 0) 0 = 表示上次未检测到停止位 bit 3 S:启动位 (仅 I2C 模式) 当禁止 SSP 模块或上次检测到停止位时,该位被清零。 SSPEN 被清零。 1 = 表示上次检测到了起始位 (此位在复位时为 0) 0 = 表示上次未检测到起始位 bit 2 R/W:读 / 写信息位 (仅 I2C 模式) 该位用来保存在上次地址匹配后的 R/W 位信息。 此位仅在地址匹配与遇到下一个起始位、停止位或 ACK 位之间 有效。 1=读 0=写 bit 1 UA:更新地址位 (仅 10 位 I2C 模式) 1 = 表示用户需要更新 SSPADD 寄存器中的地址 0 = 不需要更新地址 bit 0 BF:缓冲器满状态位 接收 (SPI 和 I2 C 模式): 1 = 接收完成, SSPBUF 满 0 = 接收未完成, SSPBUF 空 发送 (仅 I2 C 模式): 1 = 正在发送, SSPBUF 满 0 = 发送完成, SSPBUF 空 DS41250F_CN 第 194 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 寄存器 14-2: SSPCON:同步串行端口控制寄存器 R/W-0 R/W-0 WCOL SSPOV R/W-0 SSPEN R/W-0 CKP R/W-0 SSPM3 (2) R/W-0 SSPM2 (2) R/W-0 SSPM1 bit 7 (2) R/W-0 SSPM0(2) bit 0 图注: R = 可读位 W = 可写位 U = 未实现位,读为 0 - n = 上电复位时的值 1=置1 0 = 清零 x = 未知 bit 7 WCOL:写冲突检测位 1 = 正在发送前一个字时,又有数据写入 SSPBUF 寄存器 (必须由软件清零) 0 = 无冲突 bit 6 SSPOV:接收溢出指示位 在 SPI 模式下: 1 = SSPBUF 寄存器中仍保存前一数据时,又接收到一个新的字节。如果溢出,SSPSR 中的数据会丢失。溢出只 会在从模式下发生。 即使只是发送数据,用户也必须读 SSPBUF,以避免将溢出标志位置 1。 在主模式下,溢 出位不会被置 1,因为每次接收 (和发送)新数据都是通过写入 SSPBUF 寄存器启动。 0 = 无溢出 在 I2 C™ 模式下: 1 = SSPBUF 寄存器中仍保存前一数据时,又接收到一个新的字节。SSPOV 在发送模式下被忽略。两种模式下都 必须由软件将 SSPOV 清零。 0 = 无溢出 bit 5 SSPEN:同步串行端口使能位 在 SPI 模式下: 1 = 使能串行端口并将 SCK、 SDO 和 SDI 配置为串行端口引脚 0 = 禁止串行端口并将这些引脚配置为 I/O 端口引脚 在 I2 C 模式下: 1 = 使能串行端口并将 SDA 和 SCL 引脚配置为串行端口引脚 0 = 禁止串行端口并将这些引脚配置为 I/O 端口引脚 在两种模式下,当使能时,这些引脚必须被正确配置为输入或输出。 bit 4 CKP:时钟极性选择位 在 SPI 模式下: 1 = 空闲状态时,时钟为高电平 (Microwire 默认方案) 0 = 空闲状态时,时钟为低电平 (Microwire 备用方案) 在 I2 C 模式下: SCK 释放控制 1 = 使能时钟 0 = 保持时钟为低电平 (时钟低电平时间延长)。(用于确保数据建立时间。) bit 3-0 SSPM<3:0>:同步串行端口模式选择位 0000 = SPI 主模式,时钟 = FOSC/4 0001 = SPI 主模式,时钟 = FOSC/16 0010 = SPI 主模式,时钟 = FOSC/64 0011 = SPI 主模式,时钟 = TMR2 输出 /2 0100 = SPI 从模式,时钟 = SCK 引脚。 使能 SS 引脚控制 0101 = SPI 从模式,时钟 = SCK 引脚。 禁止 SS 引脚控制。 SS 可作为 I/O 引脚使用。 0110 = I2C 从模式, 7 位地址 0111 = I2C 从模式, 10 位地址 1000 = 保留 1001 = 保留 1010 = 保留 1011 = I2C 固件控制主模式 (从空闲模式) 1100 = 保留 1101 = 保留 1110 = I2C 从模式, 7 位地址,并允许起始位和停止位中断 1111 = I2C 从模式, 10 位地址,并允许起始位和停止位中断 2007 Microchip Technology Inc. DS41250F_CN 第 195 页 PIC16F913/914/916/917/946 14.2 工作原理 当初 始化 SPI 时,需要 通过 对相 应的 控制 位 (SSPCON<5:0> 和 SSPSTAT<7:6>)编程来指定几个 选项。这些控制位用于设置以下选项: • • • • 主模式 (SCK 作为时钟输出) 从模式 (SCK 作为时钟输入) 时钟极性 (SCK 的空闲状态) 输入数据的采样阶段 (数据输出时间的中间或末 端) • 时钟边沿 (在 SCK 的上升沿 / 下降沿输出数据) • 时钟速率 (仅用于主模式) • 从选择模式 (仅用于从模式) 为确保应用软件能有效地接收数据,应该在要发送的下 一数据字节写入 SSPBUF 之前,读取 SSPBUF 中现有 的数据。SSPSTAT 寄存器中的缓冲器满标志位 BF 指出 将接收到的数据装入 SSPBUF(发送完成)的时间。当 SSPBUF 中的数据被读取后,BF 位即被清零。如果 SPI 仅仅作为一个发送器,则不必理会接收的数据。 通常, 可用 SSP 中断来判断发送和接收完成的时间。 必须读 取和 / 或写入 SSPBUF。如果不打算使用中断,用软件 查询的方法同样可确保不会发生写冲突。例 14-1 说明了 装载 SSPBUF (SSPSR)进行数据发送的过程。 不能直接读写 SSPSR 寄存器,只能通过寻址 SSPBUF 寄存器来访问。此外,SSP 状态寄存器(SSPSTAT)指 示各种状态条件。 SSP 模块由一个发送 / 接收移位寄存器 (SSPSR)和 一个缓冲寄存器 (SSPBUF)组成。 SSPSR 对进出器 件的数据进行移位,最高有效位在前。在新数据接收完 毕前,SSPBUF 保存上次写入 SSPSR 的数据。一旦 8 位数据接收完毕,该字节就被移入 SSPBUF 寄存器。然 后,SSPSTAT 寄存器中的缓冲器满状态位 BF 和中断标 志位 SSPIF 被置 1。 在数据发送 / 接收期间,任何试图 写SSPBUF寄存器中的操作都会被忽略,并且SSPCON 寄存器的写冲突检测位 WCOL 会置 1。此时用户必须用 软件将 WCOL 位清零,否则无法判别以后对 SSPBUF 的写操作是否成功。 例 14-1: LOOP BANKSEL BTFSS GOTO BANKSEL MOVF MOVWF MOVF MOVWF 装载 SSPBUF (SSPSR)寄存器 SSPSTAT SSPSTAT, BF LOOP SSPBUF SSPBUF, W RXDATA TXDATA, W SSPBUF DS41250F_CN 第 196 页 ; ;Has data been received(transmit complete)? ;No ; ;WREG reg = contents of SSPBUF ;Save in user RAM, if data is meaningful ;W reg = contents of TXDATA ;New data to xmit 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 14.3 使能 SPI I/O 14.4 典型连接 要使能串行端口, SSPCON 寄存器中的 SSP 使能位 SSPEN 必须置 1。 要复位或重新配置 SPI 模式,应先 将 SSPEN 位清零,重新初始化 SSPCON 寄存器,然后 将 SSPEN 位置 1。这将把 SDI、SDO、SCK 和 SS 引 脚配置为串行端口引脚。要让上述引脚用于串行端口功 能,应对它们的数据方向位 (在 TRISA 和 TRISC 寄存 器中)做如下设置: 图 14-2 给出了两个单片机之间的典型连接。主器件 (处 理器 1)通过发送 SCK 信号来启动数据传输。在两个处 理器的移位寄存器之间,数据在编程设定的时钟边沿被 传送,并在相反的时钟边沿被锁存。必须将两个处理器 的时钟极性(CKP)设置为相同,这样两个控制器就可 以同时收发数据。数据是否有效,取决于应用软件。这 就导致以下三种数据传输情形: • • • • • • • 主器件发送数据 — 从器件发送无效 (Dummy) 数据 • 主器件发送数据 — 从器件发送数据 • 主器件发送无效数据 — 从器件发送数据 TRISC<7> 位必须置 1 SDI 由 SPI 模块自动控制 对于 SDO,必须将 TRISC<4> 位清零 对于 SCK (主模式),必须将 TRISC<6> 位清零 对于 SCK (从模式),必须将 TRISC<6> 位置 1 对于 SS (如果使能),必须将 TRISA<5> 位置 1 对于不需要的任何串行端口功能,可通过将对应的数据 方向(TRISA 和 TRISC)寄存器设置为相反值来屏蔽。 图 14-2: SPI 主 / 从器件连接 SPI 主器件 SSPM<3:0> = 00xxb SPI 从器件 SSPM<3:0> = 010xb SDO SDI 串行输入缓冲器 (SSPBUF) 串行输入缓冲器 (SSPBUF) SDI 移位寄存器 (SSPSR) SDO LSb MSb MSb SCK 处理器 1 2007 Microchip Technology Inc. 移位寄存器 (SSPSR) 串行时钟 LSb SCK 处理器 2 DS41250F_CN 第 197 页 PIC16F913/914/916/917/946 14.5 主模式 因为由主器件控制 SCK 信号,所以它可以在任意时刻 启动数据传输。 主器件根据软件协议确定从器件 (图 14-2 中的处理器 2)应在何时广播数据。 在主模式下,数据一旦写入 SSPBUF 寄存器就开始发送 或接收。如果只打算将 SPI 作为接收器,则可以禁止 SDO 输出 (将其设置为输入)。SSPSR 寄存器按设置 的时钟速率,对 SDI 引脚上的信号进行连续移位输入。 每收到一个字节,就将其装入 SSPBUF 寄存器,就像接 收到普通字节一样 (中断和状态位相应置 1)。 这在以 “线路操作监控”(Line Activity Monitor)方式工作的接 收器应用中很有用。 图 14-3: 可通过对 SSPCON 寄存器中的 CKP 位进行适当的编程 来选择时钟极性。图 14-3、图 14-5 和图 14-6 将给出 SPI 通信的波形图,其中首先发送的是最高有效位。 在主模 式下, SPI 时钟速率 (比特率)可由用户编程设定为下 面几种方式之一: • • • • FOSC/4 (或 TCY) FOSC/16 (或 4 • TCY) FOSC/64 (或 16 • TCY) Timer2 输出 /2 这样可使数据传输速率最高达到 5 Mbps (时钟频率为 20 MHz)。 图 14-3 给出了主模式的波形图。当 CKE 位置 1 时,SDO 数据在 SCK 出现时钟边沿前一直有效。 图中所示的输 入采样的变化由 SMP 状态位反映。 图中给出了将接收 到的数据装入 SSPBUF 的时间。 SPI 模式的波形图 (主模式) 写入 SSPBUF SCK (CKP = 0 CKE = 0) SCK (CKP = 1 CKE = 0) 4 个时钟 模式 SCK (CKP = 0 CKE = 1) SCK (CKP = 1 CKE = 1) SDO (CKE = 0) bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 SDO (CKE = 1) bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 SDI (SMP = 0) bit 0 bit 7 输入 采样 (SMP = 0) SDI (SMP = 1) bit 7 bit 0 输入 采样 (SMP = 1) SSPIF SSPSR 到 SSPBUF DS41250F_CN 第 198 页 在 Q2↓ 之后的 下一个 Q4 周期 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 14.6 从模式 在从模式下,当 SCK 引脚上出现外部时钟脉冲时发送 和接收数据。 当最后一位数据被锁存后,中断标志位 SSPIF 置 1。 在从模式下,外部时钟由 SCK 引脚上的外部时钟源提 供。外部时钟必须满足电气规范中规定的高电平和低电 平的最短时间要求。 在休眠模式下,从器件仍可发送 / 接收数据。 当接收到 一个字节时,器件从休眠状态唤醒。 14.7 从选择同步 SS 引脚允许器件工作于同步从模式。SPI 必须处于从模 式,并使能 SS 引脚控制 (SSPCON<3:0> = 0100)。 要让 SS 引脚充当输入端,则不能将此引脚驱动为低电 平。数据锁存器必须为高电平。当 SS 引脚为低电平时, 使能数据的发送和接收,同时驱动 SDO 引脚。当 SS 引 图 14-4: 脚变为高电平时,即使是在字节的发送过程中,SDO 引 脚也不再被驱动,而是变成悬空输出状态。 根据应用的 需要,可在 SDO 引脚上外接上拉 / 下拉电阻。 注 1: 当 SPI 处于从模式且使能了 SS 引脚控制 (SSPCON<3:0> = 0100)时,如果 SS 引 脚设置为 VDD,那么 SPI 模块将复位。 2: 如果 SPI 工作在从模式下并且 CKE 置 1, 则必须使能 SS 引脚控制。 当 SPI 模块复位时,位计数器被强制为 0。这可以通过 强制将 SS 引脚拉为高电平或将 SSPEN 位清零实现。 将 SDO 引脚和 SDI 引脚相连,可以仿真二线制通信。 当 SPI 需要作为接收器工作时, SDO 引脚可以被配置 为输入端。 这样就禁止了从 SDO 发送数据。 因为 SDI 不 会 引 起总 线 冲 突,因 而 总 是 可 以 将其 保 留 为 输 入 (SDI 功能)。 从同步波形图 SS SCK (CKP = 0 CKE = 0) SCK (CKP = 1 CKE = 0) 写入 SSPBUF SDO SDI (SMP = 0) bit 7 bit 6 bit 7 bit 0 bit 0 bit 7 bit 7 输入 采样 (SMP = 0) SSPIF 中断 标志 SSPSR 到 SSPBUF 2007 Microchip Technology Inc. 在 Q2↓ 之后的 下一个 Q4 周期 DS41250F_CN 第 199 页 PIC16F913/914/916/917/946 图 14-5: SPI 模式的波形图 (从模式且 CKE = 0) SS 可选 SCK (CKP = 0 CKE = 0) SCK (CKP = 1 CKE = 0) 写入 SSPBUF SDO bit 7 SDI (SMP = 0) bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 bit 0 bit 7 输入 采样 (SMP = 0) SSPIF 中断 标志 在 Q2↓ 之后的 下一个 Q4 周期 SSPSR 到 SSPBUF 图 14-6: SPI 模式的波形图 (从模式且 CKE = 1) SS 不可选 SCK (CKP = 0 CKE = 1) SCK (CKP = 1 CKE = 1) 写入 SSPBUF SDO SDI (SMP = 0) bit 6 bit 7 bit 7 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 bit 0 输入 采样 (SMP = 0) SSPIF 中断 标志 SSPSR 到 SSPBUF DS41250F_CN 第 200 页 在 Q2↓ 之后的 下一个 Q4 周期 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 14.8 14.10 总线模式兼容性 休眠模式下的工作 在主模式下,进入休眠模式后所有模块的时钟都停振, 在器件被唤醒前,发送 / 接收也将保持原先的状态。在器 件恢复正常工作模式后,模块将继续发送 / 接收数据。 表 14-1 所示是标准 SPI 模式与 CKP 和 CKE 控制位状态 的对应关系。 在从模式下, SPI 发送 / 接收移位寄存器与器件异步工 作。这可以使器件在休眠状态时,仍可使数据被移入 SPI 发送 / 接收移位寄存器。当接收完 8 位数据后,SSP 中断标志位将置 1,如果此时该中断是允许的,还将唤 醒器件。 表 14-1: 14.9 SPI 总线模式 控制位状态 标准 SPI 模式术语 复位的影响 复位会禁止 SSP 模块并终止当前的数据传输。 CKP CKE 0, 0 0 1 0, 1 0 0 1, 0 1 1 1, 1 1 0 还有一个 SMP 位,该位控制数据采样的时间。 表 14-2: 名称 与 SPI 操作相关的寄存器汇总 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 上电复位与欠 压复位时的值 所有其他 复位时的值 INTCON GIE PEIE T0IE INTE RBIE T0IF INTF RBIF 0000 000x 0000 000x LCDCON LCDEN SLPEN WERR VLCDEN CS1 CS0 LMUX1 LMUX0 0001 0011 0001 0011 LCDSE0 SE7 SE6 SE5 SE4 SE3 SE2 SE1 SE0 0000 0000 0000 0000 LCDSE1 SE15 SE14 SE13 SE12 SE11 SE10 SE9 SE8 0000 0000 0000 0000 PIE1 EEIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000 PIR1 EEIF ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 0000 0000 0000 0000 RCSTA SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 0000 000x 0000 000x xxxx xxxx uuuu uuuu SSPM3 SSPM2 SSPM1 SSPM0 0000 0000 0000 0000 SSPBUF SSPCON 同步串行端口接收缓冲器 / 发送寄存器 WCOL SSPOV SSPEN CKP SMP CKE D/A P S R/W UA BF 0000 0000 0000 0000 TRISA TRISA7 TRISA6 TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA0 1111 1111 1111 1111 TRISC TRISC7 TRISC6 TRISC5 TRISC4 TRISC3 TRISC2 TRISC1 TRISC0 1111 1111 1111 1111 SSPSTAT 图注: x = 未知, u = 不变, – = 未实现单元 (读为 0)。 SPI 模式下的 SSP 不使用阴影单元。 2007 Microchip Technology Inc. DS41250F_CN 第 201 页 PIC16F913/914/916/917/946 14.11 SSP I2C 工作原理 I2C 模式下的 SSP 模块能实现全部从动功能(除广播呼 叫支持外) ,且硬件支持起始位和停止位中断,以便于 固件实现主控功能。 SSP 模块实现标准模式规范以及 7 位和 10 位寻址。 有两个引脚用于数据传输:RC6/TX/CK/SCK/SCL/SEG9 引脚作为时钟线(SCL),而RC7/RX/DT/SDI/SDA/SEG8 引脚作为数据线 (SDA)。 通过将 SSP 使能位 SSPEN(SSPCON<5>)置 1 以使 能 SSP 模块的功能。 2 图 14-7: SSP 框图 (I C™ 模式) 内部 数据总线 读 当地址匹配或在地址匹配后发送的数据被接收时,硬件 会自动产生一个应答 (ACK)脉冲,并把当时 SSPSR 寄存器中接收到的值装入 SSPBUF 寄存器。 SSPSR 寄存器 MSb LSb 匹配检测 地址匹配 置 1 和复位 S 位和 P 位 (SSPSTAT 寄存器) SSP 模块有 5 个寄存器用于 I2C 操作,这 5 个寄存器是 : • • • • • SSP 控制寄存器 (SSPCON) SSP 状态寄存器 (SSPSTAT) 串行接收 / 发送缓冲器 (SSPBUF) SSP 移位寄存器 (SSPSR)— 不可直接访问 SSP 地址寄存器 (SSPADD) DS41250F_CN 第 202 页 某些条件会使 SSP 模块不发出此 ACK 脉冲。这些条件 包括 (之一或全部): a) b) SSPADD 寄存器 起始位和 停止位检测 任何 I2C 模式的选择,在 SSPEN 置 1 后都会强制 SCL 和SDA引脚为漏极开路(假定通过编程将相应的TRISC 位置 1,使这些引脚成为输入引脚)。 必须在 SCL 和 SDA 引脚上外接上拉电阻,才能使 I2C 模块正常工作。 在从模式下, SCL 引脚和 SDA 引脚必须被配置为输入 (TRISC<7,6> 置 1)。 必要时 SSP 模块将用输出数据 改写输入状态 (从发送器)。 SSPBUF 寄存器 移位 时钟 SDI/ SDA I2C 从模式 (7 位地址) I2C 从模式 (10 位地址) I2C 从模式 (7 位地址),允许起始位和停止位中 断以支持固件主模式 • I2C 从模式 (10 位地址),允许起始位和停止位 中断以支持固件主模式 • 允许 I2C 起始位和停止位中断以支持固件主模式, 而从模式空闲 • • • 14.12 从模式 写 SCK/ SCL SSPCON寄存器用于控制I2C 的工作。可通过设置四个 模式选择位(SSPCON<3:0>)选择以下 I2C 模式之一: 在接收到数据前, SSPSTAT 寄存器中的缓冲器 满标志位 BF 置 1。 在接收到数据前,SSPCON寄存器中的溢出标志 位 SSPOV 置 1。 在这种情况下,SSPSR寄存器的值不会载入SSPBUF, 但是 PIR1 寄存器中的 SSPIF 位会置 1。表 14-3 显示了 当已知 BF 位和 SSPOV 位的状态时,接收到数据发送 字节时产生的结果。阴影单元显示了当用户软件没有正 确将溢出状态清零时的情况。 通过读 SSPBUF 寄存器 可以将标志位 BF 清零,而 SSPOV 位则由软件清零。 为确保正常工作,SCL 时钟输入必须满足最小高电平和 最小低电平时间要求。 要了解 I2C 规范的高低电平时间 和对 SSP 模块的具体要求,请参见第 19.0 节 “电气规 范”。 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 14.12.1 寻址 一旦 SSP 模块被使能,它就会等待启动条件发生。 启 动条件发生后, 8 位数据被移入 SSPSR 寄存器。 在时 钟(SCL)线的上升沿采样所有的输入位。在第 8 个时 钟 (SCL)脉冲的下降沿寄存器 SSPSR<7:1> 的值会 和 SSPADD <7:1> 寄存器的值比较。如果地址匹配,并 且 BF 和 SSPOV 都被清零,会发生下列事件: a) b) c) d) SSPSR 寄存器的值被装入 SSPBUF 寄存器。 缓冲器满标志位 BF 被置 1。 产生 ACK 脉冲。 在第 9 个 SCL 脉冲的下降沿, PIR1 寄存器的 SSP 中断标志位 SSPIF 被置 1(如果允许中断, 则产生中断)。 在 10 位地址模式下,从器件需要收到两个地址字节(图 14-8)。 第一个地址字节的高 5 位将指定这是否是一个 10 位地址。R/W 位(SSPSTAT<2>)必须指定写操作, 这样从器件才能接收到第二个地址字节。 对于 10 位地 址,第一个字节等于 “1111 0 A9 A8 0”,其中 A9 和 A8 是该地址的两个最高有效位。 表 14-3: 10 位地址的工作步骤如下,其中 7-9 步是针对从发送器 而言的: 1. 2. 3. 4. 5. 6. 7. 8. 9. 接收地址的第一个 (高)字节 (SSPIF 位、 BF 位和 UA 位 (SSPSTAT<1>)置 1)。 用地址的第二个 (低)字节更新 SSPADD 寄存 器 (UA 位清零并释放 SCL 线)。 读 SSPBUF 寄存器 (BF 位清零)并将标志位 SSPIF 清零。 接收地址的第二个 (低)字节 (SSPIF 位、 BF 位和 UA 位置 1)。 用地址的第一个 (高)字节更新 SSPADD 寄存 器;如果匹配,则释放 SCL 线,这将清零 UA 位。 读 SSPBUF 寄存器 (BF 位清零)并将标志位 SSPIF 清零。 接收重复启动条件。 接收地址的第一个 (高)字节 (SSPIF 位和 BF 位置 1)。 读 SSPBUF 寄存器 (BF 位清零)并将标志位 SSPIF 清零。 接收到传输数据后的动作 接收到传输数据时的 状态位 SSPSR → SSPBUF 产生 ACK 脉冲 SSPIF 位置 1 (如果允许 SSP 中断, 还将产生 SSP 中断) BF SSPOV 0 0 是 是 是 1 0 否 否 是 1 1 否 否 是 0 1 否 否 是 注: 阴影单元表示用户软件没有正确清除溢出条件时的情况。 2007 Microchip Technology Inc. DS41250F_CN 第 203 页 PIC16F913/914/916/917/946 14.12.2 接收 当地 址字 节的 R/W 位清 零并 发生 地址 匹配 时, SSPSTAT 寄存器中的 R/W 位清零。接收到的地址被装 入 SSPBUF 寄存器。 当发生地址字节溢出时,则不会产生应答 (ACK)脉 冲。溢出条件是指 SSPSTAT 寄存器中的 BF 位置 1,或 者 SSPCON 寄存器的 SSPOV 位置 1。这是一个由于用 户固件导致的错误状态。 每个数据传输字节都会产生 SSP 中断。 PIR1 寄存器中 的标志位 SSPIF 必须用软件清零。通过 SSPSTAT 寄存 器可以确定该字节的状态。 I2C™ 接收波形 (7 位地址) 图 14-8: R/W = 0 接收地址 SCL S 1 2 3 SSPIF(PIR1<3>) BF(SSPSTAT<0>) 4 接收数据 ACK A7 A6 A5 A4 A3 A2 A1 SDA 5 6 7 ACK D7 D6 D5 D4 D3 D2 D1 D0 8 9 1 2 3 4 5 6 7 8 9 接收数据 ACK D7 D6 D5 D4 D3 D2 D1 D0 1 2 3 4 5 6 7 由软件清零 8 9 P 总线主器件 终止传输 读 SSPBUF 寄存器 SSPOV (SSPCON<6>) 因为 SSPBUF 寄存器仍然是满的,所以 SSPOV 位置 1。 不发送 ACK。 DS41250F_CN 第 204 页 2007 Microchip Technology Inc. 2007 Microchip Technology Inc. 3 1 6 7 UA 置 1 表示 SSPADD 需要更新 8 9 (当 SEN = 0,CKP 不会复位为 0) UA(SSPSTAT<1>) 5 0 将 SSPSR 的内容 写入 SSPBUF SSPOV(SSPCON<6>) CKP 4 1 由软件清零 2 1 BF(SSPSTAT<0>) (PIR1<3>) SSPIF 1 SCL S 1 SDA A7 2 4 5 由软件清零 3 6 7 UA 置 1 表示 SSPADD 需要更新 当用地址的低字节 更新 SSPADD 时, 由硬件清零 假读 SSPBUF 使 BF 标志位清零 1 8 A6 A5 A4 A3 A2 A1 A0 接收地址的第二个字节 9 ACK 接收数据字节 1 4 5 由软件清零 3 6 在用地址的高字节 更新 SSPADD 时, 由硬件清零 2 7 8 D7 D6 D5 D4 D3 D2 D1 D0 时钟保持低电平直到 SSPADD 被更新 9 ACK 1 2 4 5 由软件清零 3 6 7 8 D7 D6 D5 D4 D3 D2 D1 D0 接收数据字节 P 总线主器件 终止传输 SSPOV 被置 1, 因为 SSPBUF 仍为 满。不发送 ACK。 9 ACK 图 14-9: R/W = 0 ACK A9 A8 0 接收地址的第一个字节 时钟保持低电平直到 SSPADD 被更新 PIC16F913/914/916/917/946 I2C™ 从模式接收时序 (10 位地址) DS41250F_CN 第 205 页 PIC16F913/914/916/917/946 14.12.3 每个数据传输字节都会产生 SSP 中断。 标志位 SSPIF 必须用软件清零, SSPSTAT 寄存器用于确定字节的状 态。标志位 SSPIF 在第 9 个时钟脉冲的下降沿被置 1。 发送 当输 入地 址字 节的 R/W 位 置 1 并发 生地 址匹 配 时, SSPSTAT 寄存器中的 R/W 位被置 1。接收到的地 址被装入 SSPBUF 寄存器。ACK 脉冲在第 9 位上发送, RC6/TX/CK/SCK/SCL/SEG9 引脚保持低电平。 发送数 据必须被装入 SSPBUF 寄存器,同时也装入 SSPSR 寄 存器。然后,应通过将 SSPCON 寄存器中的 CKP 位置 1 来使能 RC6/TX/CK/SCK/SCL/SEG9 引脚。主器件必 须在发出另一个时钟脉冲前监视SCL引脚。从器件可以 通过延长时钟低电平时间不与主器件同步。 8 个数据位 在 SCL 输入的下降沿被移出。这可以确保在 SCL 为高 电平期间 SDA 信号是有效的 (图 14-10)。 I2C™ 发送波形 (7 位地址) 图 14-10: R/W = 1 接收地址 SDA SCL 对于从发送器,来自主接收器的 ACK 脉冲将在第 9 个 SCL输入脉冲的上升沿被锁存。若SDA 线为高电平(无 ACK 应答信号),则表示数据传输已完成。在这种情况 下,如果从器件锁存了 ACK,将复位从逻辑 (复位 SSPSTAT 寄存器),同时从器件监视下一个起始位的出 现。 如果 SDA 线为低电平 (ACK),则必须将下一个 要发送的数据装入 SSPBUF 寄存器和 SSPSR 寄存器。 然后,通过将CKP位置1使能RC6/TX/CK/SCK/SCL/SEG9 引脚。 A7 S A6 A5 1 2 3 采样数据输入 SSPIF(PIR1<3>) A4 A3 A2 A1 4 5 6 7 8 9 ACK 发送数据 ACK D7 1 当 CPU 响应 SSPIF 时, SCL 保持低电平 D6 D5 D4 D3 D2 D1 D0 2 3 4 5 6 7 8 9 P 由软件清零 BF(SSPSTAT<0>) 用软件写 SSPBUF 通过 SSP 中断 服务程序 CKP (SSPCON<4>) 写 SPBUF 后置 1 (SSPBUF 的内容必须在 CKP 位置 1 前写入) DS41250F_CN 第 206 页 2007 Microchip Technology Inc. 2007 Microchip Technology Inc. 3 1 6 7 UA 置 1 表示 SSPADD 需要更新 8 9 (当 SEN = 0,CKP 不会复位为 0) UA(SSPSTAT<1>) 5 0 将 SSPSR 的内容 写入 SSPBUF SSPOV(SSPCON<6>) CKP 4 1 由软件清零 2 1 BF(SSPSTAT<0>) (PIR1<3>) SSPIF 1 SCL S 1 R/W = 0 ACK A9 A8 0 A7 2 4 5 由软件清零 3 6 7 UA 置 1 表示 SSPADD 需要更新 当用地址的低字节 更新 SSPADD 时, 由硬件清零 假读 SSPBUF 使 BF 标志位清零 1 8 A6 A5 A4 A3 A2 A1 A0 接收地址的第二个字节 9 ACK 接收数据字节 1 4 5 由软件清零 3 6 在用地址的高字节 更新 SSPADD 时, 由硬件清零 2 7 8 D7 D6 D5 D4 D3 D2 D1 D0 时钟保持低电平直到 SSPADD 被更新 9 ACK 1 2 4 5 由软件清零 3 6 7 8 D7 D6 D5 D4 D3 D2 D1 D0 接收数据字节 P 总线主器件 终止传输 SSPOV 被置 1, 因为 SSPBUF 仍为 满。不发送 ACK。 9 ACK 图 14-11: SDA 接收地址的第一个字节 时钟保持低电平直到 SSPADD 被更新 PIC16F913/914/916/917/946 I2C™ 从模式发送时序 (10 位地址) DS41250F_CN 第 207 页 PIC16F913/914/916/917/946 14.13 主模式 14.14 多主器件模式 主模式通过固件在检测到启动条件和停止条件时产生中 断来工作。 停止 (P)位和起始 (S)位在复位时或禁 止 SSP 模块时被清零。停止 (P)位和起始 (S)位会 根据启动和停止条件翻转。 当 P 位置 1 时,可以获得 I2C 总线的控制权;否则, P 位和 S 位都清零,总线处 于空闲状态。 在多主器件模式下,在检测到启动条件和停止条件时产 生的中断可用于判断总线是否空闲。 停止 (P)位和起 始 (S)位在复位时或禁止 SSP 模块时被清零。 停止 (P)位和起始(S)位会根据启动和停止条件翻转。当 P 位 (SSPSTAT<4>)置 1 时,可以获得 I2C 总线的控 制权;否则, P 位和 S 位都清零,总线处于空闲状态。 当总线处于忙状态且允许 SSP 中断时,一旦产生停止条 件就会产生中断。 在主 模式 下, SCL 和 SDA 线 通过 清零 相应 的 TRISC<7,6> 位来控制。 输出电平始终为低电平,而与 PORTC<7,6> 的值无关。因此当发送数据时,必须用数 据位 1 将 TRISC<6> 位置 1 (输入),并且用数据位 0 将 TRISC<7> 位清零 (输出)。 对于 SCL 线,也可使 用TRISC<6>位采用同样的方法进行控制。SCL和SDA 引脚上必须外接上拉电阻,才能使 I2C 模块正常工作。 在多主器件操作中,必须监视 SDA 线以确定信号电平 是否为所需的输出电平。此检查仅需在输出为高电平时 进行。如果期望输出高电平,但检测到的是低电平,器 件就需要释放 SDA 和 SCL 线(TRISC<7,6> 位置 1)。 此仲裁在以下两个阶段可能会失败: 下列事件会使 SSP 中断标志位 SSPIF 置 1 (如果允许 SSP 中断,则产生中断): • 地址传输 • 数据传输 • 启动条件 • 停止条件 • 发送 / 接收到数据传输字节 当使能从逻辑电路时,从器件将继续接收数据。 如果在 地址传输阶段仲裁失败,可能表示与器件的通信正在进 行中。如果寻址到器件,则将会产生一个 ACK 脉冲。如 果在数据传输阶段仲裁失败,则器件需要在以后重新传 输数据。 可用从模式空闲 (SSPM<3:0> = 1011)或从模式活动 完成主模式操作。当同时使能主模式和从模式时,需要 使用软件区分中断源。 14.14.1 时钟同步与 CKP 位 当 CKP 位被清零时, SCL 输出被强制为 0。然而,将 CKP 位置 1 不会将 SCL 输出拉为低电平,除非已经采 样到 SCL 输出为低电平。因此,CKP 位不会将 SCL 线 拉为低电平,直到外部 I2C 主器件将 SCL 线拉低为止。 SCL 输出将保持低电平,直到 CKP 位置 1 且 I2C 总线 上的所有其他器件将SCL电平拉高为止。这可以确保对 CKP 位的写操作不会违反 SCL 的最小高电平时间要求 (见图 14-12) DS41250F_CN 第 208 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 图 14-12: 时钟同步时序 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 SDA DX DX-1 SCL 主器件 拉低时钟 CKP 主器件 拉高时钟 写 SSPCON 与 I2C™ 操作相关的寄存器汇总 表 14-4: 名称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 上电复位与欠压 复位时的值 所有其他 复位时的值 INTCON GIE PEIE T0IE INTE RBIE T0IF INTF RBIF 0000 000x 0000 000x LCDCON LCDEN SLPEN WERR VLCDEN CS1 CS0 LMUX1 LMUX0 0001 0011 0001 0011 LCDSE1 SE15 SE14 SE13 SE12 SE11 SE10 SE9 SE8 0000 0000 0000 0000 PIE1 EEIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IF TMR1IF 0000 0000 0000 0000 PIR1 EEIF ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 0000 0000 0000 0000 RCSTA SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 0000 000x 0000 000x xxxx xxxx uuuu uuuu SSPM3 SSPM2 SSPM1 SSPM0 0000 0000 0000 0000 SSPBUF SSPCON 同步串行端口接收缓冲器 / 发送寄存器 WCOL SSPOV SSPEN CKP (1) (1) SSPSTAT SMP CKE TRISC TRISC7 TRISC6 D/A P S R/W UA BF 0000 0000 0000 0000 TRISC5 TRISC4 TRISC3 TRISC2 TRISC1 TRISC0 1111 1111 1111 1111 图注: – = 未实现单元 (读为 0), u = 不变, x = 未知。 SSP 模块不使用阴影单元。 注 1: 保持这些位清零 2007 Microchip Technology Inc. DS41250F_CN 第 209 页 PIC16F913/914/916/917/946 注: DS41250F_CN 第 210 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 15.0 捕捉 / 比较 /PWM (CCP)模块 捕捉 / 比较 /PWM 模块是允许用户定时和控制不同事件 的外设。在捕捉模式下,该外设能对事件的持续时间计 时。比较模式允许用户在达到预先设定的定时时间后触 发一个外部事件。 PWM 模式可产生频率和占空比都可 变化的脉宽调制信号。 表 15-1: CCP 模块 — 需要的定时器资源 CCP 模式 定时器资源 捕捉 Timer1 比较 PWM Timer1 Timer2 表 15-1 所示为该模块所需的定时器资源。 可以在 应用笔 记 AN594 “Using the CCP Modules” (DS00594)中找到有关 CCP 模块的更多信息。 表 15-2: 两个 CCP 模块的相互关系 CCPx 模式 CCPy 模式 捕捉 捕捉 使用相同的 TMR1 时基 捕捉 比较 使用相同的 TMR1 时基 比较 PWM 比较 PWM 使用相同的 TMR1 时基 PWM 捕捉 无 PWM 比较 无 注: 相互关系 所有的 PWM 将具有相同的频率和更新速率 (TMR2 中断)。 上升沿对齐。 本文档中的 CCPRx 和 CCPx 分别指代 CCPR1 或 CCPR2 和 CCP1 或 CCP2。 2007 Microchip Technology Inc. DS41250F_CN 第 211 页 PIC16F913/914/916/917/946 寄存器 15-1: CCPxCON:CCPx 控制寄存器 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 — — CCPxX CCPxY CCP1M3 CCP1M2 CCP1M1 CCP1M0 bit 7 bit 0 图注: R = 可读位 W = 可写位 U = 未实现位,读为 0 - n = 上电复位时的值 1= 置1 0 = 清零 x = 未知 bit 7-6 未实现:读为 0 bit 5-4 CCPxX:CCPxY:PWM 最低有效位 捕捉模式: 未用 比较模式: 未用 PWM 模式: 这些位是 PWM 占空比的低 2 位。 高 8 位在 CCPRxL 中。 bit 3-0 CCPxM<3:0>:CCP 模式选择位 0000 = 关闭捕捉 / 比较 /PWM (复位 CCP 模块) 0001 = 未用 (保留) 0010 = 未用 (保留) 0011 = 未用 (保留) 0100 = 捕捉模式,在每个下降沿捕捉一次 0101 = 捕捉模式,在每个上升沿捕捉一次 0110 = 捕捉模式,每 4 个上升沿捕捉一次 0111 = 捕捉模式,每 16 个上升沿捕捉一次 1000 = 比较模式,匹配时将输出置为高电平 (CCPxIF 位置 1) 1001 = 比较模式,匹配时将输出置为低电平 (CCPxIF 位置 1) 1010 = 比较模式,匹配时产生软件中断 (CCPxIF 位置 1, CCPx 引脚不受影响) 1011 = 比较模式,触发特殊事件(CCPxIF 位置 1,TR1 复位,而且如果使能了 ADC 模块则启动 A/D 转换。CCPx 引脚不受影响) 11xx = PWM 模式。 DS41250F_CN 第 212 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 15.1 15.1.2 捕捉模式 在捕 捉模 式下,当 在引 脚 CCPx 上 发生 事件 时, CCPRxH:CCPRxL 寄存器对将捕捉 TMR1 寄存器的 16 位值。触发捕捉的事件可被定义为以下四者之一,并由 CCPxCON 寄存器中的 CCPxM<3:0> 位配置: • • • • 每出现一个下降沿 每出现一个上升沿 每出现 4 个上升沿 每出现 16 个上升沿 CCPx 引脚配置 在捕捉模式下,应该通过将相应的 TRIS 控制位置 1 把 CCPx 引脚配置为输入引脚。 注: 如果将 CCPx 引脚配置为输出引脚,对该 端口的写操作可能引发一次捕捉事件。 图 15-1: 欲使 CCP 模块使用捕捉功能, Timer1 必须工作在定时 器或同步计数器模式下。在异步计数器模式下,可能无 法进行捕捉操作。 15.1.3 软件中断 当捕捉模式改变时,可能会产生误捕捉中断。用户应该 保持 PIEx 寄存器中的 CCPxIE 中断允许位为零以避免 产生误中断,而且应该在工作模式发生任何改变之后清 零 PIRx 寄存器中的 CCPxIF 中断标志位。 当捕捉发生时,PIRx 寄存器的中断请求标志位 CCPxIF 置 1,但必须用软件将其清零。如果在 CCPRxH 和 CCPRxL 寄存器对中的值被读取之前发生了另一次捕 捉,那么之前捕捉的值将会被新值覆盖 (见图 15-1)。 15.1.1 TIMER1 模式选择 捕捉模式工作原理框图 预分频器 ÷ 1, 4, 16 有四 种预 分频 器设 置,由 CCPxCON 寄存 器中 的 CCPxM<3:0> 位指定。 每当 CCP 模块被关闭或者没有 处于捕捉模式时,预分频器计数器就会被清零。任何复 位都会清零预分频器计数器。 从一个捕捉预分频比切换到另一个捕捉预分频比不会将 预分频计数器清零但可能会产生误中断。要避免出现这 种 不 期 望 的 操 作,应 在 改 变 预 分 频 比 前 通 过 清 零 CCPxCON 寄存器关闭模块 (见例 15-1)。 例 15-1: CLRF MOVLW CCPx 引脚 CCPRxH CCPRxL 捕捉 使能 MOVWF TMR1H CCP 预分频器 切换捕捉预分频比 BANKSEL CCP1CON 将标志位 CCPxIF 置 1 (PIRx 寄存器) 和 边沿检测 15.1.4 ;Set Bank bits to point ;to CCP1CON CCP1CON ;Turn CCP module off NEW_CAPT_PS ;Load the W reg with ; the new prescaler ; move value and CCP ON CCP1CON ;Load CCP1CON with this ; value TMR1L CCPxCON<3:0> 系统时钟 (FOSC) 2007 Microchip Technology Inc. DS41250F_CN 第 213 页 PIC16F913/914/916/917/946 15.2 15.2.2 比较模式 TIMER1 模式选择 在比较模式下,始终用 16 位 CCPRx 寄存器值与 TMR1 寄存器对的值进行比较。当发生匹配时, CCPx 模块可 能会出现以下几种情况: 在比较模式下,Timer1 必须运行在定时器模式或同步计 数器模式下。在异步计数器模式下,可能无法进行比较 操作。 • • • • • 15.2.3 CCPx 的输出电平翻转。 CCPx 输出高电平。 CCPx 输出低电平。 产生特殊事件触发信号。 产生软件中断。 软件中断模式 当选择了产生软件中断模式时 (CCPxM<3:0> = 1010), CCPx 模块不会控制 CCPx 引脚(见 CCPxCON 寄存器)。 15.2.4 特殊事件触发信号 引脚的动作由 CCPxCON 寄存器中的 CCPxM<3:0> 控 制位的值决定。 当选择了特殊事件触发模式时 (CCPxM<3:0> = 1011), CCPx 模块将执行如下操作: 所有比较模式都可以产生中断。 • 复位 Timer1 • 如果使能了 ADC 还将启动 ADC 转换 图 15-2: 在该 模式 下, CCPx 模 块不 控制 CCPx 引脚 (见 CCPxCON 寄存器)。 比较模式工作原理框图 CCPxCON<3:0> 模式选择 将 CCPxIF 中断标志位置 1 (PIRx) 4 CCPRxH CCPRxL CCPx 引脚 Q S R 输出 逻辑 匹配 比较器 TMR1H TRIS 输出使能 TMR1L 特殊事件触发信号 特殊事件触发信号将: 当 TMR1H 和 TMR1L 寄存器对与 CCPRxH 和 CCPRxL 寄存器对匹配时,CCP 会立即产生特殊事件触发信号输 出。TMR1H 和 TMR1L 寄存器对将在 Timer1 时钟的下 一个上升沿复位。 这使 CCPRxH 和 CCPRxL 寄存器对 实际上成为 Timer1 的 16 位可编程周期寄存器。 注 1: 来自CCP模块的特殊事件触发信号不会将 PIR1 寄存器的 TMRxIF 中断标志位置 1。 2: 在产生特殊事件触发信号的边沿和产生 Timer1复位的时钟边沿之间改变CCPRxH 和 CCPRxL 寄存器对的内容可清除匹配条 件,从而阻止复位发生。 • 清零 TMR1H 和 TMR1L 寄存器。 • 不会使 PIR1 寄存器的中断标志位 TMR1IF 置 1。 • 将 GO/DONE 位置 1 来启动 ADC 转换。 15.2.1 CCPx 引脚配置 用户必须通过清零相关的 TRIS 位将 CCPx 引脚配置为 输出引脚。 注: 清零 CCPxCON 寄存器将 CCPx 比较输出 锁存器强制为默认的低电平状态。 这不是 PORT I/O 数据锁存器。 DS41250F_CN 第 214 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 15.3 PWM 模式 PWM 模式在 CCPx 引脚上产生脉宽调制信号。由下列 寄存器确定占空比、周期和分辨率: • • • • PR2 T2CON CCPRxL CCPxCON 一个 PWM 输出 (图 15-2)包含一个时基 (周期)和 一段输出保持为高电平的时间 (占空比)。 图 15-4: CCP PWM 输出 周期 脉宽 在脉宽调制(Pulse-Width Modulation,PWM)模式下, CCP 模块会在 CCPx 引脚上产生高达 10 位分辨率的 PWM 输出。由于 CCPx 引脚与端口数据锁存器复用, 必须清零相应的 TRIS 位才能使能 CCPx 引脚的输出驱 动器。 TMR2 = PR2 TMR2 = CCPRxL:CCPxCON<5:4> TMR2 = 0 清零 CCPxCON 寄存器将会放弃 CCPx 对 CCPx 引脚的控制权。 注: 图 15-3 给出了 PWM 操作的简化框图。 图 15-4 给出了 PWM 信号的典型波形。 欲知设置 CCP 模块进行 PWM 操作的详细步骤,请参 见第 15.3.7 节 “设置 PWM 工作模式”。 图 15-3: 简化的 PWM 框图 CCPxCON<5:4> 占空比寄存器 CCPRxL CCPRxH(2)(从) CCPx R 比较器 TMR2 (1) Q S TRIS 比较器 PR2 注 清零 Timer2, 翻转 CCPx 引脚 的电平并锁存占空比 1: 一个 8 位定时器 TMR2 寄存器与一个 2 位的内 部系统时钟 (FOSC)或预分频器的 2 位相组 合以产生 10 位时基。 2: 在 PWM 模式下,CCPRxH 为只读寄存器。 2007 Microchip Technology Inc. DS41250F_CN 第 215 页 PIC16F913/914/916/917/946 15.3.1 PWM 周期 公式 15-2: PWM 周期由 Timer2 的 PR2 寄存器来指定。 可以使用 公式 15-1 计算 PWM 周期。 公式 15-1: Pulse Width 脉宽 = ( CCPRxL:CCPxCON<5:4> ) • ) T OSC • (TMR2 预分频值 Prescale Value) PWM 周期 PWM 周期 = [ ( PR2 ) + 1 ] • 4 • T OSC • 脉宽 公式 15-3: 占空比 (TMR2预分频值 ) 注: TOSC = 1/FOSC 当 TMR2 等于 PR2 时,在下一个递增计数周期中将发 生以下三个事件: • TMR2 被清零 • CCPx 引脚被置 1 (例外情况:如果 PWM 占空 比 = 0%, CCPx 引脚将不被置 1)。 • PWM 占空比从 CCPRxL 锁存到 CCPRxH。 注: 15.3.2 Timer2 后分频器(见第 7.1 节“Timer2 工 作原理”)不被用于确定 PWM 频率。 CCPRxL:CCPxCON<5:4> )Duty Cycle Ratio = (---------------------------------------------------------------------占空比 4 ( PR2 + 1 ) CCPRxH 寄存器和一个 2 位的内部锁存器用于为 PWM 占空比提供双重缓冲。这种双重缓冲机制极其重要,可 以避免在 PWM 工作过程中产生毛刺。 一个 8 位定时器 TMR2 寄存器与一个 2 位的内部系统时 钟(FOSC)或预分频器的 2 位相组合以产生 10 位时基。 如果将 Timer2 预分频比设置为 1:1,则使用系统时钟。 当 10 位时基的值与 CCPRxH 和 2 位锁存器的值匹配时, 会使 CCPx 引脚输出低电平 (见图 15-3)。 PWM 占空比 可通过将一个 10 位值写入以下多个寄存器来指定 PWM 占空比:CCPRxL 寄存器和 CCPxCON 寄存器中的 CCPx<1:0> 位。 CCPRxL 保存占空比的高 8 位,而 CCPxCON 寄存器中的 CCPx<1:0> 位保存占空比的低 2 位。可以在任何时候写入 CCPRxL 和 CCPxCON 寄存器 的 CCPx<1:0> 位,但直到周期结束(即,PR2 和 TMR2 寄 存 器 之 间 发 生 匹 配)后,占 空 比 的 值 才 被 锁 存 到 CCPRxH中。在PWM模式下,CCPRxH是只读寄存器。 公式 15-2 用于计算 PWM 脉宽。 公式 15-3 用于计算 PWM 占空比。 DS41250F_CN 第 216 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 15.3.3 PWM 分辨率 公式 15-4: 分辨率决定在给定周期内的可用占空比数。例如,10 位 分辨率将产生 1024 个离散的占空比,而 8 位分辨率将产 生 256 个离散的占空比。 log [ 4 ( PR2 + 1 ) ]- bits Resolution 位 分辨率 = ----------------------------------------log ( 2 ) 当 PR2 为 255 时, PWM 的最大分辨率为 10 位。如公 式 15-4 所示,分辨率是 PR2 寄存器值的函数。 表 15-3: PWM 分辨率 注: 如果脉宽值大于周期值,则指定的 PWM 引 脚电平将保持不变。 PWM 频率与分辨率示例 (FOSC = 20 MHz) PWM 频率 1.22 kHz 4.88 kHz 19.53 kHz 78.12 kHz 定时器预分频值 (1、 4 或 16) 16 4 1 1 1 1 0xFF 0xFF 0xFF 0x3F 0x1F 0x17 10 10 10 8 7 6.6 19.61 kHz 76.92 kHz PR2 值 最大分辨率 (位) 表 15-4: 156.3 kHz 208.3 kHz PWM 频率与分辨率示例 (FOSC = 8 MHz) PWM 频率 定时器预分频值 (1、 4 或 16) PR2 值 最大分辨率 (位) 2007 Microchip Technology Inc. 1.22 kHz 4.90 kHz 153.85 kHz 200.0 kHz 16 4 1 1 1 1 0x65 0x65 0x65 0x19 0x0C 0x09 8 8 8 6 5 5 DS41250F_CN 第 217 页 PIC16F913/914/916/917/946 15.3.4 15.3.7 休眠模式下的操作 设置 PWM 工作模式 在休眠模式下,TMR2 寄存器将不会递增,并且模块的 状态将保持不变。如果 CCPx 引脚有输出,它将继续保 持该输出值不变。当器件被唤醒时,TMR2 将从原先的 状态继续工作。 当配置 CCP 模块使之工作于 PWM 模式时应遵循以下 步骤: 15.3.5 2. 3. 1. 系统时钟频率的改变 PWM 频率是由系统时钟频率产生的。系统时钟频率发 生任何变化都会使PWM频率发生变化。更多详细信息, 请参见第 4.0 节 “振荡器模块 (带故障保护时钟监视 器)”。 15.3.6 4. 5. 复位的影响 • 通过装载 T2CON 寄存器中的 T2CKPS 位来 设置 Timer2 预分频值。 • 通过将T2CON寄存器中的TMR2ON位置1来 使能 Timer2。 任何复位都会将所有端口强制为输入模式,并强制 CCP 寄存器进入复位状态。 6. 表 15-5: 通过将相应的 TRIS 位置 1,禁止 PWM 引脚 (CCPx)的输出驱动器。 通过装载 PR2 寄存器来设置 PWM 周期。 通过用适当的值装载 CCPxCON 寄存器来配置 CCP 模块使之工作于 PWM 模式。 通过装载 CCPRxL 寄存器和 CCPxCON 寄存器中 的 CCPx 位来设置 PWM 占空比。 配置并启动 Timer2: • 清零 PIR1 寄存器中的 TMR2IF 中断标志位。 在新的 PWM 周期开始后,使能 PWM 输出: • 等待 Timer2 溢出 (将 PIR1 寄存器中的 TMR2IF 位置 1)。 • 通过清零相应的 TRIS 位使能 CCPx 引脚输出 驱动器。 与捕捉、比较和 PWM 相关的寄存器汇总 名称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 上电复位与欠 压复位时的值 所有其他复 位时的值 CCPxCON — — CCPxX CCPxY CCPxM3 CCPxM2 CCPxM1 CCPxM0 --00 0000 --00 0000 CCPRxL 捕捉 / 比较 /PWM 寄存器 X 低字节 xxxx xxxx uuuu uuuu CCPRxH 捕捉 / 比较 /PWM 寄存器 X 高字节 xxxx xxxx uuuu uuuu CMCON1 — — — — — — T1GSS C2SYNC ---- --10 ---- --10 INTCON GIE PEIE T0IE INTE RBIE T0IF INTF RBIF 0000 000x 0000 000x LCDCON LCDEN SLPEN WERR VLCDEN CS1 CS0 LMUX1 LMUX0 0001 0011 0001 0011 LCDSE1 SE15 SE14 SE13 SE12 SE11 SE10 SE9 SE8 0000 0000 0000 0000 PIE1 EEIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000 PIE2 OSFIE C2IE C1IE LCDIE — LVDIE — CCP2IE 0000 -0-0 0000 -0-0 PIR1 EEIF ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 0000 0000 0000 0000 PIR2 OSFIF C2IF C1IF LCDIF — LVDIF — CCP2IF 0000 -0-0 0000 -0-0 RCSTA SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 0000 000x 0000 000x SSPCON WCOL SSPOV SSPEN CKP SSPM3 SSPM2 SSPM1 SSPM0 0000 0000 0000 0000 T1CON T1GINV TMR1CS TMR1ON 0000 0000 uuuu uuuu T2CON — TOUTPS3 TOUTPS2 TOUTPS1 TOUTPS0 TMR2ON T2CKPS1 T2CKPS0 -000 0000 -000 0000 TMR1GE T1CKPS1 T1CKPS0 T1OSCEN T1SYNC TMR1L 16 位 TMR1 寄存器低字节的保持寄存器 xxxx xxxx uuuu uuuu TMR1H 16 位 TMR1 寄存器高字节的保持寄存器 xxxx xxxx uuuu uuuu TMR2 Timer2 模块寄存器 0000 0000 0000 0000 TRISC TRISC7 TRISC6 TRISC5 TRISC4 TRISC3 TRISC2 TRISC1 TRISC0 1111 1111 1111 1111 TRISD(1) TRISD7 TRISD6 TRISD5 TRISD4 TRISD3 TRISD2 TRISD1 TRISD0 1111 1111 1111 1111 图注: - = 未实现单元 (读为 0), u = 不变, x = 未知。 捕捉 / 比较 /PWM 不使用阴影单元。 注 1: 仅 PIC16F914/917 和 PIC16F946。 DS41250F_CN 第 218 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 16.0 CPU 的特性 PIC16F91X/946 系列器件包含的许多特性旨在最大限度 地提高系统的可靠性,通过减少外部元件将成本降至最 低,并且还提供了低功耗和代码保护功能。 这些功能包括: • 复位 - 上电复位 (POR) - 上电延时定时器 (PWRT) - 振荡器起振定时器 (OST) - 欠压复位 (BOR) • 中断 • 看门狗定时器 (WDT) • 振荡器选择 • 休眠 • 代码保护 • ID 地址单元 • 在线串行编程 2007 Microchip Technology Inc. PIC16F91X/946 系列器件有两个用于提供必要的上电延时 的定时器。一个是振荡器起振定时器 (OST),旨在确保 芯片在晶振达到稳定前始终处于复位状态。另一个是上电 延时定时器(PWRT),仅在上电时提供 64 ms(标称值) 的固定延时,用来确保器件在供电电压稳定之前处于复位 状态。 如果出现欠压条件,同样有可使器件复位的电路, 该电路使用上电延时定时器提供至少 64 ms 的复位延时。 具有这三种片上功能,大多数应用将不需要外部复位电 路。 休眠模式是为提供一种电流消耗很低的掉电工作模式而 设计的。用户可通过以下方法将器件从休眠模式唤醒: • 外部复位 • 看门狗定时器唤醒 • 中断 还有几种振荡器可供选择,以使器件适应各种应用。选 择 INTOSC 可节约系统的成本,而选择 LP 晶振可以节 能。可以使用一组配置位来选择各种时钟选项(见寄存 器 16-1)。 DS41250F_CN 第 219 页 PIC16F913/914/916/917/946 16.1 配置位 可以通过对配置位编程 (读为 0)或不编程 (读为 1) 来选择不同的器件配置,如寄存器 16-1 所示。这些配置 位被映射到程序存储器中地址为 2007h 的单元中。 寄存器 16-1: — 注: 地址 2007h超出了用户程序存储空间,而 是属于特殊配置存储空间(2000h-3FFFh), 仅能在编程期间对它进行访问。更多详细信 息,请参见 “PIC16F91X/946 Memory Programming Specification”(DS41244)。 CONFIG1:配置字寄存器 1 — — DEBUG FCMEN IESO BOREN1 BOREN0 bit 15 bit 8 CPD CP MCLRE PWRTE WDTE FOSC2 FOSC1 bit 7 bit 0 bit 15-13 未实现:读为 1 bit 12 DEBUG:在线调试器模式位 1 = 禁止在线调试器, RB6/ICSPCLK 和 RB7/ICSPDAT 为通用 I/O 引脚 0 = 使能在线调试器, RB6/ICSPCLK 和 RB7/ICSPDAT 专用于调试器 bit 11 FCMEN:故障保护时钟监视器使能位 1 = 使能故障保护时钟监视器 0 = 禁止故障保护时钟监视器 bit 10 IESO:内外时钟切换位 1 = 使能内外时钟切换模式 0 = 禁止内外时钟切换模式 bit 9-8 BOREN<1:0>:欠压复位选择位 (1) 11 = 使能欠压复位 10 = 使能正常工作期间的欠压复位而禁止休眠状态下的欠压复位 01 = 由 PCON 寄存器的 SBOREN 位控制欠压复位 00 = 禁止欠压复位 bit 7 CPD:数据代码保护位 (2) 1 = 禁止数据存储器代码保护 0 = 使能数据存储器代码保护 bit 6 CP:代码保护位 (3) 1 = 禁止程序存储器代码保护 0 = 使能程序存储器代码保护 bit 5 MCLRE:RE3/MCLR 引脚功能选择位 (4) 1 = RE3/MCLR 引脚功能为 MCLR 0 = RE3/MCLR 引脚功能为数字输入, MCLR 在内部被连接到 VDD bit 4 PWRTE:上电延时定时器使能位 1 = 禁止 PWRT 0 = 使能 PWRT bit 3 WDTE:看门狗定时器使能位 1 = 使能 WDT 0 = 禁止 WDT,但可通过 WDTCON 寄存器的 SWDTEN 位使能 bit 2-0 FOSC<2:0>: 振荡器选择位 111 = RC 振荡器:RA6/OSC2/CLKOUT/T1OSO 引脚功能为 CLKOUT, RA7/OSC1/CLKIN/T1OSI 引脚连接 RC 110 = RCIO 振荡器:RA6/OSC2/CLKOUT/T1OSO 为 I/O 引脚, RA7/OSC1/CLKIN/T1OSI 引脚连接 RC 101 = INTOSC 振荡器:RA6/OSC2/CLKOUT/T1OSO 引脚功能为 CLKOUT, RA7/OSC1/CLKIN/T1OSI 为 I/O 引脚 100 = INTOSCIO 振荡器:RA6/OSC2/CLKOUT/T1OSO 为 I/O 引脚, RA7/OSC1/CLKIN/T1OSI 也为 I/O 引脚 011 = EC:RA6/OSC2/CLKOUT/T1OSO 为 I/O 引脚, RA7/OSC1/CLKIN/T1OSI 引脚功能为 CLKIN 010 = HS 振荡器:高速晶振 / 谐振器连接到 RA6/OSC2/CLKOUT/T1OSO 和 RA7/OSC1/CLKIN/T1OSI 引脚 001 = XT 振荡器:晶振 / 谐振器连接到 RA6/OSC2/CLKOUT/T1OSO 和 RA7/OSC1/CLKIN/T1OSI 引脚 000 = LP 振荡器:低功耗晶振连接到 RA6/OSC2/CLKOUT/T1OSO 和 RA7/OSC1/CLKIN/T1OSI 引脚 注 FOSC0 1: 2: 3: 4: 使能欠压复位并不能自动使能上电延时定时器。 当禁止代码保护时,将擦除整个数据 EEPROM 的内容。 当禁止代码保护时,将擦除整个程序存储器的内容。 当 MCLR 在 INTOSC 或者 RC 模式下被拉为低电平时,将禁止内部时钟振荡器。 DS41250F_CN 第 220 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 16.2 复位 PIC16F91X/946器件有以下几种不同类型的复位方式: a) b) c) d) e) f) 上电复位 (POR) 正常工作期间的 WDT 复位 休眠期间的 WDT 复位 正常工作期间的 MCLR 复位 休眠期间的 MCLR 复位 欠压复位 (BOR) 它们不受 WDT 唤醒的影响,因为这被视为恢复正常工 作。 TO 和 PD 位在不同的复位情形下会分别被置 1 或 清零,如表 16-2 所示。这些状态位在软件中用于判断复 位的性质。表16-5对所有寄存器的复位状态做了完整的 说明。 图 16-1 给出了片上复位电路的简化框图。 MCLR 复位电路中有一个噪声滤波器,它可以检测并滤 除小脉冲干扰信号。 参见第 19.0 节 “电气规范”了解 脉宽规范。 有些寄存器不受任何复位的影响;在上电复位时它们的 状态未知,而在其他复位时状态不变。大多数寄存器在 以下复位时会复位到各自的 “复位”状态: • • • • • 上电复位 MCLR 复位 休眠期间的 MCLR 复位 WDT 复位 欠压复位 (BOR) 图 16-1: 片上复位电路的简化框图 外部 复位 MCLR/VPP 引脚 Sleep WDT 模块 WDT 超时 复位 VDD 上升沿 检测 上电复位 VDD 欠压 (1) 复位 BOREN SBOREN S 10 位异步计数器 R OST/PWRT OST Chip_Reset Q OSC1/ CLKIN 引脚 PWRT LFINTOSC 11 位异步计数器 使能 PWRT 使能 OST 注 1: 参见配置字寄存器 (寄存器 16-1) 2007 Microchip Technology Inc. DS41250F_CN 第 221 页 PIC16F913/914/916/917/946 16.2.1 上电复位 (POR) 图 16-2: 片上上电复位电路使器件保持复位状态,直到 VDD 达到 足以使器件正常工作的电平。 要利用上电复位电路,可 以简单地将 MCLR 引脚通过一个电阻连接到 VDD。这样 可以省去产生上电复位通常所需的外部 RC 元件。 需要 一个最大上升时间才能达到 VDD。详情请参见第 19.0 节 “电气规范”。如果使能了欠压复位,那么该最大上升时 间规范将不再适用。 欠压复位电路将保持器件为复位状 态,直到 VDD 达到 VBOR (见第 16.2.4 节 “欠压复位 (BOR)”)。 注: VDD PIC® MCU R1 1 kΩ(或更大) MCLR C1 0.1 µF (可选,无严格规定) 当 VDD 降低时,上电复位电路不会产生内 部复位。 要重新使能上电复位, VDD 必须 至少保持 100 µs 的 Vss 电压。 当器件开始正常工作 (退出复位状态)时,器件的工作 参数 (即电压、频率和温度等)必须得到满足,以确保 其正常工作。如果不满足这些条件,那么器件必须保持 在复位状态,直到满足工作条件为止。 更多信息,请参见应用笔记 AN607“Power-up Trouble Shooting”(DS00607)。 16.2.2 推荐的 MCLR 电路 MCLR PIC16F91X/946 器件在 MCLR 复位电路中有一个噪声 滤波器。该滤波器检测并滤除小的干扰脉冲。 应该注意 WDT 复位不会将 MCLR 引脚驱动为低电平。 该引脚上电压超过规范值将导致 MCLR 复位,并且在 ESD 事件中产生的电流也将超过器件的规范值。因此, Microchip 建议不要把 MCLR 引脚直接连接到 VDD。 建 议使用图 16-2 给出的 RC 网络。 通过清零配置字寄存器中的 MCLRE 位可以使能内部 MCLR 选项。 当 MCLRE = 0 时,内部生成片上复位信 号。 当 MCLRE = 1 时, RE3/MCLR 引脚作为外部复位 输入引脚。在该模式中,RE3/MCLR 引脚通过一个弱上 拉电阻连接到 VDD。选择内部 MCLR 选项不会对在线串 行编程造成影响。 DS41250F_CN 第 222 页 16.2.3 上电延时定时器 (PWRT) 上电延时定时器仅在上电时(上电复位或欠压复位)提 供一个 64 ms (标称值)的固定延时。上电延时定时器 采用 LFINTOSC 振 荡器 作为 时钟 源,工作 频率 为 31 kHz。更多详细信息,请参见第 4.5 节“内部时钟模 式”。只要 PWRT 处于工作状态,器件就保持在复位状 态。 PWRT 延时使 VDD 有足够的时间上升到所需的电 平。配置位 PWRTE 可以禁止(如果置 1)或使能(如 果清零或被编程)上电延时定时器。 虽然不是必需的, 但是在使能欠压复位时也应使能上电延时定时器。 由于以下原因不同芯片的上电延时定时器的延迟时间也 互不相同: • VDD 差异 • 温度差异 • 制造工艺差异 详情请参见直流参数 (第 19.0 节 “电气规范”)。 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 16.2.4 如果在上电延时定时器运行过程中, VDD 电压降到了 VBOR 以下,芯片将重新回到欠压复位状态并且上电延 时定时器会恢复为初始状态。 一旦 VDD 电压上升到 VBOR 以上,上电延时定时器将执行一段 64 ms 的复位。 欠压复位 (BOR) 配置字寄存器中的 BOREN0 和 BOREN1 位用于选择四 种欠压复位模式中的一种。其中添加了两种允许使用软 件或硬件对欠压复位的使能与否进行控制的模式。当 BOREN<1:0> = 01 时,可由 PCON 寄存 器中 的 SBOREN位使能或禁止欠压复位,从而能用软件对其进 行控制。 通过选择合适的 BOREN<1:0> 值可使欠压复 位在休眠时被禁止,从而节约功耗;而在唤醒后被重新 使能。 在此模式下, SBOREN 位无效。 关于配置字的 定义,请参见寄存器 16-1。 16.2.5 BOR 校准 PIC16F91X/946系列器件将BOR校准值存储在校准字寄 存器(2008h)中的熔丝位中。使用在“PIC16F91X/946 Memory Programming Specification”(DS41244) 中指 定的批量擦除序列无法擦除校准字,因此无需对校准字 再编程。 如果 VDD 下降到 VBOR 以下,且持续时间超过参数值 (TBOR)(见第 19.0 节 “电气规范”),欠压状况将使 器件复位。不管 VDD 的变化速率如何,上述情况都会发 生。如果 VDD 低于 VBOR 的时间少于参数(TBOR),则 不一定会发生复位。 地址2008h 超出了用户程序存储空间,而是属于特殊 配置存储空间(2000h-3FFFh),仅能在编程期间对它 进行访问。更多详细信息,请参见 “PIC16F91X/946 Memory Programming Specification” (DS41244)。 任何复位 (上电复位、欠压复位和看门狗定时器等)都 会使器件保持复位状态,直到 VDD 上升到 VBOR 以上(见 图 16-3)。如果使能了上电延时定时器,此时它将启动, 并且会使器件保持复位状态的时间延长 64 ms。 配置字寄存器中的 PWRTE 位用于使能上 电延时定时器。 注: 图 16-3: 欠压情形 VDD 内部 复位 VBOR 64 ms(1) VDD 内部 复位 VBOR < 64 ms 64 ms(1) VDD 内部 复位 注 VBOR 64 ms(1) 1: 仅在 PWRTE 位被设置为 0 时,才增加 64 ms 延时。 2007 Microchip Technology Inc. DS41250F_CN 第 223 页 PIC16F913/914/916/917/946 16.2.6 16.2.7 延时时序 电源控制 (PCON)寄存器 电源控制 (PCON)寄存器 (地址 8Eh)有两个用于指 示上次发生的复位类型的状态位。 上电时的延时时序如下:首先是上电复位延时,等它延 时结束后施加一段 PWRT 延时,随后振荡器起振。总延 时时间取决于振荡器的配置和 PWRTE 位的状态。 例 如,在 EC 模式且 PWRTE 位置 1 (PWRT 禁止)的情 况下,根本不会出现延时。图 16-4、图 16-5 和图 16-6 分别描述了各种情形下的延时时序。通过使能双速启动 或故障保护时钟监视器,当振荡器起振后,器件将以 INTOSC 作为时钟源来执行代码 (见第 4.7.2 节 “双速 启动时序”和第 4.8 节 “故障保护时钟监视器”)。 Bit 0 是 BOR(欠压复位)标志位。BOR 在上电复位时未 知。 然后,用户必须将该位置 1,并在随后的复位发生 时检查 BOR 是否为 0,如果是,则表示已经发生过欠压 复 位。当 禁 止 欠 压 复 位 电 路 (配 置 字 寄 存 器 中 的 BOREN<1:0> = 00)时, BOR 状态位被 “忽略”并且 不必对其进行预测。 Bit 1 是 POR(上电复位)标志位。在上电复位时,它的 值为 0,其他情况下它不受影响。上电复位后,用户必 须对该位写 1。发生后续复位后,如果 POR 为 0,则表 示发生了上电复位(即,VDD 可能已经变为了低电平)。 由于延时是由上电复位脉冲触发的,因此如果 MCLR 保 持足够长时间的低电平,所有延时都将结束。将 MCLR 电平拉高后器件将立即开始执行代码(见图 16-5)这对 于测试或同步多个并行工作的 PIC16F91X/946 器件来 说是非常有用的。 更多详细信息,请参见第16.2.4节“欠压复位(BOR)”。 表 16-5 给出了一些特殊寄存器的复位条件,而表 16-5 给 出了所有寄存器的复位条件。 表 16-1: 各种情形下的延时 上电延时 XT, HS, LP(1) 欠压复位延时 PWRTE = 0 PWRTE = 1 PWRTE = 0 PWRTE = 1 从休眠状态唤 醒的延时 TPWRT + 1024 • TOSC 1024 • TOSC TPWRT + 1024 • TOSC 1024 • TOSC 1024 • TOSC TPWRT — TPWRT — — 振荡器配置 RC, EC, INTOSC 1: 禁止 T1OSC 的 LP 模式。 注 表 16-2: PCON 寄存器中的位及其含义 POR BOR TO PD 0 u 1 1 上电复位 1 0 1 1 欠压复位 u u 0 u WDT 复位 u u 0 0 WDT 唤醒 u u u u 正常工作期间的 MCLR 复位 u u 1 0 休眠期间的 MCLR 复位 图注: 表 16-3: 状态 u = 不变, x = 未知 与欠压有关的寄存器汇总 名称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 上电复位与欠 压复位时的值 所有其他 复位时的值 (1) STATUS IRP RP1 RP0 TO PD Z DC C 0001 1xxx 000q quuu — — — SBOREN — — POR BOR --01 --qq --0u --uu PCON 图注: u = 不变, x = 未知, - = 未实现 (读为 0), q = 具体值根据条件而定。欠压复位不使用阴影单元。 注 1: 其他 (非上电)复位包括正常工作期间的 MCLR 复位和看门狗定时器复位 。 DS41250F_CN 第 224 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 图 16-4: 上电时的延时时序 (MCLR 延时):情形 1 VDD MCLR 内部上电复位 TPWRT PWRT 延时 TOST OST 延时 内部复位 图 16-5: 上电时的延时时序 (MCLR 延时):情形 2 VDD MCLR 内部上电复位 TPWRT PWRT 延时 TOST OST 延时 内部复位 上电时的延时时序 (MCLR 连接到 VDD):情形 3 图 16-6: VDD MCLR 内部上电复位 TPWRT PWRT 延时 TOST OST 延时 内部复位 2007 Microchip Technology Inc. DS41250F_CN 第 225 页 PIC16F913/914/916/917/946 表 16-4: 各个寄存器的初始状态 寄存器 • MCLR 复位 • WDT 复位 • 欠压复位 (1) • 通过中断将器件从休眠模 式唤醒 • 通过 WDT 超时溢出将器 件从休眠模式唤醒 地址 上电复位 — xxxx xxxx uuuu uuuu uuuu uuuu INDF 00h/80h/ 100h/180h xxxx xxxx xxxx xxxx uuuu uuuu TMR0 01h/101h xxxx xxxx uuuu uuuu uuuu uuuu PCL 02h/82h/ 102h/182h 0000 0000 0000 0000 PC + 1(3) STATUS 03h/83h/ 103h/183h 0001 1xxx 000q quuu(4) uuuq quuu(4) FSR 04h/84h/ 104h/184h xxxx xxxx uuuu uuuu uuuu uuuu PORTA 05h xxxx xxxx xxxx xxxx uuuu uuuu PORTB 06h/106h xxxx xxxx xxxx xxxx uuuu uuuu PORTC 07h xxxx xxxx xxxx xxxx uuuu uuuu PORTD(6) 08h xxxx xxxx xxxx xxxx uuuu uuuu PORTE 09h ---- xxxx xxxx xxxx(7) ---- xxxx xxxx xxxx(7) ---- uuuu uuuu uuuu(7) PCLATH 0Ah/8Ah/ 10Ah/18Ah ---0 0000 ---0 0000 ---u uuuu INTCON 0Bh/8Bh/ 10Bh/18Bh 0000 000x 0000 000x uuuu uuuu(2) PIR1 0Ch 0000 0000 0000 0000 uuuu uuuu(2) PIR2 0Dh 0000 -0-0 0000 -0-0 uuuu -u-u TMR1L 0Eh xxxx xxxx uuuu uuuu uuuu uuuu TMR1H 0Fh xxxx xxxx uuuu uuuu uuuu uuuu T1CON 10h 0000 0000 uuuu uuuu uuuu uuuu TMR2 11h 0000 0000 0000 0000 uuuu uuuu T2CON 12h -000 0000 -000 0000 -uuu uuuu SSPBUF 13h xxxx xxxx xxxx xxxx uuuu uuuu SSPCON 14h 0000 0000 0000 0000 uuuu uuuu CCPR1L 15h xxxx xxxx xxxx xxxx uuuu uuuu CCPR1H 16h xxxx xxxx xxxx xxxx uuuu uuuu CCP1CON 17h --00 0000 --00 0000 --uu uuuu RCSTA 18h ---0 1000 ---0 1000 ---u uuuu TXREG 19h 0000 0000 0000 0000 uuuu uuuu W 图注: 注 1: 2: 3: 4: 5: 6: 7: u = 不变,x = 未知, - = 未实现 (读为 0), q = 具体值根据条件而定。 如果 VDD 过低,上电复位将被激活,寄存器将受到不同的影响。 INTCON 和 / 或 PIR1 寄存器中的 1 位或多位会受到影响 (引起唤醒) 当器件被中断唤醒且 GIE 位置 1 时, PC 装入中断向量 (0004h)。 关于特定条件下的复位值,请参见表 16-5。 如果复位是由于欠压引起的,则 bit 0 = 0。 其他复位将导致 bit 0 = u。 仅适用于 PIC16F914/917 和 PIC16F946 器件。 仅适用于 PIC16F946 器件。 DS41250F_CN 第 226 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 表 16-4: 各个寄存器的初始状态 (续) 寄存器 • 通过中断将器件从休眠模 式唤醒 • 通过 WDT 超时溢出将器 件从休眠模式唤醒 • MCLR 复位 • WDT 复位 • 欠压复位 (1) 地址 上电复位 RCREG 1Ah 0000 0000 0000 0000 uuuu uuuu CCPR2L(6) 1Bh xxxx xxxx xxxx xxxx uuuu uuuu CCPR2H(6) 1Ch xxxx xxxx xxxx xxxx uuuu uuuu CCP2CON (6) 1Dh --00 0000 --00 0000 --uu uuuu ADRESH 1Eh xxxx xxxx uuuu uuuu uuuu uuuu ADCON0 1Fh 0000 0000 0000 0000 uuuu uuuu 81h/181h 1111 1111 1111 1111 uuuu uuuu TRISA 85h 1111 1111 1111 1111 uuuu uuuu TRISB 86h/186h 1111 1111 1111 1111 uuuu uuuu TRISC 87h 1111 1111 1111 1111 uuuu uuuu TRISD(6) 88h 1111 1111 1111 1111 uuuu uuuu TRISE 89h ---- 1111 1111 1111(7) ---- 1111 1111 1111(7) ---- uuuu uuuu uuuu(7) PIE1 8Ch 0000 0000 0000 0000 uuuu uuuu PIE2 8Dh 0000 -0-0 0000 -0-0 uuuu -u-u PCON 8Eh --01 --0x --0u OSCCON 8Fh -110 q000 -110 x000 -uuu uuuu OSCTUNE 90h ---0 0000 ---u uuuu ---u uuuu ANSEL 91h 1111 1111 1111 1111 uuuu uuuu PR2 92h 1111 1111 1111 1111 1111 1111 SSPADD 93h 0000 0000 0000 0000 uuuu uuuu SSPSTAT 94h 0000 0000 0000 0000 uuuu uuuu WPUB 95h 1111 1111 1111 1111 uuuu uuuu IOCB 96h 0000 ---- 0000 ---- uuuu ---- CMCON1 97h ---- --10 ---- --10 ---- --uu TXSTA 98h 0000 -010 0000 -010 uuuu -uuu SPBRG 99h 0000 0000 0000 0000 uuuu uuuu CMCON0 9Ch 0000 0000 0000 0000 uuuu uuuu VRCON 9Dh 0-0- 0000 0-0- 0000 u-u- uuuu ADRESL 9Eh xxxx xxxx uuuu uuuu uuuu uuuu ADCON1 9Fh -000 ---- -000 ---- -uuu ---- WDTCON 105h ---0 1000 ---0 1000 ---u uuuu LCDCON 107h 0001 0011 0001 0011 uuuu uuuu LCDPS 108h 0000 0000 0000 0000 uuuu uuuu OPTION_REG 图注: 注 1: 2: 3: 4: 5: 6: 7: --uu(1,5) --uu --uu u = 不变,x = 未知, - = 未实现 (读为 0), q = 具体值根据条件而定。 如果 VDD 过低,上电复位将被激活,寄存器将受到不同的影响。 INTCON 和 / 或 PIR1 寄存器中的 1 位或多位会受到影响 (引起唤醒) 当器件被中断唤醒且 GIE 位置 1 时, PC 装入中断向量 (0004h)。 关于特定条件下的复位值,请参见表 16-5。 如果复位是由于欠压引起的,则 bit 0 = 0。 其他复位将导致 bit 0 = u。 仅适用于 PIC16F914/917 和 PIC16F946 器件。 仅适用于 PIC16F946 器件。 2007 Microchip Technology Inc. DS41250F_CN 第 227 页 PIC16F913/914/916/917/946 表 16-4: 各个寄存器的初始状态 (续) 寄存器 • MCLR 复位 • WDT 复位 • 欠压复位 (1) • 通过中断将器件从休眠模 式唤醒 • 通过 WDT 超时溢出将器 件从休眠模式唤醒 地址 上电复位 LVDCON 109h --00 -100 --00 -100 --uu -uuu EEDATL 10Ch 0000 0000 0000 0000 uuuu uuuu EEADRL 10Dh 0000 0000 0000 0000 uuuu uuuu EEDATH 10Eh --00 0000 0000 0000 uuuu uuuu EEADRH 10Fh ---0 0000 0000 0000 uuuu uuuu LCDDATA0 110h xxxx xxxx uuuu uuuu uuuu uuuu LCDDATA1 111h xxxx xxxx uuuu uuuu uuuu uuuu LCDDATA2(6) 112h xxxx xxxx uuuu uuuu uuuu uuuu LCDDATA3 113h xxxx xxxx uuuu uuuu uuuu uuuu LCDDATA4 114h xxxx xxxx uuuu uuuu uuuu uuuu LCDDATA5(6) 115h xxxx xxxx uuuu uuuu uuuu uuuu LCDDATA6 116h xxxx xxxx uuuu uuuu uuuu uuuu LCDDATA7 117h xxxx xxxx uuuu uuuu uuuu uuuu LCDDATA8(6) 118h xxxx xxxx uuuu uuuu uuuu uuuu LCDDATA9 119h xxxx xxxx uuuu uuuu uuuu uuuu LCDDATA10 11Ah xxxx xxxx uuuu uuuu uuuu uuuu LCDDATA11(6) 11Bh xxxx xxxx uuuu uuuu uuuu uuuu LCDSE0 11Ch 0000 0000 uuuu uuuu uuuu uuuu LCDSE1 11Dh 0000 0000 uuuu uuuu uuuu uuuu LCDSE2(6) 11Eh 0000 0000 uuuu uuuu uuuu uuuu TRISF(7) 185h 1111 1111 1111 1111 uuuu uuuu TRISG(7) 187h --11 1111 --11 1111 --uu uuuu PORTF(7) 188h xxxx xxxx 0000 0000 uuuu uuuu PORTG(7) 189h --xx xxxx --00 0000 --uu uuuu LCDDATA12(7) 190h xxxx xxxx uuuu uuuu uuuu uuuu LCDDATA13(7) 191h xxxx xxxx uuuu uuuu uuuu uuuu LCDDATA14(7) 192h ---- --xx ---- --uu ---- --uu LCDDATA15(7) 193h xxxx xxxx uuuu uuuu uuuu uuuu LCDDATA16(7) 194h xxxx xxxx uuuu uuuu uuuu uuuu LCDDATA17(7) 195h ---- --xx ---- --uu ---- --uu LCDDATA18(7) 196h xxxx xxxx uuuu uuuu uuuu uuuu LCDDATA19(7) 197h xxxx xxxx uuuu uuuu uuuu uuuu LCDDATA20(7) 198h ---- --xx ---- --uu ---- --uu LCDDATA21(7) 199h xxxx xxxx uuuu uuuu uuuu uuuu 图注: 注 1: 2: 3: 4: 5: 6: 7: u = 不变,x = 未知, - = 未实现 (读为 0), q = 具体值根据条件而定。 如果 VDD 过低,上电复位将被激活,寄存器将受到不同的影响。 INTCON 和 / 或 PIR1 寄存器中的 1 位或多位会受到影响 (引起唤醒) 当器件被中断唤醒且 GIE 位置 1 时, PC 装入中断向量 (0004h)。 关于特定条件下的复位值,请参见表 16-5。 如果复位是由于欠压引起的,则 bit 0 = 0。 其他复位将导致 bit 0 = u。 仅适用于 PIC16F914/917 和 PIC16F946 器件。 仅适用于 PIC16F946 器件。 DS41250F_CN 第 228 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 表 16-4: 各个寄存器的初始状态 (续) • 通过中断将器件从休眠模 式唤醒 • 通过 WDT 超时溢出将器 件从休眠模式唤醒 • MCLR 复位 • WDT 复位 • 欠压复位 (1) 寄存器 地址 上电复位 LCDDATA22(7) 19Ah xxxx xxxx uuuu uuuu uuuu uuuu LCDDATA23(7) 19Bh ---- --xx ---- --uu ---- --uu LCDSE3(7) 19Ch 0000 0000 uuuu uuuu uuuu uuuu (7) 19Dh 0000 0000 uuuu uuuu uuuu uuuu LCDSE5(7) 19Eh ---- --00 ---- --uu ---- --uu EECON1 18Ch x--- x000 u--- q000 u--- uuuu LCDSE4 图注: 注 1: 2: 3: 4: 5: 6: 7: 表 16-5: u = 不变,x = 未知, - = 未实现 (读为 0), q = 具体值根据条件而定。 如果 VDD 过低,上电复位将被激活,寄存器将受到不同的影响。 INTCON 和 / 或 PIR1 寄存器中的 1 位或多位会受到影响 (引起唤醒) 当器件被中断唤醒且 GIE 位置 1 时, PC 装入中断向量 (0004h)。 关于特定条件下的复位值,请参见表 16-5。 如果复位是由于欠压引起的,则 bit 0 = 0。 其他复位将导致 bit 0 = u。 仅适用于 PIC16F914/917 和 PIC16F946 器件。 仅适用于 PIC16F946 器件。 特殊寄存器的初始状态 程序 计数器 STATUS 寄存器 PCON 寄存器 上电复位 0000h 0001 1xxx ---1 --0x 正常工作期间的 MCLR 复位 0000h 000u uuuu ---u --uu 休眠期间的 MCLR 复位 0000h 0001 0uuu ---u --uu WDT 复位 0000h 0000 uuuu ---u --uu WDT 唤醒 PC + 1 uuu0 0uuu ---u --uu 0000h 0001 1uuu ---1 --10 PC + 1(1) uuu1 0uuu ---u --uu 条件 欠压复位 通过中断从休眠模式唤醒 图注: u = 不变,x = 未知, - = 未实现 (读为 0)。 注 1: 如果器件被中断唤醒且全局中断允许位 GIE 置 1,则执行 PC+1 后, PC 装入中断向量 (0004h)。 2007 Microchip Technology Inc. DS41250F_CN 第 229 页 PIC16F913/914/916/917/946 16.3 中断 PIC16F91X/946 器件具有以下多种中断源: • • • • • • • • • • • • • 外部中断 RB0/INT/SEG0 TMR0 溢出中断 PORTB 电平变化中断 两个比较器中断 A/D 中断 Timer1 溢出中断 数据 EEPROM 写中断 故障保护时钟监视器中断 LCD 中断 PLVD 中断 USART 接收和发送中断 CCP1 中断和 CCP2 中断 Timer2 中断 中断控制 (INTCON)寄存器、外设中断请求寄存器 1 (PIR1)和外设中断请求寄存器 2 (PIR2)在各自的标 志位中记录各种中断请求。INTCON 寄存器还包括各个 中断允许位和全局中断允许位。 PIR2 寄存器包含下列中断标志位: • • • • • 故障保护时钟监视器中断 比较器 1 和比较器 2 中断 LCD 中断 PLVD 中断 CCP2 中断 当响应一个中断时: • 将 GIE 位清零以禁止其他中断。 • 将返回地址压入堆栈。 • PC 中装入 0004h。 对于外部中断事件,例如 INT 引脚中断或者 PORTB 电平 变化中断,中断响应延时将会是 3 到 4 个指令周期。 确 切的延时时间取决于发生中断事件的时间(见图 16-8)。 对于单周期或双周期指令,中断响应延时完全相同。 进 入中断服务程序之后,就可以通过查询中断标志位来确 定中断源。在重新允许中断前,必须用软件将中断标志 位清零,以避免重复响应该中断。 注 2: 当执行一条清零 GIE 位的指令后,任何一个 等待在下一周期执行的中断都将被忽略。 当 GIE 位被再次置 1 后,被忽略的中断仍 会继续等待处理。 INTCON 寄存器中的全局中断允许位 GIE 在置 1 时允许 所有未屏蔽的中断,而在清零时,禁止所有中断。可以 通过 INTCON、PIE1 和 PIE2 寄存器中相应的允许位来 禁止各个中断。复位时 GIE 被清零。 执行 “从中断返回”指令 RETFIE 退出中断服务程序, 并将 GIE 位置 1,从而重新允许未屏蔽的中断。 INTCON 寄存器包含下列中断标志位: • INT 引脚中断 • PORTB 电平变化中断 • TMR0 溢出中断 1: 各中断标志位的置 1 不受对应的中断屏蔽 位或 GIE 位状态的影响。 欲知更多关于模块产生中断的信息,请参见相应的外设 章节。 注: 必须对 ANSEL 和 CMCON0 寄存器进行初 始化以将模拟通道配置为数字输入。 配置 为模拟输入的引脚将读为 0,并且如果某个 外部中断引脚的 LCD 输出功能处于有效状 态,将会禁止该引脚的中断功能。 外设中断标志位在特殊功能寄存器 PIR1 和 PIR2 中。相 应的中断允许位在特殊功能寄存器 PIE1 和 PIE2 中。 PIR1 寄存器包含下列中断标志位: • • • • • • • 数据 EEPROM 写中断 A/D 中断 USART 接收和发送中断 Timer1 溢出中断 CCP1 中断 SSP 中断 Timer2 中断 DS41250F_CN 第 230 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 16.3.1 RB0/INT/SEG0 中断 16.3.2 RB0/INT/SEG0 引脚上的外部中断是边沿触发的;当 OPTION 寄存器中的 INTEDG 位被置 1 时在上升沿触 发,而当 INTEDG 位被 清零 时在 下降 沿触 发。当 RB0/INT/SEG0 引脚上出现有效边沿时,INTCON 寄存 器中的 INTF 位置 1。 可以通过清零 INTCON 寄存器中 的INTE控制位来禁止该中断。在重新允许此中断之前, 必须在中断服务程序中先用软件将 INTF 位清零。 如果 INTE 位在进入休眠状态前被置 1,则 RB0/INT/SEG0 中 断能将处理器从休眠状态唤醒。GIE 位的状态决定处理 器在被唤醒之后是否会跳转到中断向量 (0004h)处执 行代码。有关休眠的详细信息,请参见第 16.5 节“掉电 模式 (休眠)”;而有关 RB0/INT/SEG0 中断将处理器 从休眠状态唤醒的时序请参见图 16-10。 图 16-7: TMR0 中断 TMR0 寄存器溢出 (FFh → 00h)会将 INTCON 寄存 器中的 T0IF 位置 1。可以通过置 1/ 清零 INTCON 寄存 器中的 T0IE 位来允许 / 禁止该中断。 欲知有关 Timer0 模块的操作,请参见第 5.0 节 “Timer0 模块”。 16.3.3 PORTB 中断 PORTB 输入电平的变化会使INTCON寄存器中的RBIF 位置 1。可以通过置 1/ 清零 INTCON 寄存器中的 RBIE 位来允许 / 禁止该中断。 此外,可通过 IOCB 寄存器对 该端口的各个引脚进行配置。 注: 如果在执行读操作时(Q2 周期的开始)I/O 引脚的电平发生了改变,那么 RBIF 中断标 志可能就不会置 1。 中断逻辑 IOC-RB4 IOCB4 IOC-RB5 IOCB5 IOC-RB6 IOCB6 IOC-RB7 IOCB7 TMR0IF TMR0IE TMR2IF TMR2IE TMR1IF TMR1IE C1IF C1IE C2IF C2IE ADIF ADIE OSFIF OSFIE EEIF EEIE CCP1IF CCP1IE CCP2IF CCP2IE RCIF RCIE TXIF TXIE SSPIF SSPIE LCDIF LCDIE LVDIF LVDIE INTF INTE RBIF RBIE 唤醒 CPU(如果处于休眠状态) 到 CPU 的中断请求 PEIF PEIE GIE * 2007 Microchip Technology Inc. * 仅 PIC16F914/917 器件才具有的中断功能。 DS41250F_CN 第 231 页 PIC16F913/914/916/917/946 图 16-8: INT 引脚中断时序 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 OSC1 CLKOUT(3) (4) INT 引脚 (1) INTF 标志位 (INTCON 寄存器) (1) (5) 中断响应延时 (2) GIE 位 (INTCON 寄存器) 指令流 PC 取指 Inst (PC) 执行 指令 Inst (PC -1) 注 0005h Inst (PC + 1) — Inst(0004h) Inst(0005h) Inst (PC) 空周期 空周期 Inst(0004h) 1: 在此采样 INTF 标志 (每个 Q1 周期)。 2: 异步中断响应延时为 3-4 个 TCY。 同步中断响应延时为 3 个 TCY,其中 TCY 为一个指令周期。 不管 Inst (PC)是单 周期还是双周期指令,中断响应延时都是一样的。 3: 只有在 INTOSC 和 RC 振荡模式下 CLKOUT 才有效。 4: 欲知 INT 脉冲的最小宽度,请参见第 19.0 节 “电气规范”中的交流规范。 5: 允许在 Q4-Q1 周期内的任何时间将 INTF 置 1。 表 16-6: 名称 0004h PC + 1 PC + 1 PC 中断寄存器汇总 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 上电复位与欠 压复位时的值 所有其他 复位时的值 INTCON GIE PEIE T0IE INTE RBIE T0IF INTF RBIF 0000 000x 0000 000x PIR1 EEIF ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 0000 0000 0000 0000 PIR2 OSFIF C2IF C1IF LCDIF — LVDIF — CCP2IF 0000 -0-0 0000 -0-0 PIE1 EEIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000 PIE2 OSFIE C2IE C1IE LCDIE — LVDIE — CCP2IE 0000 -0-0 0000 -0-0 图注: x = 未知, u = 不变, - = 未实现单元 (读为 0)。中断模块不使用阴影单元。 DS41250F_CN 第 232 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 16.3.4 中断的现场保护 在中断期间,仅将返回的PC值压入堆栈。通常情况下, 用户可能希望在中断期间保存关键寄存器(例如,W 寄 存器和 STATUS 寄存器)。这必须用软件实现。 由于在 PIC16F91X/946 器件中每个存储区的低 16 个字 节都是公用的 (见图 2-3),临时保存寄存器 W_TEMP 和 STATUS_TEMP 都应该被放在这里。这 16 个存储单 元不需要分区,因此便于现场保护和恢复。与例 16-1 中 相同的代码可被用于: • • • • • 存储 W 寄存器 存储 STATUS 寄存器 执行中断服务程序代码 恢复 STATUS 寄存器 (和存储区选择寄存器) 恢复 W 寄存器 注: 单片机通常不需要保存 PCLATH 寄存器, 除非直接或通过 pagesel 宏在代码中对其 进行修改,那么,就必须在中断服务程序 开始保存 PCLATH 寄存器,管理中断服务 程序中的 CALL 和 GOTO 指令,并在中断服 务程序完成时恢复 PCLATH 以确保正确的 程序流。 例 16-1: 将 STATUS 和 W 寄存器保存在 RAM 中 MOVWF SWAPF CLRF MOVWF : :(ISR) : SWAPF W_TEMP STATUS,W STATUS STATUS_TEMP MOVWF SWAPF SWAPF STATUS W_TEMP,F W_TEMP,W ;Copy ;Swap ;bank ;Save W to TEMP register status to be saved into W 0, regardless of current bank, Clears IRP,RP1,RP0 status to bank zero STATUS_TEMP register ;Insert user code here STATUS_TEMP,W 2007 Microchip Technology Inc. ;Swap STATUS_TEMP register into W ;(sets bank to original state) ;Move W into STATUS register ;Swap W_TEMP ;Swap W_TEMP into W DS41250F_CN 第 233 页 PIC16F913/914/916/917/946 16.4 看门狗定时器 (WDT) PIC16F91X/946 系列器件的 WDT 与早期 PIC16F 器件 有所不同。这种新的 WDT 与早期 PIC16F WDT 模块的 编码和功能是兼容的,只是为它增加了一个 16 位的预 分频器。这样就可以在为 TMR0 设置分频比的同时,也 设置 WDT 的分频比。另外,该 WDT 的超时值可被扩 展至268秒。 在表16-7中说明的条件下WDT会被清零。 16.4.1 WDT 振荡器 WDT 以 31 kHz 的 LFINTOSC 作为其工作的时基。 LFINTOSC 使能与否不会在 LTS 位上有所反映。 在所有复位后, WDTCON 的值都为 “---0 1000”。 此时, WDT 将以标称的 16 ms 作为其工作的时基,这 是与早期的 PIC16F 单片机所产生的时基兼容。 注: 当振荡器起振延时定时器(OST)启动时, 由于 OST 需要使用 WDT 脉动计数器来对 振荡器延时进行计数,因此 WDT 仍将保持 复位状态。 当 OST 计数结束后, WDT 将 开始计数 (如果使能)。 图 16-9: 在 INTOSC 与多路开关(用于选择输入给 WDT 的时钟 路径)之间添加了一个新的预分频器。该预分频器为 16 位宽,并且可对其进行编程以对 INTOSC 进行 32 到 65536 的分频,从而为 WDT 提供从 1 ms 到 268s 的标 称周期范围。 16.4.2 WDT 控制 WDTE 位在配置字寄存器中。当该位置 1 时, WDT 持 续运行。 当配置字寄存器中的 WDTE 位置 1 时,WDTCON 寄存 器中的 SWDTEN 位无效。当 WDTE 清零时,则可使用 SWDTEN 位使能和禁止 WDT。 SWDTEN 位置 1 使能 WDT, SWDTEN 位清零则禁止 WDT。 OPTION 寄存器中的 PSA 和 PS<2:0> 位具有与早期 PIC16F 系列单片机中相应位同样的功能。 更多详细信 息,请参见第 5.0 节 “Timer0 模块”。 看门狗定时器框图 来自 TMR0 时钟源 0 预分频器 (1) 16 位 WDT 预分频器 1 8 PSA 31 kHz LFINTOSC 时钟 PS<2:0> WDTPS<3:0> 到 TMR0 0 1 PSA 配置字寄存器中的 WDTE WDTCON 中的 SWDTEN WDT 超时 注 1 :这是 Timer0 和 WDT 共用的预分频器。更多详细信息,请参见第 5.4 节“预分频器”。 表 16-7: WDT 状态 条件 WDT WDTE = 0 CLRWDT 指令 检测到振荡器故障 清零 退出休眠 + 系统时钟 = T1OSC、 EXTRC、 INTOSC 或 EXTCLK 退出休眠 + 系统时钟 = XT、 HS 或 LP DS41250F_CN 第 234 页 清零直到 OST 延时结束 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 寄存器 16-2: WDTCON——看门狗定时器控制寄存器 (地址:105h) U-0 U-0 U-0 R/W-0 R/W-1 R/W-0 R/W-0 R/W-0 — — — WDTPS3 WDTPS2 WDTPS1 WDTPS0 SWDTEN bit 7 bit 0 bit 7-5 未实现:读为 0 bit 4-1 WDTPS<3:0>:看门狗定时器周期选择位 位值 = 预分频比 0000 = 1:32 0001 = 1:64 0010 = 1:128 0011 = 1:256 0100 = 1:512 (复位值) 0101 = 1:1024 0110 = 1:2048 0111 = 1:4096 1000 = 1:8192 1001 = 1:16384 1010 = 1:32768 1011 = 1:65536 1100 = 保留 1101 = 保留 1110 = 保留 1111 = 保留 bit 0 SWDTEN:软件使能或禁止看门狗定时器位 (1) 1 = 使能 WDT 0 = 禁止 WDT (复位值) 注 1: 如果 WDTE 配置位 = 1,则 WDT 始终被使能,而与该控制位的状态无关。 如果 WDTE 配置位 = 0,则可以使用该控制位使能或禁止 WDT。 图注: 表 16-8: R = 可读位 W = 可写位 U = 未实现位,读为 0 - n = 上电复位时的值 1=置1 0 = 清零 x = 未知 看门狗定时器寄存器汇总 名称 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 CONFIG CPD CP MCLRE PWRTE WDTE FOSC2 FOSC1 FOSC0 RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0 — — — WDTPS3 WDTPS2 WSTPS1 WDTPS0 SWDTEN OPTION_REG WDTCON 图注: 看门狗定时器不使用阴影单元。 注 1: 关于配置字寄存器中所有位的操作,请参见寄存器 16-1。 2007 Microchip Technology Inc. DS41250F_CN 第 235 页 PIC16F913/914/916/917/946 16.5 掉电模式 (休眠) 通过执行 SLEEP 指令可进入掉电模式。 如果使能看门狗定时器: • • • • • • WDT 将被清零并保持运行。 STATUS 寄存器中的 PD 位被清零。 TO 位被置 1。 关闭振荡器驱动器。 Timer1 振荡器不受影响。 I/O 端口保持执行 SLEEP 指令之前的状态 (驱动 为高电平、低电平或高阻态)。 在休眠模式下,为了尽量降低电流消耗,所有 I/O 引脚 都应该保持为 VDD 或 VSS,没有外部电路从 I/O 引脚消 耗电流,同时应禁止比较器和 CVREF。为了避免输入引 脚悬空而引入开关电流,应在外部将高阻输入的 I/O 引 脚拉为高电平或低电平。 为了将电流消耗降至最低, TOCKI输入也应该保持为VDD 或VSS。还应考虑PORTB 片内上拉的影响。 MCLR 引脚必须处于逻辑高电平。 注: 16.5.1 应该注意WDT超时溢出导致的复位不会将 MCLR 引脚驱动为低电平。 下列外设中断可以将器件从休眠状态唤醒: 1. 2. 3. 4. 5. 6. 7. 8. 9. TMR1 中断。Timer1 必须用作异步计数器。 USART 接收中断 (仅同步从模式) A/D 转换 (当 A/D 时钟源为 RC 振荡器时) EEPROM 写操作完成 比较器输出状态变化 电平变化中断 来自 INT 引脚的外部中断 PLVD 中断 LCD 中断 (如果在休眠期间运行) 由于在休眠状态期间没有片内时钟处于工作状态,因此 其他外设不能产生中断。 当执行 SLEEP 指令时,下一条指令 (PC+1)被预先取 出。如果希望通过中断事件唤醒器件,则必须将相应的 中断允许位置 1 (允许)。 唤醒与 GIE 位的状态无关。 如果 GIE 位被清零 (禁止),器件将继续执行 SLEEP 指令之后的指令。如果 GIE 位被置 1 (允许),器件执 行 SLEEP 指令 之后 的指 令,然后 跳转 到中 断地 址 (0004h)处执行。如果不想执行 SLEEP 指令以后的指 令,用户应该在 SLEEP 指令后面放置一条 NOP 指令。 注: 从休眠状态唤醒 可以通过下列任一事件将器件从休眠状态唤醒: 1. 2. 3. MCLR 引脚上的外部复位输入。 看门狗定时器唤醒 (如果 WDT 使能) RB0/INT/SEG0 引脚中断、 PORTB 电平变化中 断或外设中断。 第一种事件会导致器件复位。 后两种事件被认为是程 序执行的延续。 STATUS 寄存器中的 TO 和 PD 位用于 确定器件复位的原因。PD 位在上电时被置 1,而在执行 SLEEP 指令时被清零。 TO 位在发生 WDT 唤醒时被清 零。 DS41250F_CN 第 236 页 如果禁止了全局中断 (GIE 被清零),但 有任一中断源将其中断允许位以及相应的 中断标志位置 1,器件将立即从休眠状态唤 醒。SLEEP 指令执行完成。 器件从休眠状态唤醒时, WDT 都将被清零,而与唤醒 的原因无关。 16.5.2 使用中断唤醒 当禁止全局中断 (GIE 被清零)时,并且有任一中断源 将其中断允许位和中断标志位置 1,将会发生下列某一 事件: • 如果在执行 SLEEP 指令之前产生了中断,那么 SLEEP 指令将被作为一条 NOP 指令执行。因此, WDT 及其预分频器和后分频器 (如果使能)将不 会被清零,并且 TO 位将不会被置 1,同时 PD 位 也不会被清零。 • 如果在执行 SLEEP 指令期间或之后产生了中断, 那么器件将被立即从休眠模式唤醒。 SLEEP 指令 将在唤醒之前执行完毕。因此, WDT 及其预分频 器和后分频器 (如果使能)将被清零,并且 TO 位将被置 1,同时 PD 也将被清零。 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 即使在执行 SLEEP 指令之前,检查到标志位为 0,它也 可能在 SLEEP 指令执行完毕之前被置 1。要确定是否执 行了 SLEEP 指令,可以测试 PD 位。 如果 PD 位置 1, 则说明 SLEEP 指令被作为一条 NOP 指令执行了。 在执行 SLEEP 指令之前,必须先执行一条 CLRWDT 指 令,来确保将 WDT 清零。 图 16-10: 通过中断将器件从休眠模式唤醒 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 OSC1(1) TOST(2) CLKOUT(4) INT 引脚 INTF 标志位 (INTCON 寄存器) 中断响应延时 (3) GIE 位 (INTCON 寄存器) 处理器处于 休眠状态 指令流 PC 取指 执行 指令 注 1: 2: 3: 4: PC Inst(PC) = Sleep Inst (PC -1) PC + 1 PC +2 PC +2 Inst (PC + 1) Inst (PC +2) Sleep Inst (PC + 1) PC +2 空周期 0004h 0005h Inst (0004h) Inst (0005h) 空周期 Inst (0004h) 假定为 XT、 HS 或 LP 振荡模式。 TOST = 1024 TOSC (图形未按比例绘制)。 该延时不适用于 EC 和 RC 振荡模式。 假设 GIE = 1。 在这种情形下,器件被唤醒后,将跳转到 0004h 处执行代码。 如果 GIE = 0,程序将继续执行。 在 XT、 HS、 LP 或 EC 振荡模式下,不输出 CLKOUT 信号,在此处仅作为时序参考。 2007 Microchip Technology Inc. DS41250F_CN 第 237 页 PIC16F913/914/916/917/946 16.6 代码保护 图 16-11: 典型的在线串行编程连接方式 如果代码保护位未编程,可以通过使用 ICSP 读片上程 序存储器来进行校验。 注: 当 关 闭 代 码 保 护 时,将 擦 除 整 个 数 据 EEPROM 和闪存程序存储器的内容。请参 见 “PIC16F91X/946 Memory Programming Specification” (DS41244)了解更多详细 信息。 至正常 连接 外部 连接器 信号 * PIC® MCU +5V VDD 0V VSS RE3/MCLR/VPP RB6/ICSPCLK/ ICDCK/SEG14 RB7/ICSPDATA/ ICDDAT/SEG13 VPP 16.7 ID 地址单元 有 4 个存储单元 (2000h-2003h)被指定为 ID 地址单 元,供用户存储校验和或其他代码标识号。在正常执行 过程中不能访问这些单元,但可在编程 / 校验模式中对 它们进行读写。只可使用 ID 地址单元的低 7 位。 16.8 在线串行编程 可在最终应用电路中对 PIC16F91X/946 单片机进行串 行编程。编程可以简单地通过一根时钟线、一根数据线 和以下三种其他的线完成: • 电源线 • 接地线 • 编程电压线 CLK 数据 I/O * * * 至正常 连接 * 电气隔离器件 (根据需要而定) 这允许用户使用未编程器件制造电路板,仅在产品交付 前才对单片机进行编程。从而可以将最新版本的固件或 者定制固件烧写到单片机中。 通过 将 RB7/ICSPDAT/ICDDAT/SEG13 和 RB6/ICSPCLK/ICDCK/SEG14 引脚保持为低电平,并 同时将 MCLR (VPP)引脚从 VIL 升到 VIHH,可将器件 置于编程/校验模式。请参见“PIC16F91X/946 Memory Programming Specification”(DS41244)了解更多信 息。RB7 变为编程数据线,而 RB6 则变为编程时钟线。 在该模式下, RB7 和 RB6 均为施密特触发输入方式。 复位后,为将器件置于编程 / 校验模式,程序计数器 (PC)指向地址单元 0000h。 然后向器件发送一条 6 位 命令。 根据具体命令是执行装载还是读取操作,可向器 件提供一个 14 位的程序数据或是从器件读取一个 14 位 的 程 序 数 据。关 于 串 行 编 程 的 完 整 细 节,请 参 见 “PIC16F91X/946 Memory Programming Specification” (DS41244)。 图 16-11 给出了典型的在线串行编程连接方式。 DS41250F_CN 第 238 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 16.9 16.9.1 在线调试器 当配置字寄存器中的调试位被编程为 0 时,将使能在线 调试功能。该功能允许使用 MPLAB® ICD 2 实现简单的 调试功能。当单片机使能了此功能后,某些资源将不再 具有常规功能。详情请见表 16-9。 用户应用必须具有支持 ICD 功能的必需的电 路。一 旦 使 能 了 I C D 电 路 , RB6/ICSPCLK/ICDCK/SEG14 和 RB7/ICSPDAT/ICDDAT/SEG13 引脚的常规器 件引脚功能将不能被使用。ICD 电路使用这些 引脚与 ICD2 外部调试器通信。 注: ICD 引脚排列 PIC16F91X/946 系列器件具有片内在线调试器电路, 以及用于在线调试器的引脚。这样就不必对ICD器件采 用独立的管芯或封装。ICD 器件的引脚排列与器件相同 (见第 1.0 节 “器件概述”以获取完整的引脚及其排列 形式的说明)。表 16-9 给出了 28 和 40 引脚器件中与 ICD 相关的引脚的位置和功能。 更多信息可参见 Microchip 网站(www.microchip.com) 上的 “Using MPLAB® ICD 2”(DS51265)。 表 16-9: PIC16F91X/946-ICD 引脚说明 引脚数 PDIP TQFP 名称 类型 上拉 说明 PIC16F914/917 PIC16F913/916 PIC16F946 40 28 24 ICDDATA TTL — 在线调试器双向数据引脚 39 27 23 ICDCLK ST — 在线调试器双向时钟引脚 1 1 36 MCLR/VPP HV — 编程电压 11,32 20 10, 19, 38, 51 VDD P — 电源 12,31 8,19 9, 20, 41, 56 VSS P — 地 — — 26 AVDD P — 模拟电源 — — 25 AVSS P — 模拟地 图注: TTL = TTL 输入缓冲器, ST = 施密特触发器输入缓冲器, P = 电源, HV = 高电压 2007 Microchip Technology Inc. DS41250F_CN 第 239 页 PIC16F913/914/916/917/946 注: DS41250F_CN 第 240 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 17.0 指令集综述 PIC16F913/914/916/917/946 指令集具有高度正交性, 分为以下三种基本类型: 表 17-1: 操作码字段说明 字段 f 说明 文件寄存器地址 (0x00 到 0x7F) • 字节操作类指令 • 位操作类指令 • 立即数和控制操作类指令 W 工作寄存器 (累加器) b 8 位文件寄存器内的位地址 k 立即数字段、常数或标号 每条 PIC16 指令都是 14 位字的,由操作码(指定指令类 型)和一个或多个操作数(指定指令操作)组成。图 17-1 中 显示了每种指令类型的格式,而表 17-1 总结了各种操作码 字段。 x 忽略 (= 0 或 1)。 汇编器将生成 x = 0 的代码。为了与所有的 Microchip 软件工具兼容,建议使用这种形式。 d 目标寄存器选择; d = 0:结果保存至 W, d = 1:结果保存至文件寄存器 f。 默认值为 d = 1。 表 17-2列出了所有可被 MPASMTM 汇编器识别的指令。 对于字节操作类指令,“f”为代表文件寄存器的指示 符,而 “d”为代表目标寄存器的指示符。 文件寄存器 指示符指定指令将会使用哪一个文件寄存器。 目标寄存器指 示符指定操作结 果的存放位置。 如果 “d”为 0,结果存放在 W 寄存器中。 如果 “d”为 1, 结果存放在指令指定的文件寄存器中。 对于位操作类指令,“b”为代表位域的指示符,用于选 择操作所影响的位,而 “f”则代表相应位所在的文件 寄存器的地址。 对于立即数和控制操作类指令, “k”代表一个 8 位或 11 位常数或立即数值。 每个指令周期由 4 个振荡周期组成。因此,对于频率为 4 MHz 的振荡器,其正常的指令执行时间为 1 µs。所有 指令都在一个指令周期内执行,除非条件测试为真或者 指令执行改变了程序计数器的值。当上述特殊情况发生 时,指令的执行就需要两个指令周期,第二个周期执行 一条 NOP 指令。 所有指令示例均使用 “0xhh”格式表示一个十六进制 数,其中 “h”表示一个十六进制数字。 17.1 PC 程序计数器 TO 超时溢出位 C DC Z PD 半进位 零标志位 掉电位 图 17-1: 指令的一般格式 面向字节的文件寄存器操作类指令 13 8 7 6 0 操作码 d f (文件寄存器地址) d = 0 表示结果存入 W 寄存器 d = 1 表示结果存入文件寄存器 f f = 7 位文件寄存器地址 面向位的文件寄存器操作类指令 13 10 9 7 6 0 操作码 b(位地址 )f(文件寄存器地址) 读 - 修改 - 写操作 所有需要使用文件寄存器的指令都会执行读-修改-写 (Read-Modify-Write,R-M-W)操作。根据指令或目标 寄存器指示符 “d”读寄存器、修改数据和保存结果。 即使是写一个寄存器的指令也将先对该寄存器进行读操 作。 进位 b = 3 位位地址 f = 7 位文件寄存器地址 立即数和控制操作类指令 通用 13 8 例如, CLRF PORTA 指令会读 PORTA,清零所有数据 位,然后将结果写回到 PORTA。该示例可能意外清除 将 RBIF 标志位置 1 的条件。 7 0 K(立即数) 操作码 K = 8 位立即数值 仅 CALL 和 GOTO 指令 13 11 0 10 操作码 K(立即数) K = 11 位立即数值 2007 Microchip Technology Inc. DS41250F_CN 第 241 页 PIC16F913/914/916/917/946 表 17-2: PIC16F913/914/916/917/946 指令集 14 位操作码 助记符, 操作数 说明 周期数 MSb LSb 受影响的 状态位 注 面向字节的文件寄存器操作 ADDWF ANDWF CLRF CLRW COMF DECF DECFSZ INCF INCFSZ IORWF MOVF MOVWF NOP RLF RRF SUBWF SWAPF XORWF f, d f, d f - f, d f, d f, d f, d f, d f, d f, d f - f, d f, d f, d f, d f, d BCF BSF BTFSC BTFSS f, b f, b f, b f, b ADDLW ANDLW CALL CLRWDT GOTO IORLW MOVLW RETFIE RETLW RETURN SLEEP SUBLW XORLW k k k - k k k - k - - k k W 和 f 相加 W 和 f 作逻辑与运算 将 f 清零 将 W 寄存器清零 f 取反 f 递减 1 f 递减 1,为 0 则跳过 f 递增 1 f 递增 1,为 0 则跳过 W 和 f 作逻辑或运算 将 f 的内容传送到目标寄存器 将 W 的内容传送到 f 空操作 对 f 执行带进位的左移 对 f 执行带进位的右移 f 减去 W 将 f 中的两个半字节进行交换 W 和 f 作逻辑异或运算 1 1 1 1 1 1 1(2) 1 1(2) 1 1 1 1 1 1 1 1 1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0111 0101 0001 0001 1001 0011 1011 1010 1111 0100 1000 0000 0000 1101 1100 0010 1110 0110 dfff dfff lfff 0xxx dfff dfff dfff dfff dfff dfff dfff lfff 0xx0 dfff dfff dfff dfff dfff ffff ffff ffff xxxx ffff ffff ffff ffff ffff ffff ffff ffff 0000 ffff ffff ffff ffff ffff 01 01 01 01 00bb 01bb 10bb 11bb bfff bfff bfff bfff ffff ffff ffff ffff 11 11 10 00 10 11 11 00 11 00 00 11 11 111x 1001 0kkk 0000 1kkk 1000 00xx 0000 01xx 0000 0000 110x 1010 kkkk kkkk kkkk 0110 kkkk kkkk kkkk 0000 kkkk 0000 0110 kkkk kkkk kkkk kkkk kkkk 0100 kkkk kkkk kkkk 1001 kkkk 1000 0011 kkkk kkkk C, DC, Z Z Z Z Z Z Z Z Z C C C, DC, Z Z 1, 2 1, 2 2 1, 2 1, 2 1, 2, 3 1, 2 1, 2, 3 1, 2 1, 2 1, 2 1, 2 1, 2 1, 2 1, 2 面向位的文件寄存器操作 将 f 中的某位清零 将 f 中的某位置 1 检测 f 中的某位,为 0 则跳过 检测 f 中的某位,为 1 则跳过 1 1 1 (2) 1 (2) 1, 2 1, 2 3 3 立即数和控制操作 注 立即数和 W 相加 立即数与 W 作逻辑与运算 调用子程序 清零看门狗定时器 跳转到地址 立即数与 W 作逻辑或运算 将立即数传送到 W 从中断返回 返回并将立即数传送到 W 从子程序返回 进入待机模式 从立即数中减去 W 的内容 立即数与 W 作逻辑异或运算 1 1 2 1 2 1 1 2 2 2 1 1 1 C, DC, Z Z TO, PD Z TO, PD C, DC, Z Z 1: 当 I/O 寄存器用自身内容修改自身时 (例如:MOVF GPIO, 1),使用的值是出现在引脚上的值。例如,如果将一引脚 配置为输入,虽然其对应数据锁存器中的值为 1,但此时若有外部器件将该引脚驱动为低电平,则被写回的数据值将是 0。 2: 当对 TMR0 寄存器 (并且 d = 1)执行这条指令时,如果将预分频器分配给 Timer0 模块,则将其清零。 3: 如果程序计数器 (PC)被修改或条件测试为真,则执行该指令需要两个周期。第二个周期执行一条 NOP 指令。 DS41250F_CN 第 242 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 17.2 指令说明 ADDLW 立即数和 W 相加 语法: [ 标号 ] ADDLW 操作数: 0 ≤ k ≤ 255 操作: (W) + k → (W) k 受影响的状态位: C、 DC 和 Z 说明: 将 W 寄存器的内容与 8 位立即数 k 相加,结果存入 W 寄存器。 BCF 将 f 中的某位清零 语法: [ 标号 ] BCF 操作数: 0 ≤ f ≤ 127 0≤b≤7 操作: 0 → (f<b>) 受影响的状态位: 无 说明: 将寄存器 f 中的位 b 清零 BSF 将 f 中的某位置 1 语法: [ 标号 ] BSF ADDWF W 和 f 相加 语法: [ 标号 ] ADDWF 操作数: 0 ≤ f ≤ 127 d ∈ [0,1] 操作数: 0 ≤ f ≤ 127 0≤b≤7 操作: (W) + (f) → ( 目标寄存器 ) 操作: 1 → (f<b>) f,d 受影响的状态位: C、 DC 和 Z f,b f,b 受影响的状态位: 无 说明: 将 W 寄存器的内容与 f 寄存器的 内容相加。 如果 d 等于 0,结果 存放在 W 寄存器中。如果 d 为 1,结果存回寄存器 f。 说明: 将寄存器 f 的位 b 置 1。 ANDLW 立即数与 W 作逻辑与运算 BTFSC 检测 f 中的某位,为 0 则跳过 语法: [ 标号 ] ANDLW 语法: [ 标号 ] BTFSC f,b 操作数: 0 ≤ k ≤ 255 操作数: 操作: (W) .AND. (k) → (W) 0 ≤ f ≤ 127 0≤b≤7 操作: 如果 (f<b>) = 0 则跳过 k 受影响的状态位: Z 说明: ANDWF 将 W 寄存器的内容与 8 位立即数 k 作逻辑与运算。结果存入 W 寄 存器。 W 和 f 作逻辑与运算 语法: [ 标号 ] ANDWF 操作数: 0 ≤ f ≤ 127 d ∈ [0,1] 操作: (W) .AND. (f) → ( 目标寄存器 ) 受影响的状态位: 无 说明: 如果 f 寄存器中的位 b 为 1,则执 行下一条指令。 如果 f 寄存器中的位 b 为 0,则丢 弃下一条指令,转而执行一条 NOP 指令,从而使该指令成为双周期指 令。 f,d 受影响的状态位: Z 说明: W 寄存器与 f 寄存器作逻辑与运 算。如果 d 等于 0,结果存放在 W 寄存器中。如果 d 为 1,结果 存回寄存器 f。 2007 Microchip Technology Inc. DS41250F_CN 第 243 页 PIC16F913/914/916/917/946 BTFSS 检测 f 中的某位,为 1 则跳过 CLRWDT 清零看门狗定时器 语法: [ 标号 ] BTFSS f,b 语法: [ 标号 ] CLRWDT 操作数: 0 ≤ f ≤ 127 0≤b<7 操作数: 无 操作: 00h → WDT 0 → WDT 预分频器, 1 → TO 1 → PD 受影响的状态位: TO 和 PD 说明: CLRWDT指令复位看门狗定时器。 还将复位 WDT 的预分频器。状 态位 TO 和 PD 置 1。 操作: 如果 (f<b>) = 1 则跳过 受影响的状态位: 无 说明: 如果 f 寄存器中的位 b 为 0,则执 行下一条指令。 如果位 b 为 1,则丢弃下一条指 令,转而执行一条 NOP 指令,从 而使该指令成为双周期指令。 CALL 调用子程序 COMF f 取反 语法: [ 标号 ] CALL k 语法: [ 标号 ] COMF 操作数: 0 ≤ k ≤ 2047 操作数: 操作: (PC)+ 1→ TOS, k → PC<10:0>, (PCLATH<4:3>) → PC<12:11> 0 ≤ f ≤ 127 d ∈ [0,1] 操作: (f) → ( 目标寄存器 ) 受影响的状态位: 无 说明: 调用子程序。首先,将返回地址 (PC + 1)压入堆栈。11 位立即 数地址被装入 PC 位 <10:0>。将 PCLATH 装入 PC 的高位。CALL 是双周期指令 CLRF 将 f 清零 f,d 受影响的状态位: Z 说明: 将寄存器 f 的内容取反。如果 d 为 0,结果存入 W 寄存器。如果 d 为 1,结果存回寄存器 f。 DECF f 递减 1 语法: [ 标号 ] CLRF 语法: [ 标号 ] DECF f,d 操作数: 0 ≤ f ≤ 127 操作数: 操作: 00h → (f) 1→Z 0 ≤ f ≤ 127 d ∈ [0,1] 操作: (f) - 1 → ( 目标寄存器 ) f 受影响的状态位: Z 说明: 寄存器 f 的内容被清零, Z 位置 1。 CLRW 将 W 寄存器清零 语法: [ 标号 ] CLRW 操作数: 无 操作: 00h → (W) 1→Z 受影响的状态位: Z 说明: 将 f 的内容递减 1。如果 d 为 0, 结果存入 W 寄存器。如果 d 为 1,结果存回寄存器 f。 受影响的状态位: Z 说明: W 寄存器被清零,全零标志位 (Z)置 1。 DS41250F_CN 第 244 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 DECFSZ f 递减 1,为 0 则跳过 INCFSZ f 递增 1,为 0 则跳过 语法: [ 标号 ] DECFSZ f,d 语法: [ 标号 ] 操作数: 0 ≤ f ≤ 127 d ∈ [0,1] 操作数: 0 ≤ f ≤ 127 d ∈ [0,1] 操作: (f) - 1 → ( 目标寄存器 ) ; 结果为 0 时跳过 操作: (f) + 1 → ( 目标寄存器 ), 结果为 0 时跳过 受影响的状态位: 无 INCFSZ f,d 受影响的状态位: 无 说明: 将寄存器 f 的内容递减 1。如果 d 为 0,结果存入 W 寄存器。如果 d 为 1,结果存回寄存器 f。 如果结果为 1,则顺序执行指令。 如果结果为 0,则执行 NOP,从而 使该指令变为双周指令。 说明: 将寄存器 f 的内容递增 1。如果 d 为 0,结果存入 W 寄存器。如果 d 为 1,结果存回寄存器 f。 如果结果为 1,则顺序执行指令。 如果结果为 0,则执行 NOP,从而 使该指令变为 双周指令。 GOTO 跳转到指定地址 IORLW 立即数与 W 作逻辑或运算 语法: [ 标号 ] 语法: [ 标号 ] 操作数: 0 ≤ k ≤ 2047 操作数: 0 ≤ k ≤ 255 操作: k → PC<10:0> PCLATH<4:3> → PC<12:11> 操作: (W) .OR. k → (W) GOTO k 受影响的状态位: 无 受影响的状态位: Z 说明: 将 W 寄存器的内容与 8 位立即数 k 作逻辑或运算。结果存入 W 寄 存器。 IORWF W 和 f 作逻辑或运算 语法: [ 标号 ] 0 ≤ f ≤ 127 d ∈ [0,1] 操作数: 0 ≤ f ≤ 127 d ∈ [0,1] (f) + 1 → ( 目标寄存器 ) 操作: (W) .OR. (f) → ( 目标寄存器 ) 说明: GOTO 是无条件跳转指令。11 位立 即数地址被装入 PC 位 <10:0>。 PC 高位从 PCLATH<4:3> 装入。 GOTO 是双周期指令。 INCF f 递增 1 语法: [ 标号 ] 操作数: 操作: INCF f,d 受影响的状态位: Z 说明: IORLW k 将寄存器 f 的内容递增 1。如果 d 为 0,结果存入 W 寄存器。如果 d 为 1,结果存回寄存器 f。 2007 Microchip Technology Inc. IORWF f,d 受影响的状态位: Z 说明: W 寄存器与 f 寄存器作逻辑或运 算。 如果 d 为 0,结果存入 W 寄 存器。如果 d 为 1,结果存回 寄存器 f。 DS41250F_CN 第 245 页 PIC16F913/914/916/917/946 MOVF 将 f 的内容传送到目标寄存器 MOVWF 将 W 的内容传送到 f 语法: [ 标号 ] 语法: [ 标号 ] MOVF f,d MOVWF 操作数: 0 ≤ f ≤ 127 d ∈ [0,1] 操作数: 0 ≤ f ≤ 127 操作: (W) → (f) 操作: (f) → ( 目标寄存器 ) 受影响的状态位: 无 受影响的状态位: Z 说明: 根据 d 的状态,将寄存器 f 的内容 送入目标寄存器。如果 d 为 0,目 标寄存器为 W 寄存器。如果 d 为 1,目标寄存器为寄存器 f。由于状 态标志位 Z 受到指令结果的影响, d = 1 可用于检测文件寄存器。 指令字数: 1 指令周期数: 1 示例: MOVF 说明: 将 W 寄存器中的数据传送到寄存 器 f。 指令字数: 1 指令周期数: 1 示例: MOVW F FSR 寄存器中 将立即数传送到 W NOP 空操作 语法: [ 标号 ] 语法: [ 标号 ] 操作数: 0 ≤ k ≤ 255 操作数: 无 操作: k → (W) 操作: 空操作 MOVLW k 受影响的状态位: 无 说明: 空操作。 指令字数: 1 指令字数: 1 指令周期数: 1 指令周期数: 1 示例: MOVLW 执行指令后 W DS41250F_CN 第 246 页 0x4F 0x4F NOP 受影响的状态位: 无 将 8 位立即数 k 装入 W 寄存器。 “无关位”被汇编为 0。 示例: 0xFF 0x4F 1 MOVLW 说明: OPTION 执行指令前 OPTION = W = 执行指令后 OPTION = W = FSR, 0 执行指令后 W = 的值 Z = f NOP 0x5A = 0x5A 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 RETFIE 从中断返回 RETLW 返回并将立即数传送到 W 语法: [ 标号 ] 语法: [ 标号 ] RETFIE RETLW k 操作数: 无 操作数: 0 ≤ k ≤ 255 操作: TOS → PC, 1 → GIE 操作: k → (W) ; TOS → PC 受影响的状态位: 无 受影响的状态位: 无 说明: 从中断返回。执行出栈操作,将 栈顶 (TOS)单元内容装入 PC。 通过置 1 全局中断允许位 GIE (INTCON<7>)允许中断。这是 一条双周期指令。 说明: 将 8 位立即数 k 装入 W 寄存器。 栈顶内容 (返回地址)被装入程 序计数器。这是一条双周期指 令。 指令字数: 1 指令字数: 1 指令周期数: 2 指令周期数: 2 示例: 示例: RETFIE 中断后 PC = GIE = TOS 1 TABLE CALL TABLE;W contains table ;offset value • ;W now has table value • • ADDWF PC ;W = offset RETLW k1 ;Begin table RETLW k2 ; • • • RETLW kn ; End of table 执行指令前 W 执行指令后 W RETURN 从子程序返回 语法: [ 标号 ] 操作数: 无 操作: TOS → PC = 0x07 = k8 的值 RETURN 受影响的状态位: 无 说明: 2007 Microchip Technology Inc. 从子程序返回。执行出栈操作,将 栈顶 (TOS)单元内容装入程序 计数器。这是一条双周期指令。 DS41250F_CN 第 247 页 PIC16F913/914/916/917/946 RLF 对 f 执行带进位的左移 语法: [ 标号 ] 操作数: 0 ≤ f ≤ 127 d ∈ [0,1] 操作: 参见下面的说明 受影响的状态位: C 说明: 将寄存器 f 的内容连同进位标志位 一起左移 1 位。如果 d 为 0,结果 存入 W 寄存器。如果 d 为 1,结 果存回寄存器 f。 RLF C 指令字数: 1 指令周期数: 1 示例: f,d SLEEP 进入休眠模式 语法: [ 标号 ] SLEEP 操作数: 无 操作: 00h → WDT, 0 → WDT 预分频器, 1 → TO, 0 → PD 受影响的状态位: TO 和 PD 说明: 寄存器 f RLF 掉电状态位 PD 清零。超时状态 位 TO 位置 1。看门狗定时器及 其预分频器被清零。 振荡器停振,处理器进入休眠模 式。 REG1,0 执行指令前 REG1 C = = 1110 0110 0 = = = 1110 0110 1100 1100 1 执行指令后 REG1 W C RRF 对 f 执行带进位的右移 SUBLW 从立即数中减去 W 的内容 语法: [ 标号 ] 语法: 0 ≤ f ≤ 127 d ∈ [0,1] [ 标号 ] SUBLW k 操作数: 操作数: 0 ≤ k ≤ 255 操作: 参见下面的说明 操作: k - (W) → (W) RRF f,d 受影响的状态位: C、 DC 和 Z 受影响的状态位: C 说明: 将寄存器 f 的内容连同进位标志位 一起右移 1 位。如果 d 为 0,结果 存入 W 寄存器。 如果 d 为 1,结 果存回寄存器 f。 C DS41250F_CN 第 248 页 寄存器 f 说明: 从 8 位立即数 k 中减去 W 寄存器的 内容 (采用二进制补码方法进行运 算)。结果存入 W 寄存器。 C=0 W>k C=1 W≤k DC = 0 W<3:0> > k<3:0> DC = 1 W<3:0> ≤ k<3:0> 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 SUBWF f 减去 W XORLW 立即数与 W 作逻辑异或运算 语法: [ 标号 ] SUBWF f,d 语法: [ 标号 ] XORLW k 操作数: 0 ≤ f ≤ 127 d ∈ [0,1] 操作数: 0 ≤ k ≤ 255 (f) - (W) → ( 目标寄存器 ) 操作: (W) .XOR. k → (W) 操作: 受影响的状态位: Z 受影响的状态位: C、 DC 和 Z 说明: 说明: 将 W 寄存器的内容与 8 位立即数 k 作逻辑异或运算。结果存入 W 寄存器。 从寄存器 f 中减去 W 寄存器的内容 (采用二进制补码方法进行运算)。 如果 d 为 0,结果存入 W 寄存器。 如果 d 为 1,结果存回寄存器 f。 C=0 W>f C= 1 W≤f DC = 0 W<3:0> > f<3:0> DC = 1 W<3:0> ≤ f<3:0> SWAPF 将 f 中的两个半字节进行交换 XORWF W 和 f 作逻辑异或运算 语法: [ 标号 ] SWAPF f,d 语法: [ 标号 ] XORWF 操作数: 0 ≤ f ≤ 127 d ∈ [0,1] 操作数: 0 ≤ f ≤ 127 d ∈ [0,1] 操作: (f<3:0>) → ( 目标寄存器 <7:4>), (f<7:4>) → ( 目标寄存器 <3:0>) 操作: (W) .XOR. (f) → ( 目标寄存器 ) 受影响的状态位: 无 说明: 将寄存器 f 的高半字节和低半字节 交换。如果 d 为 0,结果存入 W 寄存器。如果 d 为 1,结果存回寄 存器 f。 2007 Microchip Technology Inc. f,d 受影响的状态位: Z 说明: 将 W 寄存器的内容与 f 寄存器的 内容作逻辑异或运算。 如果 d 等 于 0,结果存放在 W 寄存器中。 如果 d 为 1,结果存回寄存器 f。 DS41250F_CN 第 249 页 PIC16F913/914/916/917/946 注: DS41250F_CN 第 250 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 18.0 开发支持 一系列硬件及软件开发工具对 PIC® 单片机提供支持: • 集成开发环境 - MPLAB® IDE 软件 • 汇编器 / 编译器 / 链接器 - MPASMTM 汇编器 - MPLAB C18 和 MPLAB C30 C 编译器 - MPLINKTM 目标链接器 / MPLIBTM 目标库管理器 - MPLAB ASM30 汇编器 / 链接器 / 库 • 模拟器 - MPLAB SIM 软件模拟器 • 仿真器 - MPLAB ICE 2000 在线仿真器 - MPLAB REAL ICE™ 在线仿真器 • 在线调试器 - MPLAB ICD 2 • 器件编程器 - PICSTART® Plus 开发编程器 - MPLAB PM3 器件编程器 - PICkit™ 2 开发编程器 • 低成本演示和开发板及评估工具包 18.1 MPLAB 集成开发环境软件 MPLAB IDE 软件为 8/16 位单片机市场提供了前所未有 的易 于使 用的 软件 开发 平台。 MPLAB IDE 是基 于 Windows® 操作系统的应用软件,包括: • 一个包含所有调试工具的图形界面 - 模拟器 - 编程器 (单独销售) - 仿真器 (单独销售) - 在线调试器 (单独销售) • 具有彩色上下文代码显示的全功能编辑器 • 多项目管理器 • 内容可直接编辑的可定制式数据窗口 • 高级源代码调试 • 可视化器件初始化程序,便于进行寄存器的初始化 • 鼠标停留在变量上进行查看的功能 • 通过拖放把变量从源代码窗口拉到观察窗口 • 丰富的在线帮助 • 集成了可选的第三方工具,如 HI-TECH 软件 C 编 译器和 IAR C 编译器 MPLAB IDE 可以让您: • 编辑源文件 (汇编语言或 C 语言) • 点击一次即可完成汇编 (或编译)并将代码下载 到 PIC MCU 仿真器和模拟器工具中 (自动更新所 有项目信息) • 可使用如下各项进行调试: - 源文件 (汇编语言或 C 语言) - 混合汇编语言和 C 语言 - 机器码 MPLAB IDE 在单个开发范例中支持使用多种调试工 具,包括从成本效益高的模拟器到低成本的在线调试 器,再到全功能的仿真器。这样缩短了用户升级到更加 灵活而功能更强大的工具时的学习时间。 2007 Microchip Technology Inc. DS41250F_CN 第 251 页 PIC16F913/914/916/917/946 18.2 MPASM 汇编器 MPASM 汇编器是全功能通用宏汇编器,适用于所有的 PIC MCU。 MPASM 汇编器可生成用于 MPLINK 目标链接器的可重 定位目标文件、Intel® 标准 HEX 文件、详细描述存储器 使用状况和符号参考的 MAP 文件、包含源代码行及生 成机器码的绝对 LST 文件以及用于调试的 COFF 文件。 MPASM 汇编器具有如下特征: • • • • 集成在 MPLAB IDE 项目中 用户定义的宏可简化汇编代码 对多用途源文件进行条件汇编 允许完全控制汇编过程的指令 18.3 MPLAB C18 和 MPLAB C30 C 编译器 MPLAB C18 和 MPLAB C30 代码开发系统是完全的 ANSI C 编译器,分别适用于 Microchip 的 PIC18 和 PIC24 系列单片机及 dsPIC30F 和 dsPIC33 系列数字信 号控制器。这些编译器可提供其他编译器并不具备的强 大的集成功能和出众的代码优化能力,且使用方便。 为便于源代码调试,编译器提供了针对 MPLAB IDE 调 试器的优化符号信息。 18.4 MPLINK 目标链接器 / MPLIB 目标库管理器 MPLINK 目标链接器包含了由 MPASM 汇编器、MPLAB C18 C 编译器产生的可重定位目标。通过使用链接器脚 本中的指令,它还可链接预编译库中的可重定位目标。 18.5 MPLAB ASM30 汇编器、 链接器和库管理器 MPLAB ASM30 汇编器为 dsPIC30F 器件提供转换自符 号汇编语言的可重定位机器码。 MPLAB C30 C 编译器 使用该汇编器生成目标文件。汇编器产生可重定位目标 文件之后,可将这些目标文件存档,或与其他可重定位 目标文件和存档链接以生成可执行文件。该汇编器有如 下显著特征: • • • • • • 支持整个 dsPIC30F 指令集 支持定点数据和浮点数据 命令行界面 丰富的指令集 灵活的宏语言 MPLAB IDE 兼容性 18.6 MPLAB SIM 软件模拟器 MPLAB SIM软件模拟器在指令级对PIC MCU和dsPIC® DSC 进行模拟,使得用户可以在 PC 主机的环境下进行 代码开发。对于任何给定的指令,用户均可对数据区进 行检查或修改,并通过各种触发机制来产生激励。可以 将各寄存器的情况记录在文件中,以便进行进一步地运 行时分析。跟踪缓冲器和逻辑分析器的显示使模拟器还 能记录和跟踪程序的执行、 I/O 的动作、大部分的外设 及内部寄存器的状况。 MPLAB SIM 软件模拟器完全支持使用 MPLAB C18 和 MPLAB C30 C 编译器以及MPASM和MAPLAB ASM30 汇编器的符号调试。该软件模拟器可用于在硬件实验室 环境外灵活地开发和调试代码,是一款完美且经济的软 件开发工具。 MPLIB目标库管理器管理预编译代码库文件的创建和修 改。当从源文件调用库中的一段子程序时,只有包含此 子程序的模块被链接到应用中。这样可使大型库在许多 不同应用中被高效地利用。 目标链接器 / 库管理器具有如下特征: • 高效地连接单个的库而不是许多小文件 • 通过将相关的模块组合在一起来增强代码的可维护 性 • 只要列出、替换、删除和抽取模块,便可灵活地创 建库 DS41250F_CN 第 252 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 18.7 MPLAB ICE 2000 高性能在线仿真器 MPLAB ICE 2000 在线仿真器旨在为产品开发工程师提 供一整套用于 PIC 单片机的设计工具。 MPLAB ICE 2000 在线仿真器的软件控制由 MPLAB 集成开发环境平 台提供,它允许在单一环境下进行编辑、编译、下载以 及源代码调试。 MPLAB ICE 2000 是全功能仿真器系统,它具有增强的 跟踪、触发和数据监控功能。处理器模块可插拔,使系 统可轻松进行重新配置以适应各种不同处理器的仿真需 要。MPLAB ICE 2000 在线仿真器的架构允许对其进行 扩展以支持新的 PIC 单片机。 MPLAB ICE 2000 在线仿真器系统设计为一款实时仿真 系统,该仿真系统具备通常只有昂贵的开发工具中才有 的高级功能。选择 PC 平台和 Microsoft® Windows® 32 位操作系统可使这些功能在一个简单而统一的应用中得 到很好的利用。 18.8 MPLAB REAL ICE 在线仿真器系统 MPLAB REAL ICE在线仿真器系统是Microchip针对其闪 存 DSC 和 MCU 器件而推出的新一代高速仿真器。结合 MPLAB 集成开发环境(IDE)所具有的易于使用且功能 强大的图形用户界面,该仿真器可对 PIC® 闪存 MCU 和 dsPIC® DSC进行调试和编程。IDE是随每个工具包一起 提供的。 MPLAB REAL ICE 探针通过高速 USB 2.0 接口与设计工 程师的 PC 相连,并利用与常用 MPLAB ICD 2 系统兼容 的连接器 (RJ11)或新型抗噪声、高速低压差分信号 (LVDS)互连电缆 (CAT5)与目标板相连。 18.9 MPLAB ICD 2 在线调试器 Microchip 的在线调试器 MPLAB ICD 2 是一款功能强大 而成本低廉的运行时开发工具,通过 RS-232 或高速 USB 接口与 PC 主机相连。该工具基于闪存 PIC MCU, 可用于开发本系列及其他 PIC MCU 和 dsPIC DSC。 MPLAB ICD 2 使用了闪存器件中内建的在线调试功能。 该功能结合 Microchip 的在线串行编程(In-Circuit Serial ProgrammingTM, ICSPTM)协议,可在 MPLAB 集成开 发环境的图形用户界面上提供成本效益很高的在线闪存 调试。这使设计人员可通过设置断点、单步运行以及对 变量、CPU 状态以及外设寄存器进行监视的方法实现源 代码的开发和调试。其全速运行特性可对硬件和应用进 行实时测试。 MPLAB ICD 2 还可用作某些 PIC 器件的 开发编程器。 18.10 MPLAB PM3 器件编程器 MPLAB PM3 器件编程器是一款通用的、符合 CE 规范 的器件编程器,其可编程电压设置在 VDDMIN 和 VDDMAX 之间时可靠性最高。它有一个用来显示菜单和错误信息 的大 LCD 显示器(128 x 64),以及一个支持各种封装 类型的可拆卸模块化插槽装置。编程器标准配置中带有 一根 ICSPTM 电缆。在单机模式下, MPLAB PM3 器件 编程器不必与 PC 相连即可对 PIC 器件进行读取、验证 和编程。在该模式下它还可设置代码保护。 MPLAB PM3 通过 RS-232 或 USB 电缆连接到 PC 主机上。 MPLAB PM3 具备高速通信能力以及优化算法,可对存 储器很大的器件进行快速编程,它还采用 SD/MMC 卡 用作文件存储及数据安全应用。 可通过 MPLAB IDE 下载将来版本的固件,对 MPLAB REAL ICE 进行现场升级。在即将推出的 MPLAB IDE 版 本中,会支持许多新器件,还将增加一些新特性,如软 件断点和汇编代码跟踪等。在同类仿真器中, MPLAB REAL ICE 的优势十分明显:低成本、高速仿真、实时变 量监视、跟踪分析、复杂断点、耐用的探针接口及较长 (长达 3 米)的互连电缆。 2007 Microchip Technology Inc. DS41250F_CN 第 253 页 PIC16F913/914/916/917/946 18.11 PICSTART Plus 开发编程器 18.13 演示、开发和评估板 PICSTART Plus开发编程器是一款易于使用而成本低廉 的原型编程器。它通过 COM (RS-232)端口与 PC 相 连。 MPLAB 集成开发环境软件使得该编程器的使用简 便、高效。PICSTART Plus 开发编程器支持采用 DIP 封 装的大部分 PIC 器件,其引脚数最多可达 40 个。引脚 数更多的器件,如 PIC16C92X 和 PIC17C76X,可通过 连接一个转接插槽来获得支持。PICSTART Plus 开发编 程器符合 CE 规范。 有许多演示、开发和评估板可用于各种 PIC MCU 和 dsPIC DSC,实现对全功能系统的快速应用开发。大多 数的演示、开发和评估板都有实验布线区,供用户添加 定制电路;还有应用固件和源代码,用于测试和修改。 18.12 PICkit 2 开发编程器 PICkit™ 2 开发编程器是一个低成本编程器;对于某些 选定闪存器件,它也是一个调试器,通过其易于使用的 接口可对众多 Microchip 的低档、中档和 PIC18F 系列 闪存单片机进行编程。 PICkit 2 入门工具包中包含一个 有实验布线区的开发板、十二堂系列课程、软件和 HITECH 的 PICC™ Lite C 编译器,有助于用户快速掌握 PIC® 单片机的使用。这一工具包为使用 Microchip 功能 强大的中档闪存系列单片机进行编程、评估和应用开 发,提供了所需的一切。 DS41250F_CN 第 254 页 这些板支持多种功能部件,包括 LED、温度传感器、开 关、扬声器、 RS-232 接口、 LCD 显示器、电位计和附 加 EEPROM 存储器。 演示和开发板可用于教学环境,在实验布线区设计定制 电路,从而掌握各种单片机应用。 除了 PICDEM™ 和 dsPICDEM™ 演示 / 开发板系列电路 外, Microchip 还有一系列评估工具包和演示软件, 适 用于模拟滤波器设计、 KEELOQ® 数据安全产品 IC、 CAN、IrDA®、PowerSmart 电池管理、SEEVAL® 评估 系统、 Σ−∆ ADC、流速传感器,等等。 有 关 演 示、开 发 和 评 估 工 具 包 的 完 整 列 表,请 查 阅 Microchip 公司网页 (www.microchip.com)。 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 19.0 电气规范 绝对最大值 (†) 环境温度.............................................................................................................................................. -40° 至 +125°C 储存温度........................................................................................................................................... -65°C 至 +150°C VDD 相对于 VSS 的电压 ...................................................................................................................... -0.3V 至 +6.5V MCLR 相对于 Vss 的电压 .................................................................................................................. -0.3V 至 +13.5V 其他引脚相对于 VSS 的电压 .................................................................................................. -0.3V 至 (VDD + 0.3V) 总功耗 (1) ........................................................................................................................................................ 800 mW VSS 引脚的最大输出电流................................................................................................................................... 95 mA VDD 引脚的最大输入电流 .................................................................................................................................. 95 mA 输入钳位电流 IIK (VI < 0 或 VI > VDD).......................................................................................................................±20 mA 输出钳位电流 IOK (Vo < 0 或 Vo >VDD)....................................................................................................................±20 mA 任一 I/O 引脚的最大输出灌电流 ........................................................................................................................ 25 mA 任一 I/O 引脚的最大输出拉电流 ........................................................................................................................ 25 mA 所有端口的最大拉电流 ...................................................................................................................................... 90 mA 所有端口的最大灌电流 ...................................................................................................................................... 90 mA 注 1:功耗按如下公式计算:PDIS = VDD x {IDD – ∑ IOH} + ∑ {(VDD – VOH) x IOH} + ∑(VOL x IOL)。 2: PIC16F913/916 器件未实现 PORTD 和 PORTE。 † 注:如果器件的工作条件超过 “绝对最大值”,就可能会对器件造成永久性损坏。上述值仅为运行条件极大值,我 们建议不要使器件在该规范规定的范围以外运行。器件长时间工作在最大值条件下,其稳定性会受到影响。 2007 Microchip Technology Inc. DS41250F_CN 第 255 页 PIC16F913/914/916/917/946 PIC16F913/914/916/917/946 电压—频率关系图, -40°C ≤ TA ≤ +125°C 图 19-1: 5.5 5.0 VDD(V) 4.5 4.0 3.5 3.0 2.5 2.0 0 8 10 20 频率(MHz) 注 1: 阴影区域表示允许的电压和频率的组合。 图 19-2: HFINTOSC 的频率精度与器件 VDD 和温度之间的关系 125 ± 5% 温度(°C) 85 ± 2% 60 ± 1% 25 0 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 VDD(V) DS41250F_CN 第 256 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 19.1 直流特性:PIC16F913/914/916/917/946-I (工业级) PIC16F913/914/916/917/946-E (扩展级 ) 标准工作条件 (除非另外声明) 工作温度 -40°C ≤ TA ≤ +85°C (工业级) -40°C ≤ TA ≤ +125°C (扩展级) 直流特性 参数 编号 符号 特性 最小 典型 最大 值 值† 值 VDD 电源电压 2.0 2.0 3.0 4.5 D002* VDR RAM 数据保持电压 (1) D003 VPOR VDD 起始电压确保能够产 生内部上电复位信号 D004* SVDD VDD 上升速率确保能够 产生内部上电复位信号 D001 D001C D001D 注 单位 条件 — — — — 5.5 5.5 5.5 5.5 V V V V FOSC < = 8 MHz:HFINTOSC 和 EC 模式 FOSC < = 4 MHz FOSC < = 10 MHz FOSC < = 20 MHz 1.5 — — V 器件工作在休眠模式下 — VSS — V 详情请见第 16.2.1 节 “上电复位 (POR)”。 0.05 — — V/ms 详情请见第 16.2.1 节 “上电复位 (POR)”。 * 这些参数仅为特征值,未经测试。 † 除非另外声明,否则 “典型值”栏中的数据均为 5.0V、 25°C 条件下的值。这些参数仅作为设计参考,未 经测试。 1:该电压是休眠模式下保证不丢失 RAM 数据的最小 VDD。 2007 Microchip Technology Inc. DS41250F_CN 第 257 页 PIC16F913/914/916/917/946 19.2 直流特性: 标准工作条件 (除非另外声明) 工作温度 -40°C ≤ TA ≤ +85°C (工业级) -40°C ≤ TA ≤ +125°C (扩展级) 直流特性 参数 编号 D010 器件特性 供电电流 (IDD) (1, 2) D011* D012 D013* D014 D015 D016* D017 D018 D019 注 PIC16F913/914/916/917/946-I (工业级) PIC16F913/914/916/917/946-E (扩展级) 最小值 典型值 最大值 † 条件 单位 VDD — 13 19 µA 2.0 — 22 30 µA 3.0 — 33 60 µA 5.0 — 180 250 µA 2.0 — 290 400 µA 3.0 — 490 650 µA 5.0 — 280 380 µA 2.0 — 480 670 µA 3.0 — 0.9 1.4 mA 5.0 — 170 295 µA 2.0 — 280 480 µA 3.0 — 470 690 µA 5.0 — 290 450 µA 2.0 — 490 720 µA 3.0 — 0.85 1.3 mA 5.0 — 8 20 µA 2.0 — 16 40 µA 3.0 — 31 65 µA 5.0 — 416 520 µA 2.0 — 640 840 µA 3.0 — 1.13 1.6 mA 5.0 — 0.65 0.9 mA 2.0 — 1.01 1.3 mA 3.0 — 1.86 2.3 mA 5.0 — 340 580 µA 2.0 — 550 900 µA 3.0 — 0.92 1.4 mA 5.0 — 3.8 4.7 mA 4.5 — 4.0 4.8 mA 5.0 注 FOSC = 32 kHz LP 振荡模式 FOSC = 1 MHz XT 振荡模式 FOSC = 4 MHz XT 振荡模式 FOSC = 1 MHz EC 振荡模式 FOSC = 4 MHz EC 振荡模式 FOSC = 31 kHz LFINTOSC 模式 FOSC = 4 MHz HFINTOSC 模式 FOSC = 8 MHz HFINTOSC 模式 FOSC = 4 MHz EXTRC 模式 (3) FOSC = 20 MHz HS 振荡模式 * 这些参数仅为特征值,未经测试。 † 除非另外声明,否则 “典型值”栏中的数据均为 5.0V、 25°C 条件下的值。这些参数仅作为设计参考,未 经测试。 1: 在正常的工作模式下,所有 IDD 测量的测试条件为:OSC1 = 外部方波,满幅;所有 I/O 引脚均为三态, 拉至 VDD ; MCLR = VDD ;禁止 WDT。 2: 供电电流主要随工作电压和频率而变化。其他因素,如 I/O 引脚负载和开关速率、振荡器类型、内部代码 执行模式和温度也会影响电流消耗。 3: 对于 RC 振荡器配置,不包括流经 REXT 的电流。流经该电阻的电流可以由公式 IR = VDD/2REXT (mA) 计算得出,其中 REXT 的单位为 kΩ。 DS41250F_CN 第 258 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 19.3 直流特性:PIC16F913/914/916/917/946-I (工业级) 标准工作条件 (除非另外声明) 工作温度 -40°C ≤ TA ≤ +85°C (工业级) 直流特性 参数 编号 器件特性 D020 掉电基本电流 (IPD) D021 D022A D022B D023 D024 D025* D026 D027 注 最小值 (2) 典型值 最大值 † 条件 单位 VDD 注 WDT、欠压复位、比较器、VREF 和 T1OSC 均被禁止 — 0.05 1.2 µA 2.0 — 0.15 1.5 µA 3.0 — 0.35 1.8 µA 5.0 — 150 500 nA 3.0 -40°C ≤ TA ≤ +25°C — 1.0 2.2 µA 2.0 WDT 电流 (1) — 2.0 4.0 µA 3.0 — 3.0 7.0 µA 5.0 — 42 60 µA 3.0 — 85 122 µA 5.0 — 22 28 µA 2.0 — 25 35 µA 3.0 — 33 45 µA 5.0 — 32 45 µA 2.0 — 60 78 µA 3.0 — 120 160 µA 5.0 — 30 36 µA 2.0 — 45 55 µA 3.0 — 75 95 µA 5.0 — 39 47 µA 2.0 — 59 72 µA 3.0 — 98 124 µA 5.0 — 2.0 5.0 µA 2.0 — 2.5 5.5 µA 3.0 — 3.0 7.0 µA 5.0 — 0.30 1.6 µA 3.0 — 0.36 1.9 µA 5.0 欠压复位电流 (1) PLVD 电流 比较器电流 (1),使能两个比较器 CVREF 电流 (1) (高电压范围) CVREF 电流 (1) (低电压范围) T1OSC 电流 (1), 32.768 kHz A/D 电流 (1),未转换 * 这些参数仅为特征值,未经测试。 † 除非另外声明,否则 “典型值”栏中的数据均为 5.0V、 25°C 条件下的值。这些参数仅作为设计参考,未 经测试。 1:外设电流是基本 IDD 或 IPD 电流以及相应外设使能时消耗的额外电流的总和。外设 ∆ 电流可以从该电流中 减去基本 IDD 或 IPD 电流得到。在计算总电流消耗时应使用最大值。 2:休眠模式下的掉电电流与振荡器类型无关。掉电电流是在器件休眠时,所有 I/O 引脚处于高阻态并连接到 VDD 时测得的。 2007 Microchip Technology Inc. DS41250F_CN 第 259 页 PIC16F913/914/916/917/946 19.4 直流特性: PIC16F913/914/916/917/946-E (扩展级) 标准工作条件 (除非另外声明) 工作温度 -40°C ≤ TA ≤ +125°C (扩展级) 直流特性 参数 编号 器件特性 D020E 掉电基本电流 (IPD) D021E D022E D022B D023E D024E D025E* D026E D027E 注 最小值 (2) 典型值 最大值 † 条件 单位 VDD 注 WDT、欠压复位、比较器、 VREF 和 T1OSC 均被禁止 — 0.05 9 µA 2.0 — 0.15 11 µA 3.0 — 0.35 15 µA 5.0 — 1 28 µA 2.0 — 2 30 µA 3.0 — 3 35 µA 5.0 — 42 65 µA 3.0 — 85 127 µA 5.0 — 22 48 µA 2.0 — 25 55 µA 3.0 — 33 65 µA 5.0 — 32 45 µA 2.0 — 60 78 µA 3.0 — 120 160 µA 5.0 — 30 70 µA 2.0 — 45 90 µA 3.0 — 75 120 µA 5.0 — 39 91 µA 2.0 — 59 117 µA 3.0 — 98 156 µA 5.0 — 3.5 18 µA 2.0 — 4 21 µA 3.0 — 5 24 µA 5.0 — 0.30 12 µA 3.0 — 0.36 16 µA 5.0 WDT 电流 (1) 欠压复位电流 (1) PLVD 电流 比较器电流 (1),使能两个比较器 CVREF 电流 (1) (高电压范围) CVREF 电流 (1) (低电压范围) T1OSC 电流 (1), 32.768 kHz A/D 电流 (1),未转换 * 这些参数仅为特征值,未经测试。 † 除非另外声明,否则 “典型值”栏中的数据均为 5.0V、 25°C 条件下的值。这些参数仅作为设计参考,未经 测试。 1: 外设电流是基本 IDD 或 IPD 电流以及相应外设使能时消耗的额外电流的总和。外设 ∆ 电流可以从该电流中减 去基本 IDD 或 IPD 电流得到。在计算总电流消耗时应使用最大值。 2: 休眠模式下的掉电电流与振荡器类型无关。掉电电流是在器件休眠时,所有 I/O 引脚处于高阻态并连接到 VDD 时测得的。 DS41250F_CN 第 260 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 19.5 PIC16F913/914/916/917/946-I (工业级) PIC16F913/914/916/917/946-E (扩展级) 直流特性: 标准工作条件 (除非另外声明) 工作温度 -40°C ≤ TA ≤ +85°C (工业级) -40°C ≤ TA ≤ +125°C (扩展级) 直流特性 参数 编号 符号 VIL 特性 最小值 典型值 † 最大值 单位 条件 输入低电压 I/O 端口: D030 带 TTL 缓冲器 D030A D031 0.8 V 4.5V ≤ VDD ≤ 5.5V 0.15 VDD V 2.0V ≤ VDD ≤ 4.5V 2.0V ≤ VDD ≤ 5.5V Vss — 0.2 VDD V — 0.2 VDD V OSC1 (XT 模式) VSS — 0.3 V OSC1 (HS 模式) VSS — 0.3 VDD V MCLR, OSC1 (RC 模式) (1) D033 VIH — — VSS 带施密特触发缓冲器 D032 D033A Vss Vss 输入高电压 — I/O 端口: D040 带 TTL 缓冲器 D040A D041 V 4.5V ≤ VDD ≤ 5.5V VDD V 2.0V ≤ VDD ≤ 4.5V 2.0V ≤ VDD ≤ 5.5V — VDD V — VDD V OSC1 (XT 模式) 1.6 — VDD V OSC1 (HS 模式) 0.7 VDD — VDD V OSC1 (RC 模式) 0.9 VDD — VDD V — ± 0.1 ±1 µA D043 IIL VDD — 0.8 VDD MCLR D043B — 0.25 VDD + 0.8 0.8 VDD 带施密特触发缓冲器 D042 D043A 2.0 (注 1) 输入泄漏电流 (2) D060 I/O 端口 D061 MCLR(3) — ± 0.1 ±5 µA VSS ≤ VPIN ≤ VDD D063 OSC1 — ± 0.1 ±5 µA VSS ≤ VPIN ≤ VDD, XT、 HS 和 LP 振荡器配置 IPUR PORTB 弱上拉电流 50 250 400 µA VDD = 5.0V, VPIN = VSS VOL 输出低电压 (5) — — 0.6 V IOL = 8.5 mA, VDD = 4.5V (工 业级) VDD – 0.7 — — V IOH = -3.0 mA, VDD = 4.5V (工业级) D070* D080 I/O 端口 VOH D090 注 VSS ≤ VPIN ≤ VDD, 引脚处于高阻态 输出高电压 (5) I/O 端口 * † 1: 2: 3: 这些参数仅为特征值,未经测试。 除非另外声明,否则 “典型值”栏中的数据均为 5.0V、 25°C 条件下的值。这些参数仅作为设计参考,未经测试。 在 RC 振荡器配置中, OSC1/CLKIN 引脚被配置为施密特触发器输入。在 RC 模式下,建议不要使用外部时钟。 负电流定义为引脚的拉电流。 MCLR 引脚上的泄漏电流主要取决于施加在该引脚上的电压值。规定电压值为正常工作条件下的电压值。在不同的输入 电压下可能测得更高的泄漏电流。 4: 更多信息,请参见第 13.0 节 “数据 EEPROM 和闪存程序存储器控制”。 5: 包括 CLKOUT 模式下的 OSC2。 2007 Microchip Technology Inc. DS41250F_CN 第 261 页 PIC16F913/914/916/917/946 19.5 PIC16F913/914/916/917/946-I (工业级) PIC16F913/914/916/917/946-E (扩展级) (续) 直流特性: 标准工作条件 (除非另外声明) 工作温度 -40°C ≤ TA ≤ +85°C (工业级) -40°C ≤ TA ≤ +125°C (扩展级) 直流特性 参数 编号 符号 特性 最小值 典型值 † 最大值 单位 条件 当外部时钟用于驱动 OSC1 时处 于 XT、 HS 和 LP 模式 输出引脚上的容性负载规范 D101* COSC2 D101A* CIO OSC2 引脚 — — 15 pF 所有 I/O 引脚 — — 50 pF 100K 1M — E/W 数据 EEPROM 存储器 D120 ED 字节耐久性 D120A ED 字节耐久性 10K 100K — E/W D121 VDRW 用于读 / 写操作的 VDD VMIN — 5.5 V ms -40°C ≤ TA ≤ +85°C +85°C ≤ TA ≤ +125°C 使用 EECON1 进行读写 VMIN = 最小工作电压 D122 TDEW 擦 / 写周期 — 5 6 D123 TRETD 数据保存时间 40 —- — 年 D124 TREF 刷新前的总擦 / 写次数 (4) 1M 10M — E/W -40°C ≤ TA ≤ +85°C D130 EP 电池耐久性 10K 100K — E/W -40°C ≤ TA ≤ +85°C D130A ED 电池耐久性 1K 10K — E/W +85°C ≤ TA ≤ +125°C D131 VPR 用于读操作的 VDD VMIN — 5.5 V VMIN = 最小工作电压 D132 VPEW 用于擦 / 写操作的 VDD 4.5 — 5.5 V D133 TPEW 擦 / 写周期 — — 3 ms D134 TRETD 数据保存时间 40 — — 年 假设没有违反其他规范 闪存程序存储器 注 假设没有违反其他规范 * † 1: 2: 3: 这些参数仅为特征值,未经测试。 除非另外声明,否则 “典型值”栏中的数据均为 5.0V、 25°C 条件下的值。这些参数仅作为设计参考,未经测试。 在 RC 振荡器配置中, OSC1/CLKIN 引脚被配置为施密特触发器输入。在 RC 模式下,建议不要使用外部时钟。 负电流定义为引脚的拉电流。 MCLR 引脚上的泄漏电流主要取决于施加在该引脚上的电压值。规定电压值为正常工作条件下的电压值。在不同的输入 电压下可能测得更高的泄漏电流。 4: 更多信息,请参见第 13.0 节 “数据 EEPROM 和闪存程序存储器控制”。 5: 包括 CLKOUT 模式下的 OSC2。 DS41250F_CN 第 262 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 19.6 散热考虑 标准工作条件 (除非另外声明) 工作温度 -40°C ≤ TA ≤ +125°C 参数 编号 符号 特性 TH01 θJA 结点到环境的热阻 TH02 θJC 结点到外壳的热阻 TH03 TH04 TH05 TJ 结温 PD 功耗 PINTERNAL 内部功耗 TH06 TH07 PI/O PDER 注 I/O 功耗 降额功耗 典型值 单位 条件 60.0 80.0 90.0 27.5 47.2 46.0 24.4 77.0 31.4 24.0 24.0 20.0 24.7 14.5 20.0 24.4 150 — — °C/W °C/W °C/W °C/W °C/W °C/W °C/W °C/W °C/W °C/W °C/W °C/W °C/W °C/W °C/W °C/W °C W W — — W W 28 引脚 PDIP 封装 28 引脚 SOIC 封装 28 引脚 SSOP 封装 28 引脚 QFN 6x6 mm 封装 40 引脚 PDIP 封装 44 引脚 TQFP 封装 44 引脚 QFN 8x8mm 封装 64 引脚 TQFP 封装 28 引脚 PDIP 封装 28 引脚 SOIC 封装 28 引脚 SSOP 封装 28 引脚 QFN 6x6 mm 封装 40 引脚 PDIP 封装 44 引脚 TQFP 封装 44 引脚 QFN 8x8mm 封装 64 引脚 TQFP 封装 用于计算降额功耗 PD = PINTERNAL + PI/O PINTERNAL = IDD x VDD (注 1) PI/O = S (IOL * VOL) + S (IOH * (VDD - VOH)) PDER = (TJ - TA)/qJA (注 2 和 3) 1: IDD 为单独运行芯片而不驱动输出引脚上的任何负载的电流。 2: TA = 环境温度。 3: 最大允许功耗是绝对最大总功耗和降额功耗 (PDER)中较低的值。 2007 Microchip Technology Inc. DS41250F_CN 第 263 页 PIC16F913/914/916/917/946 19.7 时序参数符号 可根据以下任一格式创建时序参数符号: 1. TppS2ppS 2. TppS T F T 时间 CCP1 osc OSC1 ck CLKOUT rd RD cs CS rw RD 或 WR di SDI sc SCK do SDO ss SS dt 数据输入 t0 T0CKI io I/O 端口 t1 T1CKI mc MCLR wr WR 频率 小写字母 (pp)及其含意: pp cc 大写字母及其含意: S F 下降 P 周期 H 高 R 上升 I 无效 (高阻态) V 有效 L 低 Z 高阻态 图 19-3: 负载条件 负载条件 引脚 CL VSS 图注: CL = 50 pF (适用于所有引脚) 15 pF (适用于 OSC2 输出引脚) DS41250F_CN 第 264 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 19.8 交流特性:PIC16F913/914/916/917/946 (工业级,扩展级) 图 19-4: 时钟时序 Q4 Q1 Q2 Q3 Q4 Q1 OSC1/CLKIN OS02 OS04 OS04 OS03 OSC2/CLKOUT (LP、XT 和 HS 模式) OSC2/CLKOUT (CLKOUT 模式) 表 19-1: 时钟振荡器时序要求 标准工作条件 (除非另外声明) 工作温度 -40°C ≤ TA ≤ +125°C 参数 编号 OS01 符号 FOSC 特性 外部 CLKIN 频率 (1) 振荡器频率 (1) OS02 TOSC 外部 CLKIN 周期 (1) 振荡器周期 (1) OS03 OS04* 指令周期 (1) TCY TosH, 外部 CLKIN 高电平时间, TosL 外部 CLKIN 低电平时间 OS05* TosR, 外部 CLKIN 上升时间, TosF 外部 CLKIN 下降时间 注 最小值 典型值 † 最大值 DC DC DC DC — 0.1 1 DC 27 250 50 50 — 250 50 250 200 2 100 20 0 0 0 — — — — 32.768 — — — — — — — 30.5 — — — TCY — — — — — — 37 4 20 20 — 4 20 4 ∞ ∞ ∞ ∞ — 10,000 1,000 — DC — — — ∞ ∞ ∞ 单位 kHz MHz MHz MHz kHz MHz MHz MHz µs ns ns ns µs ns ns ns ns µs ns ns ns ns ns 条件 LP 振荡模式 XT 振荡模式 HS 振荡模式 EC 振荡模式 LP 振荡模式 XT 振荡模式 HS 振荡模式 RC 振荡器模式 LP 振荡模式 XT 振荡模式 HS 振荡模式 EC 振荡模式 LP 振荡模式 XT 振荡模式 HS 振荡模式 RC 振荡器模式 TCY = 4/FOSC LP 振荡器 XT 振荡器 HS 振荡器 LP 振荡器 XT 振荡器 HS 振荡器 * 这些参数仅为特征值,未经测试。 † 除非另外声明,否则 “典型值”栏中的数据均为 5V、 25°C 条件下的值。这些参数仅作为设计参考,未经测试。 1: 指令周期 (TCY)等于输入振荡器时基周期的四倍。所有规范值均基于器件在标准工作条件下执行代码时对应特定 振荡器类型的特征数据。 超出这些规范值可能导致振荡器运行不稳定和 / 或电流消耗超出预期值。所有器件在测试 “最小值”时,都在 OSC1 引脚上连接了外部时钟。当使用了外部时钟输入时,所有器件的 “最大值”周期时限 为 “DC”(没有时钟)。 2007 Microchip Technology Inc. DS41250F_CN 第 265 页 PIC16F913/914/916/917/946 表 19-2: 振荡器参数 标准工作条件 (除非另外声明) 工作温度 -40°C ≤ TA ≤ +125°C 参数 编号 OS06 OS07 OS08 符号 特性 TWARM 运行时内部振荡器切换延时 (3) 故障保护采样时钟周期 (1) TSC HFOSC 经过校准的内部 HFINTOSC 频率 (2) OS09* LFOSC 未经校准的内部 LFINTOSC 频率 OS10* TIOSC HFINTOSC 振荡器从休眠模式 唤醒的起振时间 ST 注 频率 典型值 最小值 最大值 † 容差 单位 — — — 2 — — 21 — ms 条件 TOSC 最慢时钟 LFINTOSC/64 ±1% 7.92 8.0 8.08 MHz VDD = 3.5V, 25°C ±2% 7.84 8.0 8.16 MHz 2.5V ≤ VDD ≤ 5.5V, 0°C ≤ TA ≤ +85°C ±5% 7.60 8.0 8.40 MHz 2.0V ≤ VDD ≤ 5.5V, -40°C ≤ TA ≤ +85°C (工业级), -40°C ≤ TA ≤ +125°C (扩展级) — 15 31 45 kHz — 5.5 12 24 µs VDD = 2.0V, -40°C 至 +85°C — 3.5 7 14 µs VDD = 3.0V, -40°C 至 +85°C — 3 6 11 µs VDD = 5.0V, -40°C 至 +85°C * 这些参数仅为特征值,未经测试。 † 除非另外声明,否则 “典型值”栏中的数据均为 5.0V、 25°C 条件下的值。这些参数仅作为设计参考,未经测 试。 1: 指令周期 (TCY)等于输入振荡器时基周期的四倍。所有规范值均基于器件在标准工作条件下执行代码时对应特 定振荡器类型的特征数据。 超出这些规范值可能导致振荡器运行不稳定和 / 或电流消耗超出预期值。 所有器件在 测试 “最小值”时,都在 OSC1 引脚上连接了外部时钟。当使用了外部时钟输入时,所有器件的 “最大值”周 期时限为 “DC”(没有时钟)。 2: 为了确保振荡器频率的容差, 必须尽量靠近器件在 VDD 和 VSS 之间连接去耦电容。建议并联一个 0.1 µF 和 0.01 µF 的电容。 3: 仅供设计参考。 DS41250F_CN 第 266 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 图 19-5: CLKOUT 和 I/O 时序 周期 写 取 读 执行 Q4 Q1 Q2 Q3 FOSC OS12 OS11 OS20 OS21 CLKOUT OS19 OS18 OS16 OS13 OS17 I/O 引脚 (输入) OS14 OS15 I/O 引脚 (输出) 新值 旧值 OS18,OS19 表 19-3: CLKOUT 和 I/O 时序参数 标准工作条件 (除非另外声明) 工作温度 -40°C ≤ TA ≤ +125°C 参数 编号 OS11 OS12 符号 特性 最小值 典型 最大值 单位 值† 条件 TOSH2CKL FOSC↑ 至 CLKOUT↓ 的时间 (1) — — 70 ns VDD = 5.0V TOSH2CKH 的时间 (1) — — 72 ns VDD = 5.0V FOSC↑ 至 CLKOUT↑ 至端口输出有效的时间 (1) OS13 TCKL2IOV CLKOUT↓ OS14 TIOV2CKH 在 CLKOUT↑ 前端口输入有效的时间 — — 20 ns TOSC + 200 ns — — ns OS15* TOSH2IOV FOSC↑ (Q1 周期)至端口输出有效的 时间 — 50 70 ns VDD = 5.0V OS16 TOSH2IOI FOSC↑ (Q2 周期)至端口输入无效的 时间 ( I/O 输入保持时间) 50 — — ns VDD = 5.0V OS17 TIOV2OSH 端口输入有效至 FOSC↑ (Q2 周期) 的时间 (I/O 输入建立时间) 20 — — ns OS18 TIOR 端口输出上升时间 (2) — — 15 40 72 32 ns VDD = 2.0V VDD = 5.0V OS19 TIOF 端口输出下降时间 (2) — — 28 15 55 30 ns VDD = 2.0V VDD = 5.0V OS20* TINP INT 引脚输入高电平时间或低电平时间 25 — — ns OS21* TRAP PORTA 电平变化中断信号的新输入电 平时间 TCY — — ns (1) * 这些参数仅为特征值,未经测试。 † 除非另外声明,否则 “典型值”栏中的数据均为 5V、 25°C 条件下的值。 注 1: 测量是在 RC 模式下进行的,其中 CLKOUT 输出为 4 x TOSC。 2: 包含 CLKOUT 模式下的 OSC2。 2007 Microchip Technology Inc. DS41250F_CN 第 267 页 PIC16F913/914/916/917/946 图 19-6: 复位、看门狗定时器、振荡器起振定时器和上电延时定时器时序 VDD MCLR 30 内部 上电复位 33 PWRT 延时 32 OSC 起振时间 内部复位 (1) 看门狗定时器 复位 (1) 31 34 34 I/O 引脚 1: 低电平有效。 注 图 19-7: 欠压复位时序和特性 VDD VBOR + VHYST VBOR (器件处于欠压复位状态) 37 (器件不处于欠压复位状态) 33* 欠压复位 (如果 PWRTE = 1) 欠压复位 (如果 PWRTE = 0) DS41250F_CN 第 268 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 表 19-4: 复位、看门狗定时器、振荡器起振定时器、上电延时定时器以及欠压复位参数 标准工作条件 (除非另外声明) 工作温度 -40°C ≤ TA ≤ +125°C 参数 编号 符号 特性 最小值 典型值 † 最大值 单位 条件 30 TMCL MCLR 脉冲宽度 (低电平) 2 5 — — — — µs µs VDD = 5, -40°C 至 +85°C VDD = 5V 31 TWDT 看门狗定时器超时周期 (无预 分频器) 10 10 16 16 29 31 ms ms VDD = 5V, -40°C 至 +85°C VDD = 5V 32 TOST 振荡器起振定时器周期 (1, 2) — 1024 — TOSC (注 3) ms 33* TPWRT 上电延时定时器周期 40 65 140 34* TIOZ MCLR 低电平或看门狗定时器 复位引起的 I/O 高阻态时间 — — 2.0 µs 35 VBOR 欠压复位电压 2.0 2.0 — — 2.2 2.25 V V 36* VHYST 欠压复位迟滞 — 50 — mV 37* TBOR 100 — — µs 注 欠压复位最小检测周期 -40°C 至 +85°C (注 4) -40°C 至 +125°C (注 4) VDD ≤ VBOR * 这些参数仅为特征值,未经测试。 † 除非另外声明,否则 “典型值”栏中的数据均为 5V、 25°C 条件下的值。这些参数仅作为设计参考,未经 测试。 1: 指令周期 (TCY)等于输入振荡器时基周期的四倍。所有规范值均基于器件在标准工作条件下执行代码时 对应特定振荡器类型的特征数据。超出这些规范值可能导致振荡器运行不稳定和 / 或电流消耗超出预期值。 所有器件在测试 “最小值”时,都在 OSC1 引脚上连接了外部时钟。当使用了外部时钟输入时,所有器件 的 “最大值”周期时限为 “DC”(没有时钟)。 2: 仅供设计参考。 3: 慢时钟周期。 4: 为了确保振荡器频率的容差,必须尽量靠近器件在 VDD 和 VSS 之间连接去耦电容。建议并联一个 0.1 µF 和 0.01 µF 的电容。 2007 Microchip Technology Inc. DS41250F_CN 第 269 页 PIC16F913/914/916/917/946 图 19-8: TIMER0 和 TIMER1 外部时钟时序 T0CKI 40 41 42 T1CKI 45 46 49 47 TMR0 或 TMR1 表 19-5: TIMER0 和 TIMER1 外部时钟要求 标准工作条件 (除非另外声明) 工作温度 -40°C ≤ TA ≤ +125°C 参数 编号 符号 TT0H 40* 41* TT0L 特性 T0CKI 高电平脉冲宽度 T0CKI 低电平脉冲宽度 最小值 典型值 † 最大值 单位 ns 无预分频器 0.5 TCY + 20 — — 有预分频器 10 — — ns 无预分频器 0.5 TCY + 20 — — ns 有预分频器 10 — — ns 取以下两者中 的较大值: 20 或 TCY + 40 N — — ns 42* TT0P T0CKI 周期 45* TT1H T1CKI 高电 同步,无预分频器 平时间 同步,有预分频器 异步 0.5 TCY + 20 — — ns 15 — — ns 30 — — ns T1CKI 低电 同步,无预分频器 平时间 同步,有预分频器 异步 0.5 TCY + 20 — — ns 15 — — ns 30 — — ns 同步 取以下两者中 的较大值: 30 或 TCY + 40 N — — ns 异步 60 — — ns — 32.768 — kHz 2 TOSC — 7 TOSC — 46* TT1L 47* TT1P 48 FT1 49* TCKEZTMR1 从外部时钟边沿到定时器递增的延时 * † T1CKI 输入 周期 Timer1 振荡器输入频率范围 (通过将 T1OSCEN 位置 1,使能振荡器) 条件 N = 预分频比 (2, 4, ..., 256) N = 预分频比 (1、 2、 4 和 8) 定时器处于同步工 作模式 这些参数仅为特征值,未经测试。 除非另外声明,否则 “典型值”栏中的数据均为 5V、 25°C 条件下的值。这些参数仅作为设计参考,未经测试。 DS41250F_CN 第 270 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 表 19-6: 比较器规范 标准工作条件 (除非另外声明) 工作温度 -40°C ≤ TA ≤ +125°C 参数 编号 符号 特性 最小值 典型值 † 最大值 单位 CM01 VOS 输入失调电压 — ± 5.0 ± 10 mV CM02 VCM 输入共模电压 0 — VDD – 1.5 V CM03* CMRR 共模抑制比 CM04* TRT 响应时间 下降 上升 CM05* TMC2COV 比较器模式改变到输出有效的时 间 注 +55 — — dB — 150 600 ns — 200 1000 ns — — 10 ms 备注 (VDD - 1.5)/2 (注 1) * 这些参数仅为特征值,未经测试。 † 除非另外声明,否则 “典型值”栏中的数据均为 5V、 25°C 条件下的值。这些参数仅作为设计参考,未经 测试。 1:响应时间是在比较器一个输入端的电压从 (VDD - 1.5)/2 - 100 mV 变化到 (VDD - 1.5)/2 + 20 mV 的过程中测 得的。 表 19-7: 比较器参考电压 (CVREF)规范 标准工作条件 (除非另外声明) 工作温度 -40°C ≤ TA ≤ +125°C 参数 编号 符号 特性 最小值 典型值 † 最大值 单位 备注 CV01* CLSB 步长 (2) — — VDD/24 VDD/32 — — V V 低电压范围 (VRR = 1) 高电压范围 (VRR = 0) CV02* CACC 绝对精度 — — — — ± 1/2 ± 1/2 LSb LSb 低电压范围 (VRR = 1) 高电压范围 (VRR = 0) CV03* CR 单位电阻值 (R) — 2k — Ω CST 稳定时间 (1) — — 10 ms CV04* 注 * 这些参数仅为特征值,未经测试。 † 除非另外声明,否则 “典型值”栏中的数据均为 5V、 25°C 条件下的值。这些参数仅作为设计参 考,未经测试。 1:稳定时间是在 VRR = 1 且 VR<3:0> 从 0000 跳变到 1111 时测得的。 2: 更多信息,请参见第 8.10 节 “比较器参考电压”。 2007 Microchip Technology Inc. DS41250F_CN 第 271 页 PIC16F913/914/916/917/946 表 19-8: PIC16F913/914/916/917/946 A/D 转换器 (ADC)特性 标准工作条件 (除非另外声明) 工作温度 -40°C ≤ TA ≤ +125°C 参数 编号 符号 最小值 典型值 † 特性 最大值 单位 条件 AD01 NR 分辨率 — — AD02 EIL 积分误差 — — 10 位 ±1 AD03 EDL 微分误差 — — ±1 LSb 不丢失编码至 10 位 VREF = 5.12V AD04 EOFF 失调误差 — — ±1 LSb VREF = 5.12V AD07 EGN 增益误差 — — ±1 LSb VREF = 5.12V 参考电压 (1) 2.2 2.7 — VDD VDD V VSS — VREF V — — 10 kΩ 10 — 1000 µA 在 VAIN 采集期间。 基于 VHOLD 对 VAIN 的微分。 — — 50 µA 在 A/D 转换期间。 AD06 VREF AD06A AD07 VAIN 满量程范围 AD08 ZAIN 模拟电压源推荐阻抗 AD09* IREF 注 VREF 输入电流 (1) 位 LSb VREF = 5.12V 绝对最小值以确保 1 LSb 精度 * 这些参数仅为特征值,未经测试。 † 除非另外声明,否则 “典型值”栏中的数据均为 5.0V、 25°C 条件下的值。这些参数仅作为设计参考,未 经测试。 1:ADC VREF 来自选作参考输入引脚的外部 VREF 或 VDD 引脚。 DS41250F_CN 第 272 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 表 19-9: PIC16F913/914/916/917/946 A/D 转换要求 标准工作条件 (除非另外声明) 工作温度 -40°C ≤ TA ≤ +125°C 参数 编号 符号 AD130* TAD 特性 A/D 时钟周期 A/D 内部 RC 振荡器周期 AD131 TCNV 转换时间 (不包括采集 时间) (1) 最小 值 典型值 † 最大 值 单位 1.6 — 9.0 µs 基于 TOSC, VREF ≥ 3.0V 3.0 — 9.0 µs 基于 TOSC, VREF 满量程 3.0 6.0 9.0 µs ADCS<1:0> = 11 (ADRC 模式) 当 VDD = 2.5V 时 1.6 4.0 6.0 µs 当 VDD = 5.0V 时 — 11 — TAD 将 A/D 结果寄存器中的 GO/DONE 位 设置为新的数据 11.5 — µs AD132* TACQ 采集时间 AD133* TAMP 放大器稳定时间 — — 5 µs AD134 TGO — TOSC/2 — — — TOSC/2 + TCY — — 注 Q4 至 A/D 时钟启动的时 间 条件 如果选择 RC 作为 A/D 时钟源,在 A/D 时钟开始前要加上一个 TCY 时 间,用于执行 SLEEP 指令。 * 这些参数仅为特征值,未经测试。 † 除非另外声明,否则 “典型值”栏中的数据均为 5V、 25°C 条件下的值。这些参数仅作为设计参考,未经 测试。 1:在下一个 TCY 周期读 ADRESH 和 ADRESL 寄存器。 2: 最小条件请参见第 12.3 节 “A/D 采集要求”。 2007 Microchip Technology Inc. DS41250F_CN 第 273 页 PIC16F913/914/916/917/946 图 19-9: PIC16F913/914/916/917/946 A/D 转换时序 (正常模式下) BSF ADCON0, GO AD134 1 TCY (TOSC/2(1)) AD131 Q4 AD130 A/D 时钟 9 A/D 数据 8 6 7 3 2 1 0 新数据 旧数据 ADRES 1 TCY ADIF GO 采样 DONE 停止采样 AD132 1: 如果选择 RC 作为 A/D 时钟源,在 A/D 时钟开始前要加上一个 TCY 时间,用于执行 SLEEP 指令。 注 图 19-10: PIC16F913/914/916/917/946 A/D 转换时序 (休眠模式下) BSF ADCON0,GO AD134 (TOSC/2 + TCY(1)) 1 TCY AD131 Q4 AD130 A/D 时钟 9 A/D 数据 8 7 6 GO 注 1 0 1 TCY ADIF 采样 2 新数据 旧数据 ADRES 3 DONE AD132 停止采样 1: 如果选择 RC 作为 A/D 时钟源,在 A/D 时钟开始前要加上一个 TCY 时间,用于执行 SLEEP 指令。 DS41250F_CN 第 274 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 图 19-11: USART 同步发送 (主 / 从模式)时序 RC6/TX/CK SCK/SCL/SEG9 121 121 RC7/RX/DT/ SDI/SDA/SEG8 120 122 注: 负载条件请参见图 19-3。 表 19-10: USART 同步发送要求 标准工作条件 (除非另外声明) 工作温度 -40°C ≤ TA ≤ +125°C 参数 编号 符号 120 121 122 特性 最小值 最大值 单位 TCKH2DTV 同步发送 (主和从模式) 时钟高电平到数据输出有效的时间 3.0-5.5V — 80 ns 2.0-5.5V — 100 ns TCKRF 时钟输出上升和下降时间 (主模式) 3.0-5.5V — 45 ns 2.0-5.5V — 50 ns 数据输出上升和下降时间 3.0-5.5V — 45 ns 2.0-5.5V — 50 ns 最小值 最大值 单位 10 — ns 15 — ns TDTRF 图 19-12: 条件 USART 同步接收 (主 / 从模式)时序 RC6/TX/CK SCK/SCL/SEG9 125 RC7/RX/DT/ SDI/SDA/SEG8 126 注:负载条件请参见图 19-3。 表 19-11: USART 同步接收要求 标准工作条件 (除非另外声明) 工作温度 -40°C ≤ TA ≤ +125°C 参数 编号 125 126 符号 特性 TDTV2CKL 同步接收 (主和从模式) 在 CK ↓ 之前的数据保持时间 ( 数据保持 时间) TCKL2DTL 在 CK ↓ 之后的数据保持时间 ( 数据保持 时间) 2007 Microchip Technology Inc. 条件 DS41250F_CN 第 275 页 PIC16F913/914/916/917/946 图 19-13: 捕捉 / 比较 /PWM 时序 CCP1/CCP2 (捕捉模式) 50 51 52 CCP1/CCP2 (比较模式) 53 54 注: 负载条件请参见图 19-3。 表 19-12: 捕捉 / 比较 /PWM 模块 (CCP)要求 参数 编号 符号 50* TCCL CCPx 输入低电平时 间 无预分频器 TCCH CCPx 输入高电平时 间 无预分频器 51* 特性 最小值 有预分频器 3.0-5.5V 2.0-5.5V 有预分频器 典型 最大 值† 值 单位 条件 0.5Tcy + 5 — — ns 10 — — ns 20 — — ns 0.5TCY +5 — — ns 3.0-5.5V 10 — — ns 2.0-5.5V 20 — — ns 3TCY + 40 N — — ns — 10 25 ns 52* TCCP CCPx 输入周期 53* TCCR CCPx 输出上升时间 3.0-5.5V 2.0-5.5V — 25 50 ns 54* TCCF CCPx 输出下降时间 3.0-5.5V — 10 25 ns 2.0-5.5V — 25 45 ns N = 预分频比 (1、 4 或 16) * 这些参数仅为特征值,未经测试。 † 除非另外声明,否则 “典型值”栏中的数据均为 5.0V、 25°C 条件下的值。这些参数仅作为设计参考,未 经测试 DS41250F_CN 第 276 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 表 19-13: PIC16F913/914/916/917/946 PLVD 特性: 标准工作条件 (除非另外声明) 工作温度 -40°C ≤ TA ≤ +125°C 工作电压 VDD 范围 2.0V 到 5.5V 直流特性 符号 VPLVD 最小值 典型值 最大值 (85°C) 最大值 (125°C) 单位 LVDL<2:0> = 001 1.900 2.0 2.100 2.125 V LVDL<2:0> = 010 2.000 2.1 2.200 2.225 V LVDL<2:0> = 011 2.100 2.2 2.300 2.325 V LVDL<2:0> = 100 2.200 2.3 2.400 2.425 V LVDL<2:0> = 101 3.825 4.0 4.175 4.200 V LVDL<2:0> = 110 4.025 4.2 4.375 4.400 V LVDL<2:0> = 111 4.425 4.5 4.675 4.700 V — 50 25 — — µs 特性 PLVD 电压 *TPLVDS PLVD 稳定时间 条件 VDD = 5.0V VDD = 3.0V * 这些参数仅为特征值,未经测试。 † 除非另外声明,否则 “典型值”栏中的数据均为 5.0V、 25°C 条件下的值。这些参数仅作为设计参考,未 经测试。 2007 Microchip Technology Inc. DS41250F_CN 第 277 页 PIC16F913/914/916/917/946 图 19-14: SPI 主模式时序 (CKE = 0, SMP = 0) SS 70 SCK (CKP = 0) 71 72 78 79 79 78 SCK (CKP = 1) 80 bit 6 - - - - - -1 MSb SDO LSb 75,76 SDI MSb 输入 bit 6 - - - -1 LSb 输入 74 73 注:负载条件请参见图 19-3。 图 19-15: SPI 主模式时序 (CKE = 1, SMP = 1) SS 81 SCK (CKP = 0) 71 72 79 73 SCK (CKP = 1) 80 78 SDO bit 6 - - - - - -1 MSb LSb 75,76 SDI MSb 输入 bit 6 - - - - - -1 LSb 输入 74 注:负载条件请参见图 19-3。 DS41250F_CN 第 278 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 图 19-16: SPI 从模式时序 (CKE = 0) SS 70 SCK (CKP = 0) 83 71 72 78 79 79 78 SCK (CKP = 1) 80 MSb SDO LSb bit 6 - - - - - -1 77 75,76 SDI MSb 输入 bit 6 - - - -1 LSb 输入 74 73 注:负载条件请参见图 19-3。 图 19-17: SPI 从模式时序 (CKE = 1) 82 SS SCK (CKP = 0) 70 83 71 72 SCK (CKP = 1) 80 MSb SDO bit 6 - - - -1 LSb 75,76 SDI MSb 输入 77 bit 6 - - - -1 LSb 输入 74 注:负载条件请参见图 19-3。 2007 Microchip Technology Inc. DS41250F_CN 第 279 页 PIC16F913/914/916/917/946 表 19-14: 参数 编号 SPI 模式要求 符号 特性 最小值 典型值 最大值 单位 † TCY — — ns SCK 输入高电平时间 (从模式) TCY + 20 — — ns SCK 输入低电平时间 (从模式) TCY + 20 — — ns TDIV2SCH, SDI 数据输入到 SCK 边沿的建立时间 TDIV2SCL 100 — — ns 74* TSCH2DIL, SDI 数据输入到 SCK 边沿的保持时间 TSCL2DIL 100 — — ns 75* TDOR — 10 25 ns 76* TDOF SDO 数据输出下降时间 77* TSSH2DOZ SS↑ 至 SDO 输出高阻态的时间 78* TSCR 79* TSCF 70* TSSL2SCH, SS↓ 至 SCK↓ 或 SCK↑ 输入的时间 TSSL2SCL 71* TSCH 72* TSCL 73* SDO 数据输出上升时间 3.0-5.5V 2.0-5.5V SCK 输出上升时间 (主模式) 3.0-5.5V 2.0-5.5V SCK 输出下降时间 (主模式) TSCH2DOV SCK 边沿后 SDO 数据输出有 效的时间 , TSCL2DOV 80* — 25 50 ns — 10 25 ns 10 — 50 ns — 10 25 ns — 25 50 ns — 10 25 ns 3.0-5.5V — — 50 ns 2.0-5.5V — — 145 ns 81* TDOV2SCH SDO 数据输出建立到 SCK 边沿的时间 , TDOV2SCL Tcy — — ns 82* TSSL2DOV SS↓ 沿后 SDO 数据输出有效的时间 — —- 50 ns 83* TSCH2SSH , TSCL2SSH 在 SCK 边沿之后 SS ↑ 的时间 1.5TCY + 40 — — ns 条件 * 这些参数仅为特征值,未经测试。 † 除非另外声明,否则 “典型值”栏中的数据均为 5V、 25°C 条件下的值。这些参数仅作为设计参考,未经 测试。 I2C™ 总线起始位 / 停止位时序 图 19-18: SCL 91 90 93 92 SDA 启动 状态 停止 状态 注:负载条件请参见图 19-3。 DS41250F_CN 第 280 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 I2C™ 总线起始位 / 停止位要求 表 19-15: 参数 编号 符号 90* TSU:STA 启动条件建立时间 400 kHz 模式 600 — 91* THD:STA 启动条件保持时间 400 kHz 模式 600 92* TSU:STO 停止条件建立时间 400 kHz 模式 THD:STO 停止条件保持时间 400 kHz 模式 93 * 特性 最小值 典型值 最大值 单位 条件 — ns 仅与重复启动条件相关 — — ns 这个周期之后,产生第 一个时钟脉冲 600 — — ns 600 — — ns 这些参数仅为特征值,未经测试。 图 19-19: I2C™ 总线数据时序 103 102 100 101 SCL 90 106 107 91 92 SDA 输入 109 109 110 SDA 输出 注:负载条件请参见图 19-3。 2007 Microchip Technology Inc. DS41250F_CN 第 281 页 PIC16F913/914/916/917/946 I2C™ 总线数据要求 表 19-16: 参数 编号 100* 符号 THIGH 特性 时钟高电平时间 400 kHz 模式 SSP 模块 101* TLOW 时钟低电平时间 400 kHz 模式 SSP 模块 注 最小值 最大值 单位 条件 0.6 — µs 器件工作频率不得低于 10 MHz 1.5TCY — µs 器件工作频率不得低于 10 MHz 1.3 — 1.5TCY — 102* TR SDA 和 SCL 上升时间 400 kHz 模式 20 + 0.1CB 250 ns CB 值被指定为 10-400 pF 103* TF SDA 和 SCL 下降时间 400 kHz 模式 20 + 0.1CB 250 ns CB 值被指定为 10-400 pF 90* TSU:STA 启动条件建立时间 400 kHz 模式 1.3 — µs 仅与重复启动条件相关 91* THD:STA 启动条件保持时间 400 kHz 模式 0.6 — µs 这个周期之后,产生第一个时 钟脉冲 106* THD:DAT 数据输入保持时间 400 kHz 模式 0 0.9 µs 107* TSU:DAT 数据输入建立时间 400 kHz 模式 100 — ns 92* TSU:STO 停止条件建立时间 400 kHz 模式 0.6 — µs 109* TAA 时钟输出有效时间 400 kHz 模式 — — ns (注 1) 110* TBUF 总线空闲时间 400 kHz 模式 1.3 — µs 在新的传输开始前总线必须保 持空闲的时间 CB 总线容性负载 — 400 pF (注 2) * 这些参数仅为特征值,未经测试。 1: 为避免产生意外的启动或停止条件,作为发送器的器件必须提供这个内部最小延时以补偿 SCL 下降沿的未定义区域 (最 小值 300 ns)。 2: 快速模式 (400 kHz)的 I2C 总线器件也可在标准模式 (100 kHz)的 I2C 总线系统中使用,但必须满足 TSU:DAT ≥ 250 ns 的要求。如果快速模式器件没有延长 SCL 信号的低电平时间,则必然满足此条件。如果该器件延长了 SCL 信号的低电 平时间,其下一个数据位必须输出到 SDA 线, SCL 线被释放前, TR max. + TSU:DAT = 1000 + 250 = 1250 ns (根据标准 模式 I2C 总线规范)。 DS41250F_CN 第 282 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 20.0 DC 和 AC 特性图表 本节提供的图表仅供设计参考,未经测试。 某些图表中的数据超出了规定的工作范围(即超出了规定的 VDD 范围)。这些图表仅供参考,器件只有在规定的范围下 工作才可以确保正常运行。 注: 在本注释后面的图表是基于有限数量样本的统计结果,仅供参考。 此处列出的性能特性未经测试,不作任何 担保。有些图表中列出的数据超出了规定的工作范围(例如,超出了规定的电源范围),因此不在担保范围 内。 “典型值”表示 25°C 下的平均值,“最大值”和 “最小值”分别表示在整个温度范围内的 (平均值 + 3σ) 或 (平均值 - 3σ),其中 σ 表示标准偏差。 IDD(mA) 图 20-1: 不同 VDD 时典型 IDD 与 (EC 典型 2V 3V 4V FOSC 的关系曲线 5V 5.5V 模式) EC 模式 0.277 1Mhz 0.086 0.153 0.220 0.310 2Mhz 0.150 0.2596 0.3718 0.4681 0.5236 4Mhz 0.279 0.472 0.675 0.850 0.951 4.0 6Mhz 0.382 0.635 0.903 1.135 1.269 8Mhz 典型值 : 统计平均值 0.486 (25°C0.798 1.132 1.420 1.587 时) 10Mhz 最大值 :平均值 0.589 0.961 1.360 1.706 1.905 (最差情况下的温度) + 3σ 3.5 12Mhz 0.696 1.126 1.596 2.005 2.241 (-40°C 至 125°C) 14Mhz 0.802 1.291 1.832 2.304 2.577 16Mhz 0.908 1.457 2.068 2.603 2.913 3.0 18Mhz 1.017 1.602 2.268 2.848 3.185 20Mhz 1.126 1.748 2.469 3.093 3.458 2.5 最大值2.0 1Mhz 2Mhz 4Mhz 1.5 6Mhz 8Mhz 1.0 10Mhz 12Mhz 14Mhz 0.5 16Mhz 18Mhz 20Mhz 0.0 1 MHz 2V 0.168 0.261 0.449 0.577 0.705 0.833 0.956 1.078 1.201 1.305 1.409 2 MHz 3V 0.236 0.394 0.710 0.972 1.233 1.495 1.711 1.926 2.142 2.326 2.510 4 MHz 6 MHz 4V 0.315 0.537 0.981 1.331 1.682 2.032 2.372 2.713 3.054 3.295 3.536 8 MHz 5V 0.412 0.704 1.287 1.739 2.191 2.642 3.101 3.560 4.018 4.324 4.630 10 MHz 5.5V 5V 4V 5.5V 0.452 0.780 1.435 1.950 2.465 2.979 3.506 4.032 4.558 4.887 12 MHz 3V 2V 14 MHz 16 MHz 18 MHz 20 MHz VDD(V) 2007 Microchip Technology Inc. DS41250F 第 283 页 PIC16F913/914/916/917/946 图 20-2: 不同 VDD 时最大 IDD 与 FOSC 的关系曲线 (EC 模式) 6.0 5.0 5.5V 典型值: 统计平均值(25°C 时) 最大值 : 平均值(最差情况下的温度)+ 3σ (-40°C 至 125°C) 5V IDD(mA) 4.0 4V 3.0 3V 2.0 2V 1.0 0.0 1 MHz 2 MHz 4 MHz 6 MHz 8 MHz 10 MHz 12 MHz 14 MHz 16 MHz 18 MHz 20 MHz VDD(V) 不同 VDD 时典型 IDD 与 FOSC 的关系曲线 (HS 模式) 图 20-3: HS 模式 5.0 4.5 4.0 典型值 : 统计平均值(25°C) 最大值 : 平均值(最差情况下的温度)+ 3σ (-40°C 至 125°C) 5.5V 5V 4.5V IDD(mA) 3.5 3.0 2.5 2.0 1.5 1.0 3V 3.5V 4V 4.5V 5V 5.5V 0.567660978 0.6909750.8211857610.9883470541.0462473761.119615457 1.1610564131.4069334781.6664380432.0030751092.1193190652.268818804 4V 2.883088587 3.03554863 3.23775 3.5V 3.74139 3.967407543 3V 0.5 0.0 4 MHz 10 MHz 16 MHz 20 Mhz FOSC DS41250F 第284 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 图 20-4: 不同 VDD 时最大 IDD 与 FOSC 的关系曲线 (HS 模式) HS 模式 5.5 5.0 4.5 4.0 5.5V 5V 4.5V 典型值 : 统计平均值 (25°C 时)4V 3V 3.5V 4.5V 5V 5.5V 最大值0.8868608641.0693043161.2645617521.4868166111.5076394231.520959608 : 平均值(最差情况下的温度)+ 3σ 1.6176371031.9623642592.3355493582.7630868222.8139211682.849632041 (-40°C 至 125°C) 3.8375797553.9157601913.967889512 4.685048474 4.78069621 IDD(mA) 3.5 3.0 2.5 4V 2.0 3.5V 3V 1.5 1.0 0.5 0.0 4 MHz 10 MHz 16 MHz 20 MHz FOSC 不同 FOSC 时典型 IDD 与 VDD 的关系曲线 (XT 模式) 图 20-5: XT 模式 1,200 1,000 2 2.5 典型值:统计平均值 @25°C 180.1774 235.0683 最大值:意味 (最坏情况温度) +3 382.484 (-40°C 283.7333 至 125°C) 3 3.5 4 4.5 5 5.5 典型值 : 统计平均值(25°C 时) 289.9592 337.753 385.547 436.866 488.184 554.8964 最大值 : 平均值(最差情况下的温度) + 3σ 674.6106 783.831 893.052 1033.15 481.2347 577.923 (-40°C 至 125°C) Vdd 2 2.5 3 3.5 4 4.5 5 5.5 244.8837 320.7132 396.5426 461.707 526.8719 587.642 648.412 724.0755 375.529 522.3721 669.2152 822.619 976.0232 1163.67 1351.32 IDD(uA) 800 4 MHz 600 400 1 MHz 200 0 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 VDD(V) 2007 Microchip Technology Inc. DS41250F 第 285 页 PIC16F913/914/916/917/946 图 20-6: 不同 FOSC 时最大 IDD 与 VDD 的关系曲线 (XT 模式) XT 模式 1,800 典型值: 统计平均值(25°C 时) 最大值 : 平均值(最差情况下的温度)+ 3σ (-40°C 至 125°C) 1,600 1,400 IDD(uA) 1,200 1,000 4 MHz 800 600 1 MHz 400 200 0 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 5.0 5.5 VDD(V) 图 20-7: 不同 FOSC 时典型 IDD 与 VDD 的关系曲线 (EXTRC 模式) (EXTRC 模式) 1,800 1,600 典型值 : 统计平均值(25°C) 最大值: 平均值(最差情况下的温度)+ 3σ (-40°C 至 125°C) 1,400 IDD(uA) 1,200 4 Mhz 1,000 800 1 Mhz 600 400 200 0 2.0 2.5 3.0 3.5 4.0 4.5 VDD(V) DS41250F 第286 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 图 20-8: 最大 IDD 与 VDD 的关系曲线 (EXTRC 模式) 2,000 1,800 1,600 典型值 : (25°C 时) 典型值 :统计平均值 统计平均值 @25°C 最大值 :平均值 意味(最坏情况温度) + 3 + 3σ 最大值 : (最差情况下的温度) (-40°C 至 125°C) (-40°C 至 125°C) IDD(uA) 1,400 4 Mhz 1,200 1,000 800 1 Mhz 600 400 200 0 2.0 2.5 3.0 4.0 3.5 4.5 5.0 5.5 VDD(V) 不同 FOSC 时 IDD 与 VDD 的关系曲线 (LFINTOSC 模式, 31 kHz) 图 20-9: LFINTOSC 模式,31KHZ 80 70 典型值 : 统计平均值(25°C) 最大值 : 平均值(最差情况下的温度)+ 3σ (-40°C 至 125°C) IDD(µA) 60 50 最大值 40 30 典型值 20 10 0 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 VDD(V) 2007 Microchip Technology Inc. DS41250F 第 287 页 PIC16F913/914/916/917/946 图 20-10: IDD 与 VDD 的关系曲线 (LP 模式) 80 典型值 : 统计平均值(25°C 时) 最大值 : 平均值(最差情况下的温度)+ 3σ (-40°C 至 125°C) 70 IDD(uA) 60 50 最大值 32 kHz 40 30 典型值 32 kHz 20 10 0 2.0 3.0 2.5 4.0 3.5 5.0 4.5 5.5 VDD(V) 不同 VDD 时典型 IDD 与 FOSC 的关系曲线 (HFINTOSC 模式) 图 20-11: 4V 2,500 IDD(uA) 2,000 HFINTOSC 5V 5.5V 197.9192604299.82617 395.019 496.999 574.901 210.9124688 典型值 :统计平均值 统计平均值 @25°C324.4079 431.721 544.182 620.66 典型值 : (25°C) 最大值: 意味(最坏情况温度) +3 239.9707708369.77809 491.538 623.314 717.723 最大值 : 平均值 (最差情况下的温度) + 3σ (-40°C 至 125°C) 298.6634479460.30461 619.714 793.635 901.409 (-40°C 至 125°C) 414.3997292639.99889 878.13 1127.53 1275.6 649.86985881014.4002 1421.21 1858.97 2097.71 5.5V 5V 1,500 4V 3V 1,000 2V 500 2V 3V 4V 5V 5.5V 0 125 kHz 25 kHz 500 kHz 1 MHz 2 MHz 4 MHz 8 MHz VDD(V) DS41250F 第288 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 图 20-12: 不同 VDD 时最大 IDD 与 FOSC 的关系曲线 (HFINTOSC 模式) HFINTOSC 3,000 2,500 5.5V 典型值 : 统计平均值(25°C) 最大值 : 平均值(最差情况下的温度)+ 3σ (-40°C 至 125°C) 5V IDD(uA) 2,000 4V 1,500 3V 1,000 2V 500 0 125 kHz 250 kHz 500 kHz 1 MHz 2 MHz 4 MHz 8 MHz VDD(V) 图 20-13: 典型 IPD 与 VDD 的关系曲线 (休眠模式,禁止所有外设) 典型 (休眠模式下禁止所有外设) 0.45 0.40 典型值 : 统计平均值(25°C 时) 最大值 : 平均值(最差情况下的温度)+ 3σ (-40°C 至 125°C) 0.35 IPD(uA) 0.30 0.25 0.20 0.15 0.10 0.05 0.00 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 VDD(V) 2007 Microchip Technology Inc. DS41250F 第 289 页 PIC16F913/914/916/917/946 图 20-14: 最大 IPD 与 VDD 的关系曲线 (休眠模式,禁止所有外设) 最大值 (休眠模式下禁止所有外设) 18 16 典型值 : 统计平均值(25°C 时) 最大值 3s 最大值: :Mean 平均值+(最差情况下的温度) + 3σ (-40°C 至 125°C) 14 最大值 125°C IPD(µA) 12 10 8 6 4 最大值 85°C 2 0 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 VDD(V) 比较器使能的情况下 IPD 与 VDD 的关系曲线 (使能两个比较器) 图 20-15: 180 160 140 典型值 : 统计平均值(25°C 时) 最大值 : 平均值(最差情况下的温度)+ 3σ (-40°C 至 125°C) IPD(uA) 120 最大值 100 80 典型值 60 典型 最大值 31.9 40 43.9 45.6 60.8 59.3 20 77.7 73.0 95.8 86.7 113.8 0 100.4 131.8 114.1 149.9 2.0 127.7 DS41250F 第290 页 2.5 3.0 3.5 4.0 4.5 5.0 5.5 VDD(V) 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 图 20-16: 欠压复位使能情况下不同温度时 IPD 与 VDD 的关系曲线 180 160 典型值: 统计平均值(25°C) 最大值 :平均值(最差情况下的温度)+ 3σ (-40°C 至 125°C) 140 IPD(uA) 120 100 80 60 40 最大值 2.5 3 3.5 4 4.5 5 5.5 典型 35.0 44.4 56.2 68.1 79.9 91.7 104.1 最大值 51.1 65.0 82.5 100.0 117.5 135.1 典型值 20 0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 VDD(V) 图 20-17: WDT 使能的情况下典型 IPD 与 VDD 的关系曲线 (25°C) 3.0 2.5 IPD(uA) 2.0 1.5 典型值典型 : 统计平均值最大温度 (25°C 时) 85°C 最大温度 125°C 2 1.007 2.140 27.702 2.5 1.146 2.711 29.079 3 1.285 3.282 30.08 3.5 1.449 3.899 31.347 4 1.612 4.515 32.238 4.5 1.924 5.401 33.129 5 2.237 6.288 34.02 5.5 2.764 7.776 1.0 0.5 0.0 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 VDD(V) 2007 Microchip Technology Inc. DS41250F 第 291 页 PIC16F913/914/916/917/946 图 20-18: WDT 使能的情况下不同温度时最大 IPD 与 VDD 的关系曲线 40.0 35.0 最大值 : 平均值 +3 最大值 :平均值 + 3σ 最大值 125°C 30.0 IPD(uA) 25.0 20.0 15.0 10.0 最大值 85°C 5.0 0.0 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 VDD(V) 图 20-19: 不同温度时 WDT 周期与 VDD 的关系曲线 WDT 超时周期 32 30 最大值:平均值 + 3σ (-40°C 至 125°C) 28 最大值(125°C) 26 最大值(85°C) 时间(ms) 24 22 20 典型值 18 16 14 最小值 12 10 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 VDD(V) DS41250F 第292 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 图 20-20: WDT 周期与温度的关系曲线 (VDD = 5.0V) Vdd = 5V 30 典型值: 统计平均值(25°C 时) 最大值 : 平均值(最差情况下的温度)+ 3σ 28 26 最大值 时间(ms) 24 22 20 典型值 18 16 最小值 14 12 10 -40°C 25°C 85°C 125°C 温度(°C) 不同温度时 CVREF IPD 与 VDD 的关系曲线 (高电压范围) 图 20-21: 高量程 IPD(uA) 140 最大温度 85°C 最大温度 125°C 35.8 : 统计平均值 68.0 典型值 (25°C 时) 44.8 : 平均值 77.3(最差情况下的温度)+ 3σ 最大值 120 53.8 86.5 (-40°C 至 125°C) 62.8 94.3 71.8 102.1 81.0 109.8 100 最大值 125°C 90.1 117.6 99.2 125.1 80 最大值 85°C 60 典型值 40 20 最大温度 85°C 最大温度 125°C 46.5 86.4 58.3 98.1 70.0 109.9 0 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 VDD(V) 2007 Microchip Technology Inc. DS41250F 第 293 页 PIC16F913/914/916/917/946 图 20-22: 不同温度时 CVREF IPD 与 V DD 的关系曲线 (低电压范围) 低量程 180 160 典型值: 统计平均值(25°C 时) 最大值 : 平均值(最差情况下的温度)+ 3σ (-40°C 至 125°C) 140 最大值 125°C IPD(uA) 120 100 最大值 85°C 80 典型值 60 40 20 0 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 4.5V 5V 5.5V VDD(V) 不同温度时 LVD IPD 与 VDD 的关系曲线 图 20-23: 80 70 典型值 : 统计平均值(25°C 时) 最大值: 平均值 + 3σ 最大值 125°C 60 IPD(uA) 50 最大值 85°C 40 30 典型值 20 10 0 2.0V 2.5V 3.0V 3.5V 4.0V VDD(V) DS41250F 第294 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 图 20-24: 不同温度时 T1OSC IPD 与 VDD 的关系曲线 (32 kHz) 30 25 典型值 : 统计平均值(25°C 时) 最大值: 平均值(最差情况下的温度)+ 3σ (-40°C 至 125°C) 最大值 125°C IPD(uA) 20 15 10 5 2 2.5 3 3.5 4 4.5 5 5.5 典型值 25°C最大温度 85°C 最大温度 125°C 2.022 4.98 17.54 2.247 5.23 19.02 2.472 5.49 20.29 2.453 5.79 21.50 最大值 85°C 2.433 6.08 22.45 2.711 6.54 23.30 2.989 7.00 24.00 3.112 7.34 典型值 25°C 0 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 VDD(V) 图 20-25: 不同温度时 VOL 与 IOL 的关系曲线 (VDD = 3.0V) (VDD = 3V,-40°C 至 125°C) 0.8 0.7 典型值 : 统计平均值(25°C 时) 最大值 : 平均值 + 3σ 最大值 125°C 0.6 VOL(V) 0.5 最大值 85°C 0.4 典型值 25°C 0.3 0.2 最小值 -40°C 0.1 0.0 5.0 5.5 6.0 6.5 7.0 7.5 8.0 8.5 9.0 9.5 10.0 IOL(mA) 2007 Microchip Technology Inc. DS41250F 第 295 页 PIC16F913/914/916/917/946 图 20-26: 不同温度时 VOL 与 IOL 的关系曲线 (VDD = 5.0V) 0.45 典型值 : 统计平均值(25°C 时) 典型值 : 统计平均值 最大值 : 平均值 + 3σ 最大值: 平均值 + 3 0.40 最大值 125°C 0.35 最大值 85°C VOL(V) 0.30 0.25 典型值 25°C 0.20 0.15 最小值 -40°C 0.10 0.05 0.00 5.0 5.5 6.0 6.5 7.0 7.5 8.0 8.5 9.0 9.5 10.0 IOL(mA) 不同温度时 VOH 与 IOH 的关系曲线 (VDD = 3.0V) 图 20-27: 3.5 3.0 最大值 -40°C 典型值 25°C 2.5 VOH(V) 最小值 125°C 2.0 1.5 1.0 典型值 : 统计平均值(25°C 时) 最大值 : 平均值(最差情况下的温度)+ 3σ (-40°C 至 125°C) 0.5 0.0 0.0 -0.5 -1.0 -1.5 -2.0 -2.5 -3.0 -3.5 -4.0 IOH(mA) DS41250F 第296 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 图 20-28: 不同温度时 VOH 与 IOH 的关系曲线 (VDD = 5.0V) 5.5 5.0 最大值 -40°C 典型值 25°C VOH(V) 4.5 最小值 125°C 4.0 3.5 典型值 : 统计平均值(25°C 时) 最大值: 平均值(最差情况下的温度)+ 3σ (-40°C 至 125°C) 3.0 0.0 -0.5 -1.0 -1.5 -2.0 -2.5 -3.0 -3.5 -4.0 -4.5 -5.0 IOH(mA) 图 20-29: 不同温度时 TTL 输入门限电压 VIN 与 VDD 的关系曲线 (TTL 输入, -40°C 至 125°C) 1.7 1.5 典型值: 统计平均值(25°C 时) 最大值 : 平均值(最差情况下的温度)+ 3σ (-40°C 至 125°C) 最大值 -40°C VIN(V) 1.3 典型值 25°C 1.1 最小值 125°C 0.9 0.7 0.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 VDD(V) 2007 Microchip Technology Inc. DS41250F 第 297 页 PIC16F913/914/916/917/946 图 20-30: 不同温度时施密特触发器输入门限电压 VIN 与 VDD 的关系曲线 (施密特输入,-40°C 至 125°C) 4.0 VIH 最大值 125°C 典型值: 统计平均值(25°C 时) 最大值 : 平均值(最差情况下的温度)+ 3σ (-40°C 至 125°C) 3.5 VIH 最小值 -40°C VIN(V) 3.0 2.5 2.0 VIL 最大值 -40°C 1.5 VIL 最小值 125°C 1.0 0.5 2.0 图 20-31: 4 5.5 1,000 2.5 3.0 3.5 4.0 VDD(V) 4.5 5.0 5.5 比较器响应时间 (上升沿) 200 278 639 846 V+ INPUT 140 202 = VCM 531 V- input = 从 VCM + 100MV 到 VCM - 20MV ²¢ÀÕ 900 800 最大值(125°C) 响应时间(nS) 700 600 注: 500 VCM = (VDD - 1.5V)/2 V+ 输入 = VCM V- 输入 = 从 VCM + 100MV 跳变至 VCM - 20MV 最大值(85°C) 400 300 典型值 (25°C) 200 最小值(-40°C) 100 0 2.0 2.5 4.0 5.5 VDD(V) DS41250F 第298 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 图 20-32: Vdd 比较器响应时间 (下降沿) -40°C 25°C 85°C 125°C 2 279 327 547 557 600 2.5 226 267 425 440 4 172 204 304 319 5.5 119 142 182 500 响应时间(nS) 400 300 最大值(125°C) 最大值(85°C) 200 注: 100 VCM = (VDD - 1.5V)/2 V+ 输入 = VCM V- 输入 = 从 VCM -100MV 跳变至 VCM +20MV 典型值 (25°C) 最小值(-40°C) 0 2.0 2.5 4.0 5.5 VDD(V) 不同温度时 LFINTOSC 频率与 VDD 的关系曲线 ( 31 kHz) 图 20-33: LFINTOSC 31Khz 45,000 40,000 最大值 -40°C 35,000 典型值 25°C 频率(Hz) 30,000 25,000 20,000 最小值 85°C 最小值 125°C 15,000 10,000 典型值 : 统计平均值(25°C 时) 最大值: 平均值(最差情况下的温度)+ 3σ 5,000 0 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 VDD(V) 2007 Microchip Technology Inc. DS41250F 第 299 页 PIC16F913/914/916/917/946 图 20-34: 不同温度时 ADC 时钟周期与 VDD 的关系曲线 8 典型值 : 统计平均值(25°C 时) 最大值: 平均值(最差情况下的温度)+ 3σ (-40°C 至 125°C) 125°C 时间(µs) 6 85°C 25°C 4 -40°C 2 0 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 VDD(V) 图 20-35: 不同温度时典型 HFINTOSC 起振时间与 VDD 的关系曲线 16 典型值 : 统计平均值(25°C 时) 最大值 : 平均值(最差情况下的温度)+ 3σ 14 85°C 12 25°C 时间(µs) 10 -40°C 8 6 4 2 0 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 VDD(V) DS41250F 第300 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 图 20-36: 不同温度时最大 HFINTOSC 起振时间与 VDD 的关系曲线 -40C 至 +85C 25 典型值 : 统计平均值(25°C 时) 最大值: 平均值(最差情况下的温度)+ 3σ 时间(µs) 20 15 85°C 25°C 10 -40°C 5 0 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 VDD(V) 图 20-37: 不同温度时最小 HFINTOSC-40C 起振时间与 至 +85C VDD 的关系曲线 10 9 典型值 : 统计平均值(25°C 时) 最大值 : 平均值(最差情况下的温度)+ 3σ 8 时间(µs) 7 85°C 6 25°C 5 -40°C 4 3 2 1 0 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 VDD(V) 2007 Microchip Technology Inc. DS41250F 第 301 页 PIC16F913/914/916/917/946 图 20-38: 典型 HFINTOSC 频率变化与 VDD 的关系曲线 (25°C) 频率相对于校准值的偏差(%) 5 4 3 2 1 0 -1 -2 -3 -4 -5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 VDD(V) 图 20-39: 典型 HFINTOSC 频率变化与 VDD 的关系曲线 (85°C) 频率相对于校准值的偏差(%) 5 4 3 2 1 0 -1 -2 -3 -4 -5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 VDD(V) DS41250F 第302 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 图 20-40: 典型 HFINTOSC 频率变化与 VDD 的关系曲线 (125°C) 频率相对于校准值的偏差(%) 5 4 3 2 1 0 -1 -2 -3 -4 -5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 5.0 5.5 VDD(V) 图 20-41: 典型 HFINTOSC 频率变化与 VDD 的关系曲线 (-40°C) 频率相对于校准值的偏差(%) 5 4 3 2 1 0 -1 -2 -3 -4 -5 2.0 2.5 3.0 3.5 4.0 4.5 VDD(V) 2007 Microchip Technology Inc. DS41250F 第 303 页 PIC16F913/914/916/917/946 注: DS41250F 第304 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 21.0 封装信息 21.1 封装标识信息 28 引脚 SPDIP 示例 PIC16F913 -I/SP e3 0710017 XXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX YYWWNNN 40 引脚 PDIP 示例 XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX YYWWNNN 示例 28 引脚 QFN 16F916 -I/ML e3 0710017 XXXXXXXX XXXXXXXX YYWWNNN 图注: XX...X Y YY WW NNN e3 * 注: * PIC16F914 -I/P e3 0710017 客户信息 年份代码 (公历年的最后一位数字) 年份代码 (公历年的最后两位数字) 星期代码 (一月第一个星期的代码为 “01”) 以字母数字排序的追踪代码 雾锡 (Matte Tin, Sn)的 JEDEC 无铅标志 的外包装 表示无铅封装。JEDEC 无铅标志 ( e3 )标示于此种封装外包装上。 e3 上。 Microchip 元器件编号如果无法在同一行内完整标注,将换行标出,因此会限制表 示客户信息的字符数。 标准 PIC® 器件标识由 Microchip 元器件编号、年份代码、星期代码和追踪代码组成。 若 PIC® 器件标识超出 上述内容,需支付一定的附加费用。 请向当地的 Microchip 销售办事处了解确认。 对于 QTP 器件,任何特殊 标记的费用都已包含在 QTP 价格中。 2007 Microchip Technology Inc. DS41250F_CN 第 305 页 PIC16F913/914/916/917/946 封装标识信息 (续) 44 引脚 QFN XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX YYWWNNN 28 引脚 SOIC 示例 PIC16F914 -I/ML e3 0710017 示例 XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX YYWWNNN 28 引脚 SSOP XXXXXXXXXXXX XXXXXXXXXXXX YYWWNNN 44 引脚 TQFP XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX YYWWNNN 64 引脚 TQFP(10x10x1mm) XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX YYWWNNN DS41250F_CN 第 306 页 PIC16F913 -I/SO e3 0710017 示例 PIC16F916 -I/SS e3 0710017 示例 PIC16F917 -I/PT e3 0710017 示例 PIC16F946 -I/PT e3 0710017 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 21.2 封装详细信息 以下部分将介绍各种封装的技术细节。 28 引脚窄条塑封双列直插式封装 (SP)——主体 300 mil [SPDIP] 注: 最新封装图请至 http://www.microchip.com/packaging 查看 Microchip 封装规范。 N ⊼1 E1 1 2 3 D E A2 A L A1 c b1 b e eB ऩԡ 㣅ᇌ ሎᇌ㣗ೈ ᓩ㛮᭄ ᳔ᇣℷᐌ N ᳔ 28 ᓩ㛮䯈䎱e .100 BSC 乊ッ ࠄᅮ䴶催ᑺ A – – .200 ล ᇕ㺙८ᑺ A2 .120 .135 ᑩ䴶 ࠄᅮ䴶催ᑺ A1 .015 – – E .290 .310 .335 㙽ࠄ㙽ᆑᑺ .150 ล ᇕ㺙ᆑᑺE1 .240 ᘏ䭓ᑺD 1.345 ᓩ㛮 ᇪࠄᅮ䴶催ᑺL .110 ᓩ㛮८ᑺc .008 .010 .015 ᓩ㛮Ϟ䚼ᆑᑺb1 .040 .050 .070 ᓩ㛮ϟ䚼ᆑᑺ ¡¡b¡¡¡¡¡¡ ᘏᥦ䯈䎱 § .285 1.365 .130 .295 1.400 .150 ǂ. .014¡¡¡¡¡¡¡¡¡¡¡¡¡.018 ¡¡¡¡¡¡¡.022 ˉǂǂǂǂǂˉ ¡¡¡¡¡¡¡¡¡¡.430 eB ⊼˖ 1. ᓩ㛮1ᅮԡᷛ䆄ৃ㛑Ӯ᳝ব࣪ˈԚϔᅮԡѢ䰈ᕅऎඳݙDŽ 2. § 䞡㽕⡍ᗻDŽ 3. ሎᇌDE1ϡࣙᣀลⱘ↯䖍さ䍋DŽล↣ջⱘ↯䖍さ䍋ϡᑨ䍙䖛0.10㣅ᇌDŽ 4. ሎᇌ݀Ꮒ䙉ᕾASME Y14.5MDŽ BSC˖ᴀሎᇌDŽ⧚䆎㊒⹂ؐˈϡ݀ᏂDŽ Microchip Technology ো C04-070B ¤ 2007 Microchip Technology Inc. 2007 Microchip Technology Inc. Preliminary DS39689E-page 369 DS41250F_CN 第 307 页 PIC16F913/914/916/917/946 40 引脚塑封双列直插式封装 (P)——主体 600 mil [PDIP] 最新封装图请至 http://www.microchip.com/packaging 查看 Microchip 封装规范。 注: N N ⊼1 ⊼1 E1 E1 1 2 3 1 2 3 D D E A A2 A2 A b1 b1 b b A1 A1 e L c L c eB eB e ऩԡ ऩԡ ሎᇌ㣗ೈ ሎᇌ㣗ೈ ᓩ㛮᭄N ᓩ㛮᭄N ᓩ㛮䯈䎱e ᓩ㛮䯈䎱e 乊ッࠄᅮ䴶催ᑺA 乊ッࠄᅮ䴶催ᑺA ลᇕ㺙८ᑺA2 ลᇕ㺙८ᑺA2 ᑩ 䴶ࠄᅮ䴶催ᑺ A1 ᑩ 䴶ࠄᅮ䴶催ᑺ A1 㙽ࠄ㙽ᆑᑺ E 㙽ࠄ㙽ᆑᑺ E ลᇕ㺙ᆑᑺE 1 ลᇕ㺙ᆑᑺE 1 ᘏ䭓ᑺD ᘏ䭓ᑺD ᓩ㛮 ᇪࠄᅮ䴶催ᑺL ᓩ㛮 ᇪࠄᅮ䴶催ᑺL ᓩ㛮८ᑺc ᓩ㛮८ᑺc ᓩ㛮Ϟ䚼ᆑᑺb1 ᓩ㛮Ϟ䚼ᆑᑺb1 ᓩ㛮ϟ䚼ᆑᑺb ᓩ㛮ϟ䚼ᆑᑺb ᘏᥦ䯈䎱 § eB ᘏᥦ䯈䎱 § eB E 㣅ᇌ 㣅ᇌ ᳔ᇣℷᐌ ᳔ᇣℷᐌ 40 40 .100 BSC .100 BSC – – – – .125 – .125 – .015 – .015 – .590 – .590 – .485 – .485 – 1.980 – 1.980 – .115 – .115 – .008 – .008 – .030 – .030 – .014 – .014 – – – – – 注: 注: 1.ᓩ㛮1ᅮԡᷛ䆄ৃ㛑Ӯ᳝ব࣪ˈԚϔᅮԡѢ䰈ᕅऎඳݙDŽ 1.ᓩ㛮1ᅮԡᷛ䆄ৃ㛑Ӯ᳝ব࣪ˈԚϔᅮԡѢ䰈ᕅऎඳݙDŽ 2. § 䞡㽕⡍ᗻDŽ 2. § 䞡㽕⡍ᗻDŽ 3.ሎᇌD E1 ϡࣙᣀลⱘ↯䖍さ䍋DŽล↣ջⱘ↯䖍さ䍋ϡᑨ䍙䖛0.010㣅ᇌDŽ 3.ሎᇌD E1 ϡࣙᣀลⱘ↯䖍さ䍋DŽล↣ջⱘ↯䖍さ䍋ϡᑨ䍙䖛0.010㣅ᇌDŽ 4.ሎᇌ݀Ꮒ䙉ᕾASME Y14.5MDŽ 4.ሎᇌ݀Ꮒ䙉ᕾASME Y14.5MDŽ BSC˖ᴀሎᇌDŽ⧚䆎㊒⹂ؐˈϡ݀ᏂDŽ BSC˖ᴀሎᇌDŽ⧚䆎㊒⹂ؐˈϡ݀ᏂDŽ ᳔ ᳔ 250 . 250 . .195 .195 – – .625 .625 .580 .580 2.095 2.095 .200 .200 .015 .015 .070 .070 .023 .023 .700 .700 Microchip Technologো C04-016B Microchip Technologো C04-016B ¤ 2007 Microchip Technology Inc. ¤ 2007 Microchip Technology Inc. DS41250F_CN 第 308 页 Preliminary Preliminary DS39689E-page 373 DS39689E-page 373 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 28 引脚塑封四方扁平无引线封装 (ML)——主体 6x6 mm [QFN],触点长度 0.55 mm 最新封装图请至 http://www.microchip.com/packaging 查看 Microchip 封装规范。 注: D D2 外露金属 EXPOSED 衬底 PAD e E b E2 2 2 1 1 N K N 注1 1 NOTE 俯视图 L 仰视图 BOTTOM VIEW TOP VIEW A A3 A1 单位 Units 尺寸范围 Dimension Limits 引脚数 of Pins Number 毫米 MILLIMETERS 最小 MIN N 正常 NOM 最大 MAX 28 Pitch 引脚间距 e Overall 总高度 Height A 0.80 0.90 1.00 悬空间隙 Standoff A1 0.00 0.02 0.05 触点厚度Thickness Contact A3 总宽度 Width Overall 外露金属衬底宽度 Exposed Pad Width 总长度 Length Overall 外露金属衬底长度 Exposed Pad Length 0.65 BSC 0.20 REF E E2 6.00 BSC 3.65 D 3.70 4.20 6.00 BSC D2 3.65 3.70 4.20 b 0.23 0.30 0.35 触点长度 Length Contact L 0.50 0.55 0.70 触点到外露衬底的距离 Pad Contact-to-Exposed K 0.20 – – 触点宽度Width Contact 注: Notes: 1. Pin 1 visual index feature may vary, but must be located within the hatched area. 1. 引脚 1 定位标记可能会有变化, 但一定位于阴影区域内。 2. Package is saw singulated. 2. 该封装是切割分离的。 3. Dimensioning ASME and tolerancing Y14.5M。 per ASME Y14.5M. 3. 尺寸和公差遵循 BSC :基本尺寸。 理论精确值, 不含公差。 exact value shown without tolerances. BSC: Basic Dimension. Theoretically BEF :参考尺寸。 通常也不包含公差, 仅供参考。 REF: Reference Dimension, usually without tolerance, for information purposes only. Microchip Technology Drawing C04-105B 图号C4-015B 2007 Microchip Technology Inc. DS41250F_CN 第 309 页 PIC16F913/914/916/917/946 44 引脚塑封四方扁平无引线封装 (ML)——主体 8x8 mm [QFN] 注: 最新封装图请至 http://www.microchip.com/packaging 查看 Microchip 封装规范。 '' ' ' 䴆䞥ሲ 䴆䞥ሲ 㹀ᑩ 㹀ᑩ HH (( ( ( EE 11 ⊼ ⊼ 11 ׃㾚 ׃㾚 .. // ӄ㾚 ӄ㾚 $$ $ $ $ $ ऩԡ↿㉇ ऩԡ↿㉇ ሎᇌ㣗ೈ᳔ᇣℷᐌ᳔ ሎᇌ㣗ೈ᳔ᇣℷᐌ᳔ ᓩ㛮᭄1 ᓩ㛮᭄1 ᓩ㛮䯈䎱H ᓩ㛮䯈䎱H ᘏ催ᑺ$ ᘏ催ᑺ$ ぎ䯈䱭 $ ぎ䯈䱭 $ 㾺⚍८ᑺ$ 㾺⚍८ᑺ$ ᘏᆑᑺ( ᘏᆑᑺ( 䴆䞥ሲ㹀ᑩᆑᑺ( 䴆䞥ሲ㹀ᑩᆑᑺ( ᘏ䭓ᑺ' ᘏ䭓ᑺ' 䴆䞥ሲ㹀ᑩ䭓ᑺ' 䴆䞥ሲ㹀ᑩ䭓ᑺ' 㾺⚍ᆑᑺE 㾺⚍ᆑᑺE 㾺⚍䭓ᑺ/ 㾺⚍䭓ᑺ/ 㾺⚍ࠄ䴆㹀ᑩⱘ䎱⾏. 㾺⚍ࠄ䴆㹀ᑩⱘ䎱⾏. %6& %6& 5() 5() %6& %6& %6& %6& ±± ±± ⊼˖ ⊼˖ ᓩ㛮ᅮԡᷛ䆄ৃ㛑Ӯ᳝ব࣪ˈԚϔᅮԡѢ䰈ᕅऎඳݙDŽ ᓩ㛮ᅮԡᷛ䆄ৃ㛑Ӯ᳝ব࣪ˈԚϔᅮԡѢ䰈ᕅऎඳݙDŽ 䆹ᇕ㺙ᰃߛࡆߚ⾏ⱘDŽ 䆹ᇕ㺙ᰃߛࡆߚ⾏ⱘDŽ ሎᇌ݀Ꮒ䙉ᕾ ሎᇌ݀Ꮒ䙉ᕾ$60(<0DŽ $60(<0DŽ %6&˖ ᴀሎᇌDŽ⧚䆎㊒⹂ؐˈϡ݀ᏂDŽ %6&˖ᴀሎᇌDŽ⧚䆎㊒⹂ؐˈϡ݀ᏂDŽ 5()˖ 5()˖ খ㗗ሎᇌDŽ䗮ᐌгϡࣙ݀Ꮒˈҙկখ㗗DŽ খ㗗ሎᇌDŽ䗮ᐌгϡࣙ݀Ꮒˈҙկখ㗗DŽ 0LFURFKLS 0LFURFKLS7HFKQRORJ\ 7HFKQRORJ\ো&% ো&% 0LFURFKLS7HFKQRORJ\,QF 0LFURFKLS7HFKQRORJ\,QF DS41250F_CN 第 310 页 '6$3SDJH '6$3SDJH 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 28 引脚塑封宽条小外形封装 (SO)——主体 7.50 mm [SOIC] 注: 最新封装图请至 http://www.microchip.com/packaging 查看 Microchip 封装规范。 D N D N E E1 E E1 ⊼1 ⊼1 1 2 3 1 2 3 b e b e α A A A2 h α h φ A2 c φ L A1 L1 A1 ऩԡ ऩԡ ǂǂǂǂሎᇌ㣗ೈ ǂǂǂǂሎᇌ㣗ೈ ᓩ㛮᭄ ¡¡¡¡¡¡¡¡¡¡¡¡N ᓩ㛮᭄ ¡¡¡¡¡¡¡¡¡¡¡¡N ᓩ㛮䯈䎱ǂǂǂǂǂǂǂǂǂǂǂǂǂǂǂǂǂe ᓩ㛮䯈䎱ǂǂǂǂǂǂǂǂǂǂǂǂǂǂǂǂǂe ᘏ催ᑺǂǂǂǂǂǂǂǂǂǂǂǂǂǂǂǂǂǂA ᘏ催ᑺǂǂǂǂǂǂǂǂǂǂǂǂǂǂǂǂǂǂA ลᇕ㺙८ᑺǂǂǂǂǂǂǂǂǂǂǂǂǂǂA2 ลᇕ㺙८ᑺǂǂǂǂǂǂǂǂǂǂǂǂǂǂA2 ぎ䯈䱭 § A1 ぎ䯈䱭 § A1 ᘏᆑᑺE ᘏᆑᑺE ลᇕ㺙ᆑᑺE1 ลᇕ㺙ᆑᑺE1 ᘏ䭓ᑺD ᘏ䭓ᑺD ᭰䴶 ᡩᕅ䎱⾏˄ৃ䗝˅h ᭰䴶 ᡩᕅ䎱⾏˄ৃ䗝˅h ᑩ㛮䭓ᑺL ᑩ㛮䭓ᑺL ᑩ㛮ऴԡ䭓ᑺL 1 ᑩ㛮ऴԡ䭓ᑺL 1 ᑩ㛮ؒ᭰㾦ᑺ φ ᑩ㛮ؒ᭰㾦ᑺ φ ᓩ㛮८ᑺc ᓩ㛮८ᑺc ᓩ㛮ᆑᑺb ᓩ㛮ᆑᑺb ล 乊䚼䫹ᑺα ล 乊䚼䫹ᑺα ล ᑩ䚼䫹ᑺβ ล ᑩ䚼䫹ᑺβ L L1 2007 Microchip Technology Inc. β c β ǂǂ↿㉇ ǂǂ↿㉇ ᳔ᇣǂǂǂǂℷᐌ ᳔ ᳔ᇣǂǂǂǂℷᐌ ᳔ 28 28 1.27 BSC 1.27 BSC – – 2.65 – – 2.65 2.05¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ¡– – 2.05¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ¡– – 0.10 – 0.30 0.10 – 0.30 10.30 BSC 10.30 BSC 7.50 BSC 7.50 BSC 17.90 BSC 17.90 BSC 0.25 – 0.75 0.25 – 0.75 0.40 – 1.27 0.40 – 1.27 1.40 REF 1.40 REF 0° – 8° 0° – 8° 0.18 – 0.33 0.18 – 0.33 0.31 – 0.51 0.31 – 0.51 5° – 15° 5° – 15° 5° – 15° 5° – 15° ⊼˖ ⊼˖ 1.ᓩ㛮1ⱘᅮԡᷛ䆄ৃ㛑Ӯ᳝ব࣪ˈԚϔᅮԡѢ䰈ᕅऎඳݙDŽ 1.ᓩ㛮1ⱘᅮԡᷛ䆄ৃ㛑Ӯ᳝ব࣪ˈԚϔᅮԡѢ䰈ᕅऎඳݙDŽ 2. § 䞡㽕⡍ᗻDŽ 2. § 䞡㽕⡍ᗻDŽ 3.ሎᇌDE1ϡࣙᣀลⱘ↯䖍さ䍋DŽล↣ջⱘ↯䖍さ䍋ϡᑨ䍙䖛0.15mm DŽ 3.ሎᇌDE1ϡࣙᣀลⱘ↯䖍さ䍋DŽล↣ջⱘ↯䖍さ䍋ϡᑨ䍙䖛0.15mm DŽ 4.ሎᇌ݀Ꮒ䙉ᕾASME?Y14.5MDŽ 4.ሎᇌ݀Ꮒ䙉ᕾASME?Y14.5MDŽ BSC˖ᴀሎᇌDŽ⧚䆎㊒⹂ؐˈϡ݀ᏂDŽ BSC˖ᴀሎᇌDŽ⧚䆎㊒⹂ؐˈϡ݀ᏂDŽ REF˖খ㗗ሎᇌDŽ䗮ᐌгϡࣙ݀Ꮒˈҙկখ㗗DŽ REF˖খ㗗ሎᇌDŽ䗮ᐌгϡࣙ݀Ꮒˈҙկখ㗗DŽ DS39689E-page 370 DS39689E-page 370 h h Preliminary Preliminary Microchip Technology োC04-052B Microchip Technology োC04-052B ¤ 2007 Microchip Technology Inc. ¤ 2007 Microchip Technology Inc. DS41250F_CN 第 311 页 PIC16F913/914/916/917/946 28 引脚塑封缩小型封装 (SS)——主体 5.30 mm [SSOP] 注: 最新封装图请至 http://www.microchip.com/packaging 查看 Microchip 封装规范。 '' 11 (( ( ( ⊼ ⊼ EE HH FF $ $ $$ FF $ $ // / / ऩԡ↿㉇ ऩԡ↿㉇ ሎᇌ㣗ೈ᳔ᇣℷᐌ᳔ ሎᇌ㣗ೈ᳔ᇣℷᐌ᳔ ᓩ㛮᭄1 ᓩ㛮᭄1 ᓩ㛮䯈䎱H %6& ᓩ㛮䯈䎱H %6& ᘏ催ᑺ$ ± ± ᘏ催ᑺ$ ± ± ลᇕ㺙८ᑺ$ ลᇕ㺙८ᑺ$ ぎ䯈䱭 $ ± ± ぎ䯈䱭 $ ± ± ᘏᆑᑺ( ᘏᆑᑺ( ลᇕ㺙ᆑᑺ( ลᇕ㺙ᆑᑺ( ᘏ䭓ᑺ' ᘏ䭓ᑺ' ᑩ㛮䭓ᑺ/ ᑩ㛮䭓ᑺ/ ᓩ㛮ᡩᕅ䭓ᑺ/ 5() ᓩ㛮ᡩᕅ䭓ᑺ/ 5() ᓩ㛮८ᑺF ± ᓩ㛮८ᑺF ± ᑩ㛮ؒ㾦 F ᑩ㛮ؒ㾦 F ᓩ㛮ᆑᑺE ± ᓩ㛮ᆑᑺE ± ⊼˖ ⊼˖ ᓩ㛮ᅮԡᷛ䆄ৃ㛑Ӯ᳝ব࣪ˈԚϔᅮԡѢ䰈ᕅऎඳݙDŽ ᓩ㛮ᅮԡᷛ䆄ৃ㛑Ӯ᳝ব࣪ˈԚϔᅮԡѢ䰈ᕅऎඳݙDŽ ሎᇌ'(ϡࣙᣀลⱘ↯䖍さ䍋DŽล↣ջⱘ↯䖍さ䍋ϡᑨ䍙䖛 PPDŽ ሎᇌ'(ϡࣙᣀลⱘ↯䖍さ䍋DŽล↣ջⱘ↯䖍さ䍋ϡᑨ䍙䖛 PPDŽ ሎᇌ݀Ꮒ䙉ᕾ$60(<0DŽ ሎᇌ݀Ꮒ䙉ᕾ$60(<0DŽ %6&˖ ᴀሎᇌDŽ⧚䆎㊒⹂ؐˈϡ݀ᏂDŽ %6&˖ ᴀሎᇌDŽ⧚䆎㊒⹂ؐˈϡ݀ᏂDŽ 5()˖ খ㗗ሎᇌDŽ䗮ᐌгϡࣙ݀Ꮒˈҙկখ㗗DŽ 5()˖ খ㗗ሎᇌDŽ䗮ᐌгϡࣙ݀Ꮒˈҙկখ㗗DŽ 0LFURFKLS 7HFKQRORJ\ ো&% 0LFURFKLS 7HFKQRORJ\ ো&% '6$3SDJH '6$3SDJH DS41250F_CN 第 312 页 0LFURFKLS7HFKQRORJ\,Q 0LFURFKLS7HFKQRORJ\,QF 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 44 引脚塑封薄型四方扁平封装 (PT)——主体 10x10x1 mm,底脚占位长度 2.00 mm [TQFP] 注: 最新封装图请至 http://www.microchip.com/packaging 查看 Microchip 封装规范。 D D D1 D1 E e e b b E1 E1 N N ⊼ 1⊼ 1 c 1 2 3 1 2 3 ⊼2⊼2 A c β E φ β α A α φ L L A1 A1 L1 ऩԡ↿㉇ ऩԡ↿㉇ ሎᇌ 㣗ೈ 㣗ೈ ᳔ᇣ᳔ᇣ ℷᐌℷᐌ ሎᇌ ᓩ㛮 ᓩ㛮 ᭄N 44 44 ᭄N ᓩ㛮䯈䎱 e ᓩ㛮 䯈䎱e ᘏ 催ᑺ A ᘏ 催ᑺ A ลᇕ㺙८ᑺ ลᇕ㺙८ᑺ ぎ 䯈䱭 ぎ 䯈䱭 A2 A2 A1 A1 ᑩ㛮䭓ᑺ L ᑩ㛮䭓ᑺ L ᳔ ᳔ 0.80 0.80 BSCBSC – – 0.950.95 0.05 0.05 0.45 0.45 ᑩ㛮 ऴԡ䭓ᑺ L1 ᑩ㛮 ऴԡ䭓ᑺ L1 ᑩ㛮ؒ᭰㾦ᑺ φ ᑩ㛮ؒ᭰㾦ᑺ φ ᘏᆑᑺ E ᘏᆑᑺ E A2 A2 L1 0° 0° ᘏ䭓ᑺ D ᘏ䭓ᑺ D – – 1.001.00 – – 1.20 1.20 1.051.05 0.15 0.15 0.60 0.60 0.75 0.75 1.00 1.00 REF REF 3.5° 3.5° 12.0012.00 BSCBSC 12.0012.00 BSCBSC 7° 7° ลᇕ㺙ᆑᑺ E1 E 1 10.0010.00 BSCBSC ลᇕ㺙ᆑᑺ ล ล ᇕ㺙䭓ᑺ D1 D1 10.00 BSCBSC ᇕ㺙䭓ᑺ 10.00 ᓩ㛮८ᑺ c 0.09 0.09 – 0.20 0.20 ᓩ㛮८ᑺ c – ᓩ㛮ᆑᑺ b ᓩ㛮ᆑᑺ b ล 乊䚼䫹ᑺ α ล 乊䚼䫹ᑺ α ล ᑩ䚼䫹ᑺ β ล ᑩ䚼䫹ᑺ β 0.30 0.30 0.37 0.37 0.45 0.45 11° 11° 11° 11° 12° 12° 12° 12° 13° 13° 13° 13° ⊼˖ ⊼˖ 1. ᓩ㛮1ᅮԡᷛ䆄ৃ㛑Ӯ᳝ব࣪ˈԚϔᅮԡѢ䰈ᕅऎඳݙDŽ 1. ᓩ㛮1ᅮԡᷛ䆄ৃ㛑Ӯ᳝ব࣪ˈԚϔᅮԡѢ䰈ᕅऎඳݙDŽ 2. ᢤ㾦໘ৃ㛑ᄬ᭰䴶˗ሎᇌৃবDŽ 2. ᢤ㾦໘ৃ㛑ᄬ᭰䴶˗ሎᇌৃবDŽ E1 ϡࣙᣀลⱘ↯䖍さ䍋DŽล↣ջⱘ↯䖍さ䍋ϡᑨ䍙䖛0.25 3. ሎᇌD mm DŽ E1 ϡࣙᣀลⱘ↯䖍さ䍋DŽล↣ջⱘ↯䖍さ䍋ϡᑨ䍙䖛0.25 3. ሎᇌD mm DŽ 4. ሎᇌ݀Ꮒ䙉ᕾASME Y14.5MDŽ 4. ሎᇌ݀Ꮒ䙉ᕾASME Y14.5MDŽ BSC˖ᴀሎᇌDŽ⧚䆎㊒⹂ؐˈϡ݀ᏂDŽ BSC˖ᴀሎᇌDŽ⧚䆎㊒⹂ؐˈϡ݀ᏂDŽ REF˖খ㗗ሎᇌDŽ䗮ᐌϡࣙ݀Ꮒˈҙկখ㗗DŽ REF˖খ㗗ሎᇌDŽ䗮ᐌϡࣙ݀Ꮒˈҙկখ㗗DŽ Microchip TechnologyোC04-076B Microchip TechnologyোC04-076B ¤ 2007 Microchip Technology Inc. Inc. ¤ 2007 Microchip Technology 2007 Microchip Technology Inc. Preliminary Preliminary DS39689E-page 375 375 DS39689E-page DS41250F_CN 第 313 页 PIC16F913/914/916/917/946 64 引脚塑封薄型四方扁平封装 (PT)——主体 10x10x1 mm,底脚占位长度 2.00 mm [TQFP] 注: 最新封装图请至 http://www.microchip.com/packaging 查看 Microchip 封装规范。 ' ' ( H ( 1 E ⊼ ⊼ A $ F F $ B $ / / ऩԡ ሎᇌ㣗ೈ ᓩ㛮᭄ ↿㉇ ᳔ᇣ 1 ℷᐌ ᳔ ᓩ㛮䯈䎱 H ᘏ催ᑺ $ ± ± ลᇕ㺙८ᑺ $ ぎ䯈䱭 $ ± / ᑩ㛮䭓ᑺ %6& ᑩ㛮ऴԡ䭓ᑺ/ 5() ᑩ㛮ؒ᭰㾦 F ᘏᆑᑺ ( %6& ᘏ䭓ᑺ ' %6& ลᇕ㺙ᆑᑺ ( %6& ลᇕ㺙䭓ᑺ ' %6& ᓩ㛮८ᑺ F ± ᓩ㛮ᆑᑺ E ล乊䚼䫹ᑺ A ลᑩ䚼䫹ᑺ B ⊼˖ ᓩ㛮ᅮԡ⡍ᗻৃ㛑᳝ব࣪ˈԚϔᅮԡѢ䰈ᕅऎඳݙDŽ ᢤ㾦໘ৃ㛑ᄬ᭰䴶ˈሎᇌৃবDŽ ሎᇌ'(ϡࣙᣀล↯䖍さ䍋DŽล↣ջⱘ↯䖍さ䍋ϡᕫ䍙䖛PPDŽ ሎᇌ݀Ꮒ䙉ᕾ$60(<0DŽ %6&˖ᴀሎᇌDŽ⧚䆎㊒⹂ؐˈϡ݀ᏂDŽ 5()˖খ㗗ሎᇌDŽ䗮ᐌϡࣙ݀Ꮒˈҙկখ㗗DŽ 0LFURFKLS 7HFKQRORJ\ ো&% DS41250F_CN 第 314 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 附录 A: 数据手册版本历史 版本 A 这是新的数据手册。 版本 B 更新了外设功能。 第 2 页,表:更正了 I/O 引脚的数量。 图 8-3:修改了比较器的 I/O 工作模式。 寄存器 9-1,表:更正了最大像素数。 版本 C 更正了引脚说明表。 修改了 IPD 时基和 T1OSC。 版本 D 参考频率从 31.25 kHz 修改为 31 kHz。 待机电流修改为 100 nA。 修改 9.1:内部 RC 振荡器改为内部 LF 振荡器。 从其他 PIC® 器件移植 附录 B: 本节将讨论从其他 PIC® 器件移植到 PIC16F91X/946 系 列器件的一些问题。 B.1 PIC16F676 到 PIC16F91X/946 表 B-1: 功能比较 PIC16F676 PIC16F91X/ 946 20 MHz 20 MHz 程序存储器最大容量 (字) 1K 8K 最大 SRAM (字节) 64 352 10 位 128 10 位 256 1/1 2/1 振荡模式 8 8 欠压复位 有 RB0/1/2/4/5 有 RB<7:0> RB0/1/2/3 /4/5 RB<7:4> 功能 最大工作频率 A/D 转换的分辨率 数据 EEPROM (字节) 定时器 (8/16 位) 内部上拉 版本 E 电平变化中断 将 “高级信息”从第 19.0 章 “电气规范”中删除。 删 除了 28 引脚 塑封 四方 扁平 无引 线封 装 (ML) (QFN-S)。 比较器 USART 1 2 无 有 扩展的 WDT 无 有 WDT/BOR 的软件控制 选项 无 有 4 MHz 32 kHz-8 MHz 无 有 版本 F 更新了整个文档。将“初稿”从数据手册中删除。添加 了 特 征 数 据 章 节。更 新 了 电 气 规 范 章 节。添 加 了 PIC16F946 器件。 2007 Microchip Technology Inc. INTOSC 频率 时钟切换 DS41250F_CN 第 315 页 PIC16F913/914/916/917/946 附录 C: 转换注意事项 表 C-1 列出了从老版本的器件转换到本数据手册中所列 的版本时的注意事项。 表 C-1: 转换注意事项 特性 引脚数 PIC16F91X/946 PIC16F87X PIC16F87XA 28/40/64 28/40 28/40 3 3 3 11 或 12 13 或 14 14 或 15 USART, SSP(1) (SPI, I2C™ 从模式) 20 MHz PSP, USART, SSP (SPI,I2C 主 / 从模式) 20 MHz PSP, USART, SSP (SPI,I2C 主 / 从模式) 20 MHz 2.0V 至 5.5V 2.2V 至 5.5V 2.0V 至 5.5V 10 位 7 种转换时钟可供选择 2 10 位 4 种转换时钟可供选择 2 10 位 7 种转换时钟可供选择 2 比较器数 2 — 2 比较器参考电压 有 — 有 4K 和 8K 闪存 4K 和 8K 闪存 (单字擦 / 写) 4K 和 8K 闪存 (4 字块擦 / 写) 256/336/352 字节 192/368 字节 192/368 字节 256 字节 128/256 字节 128/256 字节 开/关 分段,从程序存储器末尾开 始 开/关 — 开/关 16 或 24 段驱动器, 4 个公共端 — 分段,从程序存储器 开头开始 — 在线调试器, 低电压编程 在线调试器, 低电压编程 在线调试器, 低电压编程 定时器数 中断数 通信方式 频率 电压 A/D CCP 程序存储器 RAM 数据 EEPROM 代码保护 程序存储器写保护 LCD 模块 其他 注 1: PIC16F91X 器件的 SSP 和 USART 共用同一引脚。 DS41250F_CN 第 316 页 2007 Microchip Technology Inc. PIC16F917/916/914/913 索引 A A/D 规范................................................................... 272, 273 ACK 脉冲........................................................................... 202 ADC .................................................................................. 175 采集要求.................................................................... 183 参考电压 (VREF).................................................... 176 端口配置.................................................................... 176 工作原理.................................................................... 178 计算采集时间 ............................................................ 183 结果格式化 ................................................................ 178 框图........................................................................... 175 内部采样开关阻抗 (RSS)........................................ 183 配置........................................................................... 176 配置中断.................................................................... 179 启动 A/D 转换............................................................ 178 特殊事件触发器......................................................... 178 通道选择.................................................................... 176 相关的寄存器 ............................................................ 185 休眠模式下的工作原理 .............................................. 178 源阻抗 ....................................................................... 183 中断........................................................................... 177 转换过程.................................................................... 179 转换时钟.................................................................... 176 ADCON0 寄存器 ............................................................... 180 ADCON1 寄存器 ............................................................... 181 ADRESH 寄存器 (ADFM = 0)........................................ 182 ADRESH 寄存器 (ADFM = 1)........................................ 182 ADRESL 寄存器 (ADFM = 0)........................................ 182 ADRESL 寄存器 (ADFM = 1)........................................ 182 ANSEL 寄存器 .................................................................... 43 AUSART ........................................................................... 121 波特率发生器 (BRG) 波特率误差,计算 ............................................. 132 波特率,异步模式 ............................................. 133 高波特率选择位 (BRGH 位)........................... 132 计算公式 ........................................................... 132 同步从模式 发送................................................................... 139 接收................................................................... 140 相关的寄存器 发送........................................................... 139 接收........................................................... 140 同步主模式 ........................................................ 135, 139 发送................................................................... 135 接收................................................................... 137 相关的寄存器 发送........................................................... 136 接收........................................................... 138 相关的寄存器 波特率发生器 .................................................... 132 异步模式.................................................................... 123 9 位地址检测模式设置....................................... 128 波特率发生器 (BRG)..................................... 132 发送器 ............................................................... 123 接收器 ............................................................... 126 相关的寄存器 发送........................................................... 125 接收........................................................... 129 B BF 位 ................................................................................. 194 版本历史............................................................................ 315 2007 Microchip Technology Inc. 比较器 复位的影响................................................................ 115 规范 .......................................................................... 271 将 C2OUT 作为 T1 的门控信号源 ............................. 103 比较器 .............................................................................. 109 工作原理 .......................................................... 109, 114 将 C2OUT 作为 T1 的门控信号源 ............................ 117 配置 ......................................................................... 112 同步 COUT w/Timer1 ............................................... 117 响应时间 .................................................................. 114 休眠期间工作原理 .................................................... 115 中断 ......................................................................... 114 比较器参考电压 (CVREF) 响应时间 .................................................................. 114 比较器参考电压 (CVREF) .............................................. 118 复位的影响 ............................................................... 115 规范 ......................................................................... 271 比较器模块 相关的寄存器 ........................................................... 119 比较模块。 参见捕捉 / 比较 /PWM 模块 (CCP) 编程,器件指令 ............................................................... 241 变更通知客户服务 ............................................................ 325 捕捉 / 比较 /PWM 模块 (CCP) ...................................... 211 比较模式 .................................................................. 214 CCPx 引脚配置 ................................................ 214 软件中断模式 ........................................... 213, 214 特殊事件触发信号 ............................................ 214 Timer1 模式选择 ...................................... 213, 214 捕捉模式 .................................................................. 213 CCPx 引脚配置 ........................................................ 213 定时器资源 ............................................................... 211 两个 CCP 模块的相互关系 (表) ............................ 211 PWM 周期 ................................................................ 216 PWM 模式................................................................. 215 20 MHz 时的 PWM 频率与分辨率示例 ............. 217 8 MHz 时的 PWM 频率与分辨率示例 ............... 217 复位的影响 ...................................................... 218 设置工作模式 ................................................... 218 系统时钟频率改变 ............................................ 218 休眠模式下的操作 ............................................ 218 占空比 .............................................................. 216 设置 PWM 工作模式 ................................................ 218 相关的 w/ 捕捉 / 比较 /PWM 寄存器 ......................... 218 预分频器 .................................................................. 213 捕捉模块。参见捕捉 / 比较 /PWM 模块 (CCP) C C 编译器 MPLAB C18.............................................................. 252 MPLAB C30.............................................................. 252 参考电压 相关的寄存器 ........................................................... 119 参考电压。 参见比较器参考电压 (CVREF) 操作码字段说明 ............................................................... 241 CCP。 参见捕捉 / 比较 /PWM 模块 (CCP) CCPxCON 寄存器 ............................................................ 212 产品标识体系 ................................................................... 327 程序存储器 ......................................................................... 23 分页 ........................................................................... 40 映射和堆栈 (PIC16F913/914) ................................ 23 映射和堆栈 (PIC16F916/917/946) ......................... 23 CKE 位 ............................................................................. 194 CKP 位 ............................................................................. 195 CMCON0 寄存器 ............................................................. 116 DS41250F_CN 第 317 页 PIC16F917/916/914/913 CMCON1 寄存器 .............................................................. 117 CONFIG1 寄存器 ............................................................. 220 从选择同步 ....................................................................... 199 从其他 PIC 单片机中移植 ................................................. 315 CPU 的特性 ...................................................................... 219 存储器构成 ......................................................................... 23 程序 ............................................................................ 23 数据 ............................................................................ 24 D D/A 位 ............................................................................... 194 DC 和 AC 特性 图表 .......................................................................... 283 代码保护 ........................................................................... 238 代码示例 A/D 转换 ................................................................... 179 初始化 PORTA ............................................................ 44 初始化 PORTB ............................................................ 53 初始化 PORTC............................................................ 62 初始化 PORTD............................................................ 71 初始化 PORTE ............................................................ 76 初始化 PORTF ............................................................ 81 初始化 PORTG............................................................ 84 间接寻址 ..................................................................... 41 将预分频器分配给 Timer0 ......................................... 100 将预分频器分配给 WDT ............................................ 100 将 Status 和 W 寄存器保存在 RAM 中 ...................... 233 切换捕捉预分频比 .................................................... 213 在 Page 0 中调用 Page 1 中的子程序 ........................ 40 装载 SSPBUF (SSPSR)寄存器 ........................... 196 电气规范 ........................................................................... 255 掉电模式 (休眠) ............................................................ 236 定时器 Timer1 T1CON.............................................................. 105 Timer2 T2CON.............................................................. 108 读 - 修改 - 写操作 .............................................................. 241 E EEADRH 寄存器 ...................................................... 187, 188 EEADRL 寄存器 ............................................................... 188 EEADRL 寄存器 ............................................................... 187 EECON1 寄存器 ....................................................... 187, 189 EECON2 寄存器 ............................................................... 187 EEDATH 寄存器 ............................................................... 188 EEDATL 寄存器 ............................................................... 188 F 封装 .................................................................................. 305 标识 .................................................................. 305, 306 PDIP 详细信息 ......................................................... 307 Fuses. 见配置位 复位 .................................................................................. 221 复位的影响 PWM 模式 ................................................................ 218 负载条件 ........................................................................... 264 G 高精度内部振荡器参数 ...................................................... 267 更新地址位, UA............................................................... 194 故障保护时钟监视器 ........................................................... 97 复位或从休眠状态唤醒 ............................................... 97 故障保护工作原理 ...................................................... 97 DS41250F_CN 第 318 页 故障保护检测 ............................................................. 97 清除故障保护条件 ...................................................... 97 固件指令 .......................................................................... 241 H 汇编器 MPASM 汇编器 ........................................................ 252 I I/O 端口 .............................................................................. 43 I2C 模式 选择模式 .................................................................. 202 寻址 ......................................................................... 203 从模式 SCL 和 SDA 引脚 ............................................. 202 多主器件模式 ........................................................... 208 发送 ......................................................................... 206 工作原理 .................................................................. 202 接收 ......................................................................... 204 主模式 ...................................................................... 208 相关的寄存器 ........................................................... 209 ID 地址单元 ...................................................................... 238 INTCON 寄存器 ................................................................. 34 INTOSC 规范 ............................................................ 266,267 IOCB 寄存器 ...................................................................... 54 J 寄存器 ADCON0 (ADC 控制寄存器 0) ............................. 180 ADCON1 (ADC 控制寄存器 1) ............................. 181 ADRESH (ADC 结果寄存器的高字节, 且 ADFM = 0)...................... 182 ADRESH (ADC 结果寄存器的高字节, 且 ADFM = 1)...................... 182 ADRESL (ADC 结果寄存器的低字节, 且 ADFM = 0)...................... 182 ADRESL (ADC 结果寄存器的低字节, 且 ADFM = 1)...................... 182 ANSEL (模拟选择寄存器) ....................................... 43 CCPxCON (CCP 操作) ........................................ 212 CMCON0 (比较器控制 0) ..................................... 116 CMCON1 (比较器控制 1) ..................................... 117 CONFIG1 (配置字寄存器 1) ................................. 220 EEADRH (EEPROM 地址高字节) ........................ 188 EEADRL (EEPROM 地址低字节) ......................... 188 EECON1 (EEPROM 控制 1) ................................ 189 EEDATH (EEPROM 数据高字节) ........................ 188 EEDATL (EEPROM 数据低字节) ......................... 188 复位值 ...................................................................... 226 复位值 (特殊寄存器) ............................................. 229 INTCON (中断控制寄存器) ..................................... 34 IOCB (PORTB 电平变化中断寄存器) ..................... 54 LCDCON (LCD 控制寄存器) ................................ 145 LCDDATAx (LCD 数据寄存器) ............................. 147 LCDPS (LCD 预分频比选择寄存器) ..................... 146 LCDSEn (LCD 段使能寄存器) .............................. 147 LVDCON (低电压检测控制寄存器) ....................... 173 OPTION_REG (OPTION) .............................. 33, 101 OSCCON (振荡器控制寄存器) ............................... 88 OSCTUNE (振荡器调节寄存器) ............................. 92 PCON (电源控制寄存器) ...................................... 224 PCON (电源控制寄存器) ........................................ 39 PIE1 (外设中断允许寄存器 1) ................................ 35 PIE2 (外设中断允许寄存器 2) ................................ 36 PIR1 (外设中断寄存器 1) ....................................... 37 PIR2 (外设中断请求寄存器 2) ................................ 38 2007 Microchip Technology Inc. PIC16F917/916/914/913 PORTA........................................................................ 44 PORTB........................................................................ 54 PORTC ....................................................................... 62 PORTD ....................................................................... 71 PORTE........................................................................ 76 PORTF........................................................................ 81 PORTG ....................................................................... 84 RCSTA (接收状态和控制寄存器) .......................... 131 SSPCON (同步串行端口控制)寄存器 .................. 195 SSPSTAT (同步串行端口状态)寄存器 ................. 194 STATUS...................................................................... 32 T1CON...................................................................... 105 T2CON...................................................................... 108 特殊功能寄存器映射 PIC16F913/916................................................... 25 PIC16F914/917................................................... 26 PIC16F946.......................................................... 27 特殊寄存器汇总 BANK 0 ............................................................... 28 BANK 1 ............................................................... 29 BANK 2 ............................................................... 30 BANK 3 ............................................................... 31 TRISA (PORTA 三态) ............................................ 44 TRISB (PORTB 三态) ............................................ 54 TRISC (PORTC 三态) ........................................... 62 TRISD (PORTD 三态) ........................................... 71 TRISE (PORTE 三态) ............................................ 76 TRISF (PORTF 三态) ............................................. 81 TRISG (三态 PORTG) ............................................ 84 TXST (发送状态和控制寄存器) ............................. 130 VRCON (参考电压控制) ....................................... 118 WDTCON (看门狗定时器控制 ) ........................... 235 WPUB (弱上拉 PORTB) ......................................... 55 间接寻址、 INDF 和 FSR 寄存器 ....................................... 41 接收溢出指示位 (SSPOV) ............................................ 195 交流特性 负载条件 ................................................................... 264 工业级和扩展级 ........................................................ 265 绝对最大值 ....................................................................... 255 看门狗定时器 (WDT) ............................................ 234 LCD 驱动模块 .......................................................... 144 LCD 时钟产生 .......................................................... 150 LCD 梯形电阻连接 ................................................... 148 MCLR 电路 .............................................................. 222 模拟输入模型 ................................................... 111, 184 片上复位电路 ........................................................... 221 PIC16F913/916 .......................................................... 15 PIC16F914/917 .......................................................... 16 PIC16F946 ................................................................. 17 RA0 引脚 ................................................................... 45 RA1 引脚 ................................................................... 46 RA2 引脚 ................................................................... 47 RA3 引脚 ................................................................... 48 RA4 引脚 ................................................................... 49 RA5 引脚 ................................................................... 50 RA6 引脚 ................................................................... 51 RA7 引脚 ................................................................... 52 RB 引脚 ..................................................................... 56 RB4 引脚 ................................................................... 57 RB5 引脚 ................................................................... 58 RB6 引脚 ................................................................... 59 RB7 引脚 ................................................................... 60 RC0 引脚 ................................................................... 63 RC1 引脚 ................................................................... 64 RC2 引脚 ................................................................... 64 RC3 引脚 ................................................................... 65 RC4 引脚 ................................................................... 66 RC5 引脚 ................................................................... 67 RC6 引脚 ................................................................... 68 RC7 引脚 ................................................................... 69 RD 引脚 ..................................................................... 74 RD0 引脚 ................................................................... 73 RD1 引脚 ................................................................... 73 RD2 引脚 ................................................................... 74 RE 引脚 ..................................................................... 78 RE 引脚 ..................................................................... 79 RE3 引脚 ................................................................... 78 RF 引脚 ...................................................................... 83 RG 引脚 ..................................................................... 85 时钟源 ........................................................................ 87 SSP (I2C 模式) ..................................................... 202 SSP (SPI 模式) .................................................... 193 Timer1 ...................................................................... 102 Timer2 ...................................................................... 107 TMR0/WDT 预分频器 ................................................ 99 外部 RC 模式 ............................................................. 91 谐振器的工作原理 ...................................................... 90 故障保护时钟监视器 (FSCM) ................................. 97 在线串行编程连接 .................................................... 238 中断逻辑 .................................................................. 231 K 开发支持 ........................................................................... 251 勘误表 ................................................................................ 13 看门狗定时器 (WDT) .................................................... 234 规范 .......................................................................... 269 模式 .......................................................................... 234 时钟源 ...................................................................... 234 相关的寄存器 ........................................................... 235 周期 ........................................................................... 234 客户支持 ........................................................................... 325 客户通知服务 ................................................................... 325 可寻址通用同步 / 异步收发器 (AUSART) ..................... 121 可编程低电压检测 (PLVD)模块 .................................... 171 PLVD 工作原理 ........................................................ 171 框图 (CCP)捕捉模式工作原理 ...................................... 213 ADC .......................................................................... 175 ADC 转换功能 .......................................................... 184 AUSART 发送 .......................................................... 121 AUSART 接收 .......................................................... 122 比较器 1 .................................................................... 110 比较器 2 .................................................................... 110 比较器模式 ............................................................... 113 比较模式工作原理 .................................................... 214 CCP PWM................................................................. 215 晶振工作原理 ............................................................. 90 2007 Microchip Technology Inc. L LCD 波形产生 .................................................................. 153 段使能 ...................................................................... 149 复用类型 .................................................................. 149 禁止该模块 ............................................................... 167 LCDCON 寄存器 ...................................................... 143 LCDDATA 寄存器 .................................................... 143 LCDPS 寄存器 ......................................................... 143 配置该模块 ............................................................... 167 偏置类型 .................................................................. 148 时钟源选择 ............................................................... 148 相关的寄存器 ........................................................... 168 像素控制 .................................................................. 149 DS41250F_CN 第 319 页 PIC16F917/916/914/913 预分频器 ................................................................... 148 在休眠模式下工作 .................................................... 165 帧频率 ...................................................................... 149 中断 .......................................................................... 164 LCDCON 寄存器 ...................................................... 143, 145 LCDDATA 寄存器 ............................................................. 143 LCDDATAx 寄存器 ........................................................... 147 LCDPS 寄存器 ......................................................... 143, 146 LP 位 ........................................................................ 148 LCDSEn 寄存器 ............................................................... 147 M MCLR ................................................................................ 222 内部 .......................................................................... 222 Microchip 因特网网站 ....................................................... 325 模数转换器。 参见 ADC 模拟输入连接注意事项 ..................................................... 111 MPLAB ASM30 汇编器、链接器和库管理器 .................... 252 MPLAB ICD 2 在线调试器 ................................................ 253 MPLAB ICE 2000 高性能通用在线仿真器 ........................ 253 MPLAB PM3 器件编程器 .................................................. 253 MPLAB REAL ICE 在线仿真器系统 ................................. 253 MPLAB 集成开发环境软件 ............................................... 251 MPLINK 目标链接器 /MPLIB 目标库管理器 ...................... 252 N 内部集成电路 (I2C)。 参见 I2C 模式 内部采样开关阻抗 (RSS) ............................................... 183 内部振荡器电路 INTOSC 规范 .......................................................... 266, 267 O OPTION 寄存器 .................................................................. 33 OPTION_REG 寄存器 ...................................................... 101 OSCCON 寄存器 ................................................................ 88 OSCTUNE 寄存器 .............................................................. 92 P P (停止)位 .................................................................... 194 PCL 和 PCLATH.................................................................. 40 堆栈 ............................................................................ 40 相对跳转 ..................................................................... 40 PCON 寄存器 ............................................................. 39, 224 配置位 .............................................................................. 220 PICSTART Plus 开发编程器 ............................................ 254 PIE1 寄存器 ........................................................................ 35 PIE2 寄存器 ........................................................................ 36 PIR1 寄存器 ....................................................................... 37 PIR2 寄存器 ....................................................................... 38 PLVD 相关的寄存器 ........................................................... 173 PORTA 规范 .......................................................................... 267 寄存器 ........................................................................ 44 其余的引脚功能 ANSEL 寄存器 ................................................... 43 RA0 ............................................................................. 45 RA1 ............................................................................. 46 RA2 ............................................................................. 47 RA3 ............................................................................. 48 RA4 ............................................................................. 49 RA5 ............................................................................. 50 RA6 ............................................................................. 51 RA7 ............................................................................. 52 DS41250F_CN 第 320 页 相关的寄存器 ............................................................. 52 引脚说明及框图 ......................................................... 45 PORTA 寄存器 ................................................................... 44 PORTB 电平变化中断 ............................................................. 53 寄存器 ........................................................................ 53 其余的引脚功能 ......................................................... 53 弱上拉 ................................................................ 53 RB0............................................................................. 56 RB1............................................................................. 56 RB2............................................................................. 56 RB3............................................................................. 56 RB4............................................................................. 57 RB5............................................................................. 58 RB6............................................................................. 59 RB7............................................................................. 60 相关的寄存器 ............................................................. 61 引脚说明及框图 ......................................................... 56 PORTB 寄存器 ................................................................... 54 PORTC 规范 ......................................................................... 267 RC0 ............................................................................ 63 RC1 ............................................................................ 63 RC2 ............................................................................ 63 RC3 ............................................................................ 65 RC4 ............................................................................ 66 RC5 ............................................................................ 67 RC6 ............................................................................ 68 RC7 ............................................................................ 69 寄存器 ........................................................................ 62 相关的寄存器 ............................................................. 70 引脚说明及框图 ......................................................... 63 PORTC 寄存器 .................................................................. 62 PORTD RD0 ............................................................................ 72 RD1 ............................................................................ 72 RD2 ............................................................................ 72 RD3 ............................................................................ 72 RD4 ............................................................................ 72 RD5 ............................................................................ 72 RD6 ............................................................................ 72 RD7 ............................................................................ 72 寄存器 ........................................................................ 71 相关的寄存器 ............................................................. 75 引脚说明及框图 ......................................................... 72 PORTD 寄存器 .................................................................. 71 PORTE RE0............................................................................. 77 RE1............................................................................. 77 RE2............................................................................. 77 RE3............................................................................. 77 RE4............................................................................. 77 RE5............................................................................. 77 RE6............................................................................. 77 RE7............................................................................. 77 寄存器 ........................................................................ 76 相关的寄存器 ............................................................. 80 引脚说明及框图 ......................................................... 77 PORTE 寄存器 ................................................................... 76 PORTF RF0 ............................................................................. 82 RF1 ............................................................................. 82 RF2 ............................................................................. 82 RF3 ............................................................................. 82 RF4 ............................................................................. 82 2007 Microchip Technology Inc. PIC16F917/916/914/913 RF5 ............................................................................. 82 RF6 ............................................................................. 82 RF7 ............................................................................. 82 寄存器 ........................................................................ 81 相关的寄存器 ............................................................. 83 引脚说明及框图 .......................................................... 82 PORTF 寄存器 ................................................................... 81 PORTG RG0............................................................................. 85 RG1............................................................................. 85 RG2............................................................................. 85 RG3............................................................................. 85 RG4............................................................................. 85 RG5............................................................................. 85 寄存器 ........................................................................ 84 相关的寄存器 ............................................................. 86 引脚说明及框图 .......................................................... 85 PORTG 寄存器 ................................................................... 84 Q 器件综述 ............................................................................. 15 欠压复位 (BOR) ............................................................ 223 校准 .......................................................................... 223 规范 .......................................................................... 269 时序和特性 ............................................................... 268 相关的寄存器 ........................................................... 224 R R/W 位 .............................................................................. 194 RCREG ............................................................................. 128 RCSTA 寄存器 ................................................................. 131 RF 框图 ............................................................................... 83 软件模拟器 (MPLAB SIM) ............................................ 252 S S (起始)位 .................................................................... 194 散热考虑 ........................................................................... 263 双速时钟启动模式 .............................................................. 95 闪存程序存储器 ................................................................ 187 上电复位 ........................................................................... 222 上电延时定时器 (PWRT) .............................................. 222 规范 .......................................................................... 269 时钟切换 ............................................................................. 95 时钟源 内部模式 ..................................................................... 91 HFINTOSC ......................................................... 91 INTOSC .............................................................. 91 INTOSCIO .......................................................... 91 LFINTOSC .......................................................... 93 频率选择 ............................................................ 93 外部模式 ..................................................................... 89 EC ....................................................................... 89 HS ....................................................................... 90 LP ....................................................................... 90 OST .................................................................... 89 RC....................................................................... 91 XT ....................................................................... 90 时序参数符号 ................................................................... 264 时序要求 I2C 总线起始位 / 停止位 ........................................... 281 I2C 总线数据 ............................................................ 282 SPI 模式 ................................................................... 280 时序图 1/4 占空比驱动中的 LCD 中断时序 .......................... 164 A/D 转换 (休眠模式) ............................................. 274 A/D 转换 ................................................................... 274 2007 Microchip Technology Inc. 比较器输出 ............................................................... 109 捕捉 / 比较 /PWM...................................................... 276 CLKOUT 和 I/O ......................................................... 267 从中断唤醒 ............................................................... 237 从同步 ...................................................................... 199 当 SLPEN = 1 或 CS = 00 时进入 / 退出 LCD 休眠模式 ......................................... 166 复位、 WDT、 OST 和上电延时定时器 .................... 268 故障保护时钟监视器 (FSCM) ................................. 98 I2C 从模式 (发送, 10 位地址) ............................. 207 I2C 从模式,且 SEN = 0 (接收, 10 位地址) ........ 205 I2C 接收 (7 位地址) .............................................. 204 I2C 发送 (7 位地址) .............................................. 206 I2C 总线起始位 / 停止位 ........................................... 280 I2C 总线数据 ............................................................ 281 INT 引脚中断 ........................................................... 232 内部振荡器切换时序 .................................................. 94 欠压复位 (BOR) ................................................... 268 欠压复位情形 ........................................................... 223 时钟时序 .................................................................. 265 时钟同步 .................................................................. 209 双速启动 .................................................................... 96 SPI 从模式 (CKE = 0) .......................................... 279 SPI 从模式 (CKE = 1) .......................................... 279 SPI 主模式 (CKE = 1, SMP = 1) ........................ 278 SPI 模式 (从模式且 CKE = 0) ............................... 200 SPI 模式 (从模式且 CKE = 1) ............................... 200 SPI 模式 (主模式) ................................................. 198 Timer0 和 Timer1 外部时钟 ...................................... 270 TIMER1 递增边沿 .................................................... 104 同步发送 .................................................................. 136 同步发送 (通过 TXEN 位) ..................................... 136 同步接收 (主模式, SREN) .................................. 138 异步发送 .................................................................. 124 异步发送 (背靠背) ................................................ 124 异步接收 .................................................................. 128 USART 同步发送 (主 / 从) .................................... 275 USART 同步接收 (主 / 从模式) ............................. 275 延时时序 情形 1 ............................................................... 225 情形 2 ............................................................... 225 情形 3 ............................................................... 225 在 1/2 复用、 1/2 偏置驱动时的 A 型波形 ................ 154 在 1/2 复用、 1/2 偏置驱动时的 B 型波形 ................ 155 在 1/2 复用、 1/3 偏置驱动时的 A 型波形 ................ 156 在 1/2 复用、 1/3 偏置驱动时的 B 型波形 ................ 157 在 1/3 复用、 1/2 偏置驱动时的 A 型波形 ................ 158 在 1/3 复用、 1/2 偏置驱动时的 B 型波形 ................ 159 在 1/3 复用、 1/3 偏置驱动时的 A 型波形 ................ 160 在 1/3 复用、 1/3 偏置驱动时的 B 型波形 ................ 161 在 1/4 复用、 1/3 偏置驱动时的 A 型波形 ................ 162 在 1/4 复用、 1/3 偏置驱动时的 B 型波形 ................ 163 在静态驱动时的 A/B 型波形 ..................................... 153 使用中断唤醒 ................................................................... 236 数据 / 地址位 (D/A) ....................................................... 194 数据存储器 ......................................................................... 24 数据 EEPROM 存储器 ..................................................... 187 写 ............................................................................. 190 读 ............................................................................. 190 相关的寄存器 ........................................................... 192 SMP 位 ............................................................................ 194 SPBRG ............................................................................. 132 SPI 模式 ................................................................... 193, 199 从选择 ...................................................................... 193 从选择同步 ............................................................... 199 串行时钟 (SCK 引脚) ............................................ 193 DS41250F_CN 第 321 页 PIC16F917/916/914/913 串行数据输出 (SDO 引脚) .................................... 193 串行数据输入 (SDI 引脚) ...................................... 193 典型连接 ................................................................... 197 复位的影响 ............................................................... 201 使能 SPI I/O .............................................................. 197 SPI 时钟 ................................................................... 198 休眠模式下的工作 .................................................... 201 相关的寄存器 ........................................................... 201 主 / 从器件连接 ......................................................... 197 主模式 ...................................................................... 198 总线模式兼容性 ........................................................ 201 SSP 概述 SPI 主 / 从器件连接 .................................................. 197 SSP I2C 工作原理 ............................................................ 202 从模式 ...................................................................... 202 SSPCON 寄存器 .............................................................. 195 SSPEN 位 ........................................................................ 195 SSP 模块 时钟同步与 CKP 位 .................................................. 208 SPI 从模式 ................................................................ 199 SPI 主模式 ................................................................ 198 SSPBUF.................................................................... 198 SSPSR ...................................................................... 198 SSPM 位 .......................................................................... 195 SSPOV 位 ........................................................................ 195 SSPSTAT 寄存器 ............................................................. 194 STATUS 寄存器 ................................................................. 32 T T1CON 寄存器 ................................................................. 105 T2CON 寄存器 ................................................................. 108 特殊功能寄存器 .................................................................. 24 特殊事件触发器 ................................................................ 178 Timer0 ................................................................................. 99 工作原理 ............................................................. 99, 102 规范 .......................................................................... 270 T0CKI ........................................................................ 100 外部时钟 ................................................................... 100 相关的寄存器 ........................................................... 101 中断 .......................................................................... 101 Timer1 ............................................................................... 102 工作模式 ................................................................... 102 规范 .......................................................................... 270 Timer1 门控 设置门控极性 ................................................... 103 同步 COUT w/Timer1........................................ 117 选择源 ...................................................... 103, 117 TMR1H 寄存器 ......................................................... 102 TMR1L 寄存器 .......................................................... 102 休眠期间工作原理 .................................................... 104 相关的寄存器 ........................................................... 106 异步计数器模式 ........................................................ 103 读写操作 ........................................................... 103 预分频器 ................................................................... 103 振荡器 ...................................................................... 103 中断 .......................................................................... 104 Timer2 相关的寄存器 ........................................................... 108 通用文件寄存器 .................................................................. 24 同步串行端口。参见 SSP 同步串行端口使能位 (SSPEN) ..................................... 195 同步串行端口模式选择位 (SSPM) ................................ 195 TRISA 寄存器 ........................................................................ 44 DS41250F_CN 第 322 页 TRISA 寄存器 .................................................................... 44 TRISB 寄存器 ........................................................................ 53 TRISB 寄存器 .................................................................... 54 TRISC 寄存器 ........................................................................ 62 TRISC 寄存器 .................................................................... 62 TRISD 寄存器 ........................................................................ 71 TRISD 寄存器 .................................................................... 71 TRISE 寄存器 ........................................................................ 76 TRISE 寄存器 .................................................................... 76 TRISF 寄存器 ........................................................................ 81 TRISF 寄存器 ..................................................................... 81 TRISG 寄存器 ........................................................................ 84 TRISG 寄存器 .................................................................... 84 TXREG ............................................................................. 123 TXSTA 寄存器 ................................................................. 130 BRGH 位 .................................................................. 132 U UA..................................................................................... 194 USART 同步主模式 要求,同步发送 ............................................... 275 要求,同步接收 ............................................... 275 时序图,同步发送 ............................................ 275 时序图,同步接收 ............................................ 275 V VREF。参见 ADC 参考电压 W WCOL 位 ......................................................................... 195 WDTCON 寄存器 ............................................................. 235 WPUB 寄存器 .................................................................... 55 WWW 地址 ....................................................................... 325 WWW 在线支持 ................................................................. 13 X 写冲突检测位 (WCOL).................................................. 195 Y 延时时序 .......................................................................... 224 液晶显示 (LCD)驱动模块 ............................................. 143 引脚配置说明 ..................................................................... 18 引脚框图 PIC16F913/916, 28 引脚 ........................................... 4 PIC16F914/917, 40 引脚 ........................................... 2 PIC16F914/917, 44 引脚 ........................................... 7 PIC16F946, 64 引脚 ................................................ 10 因特网地址 ....................................................................... 325 预分频器 共享 WDT/Timer0 ..................................................... 100 切换预分频器的分配 ................................................ 100 Z 在线串行编程 (ICSP) .................................................... 238 在线调试器 ....................................................................... 239 直流特性 工业级和扩展级 ....................................................... 257 扩展级和工业级 ....................................................... 261 指令的格式 ....................................................................... 241 2007 Microchip Technology Inc. PIC16F917/916/914/913 指令集 .............................................................................. 241 ADDLW ..................................................................... 243 ADDWF..................................................................... 243 ANDLW ..................................................................... 243 ANDWF..................................................................... 243 BCF........................................................................... 243 BSF ........................................................................... 243 BTFSC ...................................................................... 243 BTFSS ...................................................................... 244 CALL ......................................................................... 244 CLRF......................................................................... 244 CLRW ....................................................................... 244 CLRWDT................................................................... 244 COMF ....................................................................... 244 DECF ........................................................................ 244 DECFSZ.................................................................... 245 GOTO ....................................................................... 245 INCF.......................................................................... 245 INCFSZ ..................................................................... 245 IORLW ...................................................................... 245 IORWF ...................................................................... 245 MOVF........................................................................ 246 MOVLW .................................................................... 246 MOVWF .................................................................... 246 NOP .......................................................................... 246 RETFIE ..................................................................... 247 RETLW ..................................................................... 247 RETURN ................................................................... 247 RLF ........................................................................... 248 RRF........................................................................... 248 SLEEP ...................................................................... 248 SUBLW ..................................................................... 248 SUBWF ..................................................................... 249 SWAPF ..................................................................... 249 XORLW..................................................................... 249 XORWF..................................................................... 249 综述表 ...................................................................... 242 振荡器 相关的寄存器 ..................................................... 98, 106 振荡器参数 ....................................................................... 266 振荡器规范 ....................................................................... 265 振荡器起振定时器 (OST) 规范 .......................................................................... 269 振荡器模块 ......................................................................... 87 EC ............................................................................... 87 HFINTOSC.................................................................. 87 HS ............................................................................... 87 INTOSC ...................................................................... 87 INTOSCIO................................................................... 87 LFINTOSC .................................................................. 87 LP................................................................................ 87 RC............................................................................... 87 RCIO ........................................................................... 87 XT ............................................................................... 87 振荡器开关 故障保护时钟监视器 ................................................... 97 双速时钟启动 ............................................................. 95 中断 .................................................................................. 230 ADC .......................................................................... 179 比较器 ...................................................................... 114 电平变化中断 ............................................................. 53 PORTB 电平变化中断寄存器 ................................... 231 RB0/INT/SEG0.......................................................... 231 TMR0 ........................................................................ 231 TMR1 ........................................................................ 104 现场保护 ................................................................... 233 2007 Microchip Technology Inc. 相关的寄存器 ........................................................... 232 转换注意事项 .................................................................... 316 DS41250F_CN 第 323 页 PIC16F917/916/914/913 注: DS41250F_CN 第 324 页 2007 Microchip Technology Inc. PIC16F913/914/916/917/946 MICROCHIP 网站 客户支持 Microchip 网站 (www.microchip.com)为客户提供在 线支持。客户可通过该网站方便地获取文件和信息。只 要使用常用的因特网浏览器即可访问。网站提供以下信 息: Microchip 产品的用户可通过以下渠道获得帮助: • 产品支持——数据手册和勘误表、应用笔记和样本 程序、设计资源、用户指南以及硬件支持文档、最 新的软件版本以及存档软件 • 一般技术支持——常见问题 (FAQ)、技术支持请 求、在线讨论组以及 Microchip 顾问计划成员名单 • Microchip 业务——产品选型和订购指南、最新 Microchip 新闻稿、研讨会和活动安排表、 Microchip 销售办事处、代理商以及工厂代表列表 • • • • • 代理商或代表 当地销售办事处 应用工程师 (FAE) 技术支持 开发系统信息热线 客户应联系其代理商、代表或应用工程师 (FAE)寻求 支持。当地销售办事处也可为客户提供帮助。本文档后 附有销售办事处的联系方式。 也可通过 http://support.microchip.com 获得网上技 术支持。 变更通知客户服务 Microchip 的 变更 通知 客户 服务 有助 于客 户了 解 Microchip 产品的最新信息。注册客户可在他们感兴趣 的某个产品系列或开发工具发生变更、更新、发布新版 本或勘误表时,收到电子邮件通知。 欲注册,请登录 Microchip 网站 www.microchip.com, 点击 “变 更通 知客 户 (Customer Change Notification)”服务后按照注册说明完成注册。 2007 Microchip Technology Inc. DS41250F_CN 第 325 页 PIC16F913/914/916/917/946 读者反馈表 我们努力为您提供最佳文档,以确保您能够成功使用 Microchip 产品。如果您对文档的组织、条理性、主题及其他有助 于提高文档质量的方面有任何意见或建议,请填写本反馈表并传真给我公司 TRC 经理,传真号码为 86-21-5407-5066。 请填写以下信息,并从下面各方面提出您对本文档的意见。 致: TRC 经理 总页数 ________ 关于: 读者反馈 发自: 姓名 公司 地址 国家 / 省份 / 城市 / 邮编 电话:(______) __________________ 传真:(______)__________________ 应用(选填) : 您希望收到回复吗?是 器件: 否 PIC16F913/914/916/917/946 文献编号: DS41250F_CN 问题: 1. 本文档中哪些部分最有特色? 2. 本文档是否满足了您的软硬件开发要求?如何满足的? 3. 您认为本文档的组织结构便于理解吗?如果不便于理解,那么问题何在? 4. 您认为本文档应该添加哪些内容以改善其结构和主题? 5. 您认为本文档中可以删减哪些内容,而又不会影响整体使用效果? 6. 本文档中是否存在错误或误导信息?如果存在,请指出是什么信息及其具体页数。 7. 您认为本文档还有哪些方面有待改进? DS41250F_CN 第 326 页 2007 Microchip Technology Inc. PIC16F917/916/914/913 产品标识体系 欲订货或获取价格、交货等信息,请与我公司生产厂或销售办事处联系。 X /XX XXX 温度范围 封装 模式 器件编号 器件 示例: a) b) 器件: PIC16F913, PIC16F913T(1) PIC16F914, PIC16F914T(1) PIC16F916, PIC16F916T(1) PIC16F917, PIC16F917T(1) PIC16F946, PIC16F946T(1) 温度范围: I E = = -40°C 至 +85°C -40°C 至 +125°C 封装: ML P PT SO SP SS = = = = = = 微型引线框 (QFN) 塑封 DIP TQFP (薄型四方扁平封装) SOIC 小型塑封 DIP SSOP 模式: 注 PIC16F913-E/SP 301 = 扩展级温度,小型 PDIP 封装, 20 MHz, QTP 模式 #301 PIC16F913-I/SO = 工业级温度, SOIC 封装, 20 MHz 1: T = 卷带式封装。 3 位数字能表示 QTP 模式 (空白为其他情况) * JW 器件可用紫外线擦除,能编程为任何的器件配置。 JW 器件符合每一类振荡器的电气要求。 2007 Microchip Technology Inc. DS41250F_CN 第 327 页 全球销售及服务网点 美洲 亚太地区 亚太地区 欧洲 公司总部 Corporate Office 2355 West Chandler Blvd. Chandler, AZ 85224-6199 Tel: 1-480-792-7200 Fax: 1-480-792-7277 技术支持: http://support.microchip.com 网址:www.microchip.com 亚太总部 Asia Pacific Office Suites 3707-14, 37th Floor Tower 6, The Gateway Harbour City, Kowloon Hong Kong Tel: 852-2401-1200 Fax: 852-2401-3431 澳大利亚 Australia - Sydney Tel: 61-2-9868-6733 Fax: 61-2-9868-6755 奥地利 Austria - Wels Tel: 43-7242-2244-39 Fax: 43-7242-2244-393 印度 India - Bangalore Tel: 91-80-4182-8400 Fax: 91-80-4182-8422 丹麦 Denmark-Copenhagen Tel: 45-4450-2828 Fax: 45-4485-2829 印度 India - New Delhi Tel: 91-11-4160-8631 Fax: 91-11-4160-8632 法国 France - Paris Tel: 33-1-69-53-63-20 Fax: 33-1-69-30-90-79 印度 India - Pune Tel: 91-20-2566-1512 Fax: 91-20-2566-1513 德国 Germany - Munich Tel: 49-89-627-144-0 Fax: 49-89-627-144-44 日本 Japan - Yokohama Tel: 81-45-471- 6166 Fax: 81-45-471-6122 意大利 Italy - Milan Tel: 39-0331-742611 Fax: 39-0331-466781 亚特兰大 Atlanta Duluth, GA Tel: 678-957-9614 Fax: 678-957-1455 波士顿 Boston Westborough, MA Tel: 1-774-760-0087 Fax: 1-774-760-0088 芝加哥 Chicago Itasca, IL Tel: 1-630-285-0071 Fax: 1-630-285-0075 达拉斯 Dallas Addison, TX Tel: 1-972-818-7423 Fax: 1-972-818-2924 底特律 Detroit Farmington Hills, MI Tel: 1-248-538-2250 Fax: 1-248-538-2260 科科莫 Kokomo Kokomo, IN Tel: 1-765-864-8360 Fax: 1-765-864-8387 洛杉矶 Los Angeles Mission Viejo, CA Tel: 1-949-462-9523 Fax: 1-949-462-9608 圣克拉拉 Santa Clara Santa Clara, CA Tel: 408-961-6444 Fax: 408-961-6445 加拿大多伦多 Toronto Mississauga, Ontario, Canada Tel: 1-905-673-0699 Fax: 1-905-673-6509 中国 - 北京 Tel: 86-10-8528-2100 Fax: 86-10-8528-2104 中国 - 成都 Tel: 86-28-8665-5511 Fax: 86-28-8665-7889 中国 - 福州 Tel: 86-591-8750-3506 Fax: 86-591-8750-3521 中国 - 香港特别行政区 Tel: 852-2401-1200 Fax: 852-2401-3431 中国 - 南京 Tel: 86-25-8473-2460 Fax: 86-25-8473-2470 中国 - 青岛 Tel: 86-532-8502-7355 Fax: 86-532-8502-7205 中国 - 上海 Tel: 86-21-5407-5533 Fax: 86-21-5407-5066 中国 - 沈阳 Tel: 86-24-2334-2829 Fax: 86-24-2334-2393 中国 - 深圳 Tel: 86-755-8203-2660 Fax: 86-755-8203-1760 中国 - 顺德 Tel: 86-757-2839-5507 Fax: 86-757-2839-5571 中国 - 武汉 Tel: 86-27-5980-5300 Fax: 86-27-5980-5118 韩国 Korea - Daegu Tel: 82-53-744-4301 Fax: 82-53-744-4302 韩国 Korea - Seoul Tel: 82-2-554-7200 Fax: 82-2-558-5932 或 82-2-558-5934 马 来 西 亚 Malaysia - Kuala Lumpur Tel: 60-3-6201-9857 Fax: 60-3-6201-9859 荷兰 Netherlands - Drunen Tel: 31-416-690399 Fax: 31-416-690340 西班牙 Spain - Madrid Tel: 34-91-708-08-90 Fax: 34-91-708-08-91 英国 UK - Wokingham Tel: 44-118-921-5869 Fax: 44-118-921-5820 马来西亚 Malaysia - Penang Tel: 60-4-227-8870 Fax: 60-4-227-4068 菲律宾 Philippines - Manila Tel: 63-2-634-9065 Fax: 63-2-634-9069 新加坡 Singapore Tel: 65-6334-8870 Fax: 65-6334-8850 泰国 Thailand - Bangkok Tel: 66-2-694-1351 Fax: 66-2-694-1350 中国 - 西安 Tel: 86-29-8833-7252 Fax: 86-29-8833-7256 台湾地区 - 高雄 Tel: 886-7-536-4818 Fax: 886-7-536-4803 台湾地区 - 台北 Tel: 886-2-2500-6610 Fax: 886-2-2508-0102 台湾地区 - 新竹 Tel: 886-3-572-9526 Fax: 886-3-572-6459 DS41250F_CN 第 328 页 10/05/07 2007 Microchip Technology Inc.