MICROCHIP PIC16F684单片机 数据手册


2023年12月17日发(作者:honest前面用a还是an)

深圳市粤原点科技有限公司(Microchip Authorized Design Partner)指定授权总部地址:深圳市福田区福虹路世贸广场C座1103座

Add: Room 1103,Block C,World Trade Plaza,9Fuhong Road,Futian District Shen Zhen City

电话(tel) :86-755-83666321,83666320,83666325传真(fax) :86-755-83666329Web:

E-mail:********************@联系人:马先生,王小,汤小

:QQ:42513912MSN:***********************7x24小时在线产品咨询: PIC16F684数据手册采用纳瓦技术的14引脚8位CMOS闪存单片机 2007 Microchip Technology 41202E_CN

请注意以下有关Microchip器件代码保护功能的要点:•••Microchip的产品均达到Microchip数据手册中所述的技术指标。Microchip确信:在正常使用的情况下,Microchip系列产品是当今市场上同类产品中最安全的产品之一。目前,仍存在着恶意、甚至是非法破坏代码保护功能的行为。就我们所知,所有这些行为都不是以Microchip数据手册中规定的操作规范来使用Microchip产品的。这样做的人极可能侵犯了知识产权。Microchip愿与那些注重代码完整性的客户合作。Microchip或任何其他半导体厂商均无法保证其代码的安全性。代码保护并不意味着我们保证产品是“牢不可破”的。••代码保护功能处于持续发展中。Microchip承诺将不断改进产品的代码保护功能。任何试图破坏Microchip代码保护功能的行为均可视为违反了《数字器件千年版权法案(Digital Millennium Copyright Act)》。如果这种行为导致他人在未经授权的情况下,能访问您的软件或其他受版权保护的成果,您有权依据该法案提起诉讼,从而制止这种行为。提供本文档的中文版本仅为了便于理解。请勿忽视文档中包含的英文部分,因为其中提供了有关Microchip产品性能和使用情况的有用信息。Microchip Technology Inc.及其分公司和相关公司、各级主管与员工及事务代理机构对译文中可能存在的任何差错不承担任何责任。建议参考Microchip TechnologyInc.的英文原版文档。本出版物中所述的器件应用信息及其他类似内容仅为您提供便利,它们可能由更新之信息所替代。确保应用符合技术规范,是您自身应负的责任。Microchip对这些信息不作任何明示或暗示、书面或口头、法定或其他形式的声明或担保,包括但不限于针对其使用情况、质量、性能、适销性或特定用途的适用性的声明或担保。Microchip对因这些信息及使用这些信息而引起的后果不承担任何责任。如果将Microchip器件用于生命维持和/或生命安全应用,一切风险由买方自负。买方同意在由此引发任何一切伤害、索赔、诉讼或费用时,会维护和保障Microchip免于承担法律责任,并加以赔偿。在Microchip知识产权保护下,不得暗中或以其他方式转让任何许可证。商标Microchip 的名称和徽标组合、Microchip 徽标、Accuron、dsPIC、KEELOQ、KEELOQ徽标、microID、MPLAB、PIC、PICmicro、PICSTART、PROMATE、rfPIC和SmartShunt均为Microchip Technology Inc.在美国和其他国家或地区的注册商标。AmpLab、FilterLab、Linear Active Thermistor、Migratable

Memory、MXDEV、MXLAB、SEEVAL、SmartSensor和The Embedded Control Solutions Company 均为Microchip

Technology Inc.在美国的注册商标。Analog-for-the-Digital Age、Application Maestro、CodeGuard、dsPICDEM、、dsPICworks、dsSPEAK、ECAN、ECONOMONITOR、FanSense、FlexROM、fuzzyLAB、In-Circuit Serial Programming、ICSP、ICEPIC、Mindi、MiWi、MPASM、MPLAB Certified徽标、MPLIB、MPLINK、PICkit、PICDEM、、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/TS-16949:2002。此外,Microchip在开发系统的设计和生产方面的质量体系也已通过了ISO 9001:2000

认证。DS41202E_CN第ii页 2007 Microchip Technology Inc.

