低功耗特性:
单片机的特殊性能:
外设特点:
引脚图——PIC18F6XK22
引脚图——PIC18F8XK22
目录
最新数据手册
勘误表
客户通知系统
1.0 器件概述
1.1 内核特性
1.1.1 纳瓦技术
1.1.2 振荡器选项和特性
1.1.3 存储器选项
1.1.4 外部存储器总线
1.1.5 扩展指令集
1.1.6 易于移植
1.2 其他特殊功能
1.3 系列中各器件的详细信息
表1-1: PIC18F6XK22系列器件(64引脚器件)的特性
表1-2: PIC18F8XK22系列器件(80引脚器件)的特性
图1-1: PIC18F6XK22(64引脚)器件框图
图1-2: PIC18F8XK22(80引脚)器件框图
表1-3: PIC18F6XK22器件I/O引脚说明
表1-4: PIC18F8XK22器件I/O引脚说明
2.0 PIC18FXXKXX单片机入门指南
2.1 基本连接要求
图2-1: 建议的最低限度连接
2.2 电源引脚
2.2.1 去耦电容
2.2.2 槽路电容
2.3 主复位(MCLR)引脚
图2-2: MCLR引脚连接示例
2.4 稳压器引脚(ENVREG和 Vcap/Vddcore)
图2-3: 建议Vcap的频率与ESR性能关系
表2-1: 合适的等效电容
2.4.1 陶瓷电容注意事项
图2-4: 直流偏置电压与电容的关系
2.5 ICSP引脚
2.6 外部振荡器引脚
2.7 未使用的I/O
图2-5: 振荡器电路的建议放置
3.0 振荡器配置
3.1 振荡器类型
表3-1: HS、EC、XT、LP和RC模式:频率范围和设置
图3-1: PIC18F87K22系列器件时钟框图
3.2 控制寄存器
寄存器3-1: OSCCON:振荡器控制寄存器(1)
寄存器3-2: OSCCON2:振荡器控制寄存器2
寄存器3-3: OSCTUNE:振荡器调节寄存器
3.3 时钟源和振荡器切换
3.3.1 OSC1/OSC2振荡器
3.3.2 时钟源选择
3.3.3 振荡器转换
3.4 RC振荡器
图3-2: RC振荡器模式
图3-3: RCIO振荡器模式
3.5 外部振荡器模式
3.5.1 晶振/陶瓷谐振器(HS模式)
表3-2: 陶瓷谐振器的电容选择
表3-3: 晶振的电容选择
图3-4: 晶振/陶瓷谐振器工作原理 (HS或HSPLL配置)
3.5.2 外部时钟输入(EC模式)
图3-5: 外部时钟输入工作原理 (EC配置)
图3-6: 外部时钟输入工作原理 (HS振荡器配置)
3.5.3 PLL倍频器
图3-7: PLL框图
3.6 内部振荡器模块
3.6.1 INTIO模式
图3-8: INTIO1振荡器模式
图3-9: INTIO2振荡器模式
3.6.2 INTPLL模式
3.6.3 内部振荡器输出频率与调节
3.6.4 INTOSC频率漂移
3.7 参考时钟输出
寄存器3-4: REFOCON:参考振荡器控制寄存器
3.8 功耗管理模式对各种时钟源的影响
3.9 上电延时
表3-4: 休眠模式下OSC1和OSC2引脚的状态
4.0 功耗管理模式
4.1 选择功耗管理模式
4.1.1 时钟源
4.1.2 进入功耗管理模式
表4-1: 功耗管理模式
4.1.3 时钟转换和状态指示位
表4-2: 系统时钟指示位
4.1.4 多条SLEEP指令
4.2 运行模式
4.2.1 PRI_RUN模式
4.2.2 SEC_RUN模式
图4-1: 进入SEC_RUN模式的转换时序
图4-2: 从SEC_RUN模式到PRI_RUN模式(HSPLL)的转换时序
4.2.3 RC_RUN模式
表4-3: 内部振荡器频率稳定位
图4-3: 到RC_RUN模式的转换时序
图4-4: 从RC_RUN模式到PRI_RUN模式的转换时序
4.3 休眠模式
4.4 空闲模式
图4-5: 进入休眠模式的转换时序
图4-6: 从休眠模式唤醒的转换时序(HSPLL)
4.4.1 PRI_IDLE模式
4.4.2 SEC_IDLE模式
图4-7: 进入空闲模式的转换时序
图4-8: 从空闲模式唤醒进入运行模式的转换时序
4.4.3 RC_IDLE模式
4.5 有选择的外设模块控制
寄存器4-1: PMD3:外设模块禁止寄存器3
寄存器4-2: PMD2:外设模块禁止寄存器2
寄存器4-3: PMD1:外设模块禁止寄存器1
寄存器4-4: PMD0:外设模块禁止寄存器0
4.6 退出空闲和休眠模式
4.6.1 通过中断退出
4.6.2 通过WDT超时退出
4.6.3 通过复位退出
4.6.4 在没有振荡器起振延时的情况下退出
4.7 超低功耗唤醒功能
例4-1: 初始化超低功耗唤醒功能
图4-9: 初始化超低功耗唤醒功能
表4-4: 通过复位从休眠模式或任何空闲模式唤醒的退出延时(按时钟源分类)
5.0 复位
5.1 RCON寄存器
图5-1: 片上复位电路的简化框图
寄存器5-1: RCON:复位控制寄存器
5.2 主复位(MCLR)
5.3 上电复位(POR)
5.4 欠压复位(BOR)
图5-2: 外部上电复位电路(Vdd慢速上电)
5.4.1 检测BOR
5.5 配置不匹配(CM)
5.6 上电延时定时器(PWRT)
5.6.1 延时时序
图5-3: 上电延时时序(MCLR连接到Vdd,Vdd电压上升时间< Tpwrt)
图5-4: 上电延时时序(MCLR未连接到Vdd):情形1
图5-5: 上电延时时序(MCLR未连接到Vdd):情形2
图5-6: 缓慢上升时间(MCLR连接到Vdd,Vdd电压上升时间> Tpwrt)
5.7 寄存器的复位状态
表5-1: RCON寄存器的状态位及其含义和初始化状态
表5-2: 所有寄存器的初始化状态
6.0 存储器构成
图6-1: PIC18F87K22系列器件的存储器映射
6.1 程序存储器构成
6.1.1 存储器硬编码向量
图6-2: PIC18F87K22系列器件的硬编码向量
6.1.2 程序计数器
6.1.3 返回地址堆栈
图6-3: 返回地址堆栈和相关的寄存器
寄存器6-1: STKPTR:堆栈指针寄存器
6.1.4 快速寄存器堆栈
例6-1: 快速寄存器堆栈代码示例
6.1.5 程序存储器中的查找表
例6-2: 使用偏移量的计算GOTO
6.2 PIC18指令周期
6.2.1 时钟机制
6.2.2 指令流/流水线
图6-4: 时钟/ 指令周期
例6-3: 指令流水线流程
6.2.3 程序存储器中的指令
图6-5: 程序存储器中的指令
6.2.4 双字指令
例6-4: 双字指令
6.3 数据存储器构成
6.3.1 存储区选择寄存器
图6-6: PIC18FX5K22和PIC18FX7K22器件的数据存储器映射
图6-7: 使用存储区选择寄存器(直接寻址)
6.3.2 快速操作存储区
6.3.3 通用寄存器
6.3.4 特殊功能寄存器
表6-1: PIC18F87K22系列器件的特殊功能寄存器映射
表6-2: PIC18F87K22系列器件寄存器汇总
6.3.5 STATUS寄存器
寄存器6-2: STATUS寄存器
6.4 数据寻址模式
6.4.1 固有和立即数寻址
6.4.2 直接寻址
6.4.3 间接寻址
例6-5: 使用间接寻址清零RAM (Bank 1)的方法
图6-8: 间接寻址
6.5 程序存储器和扩展指令集
6.6 数据存储器和扩展指令集
6.6.1 使用立即数偏移量进行变址寻址
6.6.2 受立即数变址寻址模式影响的指令
图6-9: 位和字节操作类指令的寻址方式对比(使能了扩展指令集)
6.6.3 在立即数变址寻址模式下映射快速操 作存储区
6.6.4 立即数变址寻址模式中的BSR
图6-10: 使用立即数变址寻址重新映射快速操作存储区
7.0 闪存程序存储器
7.1 表读和表写
图7-1: 表读操作
图7-2: 表写操作
7.2 控制寄存器
7.2.1 EECON1和EECON2寄存器
寄存器7-1: EECON1:EEPROM控制寄存器1
7.2.2 TABLAT——表锁存寄存器
7.2.3 TBLPTR——表指针寄存器
7.2.4 表指针边界
表7-1: 使用TBLRD和TBLWT指令对表指针进行操作
图7-3: 基于不同操作的表指针边界
7.3 读闪存程序存储器
图7-4: 读闪存程序存储器
例7-3: 读一个闪存程序存储器字
7.4 擦除闪存程序存储器
7.4.1 闪存程序存储器擦除序列
例7-3: 擦除闪存程序存储器行
7.5 写入闪存程序存储器
图7-5: 对闪存程序存储器进行表写操作
7.5.1 闪存程序存储器写操作序列
例7-3: 写闪存程序存储器
7.5.2 写校验
7.5.3 写操作意外终止
7.5.4 防止误写操作
7.6 代码保护期间的闪存程序存储器操作
表7-2: 与闪存程序存储器相关的寄存器
8.0 外部存储器总线
表8-1: PIC18F87K22系列外部总线——I/O端口功能
8.1 外部存储器总线控制
寄存器8-1: MEMCON:外部存储器总线控制寄存器(1)
8.2 地址和数据宽度
8.2.1 外部总线上的地址平移
8.2.2 21位寻址
表8-2: 不同地址和数据宽度的地址和数据线
8.3 等待状态
8.4 端口引脚弱上拉
8.5 程序存储器模式和外部存储器总线
8.6 16位数据宽度模式
8.6.1 16位字节写模式
图8-1: 16位字节写模式示例
8.6.2 16位字写模式
图8-2: 16位字写模式示例
8.6.3 16位字节选择模式
图8-3: 16位字节选择模式示例
8.6.4 16位模式时序
图8-4: 执行TBLRD指令时的外部存储器总线时序(扩展单片机模式)
图8-5: 执行SLEEP指令时的外部存储器总线时序(扩展单片机模式)
8.7 8位数据宽度模式
图8-6: 8位复用模式示例
8.7.1 8位模式时序
图8-7: 执行TBLRD指令时的外部存储器总线时序(扩展单片机模式)
图8-8: 执行SLEEP指令时的外部存储器总线时序(扩展单片机模式)
8.8 在功耗管理模式下的操作
表8-3: 与外部存储器总线相关的寄存器
9.0 数据EEPROM存储器
9.1 EEADR和EEADRH寄存器
9.2 EECON1和EECON2寄存器
寄存器9-1: EECON1:数据EEPROM控制寄存器1
9.3 读数据EEPROM存储器
9.4 写入数据EEPROM存储器
9.5 写校验
例9-1: 读数据EEPROM
例9-2: 写数据EEPROM
9.6 代码保护期间的工作原理
9.7 防止误写操作
9.8 使用数据EEPROM
例9-3: 数据EEPROM刷新程序
表9-1: 与数据EEPROM存储器相关的寄存器
10.0 8 X 8硬件乘法器
10.1 简介
10.2 工作原理
例10-1: 8 x 8无符号乘法程序
例10-2: 8 x 8有符号乘法程序
表10-1: 各种乘法运算的性能比较
公式10-1: 16 x 16无符号乘法算法
例10-3: 16 x 16无符号乘法程序
公式10-2: 16 x 16有符号乘法算法
例10-4: 16 x 16有符号乘法程序
11.0 中断
图11-1: PIC18F87K22系列中断逻辑
11.1 INTCON寄存器
寄存器11-1: INTCON:中断控制寄存器
寄存器11-2: INTCON2:中断控制寄存器2
寄存器11-3: INTCON3:中断控制寄存器3
11.2 PIR寄存器
寄存器11-4: PIR1:外设中断请求(标志)寄存器1
寄存器11-5: PIR2:外设中断请求(标志)寄存器2
寄存器11-6: PIR3:外设中断请求(标志)寄存器3
寄存器11-7: PIR4:外设中断请求(标志)寄存器4
寄存器11-8: PIR5:外设中断请求(标志)寄存器5
寄存器11-9: PIR6:外设中断请求(标志)寄存器6
11.3 PIE寄存器
寄存器11-10: PIE1:外设中断允许寄存器1
寄存器11-11: PIE2:外设中断允许寄存器2
寄存器11-12: PIE3:外设中断允许寄存器3
寄存器11-13: PIE4:外设中断允许寄存器4
寄存器11-14: PIE5:外设中断允许寄存器5
寄存器11-15: PIE6:外设中断允许寄存器6
11.4 IPR寄存器
寄存器11-16: IPR1:外设中断优先级寄存器1
寄存器11-17: IPR2:外设中断优先级寄存器2
寄存器11-18: IPR3:外设中断优先级寄存器3
寄存器11-19: IPR4:外设中断优先级寄存器4
寄存器11-20: IPR5:外设中断优先级寄存器5
寄存器11-21: IPR6:外设中断优先级寄存器6
11.5 RCON寄存器
寄存器11-22: RCON:复位控制寄存器
11.6 INTx引脚中断
11.7 TMR0中断
11.8 PORTB电平变化中断
11.9 中断的现场保护
例11-1: 将STATUS、WREG和BSR寄存器的值保存在RAM中
表11-1: 与中断相关的寄存器汇总
12.0 I/O端口
图12-1: 通用I/O端口的工作原理
12.1 I/O端口引脚的驱动能力
12.1.1 引脚输出驱动能力
12.1.2 上拉配置
寄存器12-1: PADCFG1:焊盘配置寄存器
12.1.3 漏极开路输出
图12-2: 使用漏极开路输出(以 USART为例)
寄存器12-2: ODCON1:外设漏极开路控制寄存器1
寄存器12-3: ODCON2:外设漏极开路控制寄存器2
寄存器12-4: ODCON3:外设漏极开路控制寄存器3
12.1.4 模拟和数字端口
12.2 PORTA、TRISA和LATA寄存器
例12-1: 初始化PORTA
表12-1: PORTA功能
表12-2: 与PORTA相关的寄存器汇总
12.3 PORTB、TRISB和LATB寄存器
例12-2: 初始化PORTB
表12-3: PORTB功能
表12-4: 与PORTB相关的寄存器汇总
12.4 PORTC、TRISC和LATC寄存器
例12-3: 初始化PORTC
表12-5: PORTC功能
表12-6: 与PORTC相关的寄存器汇总
12.5 PORTD、TRISD和LATD寄存器
例12-4: 初始化PORTD
表12-7: PORTD功能
表12-8: 与PORTD相关的寄存器汇总
12.6 PORTE、TRISE和LATE寄存器
例12-5: 初始化PORTE
表12-9: PORTE功能
表12-10:与PORTE相关的寄存器汇总
12.7 PORTF、LATF和TRISF寄存器
例12-6: 初始化PORTF
表12-11: PORTF功能
表12-12: 与PORTF相关的寄存器汇总
12.8 PORTG、TRISG和LATG寄存器
例12-7: 初始化PORTG
表12-13: PORTG功能
表12-14: 与PORTG相关的寄存器汇总
12.9 PORTH、LATH和TRISH寄存器
例12-8: 初始化PORTH
表12-15: PORTH功能
表12-16: 与PORTH相关的寄存器汇总
12.10 PORTJ、TRISJ和LATJ寄存器
例12-9: 初始化PORTJ
表12-17: PORTJ功能
表12-18: 与PORTJ相关的寄存器汇总
12.11 并行从端口
图12-3: PORTD和PORTE框图 (并行从端口)
寄存器12-5: PSPCON:并行从端口控制寄存器
图12-4: 并行从端口写波形
图12-5: 并行从端口读波形
表12-19: 与并行从端口相关的寄存器
13.0 Timer0模块
寄存器13-1: T0CON:Timer0控制寄存器
13.1 Timer0工作原理
13.2 Timer0的16位读写模式
图13-1: Timer0框图(8位模式)
图13-2: Timer0框图(16位模式)
13.3 预分频器
13.3.1 切换预分频器的分配
13.4 Timer0中断
表13-1: 与Timer0相关的寄存器
14.0 Timer1模块
寄存器14-1: T1CON:Timer1控制寄存器
14.1 Timer1门控寄存器
寄存器14-2: T1GCON:Timer1门控寄存器(1)
14.2 Timer1工作原理
14.3 时钟源选择
14.3.1 内部时钟源
14.3.2 外部时钟源
表14-1: Timer1时钟源选择
图14-1: Timer1框图
14.4 Timer1 16位读/写模式
14.5 SOSC振荡器
图14-2: SOSC低功耗振荡器的外部元件
表14-2: 定时器振荡器的电容选择(2,3,4,5)
14.5.1 使用SOSC作为时钟源
14.5.2 SOSC振荡器布线注意事项
图14-3: 有接地保护环的振荡器电路
14.6 Timer1中断
14.7 使用ECCP特殊事件触发信号复位 Timer1
14.8 Timer1门控
14.8.1 TIMER1门控计数使能
表14-3: TIMER1门控使能选择
图14-4: Timer1门控计数使能模式
14.8.2 TIMER1门控源选择
表14-4: TIMER1门控源
14.8.3 TIMER1门控翻转模式
图14-5: Timer1门控翻转模式
14.8.4 TIMER1门控单脉冲模式
14.8.5 TIMER1门控值状态
图14-6: Timer1门控单脉冲模式
图14-7: Timer1门控单脉冲和翻转组合模式
表14-5: 与Timer1作为定时器/计数器相关的寄存器
15.0 Timer2模块
15.1 Timer2工作原理
寄存器15-1: T2CON:Timer2控制寄存器
15.2 Timer2中断
15.3 Timer2输出
图15-1: Timer2框图
表15-1: 与Timer2作为定时器/计数器时相关的寄存器
16.0 Timer3/5/7模块
寄存器16-1: TxCON:Timerx控制寄存器
16.1 Timer3/5/7门控寄存器
寄存器16-2: TxGCON:Timerx门控寄存器(1)
寄存器16-3: OSCCON2:振荡器控制寄存器2
16.2 Timer3/5/7工作原理
图16-1: TIMER3/5/7框图
16.3 Timer3/5/7 16位读/写模式
16.4 使用SOSC振荡器作为Timer3/5/7 时钟源
16.5 Timer3/5/7门控
16.5.1 TIMER3/5/7门控计数使能
表16-1: TIMER3/5/7门控使能选择
图16-2: TIMER3/5/7门控计数使能模式
16.5.2 TIMER3/5/7门控源选择
表16-2: TIMER3/5/7门控源
16.5.3 TIMER3/5/7门控翻转模式
图16-3: Timer3/5/7门控翻转模式
16.5.4 TIMER3/5/7门控单脉冲模式
图16-4: Timer3/5/7门控单脉冲模式
图16-5: Timer3/5/7门控单脉冲和翻转组合模式
16.5.5 TIMER3/5/7门控值状态
16.5.6 TIMER3/5/7门控事件中断
16.6 Timer3/5/7中断
表16-3: Timer3/5/7中断标志位
表16-4: Timer3/5/7中断允许位
16.7 使用ECCP特殊事件触发信号复位 Timer3/5/7
表16-5: 与Timer3/5/7作为定时器/计数器时相关的寄存器
17.0 Timer4/6/8/10/12模块
17.1 Timer4/6/8/10/12工作原理
表17-1: Timer4/6/8/10/12标志位
表17-2: Timer4/6/8/10/12中断允许位
寄存器17-1: TxCON:Timerx控制寄存器
17.2 Timer4/6/8/10/12中断
17.3 TMRx输出
图17-1: Timer4/6/8/10/12框图
表17-3: 与Timer4/6/8/10/12作为定时器/计数器相关的寄存器
18.0 实时时钟和日历(RTCC)
图18-1: RTCC框图
18.1 RTCC模块寄存器
RTCC控制寄存器
RTCC值寄存器
闹钟值寄存器
18.1.1 RTCC控制寄存器
寄存器18-1: RTCCFG:RTCC配置寄存器(1)
寄存器18-2: RTCCAL:RTCC校准寄存器
寄存器18-3: PADCFG1: 引脚配置寄存器
寄存器18-4: ALRMCFG: 闹钟配置寄存器
寄存器18-5: ALRMRPT:闹钟重复寄存器
18.1.2 RTCVALH和RTCVALL寄存器映射
寄存器18-6: 保留寄存器
寄存器18-7:YEAR: 年份值寄存器(1)
寄存器18-8:MONTH:月份值寄存器(1)
寄存器18-9: DAY:日期值寄存器(1)
寄存器18-10: WEEKDAY:星期值寄存器(1)
寄存器18-11: HOUR:小时值寄存器(1)
寄存器18-12: MINUTE:分钟值寄存器
寄存器18-13: SECOND:秒值寄存器
18.1.3 ALRMVALH和ALRMVALL寄存器映射
寄存器18-14: ALRMMNTH:闹钟月份值寄存器(1)
寄存器18-15: ALRMDAY: 闹钟日期值寄存器(1)
寄存器18-16: ALRMWd: 闹钟星期值寄存器(1)
寄存器18-17: ALRMHr: 闹钟小时值寄存器(1)
寄存器18-18: ALRMMIN:闹钟分钟值寄存器
寄存器18-19: ALRMSEC:闹钟秒值寄存器
18.1.4 RTCEN位写入
18.2 工作原理
18.2.1 寄存器接口
图18-2: 定时器位格式
图18-3: 闹钟位格式
18.2.2 时钟源
图18-4: 时钟源复用
18.2.3 进位规则
表18-1: 星期设定
表18-2: 日到月计满返回设定
18.2.4 闰年
18.2.5 常规功能
18.2.6 寄存器读写的安全窗口
18.2.7 写锁定
例18-1: 将RTCWREN位置1
18.2.8 寄存器映射
表18-3: RTCVALH和RTCVALL寄存器映射
表18-4: ALRMVAL寄存器映射
18.2.9 校准
公式18-1: 转换误差时钟脉冲
18.3 闹钟
18.3.1 配置闹钟
图18-5: 闹钟掩码设置
18.3.2 闹钟中断
图18-6: 定时器脉冲生成
18.4 休眠模式
18.5 复位
18.5.1 器件复位
18.5.2 上电复位(POR)
18.6 寄存器映射
表18-5: RTCC控制寄存器
表18-6: RTCC值寄存器
表18-7: 闹钟值寄存器
19.0 捕捉/比较/PWM(CCP)模块
寄存器19-1: CCPxCON:CCPx控制寄存器(CCP4-CCP10模块)(1)
寄存器19-2: CCPTMRS1:CCP定时器选择寄存器1
寄存器19-3: CCPTMRS2:CCP定时器选择寄存器2
寄存器19-4: CCPRxL:CCPx周期寄存器低字节
寄存器19-5: CCPRxH:CCPx周期寄存器高字节
19.1 CCP模块配置
19.1.1 CCP模块和定时器资源
表19-1: CCP模式与定时器资源
表19-2: CCP模块4、5、6和7的定时器分配
表19-3: CCP模块8、9和10的定时器分配
19.1.2 漏极开路输出选项
19.1.3 CCP6、CCP7、CCP8和CCP9引脚 分配
表19-4: CCP引脚分配
19.2 捕捉模式
19.2.1 CCP引脚配置
19.2.2 Timer1/3/5/7模式选择
图19-1: 捕捉模式工作原理框图
19.2.3 软件中断
19.2.4 CCP预分频器
例19-1: 改变捕捉预分频比
19.3 比较模式
19.3.1 CCP引脚配置
19.3.2 Timer1/3/5/7模式选择
19.3.3 软件中断模式
19.3.4 特殊事件触发信号
图19-2: 比较模式工作原理框图
表19-5: 与捕捉、比较和Timer1/3/5/7相关的寄存器
19.4 PWM模式
图19-3: PWM简化框图
图19-4: PWM输出
19.4.1 PWM周期
公式19-1:
19.4.2 PWM占空比
公式19-2:
公式19-3:
表19-6: 40 MHz时的PWM频率和分辨率示例
19.4.3 设置PWM操作
表19-7: 与PWM和定时器相关的寄存器
20.0 增强型捕捉/比较/PWM (ECCP)模块
寄存器20-1: CCPxCON: 增强型捕捉/比较/PWMx控制寄存器
寄存器20-2: CCPTMRS0:CCP定时器选择寄存器0
20.1 ECCP输出和配置
20.1.1 ECCP模块和定时器资源
表20-1: ECCP模式——定时器资源
20.1.2 ECCP引脚分配
20.2 捕捉模式
表20-2: ECCP1/2/3中断标志位
20.2.1 ECCP引脚配置
20.2.2 Timer1/2/3/4/6/8/10/12模式选择
20.2.3 软件中断
20.2.4 ECCP预分频器
例20-1: 改变捕捉预分频比
图20-1: 捕捉模式工作原理框图
20.3 比较模式
20.3.1 ECCP引脚配置
20.3.2 Timer1/2/3/4/6/8/10/12模式选择
20.3.3 软件中断模式
20.3.4 特殊事件触发信号
图20-2: 比较模式工作原理框图
20.4 PWM(增强模式)
图20-3: 增强型PWM模式的简化框图示例
表20-3: 各种PWM增强模式的引脚分配示例
图20-4: PWM(增强模式)输出关系示例(高电平有效状态)
图20-5: 增强型PWM输出关系示例(低电平有效状态)
20.4.1 半桥模式
图20-6: 半桥PWM输出示例
图20-7: 半桥应用示例
20.4.2 全桥模式
图20-8: 全桥应用示例
图20-9: 全桥PWM输出示例
图20-10: PWM方向更改示例
图20-11: 在占空比接近100%时更改PWM方向示例(1)
20.4.3 启动注意事项
20.4.4 增强型PWM自动关闭模式
寄存器20-3: ECCPxAS:ECCPx自动关闭控制寄存器
图20-12: PWM自动关闭(PxRSEN = 0,用固件重启)
20.4.5 自动重启模式
图20-13: PWM自动关闭(PxRSEN = 1,使能自动重启)
20.4.6 可编程死区延时模式
图20-14: 半桥PWM输出示例
图20-15: 半桥应用示例
寄存器20-4: ECCPxDEL:增强型PWM控制寄存器
20.4.7 脉冲转向模式
寄存器20-5: PSTRxCON:脉冲转向控制寄存器(1)
图20-16: 转向简化框图
图20-17: 指令周期结束时的转向事件示例(STRSYNC = 0)
图20-18: 指令周期开始时的转向事件示例(STRSYNC = 1)
20.4.8 在功耗管理模式下工作
20.4.9 复位的影响
表20-4: 与ECCP1/2/3模块和Timer1/2/3/4/6/8/10/12相关的寄存器
21.0 主同步串行端口(MSSP)模块
21.1 主SSP(MSSP)模块概述
21.2 控制寄存器
21.3 SPI模式
图21-1: MSSP框图(SPI 模式)
21.3.1 寄存器
寄存器21-1: SSPxSTAT:MSSPx状态寄存器(SPI模式)
寄存器21-2: SSPxCON1:MSSPx控制寄存器1(SPI模式)
21.3.2 工作原理
21.3.3 漏极开路输出选项
例21-1: 装载SSP1BUF(SSP1SR)寄存器
21.3.4 使能SPI I/O
21.3.5 典型连接
图21-2: SPI主/从器件连接
21.3.6 主模式
图21-3: SPI模式时序图(主模式)
21.3.7 从模式
21.3.8 从选择同步
图21-4: 从同步模式时序图
图21-5: SPI模式时序图(从模式,CKE = 0)
图21-6: SPI模式时序图(从模式,CKE = 1)
21.3.9 功耗管理模式下的操作
21.3.10 复位的影响
21.3.11 总线模式兼容性
表21-1: SPI总线模式
21.3.12 SPI时钟速率和模块的相互关系
表21-2: 与SPI操作相关的寄存器
21.4 I2C™模式
图21-7: MSSP框图(I2C™模式)
21.4.1 寄存器
寄存器21-3: SSPxSTAT:MSSPx状态寄存器(I2C™模式)
寄存器21-4: SSPxCON1:MSSPx控制寄存器1(I2C™模式)
寄存器21-5: SSPxCON2:MSSPx控制寄存器2(I2C™主模式)
寄存器21-6: SSPxCON2:MSSPx控制寄存器2(I2C™从模式)
寄存器21-7: SSPxMSK:I2C™从地址掩码寄存器(7位掩码模式)(1)
21.4.2 工作原理
21.4.3 从模式
例21-2: 地址掩码示例(5位掩码模式)
例21-3: 地址掩码示例(7位掩码模式)
图21-8: I2C™从模式接收时序(SEN = 0,7位地址)
图21-9: I2C™从模式接收时序(SEN = 0且ADMSK<5:1> = 01011,7位地址)
图21-10: I2C™从模式发送时序(7位地址)
图21-11: I2C™从模式接收时序(SEN = 0且ADMSK<5:1> = 01001,10位地址)
图21-12: I2C™从模式接收时序(SEN = 0,10位地址)
图21-13: I2C™从模式发送时序(10位地址)
21.4.4 时钟延长
图21-14: 时钟同步时序
图21-15: I2C™从模式接收时序(SEN = 1,7位地址)
图21-16: I2C™从模式接收时序(SEN = 1,10位地址)
21.4.5 支持广播呼叫地址
图21-17: 从模式广播呼叫地址时序(7位或10位寻址模式)
21.4.6 主模式
图21-18: MSSP框图(I2C™主模式)
21.4.7 波特率
图21-19: 波特率发生器框图
表21-3: I2C™时钟频率与BRG的关系
图21-20: 带有时钟仲裁的波特率发生器时序
21.4.8 I2C™主模式启动条件时序
图21-21: 第一个启动位的时序
21.4.9 I2C™主模式重复启动条件时序
图21-22: 重复启动条件时序
21.4.10 I2C™主模式发送
21.4.11 I2C™主模式接收
图21-23: I2C™主模式发送时序(7位或10位地址)
图21-24: I2C™主模式接收时序(7位地址)
21.4.12 应答序列时序
21.4.13 停止条件时序
图21-25: 应答序列时序
图21-26: 停止条件接收或发送模式
21.4.14 休眠状态下的操作
21.4.15 复位的影响
21.4.16 多主器件模式
21.4.17 多主器件通信、总线冲突与总线仲裁
图21-27: 发送和应答时的总线冲突时序
图21-28: 启动条件期间的总线冲突(仅SDAx)
图21-29: 启动条件期间的总线冲突(SCLx = 0)
图21-30: 启动条件期间由SDAx仲裁引起的BRG复位
图21-31: 重复启动条件期间的总线冲突(情形1)
图21-32: 重复启动条件期间的总线冲突(情形2)
图21-33: 停止条件期间的总线冲突(情形1)
图21-34: 停止条件期间的总线冲突(情形2)
表21-4: 与I2C™操作相关的寄存器
22.0 增强型通用同步/异步收发器 (EUSART)
寄存器22-1: TXSTAx:发送状态和控制寄存器
寄存器22-2: RCSTAx:接收状态和控制寄存器
寄存器22-3: BAUDCONx:波特率控制寄存器
22.1 波特率发生器(BRG)
22.1.1 功耗管理模式下的操作
22.1.2 采样
表22-1: 波特率公式
例22-1: 计算波特率误差
表22-2: 与波特率发生器相关的寄存器
表22-3: 异步模式下的波特率
22.1.3 自动波特率检测
表22-4: BRG计数器时钟速率
图22-1: 自动波特率计算
图22-2: BRG溢出时序
22.2 EUSART异步模式
22.2.1 EUSART异步发送器
图22-3: EUSART发送框图
图22-4: 异步发送
图22-5: 异步发送(背对背)
表22-5: 与异步发送相关的寄存器
22.2.2 EUSART异步接收器
22.2.3 设置带有地址检测功能的9位模式
图22-6: EUSART接收框图
图22-7: 异步接收
表22-6: 与异步接收相关的寄存器
22.2.4 同步间隔字符自动唤醒
图22-8: 正常工作模式下的自动唤醒位(WUE)时序
图22-9: 休眠模式下的自动唤醒位(WUE)时序
22.2.5 间隔字符序列
22.2.6 接收间隔字符
图22-10: 发送间隔字符序列
22.3 EUSART同步主模式
22.3.1 EUSART同步主发送
图22-11: 同步发送
图22-12: 同步发送(由TXEN位控制)
表22-7: 与同步主发送相关的寄存器
22.3.2 EUSART同步主接收
图22-13: 同步主接收模式(由SREN位控制)
表22-8: 与同步主接收相关的寄存器
22.4 EUSART同步从模式
22.4.1 EUSART同步从发送
表22-9: 与同步从发送相关的寄存器
22.4.2 EUSART同步从接收
表22-10: 与同步从接收相关的寄存器
23.0 12位模数转换器(A/D)模块
23.1 差分A/D转换器
图23-1: 差分通道测量
图23-2: 单通道测量
23.2 A/D寄存器
23.2.1 A/D控制寄存器
寄存器23-1: ADCON0: A/D控制寄存器0
寄存器23-2: ADCON1:A/D控制寄存器1
寄存器23-3: ADCON2:A/D控制寄存器2
23.2.2 A/D结果寄存器
图23-3: A/D结果对齐方式
寄存器23-4: ADRESH:A/D结果寄存器高字节(左对齐,ADFM = 0)
寄存器23-5: ADRESL:A/D结果寄存器低字节(左对齐,ADFM = 0)
寄存器23-6: ADRESH:A/D结果寄存器高字节(右对齐,ADFM = 1)
寄存器23-7: ADRESL:A/D结果寄存器低字节(右对齐,ADFM = 1)
寄存器23-8: ANCON0:A/D端口配置寄存器0
寄存器23-9: ANCON1:A/D端口配置寄存器1
寄存器23-10: ANCON2:A/D端口配置寄存器2
图23-4: A/D框图
图23-5: 模拟输入电路模型
23.3 A/D采集要求
公式23-1: 采集时间
公式23-2: A/D最小充电时间
公式23-3: 计算所需的最小采集时间
23.4 选择和配置自动采集时间
23.5 选择A/D转换时钟
表23-1: 不同器件工作频率下的Tad
23.6 配置模拟端口引脚
23.7 A/D转换
图23-6: A/D转换Tad周期(ACQT<2:0> = 000,Tacq = 0)
图23-7: A/D转换Tad周期(ACQT<2:0> = 010,Tacq = 4 Tad)
23.8 特殊事件触发信号的使用
23.9 在功耗管理模式下工作
表23-2: 与A/D模块相关的寄存器
24.0 比较器模块
24.1 寄存器
图24-1: 比较器简化框图
寄存器24-1: CMxCON:比较器控制x寄存器
寄存器24-2: CMSTAT:比较器状态寄存器
24.2 比较器工作原理
图24-2: 单个比较器
24.3 比较器响应时间
24.4 模拟输入连接注意事项
图24-3: 比较器模拟输入模型
24.5 比较器控制和配置
表24-1: 比较器输入和输出
24.5.1 比较器使能和输入选择
24.5.2 比较器使能和输出选择
图24-4: 比较器配置
24.6 比较器中断
表24-2: 比较器中断产生
24.7 休眠模式下的比较器工作原理
24.8 复位的影响
表24-3: 与比较器模块相关的寄存器
25.0 比较器参考电压模块
25.1 配置比较器参考电压
公式25-1:
寄存器25-1: CVRCON:比较器参考电压控制寄存器
图25-1: 比较器参考电压框图
25.2 比较器参考电压精度/误差
25.3 在休眠模式下工作
25.4 复位的影响
25.5 连接注意事项
图25-2: 比较器参考电压输出缓冲器示例
表25-1: 与比较器参考电压相关的寄存器
26.0 高/低电压检测(HLVD)
寄存器26-1: HLVDCON:高/低电压检测控制寄存器
26.1 工作原理
图26-1: HLVD模块框图(带外部输入)
26.2 HLVD设置
26.3 电流消耗
26.4 HLVD启动时间
图26-2: 低电压检测工作原理(VDIRMAG = 0)
图26-3: 高电压检测工作原理(VDIRMAG = 1)
26.5 应用
图26-4: 典型的低电压检测应用
26.6 休眠期间的工作原理
26.7 复位的影响
表26-1: 与高/低电压检测模块相关的寄存器
27.0 充电时间测量单元(CTMU)
图27-1: CTMU框图
27.1 CTMU寄存器
寄存器27-1: CTMUCONH:CTMU控制寄存器高字节
寄存器27-2: CTMUCONL: CTMU控制寄存器低字节
寄存器27-3: CTMUICON:CTMU电流控制寄存器
27.2 CTMU工作原理
27.2.1 工作原理
27.2.2 电流源
27.2.3 边沿选择和控制
27.2.4 边沿状态
27.2.5 中断
27.3 CTMU模块初始化
27.4 校准CTMU模块
27.4.1 电流源校准
图27-2: CTMU电流源校准电路
例27-1: CTMU校准程序
例27-2: 电流校准程序
27.4.2 电容校准
例27-3: 电容校准程序
27.5 使用CTMU测量电容
27.5.1 绝对电容测量
27.5.2 相对电荷测量
例27-4: 用于电容触摸开关的程序
27.6 使用CTMU模块测量时间
图27-3: 测量时间的典型连接和内部配置
27.7 使用CTMU模块产生延时
图27-4: 产生脉冲延时的典型连接和内部配置
27.8 使用CTMU模块测量温度
例27-5: 使用内部二极管测量温度的程序
27.9 休眠/空闲模式期间的操作
27.9.1 休眠模式
27.9.2 空闲模式
27.10 复位对CTMU的影响
表27-1: 与CTMU模块相关的寄存器
28.0 CPU的特殊功能
28.1 配置位
表28-1: 配置位和器件ID
寄存器28-1: CONFIG1L:配置寄存器1的低字节(字节地址300000h)
寄存器28-2: CONFIG1H:配置寄存器1的高字节(字节地址300001h)
寄存器28-3: CONFIG2L:配置寄存器2的低字节(字节地址300002h)
寄存器28-4: CONFIG2H:配置寄存器2的高字节(字节地址300003h)
寄存器28-5: CONFIG3L:配置寄存器3的低字节(字节地址300004h)
寄存器28-6: CONFIG3H:配置寄存器3的高字节(字节地址300005h)
寄存器28-7: CONFIG4L:配置寄存器4的低字节(字节地址300006h)
寄存器28-8: CONFIG5L:配置寄存器5的低字节(字节地址300008h)
寄存器28-9: CONFIG5H:配置寄存器5的高字节(字节地址300009h)
寄存器28-10: CONFIG6L:配置寄存器6的低字节(字节地址30000Ah)
寄存器28-11: CONFIG6H:配置寄存器6的高字节(字节地址30000Bh)
寄存器28-12: CONFIG7L:配置寄存器7的低字节(字节地址30000Ch)
寄存器28-13: CONFIG7H:配置寄存器7的高字节(字节地址30000Dh)
寄存器28-14: DEVID1:PIC18F87K22系列的器件ID寄存器1
寄存器28-15: DEVID2:PIC18F87K22系列的器件ID寄存器2
28.2 看门狗定时器(WDT)
图28-1: WDT框图
28.2.1 控制寄存器
寄存器28-16: WDTCON:看门狗定时器控制寄存器
表28-2: 看门狗定时器寄存器汇总
28.3 片上稳压器
28.3.1 稳压器由硬件使能/禁止
图28-2: 片上稳压器的连接
28.3.2 稳压器在休眠模式下的操作
表28-3: 休眠模式稳压器设置(1)
28.4 双速启动
28.4.1 使用双速启动时的特别注意事项
图28-3: 双速启动时钟转换的时序图(从INTOSC切换到HSPLL)
28.5 故障保护时钟监视器
图28-4: FSCM框图
28.5.1 FSCM和看门狗定时器
28.5.2 退出故障保护运行模式
图28-5: FSCM时序图
28.5.3 功耗管理模式下的FSCM中断
28.5.4 POR或从休眠中唤醒
28.6 程序校验和代码保护
图28-6: PIC18F87K22系列器件的受代码保护的程序存储器(1)
表28-4: 代码保护寄存器汇总
28.6.1 程序存储器代码保护
图28-7: 禁止表写操作(WRTx)
图28-8: 禁止外部存储区表读操作(EBTRx)
图28-9: 允许外部存储区表读操作(EBTRx)
28.6.2 数据EEPROM代码保护
28.6.3 配置寄存器保护
28.7 ID单元
28.8 在线串行编程
28.9 在线调试器
表28-5: 调试器资源
29.0 指令集汇总
29.1 标准指令集
表29-1: 操作码字段说明
图29-1: 指令的一般格式
表29-2: PIC18F87K22系列指令集
29.1.1 标准指令集
29.2 扩展指令集
29.2.1 扩展指令的语法
表29-3: PIC18指令集的扩展
29.2.2 扩展指令集
29.2.3 立即数变址寻址模式中字节和位操作类指令
29.2.4 使能扩展指令集时的注意事项
29.2.5 使用Microchip MPLAB. IDE工具的特别注意事项
30.0 开发支持
30.1 MPLAB集成开发环境软件
30.2 适用于各种器件系列的MPLAB C编译器
30.3 适用于各种器件系列的HI-TECH C编译器
30.4 MPASM汇编器
30.5 MPLINK目标链接器/ MPLIB目标库管理器
30.6 适用于各种器件系列的MPLAB汇编器、链接器和库管理器
30.7 MPLAB SIM软件模拟器
30.8 MPLAB REAL ICE在线仿真器系统
30.9 MPLAB ICD 3在线调试器系统
30.10 PICkit 3在线调试器/编程器及 PICkit 3 Debug Express
30.11 PICkit 2开发编程器/调试器及 PICkit 2 Debug Express
30.12 MPLAB PM3器件编程器
30.13 演示/开发板、评估工具包及入门工具包
31.0 电气特性
绝对最大值(†)
图31-1: 电压——频率关系图(使能稳压器,工业级/扩展级)(1)
图31-2: 电压——频率关系图(禁止稳压器,工业级/扩展级)(1,2)
31.1 直流特性: 供电电压 PIC18F87K22系列 (工业级/扩展级)
31.2 直流特性: 掉电电流和供电电流 PIC18F87K22系列 (工业级/扩展级)
31.3 直流特性: PIC18F87K22系列 (工业级/扩展级)
31.4 直流特性:CTMU电流源规范
表31-1: 存储器编程要求
表31-2: 比较器规范
表31-3: 参考电压规范
表31-4: 内部稳压器规范
31.5 交流(时序)特性
31.5.1 时序参数符号
31.5.2 时序条件
表31-5: 温度和电压规范——交流
图31-3: 器件时序规范的负载条件
31.5.3 时序图和规范
图31-4: 外部时钟时序
表31-6: 外部时钟时序要求
表31-7: PLL时钟时序规范(Vdd = 1.8V至5.5V)
表31-8: 内部RC精度(INTOSC)
图31-5: CLKO和I/O时序
表31-9: CLKO和I/O时序要求
图31-6: 程序存储器取指时序图(8位)
表31-10: 程序存储器取指时序要求(8位)
图31-7: 程序存储器读时序图
表31-11: CLKO和I/O时序要求
图31-8: 程序存储器写时序图
表31-12: 程序存储器写时序要求
图31-9: 复位、看门狗定时器、振荡器起振定时器和上电延时定时器时序
图31-10: 欠压复位时序
表31-13: 复位、看门狗定时器、振荡器起振定时器、上电延时定时器和欠压复位要求
图31-11: 高/低电压检测特性
表31-14: 高/低电压检测特性
图31-12: Timer0和Timer1外部时钟时序
表31-15: Timer0和Timer1外部时钟要求
图31-13: 捕捉/比较/PWM时序(ECCP1和ECCP2模块)
表31-16: 捕捉/比较/PWM要求(ECCP1和ECCP2模块)
图31-14: SPI主模式时序示例(CKE = 0)
表31-17: SPI模式要求示例(主模式,CKE = 0)
图31-15: SPI主模式时序示例(CKE = 1)
表31-18: SPI模式要求示例(主模式,CKE = 1)
图31-16: SPI从模式时序示例(CKE = 0)
表31-19: SPI模式要求示例(从模式时序,CKE = 0)
图31-17: SPI从模式时序示例(CKE = 1)
表31-20: SPI从模式要求示例(CKE = 1)
图31-18: I2C™总线启动/停止位时序
表31-21: I2C™总线启动/停止位要求(从模式)
图31-19: I2C™总线数据时序
表31-22: I2C™总线数据要求(从模式)
图31-20: MSSP I2C™总线启动/停止位时序波形
表31-23: MSSP I2C™总线启动/停止位要求
图31-21: MSSP I2C™总线数据时序
表31-24: MSSP I2C™总线数据要求
图31-22: EUSART同步发送(主/从)时序
表31-25: EUSART/AUSART同步发送要求
图31-23: EUSART/AUSART同步接收(主/从)时序
表31-26: EUSART/AUSART同步接收要求
表31-27: A/D转换器特性:PIC18F87K22系列(工业级)
图31-24: A/D转换时序
表31-28: A/D转换要求
32.0 封装信息
32.1 封装标识信息
32.2 封装详细信息
附录A: 版本历史
版本A(2009年11月)
版本B(2010年5月)
版本C(2011年3月)
版本D(2011年6月)
附录B: 从PIC18F87J11和 PIC18F8722到 PIC18F87K22的移植
表B-1: PIC18F87K22、PIC18F87J11和PIC18F8722系列器件之间的显著差异
索引
Microchip网站
变更通知客户服务
客户支持
读者反馈表
产品标识体系
全球销售及服务网点