首页资源分类嵌入式处理器其它 > k8f111v.pdf

k8f111v.pdf

已有 445476个资源

下载专区

上传者其他资源

    文档信息举报收藏

    标    签:K8F111V PDF

    分    享:

    文档简介

    高性价比FLASH单片机。

    文档预览

    KF8V111 数据手册 V1.0 8 位微控制器 KF8V111 数据手册 芯旺微电子 - 1/96 - KF8V111 数据手册 V1.0 产品订购信息 型号 KF8V111 订货号 FLASH KF8V111SDR 1K×16 位 KF8V111SBR 1K×16 位 RAM (Byte) 144 144 定时器 内部 晶振 2 16M 2 16M 12 位 ADC 运放/ 内部 通道 比较器 参考 封装 8 0/0 1.7V SOIC-14 3 0/0 1.7V SOIC-8 芯旺微电子 - 2/96 - KF8V111 数据手册 V1.0 引脚示意图 KF8V111SDR 引脚: VDD 1 P0.5/T1CK 2 P0.4/AN3/VREOUT/T1G/CLKOUT 3 P0.3/RST/MODE 4 P1.6/PWM1 5 P1.7/PWM2 6 P2.7/AN11 7 KF8V111SBR 引脚: KF8V111 14 VSS 13 P0.0/AN0/SPDAT 12 P0.1/AN1/SPCLK 11 P0.2/AN2/T0CK/INT0 10 P1.0/AN4 9 P1.1/AN5/ADVRIN 8 P1.2/AN6/INT1 VDD 1 P0.5/T1CK 2 P0.4/AN3/VREOUT/T1G/CLKOUT 3 P0.3/RST/MODE 4 KF8V111 8 VSS 7 P0.0/AN0/SPDAT 6 P0.1/AN1/SPCLK 5 P1.7/PWM2 表 1 KF8V111 引脚汇总 引脚名 I/O 引脚功能 1 P VDD P0.5 2 I/O T1CK P0.4 AN3 3 I/O VREOUT T1G CLKOUT P0.3 4 I RST MODE P1.6 5 I/O PWM1 P1.7 6 I/O PWM2 P2.7 7 I/O AN11 P1.2 8 I/O AN6 INT1 P1.1 9 I/O AN5 ADVRIN P1.0 10 I/O AN4 P0.2 引脚说明 电源 带上拉和电平变化中断功能的双向输入输出端口 T1 时钟输入 带上拉和电平变化中断功能的双向输入输出端口 ADC 输入通道 3 1.7V 参考电压输出 T1 门控信号输入 系统时钟输出 带电平变化中断的输入端口或开漏输出端口 外部复位信号输入 编程电压输入 双向输入输出端口 PWM1 输出 双向输入输出端口 PWM2 输出 双向输入输出端口 ADC 输入通道 11 双向输入输出端口 ADC 输入通道 6 外部中断 1 输入 双向输入输出端口 ADC 输入通道 5 AD 外部参考电压输入 双向输入输出端口 ADC 输入通道 4 带上拉和电平变化中断功能的双向输入输出端口 芯旺微电子 - 3/96 - KF8V111 数据手册 V1.0 AN2 11 I/O T0CK ADC 输入通道 2 T0 时钟输入 INT0 外部中断 0 输入 P0.1 12 I/O AN1 带上拉和电平变化中断功能的双向输入输出端口 ADC 输入通道 1 SPCLK 在线编程时钟输入 P0.0 13 I/O AN0 带上拉和电平变化中断功能的双向输入输出端口 ADC 输入通道 0 SPDAT 在线编程数据输入 14 P VSS 地,0V 参考点 芯旺微电子 - 4/96 - KF8V111 数据手册 V1.0 目录 产品订购信息 .................................................................. 2 引脚示意图 .................................................................... 3 1 系统概述 .................................................................. 9 1.1 芯片特征 .................................................................. 10 1.2 系统框图................................................................... 11 1.3 存储器..................................................................... 12 1.4 系统时钟................................................................... 13 1.5 配置位..................................................................... 14 1.6 在线串行编程............................................................... 15 2 I/O端口介绍 .............................................................. 16 2.1 I/O端口的读写 ........................................................... 17 2.2 P0 口 ...................................................................18 2.2.1 P0 口相关的寄存器................................................... 19 2.2.1.1 P0 口状态读取寄存器 ......................................... 19 2.2.1.2 P0 口输出锁存寄存器(P0LR) ................................ 19 2.2.1.3 P0 口方向控制寄存器 ......................................... 20 2.2.1.4 上拉功能控制寄存器.......................................... 20 2.2.1.5 电平变化中断控制寄存器 ...................................... 21 2.2.2 P0 口各引脚内部原理功能框图 ......................................... 22 2.3 P1 口 ...................................................................24 2.3.1 P1 口相关的寄存器................................................... 25 2.3.1.1 P1 口状态读取寄存器 ......................................... 25 2.3.1.2 P1 口输出锁存寄存器(P1LR) ................................ 25 2.3.1.3 P1 口方向控制寄存器 ......................................... 26 2.3.2 P1 口原理功能框图................................................... 27 2.4 P2 口 ...................................................................28 2.4.1 P2 口相关的寄存器................................................... 28 2.4.1.1 P2 口状态寄存器(P2) ............................................ 28 2.4.1.2 P2 口输出锁存寄存器(P2LR) ................................ 28 2.4.1.3 P2 口方向控制寄存器(TR2) .................................... 29 2.4.1.4 模拟口配置寄存器(ANSEH) .................................... 29 2.4.2 P2 口原理功能框图................................................... 29 3 存储器 ................................................................... 31 3.1 程序存储器(ROM)区...................................................... 32 3.2 数据存储器(RAM)区...................................................... 33 3.2.1 特殊功能寄存器(SFR)区 .............................................. 33 3.3 寄存器组RN ............................................................. 35 3.4 ID地址单元 ............................................................. 35 芯旺微电子 - 5/96 - KF8V111 数据手册 V1.0 4 汇编指令及寻址方式........................................................ 36 4.1 寻址方式 ............................................................... 36 4.1.1 寄存器寻址 ......................................................... 36 4.1.2 直接寻址 ........................................................... 36 4.1.3 立即数寻址 ......................................................... 36 4.1.4 寄存器间接寻址 ..................................................... 37 4.1.5 位寻址 ............................................................. 37 4.2 汇编指令 ............................................................... 37 5 中断 ..................................................................... 38 5.1 中断相关的寄存器 ....................................................... 40 5.1.1 中断控制寄存器(INTCTL) ............................................. 40 5.1.2 中断使能寄存器EIE1 ................................................. 41 5.1.3 中断标志寄存器EIF1 ................................................. 42 5.1.4 中断优先级控制寄存器IP0............................................. 42 5.1.5 中断优先级控制寄存器IP1............................................. 44 5.1.6 电源控制寄存器PCTL ................................................ 44 5.1.7 中断响应 ........................................................... 46 5.2 INT中断 ................................................................ 47 5.2.1 INT0 中断 .......................................................... 47 5.2.2 INT1 中断 .......................................................... 47 5.3 定时器中断 ................................................................ 48 5.4 P0 口中断 ............................................................... 48 5.5 中断现场保护 ........................................................... 48 6 定时/计数器 ............................................................... 50 6.1 定时/计数器 0(T0) ........................................................ 50 6.1.1 OPTR选择寄存器 .................................................... 50 6.1.2 预分频器............................................................... 51 6.1.3 定时模式............................................................... 51 6.1.4 计数模式............................................................... 51 6.1.5 T0 的使用 .............................................................. 52 6.2 定时/计数器 1(T1) ........................................................... 53 6.2.1 T1 控制寄存器 .......................................................... 53 6.2.2 T1 预分频器 ............................................................ 54 6.2.3 定时模式............................................................... 54 6.2.4 计数模式............................................................... 55 6.2.5 T1 在休眠模式下的运行................................................... 55 7 模数(A/D)转换模块 ......................................................... 56 7.1 与AD相关的寄存器....................................................... 56 7.1.1 AD控制寄存器 0(ADCCTL0)........................................... 56 7.1.2 AD控制寄存器 1(ADCCTL1)........................................... 57 7.1.3 模拟/数字口选择寄存器(ANSEL) .......................................... 58 芯旺微电子 - 6/96 - KF8V111 数据手册 V1.0 7.2 通道的选择 ............................................................. 59 7.3 模拟输入口的配置 ....................................................... 59 7.4 A/D转换参考电压的选择 .................................................. 59 7.4.1 参考电压寄存器 1(VRECTL1) ....................................... 59 7.4.2 VREOUT参考电压 ................................................... 60 7.5 转换时钟的选择 ......................................................... 60 7.6 输出格式 ............................................................... 60 7.7 A/D转换的启动和完成 .................................................... 61 7.8 A/D 工作在休眠模式 ..................................................... 61 7.9 复位的影响 ............................................................. 61 7.10 使用A/D转换器的设置 ...................................................... 61 8 PWM模块 ................................................................. 62 8.1 PWM1/2 模块 .............................................................. 62 8.1.1 PWM1/2 相关的寄存器 .................................................. 64 8.1.2 PWM控制寄存器 ....................................................... 64 8.1.3 PWM1/2 周期 .......................................................... 65 8.1.4 PWM1/2 占空比 ........................................................ 65 8.1.5 PWM1/2 分辨率 ........................................................ 65 8.1.6 PWM1/2 中断 .......................................................... 66 8.1.7 休眠模式下的操作 ...................................................... 66 8.1.8 系统时钟频率的改变 .................................................... 66 8.1.9 复位的影响............................................................ 66 8.1.10 PWM1/2 使用方法 ..................................................... 66 9 复位 ..................................................................... 68 9.1 电源控制状态寄存器(PCTL) ............................................... 69 9.2 上电复位(POR) .......................................................... 70 9.3 WDT复位 ............................................................... 70 9.4 RST复位 ................................................................ 70 9.5 欠压检测复位(LVR) ...................................................... 71 9.6 上电延时定时器 ......................................................... 71 9.7 不同复位条件下对寄存器的影响............................................ 72 10 休眠模式 ............................................................... 74 11 看门狗定时器 ........................................................... 75 12 电气规范 ............................................................... 76 12.1 极限参数值............................................................... 76 12.2 静态电流特性 ......................................................... 78 12.3 外设电流特性 ......................................................... 79 12.4 I/O端口电平和芯片供电电压特性 ........................................... 80 12.5 A/D 转换器(ADC)特性 .................................................. 81 12.6 振荡器模块规范........................................................... 81 芯旺微电子 - 7/96 - KF8V111 数据手册 V1.0 12.7 内部参考模块规范......................................................... 82 13 直流特性图表 ............................................................... 83 14 封装信息 ................................................................... 88 附录 1 KF8V111 SFR地址映射及功能汇总 ....................................... 89 附录 2 汇编指令集 ............................................................. 90 附录 3 寄存器全称表 ........................................................... 92 产品标识体系 ................................................................. 93 版本信息 ..................................................................... 94 ROSH认证 .................................................................... 95 声明及销售网络 ............................................................... 96 芯旺微电子 - 8/96 - KF8V111 数据手册 V1.0 1 系统概述 KF8V111 为哈佛结构的精简指令 CPU。在这种结构中,程序和数据总线是相互独立的。 指令字节长度为 16 位,大多数指令能在一个机器周期内执行完成。一共有 68 条指令,效率 高,容易进行指令扩展。芯片内集成了多种外设,包括 1 个 8 位定时器/计数器 T0、1 个 16 位定时器/计数器 T1、2 路 8 位 PWM 模块、1 个 12 位 ADC 模块、硬件看门狗和低电压检 测及低电压复位模块等。 芯片内集成了 144(128+16)×8 位的数据存储器 RAM、1K×16 位的程序存储器。 芯旺微电子 - 9/96 - KF8V111 数据手册 V1.0 1.1 芯片特征 ● CPU 高性能哈佛结构的 RISC CPU 68 条精简指令 支持中断优先级处理 复位向量位于 0000H 两级中断可选,用不同的入口地址(高 0004H,低 0014H) 工作频率为 62.5Khz~16Mhz,软件可选 ● 存储器 1K×16 位 FLASH 程序存储器 144×8 位的数据存储器 工作寄存器组 R0~R7 FLASH 可经受 100 000 次写操作 ● 特殊功能 内嵌上电复位电路 低电压检测及低电压复位 硬件看门狗 时钟精度 16M±1%(常温) 提供一个 1.7V 的参考电压 支持在线串行编程,低功耗休眠模式 2 路 8 位脉宽调制 PWM 模块 ● I/O 口配置 输入输出口:除 P0.3 只能作为输入口外其它端口均为双向输入输出口 内置上拉功能:P0 口带有弱上拉功能(P0.3 除外) 电平变化中断:P0 口均有电平变化中断功能 ● 定时器/计数器 定时器 0:带有 8 位预分频器的 8 位定时器/计数器 定时器 1:带门控和预分频器的 16 位定时器/计数器 ● 其它外设 1 个 12 位 ADC 模块 ● 工作条件 工作电压:2.6V~5.0V 工作温度范围:-30~85℃ 芯旺微电子 - 10/96 - 1.2 系统框图 KF8V111 系统框图 Flash程序存储器 (ROM)1KX16位 数据存储器 (RAM)114X8位 寄存器组 R0-R7 系统时钟 复位电路 KF8V111 数据手册 V1.0 VDD VSS CPU Interrupt controller WDT 12位ADC PWM1 PWM2 T1 T0 P0 P1 P2 P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P1.0 P1.1 P1.2 P1.6 P1.7 P2.7 芯旺微电子 - 11/96 - KF8V111 数据手册 V1.0 1.3 存储器 KF8V111 单片机的存储器包含:工作寄存器组 R0~R7、程序存储器(ROM)、数据存储 器(RAM)。 KF8V111 的程序存储器空间为 1K×16 位,寻址范围为 0000H~03FFH,可擦写次数为 10 万次。数据存储器有两个存储区,这里称为特殊寄存器区(SFR)和通用存储器区 0。有关 以上各种存储器的具体介绍请参考第 3 章和第 4 章。 芯旺微电子 - 12/96 - KF8V111 数据手册 V1.0 1.4 系统时钟 振荡周期又叫时钟周期,是振荡器振荡频率的倒数。本芯片中一个机器周期等于四个时 钟周期,如图 1.1 所示。本芯片除执行部分跳转指令需要两个机器周期外,其余指令仅需要 一个机器周期。 时钟周期 机器周期 图 1.1 机器周期 KF8V111 单片机通过系统内部振荡器提供系统工作时钟,没有外部时钟输入和扩展口, 时钟频率为 62.5Khz~16Mhz,通过频率选择寄存器 OSCCTL(如寄存器 1.1 所示)选择系统工 作频率。精度为±1%。 寄存器1.1: OSCCTL系统频率控制寄存器(地址:2FH) bit7 复位值 CKOEN IRCF2 IRCF1 IRCF0 - - - 0011 ---- R/W R/W R/W R/W U U U 注:R=可读 W=可写 -=未用 x=不定 后面与此相同不再复述 bit0 U CKOEN: 系统时钟输出使能位 CKOEN=1 使能系统时钟输出 CKOEN=0 禁止系统时钟输出 IRCF<2:0> 时钟频率选择位 111=16Mhz 110=8Mhz(默认) 101=4Mhz 100=2Mhz 011=1Mhz 010=500Khz 001=250Khz 000=62.5Khz OSCCAL0、OSCCAL1、OSCCAL2、OSCCAL3 为内部振荡器时钟校准寄存器,用户在 编程时,需要在程序初始化部分将存放在程序空间 03FFH、03FEH、03FDH、03FCH 的晶 振校准值读出来存放到 OSCCAL0、OSCCAL1、OSCCAL2、OSCCAL3,参考例子 1.1,否 则会导致系统时钟频率不准。 例 1.1 读晶振校准值 芯旺微电子 - 13/96 - CALL 0X3FF MOV OSCCAL0, R0 CALL 0X3FE MOV OSCCAL1, R0 CALL 0X3FD MOV OSCCAL2, R0 CALL 0X3FC MOV OSCCAL3, R0 KF8V111 数据手册 V1.0 1.5 配置位 如寄存器 1.2 所示,用户在烧写程序时,在编程器中通过对配置位进行设置,使单片机 启用诸如看门狗、程序代码保护、欠压检测等功能。 寄存器1.2: CONFIG: 配置字 R/P U DEBUG - bit10 U R/P R/P R/P R/P R/P U - CODEP LVREN RSTEN PWRT WDTEN - bit7 bit3 注:R=可读 P=编程时可写 U=空位 R/P R/P - - bit0 DEBUG : 在线调试使能位 DEBUG =1 禁止在线调试 DEBUG =0 使能在线调试 CODEP : 代码保护使能位 CODEP =1 禁止程序存储器代码保护 CODEP =0 使能程序存储器代码保护 LVREN: 欠压检测功能使能位 LVREN=1 使能欠压检查功能 LVREN=0 禁止欠压检查功能 RSTEN: P0.3/ RST 引脚功能选择 RSTEN=1 P0.3/ RST 引脚配置为外部复位输入 RSTEN=0 P0.3/ RST 引脚功能为数字输入口 PWRT : 上电延时使能位 PWRT =0 长上电延时 PWRT =1 短上电延时 WDTEN:看门狗定时器(WDT)使能位 WDTEN=1 使能 WDT WDTEN=0 禁止 WDT 芯旺微电子 - 14/96 - KF8V111 数据手册 V1.0 1.6 在线串行编程 如图 1.2、1.3 所示,在最终应用电路中可对 KF8V111 单片机进行在线串行编程。实现 编程仅需要五根线包括: 时钟线(SPCLK)、数据线(SPDAT)、电源线(VDD)、地线(VSS)、编 程电压线(MODE)。 开发人员和用户可以使用未编程的单片机来制造电路板,然后对其在线编程,调试等。 只要有电脑、USB 下载线和编程器,即可在任何时间、任何地点,对电路板上的单片机程 序进行更新。 PC 目标 芯片 编程器 图 1.2 在线调试系统示意图 编程器 MODE +5V 0V 数据I/O CLK KFXXX MODE VDD VSS SPDAT SPCLK 图 1.3 在线串行编程连接图 芯旺微电子 - 15/96 - KF8V111 数据手册 V1.0 2 I/O端口介绍 如图 2.1 所示,KF8V111 单片机共有 14 个引脚,1 脚接电源正极,14 脚接电源负极, 其余管脚均为 I/O 端口(除 P0.3),包括 P0 口、P1 口、P2 口。P0 口共有 P0.0~P0.5 六个引 脚,P1 口共有 P1.0~P1.2、P1.6~P1.7 共五个引脚,P2 有一个引脚 P2.7。 KF8V111SDR 引脚: VDD 1 P0.5/T1CK 2 P0.4/AN3/VREOUT/T1G/CLKOUT 3 P0.3/RST/MODE 4 P1.6/PWM1 5 P1.7/PWM2 6 P2.7/AN11 7 KF8V111 14 VSS 13 P0.0/AN0/SPDAT 12 P0.1/AN1/SPCLK 11 P0.2/AN2/T0CK/INT0 10 P1.0/AN4 9 P1.1/AN5/ADVRIN 8 P1.2/AN6/INT1 KF8V111SBR 引脚: VDD 1 P0.5/T1CK 2 P0.4/AN3/VREOUT/T1G/CLKOUT 3 P0.3/RST/MODE 4 KF8V111 8 VSS 7 P0.0/AN0/SPDAT 6 P0.1/AN1/SPCLK 5 P1.7/PWM2 图 2.1.1 KF8V111 引脚功能图 注: 用户在正常使用时,通常会有一些用不到的引脚,如果直接把这些管脚悬空,而不做其他 处理可能使单片机功耗增大,因此建议将那些不用的引脚设置为数字输出模式,如果P0.3未 用,应外接上拉电阻,并对地下拉一个电容。 芯旺微电子 - 16/96 - KF8V111 数据手册 V1.0 2.1 I/O端口的读写 读 P0/P1/P2 口时实际为读端口电平,即读 Px(x=0/1/2),而写 P0/P1/P2 时实际为写 PxLR(x=0/1/2)寄存器。其原理框图如图 2.2 所示: 数据线 D Q 写端口/输出锁存寄存器 EN 输出使能 输出锁存寄存器PxLR VDD I/O口 VSS 输入使能 读端口 Px 输入缓冲器 图 2.2:I/O 口读写原理图 IO 端口作为输出时,可对 PxLR(x=0/1/2)进行赋值(寄存器操作或位操作),以避免原来 的 IO 端口的读-修改-写操作引起的错误。 芯旺微电子 - 17/96 - KF8V111 数据手册 V1.0 2.2 P0 口 在线编程时 P0 口的 MODE、SPCLK、SPDAT 作为编程脚使用。P0.3 只能作为输入口 且没有上拉功能,其它端口均可作为普通 I/O 口且带有上拉功能,P0 口所有引脚都有电平 变化中断功能。KF8V111 的 P0 口各引脚功能表 2.1 所示。 表 2.1 P0 口各引脚功能介绍 引脚名 I/O 引脚功能 引脚说明 P0.5 带上拉和电平变化中断功能的双向输入输出端口 2 I/O T1CK T1 时钟输入 P0.4 带上拉和电平变化中断功能的双向输入输出端口 AN3 ADC 输入通道 3 3 I/O VREOUT 1.7V 参考电压输出 T1G T1 门控信号输入 CLKOUT 系统时钟输出 P0.3 带电平变化中断的输入端口或开漏输出端口 4 I RST 外部复位信号输入 MODE 编程电压输入 P0.2 带上拉和电平变化中断功能的双向输入输出端口 AN2 11 I/O T0CK ADC 输入通道 2 T0 时钟输入 INT0 外部中断 0 输入 P0.1 12 I/O AN1 带上拉和电平变化中断功能的双向输入输出端口 ADC 输入通道 1 SPCLK 在线编程时钟输入 P0.0 13 I/O AN0 带上拉和电平变化中断功能的双向输入输出端口 ADC 输入通道 0 SPDAT 在线编程数据输入 芯旺微电子 - 18/96 - KF8V111 数据手册 V1.0 2.2.1 P0 口相关的寄存器 地址 05H 45H 25H 36H 35H 0BH 2EH 21H 31H 2FH 名称 P0 P0LR TR0 IOCL PUR INTCTL PCTL OPTR ANSEL OSCCTL 位7 - - - AIE/ AIEH - PUPH ANS7 CKOEN 表 2.2 与 P0 端口相关的寄存器 位6 - 位5 P05 P0LR5 位4 P04 P0LR4 位3 P03 P0LR3 - TR05 TR04 TR03 - IOCL5 IOCL4 IOCL3 - PUIE/ AIEL - PUR5 T0IE - PUR4 INT0IE SLVREN P0IE IPEN INT0SE T1CS T1SE PSA ANS6 IRCS2 ANS5 IRCS1 ANS4 IRCS0 ANS3 - 位2 P02 P0LR2 TR02 IOCL2 PUR2 T0IF SWDTEN PS2 ANS2 - 位1 P01 P0LR1 TR01 IOCL1 PUR1 INT0IF POR PS1 ANS1 - 位0 P00 P0LR0 TR00 IOCL0 PUR0 P0IF LVR PS0 ANS0 - 2.2.1.1 P0 口状态读取寄存器 寄存器 P0 各位对应 P0 口相应引脚的状态,如寄存器 2.1 所示: 寄存器2.1: P0: P0口状态输出寄存器(地址: 05H) bit7 bit0 复位值 - --xx xxxx U - P05 P04 P03 P02 P01 P00 U R/W R/W R/W R/W R/W R/W P0<5:0>: P0 口建议只做读取,读 P0 口各端口电平 P0x=1 对应引脚为逻辑高电平 P0x=0 对应引脚为逻辑低电平 注: P0.3 只能作为输入,没有开漏输出功能。 2.2.1.2 P0 口输出锁存寄存器(P0LR) 寄存器 P0LR 是 P0 口输出锁存寄存器。在 P0 口作为输出时,通过写 P0LR 寄存器来设 置 P0 口的输出状态。 寄存器2.2: 复位值 --xx 1xxx P0LR: P0口输出锁存寄存器(地址: 45H) bit7 - - P0LR5 P0LR4 P0LR3 U U R/W R/W R P0LR2 R/W bit0 P0LR1 P0LR0 R/W R/W P0LR<5:4> :写 P0 口输出状态 P0LR<2:0> :写 P0 口输出状态 1=对应引脚输出高电平 0=对应引脚输出低电平 注:P0LR<3>只能写 1,写 0 会增加电流(5V 时为 20uA) 芯旺微电子 - 19/96 - 2.2.1.3 P0 口方向控制寄存器 KF8V111 数据手册 V1.0 如寄存器 2.3 所示,TR0 为 P0 口方向控制寄存器,当 TR0 某位置 1 时,将该引脚设置 为输入,此时引脚为三态(悬空),TR0 某位清 0,对应引脚设置为输出。 寄存器2.3: TR0: P0口方向控制寄存器(地址: 25H) bit7 复位值 --11 1111 - - U U TR05 R/W TR04 R/W TR03 R TR0<5:4>: TR0<2:0>: P0 口各引脚方向控制位 P0 口各引脚方向控制位 TR0x=1 对应的引脚设置为输入 TR0x=0 对应的引脚设置为输出 注: TR03 P0.3 引脚控制位,始终为 1 TR02 R/W TR01 R/W bit0 TR00 R/W 2.2.1.4 上拉功能控制寄存器 KF8V111 中除了 P0.3 口没有内部上拉功能外,其它引脚均带有上拉功能,可通过上拉 功能控制寄存器和 OPTR 寄存器中的 PUPH 来控制上拉功能是否打开。 如果要将某引脚的上拉功能打开,需要先将 PUPH (上拉功能总使能位)位清 0,允许 P0 口上拉功能打开,然后再将要打开上拉功能的引脚,所对应的上拉功能控制位置 1 即可 。寄 存器 2.4 为上拉功能控制寄存器。 注:只有将引脚设置为数字输入口时才可开启上拉电阻功能,如果将某引脚设置为输出或者 设置为模拟输入口时将会自动禁止该引脚的上拉电阻。 寄存器2.4: PUR: 弱上拉控制寄存器(地址: 35H) bit7 复位值 - --11 -111 - PUR5 PUR4 - U U R/W R/W U PUR2 R/W PUR1 R/W bit0 PUR0 R/W PUR<5:4>: PUR<2:0>: 上拉功能使能位 上拉功能使能位 PURx=1 使能上拉功能 PURx=0 禁止上拉功能 芯旺微电子 - 20/96 - 2.2.1.5 电平变化中断控制寄存器 KF8V111 数据手册 V1.0 P0 口每个引脚都具有电平变化中断功能,当引脚的当前电平与上次读 P0 寄存器时的电 平不匹配时将产生电平变化中断。如寄存器 2.5 所示,IOCL 为电平变化中断控制寄存器, 将 IOCL 某位置 1 将开启对应引脚的电平变化中断功能,如果该引脚电平发生变化,不管电 平变化中断是否使能,电平变化中断标志位(P0IF)都会置 1,如果全局中断使能位(AIE)和电 平变化中断使能位(P0IE)都已置 1,则会响应中断进入中断服务子程序。P0 口所有引脚的电 平变化中断共用一个标志位 P0IF。 注:1.只有将引脚设置为数字输入口时才可开启电平变化中断功能,如果将某引脚设置为输 出或者设置为模拟输入口时将会自动禁止该引脚的电平变化中断功能。 2.P0口各引脚的电平变化中断共用一个中断使能位和中断响应标志位。 寄存器2.5: IOCL: 电平变化中断控制寄存器(地址:36H) bit7 复位值 - --00 0000 - IOCL5 IOCL4 IOCL3 U U R/W R/W R/W IOCL2 R/W IOCL1 R/W bit0 IOCL0 R/W IOCL<5:0>: P0 端口引脚电平变化中断使能控制位 IOCLx=1 使能对应引脚的电平变化中断 IOCLx=0 禁止对应引脚的电平变化中断 注: 在使用 P0 口电平变化中断是在引脚的当前电平与上次读 P0 寄存器时的电平不匹配 时产生的,所以每次中断标志位(P0IF)置 1 后都要更新 P0 寄存器的值。 电平变化中断参考: JNB INTCTL,P0IF ;检测是否为P0电平变化中断 JMP P0INT JMP INT_RET ;退出中断 P0INT MOV R0,P0 ;注意在处理电平变化中断前,这里一定要更新锁存器锁存的值 MOV P0,R0 ... ;接下来为 P0 电平变化中断的处理 芯旺微电子 - 21/96 - KF8V111 数据手册 V1.0 2.2.2 P0 口各引脚内部原理功能框图 如图 2.2、2.3 所示,为 P0 口引脚内部原理功能框图。 外部复位信号 外部复位使能 I/O口 Vss 数字输入 读引脚 电平变化中断使能 电平变化中断 电平变 化中断 逻辑 图 2.2 引脚 P0.3 原理功能框图 芯旺微电子 - 22/96 - 模拟口控制 1 弱上拉总使能 弱上拉使能 方向控制 写控制 输出使能 P0LR INT中断、定时器定时脉冲输入 数字输入 读控制 KF8V111 数据手册 V1.0 VDD 弱上拉 VDD 2 VREOUT VDD I/O口 Vss Vss 模拟口控制 电平变化中断 电平变化中断控制 逻辑 电平变化中断使能 模拟输入 图 2.3 P0 口引脚原理框图 注: 图 2.3 引脚 P0.0~P0.2、P0.4~P0.5 原理功能框图 1、P0.5 没有模拟通道 2、VREOUT 只针对 P0.4 芯旺微电子 - 23/96 - KF8V111 数据手册 V1.0 2.3 P1 口 如表 2.3 所示,KF8V111 型号单片机 P1 口具有 5 个引脚。所有管脚均可作为普通 I/O 口,部分引脚可作为 AD、外部中断 1/2 等的输入。引脚功能如表 2.3 所示。 表 2.3 P1 口各引脚功能 引脚名 I/O 引脚功能 引脚说明 P1.6 双向输入输出端口 5 I/O PWM2 PWM2 输出 P1.7 双向输入输出端口 6 I/O PWM1 PWM1 输出 P1.2 8 I/O AN6 双向输入输出端口 ADC 输入通道 6 INT1 外部中断 1 输入 P1.1 9 I/O AN5 双向输入输出端口 ADC 输入通道 5 ADVRIN AD 外部参考电压输入 P1.0 10 I/O AN4 双向输入输出端口 ADC 输入通道 4 芯旺微电子 - 24/96 - KF8V111 数据手册 V1.0 2.3.1 P1 口相关的寄存器 地址 05H 47H 27H 2CH 0CH 31H 15H 名称 P1 P1LR TR1 EIE1 EIF1 ANSEL PWMCTL 位7 P17 P1LR7 TR17 ANS7 - 位6 P16 P1LR6 TR16 ADIE ADIF ANS6 INT1SE 表 2.4 与 P1 口相关的寄存器 位5 ANS5 - 位4 - INT1IE INT1IF ANS4 - 位3 ANS3 - 位2 P12 P1LR2 TR12 PWM2IE PWM2IF ANS2 - 位1 P11 P1LR1 TR11 ANS1 PWM2O N 位0 P10 P1LR0 TR10 T1IE T1IF ANS0 PWM1O N 2.3.1.1 P1 口状态读取寄存器 寄存器 P1 对应端口引脚作为普通 I/O 口时的状态,如寄存器 2.6 所示。 寄存器2.6: P1: P1口状态读取寄存器(地址: 07H) bit7 复位值 P17 P16 - - - xxxx xxxx R/W R/W U U U bit0 P12 P11 P10 R/W R/W R/W P1<7:6>: P1<2:0>: P1 口建议只做读取,读 P1 口各端口电平 P1 口建议只做读取,读 P1 口各端口电平 P1x=1 对应引脚为逻辑高电平 P1x=0 对应引脚为逻辑低电平 2.3.1.2 P1 口输出锁存寄存器(P1LR) 寄存器 P1LR 是 P1 口输出锁存寄存器。在 P1 口作为输出时,通过写 P1LR 寄存器来设 置 P1 口的输出状态。 寄存器2.7: 复位值 xxxx xxxx P1LR: P1口输出锁存寄存器(地址: 47H) bit7 P1LR7 P1LR6 - - - R/W R/W U U U P1LR<2:0> P1LR<7:6> :写 P1 口输出状态 :写 P1 口输出状态 1=对应引脚输出高电平 0=对应引脚输出低电平 bit0 P1LR2 P1LR1 P1LR0 R/W R/W R/W 芯旺微电子 - 25/96 - 2.3.1.3 P1 口方向控制寄存器 KF8V111 数据手册 V1.0 如寄存器 2.8 所示,通过将寄存器 TR1 中的某位置 1,将对应管脚设置为输入口。清 0 设置为输出口,系统复位时,P1 口各引脚默认为输入口。 寄存器2.8: TR1: P1口方向控制寄存器(地址: 27H) bit7 复位值 TR17 TR16 - - - 1111 1111 R/W R/W U U U TR12 R/W TR11 R/W bit0 TR10 R/W TR1<2:0>: TR1<7:6>: P1 口引脚方向控制位 P1 口引脚方向控制位 TR1x=1 P1 口对应引脚被配置为输入端口 TR1x=0 P1 口对应引脚被配置为输出端口 芯旺微电子 - 26/96 - KF8V111 数据手册 V1.0 2.3.2 P1 口原理功能框图 如图 2.4 所示,P1 口共有 5 个引脚,根据各引脚的作用不同,P1 口引脚原理功能框图。 写控制 输出使能 P1LR VDD VDD 模拟口控制 数字输入 读信号 INT1/2 模拟输入 Vss I/O口 Vss 图 2.4 P1 口引脚原理功能框图 注:1、P1.6/P1.7 没有模拟功能 芯旺微电子 - 27/96 - KF8V111 数据手册 V1.0 2.4 P2 口 如图 2.1 所示,KF8V111 单片机中 P2 口共有 1 个引脚,对应管脚 7。可作为普通 I/O 口和运放的输入或者输出口。 引脚名 I/O 7 I/O 引脚功能 P2.7 AN11 表 2.5 P2 口引脚功能 引脚说明 双向输入输出端口 模拟输入通道 11 2.4.1 P2 口相关的寄存器 地址 06H 46H 26H 1DH 名称 P2 P2LR TR2 ANSEH 位7 P27 P2LR7 TR27 - 位6 - 表 2.6 与 P2 口相关的寄存器 位5 - 位4 - 位3 ANS11 位2 - 位1 - 位0 - 2.4.1.1 P2 口状态寄存器(P2) 寄存器 P2 各位对应端口 P2 口引脚作为普通 I/O 口时的状态。如寄存器 2.9 所示。 寄存器2.9: P2: P2口状态寄存器(地址: 06H) bit7 bit0 复位值 P27 - - - - - - - xxxx ---- R/W U U U U U U U P2<7>: P2 口引脚状态位 P2x=1 对应引脚为逻辑高电平 P2x=0 对应引脚为逻辑低电平 2.4.1.2 P2 口输出锁存寄存器(P2LR) 寄存器 P2LR 是 P2 口输出锁存寄存器。在 P2 口作为输出时,通过写 P2LR 寄存器来设 置 P2 口的输出状态。 寄存器2.10: P2LR: P2口输出锁存寄存器(地址: 46H) bit7 bit0 复位值 xxxx ---- P2LR7 - - - - - - - R/W U U U U U U U P2LR<7>: 写 P2 口输出状态 1=对应引脚输出高电平 0=对应引脚输出低电平 芯旺微电子 - 28/96 - KF8V111 数据手册 V1.0 2.4.1.3 P2 口方向控制寄存器(TR2) 如寄存器 2.11 所示,通过将寄存器 TR2 中的某位置 1,将对应管脚设置为输入口。清 0 设置为输出口。 寄存器2.11: TR2: P2口方向控制寄存器(地址: 26H) bit7 bit0 复位值 TR27 - - - - - - - 1111 ---- R/W U U U U U U U TR2<7>: P2 口各引脚方向控制位 TR2x=1 P2 口对应引脚被配置为输入端口 TR2x=0 P2 口对应引脚被配置为输出端口 2.4.1.4 模拟口配置寄存器(ANSEH) ANSEH 用来将 P2 口配置为模拟或数字 I/O 口, ANS11 对应 P2.7。ANSx=0 将对应引 脚配置为数字 I/O 口。ANSx=1 将对应的引脚配置为模拟口。 寄存器2.12:ANSEH: 模拟口设置寄存器(地址: 1DH) bit7 复位值 - - - - ANS11 - ---- 0000 U U U U R/W U ANS<11>: P2 口模拟/数字口配置位 ANSx=1 将对应引脚配置为模拟口 ANSx=0 将对应引脚配置为数字 I/O 口 bit0 - - U U 2.4.2 P2 口原理功能框图 P2 口共有 1 个引脚,原理图如图 2.5 所示。 芯旺微电子 - 29/96 - KF8V111 数据手册 V1.0 写控制 输出使能 P2LR VDD VDD 模拟口控制 数字输入 读信号 模拟输入、输出 Vss 图 2.5 P2 口引脚原理功能框图 I/O口 Vss 芯旺微电子 - 30/96 - KF8V111 数据手册 V1.0 3 存储器 如图 3.1 所示,KF8V111 中存储器主要由程序存储器(ROM)和数据存储器(RAM)组成, 程序存储器和数据存储器地址空间相互独立。其中程序存储器为 1K×16 位的 FLASH 存储器; 数据存储器由特殊功能寄存器和通用寄存器组成,特殊功能寄存器空间为 112×8 位,通用数 据寄存器空间为 144(128+16)×8 位。另外 KF8V111 中还有一些其它存储器,包括:工作寄存 器组 R0~R7、8 级硬件堆栈、ID 地址单元等。 0000H 复位向量入口 … 0004H 中断向量入口/高优先级中断向量入口 0014H 低优先级中断向量入口 03FAH 03FFH 0400H ID地址单元 保留 00H 用 户 程 SFR 序 存 6FH 储 70H SRAM 16×8 区 7FH 80H 通用寄存器 64×8 0BFH 1FFFH 0FFH 图 3.1 存储器组织图 芯旺微电子 - 31/96 - KF8V111 数据手册 V1.0 3.1 程序存储器(ROM)区 KF8V111 实现了 1K×16 位的程序空间 ,地址为 0000H~03FFH,复位向量入口地址为 0000H,中断向量有两个入口地址,分为两级优先级,高优先级地址为 0004H,低优先级地 址为 0014H。 如图 3.2 所示,程序计数器(PC)的低 8 位(PC<7:0>)来自特殊功能寄存器 PCL,高 5 位 (PC<12:8>)来自 PCH 寄存器。在任何复位发生后 PC 值将被清 0。在有任何未屏蔽中断发生 后 PC 值将指向 0004H 或 0014H 地址。图 3.3 为程序存储器区的地址映射图。 在用户的程序中,每当执行一条汇编指令 PC 值会自动加 1,指向下一条要执行的指令。 当有子程序调用或响应中断时,CPU 会将 PC+1 后的值压入堆栈进行保存,然后将子程序或 中断入口地址送到 PC 中,CPU 根据 PC 的值跳转到对应的地址执行命令。 PCH<7:5> PCH<4:0> PCL<7:0> 图 3.2 程序计数器(PC) 13位程序计数器 PC 0000H 复位向量入口 用 … 户 程 0004H 中断向量入口/高优先级中断向量入口 序 存 0014H 低优先级中断向量入口 储 03FAH 区 03FFH ID地址单元 0400H 1FFFH 图 3.3 KF8V111 程序存储器映射 芯旺微电子 - 32/96 - KF8V111 数据手册 V1.0 3.2 数据存储器(RAM)区 如图 3.4 所示,KF8V111 中的数据存储器由三个区组成,每个区的空间都是 128 字节, 其中一个区用作特殊功能寄存器区(SFR)使用;另外两个存储器区为通用寄存器区,由用户 支配。SFR 地址空间为 00H~6FH;其中通用寄存器区地址为 70H~7FH(16 个字节的 SRAM 共用区)和 80H~0FFH。 00H SFR 70H 7FH 16×8 SRAM共用区 0区 80H 通用寄存器1 0FFH 图 3.4 数据存储器地址映射图 3.2.1 特殊功能寄存器(SFR)区 KF8V111 内部的 I/O 口控制、定时/计数器、中断等各种控制寄存器和状态寄存器都称 为特殊功能寄存器。附录 1 列出 SFR 的地址映射及复位初始值等。 状态字寄存器(PSW): 如寄存器 3.1 所示,PSW 的低三位是算术运算标志位,在进行加、 减等运算时对它们产生影响(具体请参考汇编指令部分)。 TO 和 PD 是复位状态位,当单片机 芯旺微电子 - 33/96 - KF8V111 数据手册 V1.0 有复位或看门狗超时、执行休眠等指令时,会对这两位产生影响。 寄存器3.1: PSW: 状态字寄存器(地址: 03H) bit7 复位值 --01 1xxx - - - TO 保留 保留 保留 R-1 bit0 PD Z DC CY R-1 R/W-x R/W-x R/W-x TO : 超时标志位 TO =1 在上电复位、CWDT 指令或 IDLE 指令执行之后 TO =0 WDT 超时被清 0 PD : 上电复位标志位 PD =1 上电复位或执行 CWDT 指令后 PD =0 执行 IDLE 指令后被清 0 Z: 零状态标志位 Z=1 算术运算或者逻辑运算的运行结果为 0 Z=0 算术运算或者逻辑运算的运行结果不为 0 DC: 辅助进/借位标志位 DC=1 执行结果的低 4 位向高 4 位有进位(加指令)或没有借位(减指令) DC=0 执行结果的低 4 位向高 4 位没有进位(加指令)或有借位(减指令) CY: 进位/借位标志位 CY=1 执行结果(8 位)向高位有进位时(加指令)或没有借位(减指令) CY=0 执行结果(8 位)向高位无进位时(加指令)或有借位(减指令) 注:对于借位的情况,当指令执行后,低四位(或高四位)向高位有借位时,DC(或CY)标 志为0,当没有借位时其值为1。关于对标志位是否产生影响的指令请参考“汇编指令集” 部分。 芯旺微电子 - 34/96 - KF8V111 数据手册 V1.0 3.3 寄存器组Rn KF8V111 芯片中有一个工作寄存器组 R0~R7,可用做间接寻址的中间寄存器,存放操 作数的地址;隐含目的操作数的指令中,默认 R0 作为目的操作数(如: RRCR 0X81);在读晶 振校准值和参考电压校准值时,默认将读到的值送到 R0 中。 3.4 ID地址单元 KF8V111 的程序存储器空间的最后 6 个地址单元被指定为 ID 地址单元,地址为 3FAH~ 3FFH。用户可在其中存放校准值和或其它信息。正常运行时不能对这些地址单元进行访问, 但在编程/校验时这些地址单元是可读写的。 芯旺微电子 - 35/96 - 4 汇编指令及寻址方式 KF8V111 数据手册 V1.0 4.1 寻址方式 KF8V111 系列单片机提供 5 种寻址方式,分别为:寄存器寻址、直接寻址、立即数寻 址、寄存器间接寻址和位寻址。 4.1.1 寄存器寻址 采用这种寻址方式的指令中的操作数为寄存器组 R0-R7 的一个。 例: CLR R0 ;R0←0 将寄存器 R0 清 0 只有一个操作数(R0 的值),寻址方式为寄存器寻址。 ADD R0, R1 两个操作数(R0 和 R1), 寻址方式为寄存器寻址。 4.1.2 直接寻址 在指令中的操作数为某个寄存器的直接地址,该地址指出其参与运算的数据所在的地 址。直接寻址可以是: 特殊功能寄存器、通用数据存储器。 例: MOV R0,0X81 ;R0←(81H) 将 81H 单元的数据送到 R0 中 指令中,源操作数寻址方式为直接寻址,目的操作数为寄存器寻址。 INC 0X3B ;3BH←(3BH)+1 将地址 3BH 里的值加 1,3BH 即 BADDRL。 指令中含有一个操作数,寻址方式为直接寻址。 4.1.3 立即数寻址 在指令中的操作数为立即数。 例: MOV R0,#0X20 ;R0←0X20 将立即数 0X20 送到寄存器 R0 中 ADD R0,#0X20 ;R0←(R0)+0X20 寄存器 R0 的值与 0X20 相加结果送到 R0 AND R0,#0X20 ;R0←(R0)&0X20 寄存器 R0 的值与 0X20 相与结果送到 R0 以上三条指令中源操作数都是#0X20,为立即数寻址,目的操作数为寄存器寻址。 芯旺微电子 - 36/96 - 4.1.4 寄存器间接寻址 KF8V111 数据手册 V1.0 这种寻址方式中,寄存器的内容指定操作数的地址,即寄存器中存放的是操作数的地址。 间接寻址只有两条指令 LD 和 ST。 例: LD R0, [R1] ;R0←((R1)) 将 R1 的内容所指地址单元的数据送到 R0 指令中源操作数的寻址方式为寄存器间接寻址,目的操作数为寄存器寻址。 ST [R0], R1 ;(R0)←(R1) 将 R1 的内容送到 R0 的内容所指向的地址单元 指令中目的操作数的寻址方式为寄存器间接寻址,源操作数为寄存器寻址。 4.1.5 位寻址 指令中的操作数是寄存器的某位,这样的寻址方式称为位寻址。 例: CLR INTCTL,1 CLR 0X80,1 JNB 0X80,1 ;将 INTCTL 的第 1 位清 0 ;将 80H 的第 1 位清 0 ;如果 80H 的第 1 位为 0 则跳过下一条指令执行后面的程序 4.2 汇编指令 KF8V111 系列单片机汇编指令共有 68 条,除子程序调用、子程序返回、中断返回、部 分跳转指令为双周期指令外,其余指令均为单周期指令。所有指令都占两个字节。 按照指令的功能可将其分为:数据传送指令、算术运算指令、逻辑运算指令、位操作指 令和转移指令和特殊指令。具体指令集请参考附录 2。 芯旺微电子 - 37/96 - KF8V111 数据手册 V1.0 5 中断 KF8V111 单片机的中断源有: ● INT0/1 ● T0/1 溢出中断 ● P0 口引脚电平变化中断 ● A/D 中断 ●PWM2 中断 在本单片机中有 2 个中断优先级,多个中断源,其中高优先级向量位于 0X0004H,低 优先级向量位于 0X0014H。在中断服务程序里可通过 PCTL 的 IPEN(PCTL<3>)进行中断优 先级设置。在中断服务子程序中通过检测相应的中断标志位来确定具体是哪个中断源触发发 生。 KF8V111 中的 INT1、T1、ADC、PWM2 都属于外设,因此对应的中断称作外设中断, 其它中断源产生的中断属于内设中断。中断逻辑如图 5.2 所示。在中断逻辑框图中,每个中 断源有 3 个位用于控制其操作。这些位的功能分别是: ☞标志位表明发生了中断事件; ☞中断允许位允许程序跳转到中断向量地址处执行; ☞中断优先级位用于选择高优先级还是低优先级; 通过将 IPEN 位(PCTL<3>)置 1,可使能中断优先级功能。当 IPEN 置 1 时,有两个 中断允许位,分别是 AIEH 和 AIEL。将 AIEH(INTCTL<7>)置 1,可允许所有中断优先级 位已置 1 的中断,即高优先级的中断。将 AIEL(INTCTL<6>)置 1,可允许所有中断优先 级位已清 0 的中断,即低优先级的中断。当中断标志位、中断允许位和中断优先级位都被置 1 时,中断将根据设置的中断优先级立即跳转到地址 0x0004H 或者 0x0014H。进低优先级中 断时清 0 AIEL,退出低优先级中断时置 1 AIEL;进高优先级中断时清 AIEH,退出高优先 级中断时置 1 AIEH。(AIEH=0 时禁止所有中断)。如果两级中断同时发生,高优先级中断事 件可以中断正在处理的低优先级中断事件,等高优先级中断事件结束后再处理低优先级的中 断事件。其原理框图如图 5.1 下: 退出高优先级 中断服务程序 AIEH 响应高优先级 退出低优先级 中断服务程序 AIEL 响应低优先级 (AIEH=0)&RETI:AIEH置1 (AIEH=1)&RETI:AIEL置1 图 5.1 中断优先级工作原理图 当 IPEN 位清 0 时,就会禁止中断优先级,即为普通模式。所有中断都跳转到 0x0004H 芯旺微电子 - 38/96 - KF8V111 数据手册 V1.0 开始执行。在普通模式下,没有中断优先级,各个中断源的中断优先级控制寄存器 IP0 和 IP1 均无效。AIE(INTCTL<7>)为全局中断使能位,PUIE(INTCTL<6>)为外设中断使能位。 T1中断 外设中断源 INT1中断 A/D中断 PWM2中断 中断优先级控制位 中断标志位 中断使能位 外设 中断源 T0中断 IPEN PUIE IPEN 中断优先级控制位 中断标志位 中断使能位 内部 中断源 中断优先级控制位 中断标志位 中断使能位 内部 中断源 IPEN 内部中断源 INT0中断 P0中断 AIE/AIEH 休眠唤醒 高优先级中断/ 普通中断入口 地址:04H 低优先级中断 入口地址:14H AIEL AIEH=1 中断优先级控制位 中断标志位 中断使能位 外设 中断源 图 5.2 中断逻辑 芯旺微电子 - 39/96 - KF8V111 数据手册 V1.0 5.1 中断相关的寄存器 地址 寄存器 0BH INTCTL 2CH EIE1 0CH EIF1 22H IP0 23H IP1 2EH PCTL 10H T1CTL 15H PWMCT L 21H OPTR 36H IOCL 位7 AIE/ AIEH - - - PUPH - 位6 PUIE/ AIEL ADIE ADIF PADC - T1GC INT1SE INT0SE - 表 5.1 与中断相关的寄存器 位5 T0IE 位4 INT0IE 位3 P0IE 位2 T0IF - T1CKS1 - INT1IE INT1IF PINT1 SLVREN T1CKS0 - IPEN - - PWM2IE PWM2IF PT0 - SWDTEN T1SY - T0CS IOCL5 T0SE IOCL4 PSA IOCL3 PS2 IOCL2 位1 INT0IF PINT0 POR T1CS PWM2ON PS1 IOCL1 位0 P0IF T1IE T1IF PP0 PT1 LVR T1ON PWM1ON PS0 IOCL0 5.1.1 中断控制寄存器(INTCTL) 如寄存器 5.1 所示,它包含: ● T0 寄存器溢出中断使能控制和标志位 ● P0 口电平变化中断使能控制和标志位 ● INT0 中断使能控制和标志位 ● 外设中断和总中断使能位 普通模式下,AIE 为全局中断使能位,当其被清 0 时,禁止所有中断。PUIE 为外设中 断使能位,当其被清 0 时禁止所有外设中断。具体的中断逻辑如图 5.1 所示 。 在优先级中断中,AIEH 为全局优先级中断使能位,当其被清 0 时,禁止所有中断。AIEL 为低优先级中断使能位,当其被清 0 时禁止所有低优先级中断。具体的中断逻辑如图 5.1 所 示。 注:1.当中断条件满足时,无论相应的中断使能位或者全局中断使能位AIE的状态如何,中断 标志位将被硬件置1。 2.中断条件满足时,中断标志位通过硬件置1,而清零则需要软件完成。 寄存器5.1: INTCTL: 中断控制寄存器(地址: 0BH) 复位值 0000 0000 bit7 AIE/AIEH R/W PUIE/AIE L R/W T0IE R/W INT0IE R/W P0IE R/W T0IF R/W INT0IF R/W bit0 P0IF R/W AIE/AIEH: 全局中断使能位/优先级中断使能位 当 IPEN=0 AIE=1 使能所有未屏蔽的中断 AIE=0 禁止所有中断 当 IPEN=1 AIEH=1 允许所有高优先级的中断 AIEH=0 禁止所有中断 芯旺微电子 - 40/96 - KF8V111 数据手册 V1.0 PUIE/AIEL: 外设中断使能位/低优先级中断使能位 当 IPEN=0 PUIE=1 使能所有未屏蔽的外设中断 PUIE=0 禁止所有外设中断 当 IPEN=1 AIEL=1 允许所有低优先级的外设中断 AIEL=0 禁止所有低优先级的外设中断 T0IE: T0 溢出中断使能位 T0IE=1 使能 T0 中断 T0IE=0 禁止 T0 中断 INT0IE: INT0 中断使能位 INT0IE=1 使能 INT0 中断 INT0IE=0 禁止 INT0 中断 P0IE: P0 口电平变化中断使能位 P0IE=1 使能 P0 口电平变化中断 P0IE=0 禁止 P0 口电平变化中断 T0IF: T0 溢出中断标志位 T0IF=1 T0 寄存器溢出 T0IF=0 T0 寄存器未溢出 INT0IF: INT0 中断标志位 INT0IF=1 INT0/P02 产生外部中断 INT0IF=0 INT0/P02 未产生外部中断 P0IF: P0 口电平变化中断标志位 P0IF=1 引脚 P0.0~P0.5 至少有一个电平状态发生变化 P0IF=0 引脚 P0.0~P0.5 电平状态未发生变化 5.1.2 中断使能寄存器EIE1 如寄存器 5.2 所示,EIE1 是一个可读写的寄存器,它包含: ● ADC 中断使能位 ● INT1 中断使能位 ● T1 中断使能位 ● PWM2 中断使能位 寄存器5.2: EIE1: 中断使能寄存器(地址: 2CH) 复位值 -0-0 -0-0 bit7 U ADIE R/W - INT1IE - PWM2 - U R/W U R/W U bit0 T1IE R/W ADIE: AD 中断使能位 ADIE=1 使能 AD 中断 ADIE=0 禁止 AD 中断 INT1IE: INT1 中断使能位 芯旺微电子 - 41/96 - INT1IE=1 使能 INT1 中断 INT1IE=0 禁止 INT1 中断\ PWM2IE: PWM2 中断使能位 PWM2IE=1 使能 PWM2 中断 PWM2IE=0 禁止 PWM2 中断 T1IE: T1 中断使能位 T1IE=1 使能 T1 中断 T1IE=0 禁止 T1 中断 KF8V111 数据手册 V1.0 5.1.3 中断标志寄存器EIF1 如寄存器 5.3 所示,中断标志寄存器包含: ● AD 中断标志位 ● INT1 中断标志位 ● T1 中断标志位 ●PWM2 中断标志位 寄存器5.4: EIF1: 外设中断标志寄存器(地址:0CH) bit7 复位值 - -0-0 -0-0 U ADIF R/W - INT1IF - PWM2IF - U R/W U R/W U bit0 T1IF R/W ADIF: AD 完成中断标志位 ADIF=1 AD 转换完成 ADIF=0 AD 转换没有完成 INT1IF: INT1 中断标志位 INT1IF=1 INT1/P1.2 产生外部中断 INT1IF=0 INT1/P1.2 未产生外部中断 PWM2IF: PWM2 中断标志位 PWM2IF=1 发生了 PWM2 中断 PWM2IF=0 未发生了 PWM2 中断 T1IF: T1 寄存器溢出标志位 T1IF=1 T1 寄存器溢出或 PWM1/2 使能时,T1L 与 PP1 匹配 T1IF=0 T1 寄存器未溢出或 PWM1/2 使能时,T1L 与 PP1 不匹配 5.1.4 中断优先级控制寄存器IP0 当 IPEN=1 时,中断优先级控制寄存器 IP0 才有效。如寄存器 5.6 所示,中断优先级控 制寄存器 IP0 包含: ● T0 中断高优先级 PT0 ● INT0 中断高优先级 PINT0 ● P0 口电平变化中断高优先级 PP0 芯旺微电子 - 42/96 - KF8V111 数据手册 V1.0 寄存器5.6: IP0: 中断优先级控制寄存器0(地址: 22H) bit7 复位值 - - - - - ---- -000 U U U U U bit0 PT0 PINT0 PP0 R/W R/W R/W PT0: T0 中断优先级控制位 PT0=1 T0 中断为高优先级 PT0=0 T0 中断为低优先级 PINT0: INT0 中断优先级控制位 PINT0=1 INT0 中断为高优先级 PINT0=0 INT0 中断为低优先级 PP0: P0 电平变化中断优先级控制位 PP0=1 P0 电平变化中断为高优先级 PP0=0 P0 电平变化中断为低优先级 芯旺微电子 - 43/96 - KF8V111 数据手册 V1.0 5.1.5 中断优先级控制寄存器IP1 当 IPEN=1 时,中断优先级控制寄存器 IP1 才有效。如寄存器 5.7 所示,中断优先级控 制寄存器 IP0 包含: ● AD 中断高优先级 PADC ● INT1 中断高优先级 PINT1 ● T1 中断高优先级 PT1 ● PWM2 中断高优先级 PPWM2 寄存器5.7: IP1: 中断优先级控制寄存器1(地址: 23H) bit7 bit0 复位值 - PADC - PINT1 - PPWM2 - PT1 -000 0000 U R/W U R/W U R/W U R/W PADC: AD 中断高优先级控制位 PADC=1 AD 中断为高优先级 PADC=0 AD 中断为低优先级 PINT1: INT1 中断高优先级控制位 PINT1=1 INT1 中断为高优先级 PINT1=0 INT1 中断为低优先级 PPWM2: PWM2 中断高优先级控制位 PPWM2=1 PWM2 中断为高优先级 PPWM2=0 PWM2 中断为低优先级 PT1: T1 中断高优先级控制位 PT1=1 T1 中断为高优先级 PT1=0 T1 中断为低优先级 5.1.6 电源控制寄存器PCTL 寄存器5.9: PCTL:电源控制寄存器(地址: 2EH) bit7 复位值 - - ---1 00xx U U bit0 - SLVREN IPEN SWDTEN POR LVR U R/W R/W R/W R/W R/W SLVREN: 软件欠压检测使能位 SLVREN=1 使能欠压检测 SLVREN=0 禁止欠压检测 IPEN: 中断优先级控制位 IPEN=1 使能中断优先级功能 芯旺微电子 - 44/96 - KF8V111 数据手册 V1.0 IPEN=0 禁止中断优先级,即为普通模式 SWDTEN:软件看门狗定时器使能位 当配置字的 WDTEN=0 时 SWDTEN=1 软件使能看门狗定时器 SWDTEN=0 软件禁止看门狗定时器 POR : 上电复位状态位 POR =1 未发生上电复位 POR =0 发生了上电复位 LVR : 欠压复位状态位 LVR =1 未发生欠压复位 LVR =0 已发生欠压复位 芯旺微电子 - 45/96 - KF8V111 数据手册 V1.0 5.1.7 中断响应 当 IPEN=1 时,中断被响应后: 1. 进入优先级中断,由软件对 AIEH 置 1,或对 AIEL 位置 1。 2. 返回地址压入堆栈; 3. 中断入口地址载入 PC; 4.如果进入低优先级中断时,AIEL 位由硬件自动清 0,执行低优先级中断服务程序;如果 进入高优先级中断时,AIEH 由硬件自动清 0。执行高优先级中断服务程序,执行指令 IRET 退出高优先级中断,硬件自动将 AIEH 置 1。(若有低优先级中断则继续执行低优先级中 断服务程序,执行指令 IRET 退出低优先级中断硬件自动将 AIEL 置 1。) 5. 只将 AIEH 置 1,则直接进入高优先级中断,AIEH 由硬件自动清 0; 6.继续执行中断服务子程序; 7.执行指令 IRET 退出中断服务子程序并由硬件自动将 AIEH 置 1,重新使能未屏蔽的中断; 8.跳转到中断发生处继续执行下面的程序。 当 IPEN=0 时,中断被响应后: 1.AIE 位将被硬件清 0 以禁止其它中断; 2.返回地址压入堆栈; 3.中断入口地址载入 PC; 4.执行该中断服务子程序; 5.执行指令 IRET 退出中断服务子程序并将 AIE 置 1,重新使能未屏蔽的中断; 6.跳转到中断发生处继续执行下面的程序。 进入中断服务程序后,首先保存 PSW 和其它寄存器的值,然后通过查询中断标志位确 定中断源。在重新使能中断之前,应在软件中将相应的中断标志位清 0,以避免出错。 注 1: 中断条件满足时,无论相应的中断使能位或AIE位的状态为何,中断标志位都将被置1。 2: 当执行一条清除AIE位的指令后,任何在下一周期等待响应的中断都将被忽略。当AIE位 重新置1时,被忽略的中断请求将继续等待被响应。 3: 当对中断进行响应,进入中断服务子程序的时候硬件会将AIE位清零关闭总中断,当中断 程序执行完,中断返回指令跳出中断子程序时,硬件将AIE位置1打开总中断。 芯旺微电子 - 46/96 - KF8V111 数据手册 V1.0 5.2 INT 中断 INT 中断有三个中断源: INT0、INT1 和 INT2,都采用边沿触发方式,如果触发边沿选择 位(INTxSE)置 1,则采用上升沿触发;如果触发边沿选择位清 0,则采用下降沿触发。 地址 0BH 2CH 0CH 15H 21H 22H 23H 2EH 寄存器 INTCTL EIE1 EIF1 PWMCTL OPTR IP0 IP1 PCTL 位7 AIE - PUPH - 表 5.2 与 INT 中断有关的寄存器 位6 PUIE ADIE ADIF INT1SE INT0SE 位5 T0IE - T0CS 位4 INT0IE INT1IE INT1IF T0SE 位3 P0IE - PSA 位2 T0IF PWM2IE PWM2IF PS2 PADC - - - - PT0 - PINT1 - PPWM2 - SLVREN IPEN SWDTEN 位1 INT0IF - PWM2ON PS1 PINT0 - POR 位0 P0IF T1IE T1IF PWM1ON PS0 PP0 PT1 LVR 5.2.1 INT0 中断 INT0 中断通过寄存器 INTCTL 中的 INT0IE 位置 1 使能 INT0 中断。通过 OPTR 中的 INT0SE 位设置触发边沿,INT0SE 置 1,将 INT0 设置为上升沿触发,清零设置为下降沿触发。 INTCTL 中的 INT0IF 为 INT0 的中断标志位。如果 IPEN 和 PINT0 位均置 1,则 INT0 为高 优先级中断。 INT0 引脚有触发脉冲时,INT0IF 被自动置 1,如果 INT0IE 和 AIE 位为 1,则响 应 INT0 中断。 5.2.2 INT1 中断 INT1 中断通过寄存器 EIE1 中的 INT1IE 位置 1 使能 INT1 中断。通过 PWMCTL 中的 INT1SE 位设置触发边沿,INT1SE 置 1,将 INT1 设置为上升沿触发,清零设置为下降沿触发。 EIF1 中的 INT1IF 为 INT1 的中断标志位。如果 IPEN 和 PINT1 位均置 1,则 INT1 为高优先 级中断。 INT1 引脚有触发脉冲时,INT1IF 被自动置 1,如果 INT1IE、PUIE 和 AIE 位为 1,则 响应 INT1 中断。 使用 INT 中断时的设置: 1.将对应的 INTx 引脚设置为数字输入口。 2. 选择触发脉冲边沿时上升沿还是下降沿(INT0/1SE 置 1 为上升沿触发); 3. 将相应的外部中断使能位置 1(INTxIE),如果为高优先级,则 IPEN 和 PINTx 均置 1。 芯旺微电子 - 47/96 - KF8V111 数据手册 V1.0 5.3 定时器中断 T0 寄存器发生溢出时,T0IF 位将会被置 1。通过将 T0IE 位置 1/清 0 可使能/禁止该中 断。当 IPEN 和 PT0 置 1 时,定时器 T0 中断配置为高优先级中断。 T1 寄存器发生溢出时,T1IF 位将会被置 1。通过将 T1IE 位置 1/清 0 可使能/禁止该中 断。当 IPEN 和 PT1 置 1 时,定时器 T1 中断配置为高优先级中断。 5.4 P0 口中断 P0 口引脚的输入电平变化将使 P0IF(INTCTL.0)位置 1。通过设置/清除 P0IE(INTCTL.3) 位,可使能/禁止该中断。且该端口各引脚可通过 IOCL 寄存器来对每个引脚进行配置。有 关 P0 口中断的操作,请参考 P0 口电平变化中断控制寄存器的部分。当 IPEN 和 PP0 均置 1 时,P0 口中断配置为高优先级中断。 5.5 中断现场保护 在中断响应时,硬件会把当前 PC 值加 1 入栈保存,中断结束后,硬件在将本次中断入 栈时的值弹出载入 PC,继续执行后面的程序。通常,用户可能希望在中断时对一些关键寄存 器的内容进行保存(例如,Rn 和 PSW)。这些都需通过软件方式实现。 芯旺微电子 - 48/96 - KF8V111 数据手册 V1.0 6 定时/计数器 KF8V111 单片机提供一个 8 位的定时/计数器 T0、1 个 16 位的定时/计数器 T1。 6.1 定时/计数器 0(T0) T0 是一个 8 位的定时/计数器,当 T0 寄存器值加到 255 时,再加 1,则会产生溢出, T0 寄存器的值返回到 0 开始重新计数。 地址 0BH 01H 21H 25H 22H 2EH 寄存器 INTCTL T0 OPTR TR0 IP0 PCTL 位7 AIE PUPH - 表 6.1 与 T0 相关的寄存器 位6 PUIE INT0SE 位5 T0IE T0CS 位4 位3 INT0IE P0IE 8 位计数器 T0SE PSA - TR05 TR04 TR03 - - - - - - SLVREN IPEN 位2 T0IF PS2 TR02 PT0 SWDTEN 位1 P0IF PS1 TR01 PINT0 POR 位0 INT0IF PS0 TR00 PP0 LVR 6.1.1 OPTR选择寄存器 如寄存器 6.1 所示,T0CS 为定时/计数模式选择位,T0SE 为计数模式时外部触发脉冲 边沿选择位,PSA 用来将预分频器分配给 WDT 或者 T0,PS<2:0>对分频比分配。 寄存器6.1: OPTR: 选择寄存器(地址: 21H) 复位值 bit7 1111 1111 PUPH R/W-1 INT0SE R/W-1 T0CS R/W-1 TOSE R/W-1 PSA R/W-1 PS2 R/W-1 PS1 R/W-1 bit0 PS0 R/W-1 PUPH : P0 口上拉功能总使能位 PUPH =1 禁止 P0 口所有上拉功能 PUPH =0 允许 P0 口使用上拉功能 INT0SE:INT0 中断触发脉冲边沿选择位 INT0SE=1 INT0/P0.2 为上升沿触发 INT0SE=0 INT0/P0.2 为下降沿触发 T0CS: T0 模式选择位 T0CS=1 计数模式,T0 的时钟为外部时钟 T0CK/P0.2 T0CS=0 定时模式,T0 的时钟为机器内部时钟 FOSC/4 T0SE: T0 计数脉冲信号边沿选择位 T0SE=1 下降沿触发 T0SE=0 上升沿触发 PSA: 预分频器分配控制位 PSA=1 预分频器用于 WDT PSA=0 预分频器用于 T0 芯旺微电子 - 50/96 - PS<2:0>: 预分频器分频比选择位 PS<2:0> 000 001 010 011 100 101 110 111 KF8V111 数据手册 V1.0 WDT 分频比 1:1 1:2 1:4 1:8 1 : 16 1 : 32 1 : 64 1 : 128 T0 分频比 1:2 1:4 1:8 1 : 16 1 : 32 1 : 64 1 : 128 1 : 256 6.1.2 预分频器 图 6.1 为预分频器的结构框图。T0 模块使用一个 8 位计数器作为预分频器。如寄存器 6.1 所示,通过软件设定 PSA 位(OPTR.3)的状态可对预分频器的分配进行控制, PSA 位清 0 可将预分频器分配给 T0 模块。通过设置 PS<2:0 >位可选择预分频器的分频比。预分频器 是不可读写的。当预分频器用于 T0 模块时,所有写入 T0 寄存器的指令都会将预分频器清 0。 当预分频器用于 WDT 时,CWDT 指令会同时将预分频器和看门狗定时器清 0。 Fosc/4 T0CK T0SE 1 0 0 T0CS 8 1 0 位 PSA 预 WDT时钟 分 1 频 器 1 PSA 0 T0 溢出将 T0IF置1 数据总线 PS2 PS1 PS0 图 6.1 预分频器框图 6.1.3 定时模式 通过将 T0CS 位(OPTR.5)清 0 可选择定时器模式。在定时模式中,如果不使用预分频器, 每一个机器周期 T0 寄存器的值加 1。如果 T0 寄存器被写入初始值,则在接下来的两个机 器周期将不执行递增操作,用户可通过将校正值写入 T0 寄存器进行修正。 6.1.4 计数模式 通过将 T0CS 位(OPTR.5)置 1 可选择计数模式。在该模式下,T0 模块在 T0CK 引脚信 号的每一次上升沿(T0SE 位清 0)或下降沿(T0SE 位置 1)递增计数。 当不使用预分频器时,要求 T0CK 的高电平状态和低电平状态分别保持至少 2Tosc+20ns 的时间,以实现 T0CK 与内部相位时钟的同步。 芯旺微电子 - 51/96 - KF8V111 数据手册 V1.0 6.1.5 T0 的使用 T0 在使用时通过以下步骤进行设置: 1.通过将 T0CS 位清 0/置 1 选择定时/计数模式(如果是计数模式,再设置 T0SE 选择脉冲触 发边沿,将对应的计数脉冲输入脚 T0CK 设置为输入); 2.如果需要分频,则将预分频器分配给 T0,并设置分频比; 3. 给 T0 寄存器设置初始值; 4. 如果使用中断方式则将 T0IE 和 AIE 位置 1。 芯旺微电子 - 52/96 - KF8V111 数据手册 V1.0 6.2 定时/计数器 1(T1) T1 是一个 16 位的定时/计数器,T1 的低 8 位在寄存器 T1L 中,高 8 位在寄存器 T1H 中,当 T1 计数值达到 65535 后,T1 的值再加 1 就会产生溢出,将 T1 中断标志位置 1。T1 属于外部单元,因此在使用 T1 中断时,需将 PUIE 位置 1,使能外设中断。如图 6.2 所示为 T1 的原理框图。 地址 0BH 0EH 0FH 0CH 2CH 23H 2EH 10H 25H 寄存器 INTCTL T1L T1H EIF1 EIE1 IP1 PCTL T1CTL TR0 位7 AIE - 位6 PUIE ADIF ADIE PADC T1GC - 表 6.2 与 T1 相关的寄存器 位5 T0IE - 位4 位3 INT0IE P0IE T1 低 8 位 T1 高 8 位 INT1IF - INT1IE - PINT1 - SLVREN IPEN T1CKS1 T1CKS0 - TR05 TR04 TR03 位2 T0IF PWM2IE PWM2IF PPWM2 SWDTEN T1SY TR02 位1 P0IF POR T1CS TR01 位0 INT0IF T1IF T1IE PT1 LVR T1ON TR00 T1G T1GC T1ON Fosc/4 T1CK T1 0 T1CS 预 分 1 频 器 同步 检测 0 1 T1SY T1CKS1 T1CKS0 图 6.2 T1 原理框图 溢出将 T1IF置1 T1 数据总线 6.2.1 T1 控制寄存器 如寄存器 6.2 所示,T1 控制寄存器(T1CTL)用于启动/禁止 T1 以及选择 T1 模块的不 同功能特性。 寄存器6.2: T1CTL: T1控制寄存器(地址: 10H) bit7 复位值 - -000 -000 T1GC T1CKS1 T1CKS0 - U R/W R/W R/W U T1SY R/W T1CS R/W bit0 T1ON R/W T1GC: T1 门控使能位 如果 T1ON=0 则该位被忽略 如果 T1ON=1 则: T1GC =1 使能 T1G 引脚控制(如果 T1G 引脚为低电平,启动 T1,为高 电平,关闭 T1) T1GC =0 禁止 T1G 引脚控制 芯旺微电子 - 53/96 - KF8V111 数据手册 V1.0 T1CKS<1:0>: T1 输入时钟预分频比选择位 T1CKS<1:0>=11 1/8 倍预分频比 T1CKS<1:0>=10 1/4 倍预分频比 T1CKS<1:0>=01 1/2 倍预分频比 T1CKS<1:0>=00 1/1 倍预分频比 T1SY : T1 计数模式外部触发脉冲输入同步控制位 T1CS=1: T1SY =1 不与外部触发脉冲输入同步 T1SY =0 与外部触发脉冲输入同步 T1CS=0: 该位被忽略,T1 使用内部时钟 T1CS: T1 定时/计数模式选择 T1CS=1 计数模式,T1 时钟为外部时钟 T1CK/P0.5 T1CS=0 定时模式,T1 时钟为内部时钟 FOSC/4 T1ON: T1 启动控制位 T1ON=1 启动 T1 T1ON=0 停止 T1 6.2.2 T1 预分频器 如寄存器 6.2 所示,T1 具有四个预分频器选择项,允许对时钟输入进行 1、2、4 或 8 倍分频。T1CKS 位(T1CTL<5:4>)对预分频计数器进行控制。T1 预分频计数器不能直接进行 读写操作,可通过写入 T1H 或 T1L 使预分频计数器清 0。 6.2.3 定时模式 通过将 T1CS 位清 0 将 T1 设定为定时模式,T1 工作在定时模式时,对单片机内部时钟 进行计数,当不使用预分频器时,每个机器周期 T1 寄存器自加 1,加到 0FFFFH 后再加 1, T1 溢出,将 T1 中断标志位 T1IF 置 1。 如果使能 T1 门控引脚,且 T1ON=1,则在 T1G 引脚为低电平时,启动 T1,如果 T1G 引 脚为高电平,禁止 T1。使用该方式可粗略的对 T1G 引脚的低电平持续时间进行计算。 芯旺微电子 - 54/96 - KF8V111 数据手册 V1.0 6.2.4 计数模式 通过将 T1CS 位置 1 将 T1 设定为计数模式,在计数模式时,T1 在计数脉冲 T1CK 的上 升沿进行递增计数。T1 的计数模式又有同步计数和异步计数两种方式。 如果控制位 T1SY (T1CTL.2)置 1,则 T1 工作在异步计数模式。计数器根据 T1CK 引脚 的脉冲进行递增计数。在休眠模式下,计数器将继续递增并在溢出时产生中断以唤醒处理器。 如果控制位T1SY (T1CTL.2)清 0,则 T1 工作在同步计数模式。在内部相位时钟的 Q2 和 Q4 周期对 T1CK 引脚电平进行采样,可以实现 T1CK 与内部相位时钟的同步。 6.2.5 T1 在休眠模式下的运行 只有设定在异步计数器模式时,T1 才能在休眠模式下工作。在该模式下,计数脉冲 T1CK 使计数器递增。通过如下步骤设定定时器以唤醒器件: · 使能 T1(T1ON/T1CTL.0 置 1) · 将 T1IE 位(EIE1.0)置 1 · 将 PUIE 位(INTCTL.6)置 1 器件将在溢出时被唤醒。如果 AIE 位(INTCTL.7)置 1,器件将被唤醒并跳转至中断服务 程序。 芯旺微电子 - 55/96 - KF8V111 数据手册 V1.0 7 模数(A/D)转换模块 模数(A/D)转换模块可将模拟输入信号转换为 12 位二进制值。转换器通过逐次逼近法将 模拟输入信号转换为二进制值,并将转换结果存放到 12 位寄存器中。可通过软件方式选择 内部 1.7V 参考电压 VREOUT、VDD 或施加在 ADVRIN 引脚上的电压作为转换使用的参考 电压。图 7.1 显示了 KF8V111 中 A/D 转换模块的结构框图,AD 的输入可选择 8 个通道中 的 1 路、内部 1.7V 参考电压 VREOUT 或运放输出 OPOUT 作为 AD 的输入。 P0.0/AN0 0000 P0.1/AN1 0001 P0.2/AN2 0010 P0.4/AN3 0011 P1.0/AN4 0100 P1.1/AN5 0101 P1.2/AN6 0110 P2.7/AN11 1011 VREOUT 1110 ADVRIN VDD VREOUT 参考电压选择 VCFG1:VCFG0 ADC A/D转 换结果 转换结束 将ADIF置1 通道选择、 A/D转换控制 图 7.1 AD 模块结构框图 7.1 与AD相关的寄存器 地址 0BH 2CH 0CH 1FH 3FH 31H 1DH 1CH 1EH 3EH 寄存器 INTCTL EIE1 EIF1 ADCCTL0 ADCCTL1 ANSEL ANSEH VRECAL1 ADCDATAH ADCDATAL 位7 AIE - ADLR ADCCAL IEN - 表 7.1 与 AD 转换相关的寄存器 位6 PUIE ADIE ADIF ADCS2 位5 T1IE - CHS3 ADCS1 位4 INT0IE INT1IE INT1IF CHS2 ADCS0 位3 P0IE - CHS1 VCFG1 ANS6 - ANS5 - ANS4 ANS3 - ANS11 参考电压校准寄存器 AD 高 8 位 AD 低 8 位 位2 T0IF PWM2IE PWM2IF CHS0 VCFG0 ANS2 - 位1 P0IF - START ADCIM1 ANS1 - 位0 INT0IF T1IE T1IF ADEN ADCIM0 ANS0 - 7.1.1 AD控制寄存器 0(ADCCTL0) 如寄存器 7.1 所示,AD 控制寄存器 0 包括:转换结果输出格式选择、模拟通道选择和 AD 启动。 芯旺微电子 - 56/96 - KF8V111 数据手册 V1.0 寄存器7.1: ADCCTL0: A/D控制寄存器0(地址: 1FH) bit7 复位值 ADLR - CHS3 CHS2 CHS1 0000 0000 R/W U R/W R/W R/W ADLR: A/D 转换结果输出格式选择位 ADLR=1 结果右对齐 ADLR=0 结果左对齐 CHS0 R/W START R/W bit0 ADEN R/W CHS<3:0>: 模拟通道选择位 CHS<3:0>=0000 通道 00(AN0) CHS<3:0>=0001 通道 01(AN1) CHS<3:0>=0010 通道 02(AN2) CHS<3:0>=0011 通道 03(AN3) CHS<3:0>=0100 通道 04(AN4) CHS<3:0>=0101 通道 05(AN5) CHS<3:0>=0110 通道 06(AN6) CHS<3:0>=1011 通道 11(AN11) CHS<3:0>=1110 VREOUT(1.7V) START: A/D 转换状态位 START=1 A/D 转换正在进行,该位置 1 将启动 A/D 转换,在转换结束后该 位将被硬件自动清 0。 START=0 A/D 转换结束或者未进行 ADEN: A/D 转换使能位 ADEN=1 A/D 转换模块正在工作 ADEN=0 A/D 转换器关闭且不消耗工作电流 注:如果内部使用参考电压 VREOUT 时(用 作 AD 参考电压和比较器参考电压),不需要将 寄存器 VRECTL1 的 VREOE(OSCCTL.3)位置 1。 7.1.2 AD控制寄存器 1(ADCCTL1) 如寄存器 7.2 所示,AD 控制寄存器 1 包含 AD 时钟选择和参考电压选择位。 寄存器7.2: ADCCTL1: A/D控制寄存器1(地址: 3FH) bit7 复位值 0000 0000 ADCCALIEN ADCS2 ADCS1 ADCS0 VCFG1 R/W R/W R/W R/W R/W VCFG0 R/W ADCIM1 R/W bit0 ADCIM0 R/W ADCCALIEN:AD 失调校准使能位 ADCCALIEN =1 AD 失调校准使能 ADCCALIEN =0 AD 失调校准禁止 ADCS<2:0>: A/D 转换时钟选择位 ADCS<2:0>=000 Fad=Fosc(1)/2 芯旺微电子 - 57/96 - KF8V111 数据手册 V1.0 ADCS<2:0>=001 Fad=Fosc/8 ADCS<2:0>=010 Fad=Fosc/32 ADCS<2:0>=x11 Fad=内部专用 500Khz 时钟 ADCS<2:0>=100 Fad=Fosc/4 ADCS<2:0>=101 Fad=Fosc/16 ADCS<2:0>=110 Fad=Fosc/64 VCFG<1:0>: A/D 转换参考电压选择位 VCFG<1:0>=00 ADC 参考电压悬空 VCFG<1:0>=01 VDD 作为 ADC 参考电压 VCFG<1:0>=10 ADVRIN 作为 ADC 参考电压 VCFG<1:0>=11 VREOUT 作为 ADC 参考电压(2) ADCIM<1:0>:AD 工作电流选择位 ADCIM<1:0> =01 或 10 AD 工作电流中等(AD 工作频率小于 8M,大于 2M) ADCIM<1:0> =11 AD 工作电流最小(AD 工作频率小于 2M) AD的失调校准为自动校准,ADCCALIEN置1,当ADEN置1后需要5us时间用于自动校准。 示例: SET ADCCTL1, ADCIM1 SET ADCCTL1, ADCIM0 SET ADCCTL1, ADCCALIEN SET ADCCTL0, ADEN CALL DELAY_5US SET ADCCTL0, START ;AD工作频率小于2M,选择ADCIM<1:0>=11 ;ADC失调校准使能 ;ADC使能 ;延迟5us,用于ADC的失调校准 ;启动AD转换 注:(1): Fosc 为振荡器时钟频率。 (2): 如果内部使用参考电压 VREOUT 时(用作 AD 参考电压和比较器参考电压), 不需要将寄存器 VRECTL1 的 VREOE 位置 1。 7.1.3 模拟/数字口选择寄存器(ANSEL) 如寄存器 7.3 所示,ANSEL 寄存器用于将 A/D 转换输入引脚设置为模拟口,通过将 ANSEL 某位置 1,将对应的引脚设置为模拟口,清 0 设置为数字 I/O 口。 寄存器7.3: ANSEL: 模拟/数字口设置寄存器(地址: 31H) bit7 复位值 - 0000 0000 U ANS6 R/W ANS5 R/W ANS4 R/W ANS3 R/W ANS2 R/W ANS1 R/W ANS<6:0>: 引脚 AN6~AN0 分别配置为模拟或数字 I/O 口的控制位 ANSx=1 将对应引脚配置为模拟口 ANSx=0 将对应引脚配置为数字 I/O 口或者特殊功能引脚 bit0 ANS0 R/W 芯旺微电子 - 58/96 - KF8V111 数据手册 V1.0 7.2 通道的选择 以 KF8V111 为例,如图 7.1 所示,KF8V111 中的 A/D 转换模块的输入可以选择 9 路, 其中 8 路来自外部的模拟信号,剩下 1 路来自内部 1.7V 参考电压 VREOUT。通过寄存器 ADCCTL0(如寄存器 7.1 所示)进行通道的选择。 7.3 模拟输入口的配置 当选择 AN0~AN11 作为 A/D 转换的输入时,需要将对应的引脚配置为模拟输入口。 通过将寄存器 ANSEL 的某位置 1 将对应的引脚配置为模拟口,然后把寄存器 TR0(或 TR1) 的对应位置 1 把该引脚配置为输入口,此时该引脚被设置为模拟输入口。 注:如果某引脚被配置为模拟输入口,将会自动禁止有效地数字I/O、上拉电阻和电平变化中 断。 7.4 A/D转换参考电压的选择 KF8V111 中 ADC 模块的参考电压可以选择 3 种分别为:电源电压(VDD)、外部参考电 压(ADVRIN)和内部 1.7V 参考电压 VREOUT。通过寄存器 ADCCTL1(如寄存器 2 所示)的 VCFG<1:0>设置参考电压。 7.4.1 参考电压寄存器 1(VRECTL1) 参考电压寄存器 1(VRECTL1)包括: ◆ 参考电压输出使能位 VREOE ◆ 参考电压使能位 VREEN ◆ 参考电压低功耗模式使能位 LPREN 寄存器7.4: VRECTL1: 参考电压寄存器1(地址:2BH) bit7 复位值 - - ---0 0000 U U - 系统保留 VREOE U R/W R/W 系统保留 R/W VREEN R/W bit0 LPREN R/W VREOE: VREEN: LPREN: 参考电压 VREOUT 输出使能位 VREOE=1 通过 VREOUT 引脚输出参考电压 VREOE=0 禁止参考电压输出 参考电压使能位 VREEN=1 使能参考电压 VREEN=0 关闭参考电压 参考电压低功耗模式使能位 LPROE=1 允许参考电压低功耗模式 芯旺微电子 - 59/96 - KF8V111 数据手册 V1.0 LPROE=0 禁止参考电压低功耗模式 bit4 和 bit2:这两个为系统保留,只能写 0,不能写 1。如果写 1 会出错。 7.4.2 VREOUT参考电压 KF8V111 内部有一个参考电压模块,使能该功能后,通过引脚 P0.4/VREOUT 可输出稳 定的 1.7V 参考电压(VREOE=1)。如果内部使用参考电压 VREOUT 时(用作 AD 参考电压 和比较器参考电压),不需要将寄存器 VRECTL1 的 VREOE(VRECTL1.3)位置 1。 将 VREEN(VRECTL1.1)位置 1 将打开参考电压模块,此时的 1.7V 参考电压可供芯片内 部使用,再将 VREOE(VRECTL1.3)位置 1 可使能内部 1.7V 参考电压输出,相应的引脚输出 1.7V 参考电压。 用户如果要用到内部 1.7V 参考电压,需先读出 3FBH/3FAH 地址的参考电压校准值(例 7.1),送到 VRECAL1/VRECAL2 寄存器,然后根据需要设置 VRECTL1 中的 VREEN 和 VREOE 位。 VRECAL1 和 VRECAL2 为内部参考电压校准寄存器,用户在编程时,需要在程序初始 化部分将存放在程序空间 03FBH 和 03FAH 的参考电压校准值读出来存放到 VRECAL1 和 VRECAL2 中,否则可能导致内部参考电压不准。 示例: CALL MOV CALL MOV 0X3FB VRECAL1,R0 0X3FA VRECAL2,R0 7.5 转换时钟的选择 完成一次 A/D 转换所需要的时间为 13Tad。如寄存器 7.2 所示,可通过软件方式设置 ADCS 位(ADCCTL1<6:4>)选择转换时钟源,共有 7 种时钟选项。Tad 和 Fad 分别为 A/D 转 换时钟周期和频率。 为保证 A/D 转换的正确进行,所选择的 A/D 转换时钟周期(Tad)典型值应在 1us 左右。 7.6 输出格式 KF8V111 中 A/D 转换的结果为 12 位二进制数,A/D 转换结果寄存器为两个 8 位的寄存 器。用户可以通过 ADLR(ADCCTL0.7)设置转换结果输出格式,ADLR 置 1 输出为右对齐, ADLR 清 0 输出为左对齐。如图 7.2 所示。 芯旺微电子 - 60/96 - ADLR=0 MSB bit7 ADCDATAH KF8V111 数据手册 V1.0 bit0 bit7 ADCDATAL LSB - - -bit0 ADLR=1 - bit7 12位ADC结果 ADCDATAH - - MSB bit0 bit7 未实现读为0 ADCDATAL LSB bit0 未实现读为0 12位ADC结果 图 7.2 ADC 结构对其方式 7.7 A/D转换的启动和完成 先将 ADEN 位置 1,然后将 START 位(ADCCR0.1)置 1 即可启动 A/D 转换。当转换结 束时,A/D 模块将: 1.将 START 位清 0 2.将 ADIF 位置 1 3.如果使能 A/D 转换中断,则响应中断 可以采取在程序中将 START 位清 0 的方法中止当前的转换操作。在 A/D 转换采样全部 结束之前,ADCDATAH:ADCDATAL 寄存器中的内容将不会被更新,而是仍旧保留前一次 的转换结果。A/D 转换被中止后,需至少等待 2Tad 的延时时间后才能开始下一次数据采集。 7.8 A/D 工作在休眠模式 A/D 转换器模块可以在休眠模式下工作。这需要把 AD 的时钟源设定为 A/D 专用的内 部振荡器。 当选择了专用内部时钟源后,A/D 需等待一个指令周期后才能启动转换操作, 转换结束后,START 位将被清 0,且转换结果将被载入 ADCDATAH: ADCDATAL 寄存器。 如果 A/D 中断被使能,器件将从休眠状态唤醒。如果 A/D 中断被禁止, A/D 转换模块在转 换完成后被关闭。 如果 A/D 时钟源为不是 AD 专用内部振荡器,执行 IDLE 指令将导致当前转换操作中止, 并使 A/D 模块关闭。 7.9 复位的影响 器件复位将强制所有寄存器进入复位状态。因此,A/D 模块将被关闭,任何进行中的转 换操作被中止。ADCDATAH:ADCDATAL 寄存器中的值不变。 7.10 使用A/D转换器的设置 启动 A/D 转换器时的设置: 芯旺微电子 - 61/96 - KF8V111 数据手册 V1.0 1. 选择 A/D 采样输入通道,设置 A/D 转换结果对齐方式; 2. 将对应的 A/D 采样输入通道设置为模拟输入模式; 3. 如果需要使能 AD 的失调校准,将 ADCCTL1 寄存器的 ADCCALIEN 位置 1,清 0 禁止; 4. 通过设置 ADCCTL1 寄存器的 ADCCALIEN 位来设置 AD 工作时的电流大小; 5. 选择参考电压和 A/D 采样时钟频率,打开 A/D 转换; 6. 如果采用中断方式,使能 A/D 转换中断; 7. 等待 AD 所需的采集时间; 8. 启动 A/D 转换; 9. 查询 AD 是否转换完成(START=0)或进入 AD 中断; 10.读取 AD 转换结果。 8 PWM模块 KF8V111 单片机具有 2 路 8 位的 PWM 模块 PWM1/PWM2。 8.1 PWM1/2 模块 启动 PWM 后,在对应的 PWM1(或 PWM2)引脚输出 PWM 脉冲。PWM 脉冲的频率和 占空比通过 PP1(或 PP2)和 PWM1L(或 PWM2L)设置。 图 8.1 显示了 PWM 逻辑框图。其中 PP1 为 PWM1 模块的周期寄存器,PWM1L 为 PWM1 模块占空比设置寄存器,使用 PWM 时需要将定时器 1 配置给 PWM 做定时用,其中 T1L、 T1IE 和 T1IF 分配给 PWM1,T1H 分配给 PWM2。启动 PWM1 后,当 T1L 计数值和 PP1 相 等时,P1.6 引脚被置 1,此时 T1L 被清 0,重新开始计数,当 T1L 的计数值和 PWM1L 相等 芯旺微电子 - 62/96 - KF8V111 数据手册 V1.0 时,P1.6 引脚清 0(如图 8.2 所示)。改变 PP1 和 PWM1L 的值可产生不同的 PWM1 周期和 PWM1 占空比。PWM2 模块的工作原理和 PWM1 模块完全一致。 PWM1/2L PWM1/2H PWM1/2ON 比较器 匹配 T1L/H TR16/7 RQ P16/7 S 比较器 匹配 PP1/2 图 8.1 PWM1/2 逻辑框图 周期 脉冲宽度 T1L=0 T1L=PP1,T1L=0 T1L=PWM1L T1L=PWM1L时PWM1输出变为低电平,T1L=PP1时 PWM1输出变为高电平,同时将T1L清零。 图 8.2 PWM1 输出波形图 芯旺微电子 - 63/96 - KF8V111 数据手册 V1.0 8.1.1 PWM1/2 相关的寄存器 地址 0BH 2CH 0CH 0EH 0FH 13H 14H 16H 32H 33H 34H 10H 15H 27H 31H 寄存器 INTCTL EIE1 EIF1 T1L T1H PWM1L PWM1H PP1 PP2 PWM2L PWM2H T1CTL PWMCTL TR1 ANSEL 位7 AIE - TR17 - 表 8.1 与 PWM 相关的寄存器 位6 PUIE ADIE ADIF T1GC INT1SE TR16 ANS6 位5 位4 位3 位2 T0IE INT0IE P0IE T0IF - INT1IE - PWM2IE - INT1IF - PWM2IF 定时器 1 低 8 位 定时器 1 高 8 位 PWM1 占空比寄存器 PWM1 寄存器(与用户无关) PWM1 周期寄存器 PWM2 周期寄存器 PWM2 占空比寄存器 PWM2 寄存器(与用户无关) T1CKS1 T1CKS0 - T1SY - - - - TR15 TR14 TR13 TR12 ANS5 ANS4 ANS3 ANS2 位1 INT0IF - T1CS PWM2ON TR11 ANS1 位0 P0IF T1IE T1IF T1ON PWM1ON TR10 ANS0 8.1.2 PWM控制寄存器 PWM 控制寄存器包括 PWM1/2 的启动控制位和 INT1/2 触发脉冲边沿选择。 寄存器8.1: PWMCTL: PWM启动控制寄存器(地址: 15H) bit7 复位值 -0-- --00 - INT1SE - - - - U R/W U U U U INT1SE: PWM2ON: PWM1ON: INT1 触发脉冲边沿选择位 INT1SE=1 上升沿触发 INT1SE=0 下降沿触发 PWM2 启动控制位 PWM2ON=1 启动 PWM2 PWM2ON=0 禁止 PWM2 PWM1 启动控制位 PWM1ON=1 启动 PWM1 PWM1ON=0 禁止 PWM1 PWM2ON R/W bit0 PWM1ON R/W 芯旺微电子 - 64/96 - KF8V111 数据手册 V1.0 8.1.3 PWM1/2 周期 PWM 周期通过 PP1/2 (地址: 16H/32H,如寄存器 9.2 所示)进行设置,PP1/2 是一个 8 位 的寄存器,其值可设置为 0~255。PWM 周期通过式 8.1 进行计算。 ★ 式8.1: PWM周期=(PPx+1)·4·Tosc·(T1预分频比) (x=1、2) 寄存器9.2: PP1:PWM1周期控制寄存器(地址:16H) 复位值 1111 1111 bit7 PP17 R/W PP16 R/W PP15 R/W PP14 R/W PP13 R/W PP12 R/W PP11 R/W bit0 PP10 R/W PP2:PWM2周期控制寄存器(地址:32H) bit7 bit0 复位值 1111 1111 PP27 PP26 PP25 PP24 PP23 PP22 PP21 PP20 R/W R/W R/W R/W R/W R/W R/W R/W 8.1.4 PWM1/2 占空比 PWM 占空比通过 PWM1/2L(地址: 13H/33H,如寄 存器 8.3 所示)设置,可写入一个 8 位 的值到 PWM1/2L 来设置占空比。脉冲宽度和占空比通过式 8.2 和式 8.3 计算: ★ 式8.2: 脉冲宽度=PWMxL·4·Tosc·(T1预分频比) (x=1、2) ★ 式8.3: 脉冲宽度 占空比= = PWMxL PWM周期 PPx+1 (X=1、2) 寄存器8.3: PWM1L: PWM1占空比设置寄存器(地址: 13H) bit7 bit0 复位值 xxxx xxxx R/W R/W R/W R/W R/W R/W R/W R/W PWM2L: PWM2占空比设置寄存器(地址: 33H) bit7 bit0 复位值 xxxx xxxx R/W R/W R/W R/W R/W R/W R/W R/W 8.1.5 PWM1/2 分辨率 分辨率决定在给定周期内的占空比数。例如,10 位分辨率将产生 1024 个离散的占空比, 芯旺微电子 - 65/96 - KF8V111 数据手册 V1.0 8 位分辨率产生 256 个离散的占空比。KF8V111 中当 PP1/2 为 255 时,PWM 的最大分辨率 为 8 位。分辨率的计算公式如式 8.4 所示。 ★ 式8.4: Log[(PPx+1)] 分辨率= log2 位 (x=1、2) 8.1.6 PWM1/2 中断 PWM2 有一个专门的中断使能位 PWM2IE 和中断标志位 PWM2IF,而 PWM1 和定时器 T1 共用中断使能位 T1IE 和中断标志位 T1IF。 在 PWM1/2 启用后,当 T1L/H 的计数值与 PWM1L/2L 的值匹配后,其对应的输出引脚 变为低电平。当 T1L/H 的计数值与 PP1/2 的值匹配后,其对应的输出引脚变为高电平,同 时将 T1L/H 清 0,将 T1IF/PWM2IF 置 1,如果允许 T1 或 PWM2 中断,将会转入对应的中 断子程序中。 8.1.7 休眠模式下的操作 在休眠模式下,T1 寄存器将不会递增并且模块的状态将保持不变。PWM1/2 输出引脚 电平保持不变(如果输出为高电平,则保持高电平,如果为低电平保持低电平)。当器件被唤 醒时,T1 将从原来的状态继续工作。 8.1.8 系统时钟频率的改变 PWM1/2 的输出频率是通过 T1L/H 定时产生的,而定时器的计数时钟为系统时钟。因 此系统时钟频率发生任何改变都会使 PWM 频率发生变化。 8.1.9 复位的影响 任何复位都会将所有端口强制为输入模式,并强制 PWM1/2 使用的寄存器进入其复位 状态。 8.1.10 PWM1/2 使用方法 PWM1/2 工作的设置应按照以下步骤: 1、 将 TR16 或 TR17 置 1,禁止引脚 P1.6/PWM1 或 P1.7/PWM2 的输出驱动器。 2、 赋 PP1 或 PP2 寄存器的初值以设置 PWM1 或 PWM2 的 PWM 周期。 芯旺微电子 - 66/96 - KF8V111 数据手册 V1.0 3、 赋 PWM1L 或 PWM2L 寄存器的初值以设置 PWM1 或 PWM2 的占空比。 4、 配置并启动定时器/计数器 T1: • 配置 T1CTL 寄存器的 T1CKS1 和 T1CKS0 以选择 T1 的预分频比; • 将 T1L/H 清 0; • 将 T1CTL 寄存器的 T1ON 位置 1 以启动 T1。 5、 将 PWMCTL 寄存器的 PWM1ON 或 PWM2ON 置 1 以启动 PWM1 或 PWM2。 6、 将 TR16 或 TR17 清 0 使能引脚 P1.6/PWM1 或 P1.7/PWM2 的输出驱动器。 芯旺微电子 - 67/96 - KF8V111 数据手册 V1.0 9 复位 KF8V111 具有:上电复位(POR)、WDT 复位、RST 复位和欠压检测复位(LVR)四种复位 方式。 有些寄存器的状态在任何复位条件下都不会受到影响,上电复位时它们的状态不定,而 在其它复位发生时其状态将保持不变。其它大多数寄存器在复位事件发生时将被复位成“复 位状态”。图 9.1 给出了片内复位电路的简化结构方框图。 RSTEN RST WDTEN WDT模块 SWDTEN 上电复位 VDD 欠压检 LVREN SLVREN 测复位 上电延时 定时器 CPU 图 9.1 片内复位电路简化框图 注:上电延时定时器只对上电复位(POR)和欠压复位(LVR)有效。 芯旺微电子 - 68/96 - KF8V111 数据手册 V1.0 9.1 电源控制状态寄存器(PCTL) 如寄存器 9.1 所示,LVR 位的状态在单片机上电复位时是不确定的。如果用户在使用中 要用到该位,在程序初始化部分需将其置 1,随后如果有复位发生且 LVR =0,则表示发生过 欠压检测复位。如果欠压检测电路被关闭(通过设定配置字中的 LVREN 位和 PCTL 中的 SLVREN 位),LVR 状态位是不可预知的。POR 是上电复位状态位,该位在上电复位时被清 0, 在其它情况下不受影响。 寄存器9.1: PCTL:电源控制寄存器(地址:2EH) bit7 复位值 - - ---1 000x U U bit0 - SLVREN IPEN SWDTEN POR LVR U R/W R/W R/W R/W R/W SLVREN: 软件欠压检测使能位 当配置字的 LVREN=1 时 SLVREN=1 软件使能欠压检测 SLVREN=0 软件禁止欠压检测 IPEN: 中断优先级控制位 IPEN=1 使能中断优先级功能 IPEN=0 禁止中断优先级,即为普通模式 SWDTEN:软件看门狗定时器使能位 当配置字的 WDTEN=0 时 SWDTEN=1 软件使能看门狗定时器 SWDTEN=0 软件禁止看门狗定时器 POR : 上电复位状态位 POR =1 未发生上电复位 POR =0 发生了上电复位 LVR : 欠压复位状态位 LVR =1 未发生欠压复位 LVR =0 已发生欠压复位 芯旺微电子 - 69/96 - KF8V111 数据手册 V1.0 9.2 上电复位(POR) 在 VDD 达到适合单片机正常工作的电平之前,片内上电复位电路使单片机保持在复位 状态,直到 VDD 达到正常工作电平之后单片机才开始正常工作。 9.3 WDT 复位 看门狗定时器有一个独立的时钟源,因此单片机在正常工作和休眠模式下都可以正常工 作。 在单片机正常工作且打开看门狗后,当看门狗计数器计满后产生溢出,将使单片机复位。 在休眠模式下,WDT 也可以正常工作,当 WDT 定时器计满溢出后,将会使单片机从 休眠模式唤醒转入正常工作模式,在休眠模式不会对各寄存器复位。 9.4 RST 复位 使能外部 RST 复位(配置位 RSTEN=1)后,当引脚 P0.3/ RST 输入复位信号,不管单片 机工作在正常模式还是休眠模式,均会使单片机复位。通过在编程时将 P0.3 引脚配置为 RST 复位引脚,即可打开 RST 复位。 在 RST 复位时, KF8V111 器件有一个噪声滤波器用于检测和滤除小脉冲,图 9.2 是建议 RST 复位电路。 VCC 30K 1K RST 105 图 9.2 建议 RST 复位电路 芯旺微电子 - 70/96 - KF8V111 数据手册 V1.0 9.5 欠压检测复位(LVR) KF8V111 系列中的单片机具有片内欠压检测复位电路。通过编程时设定配置位中的 LVREN 位可以禁止/使能(清 0/置 1)欠压检测复位电路,当配置位中的 LVREN 位被使能后, 用户还要在软件中设置 PCTL 中的 SLVREN 位来禁止/使能(清 0/置 1)欠压检测复位电路。 如果 VDD 跌落至 VLVR(VLVR=2.1V)以下且持续时间大于 TLVR (TLVR 大于 10us),欠压检 测电路将使单片机复位,单片机保持复位状态直到 VDD 上升到 VLVR 以上,此时上电延时定 时器启动,提供一个长度为 70ms 的长延时时间或者一个长度为 1ms 的短延时时间,可以通 过配置位的 PWRT 位来选择。 如果 VDD 跌落至 VLVR 以下的时间小于规定参数(TLVR),将不保证可产生复位。 如果在上电延时定时器运行过程中发生 VDD 跌落至 VLVR 以下的情况,器件将返回欠 压检测复位状态且上电延时定时器被重新初始化。直到 VDD 上升至 VLVR 以上时,上电延 时定时器启动一个复位延时,如在延时器件没有欠压发生,单片机会退出复位状态开始正常 工作。 9.6 上电延时定时器 上电延时定时器仅在器件上电复位或欠压检测复位发生后提供一个长度为 70ms 的长延 时时间或者一个长度为 1ms 的短延时时间,可以通过配置位的 PWRT 位来选择。上电延时定 时器的定时时钟为系统内部振荡器,上电延时定时器使单片机在 VDD 上升到适当电平后才 投入正常运行。 由于 VDD、温度、制造工艺、内部震荡器频率等的变化,不同单片机的上电延时时间 有所差异。 芯旺微电子 - 71/96 - KF8V111 数据手册 V1.0 9.7 不同复位条件下对寄存器的影响 寄存器 IDLR T0 PCL PSW IR P0 P2 P1 PCH INTCTL EIF1 EIF2 T1L T1H T1CTL PWM1L PWM1H PWMCTL PP1 VRECAL1 ANSEH ADCDATAH ADCCTL0 OPTR IP0 IP1 TR0 TR2 TR1 VRECAL2 VRECTL EIE1 EIE2 PCTL OSCCTL OSCCAL0 ANSEL PP2 PWM2L PWM2H PUR IOCL OSCCAL1 ADCDATAL ADCCTL1 P0LR P2LR P1LR OSCCAL2 OSCCAL3 表 9.1 寄存器在各种复位发生后的状态 地址 上电复位 RST 复位 欠压检测 00H 01H 02H 03H 04H 05H 06H 07H 0AH 0BH 0CH 0DH 0EH 0FH 10H 13H 14H 15H 16H 1CH 1DH 1EH 1FH 21H 22H 23H 25H 26H 27H 2AH 2BH 2CH 2DH 2EH 2FH 30H 31H 32H 33H 34H 35H 36H 37H 3EH 3FH 45H 46H 47H 4CH 4DH xxxx xxxx xxxx xxxx 0000 0000 --01 1xxx xxxx xxxx -- xx xxxx xxxx ---xxxx xxxx ---0 0000 0000 0000 -0-0-0-0 xxxx xxxx xxxx xxxx xxxx xxxx -000 -000 xxxx xxxx xxxx xxxx -1-- --00 1111 1111 0000 0000 ---- 0000 xxxx xxxx 0000 0000 1111 1111 ---- -000 -000 0000 --11 1111 1111 ---1111 1111 0000 0000 ---0 0000 -0-0 -0-0 ---1 000x 0011 ---1111 1111 0000 0000 0000 0000 1111 1111 xxxx xxxx xxxx xxxx --11 -111 --00 0000 ---- -000 xxxx xxxx 0000 0000 --xx xxxx xxxx ---xxxx xxxx 0000 0000 0000 0000 uuuu uuuu uuuu uuuu 0000 0000 --0q quuu uuuu uuuu --xx xxxx xxxx ---xxxx xxxx ---0 0000 0000 0000 -0-0 -0-0 uuuu uuuu uuuu uuuu uuuu uuuu -uuu -uuu uuuu uuuu uuuu uuuu -1-- --00 1111 1111 uuuu uuuu ---- 0000 uuuu uuuu 0000 0000 uuuu uuuu ---- -000 -000 0000 --11 1111 1111 ---1111 1111 0000 0000 ---0 0000 -0-0 -0-0 ---1 000x 0011 ---1111 1111 uuuu uuuu 0000 0000 1111 1111 xxxx xxxx xxxx xxxx --11-111 --00 0000 ---- -000 xxxx xxxx 0000 0000 --xx xxxx xxxx ---xxxx xxxx 0000 0000 0000 0000 中断唤醒 WDT 超时唤醒 uuuu uuuu uuuu uuuu PC+1 --uq quuu uuuu uuuu --uu uuuu uuuu ---uuuu uuuu ---u uuuu uuuu uuuu -u-u –u-u uuuu uuuu uuuu uuuu uuuu uuuu -uuu -uuu uuuu uuuu uuuu uuuu -u-- --uu uuuu uuuu uuuu uuuu ---- uuuu uuuu uuuu uuuu uuuu uuuu uuuu --- -uuu uuuu uuuu --uu uuuu uuuu ---uuuu uuuu uuuu uuuu uuuu uuuu -u-u -u-u ---u uuuu uuuu ---uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu uuuu --uu -uuu --uu uuuu ---- -uuu uuuu uuuu uuuu uuuu --xx xxxx xxxx ---uuuu uuuu 0000 0000 0000 0000 芯旺微电子 - 72/96 - KF8V111 数据手册 V1.0 表 11.2 不同复位条件下对标志位的影响 POR LVR TO PD 复位方式 0 u 1 1 上电复位 1 0 1 1 欠压检测复位 u u 0 u WDT 复位 u u 0 0 WDT 唤醒 u u u u 正常操作中的 RST 复位 u u 1 0 休眠模式中的 RST 复位 图注: u=未发生变化 注:u =不变,x =未知,- =未实现位,读为 0; q=视具体条件而定。 芯旺微电子 - 73/96 - 10 休眠模式 KF8V111 数据手册 V1.0 当单片机空闲的时候,为使其功耗降到最低,可以将其转入休眠模式。通过执行一条 IDLE 指令即可进入休眠模式。 为使这种方式下的电流消耗降至最低,应使所有 I/O 口状态确定,如果有的端口没有使 用,最好设置为输入,接到 VDD 或 VSS 上,如果没用的端口悬空,应设置为输出,以确保 I/O 引脚没有耗散电流产生,其他在休眠时不用的外设都要关闭。 注: 在单片机正常工作时,通常有些引脚用不到,有的用户可能会直接将去悬空。为了减小单 片机的功耗,应该将不用的引脚设置为数字输出。如果是P0口的引脚则可打开上拉电阻或者设 置为数字输出皆可。 单片机进入休眠模式一段时间后由于工作的需要,要将单片机从休眠模式唤醒,在 KF8V111 中可通过以下方式将单片机从休眠模式唤醒: 1. RST 引脚上输入的外部复位 2. 看门狗定时器唤醒(如果 WDT 已被使能) 3. INT0 内部中断 4. P0 口电平变化中断 5. 外设中断 RST 引脚输入的复位信号在唤醒单片机的同时也将导致单片机复位。其它唤醒时将单 片机从休眠模式唤醒,并不会导致复位。可通过状态寄存器中的 TO 和 PD 位来确定单片机唤 醒的原因。上电时 PD 位将被置 1,而当器件从休眠模式唤醒时,该位将被清 0。 TO 位则在 WDT 唤醒发生时被清 0。 在使用后三种方式唤醒时,必须使能相应的中断使能位,唤醒与 AIE 位的状态无关。 如果 AIE 位被清 0,单片机被唤醒后将继续执行 IDLE 指令后面的指令。如果 AIE 位被置 1, 单片机执行 IDLE 指令后面一条指令后进入中断子程序。如果不希望执行 IDLE 指令后面的 那条指令直接进入中断子程序,在 IDLE 指令加一条 NOP 指令即可。 芯旺微电子 - 74/96 - KF8V111 数据手册 V1.0 11 看门狗定时器 为了防止单片机在正常工作时程序跑飞,KF8V111 提供一个看门狗定时器,单片机正 常工作时,当看门狗定时器定时时间达到超时时间后,会使单片机产生复位。 看门狗定时器使用片内看门狗专用 RC 振荡器,因此它无需外接任何器件,在休眠模式 仍能正常运行。在正常运行时,WDT 超时事件将使单片机产生一次复位。如果单片机处于 休眠模式,WDT 超时事件将唤醒单片机并使其继续执行 IDLE 后面的指令。通过将配置位 WDTEN 清 0/置 1,可关闭/打开 WDT。如果配制位 WDTEN 清 0,则可以通过寄存器 SWDTEN(PCTL<2>)软件清 0/置 1,可关闭/打开 WDT。 WDT 周期: WDT 不使用预分频器时超时时间为 18ms。由于温度、电源电压和工艺等的差异,不同 器件之间的超时周期稍有不同。通过软件将 OPTR 寄存器的 PSA 位置 1,可将预分频器分 配给 WDT。设置 PS<2:0>选择预分频器的分频比,分频比可选择为:1/1、1/2、1/4、1/8、1/16、 1/32、1/64、1/128。使用预分频器时,最长超时时间可达 2.3 秒。 为了防止在正常工作时看门狗超时复位,要在固定的时间内对看门狗定时器清 0。执行 CWDT 和 IDLE 指令后会将 WDT 和预分频器清 0,当看门狗定时器出现超时时,状态寄存 器中的 TO 位将被清 0。 SWDTEN T0时钟 0 看门狗 定时器 1 时钟 8位预分 频器 WDTEN PSA PS2-PS0 WDT超时唤醒 (如果工作在休 眠模式) 1 看门狗 计数器 0 WDT超时复位 PSA (如果工作在正 常模式) 图 11.1 看门狗定时器框图 芯旺微电子 - 75/96 - 12 电气规范 KF8V111 数据手册 V1.0 12.1 极限参数值 序号 1 2 3 4 5 6 7 8 9 10 11 极限参数值 参数说明 偏置电压下的环境温度 储存温度 VDD 相对于VSS的电压 MODE相对于Vss的电压 其它引脚相对于VSS的电压 VSS引脚的最大输出电流 VDD引脚的最大输入电流 任一I/O引脚的最大输出灌电流 任一I/O引脚的最大输出拉电流 I/O口的最大灌电流 I/O口的最大拉电流 参数范围 -30°C ~85°C -65°C ~150°C 5.5V 12.5V 5.5V 80mA 80mA 15mA 15mA 80mA 80mA 备注:如果器件的工作条件超过“最大值”,可能会对器件造成永久性损坏。上述值仅为运行 条件极大值,建议不要使器件在该规范规定的范围以外运行。器件长时间工作在最大值条件 下,其稳定性会受到影响。 芯旺微电子 - 76/96 - 12.2 时钟温漂特性图 KF8V111 数据手册 V1.0 振荡器频率精度与温度、电压之间的关系图如下: 温度(℃) 85 60 +5% 25 ±2% 0 -5% -30 -40 2.6 3.0 3.5 4.0 4.5 5.0 VDD(V) 芯旺微电子 - 77/96 - KF8V111 数据手册 V1.0 12.3 静态电流特性 表12.1芯片静态电流(IDD)特性 测试条件:25°C 序号 测试条件 振荡频率 VDD(V) 5.0 最小值 - 典型值 - 最大值 950 单位 1 16Mhz 4.0 - - 950 3.0 - - 950 2.6 - - 950 5.0 - - 750 2 8Mhz 4.0 - 3.0 - - 750 - 750 2.6 - - 750 5.0 - - 660 3 4Mhz 4.0 - 3.0 - - 660 - 660 2.6 - - 660 5.0 - - 600 4 2Mhz 4.0 - 3.0 - - 600 - 600 2.6 - - 600 uA 5.0 - - 600 5 1Mhz 4.0 - 3.0 - - 600 - 600 2.6 - - 600 5.0 - - 600 6 500Khz 4.0 - 3.0 - - 600 - 600 2.6 - - 600 5.0 - - 600 7 250Khz 4.0 - 3.0 - - 600 - 600 2.6 - - 600 5.0 - - 600 8 62.5Khz 4.0 - 3.0 - - 600 - 600 2.6 - - 600 注 1: 在正常的工作模式下, IDD 测量的条件为:所有I/O 引脚均设置为输出低,RST = Vss ,禁止 WDT, 关闭时钟输出。 2: 供电电流主要随工作电压和频率而变化。其它因素,如I/O 引脚负载和开关速率、内部代码执行模 式和温度也会影响电流消耗。 芯旺微电子 - 78/96 - KF8V111 数据手册 V1.0 12.4 外设电流特性 表12.2芯片外设电流特性 测试条件:25°C 序号 1 2 3 4 测试参数 休眠电流 (IIDLE) WDT 电流 (IWDT) 欠电压复位电 流(ILVR) 弱上拉电流 (IPUR) 测试条件 VDD(V) 5.0 WDT、BOR 等外设 4.0 被禁止 3.0 2.6 5.0 4.0 3.0 2.6 5.0 4.0 3.0 2.6 5.0 单个 IO 口 4.0 3.0 2.6 最小值 - - - - 典型值 1.5 1.0 0.5 0.3 2.0 1.7 1.2 0.9 21.5 14.0 8.0 5.8 172.8 107.9 54.2 36.6 最大值 单位 2.3 1.5 1.0 0.8 3.0 2.5 2.0 1.5 uA 25.0 18.0 12.0 10.0 200.0 150.0 80.0 50.0 注 1: 外设电流是基本IDD 或IIDLE 电流以及相应外设使能时消耗的额外电流的总和。外设电流可以从 此电流中减去基本IDD 或IIDLE 电流得出。 2: 休眠电流与振荡器类型无关。掉电电流是在器件休眠时,所有I/O 引脚设置为输出低,RST = Vss ; 禁止WDT,关闭时钟输出时测得的。 3: 外设电流还会受到温度的影响。 芯旺微电子 - 79/96 - KF8V111 数据手册 V1.0 12.5 I/O 端口电平和芯片供电电压特性 表 12.3 芯片 IO 端口电平特性 符号 参数说明 输入低电平 I/O引脚: 采用TTL缓冲器 VIL 采用施密特缓冲触 发器 输入高电平 I/O端口: 采用TTL缓冲器 VIH 采用施密特缓冲触 发器 工作温度 -30℃≤TA≤+85℃ 测试条件 最小值 典型值 最大值 单位 Vss 0.6 Vss - 0.15VDD V Vss 0.2 VDD VDD -0.6 0.8 VDD VDD V VDD VOL 输出低电压 VOH 输出高电压 - - VDD -0.6 - 0.6 V - V 符号 VDD 表 12.4 芯片供电电压特性 参数说明 工作温度 -30℃≤TA≤+85℃ 测试条件 最小值 典型值 最大值 单位 电源电压 FOSC≤16Mhz 2.6 - 5.5 V VLVR 欠压复位电压 VLVR_ HYST LVR迟滞电压 1.8 2.3 2.6 V - 40 100 mV 芯旺微电子 - 80/96 - KF8V111 数据手册 V1.0 12.6 A/D 转换器(ADC)特性 表 12.5 A/D 转换器(ADC)特性 工作温度 -30℃≤TA≤+85℃ 符号 参数说明 测试条件 最小值 典型值 最大值 单位 NR 分辨率 - - 12 位 EINL 积分误差 - ±2 - LSB EDNL EOFF 微分误差 失调误差(1) - ±1 - ±2 - LSB - LSB EGN 增益误差 - ±2 - LSB VREF 参考电压 1.7 - VDD V VAIN 满量程范围 VSS - VREF V TCNV AD转换时间 - 13 - TAD Tsample AD转换速率 - - 400 KSPS (1) KF8V111 失调误差固定为 5mV 正失调,针对不同的参考电压对应为不同值,使用时 可以直接减去绝对值; 芯旺微电子 - 81/96 - KF8V111 数据手册 V1.0 12.7 振荡器模块规范 测试条件(特别声明除外): 工作温度 -30℃≤TA≤+85℃ 参数编号 符号 特性 1 Fosc 振荡频率 表 12.9 振荡器模块特性 最小值 典型值 最大值 15.84 16 16.16 单位 Mhz 备注 2.6V ≤ VDD ≤ 5V @25℃ 12.8 内部参考模块规范 测试条件(特别声明除外): 工作温度 -30℃≤TA≤+85℃ 参数编号 符号 表 12.10 振荡器模块特性 特性 最小值 典型值 最大值 单位 1 Vout 输出电压 1.6 1.7 1.8 V 2 LR 线性调整率 -1 - 1 %/V 3 TC 温漂特性 -2 - 3 ppm/℃ 备注 2.6V ≤ VDD ≤ 5 V @25℃ ΔVref/ΔVin - 芯旺微电子 - 82/96 - 13 直流特性图表 KF8V111 数据手册 V1.0 备注:某些图表中的数据超出了规定的工作范围(即超出了规定的VDD范围),这些图 表仅供参考,器件只有在规定的范围下工作才可以确保正常运行。 图13-1: 不同VDD时典型IDD - FOSC 关系曲线图 图13-2: 不同VDD 时典型IIDLE- VDD 关系曲线图 芯旺微电子 - 83/96 - KF8V111 数据手册 V1.0 图13-3: 弱上拉电流IPUR - VDD 关系曲线图 图13-4: 不同VDD时看门狗预分频比 -周期关系曲线图 芯旺微电子 - 84/96 - 图13-5:看门狗电流 - VDD关系曲线图 KF8V111 数据手册 V1.0 图 13-6:欠压复位电流 ILVR - VDD 关系曲线图 芯旺微电子 - 85/96 - KF8V111 数据手册 V1.0 图13-7:不同温度时VOH - IOH 关系曲线图(VDD = 5.0V) 图13-8:不同温度时VOH - IOH 关系曲线图(VDD = 3.0V) 芯旺微电子 - 86/96 - KF8V111 数据手册 V1.0 图13-9:不同温度时VOL - IOL 关系曲线图(VDD = 5.0V) 图13-10:不同温度时VOL - IOL 关系曲线图(VDD = 3.0V) 芯旺微电子 - 87/96 - 14 封装信息 14 脚 SOIC 封装 b e D1 D2 8 脚 SOIC 封装 b e D1 D2 芯旺微电子 E1 A1 A1 A2 E1 A2 E A E A KF8V111 数据手册 V1.0 SOIC14封装尺寸(单位:毫米) 标号 最小 一般 最大 A 1.500 1.600 1.700 A1 0.100 0.150 0.200 A2 1.400 1.450 1.500 b 0.356 0.406 0.456 c 0.223 D1 8.600 8.650 8.800 D2 8.610 8.660 8.710 E 5.900 6.000 6.100 E1 3.850 3.950 4.050 e 1.270 L 0.560 0.660 0.760 θ 0 — 10° c θ L SOIC8封装尺寸(单位:毫米) 标号 最小 一般 最大 A 1.500 1.600 1.700 A1 0.050 0.150 0.250 A2 1.450 b 0.356 0.406 0.5 c 0.220 D1 4.790 4.840 4.890 D2 4.830 4.880 4.930 E 5.900 6.000 6.100 E1 3.860 3.910 3.960 e 1.270 L 0.650 0.660 0.670 θ 0 — 10° c θ L - 88/96 - KF8V111 数据手册 V1.0 附录 1 KF8V111 SFR地址映射及功能汇总 地址 00H 01H 02H 03H 04H 05H 06H 07H 0AH 0BH 0CH 0EH 0FH 10H 13H 14H 15H 16H 1CH 1DH 1EH 1FH 21H 22H 23H 25H 26H 27H 2AH 2BH 2CH 2EH 2FH 30H 31H 32H 33H 34H 35H 36H 37H 3EH 3FH 45H 46H 47H 4CH 4DH 名称 IDLR T0 PCL PSW IR P0 P2 P1 PCH INTCTL EIF1 T1L T1H T1CTL PWM1L PWM1H PWMCTL PP1 VRECAL1 ANSEH ADCDATA H ADCCTL0 位7 P27 P17 AIE/ AIEH - - - - ADLR 位6 P16 PUIE /AIEL ADIF T1GC INT1SE - - 位5 - P05 - T0IE 位4 位3 非物理寄存器(用于间接寻址) 定时/计数器 0(T0)寄存器 程序计数器(PC)低字节 TO PD 用于间接寻址 P04 P03 - - - - 程序计数器(PC)高字节 INT0IE P0IE 位2 Z P02 P12 T0IF - INT1IF - PWM2IF 定时/计数器 T1 低字节寄存器 定时/计数器 T1 高字节寄存器 T1CKS1 T1CKS0 - T1SY PWM1 占空比设置寄存器 PWM1 寄存器 - - - - PWM1 周期寄存器 内部参考电压校准值寄存器 - - ANS11 - ADC 数据寄存器高字节 CHS3 CHS2 CHS1 CHS0 OPTR IP0 IP1 TR0 TR2 TR1 VRECAL2 VRECTL1 EIE1 PCTL PUPH - TR27 TR17 - INT0SE PADC TR16 ADIE - T0CS TR05 - - T0SE PSA - - PINT1 PC1 TR04 TR03 - - - 内部参考电压校准寄存器 系统保留 VREOE INT1IE - SLVREN IPEN PS2 PT0 PPWM2 TR02 TR12 系统保留 PWM2IE SWDTEN OSCCTL OSCCAL0 ANSEL PP2 PWM2L PWM2H PUR IOCL OSCCAL1 ADCDATA L ADCCTL1 P0LR P2LR P1LR OSCCAL2 OSCCAL3 CKOEN - - ADCCALI EN - P2LR7 P1LR7 IRCS2 ANS6 - ADCS2 - P1LR6 IRCS1 ANS5 PUR5 IOCL5 ADCS1 P0LR5 - IRCS0 - - 晶振校准值寄存器 0 ANS4 ANS3 ANS2 PWM2 周期寄存器 PWM2 占空比设置寄存器 PWM2 寄存器 PUR4 - PUR2 IOCL4 IOCL3 IOCL2 晶振校准值寄存器 1 ADC 数据寄存器低字节 ADCS0 VCFG1 VCFG0 P0LR4 P0LR3 - - - - 晶振校准值寄存器 2 晶振校准值寄存器 3 P0LR2 - P1LR2 注:“-”表示未用的存储单元 “x”表示不定 位1 DC P01 - P11 INT0IF - T1CS PWM2ON - START PS1 PINT0 - TR01 TR11 VREEN POR ANS1 PUR1 IOCL1 ADCIM1 P0LR1 P1LR1 位0 CY P00 - P10 P0IF T1IF T1ON PWM1ON - ADEN PS0 PP0 PT1 TR00 TR10 LPREN T1IE LVR ANS0 PUR0 IOCL0 ADCIM0 P0LR0 P1LR0 复位初值 xxxx xxxx xxxx xxxx 0000 0000 --01 1xxx xxxx xxxx -- xx xxxx xxxx ---xxxx xxxx ---0 0000 0000 0000 -0-0-0-0 xxxx xxxx xxxx xxxx -000 -000 xxxx xxxx xxxx xxxx -1-- --00 1111 1111 0000 0000 ---- 0000 xxxx xxxx 0000 0000 1111 1111 ---- -000 -000 0000 --11 1111 1111 ---1111 1111 0000 0000 ---0 0000 -0-0 -0-0 ---1 000x 0011 ---0000 0000 0000 0000 1111 1111 xxxx xxxx xxxx xxxx --11 -111 --00 0000 ---- -000 xxxx xxxx 0000 0000 --xx xxxx xxxx ---xxxx xxxx 0000 0000 0000 0000 芯旺微电子 - 89/96 - KF8V111 数据手册 V1.0 附录 2 汇编指令集 助记符、操作数 NOP CRET RRET Rn,#data IRET CWDT IDLE MOV dir MOV Rn,dir MOV dir,Rn MOV Rn,#data MOV Rn,Rs LD Rn,[Rs] ST [Rn],Rs SWAPR Rn,dir SWAP di r ADD Rm,dir ADD dir,Rm ADD Rn,#data ADD Rn,Rs SUB Rm,dir SUB dir,Rm SUB Rn,#data SUB Rn,Rs INC dir INCR dir INC Rn DEC dir DECR dir DEC Rn AND Rm,dir AND dir,Rm AND Rn,#data AND Rn,Rs ORL Rm,dir ORL dir,Rm ORL Rn,#data ORL Rn,Rs XOR Rm,dir XOR dir,Rm XOR Rn,#data XOR Rn,Rs CLR Rn 指令说明 空操作指令 子程序返回指令 立即数送到 Rn 中返回 中断返回指令 WDT 清 0 进入休眠模式 数据传送指令 dir←(dir) Rn←(dir) dir←(Rn) Rn←data Rn←(Rs) Rn←((Rs)) (Rn)←(Rs) Rn<7:4>=dir<3:0> Rn<3:0>=dir<7:4> dir<7:4>=dir<3:0> dir<3:0>=dir<7:4> 算术运算指令 Rm←(Rm)+(dir) dir←(Rm)+(dir) Rn←(Rn)+data Rn←(Rn)+(Rs) Rm←(dir)-(Rm) dir←(dir)-(Rm) Rn←data-(Rn) Rn←(Rs)-(Rn) dir←(dir)+1 R0←(dir)+1 Rn←(Rn)+1 dir←(dir)-1 R0←(dir)-1 Rn←(Rn)-1 逻辑运算指令 Rm←(R m )∧(dir) dir←(dir)∧(R m ) Rn←(R n)∧data Rn←(R n)∧(R s) Rm←(R m )∨(dir) dir←(dir)∨(R m ) Rn←(R n)∨data Rn←(R n)∨(R s) Rm←(Rm) ⊕ (dir) dir←(dir) ⊕ (Rm) Rn←(Rn) ⊕ data Rn←(Rn) ⊕ (Rs) Rn=0 周期 1 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 影响标志 Z CY、DC、Z CY、DC、Z CY、DC、Z CY、DC、Z CY、DC、Z CY、DC、Z CY、DC、Z CY、DC、Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z 芯旺微电子 - 90/96 - KF8V111 数据手册 V1.0 助记符、操作数 指令说明 周期 影响标志 CLR dir CPLR dir CPL dir CPL Rn RRCR dir RRC dir RRC Rn RLCR dir RLC dir RLC Rn dir=0 1 Z R0←/(dir) 1 Z dir←/(dir) 1 Z Rn←/(Rn) 1 Z R0←(dir) 带进位 C 循环右移 1 位 1 CY dir←(dir) 带进位 C 循环右移 1 位 1 CY Rn←(Rn) 带进位 C 循环右移 1 位 1 CY R0←(dir)带进位 C 循环左移 1 位 1 CY dir←(dir)带进位 C 循环左移 1 位 1 CY Rn←(Rn) 带进位 C 循环左移 1 位 1 CY 位操作指令 CLR dir,b 将 dir 的 b 位清 0 1 SET dir,b 将 dir 的 b 位置 1 1 CLR Rn,b 将 Rn 的 b 位清 0 1 SET Rn,b 将 Rn 的 b 位置 1 1 转移指令 DECRJZ dir DECJZ dir DECJZ Rn INCRJZ dir INCJZ dir INCJZ Rn JNB dir,b JB dir,b JNB Rn,b JB Rn,b JMP #data12 R0←(dir)-1,为 0 跳过下一条指令 1/2 dir←(dir)-1,为 0 跳过下一条指令 1/2 Rn←(Rn)-1,为 0 跳过下一条指令 1/2 R0←(dir)+1,为 0 跳过下一条指令 1/2 dir←(dir)+1,为 0 跳过下一条指令 1/2 Rn←(Rn)+1,为 0 跳过下一条指令 1/2 dir 的 b 位为 0 跳过下一条指令 1/2 dir 的 b 位为 1 跳过下一条指令 1/2 Rn 的 b 位为 0 跳过下一条指令 1/2 Rn 的 b 位为 1 跳过下一条指令 1/2 无条件转移指令 2 CALL #data12 子程序调用指令 2 注: dir 为通用寄存器或特殊功能寄存器;Rn、Rs 表示 R0~R7;Rm 表示 R0~R3;#data 表示 8 位立即数;#data12 表示 12 位立即数;b 表示寄存器的第 b 位;[Rn]表示 Rn 中的数 值指向的地址中数据 ;( )表示特殊功能寄存器、通用数据寄存器或寄存器组中的数据。 芯旺微电子 - 91/96 - 附录 3 寄存器全称表 地址 01H 02H 03H 05H 06H 07H 0AH 0BH 0CH OEH OFH 10H 11H 12H 1CH 1DH 1EH 1FH 21H 22H 23H 25H 26H 27H 2AH 2BH 2CH 2EH 2FH 30H 31H 35H 36H 37H 3EH 3FH 45H 46H 47H 4CH 4DH 名称 T0 PCL PSW P0 P2 P1 PCH INTCTL EIF1 T1L T1H T1CTL T2L T2CTL VRECAL1 ANSEH ADCDATAH ADCCTL0 OPTR IP0 IP1 TR0 TR2 TR1 VRECAL2 VRECTL1 EIE1 PCTL OSCCTL OSCCAL0 ANSEL PUR IOCL OSCCAL1 ADCDATAL ADCCTL1 P0LR P2LR P1LR OSCCAL2 OSCCAL3 KF8V111 数据手册 V1.0 全称 Timer 0 Program Counter Low Program Status Word Port 0 Port2 Port 1 Program Counter High Interrupt control Enable Interrupt Flag 1 Timer 1 Low Timer 1 High Timer 1 Control Timer 2 Low Timer 2 Control Voltage Reference Calibration 1 Analog Numbers Select High Analog Digital Convert Data High Analog Digital Convert Control 0 OPtion Timer Register Interrupt Priority 0 Interrupt Priority 1 Trend Register 0 Trend Register 2 Trend Register 1 Voltage Reference Calibration 2 Voltage Reference Control 1 Enable Interrupt Enable 1 Power Control Operation System Crystal Control Operation System Crystal Calibration 0 Analog Numbers Select Low Push Register Input Output Control Operation System Crystal Calibration 1 Analog Digital Convert Data Low Analog Digital Convert Control 1 Port 0 Latch Register Port 2 Latch Register Port 1 Latch Register Operation System Crystal Calibration 2 Operation System Crystal Calibration 3 芯旺微电子 - 92/96 - 产品标识体系 KF8V111 数据手册 V1.0 XXXX XXX XX 产品系列 产品型 封装形式 产品系列: 产品型号: 封装形式: KF8V = Value line 系列 KungFu 8 位单片机 111 = 111 型 SD = SOIC14 SB = SOIC8 芯旺微电子 - 93/96 - 版本信息 版本 1.0 新的数据手册 KF8V111 数据手册 V1.0 芯旺微电子 - 94/96 - ROSH认证 本产品已通过 ROSH 检测。 KF8V111 数据手册 V1.0 芯旺微电子 - 95/96 - 声明及销售网络 KF8V111 数据手册 V1.0 销售及服务网点 上海 TEL:021-50275927 地址 上海浦东张江科苑路 201 号 芯旺微电子 - 96/96 -

    Top_arrow
    回到顶部
    EEWORLD下载中心所有资源均来自网友分享,如有侵权,请发送举报邮件到客服邮箱bbs_service@eeworld.com.cn 或通过站内短信息或QQ:273568022联系管理员 高进,我们会尽快处理。