PIC16F684采用纳瓦技术的14引脚8位CMOS闪存单片机高性能的RISC CPU:• 仅需学习35条指令-除跳转指令外的所有指令都是单周期的• 工作速度:- 振荡器/时钟的输入频率为DC~20MHz- 指令周期为DC~200ns• 中断功能• 8级深硬件堆栈•直接、间接和相对寻址模式低功耗特性:• 待机电流:-电压为2.0V时,典型值50nA• 工作电流:-频率为32kHz、电压为2.0V时,典型值为11µA-频率为1MHz、电压为2.0V时,典型值为220µA• 看门狗定时器电流:-电压为2.0V时,典型值为1µA特殊单片机特性:• 高精度内部振荡器:-出厂时精度校准为±1%(典型值)-可用软件选择的频率范围为125kHz到8MHz-可用软件调节-双速启动模式-适用于关键应用的晶振故障检测-在节能模式下工作时可进行时钟模式切换•软件可选的31kHz内部振荡器• 节能的休眠模式• 宽工作电压范围(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年外设特性:•具有独立方向控制的12个 I/O引脚:高灌/拉电流可直接驱动LED引脚电平变化中断独立的可编程弱上拉超低功耗唤醒(Ultra Low-power Wake-up,ULPWU)• 模拟比较器模块,带有:-两个模拟比较器-可编程的片上参考电压(CVREF)模块(为VDD的百分比)-可从外部访问的比较器输入和输出• A/D转换器:-10位分辨率和8路通道• Timer0:带8位可编程预分频器的8位定时器/计数器•增强型Timer1:-带有预分频器的16位定时器/计数器-外部Timer1门控(计数使能)-如果选择了INTOSC模式,在LP模式下可选择使用OSC1和OSC2作为Timer1的振荡器•Timer2:带8位周期寄存器、预分频器和后分频器的8位定时器/计数器•增强型捕捉、比较和PWM模块:-16位捕捉模块,最大分辨率为12.5ns-16位比较模块,最大分辨率为200ns-带有1、2或 4路输出通道,可编程“死区时间”的10位PWM模块,输出信号的最大频率为 20kHz•通过两个引脚实现的在线串行编程(In-Circuit

Serial Programming™ ,ICSP™ )10位A/D转换器(通道数)88/16位定时器2/1----程序存储器器件PIC16F684闪存(字数)2048数据存储器 SRAM

(字节数)128EEPROM

(字节数)256I/O12比较器2 2007 Microchip Technology 41202E_CN第1页

PIC16F68414引脚图(PDIP、SOIC和TSSOP)VDDRA5/T1CKI/OSC1/CLKINRA4/AN3/T1G/OSC2/CLKOUTRA3/MCLR/VPPRC5/CCP1/P1ARC4/C2OUT/P1BRC3/AN7/P1C13456714VSSRA0/AN0/C1IN+/ICSPDAT/ULPWURA1/AN1/C1IN-/VREF/ICSPCLKRA2/AN2/T0CKI/INT/C1OUTRC0/AN4/C2IN+RC1/AN5/C2IN-RC2/AN6/P1DPIC16F684213121110 9 8表1:I/ORA0RA1RA2RA3(1)RA4RA5RC0RC1RC2RC3RC4RC5——注引脚98765114双列直插引脚汇总模拟AN0AN1/VREFAN2—AN3—AN4AN5AN6AN7————比较器C1IN+C1IN-C1OUT———C2IN+C2IN-——C2OUT———定时器——T0CKI—T1GT1CKI————————CCP————————P1DP1BCCP1/P1A——中断IOCIOCINT/IOCIOCIOCIOC———————上拉YYYY(2)YY————————基本ICSPDAT/ULPWUICSPCLK—MCLR/VPPOSC2/CLKOUTOSC1/CLKIN——————VDDVSSP1C —1:仅限输入。2:只在引脚配置为外部MCLR时。DS41202E_CN 第2页 2007 Microchip Technology Inc.

PIC16F68416引脚图(QFN)VDDVSS13NC15NC14RA5/T1CKI/OSC1/CLKINRA4/AN3/T1G/OSC2/CLKOUTRA3/MCLR/VPPRC5/CCP1/P1ARA0/AN0/C1IN+/ICSPDAT/ULPWURA1/AN1/C1IN-/VREF/ICSPCLKRA2/AN2/T0CKI/INT/C1OUTRC0/AN4/C2IN+PIC16F684111098RC3/AN7/P1CRC2/AN6/P1D表2:I/ORA0RA1RA2RA3(1)RA4RA5RC0RC1RC2RC3RC4RC5——注引脚1211113QFN引脚汇总模拟AN0AN1/VREFAN2—AN3—AN4AN5AN6AN7————比较器C1IN+C1IN-C1OUT———C2IN+C2IN-——C2OUT———定时器——T0CKI—T1GT1CKI————————CCP————————P1DP1BCCP1/P1A——中断IOCIOCINT/IOCIOCIOCIOC———————上拉YYYY(2)YY————————基本ICSPDAT/ULPWUICSPCLK—MCLR/VPPOSC2/CLKOUTOSC1/CLKIN——————VDDVSSRC4/C2OUT/P1BRC1/AN5/C2IN-P1C —1:仅限输入。2:只在引脚配置为外部MCLR时。 2007 Microchip Technology 41202E_CN 第3页

PIC16F684目录1.0器件概述.......................................................................................................................................................................................52.0存储器构成...................................................................................................................................................................................73.0振荡器模块(带故障保护时钟监视器)......................................................................................................................................194.0I/O端口.......................................................................................................................................................................................315.0Timer0模块................................................................................................................................................................................436.0带门控的Timer1模块.................................................................................................................................................................477.0Timer2模块................................................................................................................................................................................538.0比较器模块.................................................................................................................................................................................559.0模拟数字转换器(ADC)模块...................................................................................................................................................6510.0数据EEPROM存储器................................................................................................................................................................7511.0增强型捕捉/比较/PWM+(带自动关闭和死区)模块...............................................................................................................7912.0CPU的特殊功能.........................................................................................................................................................................9713.0指令集汇总...............................................................................................................................................................................11514.0开发支持...................................................................................................................................................................................12515.0电气特性...................................................................................................................................................................................12916.0直流和交流特性图表.................................................................................................................................................................15117.0封装信息...................................................................................................................................................................................173附录A:数据手册版本历史..........................................................................................................................................................179附录B:从其他PIC®器件移植...................................................................................................................................................179索引................................................................................................................................................................................................... 181Microchip网站....................................................................................................................................................................................187变更通知客户服务..............................................................................................................................................................................187客户支持.............................................................................................................................................................................................187读者反馈表.........................................................................................................................................................................................188产品标识体系......................................................................................................................................................................................189致 客 户我们旨在提供最佳文档供客户正确使用Microchip产品。 为此,我们将不断改进出版物的内容和质量,使之更好地满足您的要求。出版物的质量将随新文档及更新版本的推出而得到提升。如果您对本出版物有任何问题和建议,请通过联系我公司TRC经理,地址为******************,或将本数据手册后附的《读者反馈表》传真到86-21-5407 5066。我们期待您的反馈。最新数据手册欲获得本数据手册的最新版本,请查询我公司的网站:查看数据手册中任意一页下边角处的文献编号即可确定其版本。文献编号中数字串后的字母是版本号,例如:DS30000A是DS30000的A版本。勘误表现有器件可能带有一份勘误表,描述了实际运行与数据手册中记载内容之间存在的细微差异以及建议的变通方法。一旦我们了解到器件/文档存在某些差异时,就会发布勘误表。勘误表上将注明其所适用的硅片版本和文件版本。欲了解某一器件是否存在勘误表,请通过以下方式之一查询:• Microchip网站 • 当地Microchip销售办事处(见最后一页)在联络销售办事处时,请说明您所使用的器件型号、硅片版本和数据手册版本(包括文献编号)。客户通知系统欲及时获知Microchip产品的最新信息,请到我上注册。DS41202E_CN 第4页 2007 Microchip Technology Inc.

PIC16F6841.0器件概述本数据手册涉及PIC16F684器件。 器件有14引脚PDIP、SOIC和TSSOP以及16引脚QFN封装类型。图1-1给出了PIC16F684器件的框图,表1-1给出了其引脚配置说明。图1-1:PIC16F684框图INT配置13 闪存2K X 14

程序存储器程序计数器数据总线8PORTARA0RA1 8级深堆栈(13位)RAM 128 字节文件寄存器RAM地址9地址MUXRA2RA3RA4RA5程序总线14指令寄存器直接寻址78间接寻址PORTCRC0RC1RC2RC3RC4RC5FSR寄存器83状态寄存器上电延时定时器指令译码和控制时序发生振荡器起振定时器上电复位看门狗定时器欠压复位8MUXALUOSC1/CLKINOSC2/CLKOUT内部振荡电路T1GT1CKITimer0T0CKIW 寄存器CCP1/P1AP1BP1CP1DMCLRVDDVSSTimer1Timer2ECCP模数转换器

2个模拟比较器和参考电压EEDATA8256字节数据EEPROMEEADDRVREFAN0AN1AN2AN3AN4AN5AN6AN7C1IN-C1IN+C1OUTC2IN-C2IN+C2OUT 2007 Microchip Technology 41202E_CN 第5页

PIC16F684表1-1:PIC16F684 引脚排列说明名称RA0/AN0/C1IN+/ICSPDAT/ULPWU功能RA0AN0C1IN+ICSPDATULPWURA1/AN1/C1IN-/VREF/ICSPCLKRA1AN1C1IN-VREFICSPCLKRA2/AN2/T0CKI/INT/C1OUTRA2AN2T0CKIINTC1OUTRA3/MCLR/VPPRA3MCLRVPPRA4/AN3/T1G/OSC2/CLKOUTRA4AN3T1GOSC2CLKOUTRA5/T1CKI/OSC1/CLKINRA5T1CKIOSC1CLKINRC0/AN4/C2IN+RC0AN4C2IN+RC1/AN5/C2IN-RC1AN5C2IN-RC2/AN6/P1DRC2AN6P1DRC3/AN7/P1CRC3AN7P1CRC4/C2OUT/P1BRC4C2OUTP1BRC5/CCP1/P1ARC5CCP1P1AVDDVSS图注:VDDVSSAN=模拟输入或输出ST=带CMOS电平的施密特触发器输入输入类型TTLANANTTLANTTLANANANSTSTANSTST—TTLSTHVTTLANST——TTLSTXTALSTTTLANANTTLANANTTLAN—TTLAN—TTL——TTLST—电源电源输出类型CMOS——CMOS—CMOS————CMOS———CMOS———CMOS——XTALCMOSCMOS———CMOS——CMOS——CMOS—CMOSCMOS—CMOSCMOSCMOSCMOSCMOSCMOSCMOS——A/D通道0输入比较器1的正相输入串行编程数据I/O超低功耗唤醒输入具有可编程上拉和电平变化中断的PORTA I/O

A/D通道1输入比较器1的反相输入A/D外部参考电压串行编程时钟具有可编程上拉和电平变化中断的PORTA I/O

A/D通道2输入Timer0时钟输入外部中断比较器1输出带电平变化中断的PORTA输入带有内部上拉的主复位编程电压具有可编程上拉和电平变化中断的PORTA I/O

A/D通道3输入Timer1门控(计数使能)晶振/谐振器FOSC/4输出具有可编程上拉和电平变化中断的PORTA I/O

Timer1时钟晶振/谐振器外部时钟输入/RC振荡器连接PORTC I/OA/D通道4输入比较器2的正相输入PORTC I/OA/D通道5输入比较器2的反相输入PORTC I/OA/D通道6输入PWM输出PORTC I/OA/D通道7输入PWM输出PORTC I/O比较器2输出PWM输出PORTC I/O捕捉输入/比较输出PWM输出正电源端接地参考端HV=高压XTAL=晶体说明具有可编程上拉和电平变化中断的PORTA I/O

CMOS=CMOS兼容输入或输出TTL=TTL兼容输出DS41202E_CN 第6页 2007 Microchip Technology Inc.

PIC16F6842.02.1存储器构成程序存储器构成2.2数据存储器构成PIC16F684具有一个13位程序计数器,可以对8K x 14的程序存储空间进行寻址。 而PIC16F684仅在物理上实现了第一个2K x 14(0000h-07FFh)的存储空间。访问该边界以外的单元将导致实际访问存储器的第一个2K x 14存储空间。 复位向量地址为0000h,中断向量地址为0004h(见图2-1)。图2-1:PIC16F684程序存储器映射和堆栈

PC<12:0>数据存储器(见图2-2)被分为两个存储区(bank),其中包含通用寄存器(General Purpose Register,GPR)和特殊功能寄存器(Special Function Register,SFR)。 特殊功能寄存器位于每个存储区开头的32个单元。 通用寄存器位于Bank 0中的20h-7Fh和Bank 1中的A0h-BFh寄存器单元中,它们以静态RAM的方式实现。Bank 1中的寄存器单元F0h-FFh指向Bank0中的地址单元70h-7Fh。所有其他的RAM均未实现,读取它们时将返回0。 STATUS寄存器的RP0位为存储区选择位。

0 →选定Bank 0

1 →选定Bank 1CALL, RETURNRETFIE, RETLW1级堆栈2级堆栈13

注:STATUS寄存器中的IRP和RP1位为保留位并应始终保持为0。8级堆栈复位向量0000h中断向量0004h0005h片上程序存储器

07FFh0800h回到0000h-07FFh1FFFh 2007 Microchip Technology 41202E_CN 第7页

PIC16F6842.2.1通用文件寄存器图2-2: PIC16F684的数据存储器映射寄存器地址间接寻址(1)TMR0PCLSTATUSFSRPORTAPORTC00h01h02h03h04h05h06h07h08h09hPCLATHINTCONPIR1TMR1LTMR1HT1CONTMR2T2CONCCPR1LCCPR1HCCP1CONPWM1CONECCPASWDTCONCMCON0CMCON10Ah0Bh0Ch0Dh0Eh0Fh10h11h12h13h14h15h16h17h18h19h1Ah1Bh1Ch1DhADRESHADCON01Eh1Fh20hVRCONEEDATEEADREECON1EECON2(1)在PIC16F684中通用寄存器是按128 x 8的形式实现的。 可直接访问每个寄存器或通过文件选择寄存器(File Select Register,FSR)间接访问每个存储器(见第2.4节“间接寻址、INDF和FSR寄存器”)。寄存器地址间接寻址(1)OPTION_REGPCLSTATUSFSRTRISATRISC80h81h82h83h84h85h86h87h88h89hPCLATHINTCONPIE1PCONOSCCONOSCTUNEANSELPR28Ah8Bh8Ch8Dh8Eh8Fh90h91h92h93h94hWPUAIOCA95h96h97h98h99h9Ah9Bh9Ch9Dh9Eh9FhA0h2.2.2特殊功能寄存器特殊功能寄存器是CPU和外设模块用来控制所需的器件操作的寄存器(见表2-1)。 这些寄存器都实现为静态RAM。特殊功能寄存器可分为两类:内核与外设。 本章仅讲述与“内核”有关的特殊功能寄存器。 那些与外设功能部件的操作有关的特殊功能寄存器将在相应的外设功能部件章节中讲述。ADRESLADCON1通用寄存器32 字节BFh通用寄存器96 字节6Fh70h7FhBank 0访问70h-7FhBank 1F0hFFh未实现的数据存储单元,读为0。注1:这不是物理寄存器。DS41202E_CN 第8页 2007 Microchip Technology Inc.

PIC16F684表2-1:地址Bank 000h01h02h03h04h05h06h07h08h09h0Ah0Bh0Ch0Dh0Eh0Fh10h11h12h13h14h15h16h17h18h19h1Ah1Bh1Ch1Dh1Eh1FhINDFTMR0PCLSTATUSFSRPORTA(2)—PORTC(2)——PCLATHINTCONPIR1—TMR1LTMR1HT1CONTMR2T2CONCCPR1LCCPR1HCCP1CONPWM1CONECCPASWDTCONCMCON0CMCON1———ADRESHADCON0使用FSR的内容对数据存储器进行寻址来寻址此单元(不是物理寄存器)Timer0模块寄存器程序计数器(PC)的低字节IRP(1)RP1(1)RP0RA5RC5TORA4RC4PDRA3RC3ZRA2RC2DCRA1RC1CRA0RC0间接数据存储器地址指针-未实现-未实现未实现-EEIF未实现16位TMR1低字节的保持寄存器16位TMR1高字节的保持寄存器T1GINVTMR1GETOUTPS3T1CKPS1TOUTPS2T1CKPS0TOUTPS1T1OSCENTOUTPS0T1SYNCTMR2ONTMR1CST2CKPS1TMR1ONT2CKPS0-ADIF-T0IECCP1IF程序计数器高5位的写缓冲器INTEC2IFRAIEC1IFT0IFOSFIFINTFTMR2IFRAIFTMR1IFGIE PEIE--xxxx xxxxxxxx xxxx0000 00000001 1xxxxxxx xxxx--x0 x000—--xx 0000——---0 00000000 00000000 0000—xxxx xxxxxxxx xxxx0000 00000000 0000-000 0000XXXX XXXXXXXX XXXXDC1B0PDC4ECCPAS0WDTPS3C1INV—CCP1M3PDC3PSSAC1WDTPS2CIS—CCP1M2PDC2PSSAC0WDTPS1CM2—CCP1M1PDC1PSSBD1WDTPS0CM1T1GSSCCP1M0PDC0PSSBD0SWDTENCM0C2SYNC0000 00000000 00000000 000017, 10443, 10417, 10411, 10417, 10431, 104—40, 104——17, 10413, 10415, 104—47, 10447, 10450, 10453, 10454, 10480, 10480, 10479, 10496, 10493, 104名称PIC16F684特殊功能寄存器汇总,BANK 0

Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0POR和BOR的值页Timer2模块寄存器-捕捉/比较/PWM寄存器1的低字节捕捉/比较/PWM寄存器1的高字节P1M1PRSENECCPASE—C2OUT—未实现未实现未实现左对齐格式下A/D结果的高8位或右对齐格式下A/D结果的高2位ADFMVCFG—CHS2CHS1CHS0GO/DONEADONP1M0PDC6ECCPAS2—C1OUT—DC1B1PDC5ECCPAS1—C2INV—---0 1000111, 1040000 0000---- --10———xxxx xxxx00-0 000061, 10462, 104———71, 10470, 104图注:注1:2:– = 未实现单元读为0,u = 不变,x = 未知,q = 取值视情况而定,阴影 = 未实现IRP和RP1位被保留,应始终保持这两个位清零。由ANSEL寄存器控制的具有模拟功能的端口引脚在复位后立即读为0,尽管数据锁存器未定义(POR)或不变(其他复位)也是如此。 2007 Microchip Technology 41202E_CN 第9页

PIC16F684表2-2:AddrBank 180h81h82h83h84h85h86h87h88h89h8Ah8Bh8Ch8Dh8Eh8Fh90h91h92h93h94h95h96h97h98h99h9Ah9Bh9Ch9Dh9Eh9FhIOCA——VRCONEEDATEEADREECON1EECON2ADRESLADCON1INDFOPTION_REGPCLSTATUSFSRTRISA—TRISC——PCLATHINTCONPIE1—PCONOSCCONOSCTUNEANSELPR2——WPUA(3)使用FSR的内容对数据存储器进行寻址来寻址此单元(不是物理寄存器)RAPUIRP(1)—未实现—未实现未实现—GIEEEIE未实现———ANS7—IRCF2—ANS6ULPWUEIRCF1—ANS5SBORENIRCF0TUN4ANS4—OSTS(2)TUN3ANS3—HTSTUN2ANS2PORLTSTUN1ANS1BORSCSTUN0ANS0—PEIEADIE—T0IECCP1IEWrite Buffer for upper 5 bits of Program CounterINTEC2IERAIEC1IET0IFOSFIEINTFTMR2IERAIFTMR1IE—TRISC5TRISC4TRISC3TRISC2TRISC1TRISC0INTEDGRP1(1)—T0CSRP0TRISA5T0SETOTRISA4PSAPDTRISA3PS2ZTRISA2PS1DCTRISA1PS0CTRISA0程序计数器(PC)的低字节间接数据存储器地址指针xxxx xxxx17, 1041111 111112, 1040000 000017, 1040001 1xxx11, 104xxxx xxxx17, 104--11 111131, 104——————--11 111140, 104NamePIC16F684特殊功能寄存器汇总,BANK 1Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2 Bit 1Bit 0Value on

POR, BORPage---0 000017, 1040000 000013, 1040000 000014, 104——--01 --qq16, 104-110 x00020, 104---0 000024, 1051111 111132, 1051111 111153, 105————Timer2模块周期寄存器未实现未实现——未实现未实现VRENEEDAT7EEADR7——EEDAT6EEADR6—VRREEDAT5EEADR5——EEDAT4EEADR4—VR3EEDAT3EEADR3WRERRVR2EEDAT2EEADR2WRENVR1EEDAT1EEADR1WRVR0EEDAT0EEADR0RD——WPUA5IOCA5WPUA4IOCA4—IOCA3WPUA2IOCA2WPUA1IOCA1WPUA0IOCA0--11 -11133, 105--00 000033, 105————0-0- 000063, 1050000 000075, 1050000 000075, 105---- x00076, 105---- ----76, 105xxxx xxxx71, 105EEPROM控制寄存器2(非物理寄存器)左对齐格式下A/D结果的低2位或右对齐格式下A/D结果的低8位—ADCS2ADCS1ADCS0————-000 ----70, 105图注:注1:2:3:– = 未实现单元读为0,u = 不变,x = 未知,q = 取值视情况而定,阴影 = 未实现IRP和RP1位被保留,应始终保持这两个位清零。OSCCON寄存器的OSTS位复位为0,带双速启动且LP、HS或XT被选定为振荡器。配置字寄存器中的MCLRE为1时RA3上拉使能。DS41202E_CN 第10页 2007 Microchip Technology Inc.

PIC16F6842.2.2.1状态寄存器如寄存器2-1所示,状态(STATUS)寄存器包含:• ALU的算术运算状态• 复位状态• 数据存储器(SRAM)的存储区选择位和其他寄存器一样,状态寄存器也可以作为任何指令的目标寄存器。 如果一条影响Z、DC或C位的指令以状态寄存器作为目标寄存器,将禁止写这三位。根据器件逻辑,这些位会被置1或清零。 此外,也不能写TO和PD位。因此,当执行一条把状态寄存器作为目标寄存器的指令后,状态寄存器的结果可能和预想的不一样。

例如,执行 CLRF STATUS指令会清零该寄存器的高3位并将Z位置1。 从而使状态寄存器的值为“000uu1uu”(其中u表示不变)。

因此,建议仅使用BCF、BSF、SWAPF和MOVWF指令来改变状态寄存器,因为这些指令不影响任何状态位。欲知其他不会影响任何状态位的指令,请参见第13.0节“指令集汇总”。

注1:PIC16F684不使用STATUS寄存器的IRP和RP1位,并且应该保持这两位清零。 建议不要使用这些位,因为这可能会影响未来产品的向上兼容性。2:在减法运算中,C和DC位分别作为借位和半借位标志位。 具体示例请参见SUBLW和SUBWF指令。寄存器2-1:保留IRPbit 7图注:R = 可读位-n = POR时的值bit 7bit 6bit 5STATUS:状态寄存器保留RP1R/W-0RP0R-1TOR-1PDR/W-xZR/W-xDCR/W-xCbit 0W = 可写位U = 未实现位,读为0x = 未知1 = 置1 0=清零IRP:此位保留,并且应保持为0RP1:此位保留,并且应保持为0RP0:寄存器存储区选择位(用于直接寻址)1 = Bank 1(80h-FFh)0 = Bank 0(00h-7Fh)TO:超时状态位1 = 上电后,执行了CLRWDT指令或SLEEP指令0 = 发生WDT超时溢出PD:掉电标志位1 = 上电复位后或执行了CLRWDT指令0 = 执行了SLEEP指令Z:零标志位1 = 算术运算或逻辑运算的结果为零0 = 算术运算或逻辑运算的结果不为零 。对于借位,极性是相反的。DC:半进位/借位位(ADDWF、ADDLW、UBLW和SUBWF指令)1 = 结果的第4低位向高位发生了进位0 = 结果的第4低位未向高位发生进位C:进位/借位位(1)(ADDWF、ADDLW、SUBLW和SUBWF指令)1 = 结果的最高位发生了进位0 = 结果的最高位未发生进位1:借位的极性是相反的。减法是通过加上第二个操作数的二进制补码(Two’s Complement)来实现的。对于移位指令(RRF和RLF),此位的值来自源寄存器的最高位或最低位。bit 4bit 3bit 2bit 1bit 0注 2007 Microchip Technology 41202E_CN 第11页

PIC16F6842.2.2.2选项寄存器注:要为Timer0指定1:1的预分频比,应将OPTION寄存器的PSA位置1,以将预分频器分配给WDT。请参见第5.1.3节“软件可编程预分频器”。选项(OPTION)寄存器是可读写的寄存器,包含可对以下各项进行配置的各种配置位:• Timer0/WDT预分频器• 外部RA2/INT中断• Timer0• PORTA上的弱上拉

寄存器2-2:R/W-1RAPUbit 7图注:R = 可读位-n = POR时的值bit 7OPTION_REG:选项寄存器R/W-1INTEDGR/W-1T0CSR/W-1T0SER/W-1PSAR/W-1PS2R/W-1PS1R/W-1PS0bit 0W = 可写位U = 未实现位,读为0x = 未知1 = 置1 0=清零RAPU:PORTA上拉使能位1 = 禁止PORTA上拉0 = 由各个端口锁存值使能PORTA上拉INTEDG:中断边沿选择位1 = 由RA2/INT引脚的上升沿触发中断0 = 由RA2/INT引脚的下降沿触发中断T0CS:TMR0时钟源选择位1 = RA2/T0CKI引脚上信号的跳变0 = 内部指令周期时钟(FOSC/4)T0SE:TMR0时钟源边沿选择位1 = 在RA2/T0CKI引脚电平发生由高到低的跳变时递增0 = 在RA2/T0CKI引脚电平发生由低到高的跳变时递增PSA:预分频器分配位1 = 将预分频器分配给WDT0 = 将预分频器分配给Timer0模块PS<2:0>:预分频比选择位 位值1TIMER0分频比WDT分频比1 : 21 : 41 : 81 : 161 : 321 : 641 : 1281 : 2561 : 11 : 21 : 41 : 81 : 161 : 321 : 641 : 128bit 6bit 5bit 4bit 3bit 2-0DS41202E_CN 第12页 2007 Microchip Technology Inc.

PIC16F6842.2.2.3INTCON寄存器

INTCON寄存器是可读写的寄存器,包含TMR0寄存器溢出、PORTA电平变化和外部RA2/INT引脚中断的各种允许和标志位。注:当有中断条件产生时,不管相应的中断允许位或INTCON寄存器的全局允许位GIE状态如何,中断标志位都将置1。用户软件应该在允许中断之前确保将相应的中断标志位清零。

寄存器2-3:R/W-0GIEbit 7图注:R = 可读位-n = POR时的值bit 7INTCON:中断控制寄存器R/W-0PEIER/W-0T0IER/W-0INTER/W-0RAIER/W-0T0IFR/W-0INTFR/W-0RAIFbit 0W = 可写位U = 未实现位,读为0x = 未知1 = 置1 0=清零GIE:全局中断允许位1 = 允许所有未屏蔽的中断0 = 禁止所有中断PEIE:外设中断允许位1 = 允许所有未屏蔽的外设中断0 = 禁止所有外设中断T0IE:Timer0溢出中断允许位1 = 允许Timer0中断0 = 禁止Timer0中断INTE:RA2/INT外部中断允许位1 = 允许RA2/INT外部中断0 = 禁止RA2/INT外部中断RAIE:PORTA电平变化中断允许位(1)1 = 允许PORTA电平变化中断0 = 禁止PORTA电平变化中断T0IF:Timer0溢出中断标志位(2)1 = Timer0寄存器已经溢出(必须用软件清零)0 = Timer0寄存器没有溢出INTF:RA2/INT外部中断标志位1 = 发生了RA2/INT 外部中断(必须用软件清零)0 = 未发生RA2/INT外部中断RAIF:PORTA电平变化中断标志位1 = 至少一个PORTA <5:0>引脚的电平状态发生了改变(必须用软件清零)0 = 没有一个PORTA <5:0>引脚的电平状态发生改变1:必须同时使能IOCA寄存器。2:当TMR0计满回零时,T0IF位置1。 复位时TMR0的状态不变,它应该在清零T0IF位之前被初始化。bit 6bit 5bit 4bit 3bit 2bit 1bit 0注 2007 Microchip Technology 41202E_CN 第13页

PIC16F6842.2.2.4PIE1寄存器注:

要允许任何一个外设中断,必须将INTCON寄存器的PEIE位置1。PIE1寄存器包含外设中断允许位,如寄存器2-4所示。寄存器2-4:R/W-0EEIEbit 7PIE1:外设中断允许寄存器1R/W-0ADIER/W-0CCP1IER/W-0C2IER/W-0C1IER/W-0OSFIER/W-0TMR2IER/W-0TMR1IEbit 0图注:R = 可读位-n = POR时的值bit 7W = 可写位U = 未实现位,读为0x = 未知1 = 置1 0=清零EEIE:EE写完成中断允许位1 = 允许EE写完成中断0 = 禁止EE写完成中断ADIE:A/D转换器中断允许位1 = 允许A/D转换器中断0 = 禁止A/D转换器中断CCP1IE:CCP1中断允许位1 = 允许CCP1中断0 = 禁止CCP1中断C2IE:比较器2中断允许位1 = 允许比较器2中断0 = 禁止比较器2中断C1IE:比较器1中断允许位1 = 允许比较器1中断0 = 禁止比较器1中断

OSFIE:振荡器故障中断允许位1 = 允许振荡器故障中断0 = 禁止振荡器故障中断

TMR2IE:Timer2与PR2匹配中断允许位1 = 允许Timer2与PR2匹配中断0 = 禁止Timer2与PR2匹配中断TMR1IE:Timer1溢出中断允许位1 = 允许Timer1溢出中断0 = 禁止Timer1溢出中断bit 6bit 5bit 4bit 3bit 2bit 1bit 0DS41202E_CN 第14页 2007 Microchip Technology Inc.

PIC16F6842.2.2.5PIR1寄存器注:当有中断条件产生时,不管相应的中断允许位或INTCON寄存器的全局允许位GIE状态如何,中断标志位都将置1。用户软件应该在允许中断之前确保将相应的中断标志位清零。PIR1寄存器包含外设中断标志位,如寄存器2-5所示。

寄存器2-5:R/W-0EEIFbit 7图注:R = 可读位-n = POR时的值bit 7PIR1:外设中断请求寄存器1R/W-0ADIFR/W-0CCP1IFR/W-0C2IFR/W-0C1IFR/W-0OSFIFR/W-0TMR2IFR/W-0TMR1IFbit 0W = 可写位U = 未实现位,读为0x = 未知1 = 置1 0=清零EEIF:EEPROM写操作中断标志位1 = 写操作完成(必须用软件清零)0 = 写操作尚未完成或尚未启动ADIF: A/D中断标志位1 = A/D 转换完成0 = A/D 转换尚未完成或尚未启动CCP1IF:CCP1中断标志位捕捉模式:1 = 发生了TMR1寄存器捕捉(必须用软件清零)0 = 未发生TMR1寄存器捕捉比较模式:1 = 发生了TMR1寄存器比较匹配(必须用软件清零)0 = 未发生TMR1寄存器比较匹配PWM模式:在此模式下未使用C2IF:比较器2中断标志位1 = 比较器2输出发生了改变(必须用软件请零)0 = 比较器2输出未发生改变C1IF:比较器1中断标志位1 = 比较器1输出发生了改变(必须用软件请零)0 = 比较器1输出未发生改变OSFIF:振荡器故障中断标志位1 = 系统振荡器发生故障,时钟输入切换为INTOSC(必须用软件清零)0 = 系统时钟正常运行TMR2IF:Timer2与PR2匹配中断标志位1 = 发生了Timer2和PR2的比较匹配(必须用软件清零)0 = 未发生Timer2与PR2的比较匹配TMR1IF:Timer1溢出中断标志位1 = Timer1寄存器已经溢出(必须用软件清零)0 = Timer1寄存器未溢出bit 6bit 5bit 4bit 3bit 2bit 1bit 0 2007 Microchip Technology 41202E_CN 第15页

PIC16F6842.2.2.6PCON寄存器电源控制(PCON)寄存器(见表12-2)包含区分以下复位的标志位:• 上电复位(POR)• 欠压复位(BOR)• 看门狗定时器复位(WDT)• 外部MCLR复位PCON寄存器也用于控制超低功耗唤醒和BOR的软件使能。PCON寄存器中的位如寄存器2-6所示。

寄存器2-6:U-0—bit 7图注:R = 可读位-n = POR时的值bit 7-6bit 5PCON:电源控制寄存器U-0—R/W-0ULPWUER/W-1SBORENU-0—U-0—R/W-0PORR/W-xBORbit 0W = 可写位U = 未实现位,读为0x = 未知1 = 置1 0=清零未实现:读为0ULPWUE:超低功耗唤醒使能位1 = 使能超低功耗唤醒0 = 禁止超低功耗唤醒SBOREN:软件欠压检测使能位(1)1 = 使能欠压检测0 = 禁止欠压检测未实现:读为0POR:上电复位状态位1 = 未发生上电复位0 = 发生了上电复位(必须在上电复位发生后用软件清零)BOR:欠压复位状态位1 = 未发生欠压复位0 = 已发生欠压复位(必须在发生欠压复位后用软件置1)1:当配置字寄存器中的BODEN<1:0> = 01时允许使用该位对BOR进行控制。bit 4bit 3-2bit 1bit 0注DS41202E_CN 第16页 2007 Microchip Technology Inc.

PIC16F6842.3PCL和PCLATH2.3.2堆栈程序计数器(PC)为13位宽。其低8位来自可读写的PCL寄存器,高5位(PC<12:8>)来自PCLATH,不能直接读写。只要发生复位,PC就将被清零。图2-3显示了装载PC值的两种情形。图2-3上方的例子说明在写PCL(PCLATH<4:0> → PCH)时是如何装载PC的。图2-3下方的例子说明了在执行CALL或GOTO指令期间(PCLATH<4:3> → PCH),是如何装载PC的。PIC16F684器件具有8级深x13位宽的硬件堆栈(见图2-2和图2-3)。堆栈空间既不占用程序存储区空间,也不占用数据存储区空间,而且堆栈指针是不可读写的。当执行CALL指令或当中断导致程序跳转时,PC值将被压入(PUSH)堆栈。而在执行RETURN、RETLW或RETFIE指令时,堆栈中的断点地址将从堆栈中弹出(POP)到PC中。PCLATH不受PUSH或POP操作的影响。堆栈的工作原理犹如循环缓冲区。这意味着当堆栈压栈8次后,第9次压栈的数值将会覆盖第一次压栈时所保存的数值,而第十次压栈数值将覆盖第二次压栈时保存的数值,以后依次类推。注ALU结果图2-3:12PC5在不同情况下装载PCPCH87PCL0以PCL为目标的指令PCLATH<4:0>81:不存在指明堆栈是否上溢或下溢的状态标志位。2:不存在被称为PUSH或POP的指令/助记符。堆栈的压入或弹出是源于执行了CALL、RETURN、RETLW和RETFIE指令,或源于指向中断向量地址。PCLATHPCH12PC2PCLATH<4:3>11111087PCL0GOTO, CALLOPCODE<10:0>2.4间接寻址、INDF和FSR寄存器INDF寄存器不是实际存在的寄存器,对INDF寄存器进行寻址将产生间接寻址。使用INDF寄存器可进行间接寻址。任何使用INDF寄存器的指令,实际上是对文件选择寄存器(FSR)所指向的数据进行存取。间接对INDF进行读操作将返回00h。间接对INDF寄存器进行写操作将导致空操作(尽管可能会影响状态标志位)。通过将8位的FSR寄存器与STATUS寄存器的IRP位进行组合可得到一个有效的9位地址,如图2-4所示。例2-1给出了一个使用间接寻址将RAM地址单元20h-2Fh清零的简单程序。PCLATH2.3.1修改PCL执行任何以PCL寄存器为目标寄存器的指令将同时使程序计数器的PC<12:8>位(PCH)被PCLATH寄存器的内容所取代。这样可通过将所需的高5位写入PCLATH寄存器来改变程序计数器的所有内容。当低8位写入PCL寄存器时,程序计数器的所有13位将变为PCLATH寄存器中所包含的值以及写入PCL寄存器中的值。计算GOTO指令是通过向程序计数器加入偏移量(ADDWFPCL)来实现的。通过修改PCL寄存器跳转到查表或程序分支表(计算GOTO)时应特别谨慎。假定PCLATH设置为表的起始地址,如果表长度大于255条指令,或如果存储器地址的低8位在表的中间从0xFF计满返回到0x00,那么在每次表起始地址与表内的目标地址之间发生计满返回时,PCLATH必须均必须递增。更多信息请参见应用笔记AN556,“Implementing aTable Read”(DS00556)。例2-1:MOVLWMOVWFNEXTCLRFINCFBTFSSGOTOCONTINUE间接寻址0x20FSRINDFFSRFSR,4NEXT;initialize pointer;to RAM;clear INDF register;inc pointer;all done?;no clear next;yes continue 2007 Microchip Technology 41202E_CN 第17页

PIC16F684图2-4: PIC16F684的直接/间接寻址 直接寻址RP1(1)RP06 来自操作码0IRP(1) 间接寻址7 文件选择寄存器0 存储区选择 单元选择0000h011011 存储区选择180h单元选择 数据存储器 未使用7FhBank 0欲知详细的存储器映射信息,请参见图2-2。注1:保留RP1和IRP位;始终保持这两位清零。Bank 1Bank 2Bank 31FFhDS41202E_CN 第18页 2007 Microchip Technology Inc.

PIC16F6843.03.1振荡器模块(带故障保护时钟监视器)概述振荡器模块可配置为以下8种时钟模式之一。——外部时钟,I/O在OSC2/CLKOUT上。LP——32kHz低功耗晶振模式。XT——中等增益晶振或陶瓷谐振振荡器模式。HS——高增益晶振或陶瓷谐振器模式。RC——外部阻容(RC),FOSC/4输出到OSC2/CLKOUT。RCIO——外部阻容,I/O在OSC2/CLKOUT上。INTOSC——内部振荡器,FOSC/4输出到OSC2且I/O在OSC1/CLKIN上。INTOSCIO——内部振荡器,I/O在OSC2/CLKOUT和OSC1/CLKIN上。振荡器有多种时钟源和选择功能,从而使其应用非常广泛,并可最大限度地提高性能和降低功耗。图3-1给出了振荡器模块的框图。时钟源可以配置为由外部振荡器、石英晶体谐振器、陶瓷谐振器以及阻容(RC)电路提供。此外,系统时钟源可以配置为由两个内部振荡器中的一个提供,并可以通过软件选择速度。其他时钟功能包括:• 通过软件选择外部或内部系统时钟源。• 双速启动模式,使外部振荡器从启动到代码执行间的延时达到最小。• 故障保护时钟监视器(FSCM)旨在检测外部时钟源的故障(LP、XT、HS、EC或RC模式)并自动切换到内部振荡器。通过配置字寄存器(CONFIG)的FOSC<2:0>位来配置时钟源模式。内部时钟可用两个内部振荡器产生。HFINTOSC是经过校准的高频振荡器。LFINTOSC是未经校准的低频振荡器。图3-1:PIC® MCU时钟源框图FOSC<2:0>(配置字寄存器) 外部振荡器SCS<0>(OSCCON寄存器)OSC2休眠OSC1LP, XT, HS, RC, RCIO, ECMUXIRCF<2:0>(OSCCON寄存器)8 MHz 内部振荡器4 MHz2 MHz后分频器HFINTOSC8 MHz1 MHz500 kHz250 kHz125 kHzLFINTOSC31 kHz31 kHz0MUXINTOSC系统时钟(CPU和外设)上电延时定时器(PWRT)看门狗定时器(WDT)故障保护时钟监控器(FSCM) 2007 Microchip Technology 41202E_CN 第19页

PIC16F6843.2振荡器控制振荡器控制(OSCCON)寄存器(图3-1)控制系统时钟和频率选择等选项。OSCCON寄存器包含以下位:•频率选择位(IRCF)•频率状态位(HTS和LTS)•系统时钟控制位(OSTS和SCS)

寄存器3-1:U-0—bit 7图注:R = 可读位-n = POR时的值bit 7bit 6-4OSCCON:振荡器控制寄存器R/W-1IRCF2R/W-1IRCF1R/W-0IRCF0R-1OSTS(1)R-0HTSR-0LTSR/W-0SCSbit 0W = 可写位U = 未实现位,读为0x = 未知1 = 置1 0=清零未实现:读为0IRCF<2:0>:内部振荡器频率选择位000 = 31kHz001 = 125kHz010 = 250kHz011 = 500kHz100 = 1MHz101 = 2MHz110 = 4MHz(缺省值)111 = 8MHzOSTS:振荡器起振超时状态位(1)1 =器件运行在FOSC<2:0>定义的外部时钟之下0 =器件运行在内部振荡器之下(HFINTOSC或LFINTOSC)HTS:HFINTOSC(高频——8MHz到125kHz)状态位1 =HFINTOSC稳定0 =HFINTOSC不稳定LTS:LFINTOSC(低频——31kHz)状态位1 =LFINTOSC稳定0 =LFINTOSC不稳定SCS:系统时钟选择位1 =内部振荡器用于系统时钟0 =时钟源由FOSC<2:0>决定1:双速启动且选取LP、XT或HS为振荡器模式时,或者故障保护模式使能时,该位将复位为0。bit 3bit 2bit 1bit 0注DS41202E_CN 第20页 2007 Microchip Technology Inc.

PIC16F6843.3时钟源模式3.43.4.1外部时钟模式振荡器起振定时器(OST)时钟源模式可分为外部和内部模式。•外部时钟模式依靠外部电路提供时钟源。例子有:振荡器模块(EC模式)、石英晶体谐振器或陶瓷谐振器(LP、XT和HS模式)以及阻容(RC)模式电路。•内部时钟源内置于振荡器模块中。振荡器模块有两个内部振荡器,一个是8MHz高频内部振荡器(HFINTOSC),另一个是31kHz低频内部振荡器(LFINTOSC)。可通过OSCCON寄存器的系统时钟选择(SCS)位,在外部或内部时钟源之间选择系统时钟。欲了解更多信息,请参见第3.6节“时钟切换”)。如果振荡器模块配置为LP、XT或HS模式,振荡器起振定时器(OST)对来自OSC1的振荡计数1024次。这发生在上电复位(POR)之后以及上电延时定时器(PWRT)延时结束(如果配置了)时,或从休眠中唤醒后。在此期间,程序计数器不递增,程序执行暂停。OST确保使用石英晶体谐振器或陶瓷谐振器的振荡器电路已经启动并向振荡器模块提供稳定的系统时钟信号。当在时钟源之间切换时,需要一定的延时以使新时钟稳定。表3-1给出了振荡器延时的例子。为了使外部振荡器起振和代码执行之间的延时最小,可选择双速时钟启动模式(见第3.7节“双速时钟启动模式”)。表3-1:切换自振荡器延时示例切换到LFINTOSCHFINTOSCEC,RCEC,RCLP,XT,HSHFINTOSC频率31kHz125kHz到8MHzDC-20MHzDC-20MHz32kHz到20MHz125kHz到8MHz振荡器延时振荡器预热延时(TWARM)双周期每次一周期1024个时钟周期(OST)1µs(近似值)休眠/POR休眠/PORLFINTOSC(31kHz)休眠/PORLFINTOSC(31kHz)3.4.2EC模式图3-2:来自外部系统的时钟外部时钟(EC)模式的工作原理OSC1/CLKIN外部时钟(EC)模式允许外部产生的逻辑电平作为系统时钟源。工作在此模式下时,外部时钟源连接到OSC1输入,OSC2引脚可用作通用I/O。图3-2给出了EC模式的引脚连接。当选取EC模式时,振荡器起振定时器(OST)被禁止。因此,上电复位(POR)后或者从休眠中唤醒后的操作不存在延时。因为PIC® MCU的设计是完全静态的,停止外部时钟输入将使器件暂停工作并保持所有数据完整。当再次启动外部时钟时,器件恢复工作,就好像没有停止过一样。 PIC® MCUI/OOSC2/CLKOUT(1)注1:此引脚的其他功能列在第1.0节“器件概述”中。 2007 Microchip Technology 41202E_CN 第21页

PIC16F6843.4.3LP、XT和HS模式注LP、XT和HS模式支持连接到OSC1和OSC2的石英晶体谐振器或陶瓷谐振器的使用(图3-3)。模式选择内部反相放大器的低、中或高增益设定,以支持各种谐振器类型及速度。LP振荡器模式选择内部反相放大器的最低增益设定。LP模式的电流消耗在三种模式中最小。该模式设计仅用于驱动32.768 kHz音叉(Tuning Fork)式晶振(钟表晶振)。XT振荡器模式选择内部反相放大器的中等增益设定。XT模式的电流消耗在三种模式中居中。该模式最适用于驱动具备中等驱动电平规格要求的谐振器。HS振荡器模式选择内部反相放大器的最高增益设定。HS模式的电流消耗在三种模式中最大。该模式最适用于驱动需要高驱动设定的谐振器。图3-3和图3-4分别给出了石英晶体谐振器和陶瓷谐振器的典型电路。1:石英晶振的特性随类型、封装和制造商而变化。要了解规格说明和推荐应用,应查阅制造商提供的数据手册。2:应始终验证振荡器在应用预期的VDD和温度范围内的性能。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)图3-3:石英晶振的工作原理(LP、XT或HS模式)PIC MCUOSC1/CLKIN®图3-4:陶瓷谐振器的工作原理(XT或HS模式)PIC® MCUOSC1/CLKINC1C1石英晶体(2)至内部逻辑RF休眠RP(3)RF(2)至内部逻辑SleepC2RS(1)OSC2/CLKOUTC2陶瓷谐振器RS(1)OSC2/CLKOUT注1:低驱动电平的石英晶振可能需要串联一个电阻(RS)。2:RF的值根据所选的振荡模式变化(典型值在2MΩ到10MΩ之间)。注1:低驱动电平的陶瓷谐振器可能需要串联一个电阻(RS)。2:RF的值根据所选的振荡模式变化(典型值在2MΩ到10MΩ之间)。3:要使陶瓷谐振器正常工作,可能需要并联一个反馈电阻(RP)(典型值1MΩ)。DS41202E_CN 第22页 2007 Microchip Technology Inc.

PIC16F6843.4.4外部RC模式3.5内部时钟模式外部阻容(RC)模式支持使用外部RC电路。对时钟精度要求不高时,这使设计人员有了很大的频率选择空间,且保持成本最低。有RC和RCIO两种模式。在RC模式下,RC电路连接到OSC1。OSC2/CLKOUT输出RC振荡频率的4分频。该信号可用来为外部电路、同步、校准、测试或其他应用需求提供时钟。图3-5给出了外部RC模式的连接图。振荡器模块有两个独立的内部振荡器,可配置或选取为系统时钟源。SC(高频内部振荡器)出厂时已校准,工作频率为8MHz。使用OSCTUNE寄存器(寄存器3-1),用户可通过软件调整HFINTOSC的频率,调整范围为±12%。SC(低频内部振荡器)未经校准,工作频率为31kHz。通过软件对OSCCON寄存器的内部振荡器频率选择位IRCF<2:0>进行操作,可选择系统时钟速度。可通过OSCCON寄存器的系统时钟选择(SCS)位,在外部或内部时钟源之间选择系统时钟(见第3.6节“时钟切换”)。图3-5:VDDREXT外部RC模式PIC® MCUOSC1/CLKINCEXTVSSFOSC/4或I/O(2)建议值:OSC2/CLKOUT(1)内部时钟3.5.1INTOSC和INTOSCIO模式当在配置字寄存器(CONFIG)中使用振荡器选择位FOSC<2:0>设置器件时,在INTOSC和INTOSCIO模式下将内部振荡器配置为系统时钟源。在INTOSC模式下,OSC1/CLKIN可用作通用I/O。OSC2/CLKOUT输出所选内部振荡器频率的4分频。CLKOUT信号可用来为外部电路、同步、校准、测试或其他应用需求提供时钟。在INTOSCIO模式下,OSC1/CLKIN和OSC2/CLKOUT引脚可用作通用I/O。10 kΩ ≤ REXT ≤ 100 kΩ,<3V3 kΩ ≤ REXT ≤ 100 kΩ,3-5VCEXT > 20 pF,2-5V注1:该引脚的其他功能列在第1.0节“器件概述”中。2:输出取决于RC或RCIO时钟模式。3.5.2HFINTOSC在RCIO模式下,RC电路连接到OSC1。OSC2成为额外的通用I/O引脚。I/O引脚成为PORTA的bit 4(RA4)。图3-6给出了RCIO模式的连接图。RC振荡器频率是供电电压、电阻(REXT)和电容(CEXT)值以及工作温度的函数。影响振荡器频率的其他因素有:•电压门限值变化•元件容差•不同封装的电容用户还应考虑因所使用的外部RC元件的容差而导致的差异。高频内部振荡器(HFINTOSC)是出厂时已校准的8MHz内部时钟源。使用OSCTUNE寄存器(寄存器3-2),可通过软件调整HFINTOSC的频率。HFINTOSC的输出连接到后分频器和多路复用器(见图3-1)。使用OSCCON寄存器的IRCF<2:0>位,可通过软件选择七个频率之一。更多信息,请参见第3.5.4节“频率选择位(IRCF)”。将OSCCON寄存器的ICRF<2:0>位设置为≠000选择8MHz到125kHz之间的任一频率,可使能HFINTOSC。然后将OSCCON寄存器的系统时钟源(SCS)位置1,或通过将配置字寄存器(CONFIG)中的IESO置1使能双速启动。OSCCON寄存器的HF内部振荡器(HTS)位用于显示HFINTOSC是否稳定。 2007 Microchip Technology 41202E_CN 第23页

PIC16F6843.5.2.1OSCTUNE寄存器HFINTOSC在出厂时已校准,但可通过在软件中写入OSCTUNE寄存器(寄存器3-2)来进行调节。OSCTUNE寄存器的调节范围为±12%。OSCTUNE寄存器的缺省值为0。该值是一个5位的二进制补码。

当OSCTUNE寄存器被修改时,HFINTOSC频率将开始转变为新频率。转变期间,代码将继续执行。是否已发生频率转变并无明确的指示。OSCTUNE不影响LFINTOSC频率。依赖于LFINTOSC时钟源频率的功能,如上电延时定时器(PWRT)、看门狗定时器(WDT)、故障保护时钟监控器(FSCM)以及外设等,其工作不受频率改变的影响。寄存器3-2:U-0—bit 7图注:R = 可读位-n = POR时的值bit 7-5bit 4-0OSCTUNE:振荡器调节寄存器U-0—U-0—R/W-0TUN4R/W-0TUN3R/W-0TUN2R/W-0TUN1R/W-0TUN0bit 0W = 可写位U = 未实现位,读为0x = 未知1 = 置1 0=清零未实现:读为0UN<4:0>:频率调节位01111 = 最大频率01110 =

•••00001 =

00000 = 振荡器模块运行在经过校准的频率上。11111 =

•••10000 = 最小频率DS41202E_CN 第24页 2007 Microchip Technology Inc.

PIC16F6843.5.3LFINTOSC3.5.5低频内部振荡器(LFINTOSC)是未经校准的31kHz内部时钟源。LFINTOSC的输出连接到后分频器和多路复用器(见图3-1)。通过软件对OSCCON寄存器的IRCF<2:0>位进行操作,选取31kHz。更多信息,请参见第3.5.4节“频率选择位(IRCF)”)。LFINTOSC还是上电延时定时器(PWRT)、看门狗定时器(WDT)以及故障保护时钟监控器(FSCM)的时钟源。选取31kHz(将OSCCON寄存器的IRCF<2:0>位设置为000)为系统时钟源(OSCCON寄存器的位SCS=1),或者使能以下任一项时,LFINTOSC将被使能:•双速启动(配置字寄存器的位IESO = 1且OSCCON寄存器的位IRCF=000)•上电延时定时器(PWRT)•看门狗定时器(WDT)•故障保护时钟监控器(FSCM)OSCCON寄存器的LF内部振荡器(LTS)位用于指示LFINTOSC是否稳定。HFINTOSC和LFINTOSC时钟切换时序当在LFINTOSC和HFINTOSC之间切换时,新的振荡器可能为了省电已经关闭(见图3-6)。在这种情况下,OSCCON寄存器的IRCF位被修改之后、频率选择生效之前,存在一个延时。OSCCON寄存器的LTS和HTS位将反映LFINTOSC和HFINTOSC振荡器的当前活动状态。频率选择时序如下:寄存器的IRCF<2:0>位被修改。如果新时钟是关闭的,开始一个时钟启动延时。时钟切换电路等待当前时钟下降沿的到来。CLKOUT保持为低,时钟切换电路等待新时钟上升沿的到来。现在CLKOUT连接到新时钟。OSCCON寄存器的HTS和LTS位按要求被更新。时钟切换完成。更多信息请参见图3-1。如果选取的内部振荡器速度在8MHz到125kHz之间,选取新频率不存在启动延时。这是因为新旧频率都来自经过后分频器和多路复用器的HFINTOSC。启动延时规范在第15.0节“电气特性”中与振荡器相关的表格中。3.5.4频率选择位(IRCF)8MHz HFINTOSC和31kHz LFINTOSC的输出连接到后分频器和多路复用器(见图3-1)。OSCCON寄存器的内部振荡器频率选择位IRCF<2:0>用于选择内部振荡器的频率输出。可通过软件选择以下8个频率之一:•8 MHz•••••••4 MHz(复位后的缺省值)2 MHz1 MHz500 kHz250 kHz125 kHz31 kHz注:任何复位后,OSCCON寄存器的IRCF<2:0>位将被置为110且频率选择置为4MHz。用户可修改IRCF位来选择其他频率。 2007 Microchip Technology 41202E_CN 第25页

PIC16F684图3-6:内部振荡器切换时序HFINTOSCHFINTOSCLFINTOSC(禁止FSCM和WDT)启振时间2周期同步运行LFINTOSCIRCF<2:0>系统时钟≠ 0= 0HFINTOSCHFINTOSCLFINTOSC(禁止FSCM或WDT)2周期同步运行LFINTOSCIRCF<2:0>系统时钟≠

0=

0LFINTOSCLFINTOSCHFINTOSC除非使能WDT或FSCM,否则LFINTOSC将关闭。起振时间2周期同步运行HFINTOSCIRCF<2:0>系统时钟= 0≠ 0DS41202E_CN 第26页 2007 Microchip Technology Inc.

PIC16F6843.6时钟切换通过软件对OSCCON寄存器的系统时钟选择(SCS)位进行操作,可将系统时钟源在外部和内部时钟源之间切换。当振荡器模块配置为LP、XT或HS模式时,振荡器起振定时器(OST)使能(见第3.4.1节“振荡器起振定时器(OST)”)。OST将暂停程序执行,直到完成1024次振荡计数。双速启动模式在OST计数时使用内部振荡器进行工作,使代码执行的延时最大限度地缩短。当OST计数到1024且OSCCON寄存器的OSTS位置1时,程序执行切换至外部振荡器。3.6.1系统时钟选择(SCS)位OSCCON寄存器的系统时钟选择(SCS)位选择用于CPU和外设的系统时钟源。•OSCCON寄存器的位SCS=0时,系统时钟源由配置字寄存器(CONFIG)中FOSC<2:0>位的配置决定。•OSCCON寄存器的位SCS=1时,根据OSCCON寄存器的IRCF<2:0>位所选的内部振荡器频率选取系统时钟源。复位后,OSCCON寄存器的SCS总是被清零。注:任何自动时钟切换(可能产生自双速启动或故障保护时钟监控器)都不更新OSCCON寄存器的SCS位。用户可监控OSCCON寄存器的OSTS位以确定当前的系统时钟源。3.7.1双速启动模式配置通过以下设定来配置双速启动模式:•配置字寄存器(CONFIG)中的位IESO=1;内部/外部切换位(使能双速启动模式)。•OSCCON寄存器的位SCS=0。•配置字寄存器(CONFIG)中的FOSC<2:0>配置为LP、XT或HS模式。在下列操作之后,进入双速启动模式:•上电复位(POR)且上电延时定时器(PWRT)延时结束(使能时)后,或者•从休眠状态唤醒。如果外部时钟振荡器配置为除LP、XT或HS模式以外的任一模式,那么双速启动将被禁止。这是因为POR后或从休眠中退出时,外部时钟振荡器不需要稳定时间。3.6.2振荡器起振超时状态(OSTS)位OSCCON寄存器的振荡器起振超时状态(OSTS)位用于指示系统时钟是来自外部时钟源,还是来自内部时钟源。外部时钟源由配置字寄存器(CONFIG)的FOSC<2:0>定义。OSTS还特别指明在LP、XT或HS模式下,振荡器起振定时器(OST)是否已超时。3.7.21.2.3.4.5.6.7.双速启动顺序3.7双速时钟启动模式双速启动模式通过最大限度地缩短外部振荡器起振与代码执行之间的延时,进一步节省了功耗。对于频繁使用休眠模式的应用,双速启动模式将在器件唤醒后除去外部振荡器的起振时间,从而可降低器件的总体功耗。该模式使得应用能够从休眠中唤醒,将INTOSC用作时钟源执行数条指令,然后再返回休眠状态而无需等待主振荡器的稳定。注:执行SLEEP指令将中止振荡器起振时间,并使OSCCON寄存器的OSTS位保持清零。从上电复位或休眠中唤醒。使用内部振荡器以OSCCON寄存器的IRCF<2:0>位设置的频率开始执行指令。OST使能,计数1024个时钟周期。OST超时,等待内部振荡器下降沿的到来。OSTS置1。系统时钟保持为低,直到新时钟下一个下降沿的到来(LP、XT或HS模式)。系统时钟切换到外部时钟源。 2007 Microchip Technology 41202E_CN 第27页

PIC16F6843.7.3检查双速时钟状态通过检查OSCCON寄存器的OSTS位的状态,可以确定单片机是否如配置字寄存器(CONFIG)中FOSC<2:0>位定义的那样运行于外部时钟源,抑或是运行于内部振荡器。图3-7:双速启动HFINTOSCTOSTOSC1OSC2程序计数器PC - N

PCPC + 1系统时钟DS41202E_CN 第28页 2007 Microchip Technology Inc.

PIC16F6843.8故障保护时钟监控器3.8.3故障保护条件清除故障保护时钟监控器(FSCM)使得器件在出现外部振荡器故障时仍能继续工作。FSCM能在振荡器起振延时定时器(OST)到期后的任一时刻检测振荡器故障。FSCM通过将配置字寄存器(CONFIG)中的FCMEN位置1来使能。FSCM可用于所有外部振荡模式(LP、XT、HS、EC、RC和RCIO)。复位、执行SLEEP指令或翻转OSCCON寄存器的SCS位后,故障保护条件被清除。OSCCON寄存器的SCS位被修改后,OST将重新启动。OST运行时,器件继续从OSCCON中选定的INTOSC进行操作。OST超时后,故障保护条件被清除,器件将从外部时钟源进行操作。必须先清除故障保护条件,才能清零OSFIF标志位。图3-8:FSCM框图时钟监控器锁存器(CM)(边沿触发)3.8.4复位或从休眠中唤醒外部时钟SQLFINTOSC振荡器31 kHz(~32 µs)÷ 64488 HZ(~2 ms)RQFSCM设计为能在振荡器起振延时定时器(OST)到期后的任一时刻检测振荡器故障。OST的使用场合为从休眠状态唤醒后以及任何类型的复位后。OST不能在EC或RC时钟模式下使用,所以一旦复位或唤醒完成,FSCM就处于激活状态。当FSCM被使能时,双速启动也被使能。因此,当OST运行时,器件总是处于代码执行阶段。注:由于振荡器起振时间的范围变化较大,在振荡器起振期间(即,从复位或休眠中退出时),故障保护电路不处于激活状态。经过一段适当的时间后,用户应检查OSCCON寄存器的OSTS位,以验证振荡器是否已成功起振以及系统时钟是否切换成功。采样时钟检测到时钟故障3.8.1故障保护检测FSCM模块通过将外部振荡器与FSCM采样时钟比较来检测振荡器故障。LFINTOSC除以64,就产生了采样时钟。请参见图3-8。故障检测器内部有一个锁存器。在外部时钟的每个下降沿,锁存器被置1。在采样时钟的每个上升沿,锁存器被清零。如果采样时钟的整个半周期流逝而主时钟依然未进入低电平,就检测到故障。3.8.2故障保护操作当外部时钟出现故障时,FSCM将器件时钟切换到内部时钟源,并将PIR2寄存器的OSFIF标志位置1。如果在PIR2寄存器的OSFIE位置1的同时将该标志位置1,将产生中断。器件固件随后会采取措施减轻可能由故障时钟所产生的问题。系统时钟将继续来自内部时钟源,直到器件固件成功重启外部振荡器并切换回外部操作。FSCM所选的内部时钟源由OSCCON寄存器的IRCF<2:0>位决定。这使内部振荡器可以在故障发生前就得以配置。 2007 Microchip Technology 41202E_CN 第29页

PIC16F684图3-9:FSCM时序图采样时钟振荡器故障系统时钟输出时钟监视器输出(Q)OSCFIF检测到故障检测注:检测检测系统时钟通常比采样时钟频率高很多。本例中为便于说明选用相对频率。表3-2:名称CONFIG(2)OSCCONOSCTUNEPIE1PIR1与时钟源相关的寄存器汇总Bit 7CPD————Bit 6CPIRCF2—ADIEADIFBit 5MCLREIRCF1—RCIERCIFBit 4PWRTEIRCF0TUN4TXIETXIFBit 3WDTEOSTSTUN3SSPIESSPIFBit 2FOSC2HTSTUN2CCP1IECCP1IFBit 1FOSC1LTSTUN1TMR2IETMR2IFBit 0FOSC0SCSTUN0TMR1IETMR1IFPOR和BOR时的值—-110 x000---0 0000-000 0000-000 0000所有其他复位值(1)—-110 x000---u uuuu-000 0000-000 0000图注:x = 未知,u = 不变,– = 未实现单元读为0。振荡器不使用阴影单元。注1:其他(非上电)复位包括正常工作期间的MCLR复位和看门狗定时器复位。2:所有寄存器位的操作请参见配置字寄存器(寄存器12-1)。DS41202E_CN 第30页 2007 Microchip Technology Inc.

PIC16F6844.0I/O端口此系列器件共有12个通用I/O引脚。根据使能的外设不同,有些(或全部)引脚不能用作通用I/O。通常使能了一个外设后,相关的引脚就不能用作通用I/O引脚了。即使在PORTA引脚被用作模拟输入的时候,TRISA寄存器仍然控制PORTA引脚的方向。在将它们用作模拟输入时,用户必须确保TRISA寄存器中的位保持为置1状态。配置为模拟输入的I/O引脚始终读为0。注:必须对ANSEL和CMCON0寄存器进行初始化以将模拟通道配置为数字输入通道。配置为模拟输入的引脚读为0。4.1PORTA和TRISA寄存器例 4-1: BCF CLRF MOVLW MOVWF BSF CLRF

MOVLW MOVWF BCFPORTA是6位宽的双向端口。PORTA对应的数据方向寄存器是TRISA(寄存器4-2)。将TRISA位置1(= 1)可以使对应的PORTA引脚作为输入引脚(即禁止相应的输出驱动器)。将TRISA位清零(= 0)将使对应的PORTA引脚作为输出引脚(即使能输出驱动器并将输出锁存器的内容置于所选的引脚上)。RA3是个例外,它只能作为输入引脚,TRIS位始终读为1。例4-1给出了初始化PORTA的方法。读PORTA寄存器(寄存器4-1)将读取引脚的状态而写该寄存器将会写入端口锁存器。所有写操作都是读-修改-写操作。因此,写一个端口就意味着读该端口的引脚电平,修改读到的值,然后再将改好的值写入端口数据锁存器。当MCLRE = 1时,RA3读为0。

初始化PORTASTATUS,RP0PORTA07hCMCON0STATUS,RP0ANSEL0ChTRISA;Bank 0;Init PORTA;Set RA<2:0> to

;digital I/O;Bank 1;digital I/O;Set RA<3:2> as inputs;and set RA<5:4,1:0>;as outputsSTATUS,RP0;Bank 0寄存器4-1:U-0—bit 7图注:R = 可读位-n = POR时的值bit 7-6bit 5-0PORTA:PORTA寄存器U-0—R/W-xRA5R/W-0RA4R-xRA3R/W-0RA2R/W-0RA1R/W-0RA0bit 0W = 可写位U = 未实现位,读为0x = 未知1 = 置1 0=清零未实现:读为0RA<5:0>:PORTA I/O引脚位1 = PORTA引脚电平> VIH0 = PORTA引脚电平< VIL

寄存器4-2:U-0—bit 7图注:R = 可读位-n = POR时的值bit 7-6bit 5-0TRISA:PORTA 三态寄存器U-0—R/W-1TRISA5R/W-1TRISA4R-1TRISA3R/W-1TRISA2R/W-1TRISA1R/W-1TRISA0bit 0W = 可写位U = 未实现位,读为0x = 未知1 = 置1 0=清零未实现:读为0TRISA<5:0>:PORTA三态控制位1 = PORTA引脚配置为输入(三态)0 = PORTA引脚配置为输出注1:2:TRISA<3>始终读为1。在XT、HS和LP振荡模式下,TRISA<5:4>始终读为1。 2007 Microchip Technology 41202E_CN 第31页

PIC16F6844.2其他引脚功能4.2.3电平变化中断PIC18F1220/1320上的每一个PORTA引脚都具有电平变化中断和弱上拉功能。RA0具有超低功耗唤醒功能。下面三个小节将介绍这些功能。每一个PORTA引脚均可分别配置为电平变化中断引脚。控制位IOCAx使能或禁止每个引脚的中断功能。请参见寄存器4-4。在上电复位时禁止电平变化中断。对于已允许电平变化中断的引脚,则将该引脚上的值同上一次读PORTA时锁存的值进行比较。将上一次“不匹配”的输出一起作逻辑或运算,以便将INTCON寄存器(寄存器2-3)中PORTA电平变化中断标志位(RAIF)置1。该中断能唤醒休眠下的器件。用户在中断服务程序中通过以下方式清除中断:a)b)对PORTA进行读或写操作。这将结束引脚电平不匹配条件。将标志位RAIF清零。4.2.1ANSEL寄存器ANSEL寄存器用于将I/O引脚的输入模式配置为模拟。将相应的ANSEL位置为高电平将使对该引脚的所有读操作结果为0,并使该引脚的模拟功能正常进行。ANSEL位的状态对数字输出功能没有影响。TRIS清零且ANSEL置1的引脚仍将作为数字输出工作,但其输出模式将为模拟。在对受影响端口执行读–修改–写指令时,这将导致意外的操作。4.2.2弱上拉每一个PORTA引脚(除RA3)具有各自的可配置内部弱上拉。控制位WPUAx使能或禁止每一个弱上拉。请参见寄存器4-5。当将端口引脚配置为输出时,其弱上拉电路会自动切断。在上电复位时,由RAPU位(OPTION_REG<7>)禁止上拉功能。在RA3为I/O且自动启动RA3的弱上拉功能。配置为MCLR并禁止时,MCLR上拉不受软件控制。电平不匹配条件会继续将RAIF标志位置1。而读PORTA将结束不匹配条件并允许将RAIF标志位清零。锁存器将保持最后一次读取的值不受MCLR和欠压复位的影响。在这些复位之后,如果出现电平不匹配,RAIF标志位将继续被置1。

注:在执行任何PORTA操作时如果I/O引脚的电平发生变化,则RAIF中断标志位可能不会被置1。

寄存器4-3:R/W-1ANS7bit 7ANSEL:模拟选择寄存器R/W-1ANS6R/W-1ANS5R/W-1ANS4R/W-1ANS3R/W-1ANS2R/W-1ANS1R/W-1ANS0bit 0图注:R = 可读位-n = POR时的值bit 7-0W = 可写位U = 未实现位,读为0x = 未知1 = 置1 0=清零ANS<7:0>:模拟选择位在AN<7:0>引脚上分别进行模拟或数字功能的模拟选择。1 = 模拟输入。引脚被分配为模拟输入(1)。0 = 数字I/O。引脚被分配给端口或特殊功能。1:将某引脚设置为模拟输入将自动禁止数字输入电路、弱上拉以及电平变化中断(如果有的话)。相应TRIS位必须设置为输入模式以允许对该引脚的电压进行外部控制。注寄存器4-4:U-0—bit 7WPUA:弱上拉PORTA寄存器U-0—R/W-1WPUA5R/W-1WPUA4U-0—R/W-1WPUA2R/W-1WPUA1R/W-1WPUA0bit 0图注:R = 可读位W = 可写位U = 未实现位,读为0DS41202E_CN 第32页 2007 Microchip Technology Inc.

PIC16F684寄存器4-4:-n = POR时的值bit 7-6bit 5-4WPUA:弱上拉PORTA寄存器1 = 置1 0=清零x = 未知未实现:读为0WPUA<5:4>:弱上拉控制位1 = 使能上拉0 = 禁止上拉未实现:读为0WPUA<2:0>:弱上拉控制位1 = 使能上拉0 = 禁止上拉必须使能OPTION寄存器的全局RABPU位以使能各个上拉。如果引脚处于输出模式(TRISA = 0),则弱上拉器件被自动禁止。在配置字寄存器中配置为MCLR时RA3上拉被使能,配置为I/O时上拉被禁止。在XT、HS和LP振荡模式下WPUA<5:4>始终读为1。bit 3bit 2-01:2:3:4:

注寄存器4-5:U-0—bit 7IOCA: 电平变化中断PORTA寄存器U-0—R/W-0IOCA5R/W-0IOCA4R/W-0IOCA3R/W-0IOCA2R/W-0IOCA1R/W-0IOCA0bit 0图注:R = 可读位-n = POR时的值bit 7-6bit 5-0W = 可写位U = 未实现位,读为0x = 未知1 = 置1 0=清零未实现:读为0IOCA<5:0>:电平变化中断PORTA控制位1 = 允许电平变化中断0 = 禁止电平变化中断1:必须允许全局中断允许(GIE)以使各中断被识别。2:在XT、HS和LP振荡模式下IOCA<5:4>始终读为1。注 2007 Microchip Technology 41202E_CN 第33页

PIC16F6844.2.4超低功耗唤醒注:要了解更多信息,请参见应用笔记AN879“Using the Microchip Ultra Low-PowerWake-up Module”(DS00879)。RA0上的超低功耗唤醒允许电压缓慢跌落,从而可在不消耗额外电流的情况下,产生RA0电平变化中断。通过将ULPWUE位(PCON<5>)置1选择该模式。这将产生一个很小的灌电流,可用于将RA0上的电容放电。要使用该功能,RA0引脚应先被配置为输出高电平以对电容充电,允许RA0的电平变化中断并且RA0要配置为输入引脚。将ULPWUE置1开始放电,执行SLEEP指令。当RA0上的电压下降到VIL后,器件将被唤醒并执行下一条指令。如果INTCON寄存器的GIE位置1,器件将调用中断服务程序(0004h)。更多信息,请参见第4.2.3节“电平变化中断”和第12.4.3节“PORTA电平变化中断”。该功能提供了低功耗技术,可周期性地唤醒休眠下的器件。延时取决于RA0上RC电路的放电时间。要了解如何初始化超低功耗唤醒模块,请参见例4-2。串联电阻提供了RA0引脚的过电流保护功能,允许在软件中对延时进行校准(见图4-1)。可用定时器测量电容的充放电时间。然后调整充电时间以提供所需的中断延时。该技术可补偿温度、电压和元件精度所带来的影响。超低功耗唤醒外设还可以配置为简单可编程低压检测设备或温度传感器。例4-2:BANKSELMOVLWMOVWFBANKSELBCFBCFBANKSELBSFCALLBANKSELBSFBSFBSFMOVLWMOVWFSLEEP超低功耗唤醒的初始化CMCON0;H’7’;Turn offCMCON0;comparatorsANSEL;ANSEL,0;RA0 to digital I/OTRISA,0;Output high toPORTA;PORTA,0;charge capacitorCapDelay;PCON;PCON,ULPWUE;Enable ULP Wake-upIOCA,0;Select RA0 IOCTRISA,0;RA0 to inputB’10001000’;Enable interruptINTCON; and clear flag;Wait for IOCDS41202E_CN 第34页 2007 Microchip Technology Inc.

PIC16F6844.2.5引脚说明和引脚图4.2.5.2RA1/AN1/C1IN-/VREF/ICSPCLK每个PORTA引脚都与其他功能复用。这里将简要说明引脚及其复合功能。各功能如比较器或A/D转换器(A/D Converter,ADC)的具体信息,请参见本数据手册中的相关章节。图4-2给出了此引脚的引脚图。RA1/AN1/C1IN-/VREF/ICSPCLK引脚可配置为下列功能之一:•••••通用I/O连接至ADC的模拟输入连接至比较器的模拟输入ADC的参考电压输入在线串行编程时钟4.2.5.1RA0/AN0/C1IN+/ICSPDAT/ULPWU图4-1给出了此引脚的引脚图。RA0/AN0/C1IN+/ICSPDAT/ULPWU引脚可配置为下列功能之一:••••通用I/O连接至ADC的模拟输入连接至比较器的模拟输入在线串行编程(In-Circuit Serial

Programming™)数据•超低功耗唤醒的模拟输入图4-1:RA0框图模拟(1)输入模式VDD数据总线D写WPUA读WPUAD写PORTAQI/O引脚VSS-+D写TRISA读TRISA读PORTAD写IOCA读IOCAQQDENQDEN读PORTA至比较器至A/D转换器注1:模拟输入模式由比较器模式和ANSEL决定。Q3QIULP0模拟(1)输入模式1VSSULPWUEVTQRAPUVDD弱CKQCKQCKQCKQ电平变化中断 2007 Microchip Technology 41202E_CN 第35页

PIC16F684图4-2:数据总线写WPUA读WPUARA1框图模拟(1)输入模式VDD弱RAPU4.2.5.3RA2/AN2/T0CKI/INT/C1OUT图4-3给出了此引脚的引脚图。RA2/AN2/T0CKI/INT/C1OUT引脚可配置为下列功能之一:•••••通用I/O连接至ADC的模拟输入TMR0的时钟输入外部边沿触发的中断来自比较器1的数字输出DQCKQD写PORTAQVDD图4-3:数据总线I/O引脚写WPUA读WPUADRA2框图QQRAPUC1OUT使能DQQC1OUT10I/O引脚VDD模拟(1)输入模式VDD弱CKQD写TRISA读TRISA读PORTAD写IOCA读IOCAQVSS模拟输入模式(1)CKCKQQQDENQDENQ3写PORTACKCKQD写TRISA读TRISA读PORTAD写IOCA读IOCACKCKQQ模拟(1)输入模式VSS电平变化中断读PORTA至比较器至A/D转换器QQQDENQDENQ3注1:模拟输入模式由比较器模式和ANSEL决定。电平变化中断读PORTA至Timer0至INT至A/D转换器注1:模拟输入模式由ANSEL产生。DS41202E_CN 第36页 2007 Microchip Technology Inc.

PIC16F6844.2.5.4RA3/MCLR/VPP4.2.5.5RA4/AN3/T1G/OSC2/CLKOUT图4-4给出了此引脚的引脚图。RA3/MCLR/VPP引脚可配置为下列功能之一:•通用输入•带弱上拉的主清零复位图4-5给出了此引脚的引脚图。RA4/AN3/T1G/OSC2/CLKOUT引脚可配置为下列功能之一:•••••通用I/O连接至ADC的模拟输入Timer1门控(计数使能)晶振/谐振器连接时钟输出图4-4:RA3框图VDDMCLRE弱图4-5:输入引脚RA4框图模拟(3)输入模式CLK(1)模式VDD弱RAPU振荡器电路CLKOUT使能DQQCLKOUT使能DQQVSSINTOSC/RC/EC(2)CLKOUT使能模拟输入模式FOSC/410I/O引脚VDD数据总线读TRISA读PORTAD写IOCA读IOCACKQQ复位VSSMCLRE数据总线写WPUA读WPUADCKQQMCLREVSSQDENQ3OSC1QDEN写PORTA电平变化中断CK读PORTA写TRISA读TRISA读PORTACKD写IOCA读IOCACKQQQDENQDENQ3电平变化中断读PORTA

至T1G至A/D转换器注1:CLK模式为XT、HS、LP和LPTMR1,且CLKOUT使能。2:具有CLKOUT选项。3:模拟输入模式来自ANSEL。 2007 Microchip Technology 41202E_CN 第37页

PIC16F6844.2.5.6RA5/T1CKI/OSC1/CLKIN图4-6给出了此引脚的引脚图。RA5/T1CKI/OSC1/CLKIN引脚可配置为下列功能之一:••••通用I/OTMR1时钟输入晶振/谐振器连接时钟输入图4-6:RA5框图INTOSC模式数据总线写WPUA读WPUATMR1LPEN(1)VDD弱DCKQQRAPU振荡器电路OSC2D写PORTACKQQVDDD写TRISA读TRISA读PORTAD写IOCA读IOCACKCKQQINTOSC模式VSSI/O引脚QQQDENQ3QDEN电平变化中断读PORTA

至Timer1

注1:Timer1的 LP振荡器使能。DS41202E_CN 第38页 2007 Microchip Technology Inc.

PIC16F684表4-1:名称ANSELCMCON0PCON与PORTA相关的寄存器汇总

Bit 7ANS7C2OUT—Bit 6ANS6C1OUT—Bit 5ANS5C2INVULPWUEBit 4ANS4C1INVSBORENBit 3ANS3CIS—Bit 2ANS2CM2—Bit 1ANS1CM1PORBit 0ANS0CM0BORPOR和BOR时的值1111 11110000 0000--01 --qq所有其他复位值1111 11110000 0000--0u --uuINTCONIOCAOPTION_REGPORTATRISAWPUA图注:GIE—RAPU———PEIE—INTEDG———T0IEIOCA5T0CSRA5TRISA5WPUA5INTEIOCA4T0SERA4TRISA4WPUA4RAIEIOCA3PSARA3TRISA3—T0IFIOCA2PS2RA2TRISA2WPUA2INTFIOCA1PS1RA1TRISA1WPUA1RAIFIOCA0PS0RA0TRISA0WPUA00000 0000--00 00001111 1111--x0 x000--11 1111--11 -1110000 0000--00 00001111 1111--uu uu00--11 1111--11 -111x = 未知,u = 不变,– = 未实现单元读为0。PORTA不使用阴影单元。 2007 Microchip Technology 41202E_CN 第39页

PIC16F6844.3PORTC例4-3:初始化PORTC;;Init PORTC;Set RC<4,1:0> to

;digital I/O;;digital I/O;Set RC<3:2> as inputs;and set RC<5:4,1:0>;as outputs;Bank 0PORTC是由6个双向引脚组成的通用I/O。引脚可以配置为I/O或接到A/D转换器(ADC)或比较器的模拟输入。要了解各个功能的特定信息(如CCP或ADC),请参见本数据手册的相应章节。注:必须对ANSEL和CMCON0寄存器进行初始化以将模拟通道配置为数字输入通道。配置为模拟输入的引脚读为0。BANKSELPORTCCLRFPORTCMOVLW07hMOVWFCMCON0BANKSELANSELCLRF ANSELMOVLW0ChMOVWFTRISCBCFSTATUS,RP0

寄存器4-6:U-0—bit 7PORTC:PORTC寄存器U-0—R/W-xRC5R/W-xRC4R/W-0RC3R/W-0RC2R/W-0RC1R/W-0RC0bit 0图注:R = 可读位-n = POR时的值bit 7-6bit 5-0W = 可写位U = 未实现位,读为0x = 未知1 = 置1 0=清零未实现:读为0RC<5:0>: PORTC I/O引脚位1 = PORTC引脚电平 > VIH0 = PORTC引脚电平 < VIL

寄存器4-7:U-0—bit 7TRISC:PORTC三态寄存器U-0—R/W-1TRISC5R/W-1TRISC4R/W-1TRISC3R/W-1TRISC2R/W-1TRISC1R/W-1TRISC0bit 0图注:R = 可读位-n = POR时的值bit 7-6bit 5-0W = 可写位U = 未实现位,读为0x = 未知1 = 置1 0=清零未实现:读为0TRISC<5:0>:PORTC三态控制位1 = PORTC引脚配置为输入(三态)0 = PORTC引脚配置为输出DS41202E_CN 第40页 2007 Microchip Technology Inc.

PIC16F6844.3.1RC0/AN4/C2IN+4.3.3RC2/AN6/P1DRC0引脚可以配置为下列功能之一:• 通用I/O• ADC的模拟输入•比较器的模拟输入RC2引脚可以配置为下列功能之一:• 通用I/O• ADC的模拟输入•来自增强型CCP的数字输出4.3.2 RC1/AN5/C2IN-4.3.4RC3/AN7/P1CRC1引脚可以配置为下列功能之一:• 通用I/O• ADC的模拟输入•比较器的模拟输入RC3引脚可以配置为下列功能之一:• 通用I/O• ADC的模拟输入•来自增强型CCP的数字输出图4-7:数据总线RC0和RC1框图图4-8:数据总线VDD写PORTCI/O引脚RC2和RC3框图CCPOUT使能DCKQQCCPOUT10DQQ模拟输入模式(1)VSSI/O引脚VDDD写PORTCCKQQD写TRISC读TRISC读PORTCCKQQ模拟输入模式(1)VSS写TRISC读TRISC读PORTCCK至比较器至A/D转换器注注1:模拟输入模式来自于ANSEL或比较器模式。至A/D转换器1:模拟输入模式来自ANSEL。 2007 Microchip Technology 41202E_CN 第41页

PIC16F6844.3.5RC4/C2OUT/P1B 4.3.6RC5/CCP1/P1A

RC4引脚可以配置为下列功能之一:• 通用I/O• 来自比较器的数字输出• 来自增强型CCP的数字输出注:使能C2OUT和P1B将在RC4上引发冲突,造成不可预期的结果。所以,如果使能了C2OUT,则不能将ECCP用于半桥或全桥模式,反之亦然。RC5引脚可以配置为下列功能之一:• 通用I/O•来自增强型CCP的数字输入/输出图4-10:数据总线RC5引脚框图D写PORTCCKQQCCP1OUT使能CCP1OUT10VDD图4-9:RC4框图C2OUT使能CCPOUT使能C2OUT使能C2OUTCCPOUT ENCCPOUT数据总线D写PORTCQVSS10I/O引脚VDD写TRISC读TRISC读PORTCI/O引脚DCKQQVSSCKQ至增强型CCPD写TRISC读TRISC读PORTCQCKQ注1:端口/外设选择信号选择是端口数据还是外设输出。表4-2:名称ANSELCMCON0PORTCTRISC图注:Bit 7ANS7与PORTC相关的寄存器汇总

Bit 6ANS6C1OUT——Bit 5ANS5C2INVRC5TRISC5Bit 4ANS4C1INVRC4TRISC4Bit 3ANS3CISRC3TRISC3Bit 2ANS2CM2RC2TRISC2Bit 1ANS1CM1RC1TRISC1Bit 0ANS0CM0RC0TRISC0POR和BOR时的值1111 11110000 0000--xx 0000--11 1111所有其他复位值1111 11110000 0000--uu uu00--11 1111C2OUT——x = 未知,u = 不变,– = 未实现单元读为0。PORTC不使用阴影单元。DS41202E_CN 第42页 2007 Microchip Technology Inc.

PIC16F6845.0•••••TIMER0模块5.1Timer0的工作原理Timer0模块是8位定时器/计数器,具备以下特性:8位定时器/计数器寄存器(TMR0)8位预分频器(与看门狗定时器共用)可编程内部或外部时钟源可编程外部时钟边沿选择溢出中断作为定时器使用时,Timer0模块可用作8位定时器或8位计数器。5.1.18位定时器模式作为定时器使用时,Timer0模块将在每个指令周期递增(无预分频器)。将OPTION寄存器的T0CS位清零选择定时器模式。当TMR0被写入时,写入后将立即禁止2周期递增。注:在TMR0被写入时,为了计入两个指令周期的延时,可以调整写入TMR0寄存器的值。图5-1是Timer0模块的框图。5.1.28位计数器模式作为计数器使用时,Timer0模块将在T0CKI引脚的每个上升沿递增。递增边沿由OPTION寄存器的T0SE位决定。将OPTION寄存器的T0CS位置1选择计数器模式。

图5-1:FOSC/4TIMER0/WDT预分频器的框图

数据总线011T0CKI引脚T0SET0CS1808位预分频器0溢出时将标志位T0IF置1同步2个周期TMR08PSAWDTESWDTENPSAPS<2:0>16位预分频器31kHzINTOSC看门狗定时器WDTPS<3:0>注1:T0SE、T0CS、PSA和PS<2:0>均为OPTION寄存器中的位。2:SWDTEN和WDTPS<3:0>为WDTCON寄存器中的位。3:WDTE位在配置字寄存器中。1WDT超时160PSA 2007 Microchip Technology 41202E_CN 第43页

PIC16F6845.1.3软件可编程预分频器Timer0或看门狗定时器(WDT)之一可使用一个软件可编程预分频器,但两者不能同时使用。预分频器的分配由OPTION寄存器的PSA位控制。要将预分频器分配给Timer0,必须将PSA位清零。Timer0模块的预分频比有8种选项,从1:2至1:256。预分频比可通过OPTION寄存器的PS<2:0>位进行选择。要使Timer0模块得到1:1的预分频比,必须将预分频器分配给WDT模块。预分频器不可读写。当预分频器被分配给Timer0模块时,所有写入TMR0寄存器的指令均会将预分频器清零。当预分频器被分配给WDT时,一条CLRWDT指令将同时清零预分频器和WDT。当将预分频器从WDT切换到Timer0模块时,必须执行以下指令序列(见例5-2)。例5-2:CLRWDT更改预分频器(WDT→TIMER0);Clear WDT and;prescalerBANKSELOPTION_REG;MOVLWb’11110000’;Mask TMR0 select andANDWFOPTION_REG,W;prescaler bits

IORLWb’00000011’;Set prescale to 1:16

MOVWFOPTION_REG;5.1.4TIMER0中断5.1.3.1在Timer0和WDT模块间切换预分频器由于预分频器可分配给Timer0或WDT,因此在切换预分频比时可能产生不想要的器件复位。当把预分频器从Timer0切换到WDT模块时,必须执行例5-1所示的指令序列。TM0寄存器从FFh溢出到00h时,Timer0将产生中断。INTCON寄存器的T0IF中断标志位将在每次TMR0寄存器溢出时被置1,无论是否允许了Timer0中断。必须用软件将T0IF位清零。Timer0中断允许位是INTCON寄存器的T0IE位。注:由于定时器在休眠时被冻结,因此Timer0中断无法将处理器从休眠中唤醒。例5-1:BANKSELTMR0CLRWDTCLRFTMR0更改预分频器(TIMER0→WDT)5.1.5TIMER0与外部时钟配合使用;;Clear WDT;Clear TMR0 and;prescalerBANKSELOPTION_REG;BSFOPTION_REG,PSA;Select WDTCLRWDT;;MOVLWb’11111000’;Mask prescalerANDWFOPTION_REG,W;bitsIORLWb’00000101’;Set WDT prescalerMOVWFOPTION_REG;to 1:32Timer0处理计数器模式时,T0CKI输入和Timer0寄存器的同步是通过采样内部相位时钟的Q2和Q4周期实现的。因此,外部时钟源的高低周期必须满足第15.0节“电气特性”中所列的时序要求。DS41202E_CN 第44页 2007 Microchip Technology Inc.

PIC16F684

寄存器5-1:R/W-1RAPUbit 7OPTION_REG:选项寄存器R/W-1INTEDGR/W-1T0CSR/W-1T0SER/W-1PSAR/W-1PS2R/W-1PS1R/W-1PS0bit 0图注:R = 可读位-n = POR时的值bit 7U = 未实现位,读为01 = 置1 0=清零W = 可写位x = 未知RABPU: PORTA/PORTB上拉使能位1 = 使能PORTA/PORTB上拉0 = PORTA/PORTB上拉由各端口锁存器值使能INTEDG:中断沿选择位1 = 在INT引脚的上升沿中断0 = 在INT引脚的下降沿中断T0CS: TMR0时钟源选择位1 = T0CKI引脚的跳变0 = 内部指令周期时钟(FOSC/4)T0SE: TMR0时钟源边沿选择位1 = 在T0CKI引脚的下降沿递增0 = 在T0CKI引脚的上升沿递增PSA: 预分频器分配位1 = 预分频器分配给WDT0 = 预分频器分配给Timer0模块PS<2:0>: 预分频比选择位 位值1TMR0分频比1 : 21 : 41 : 81 : 161 : 321 : 641 : 1281 : 256WDT分频比1 : 11 : 21 : 41 : 81 : 161 : 321 : 641 : 128bit 6bit 5bit 4bit 3bit 2-0注1:有一个专用的16位WDT 后分频器。更多信息请参见第12.6节“看门狗定时器(WDT)”。表5-1:名称TMR0INTCONOPTION_REGTRISA图注:与TIMER0Bit 7相关的寄存器汇总Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0POR和BOR时的值所有其他复位值Bit 6Timer0模块寄存器GIEPEIET0IERAPUINTEDG——T0CSxxxx xxxxuuuu uuuuINTET0SERAIEPSAT0IFPS2INTFPS1RAIFPS00000 00000000 00001111 11111111 1111TRISA5TRISA4TRISA3TRISA2TRISA1TRISA0--11 1111--11 1111– = 未实现单元,读为0,u = 不变,x = 未知。Timer0模块不使用阴影单元。 2007 Microchip Technology 41202E_CN 第45页

PIC16F684注:DS41202E_CN 第46页 2007 Microchip Technology Inc.

PIC16F6846.0带门控的TIMER1模块6.1Timer1的工作原理Timer1模块是16位定时器/计数器,具备以下特性:•一对16位定时器/计数器寄存器(TMR1H:TMR1L)•可编程内部或外部时钟源•3位预分频器•可选LP振荡器•同步或异步操作•通过比较器或T1G引脚的Timer1门控(计数使能)•溢出中断•溢出时唤醒(仅限外部时钟且异步模式时)•捕捉/比较功能的时基•特殊事件触发(带ECCP)•比较器输出与Timer1时钟同步图6-1是Timer1模块的框图。Timer1模块是16位递增计数器,通过一对寄存器TMR1H:TMR1L访问。对TMR1H或TMR1L的写操作将直接更新计数器。与内部时钟源配合使用时,该模块为定时器。与外部时钟源配合使用时,该模块可用作定时器或计数器。6.2选择时钟源T1CON寄存器的TMR1CS位用于选择时钟源。当TMR1CS = 0时,时钟源为FOSC/4。TMR1CS = 1时,时钟源由外部提供。时钟源FOSC/4T1CKI引脚TMR1CS01图6-1:TIMER1框图

TMR1GETMR1ON溢出时将标志位TMR1IF置1至C2比较器模块Timer1时钟EN01振荡器T1GINVTMR1(1)TMR1HTMR1L同步时钟输入OSC1/T1CKI*FOSC/4内部时钟T1SYNC10预分频器1, 2, 4, 82T1CKPS<1:0>TMR1CS1同步检测(2)OSC2/T1GT1OSCENFOSC = 100FOSC = 000T1GSS休眠SYNCC2OUT0*注ST缓冲器在使用LP振荡器时为低功耗型,使用T1CKI时为高速型。1:Timer1寄存器在上升沿递增。2:休眠时不进行同步。 2007 Microchip Technology 41202E_CN 第47页


本文发布于:2024-09-21 05:44:18,感谢您对本站的认可!

本文链接:https://www.17tex.com/fanyi/7888.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:寄存器   时钟   模式   引脚   中断   输入   功能
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议