MICROCHIP PIC12F629 675单片机 数据手册


2023年12月17日发(作者:金山词霸翻译在线)

深圳市粤原点科技有限公司(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小时在线产品咨询: PIC12F629/675数据手册8引脚闪存8位CMOS单片机 2004 Microchip Technology 41190C_CN

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

Technology Inc.在美国的注册商标。Analog-for-the-Digital Age、Application Maestro、dsPICDEM、、dsPICworks、ECAN、ECONOMONITOR、FanSense、FlexROM、fuzzyLAB、In-Circuit Serial Programming、ICSP、ICEPIC、Migratable Memory、MPASM、MPLIB、MPLINK、MPSIM、PICkit、PICDEM、、PICLAB、PICtail、PowerCal、PowerInfo、PowerMate、PowerTool、rfLAB、rfPICDEM、Select Mode、Smart

Serial、SmartTel和Total Endurance 均为Microchip

Technology Inc.在美国和其它国家或地区的商标。SQTP是Microchip Technology Inc.在美国的服务标记。在此提及的所有其它商标均为各持有公司所有。© 2004, Microchip Technology Inc。版权所有。Microchip

位于美国亚利桑那州Chandler和Tempe及位于加利福尼亚州Mountain View的全球总部、设计中心和晶圆生产厂均于2003年10月通过了ISO/TS-16949:2002

质量体系认证。公司在PICmicro®

8位单片机、KEELOQ®跳码器件、串行EEPROM、单片机外设、非易失性存储器和模拟产品方面的质量体系流程均符合ISO/TS-16949:2002。此外,Microchip在开发系统的设计和生产方面的质量体系也已通过了ISO

9001:2000

认证。DS41190C_CN 第 ii 页 2004 Microchip Technology Inc.

PIC12F629/6758引脚闪存8位CMOS单片机高性能的RISC CPU• 仅需学习35条指令-除了跳转指令以外所有指令都是单周期的• 工作速度:-DC - 20MHz振荡器/时钟输入-DC - 200ns指令周期• 中断功能• 8级深度硬件堆栈• 直接、间接和相对寻址方式低功耗功能:• 待机电流:-当电压为2.0V时,典型值为1nA

• 工作电流:-当频率为32kHz时,典型值为8.5µA

-当频率为1MHz时,典型值为100µA

• 看门狗定时器电流:-当电压为2.0V时,典型值为300nA

• Timer1振荡器电流:-当频率为32kHz、电压为2.0V时,典型值为4µA

特殊单片机功能:• 可选择内部和外部振荡器-高精度内部4MHz振荡器,其出厂时精度已校准为±1%-可使用晶振和谐振器作为外部振荡器-电压典型值为3.0V时,将CPU从休眠模式唤醒需5µs• 省电休眠模式• 宽工作电压范围,从2.0V到5.5V• 工业级和扩展级温度范围• 低功耗上电复位(POR)• 上电延时定时器(PWRT)和振荡器起振定时器(OST)• 欠压检测(BOD)• 带有独立振荡器的看门狗定时器,可以保证可靠的运行• 复用MCLR输入引脚• 引脚电平变化可触发中断• 独立的可编程弱上拉功能• 可编程代码保护• 高耐久性的闪存/EEPROM存储单元-闪存耐写次数达100,000次-EEPROM耐写次数达1,000,000次-闪存/数据EEPROM的数据保持期>40年程序存储器器件PIC12F629PIC12F675闪存(字)10241024数据存储器 SRAM(字节)6464EEPROM(字节)128128外设功能:• 6个具有独立方向控制功能的I/O引脚• 高灌/拉电流能力,可直接驱动LED• 模拟比较器模块带有:-一个模拟比较器-片上可编程比较器参考电压(CVREF)模块-来自器件输入引脚的可编程输入复用-可外部访问比较器输出• 模数转换器模块 (PIC12F675):-10位分辨率-可编程的4通道输入-参考电压输入• Timer0:带有8位可编程预分频器的8位定时器/计数器• 增强的Timer1:-带有预分频器的16位定时器/计数器-外部选通输入模式-如果已选用INTOSC模式的话,那么在LP模式中可选择OSC1和OSC2作为Timer1的振荡器• 通过两个引脚可实现在线串行编程(ICSPTM)

I/O6610位A/D转换器(通道)-4比较器118/16位定时器1/11/1*8位8引脚器件受Microchip的低引脚数专利(Low Pin Count Patent)保护: 美国专利号为5847450。其它美国国内或国外专利可能已获批准或正在申请之中。 2004 Microchip Technology 41190C_CN第1页

PIC12F629/675引脚示意图8引脚 PDIP、SOIC和 DFN-S封装形式VDDGP5/T1CKI/OSC1/CLKINGP4/T1G/OSC2/CLKOUTGP3/MCLR/VPP18VSSGP0/CIN+/ICSPDATGP1/CIN-/ICSPCLKGP2/T0CKI/INT/COUTPIC12F629234765VDDGP5/T1CKI/OSC1/CLKINGP4/AN3/T1G/OSC2/CLKOUTGP3/MCLR/VPP12348765VSSGP0/AN0/CIN+/ICSPDATGP1/AN1/CIN-/VREF/ICSPCLKGP2/AN2/T0CKI/INT/COUTPIC12F675DS41190C_CN第 2页

 2004 Microchip Technology Inc.

PIC12F629/675目录1.0器件概述...................................................................................................................................................................................... 52.0存储器组织结构........................................................................................................................................................................... 73.0GPIO端口..................................................................................................................................................................................194.0Timer0模块............................................................................................................................................................................... 275.0带选通电路的Timer1模块......................................................................................................................................................... 306.0比较器模块................................................................................................................................................................................ 357.0模数转换器(A/D)模块(仅限PIC12F675)...........................................................................................................................418.0数据EEPROM存储器................................................................................................................................................................479.0CPU的特殊功能.........................................................................................................................................................................5110.0指令集概述.................................................................................................................................................................................6911.0开发支持.....................................................................................................................................................................................7712.0电气规范.....................................................................................................................................................................................8313.0DC和AC特性图表..................................................................................................................................................................10514.0封装信息...................................................................................................................................................................................115附录A:数据表的版本历史................................................................................................................................................................121附录B:器件差异...............................................................................................................................................................................121附录C:器件移植..............................................................................................................................................................................122附录D:从其它PICmicro®器件移植.................................................................................................................................................122索引.................................................................................................................................................................................................123在线支持.............................................................................................................................................................................................127系统信息和升级热线 ..........................................................................................................................................................................127读者反馈表.........................................................................................................................................................................................128产品标识体系 ....................................................................................................................................................................................129致 客 户我司旨在提供最佳文档供客户正确使用Microchip产品。 为此,我们将持续改善公司出版物以更好地满足您的要求。出版物的质量将随新手册及更新版本的推出而得到改善。如果您对本出版物有任何问题和建议,请通过或传真联系我司TRC经理,地址为******************,传真号码为(8621)5407 5066。我们欢迎您的反馈。最新数据手册欲获得本数据手册的最新版本,请查询我公司的网站:您可通过检查数据手册中任意一页外侧下角的文献编号来确定其版本。文献编号的最后一个字母是版本编号,例如:DS30000A是DS30000的A版本。勘误表现有器件可能带有一份勘误表,说明了(与数据手册的)小运行差异以及建议的工作条件。当器件/文档的差异为我们所知时,我们将出版一份勘误表。 勘误表上将注明其所适用的硅片版本和文件版本。欲了解某一器件是否存在勘误表,请通过以下方式之一查询:•Microchip网站 •当地Microchip销售办事处(见尾页)•Microchip总部文献中心;美国传真号码:001 (480) 792-7277当致电销售办事处或文献中心时,请说明您所使用的器件名称、芯片和数据手册版本(包括文献编号)。客户通知系统欲接收我司产品的最新信息,请到我/cn上注册。 2004 Microchip Technology 41190C_CN第3页

PIC12F629/675注:DS41190C_CN第 4页

 2004 Microchip Technology Inc.

PIC12F629/6751.0器件概述以更好地理解芯片结构和外围模块的操作。本数据手册包括了PIC12F629和PIC12F675 器件。 除了PIC12F675具有10位A/D转换器以外,这两种器件基本类似。它们均采用8引脚PDIP、SOIC和MLF-S封装形式。图1-1为PIC12F629/675器件的框图。表1-1所示为引脚排列说明。本文档包含PIC12F629/675器件的具体信息。 其它信®中档单片机系列参考手册》息可参见《PICmicro(DS33023A_CN),您可向当地Microchip 销售代表处索取或从 Microchip网站下载。此参考手册可视为是对本数据手册的补充文档,我们极力推荐用户阅读该手册,图1-1:PIC12F629/675框图13闪存程序存储器1K x 148级堆栈(13位)程序计数器数据总线8GP0/AN0/CIN+GP1/AN1/CIN-/VREFGP2/AN2/T0CKI/INT/COUTGP3/MCLR/VPPGP4/AN3/T1G/OSC2/CLKOUTGP5/T1CKI/OSC1/CLKIN程序总线RAM文件寄存器64 x 89RAM地址(1)14指令寄存器直接寻址7地址MUX8间接寻址 FSR寄存器内部4 MHz振荡器指令译码与控制时序发生OSC1/CLKINOSC2/CLKOUTVDD, VSS83上电延时定时器振荡器起振定时器上电复位看门狗定时器欠压检测状态寄存器MUXALU8W寄存器T1GT1CKITimer0T0CKITimer1模数转换器(仅限PIC12F675)模拟比较器和参考电压模块EEDATA128字节8数据EEPROMEEADDRCIN-CIN+COUTVREFAN0AN1AN2AN3注1: 高位来自状态寄存器。 2004 Microchip Technology 41190C_CN第5页

PIC12F629/675表1-1: PIC12F629/675 引脚排列说明名称GP0/AN0/CIN+/ICSPDAT功能GP0AN0CIN+ICSPDATGP1AN1CIN-VREFICSPCLKGP2AN2T0CKIINTCOUTGP3MCLRVPPGP4/AN3/T1G/OSC2/CLKOUTGP4AN3T1GOSC2CLKOUTGP5/T1CKI/OSC1/CLKINGP5T1CKIOSC1CLKINVSSVDD输入类型TTLANANTTLTTLANANANSTSTANSTSTTTLSTHVTTLANSTXTALCMOSTTLSTXTALST电源电源CMOSCMOS输出类型CMOS说明双向I/O,带可编程上拉和电平变化触发中断功能A/D通道0输入比较器输入串行编程I/O双向I/O,带可编程上拉和电平变化触发中断功能A/D通道1输入比较器输入外部参考电压串行编程时钟双向I/O,带可编程上拉和电平变化触发中断功能A/D通道2输入TMR0时钟输入外部中断比较器输出输入端口,带电平变化触发中断功能主清零编程电压双向I/O,带可编程上拉和电平变化触发中断功能A/D通道3输入TMR1门电路晶振/谐振器FOSC/4输出双向I/O,带可编程上拉和电平变化触发中断功能TMR1时钟晶振/谐振器外部时钟输入/RC振荡器连接接地参考正向电源GP1/AN1/CIN-/VREF/ICSPCLKCMOSCMOSGP2/AN2/T0CKI/INT/COUTCMOSCMOSGP3/MCLR/VPPVSSVDD图注: 阴影部分仅适用于PIC12F675 TTL=TTL输入缓冲器,ST=施密特触发输入缓冲器。DS41190C_CN第6页

 2004 Microchip Technology Inc.

PIC12F629/6752.02.1存储器组织结构程序存储器组织结构2.2数据存储器组织结构PIC12F629/675器件具备一个13位程序计数器,可用来寻址8K x 14的程序存储器空间。对于PIC12F629/675器件来说,只有第一个1K x 14(0000h - 03FFh)存储单元是物理实现的。访问超出上述界限的存储单元,将在第一个1K x 14空间内产生循环。复位矢量位于0000h,而中断矢量位于0004h(参见图2-1)。数据存储器(参见图2-2)被分成两个存储区,这两个存储区中包含通用寄存器和特殊功能寄存器。特殊功能寄存器位于每个存储区的前32个单元中。寄存器中20h到5Fh的存储单元是通用寄存器,它们以静态RAM的形式实现并同时映射到两个存储区中。所有其它RAM均未用,且读取时返回值为0。RP0(STATUS<5>)是存储区选择位。

• RP0 = 0,选择存储区0• RP0 = 1,选择存储区1注:IRP和RP1位STATUS<7:6>是保留位并始终保持0。图2-1:PIC12F629/675 的程序存储器映射和堆栈PC<12:0>131级堆栈2级堆栈8级堆栈复位矢量000hCALL, RETURNRETFIE, RETLW2.2.1通用寄存器数据通用寄存器数据在PIC12F629/675器件中的组织结构为64 x 8。每个寄存器均可通过选择寄存器(File SelectRegister,FSR)进行直接或者间接访问(参见第2.4节)。中断矢量片上程序存储器FFh0400h1FFFh 2004 Microchip Technology 41190C_CN第7页

PIC12F629/6752.2.2特殊功能寄存器图2-2:特殊功能寄存器是CPU和外设功能用于控制器件执行期望操作的寄存器(参见表2-1)。这些寄存器是静态RAM。特殊功能寄存器可以划分为两类,即:内核和外设。本节介绍与“内核”有关的特殊功能寄存器。与外设功能操作有关的特殊功能寄存器将在相应的外设功能部件章节中讲述。

间接寻址(1)TMR0PCLSTATUSFSRGPIOPIC12F629/675的数据存储器映射

数据地址00h01h02h03h04h05h06h07h08h09h0Ah0Bh0Ch0Dh0Eh0Fh10h11h12h13h14h15h16h17h18h19h1Ah1Bh1Ch1Dh1Eh1Fh20h间接寻址(1)OPTION_REGPCLSTATUSFSRTRISIO数据地址80h81h82h83h84h85h86h87h88h89h8Ah8Bh8Ch8Dh8Eh8Fh90h91h92h93h94h95h96h97h98h99h9Ah9Bh9Ch9Dh9Eh9FhA0hPCLATHINTCONPIR1TMR1LTMR1HT1CONPCLATHINTCONPIE1PCONOSCCALWPUIOCCMCONADRESH(2)ADCON0(2)VRCONEEDATAEEADREECON1EECON2(1)ADRESL(2)ANSEL(2)通用寄存器64 Bytes访问20h-5Fh5Fh60hDFhE0h7Fh存储区 0存储区 1FFh未用的数据存储器单元,读做0。1: 非实际存在的寄存器。2:仅限于PIC12F675。DS41190C_CN第8页

 2004 Microchip Technology Inc.

PIC12F629/675表2-1:地址存储区000h01h02h03h04h05h06h07h08h09h0Ah0Bh0Ch0Dh0Eh0Fh10h11h12h13h14h15h16h17h18h19h1Ah1Bh1Ch1Dh1Eh1FhINDF(1)TMR0PCLSTATUSFSRGPIO----PCLATHINTCONPIR1-TMR1LTMR1HT1CON--------CMCON----ADRESH(3)ADCON0(3)未用未用未用未用左对齐的A/D结果的高8位或右对齐的A/D结果的高2位ADFMVCFG--CHS1CHS0GO/DONEADON未用未用未用未用未用未用未用未用-未用未用未用未用-GIEEEIF未用16位Timer1低位字节的保持寄存器16位Timer1高位字节的保持寄存器-TMR1GET1CKPS1T1CKPS0T1OSCENT1SYNCTMR1CSTMR1ON-PEIEADIF-T0IE-程序计数器的高5位的写缓冲器INTE-GPIECMIFT0IF-INTF-GPIFTMR1IF用FSR的内容寻址数据存储器来寻址该数据单元Timer0模块的寄存器程序计数器(PC)的低位字节IRP(2)RP1(2)RP0GPIO5TOGPIO4PDGPIO3ZGPIO2DCGPIO1CGPIO00000 0000xxxx xxxx0000 00000001 1xxxxxxx xxxx--xx xxxx-------0 00000000 000000-- 0--0-xxxx xxxxxxxx xxxx-000 0000--------18,532517111817----171315-282831--------33----4043,57名称特殊功能寄存器汇总表bit 7bit 6bit 5bit 4bit 3bit 2bit 1bit 0POR、BOD时的值页间接数据存储器地址指针--COUT-CINVCISCM2CM1CM0-0-0 0000----xxxx xxxx00-- 0000图注:注

- = 未用单元,读作0,u = 未改变,x = 未知,q = 值根据条件而变。阴影 = 未用1:非实际存在的寄存器。2:这些位是保留位且始终保持为0。3:仅限PIC12F675。 2004 Microchip Technology 41190C_CN第9页

PIC12F629/675表2-1:地址存储区180h81h82h83h84h85h86h87h88h89h8Ah8Bh8Ch8Dh8Eh8Fh90h91h92h93h94h95h96h97h98h99h9Ah9Bh9Ch9Dh9Eh9FhWPUIOC--VRCONEEDATAEEADREECON1EECON2(1)ADRESL(3)ANSEL(3)未用未用VREN-PCON-OSCCAL----未用CAL5未用未用未用未用----WPU5IOC5WPU4IOC4-IOC3WPU2IOC2WPU1IOC1WPU0IOC0CAL4CAL3CAL2CAL1CAL0--INDF(1)OPTION_REGPCLSTATUSFSRTRISIO----PCLATHINTCONPIE1-未用未用未用未用-GIEEEIE未用------PORBOD-PEIEADIE-T0IE-程序计数器的高5位的写缓冲器INTE-GPIECMIET0IF-INTF-GPIFTMR1IE用FSR的内容寻址数据存储器来寻址该数据单元GPPUIRP(2)INTEDGRP1(2)T0CSRP0T0SETOPSAPDPS2ZPS1DCPS0C程序计数器(PC)的低位字节0000 00001111 11110000 00000001 1xxxxxxx xxxxTRISIO5TRISIO4TRISIO3TRISIO2TRISIO1TRISIO0--11 1111-------0 00000000 000000-- 0--0----- --0x-1000 00--------11 -111--00 0000--18,5912,2617111817----171314-16-16----1819--38454546464040,61名称特殊功能寄存器汇总表 (续)bit 7bit 6bit 5bit 4bit 3bit 2bit 1bit 0POR、BOD时的值页间接数据存储器地址指针--VRR-VR3VR2VR1VR00-0- 00000000 0000-000 0000数据EEPROM数据寄存器--数据EEPROM地址寄存器---WRERRWRENWRRD---- x000---- ----xxxx xxxxEEPROM控制寄存器2左对齐的A/D结果的低2位或右对齐的A/D结果的低8位-ADCS2ADCS1ADCS0ANS3ANS2ANS1ANS0-000 1111图注:注

- = 未用单元,读作0,u = 未改变,x = 未知,q = 值根据条件而变。阴影 = 未用1:非实际存在的寄存器。2:这些位是保留位且始终保持为0。3:仅限PIC12F675。DS41190C_CN第10页

 2004 Microchip Technology Inc.

PIC12F629/6752.2.2.1状态寄存器变)。因此,若要改变状态寄存器的内容,建议仅使用BCF、BSF、SWAPF或MOVWF指令,因为这些指令不影响任何状态位。如需了解其它不影响状态位的指令,请参见“指令集概述”。

注1:PIC12F629/675不使用IRP和RP1位(STATUS<7:6>),应保持其为清零状态。 建议不要使用这些位,因为这可能会影响与未来产品的向上兼容性。2:在减法操作中,C和DC位分别作为借位和半借位位。示例见SUBLW和SUBWF指令。如寄存器2-1所示,状态寄存器包含:• ALU的算术运算状态位• 复位状态位• 数据存储器(SRAM)的存储区选择位状态寄存器和其它寄存器一样,可以作为任何指令的目标寄存器。如果状态寄存器作为一条指令的目标寄存器,而影响了Z、DC或C位,将禁止对这三个位的写操作。 根据器件逻辑对这些位置1或清零。 此外,TO和PD位不可写。 因此,执行将状态寄存器作为目标寄存器的指令得出的结果会与预期的有所不同。

例如,执行CLRF STATUS会清零高三位并将Z位置1。这将使状态寄存器的值变为000u u1uu(其中u=不寄存器 2-1:STATUS —状态寄存器(地址:03h或83h)

保留IRPbit 7保留RP1R/W-0RP0R-1TOR-1PDR/W-xZR/W-xDCR/W-xCbit 0bit 7bit 6bit 5IRP:这些位是保留位且应始终保持为0RP1:这些位是保留位且应始终保持为0RP0:寄存器存储区选择位(用于直接寻址)0 = 存储区0 (00h - 7Fh)1 = 存储区1 (80h - FFh)TO:超时位1 = 上电、执行CLRWDT或SLEEP指令后置位0 = 发生了WDT超时PD:掉电标志位1 = 上电或执行CLRWDT指令之后置位0 = 执行了SLEEP指令Z:全零位1 = 算术或逻辑操作的结果为零0 = 算数或逻辑操作的结果不为零DC:半进位/借位标志位(ADDWF、ADDLW、SUBLW、SUBWF指令)作为借位位时极性相反。1 = 结果的低4位向高位发生了进位0 = 结果的低4位向高位没有进位C: 进位/借位标志位(ADDWF、ADDLW、SUBLW、SUBWF 指令)1 = 结果的最高位发生了进位0 = 结果的最高位没有发生进位注:作为借位位时极性相反。减法指令通过加上第二个操作数的2的补码来实现的。对于移位指令(RRF、RLF),此位的装载值为源寄存器的最高位或最低位。bit 4bit 3bit 2bit 1bit 0图注:R = 可读位- n = POR时的值W = 可写位1=置位U = 未用位,读作00=清零x=未知位 2004 Microchip Technology 41190C_CN第11页

PIC12F629/6752.2.2.2OPTION寄存器注:若需TMR0获得1:1的预分频值,应将PSA位(OPTION<3>)置1,以将预分频器分配给WDT。 参见第4.4节。OPTION寄存器是可读写寄存器,包含各种控制位以配置:• TMR0/WDT预分频器• 外部GP2/INT中断• TMR0• GPIO上的弱上拉寄存器 2-2:OPTION_REG—选项寄存器 (地址:81h)

R/W-1GPPUbit 7R/W-1INTEDGR/W-1T0CSR/W-1T0SER/W-1PSAR/W-1PS2R/W-1PS1R/W-1PS0bit 0bit 7GPPU: GPIO上拉使能位1 = 禁止GPIO上拉0 = 通过各个端口的锁存值使能GPIO上拉INTEDG:中断边沿选择位1 = GP2/INT引脚上电平的上升沿触发中断0 = GP2/INT引脚上电平的下降沿触发中断T0CS: TMR0时钟源选择位1 = 选择GP2/T0CKI引脚上的传输信号作为时钟源0 = 选择内部指令周期时钟(CLKOUT)T0SE: TMR0时钟源边沿选择位1 = 在GP2/T0CKI引脚上电平的下降沿递增0 = 在GP2/T0CKI引脚上电平的上升沿递增PSA: 预分频器分配位1 = 将预分频器分配给WDT0 = 将预分频器分配给TIMER0模块PS2:PS0:预分频器的分频比选择位 位值1TMR0分频比 WDT分频比1 : 21 : 41 : 81 : 161 : 321 : 641 : 1281 : 2561 : 11 : 21 : 41 : 81 : 161 : 321 : 641 : 128bit 6bit 5bit 4bit 3bit 2-0图注:R = 可读位- n = POR时的值W = 可写位1=置位U = 未用位,读作00=清零x=未知位DS41190C_CN第12页

 2004 Microchip Technology Inc.

PIC12F629/6752.2.2.3INTCON寄存器

INTCON寄存器是可读写寄存器,包含对TMR0寄存器溢出、GPIO端口变化和外部GP2/INT引脚中断的各种使能位和标志位。注:当有中断条件产生时,无论相应中断使能位或全局使能位GIE(INTCON<7>)的状态如何,中断标志位都将置位。用户软件应确保在允许中断之前将相应的中断标志位清零。寄存器 2-3:INTCON—中断控制寄存器(地址: 0Bh或8Bh)

R/W-0GIEbit 7R/W-0PEIER/W-0T0IER/W-0INTER/W-0GPIER/W-0T0IFR/W-0INTFR/W-0GPIFbit 0bit 7GIE: 全局中断使能位1 = 使能所有未屏蔽的中断0 = 禁止所有中断PEIE:外设中断使能位1 = 使能所有未屏蔽的外设中断0 = 禁止所有外设中断T0IE: TMR0溢出中断使能位1 = 使能TMR0溢出中断0 = 禁止TMR0溢出中断INTE: GP2/INT外部中断使能位1 = 使能GP2/INT外部中断0 = 禁止GP2/INT外部中断GPIE:端口电平变化时中断使能位(1)1 = 使能GPIO端口电平变化时中断0 = 禁止GPIO端口电平变化时中断T0IF: TMR0溢出中断标志位(2)1 = TMR0寄存器已经溢出(必须用软件清零)0 = TMR0寄存器没有溢出INTF: GP2/INT外部中断标志位1 = 发生GP2/INT外部中断 (必须用软件清零)0 = 未发生GP2/INT外部中断GPIF:端口电平变化时中断标志位1 = GP5:GP0引脚中至少有一个引脚电平发生了变化(必须用软件清零)0 = GP5:GP0引脚电平均未发生变化注1:必须使能IOC寄存器以允许电平变化中断。2:当 TIMER0计满回零时, T0IF位被置位。复位时 TIMER0的状态不变,应在清零T0IF位前初始化。图注:R = 可读位- n = POR时的值W = 可写位1=置位U = 未用位,读作00=清零x=未知位bit 6bit 5bit 4bit 3bit 2bit 1bit 0 2004 Microchip Technology 41190C_CN第13页

PIC12F629/6752.2.2.4PIE1寄存器注:要使能任何一个外设中断,必须将(INTCON<6>)位置1。PEIE如寄存器2-4所示,PIE1寄存器包含中断使能位。寄存器 2-4:PIE1-外设中断使能寄存器1(地址: 8Ch)

R/W-0EEIEbit 7R/W-0ADIEU-0-U-0-R/W-0CMIEU-0-U-0-R/W-0TMR1IEbit 0bit 7EEIE: EE写操作完成中断使能位1 = 允许EE写操作完成中断0 = 禁止EE写操作完成中断ADIE: A/D转换器中断使能位(仅限PIC12F675)1 = 允许A/D转换器中断0 = 禁止A/D转换器中断未用:读作0CMIE:比较器中断使能位1 = 使能比较器中断0 = 禁止比较器中断

未用:读作0TMR1IE: TMR1溢出中断使能位1 = 使能TMR1溢出中断0 = 禁止TMR1溢出中断图注:R = 可读位- n = POR时的值W = 可写位1=置位U = 未用位,读作00=清零x=未知位bit 6bit 5-4bit 3bit 2-1bit 0DS41190C_CN第14页

 2004 Microchip Technology Inc.

PIC12F629/6752.2.2.5PIR1寄存器注:当有中断条件产生时,无论相应中断使能位或全局使能位GIE(INTCON<7>)的状态如何,中断标志位都将置位。 用户软件应确保在允许中断之前将相应的中断标志位清零。如寄存器2-5所示,PIR1寄存器包含中断标志位。寄存器 2-5:PIR1—外设中断寄存器1(地址: 0Ch)

R/W-0EEIFbit 7R/W-0ADIFU-0-U-0-R/W-0CMIFU-0-U-0-R/W-0TMR1IFbit 0bit 7EEIF: EEPROM写操作中断标志位1 = 写操作完成(必须用软件清零)0 = 写操作未完成或还没开始ADIF: A/D转换器中断标志位(仅限PIC12F675)1 = A/D转换完成(必须用软件清零)0 = A/D转换未完成未用: 读作0CMIF: 比较器中断标志位1 = 比较器输入已改变(必须用软件清零)0 = 比较器输入未改变未用: 读作0TMR1IF: TMR1溢出中断标志位1 = TMR1寄存器已溢出(必须用软件清零)0 = TMR1寄存器没有溢出图注:R = 可读位- n = POR时的值W = 可写位1=置位U = 未用位,读作00=清零x=未知位bit 6bit 5-4bit 3bit 2-1bit 0 2004 Microchip Technology 41190C_CN第15页

PIC12F629/6752.2.2.6PCON寄存器电源控制(PCON)寄存器包含区分以下复位的标志位:• 上电复位(POR)• 欠压检测(BOD)• 看门狗定时器复位(WDT)• 外部MCLR复位PCON寄存器位如寄存器2-6所示。寄存器 2-6:PCON—电源控制寄存器(地址: 8Eh)

U-0-bit 7U-0óU-0-U-0-U-0-U-0-R/W-0PORR/W-xBODbit 0bit 7-2bit 1未用: 读作0POR: 上电复位状态位1 = 未发生上电复位0 = 发生上电复位(必须在上电复位发生后用软件置位)BOD: 欠压检测状态位1 = 没发生欠压检测0 = 发生欠压检测(必须在欠压检测发生后用软件置位)图注:R = 可读位- n = POR时的值W = 可写位1=置位U = 未用位,读作00=清零x=未知位bit 02.2.2.7OSCCAL寄存器振荡器校准寄存器(OSCCAL)用于校准内部4 MHz振荡器。它包含6个位,可用于将频率向上或向下调整至4 MHz。

OSCCAL寄存器位如寄存器2-7所示。寄存器 2-7:OSCCA—振荡器校准寄存器(地址: 90h)

R/W-1CAL5bit 7R/W-0CAL4R/W-0CAL3R/W-0CAL2R/W-0CAL1R/W-0CAL0U-0-U-0-bit 0bit 7-2CAL5:CAL0:6位有符号振荡器校准位111111 = 最大频率100000 = 中间频率000000 = 最小频率未用: 读作0图注:R = 可读位- n = POR时的值W = 可写位1=置位U = 未用位,读作00=清零x=未知位bit 1-0DS41190C_CN第16页

 2004 Microchip Technology Inc.

PIC12F629/6752.3PCL和PCLATH2.3.2堆栈程序计数器(PC)宽度为13位。其低位字节来自可读写的 PCL 寄存器。其高位(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的过程。PIC12F629/675系列有一个8级深、13位宽的硬件堆栈(参见图2-1)。该堆栈既不占用程序存储空间也不占用数据存储空间,且栈指针不能读写。当执行CALL指令或中断引起程序跳转时,PC值会被压入堆栈。执行RETURN、RETLW或RETFIE指令时,PC值会从堆栈弹出。进栈(PUSH)或出栈(POP)操作不会影响PCLATH。此堆栈的工作原理犹如循环缓冲器。即当压栈8次之后,第9次压栈时进栈的数据将覆盖第1次压栈存储的数据,而第10次压栈时进栈的数据将覆盖第2次压栈存储的数据(依此类推)。

注1:不存在显示堆栈上溢或堆栈下溢情形的状态位。

2:不存在称为PUSH或POP的指令或助记符。PUSH或POP是执行CALL、RETURN、RETLW和RETFIE指令或指向中断向量地址时发生的操作。图2-3:PCH12PC587在不同情况下装载PCPCL0以PCL作为目标寄存器的指令ALU结果PCLATH<4:0>8PCLATHPCH12PC2PCLATH<4:3>11操作码<10:0>PCLATH111087PCL0GOTO, CALL2.3.1计算GOTO指令计算GOTO指令是通过向程序计数器加一个偏移量(ADDWF PCL)来实现的。 当通过执行计算GOTO指令进行读表操作时,要注意表地址是否超过了PCL存储器的寻址范围(每块256个字节)。参见应用笔记“Implementing a Table Read”(AN556)。 2004 Microchip Technology 41190C_CN第17页

PIC12F629/6752.4间接寻址、INDF和FSR寄存器

INDF寄存器不是实际存在的寄存器。寻址INDF寄存器会导致间接寻址。

使用INDF寄存器可以实现间接寻址。任何使用INDF寄存器的指令实际上访问的是文件选择寄存器(FileSelect register,FSR)指向的数据。间接读INDF本身会产生00h。 而使用间接寻址对INDF寄存器进行写操作将导致执行一个空操作(虽然可能会影响状态位)。通过将8位FSR寄存器和IRP位(STATUS<7>)进行组合可获得有效的9位地址,如图2-4所示。

例2-1所示为使用间接寻址清零RAM单元20h-2Fh的简单程序。例2-1:movlwmovwfclrfincfbtfssgoto间接寻址0x20FSRINDFFSRFSR,4NEXT;initialize pointer;to RAM;clear INDF register;inc pointer;all done?;no clear next;yes continueNEXTCONTINUE图2-4:直接/间接寻址 PIC12F629/675

直接寻址 间接寻址0IRP(1)7FSR寄存器0RP1(1)RP06来自操作码存储区选择单元选择0000h011011存储区选择180h单元选择数据存储器未使用7Fh存储区0有关存储器映射的详细介绍,参见图2-2。注1:RP1和IRP位是保留位,始终保持清零。存储区1存储区2存储区31FFhDS41190C_CN第18页

 2004 Microchip Technology Inc.

PIC12F629/6753.0GPIO端口状态。 配置为模拟输入引脚的I/O引脚始终读作0。注:要将模拟通道配置为数字输入通道,必须初始化ANSEL(9Fh)和CMCON(19h)寄存器。配置为模拟输入的引脚读作0。ANSEL寄存器是为PIC12F675定义的。可用的通用I/O引脚多达6个。根据使能外设的不同,部分或所有引脚不一定能用作通用I/O引脚。一般来说,当使能某一外设时,与它相关的引脚可能不能用作通用I/O引脚。注:有关I/O端口的其他信息可参见《PICmicro®中档单片机系列参考手册 》(DS33023A_CN)。例3-1:bcfclrfmovlwmovwfbsfclrfmovlwmovwfSTATUS,RP0GPIO07hCMCONSTATUS,RP0ANSEL0ChTRISIO初始化GPIO;Bank 0;Init GPIO;Set GP<2:0> to

;digital IO;Bank 1;Digital I/O;Set GP<3:2> as inputs;and set GP<5:4,1:0>;as outputs3.1GPIO和TRISIO寄存器GPIO是一个6位宽的双向端口。其相应数据方向寄存器为TRISIO。将TRISIO中的相应位置1可将相应的GPIO引脚设置为输入引脚(即可将相应的输出驱动器设为高阻模式)。将TRISIO中相应位清零可将相应的GPIO引脚设置为输出引脚(即将输出锁存器中的数据置于所选定的引脚上)。GP3是个例外,它只能作为输入引脚,其TRISIO位始终读作1。例3-1显示了如何初始化GPIO。读GPIO寄存器将读取引脚的状态,而写该寄存器将会写入端口锁存器。所有写操作都是读-修改-写操作。因此,写一个端口就意味着读该端口引脚,修改读取值,然后再写入端口数据锁存器。当MCLREN为1时,GP3读作0。TRISIO寄存器控制GP引脚的方向,即便在它们作为模拟输入引脚时也是如此。当将这些引脚作为模拟输入引脚时,用户必须确保TRISIO寄存器中的位保持置位3.2引脚的其它功能PIC12F629/675上的所有GPIO引脚都具有引脚上电平变化触发中断的功能,且所有的GPIO引脚(除GP3以外)都具备弱上拉功能。在接下来的两个小节中将对这些功能作出描述。3.2.1弱上拉GPIO的每个引脚(除GP3以外)都带有独立且可配置的内部弱上拉功能。控制位WPUx用以使能或禁止各个上拉电路。参见寄存器3-3。 当将端口引脚配置为输出引脚时,将自动关闭弱上拉。在上电复位时,弱上拉由 GPPU位(OPTION<7>)禁止。寄存器3-1:GPIO-GPIO寄存器(地址:05h)

U-0—bit 7U-0—R/W-xGPIO5R/W-xGPIO4R/W-xGPIO3R/W-xGPIO2R/W-xGPIO1R/W-xGPIO0bit 0bit 7-6:bit 5-0:未用位:读作0GPIO<5:0>:通用I/O引脚。1 = 端口引脚电平>VIH0 = 端口引脚电平

PIC12F629/675寄存器3-2:TRISO-GPIO三态寄存器(地址: 85h)

U-0—bit 7bit 7-6:bit 5-0:未用位:读作0TRISIO<5:0>:通用I/O三态控制位1 = GPIO引脚被配置为输入引脚(三态)0 = GPIO引脚被配置为输出引脚。注:图注:R = 可读位- n = POR时的值W = 可写位1=置位U = 未用位,读作00=清零x=未知位TRISIO<3>始终读做1。U-0—R/W-xTRISIO5R/W-xTRISIO4R-1TRISIO3R/W-xR/W-xR/W-xTRISIO0bit 0TRISIO2TRISIO1寄存器3-3:WPU-弱上拉寄存器(地址: 95h)

U-0—bit 7U-0—R/W-1WPU5R/W-1WPU4U-0—R/W-1WPU2R/W-1WPU1R/W-1WPU0bit 0bit 7-6bit 5-4未用位:读作0WPU<5:4>:弱上拉寄存器位1= 使能上拉0 = 禁止上拉未用位:读作0WPU<2:0>:弱上拉寄存器位1 = 使能上拉0 = 禁止上拉注1:为了使能单个上拉必须先使能全局GPPU。2:如果引脚处于输出模式(TRISIO = 0),则会自动禁止弱上拉器件。bit 3bit 2-0图注:R = 可读位- n = POR时的值W = 可写位1=置位U = 未用位,读作00=清零x=未知位DS41190C_CN第20页

 2004 Microchip Technology Inc.

PIC12F629/6753.2.2引脚电平变化中断每个GPIO引脚都可单独配置为电平变化中断引脚。控制位IOC用来使能或禁止各个引脚的中断功能。参见寄存器3-4。上电复位时引脚的电平变化中断被禁止。对于已使能电平变化中断的引脚,引脚上的值与上次读GPIO的锁存值相比较。与上次读取值不匹配的输出将执行“或”运算,并根据运算结果设置INTCON寄存器中的GP端口电平变化中断位(GPIF)。该中断可将器件从休眠模式唤醒。用户可用以下方式在中断服务程序中清除该中断:a)b)任何对GPIO的读写操作。这将结束不匹配状况。将标志位GPIF清零。不匹配状况将继续将标志位GPIF置1。读GPIO将会终止不匹配状况并将标志位GPIF清零。注:如果在执行一个读操作(Q2周期开始)时发生了I/O引脚电平变化,那么GPIF中断标志位可能不会被置1。寄存器3-4:IOC-电平变化中断GPIO寄存器(地址: 96h)

U-0—bit 7U-0—R/W-0IOC5R/W-0IOC4R/W-0IOC3R/W-0IOC2R/W-0IOC1R/W-0IOC0bit 0bit 7-6bit 5-0未用位:读作0IOC<5:0>:GPIO引脚电平变化触发中断控制位1 = 使能引脚电平变化触发中断0 = 禁止引脚电平变化触发中断注1:为了识别单个中断,必须置位全局中断使能位(GIE)。图注:R = 可读位- n = POR时的值W = 可写位1=置位U = 未用位,读作00=清零x=未知位 2004 Microchip Technology 41190C_CN第21页

PIC12F629/6753.3引脚描述及框图图3-1:数据总线写WPU读WPUDCKQQGPPUGPO和GP1引脚示意图模拟输入模式VDD弱上拉每个GPIO引脚都与其它功能复用。我们在此简要介绍这些引脚及其复用功能。有关比较器或A/D等独立功能的具体信息,请参见数据手册中的相关章节。3.3.1GP0/AN0/CIN+图3-1是该引脚的示意图。GP0可配置为下列功能之一:• 通用I/O引脚• A/D转换器的模拟输入引脚(仅限PIC12F675)• 比较器的模拟输入引脚D写端口CKQQVDD3.3.2GP1/AN1/CIN-/VREF图3-1是该引脚的示意图。GP1可配置为下列功能之一:• 通用I/O引脚• A/D转换器的模拟输入引脚(仅限PIC12F675)• 比较器的模拟输入引脚• A/D转换器的参考电压输入引脚(仅限PIC12F675)D写TRISIO读TRISIO读端口D写IOC读IOCCKQQQDENQDENCKQQ模拟输入模式VSSI/O引脚电平变化中断读端口到比较器到A/D转换器DS41190C_CN第22页

 2004 Microchip Technology Inc.

PIC12F629/6753.3.3GP2/AN2/T0CKI/INT/COUT3.3.4GP3/MCLR/VPP图3-2是该引脚的示意图。GP2可配置为下列功能之一:• 通用I/O引脚• A/D转换器的模拟输入引脚(仅限PIC12F675)• TMR0的时钟输入引脚• 外部边沿触发中断• 来自比较器的数字输出图3-3是该引脚的示意图。GP3可配置为下列功能之一:• 通用输入引脚• 主清零复位引脚图3-3:数据总线读TRISIO复位GP3示意图MCLREVSSMCLREVSSI/O引脚图3-2:数据总线写WPU读WPUDCKQQGP2示意图模拟输入模式VDD弱上拉GPPUCOUT使能DQQCOUT10DQQ模拟输入模式VSSI/O引脚 模拟输入模式写IOC读IOC读端口DCKQQQDENQDENVDD写端口CK电平变化中断读端口写TRISIO读TRISIO读端口CKD写IOC读IOCCKQQQDENQDEN电平变化中断读端口到TMRO到INT到A/D转换器 2004 Microchip Technology 41190C_CN第23页

PIC12F629/6753.3.5GP4/AN3/T1G/OSC2/CLKOUT3.3.6GP5/T1CKI/OSC1/CLKIN图3-4是该引脚的示意图。GP4可配置为下列功能之一:• 通用I/O引脚• A/D转换器的模拟输入引脚(仅限PIC12F675)• TMR1选通输入引脚• 连接晶振/谐振器• 时钟输出引脚图3-5是该引脚的示意图。GP5可配置为下列功能之一:• 通用I/O引脚• TMR1的时钟输入引脚• 连接晶振/谐振器• 时钟输入引脚图3-5:图3-4:GP4示意图模拟输入模式数据总线写WPU读WPUDCKQQCLK模式(1)VDD弱上拉数据总线写WPU读WPUGP5示意图INTOSC/模式TMR1LPEN(1)DCKQQGPPU振荡电路VDD弱上拉GPPUOSC1FOSC/4振荡电路VDDOSC2D写端口I/O引脚写TRISIO读TRISIO读端口D写IOCCKQQQDENCKQQCLKOUT使能D写端口CKQQCLKOUT使能D写TRISIO读TRISIO读端口D写IOC读IOCCKQQQDENQDENCKQQVDD10I/O引脚DCKQQINTOSC/模式(2)VSSVSSINTOSC/RC/EC(2)CLKOUT使能模拟输入模式读IOCQDEN电平变化中断电平变化中断读端口读端口到TMR1或CLKGEN到TMR1 T1G到A/D转换器注1:CLK模式是XT、HS、LP、LPTMR1和CLKOUT使能。2:带有CLKOUT选项。注1:使能Timer1 LP振荡器2:当使用LP振荡器的Timer1时,施密特触发器被旁路。DS41190C_CN第24页

 2004 Microchip Technology Inc.

PIC12F629/675表3-1:地址05h0Bh/8Bh19h81h85h95h96h9Fh与GPIO相关的寄存器汇总名称GPIOINTCONCMCONOPTION_REGTRISIOWPUIOCANSELbit 7—GIE—GPPU————bit 6—PEIECOUTINTEDG———ADCS2bit 5GP5T0IE—T0CSTRISIO5WPU5IOC5ADCS1bit 4GP4INTECINVT0SETRISIO4WPU4IOC4ADCS0bit 3GP3GPIECISPSATRISIO3—IOC3ANS3bit 2GP2T0IFCM2PS2TRISIO2WPU2IOC2ANS2bit 1GP1INTFCM1PS1TRISIO1WPU1IOC1ANS1bit 0GP0GPIFCM0PS0TRISIO0WPU0IOC0ANS0POR、

BOD时的值--xx xxxx0000 0000-0-0 00001111 1111--11 1111--11 -111--00 0000-000 1111所有其它复位时的值--uu uuuu0000 000u-0-0 00001111 1111--11 1111--11 -111--00 0000-000 1111图注:x=未知、u=未改变、-=未用的单元,读作0。 阴影单元表示未被GPIO使用。 2004 Microchip Technology 41190C_CN第25页

PIC12F629/675注:DS41190C_CN第26页

 2004 Microchip Technology Inc.

PIC12F629/6754.0TIMER0模块Timer0模块定时器/计数器有如下特点:• 8位定时器/计数器• 可读写• 8位软件可编程预分频器• 内部或外部时钟选择• FFh到00h的溢出中断• 外部时钟的边沿选择图4-1是Timer0模块和预分频器(与WDT共用)的框图。注:有关Timer0模块的更多信息可参考《PICmicro®中档单片机系列参考手册》(DS33023A_CN)。通过置位T0CS位(OPTION_REG<5>)选择计数器模式。在计数器模式下,Timer0模块可在GP2/T0CKI引脚的每个上升沿或下降沿加计数。具体是上升沿还是下降沿取决于时钟源边沿选择(TOSE)控制位(OPTION_REG<4>)。清零TOSE位选择上升沿。

注:计数器模式对外部时钟信号有一定的要求。 有关这些要求的更多信息可参考《PICmicro®中档单片机系列参考手册》(DS33023A_CN)。4.2Timer0中断4.1Timer0工作原理通过清零T0CS位(OPTION_REG<5>)选择定时器模式。在定时器模式下,Timer0模块在每个指令周期递增(不带预分频器)。如果对TMR0执行写操作,在接下来的两个指令周期Timer0禁止递增。用户可将一个调整值写入TMR0寄存器来避开这一问题。当TMR0寄存器定时器/计数器产生从FFh至00h的溢出时,产生Timer0中断。此溢出将T0IF位置位。可以通过清零T0IE位(INTCON<5>)来屏蔽该中断。在重新允许中断之前,必须在软件中用Timer0模块的中断服务程序将T0IF位(INTCON<2>)清零。休眠状态下,由于定时器被关闭,所以Timer0中断无法唤醒单片机。图4-1:CLKOUT(= FOSC/4)TIMER0/WDT预分频器的框图

数据总线011SYNC 2周期08-位

预分频器180溢出时置位标志位 T0IFPSA8TMR0T0CKI引脚T0SET0CSPSAPS0 - PS2看门狗定时器1WDT超时0WDTE注1:T0SE、T0CS、PSA、PS0-PS2是Option寄存器中的位。PSA 2004 Microchip Technology 41190C_CN第27页

PIC12F629/6754.3Timer0与外部时钟配合使用当不使用预分频器时,外部时钟输入与预分频器输出相同。在内部相位时钟的Q2和Q4周期对预分频器输出进行采样可实现T0CKI与内部相位时钟的同步。 因此,要求T0CKI引脚上的信号高、低电平分别至少保持。参阅所需器件的电气2TOSC(加上20ns的RC延时)规范。注:要将模拟通道配置为数字输入通道,必须对ANSEL(9Fh)和CMCON(19h)寄存器进行初始化。配置为模拟输入的引脚读作0。ANSEL寄存器是为PIC12F675定义的。寄存器 4-1:OPTION_REG—OPTION寄存器(地址: 81h)

R/W-1GPPUbit 7R/W-1INTEDGR/W-1T0CSR/W-1T0SER/W-1PSAR/W-1PS2R/W-1PS1R/W-1PS0bit 0bit 7 GPIO上拉使能位GPPU:1 = GPIO上拉被禁止0 = GPIO上拉通过端口锁存值使能INTEDG:中断边沿选择位1 = 在GP2/INT引脚的上升沿发生中断0 = 在GP2/INT引脚的下降沿发生中断T0CS: TMR0时钟源选择位1 = GP2/T0CKI引脚上的传输0 = 内部指令周期时钟(CLKOUT)T0SE: TMR0时钟源边沿选择位1 = GP2/T0CKI引脚的下降沿递增0 = GP2/T0CKI引脚的上升沿递增PSA: 预分频器分配位1 = 将预分频器分配给WDT0 = 将预分频器分配给TIMER0模块PS2:PS0:预分频比率选择位 位值1TMR0比率WDT比率1 : 21 : 41 : 81 : 161 : 321 : 641 : 1281 : 2561 : 11 : 21 : 41 : 81 : 161 : 321 : 641 : 128bit 6bit 5bit 4bit 3bit 2-0图注:R = 可读位- n = POR时的值W = 可写位1=置位U = 未用位,读作00=清零x=未知位DS41190C_CN第28页

 2004 Microchip Technology Inc.

PIC12F629/6754.4预分频器例4-1:器件具备一个8位计数器,可作为Timer0模块的预分频器,或看门狗定时器的后分频器。为简化起见,在本数据手册中通称该计数器为“预分频器”。通过软件设置PSA 控制位(OPTION_REG<3>)来控制预分频器的分配。清零PSA将预分频器分配给Timer0。预分频值可通过PS2:PS0位(OPTION_REG<2:0>)选择。该预分频器不可读写。当分配给Timer0模块时,所有对TMR0寄存器执行写操作的指令(例如CLRF1、MOVWF1、BSF1、x等)将清零预分频器。当分配给WDT时,执行CLRWDT指令将同时清零预分频器和看门狗定时器。

更改预分频器(TIMER0→WDT);Bank 0;Clear WDT;Clear TMR0 and; prescaler;Bank 1bcfSTATUS,RP0clrwdtclrfTMR0bsfSTATUS,RP04.4.1预分频器分配的切换movlwbÕ0010;Required if desiredmovwfOPTION_REG; PS2:PS0 is

clrwdt; 000 or 001;movlwbÕ0010;Set postscaler tomovwfOPTION_REG; desired WDT ratebcfSTATUS,RP0;Bank 0预分频器分配是完全在软件控制下进行的(即它可以在程序执行时进行实时修改)。为避免发生器件的意外复位,在预分频器的分配从Timer0更改为WDT时,必须执行以下指令序列(例4-1)。要将预分频器从WDT更改为TMR0 模块,使用例4-2中的序列。 即使WDT禁止也必须执行该指令序列。

例4-2:clrwdtbsfmovlw更改预分频器(WDT→TIMER0);Clear WDT and; postscaler;Bank 1STATUS,RP0movwfbcfb’xxxx0xxx’;Select TMR0,

; prescale, and

; clock sourceOPTION_REG;

STATUS,RP0;Bank 0表4-1:地址01h0Bh/8Bh81h85h与TIMER0相关的寄存器

名称TMR0INTCONOPTION_REGTRISIObit 7bit 6bit 5bit 4bit 3bit 2bit 1bit 0POR、BOD时的值xxxx xxxx所有其它复位时的值uuuu uuuu0000 000u1111 1111--11 1111Timer0模块寄存器GIEGPPU-PEIEINTEDG-T0IET0CSINTET0SEGPIEPSAT0IFPS2INTFPS1GPIFPS00000 00001111 1111TRISIO5TRISIO4TRISIO3TRISIO2TRISIO1TRISIO0--11 1111图注: - = 未实现位,读做0、u = 未改变、x = 未知。

阴影单元表示未被Timer0模块使用。 2004 Microchip Technology 41190C_CN第29页

PIC12F629/6755.0带选通控制的TIMER1模块如寄存器5-1所示,Timer1控制寄存器(T1CON)用于使能/禁止Timer1并选择Timer1模块的不同功能。

注:有关Timer0模块的更多信息可参考《PICmicro®中档单片机系列参考手册》(DS33023A_CN)。PIC12F629/675器件具备一个16位定时器。图5-1所示为Timer1模块的基本框图。Timer1具有以下特点:• 16位定时器/计数器(TMR1H:TMR1L)• 可读写• 内部或外部时钟选择• 同步或异步操作• 从FFFFh到0000h的溢出中断• 溢出时唤醒(异步模式)• 可选择外部使能输入(T1G)• 可选LP振荡器图5-1:TIMER1 框图TMR1ONTMR1GETMR1ONTMR1GET1G溢出时置位TMR1IF标志位TMR1TMR1HTMR1L01 同步时钟输入LP振荡器OSC1FOSC/4内部时钟10TMR1CST1SYNC预分频器1, 2, 4, 8同步检测 休眠输入OSC2不带 CLKOUT的INTOSCT1OSCENLP2T1CKPS<1:0>DS41190C_CN第30页

 2004 Microchip Technology Inc.

PIC12F629/6755.1Timer1工作模式5.2Timer1 中断Timer1可以有三种工作模式:• 带有预分频器的16位定时器• 16位同步计数器• 16位异步计数器在定时器工作模式下,Timer1在每个指令周期进行递增计数。在计数器工作模式下,Timer1在外部时钟输入T1CKI的每个上升沿进行递增计数。此外,计数器模式时钟可以与单片机系统时钟同步或异步运行。

在计数器和定时器模块中,计数器/ 定时器时钟可通过T1G输入引脚进行选通控制。如果需要外部时钟振荡器(且单片机正在使用不带CLKOUT的INTOSC),Timer1可以使用LP振荡器作为时钟源。

注:在计数器模式下,计数器第一次上升沿递增计数之前必须先记录一个下降沿。Timer1寄存器(TMR1H:TMR1L)递增到FFFFh时将翻转返回到0000h。当Timer1计满回零时,Timer1的中断标志位(PIR1<0>)将置1。要使能计满回零时产生中断,用户应置位以下位:• Timer1中断使能位(PIE1<0>)• PEIE位(INTCON<6>)• GIE位(INTCON<7>)。

在中断服务程序中将TMR1IF清零可以清除中断。注:再次允许中断前,应将TMR1H:TTMR1L寄存器以及TMR1IF位进行清零。5.3Timer1预分频器Timer1具有四个预分频器选项,允许对时钟输入进行1、2、4、或8分频。T1CKPS位(T1CON<5:4>)对预分频计数器进行控制。对预分频计数器不能直接进行读写操作;但是,通过写入TMR1H 或TMR1L可清零预分频计数器。

图5-2:T1CKI = 1当TMR1使能时TIMER1 加计数边沿

T1CKI = 0当TMR1使能时注1:箭头表示计数器递增。2:在计数器模式下,计数器在第一次时钟信号上升沿进行递增计数前应记录一个下降沿。 2004 Microchip Technology 41190C_CN第31页

PIC12F629/675寄存器 5-1:T1CON—TIMER1控制寄存器(地址: 10h)

U-0-bit 7bit 7bit 6未用位: 读作0TMR1GE:Timer1选通使能位如果TMR1ON = 0:此位被忽略如果TMR1ON = 1:1 = 如果T1G引脚为低电平,则启动Timer10 = 启动Timer1T1CKPS1:T1CKPS0: Timer1输入时钟预分频选择位11 = 预分频值为1:810 = 预分频值为1:401 = 预分频值为1:200 = 预分频值为1:1T1OSCEN: LP振荡器使能控制位如果不带CLKOUT振荡器的INTOSC处于激活状态:1 = LP振荡器使能作为Timer1的时钟源0 = LP振荡器关闭否则:此位被忽略 Timer1外部时钟输入同步控制位T1SYNC:TMR1CS = 1:1 = 不与外部时钟输入同步0 = 与外部时钟输入同步TMR1CS = 0:此位被忽略。Timer1使用内部时钟作为时钟源。TMR1CS: Timer1时钟源选择位1 = 使用来自T1OSO/T1CKI引脚(在上升沿)上的外部时钟0 = 内部时钟(FOSC/4)TMR1ON: Timer1启动控制位1 = 使能Timer10 = 停止Timer1图注:R = 可读位- n = POR时的值W = 可写位1=置位U = 未用位,读作00=清零x=未知位R/W-0R/W-0R/W-0R/W-0R/W-0T1SYNCR/W-0TMR1CSR/W-0TMR1ONbit 0TMR1GET1CKPS1T1CKPS0T1OSCENbit 5-4bit 3bit 2bit 1bit 0DS41190C_CN第32页

 2004 Microchip Technology Inc.

PIC12F629/6755.4Timer1工作在异步计数器模式5.5Timer1 振荡器如果置位控制位T1SYNC(T1CON<2>),外部时钟输入将不同步。定时器继续进行与内部相位时钟异步的加计数。在休眠状态下,定时器将继续运行并在溢出时产生中断,唤醒处理器。但是,在用软件对定时器进行读/写操作时应该特别小心(第5.4.1节)。注:要将模拟通道配置为数字输入通道,必须将ANSEL(9Fh)和CMCON(19h)寄存器初始化。配置为模拟输入的引脚读作0。ANSEL寄存器是为PIC12F675定义的。在异步计数器模式下读写TIMER1在OSC1(输入)和OSC2(放大器输出)引脚之间内置有一个晶体振荡器电路。通过将控制位T1OSCEN(T1CON<3>)置1可使能该振荡电路。该振荡电路是低功耗振荡电路,额定频率最高可达37 kHz。在休眠模式中,它仍可继续工作。该振荡电路主要适用于32 kHz晶振。表9-2显示了Timer1振荡器的可选电容。

Timer1的振荡器与系统LP振荡器共用。因此,只有当系统时钟来自于内部振荡器时,Timer1才能采用该模式。与系统LP振荡器相同,用户必须提供软件延时以确保振荡器的正常起振。当Timer1振荡器被使能时,TRISIO4和TRISIO5置1。GP4和GP5读作0,而TRISIO4和TRISIO5读作1。注:使用前,振荡器需要一定的起振和稳定时间。因此,在使能Timer1之前应确保T1OSCEN置1,并允许适当的延时。5.4.1当定时器采用外部异步时钟工作时,对TMR1H或TMR1L的读操作将确保有效(由硬件完成)。但是用户应注意,通过两个8位值来读取16位定时器本身就会产生某些问题,因为定时器可能在读操作之间产生溢出。

对于写操作,建议用户先停止定时器再写入期望值。如果计数器正进行递增计数,此时向其写入可能会导致写冲突的发生,从而在定时器寄存器中产生不可预测的值。用户在读16位值时应当谨慎对待。《PICmicro®中档单片机系列参考手册》(DS33023A_CN)中的例 12-2和12-3显示了如何对工作在异步模式下的Timer1进行读写操作。5.6Timer1工作在休眠模式只有设定为异步计数器模式时,Timer1才可在休眠模式下工作。在该模式下,可使用外部晶振或时钟源使计数器进行加计数。必须将定时器设定如下以唤醒器件:• 使能Timer1(T1CON<0>)• TMR1IE位(PIE1<0>)置1• PEIE位(INTCON<6>)置1器件将在溢出时被唤醒。 如果GIE位(INTCON<7>)置1,器件将在溢出时被唤醒并跳转至中断服务程序。表5-1:地址名称TIMER1作为定时器/计数器时的相关寄存器

bit 7GIEEEIFbit 6PEIEADIFbit 5T0IE-bit 4INTE-bit 3GPIECMIFbit 2T0IF-bit 1INTF-bit 0GPIFPOR、所有其它复BOD时的值位时的值0000 00000000 000uxxxx xxxxuuuu uuuu0Bh/8BhINTCON0Ch0Eh0Fh10h8Ch图注:PIR1TMR1LTMR1HT1CONPIE1TMR1IF00-- 0--000-- 0--016位TMR1寄存器低有效字节的保持寄存器xxxx xxxxuuuu uuuu16位TMR1寄存器高有效字节的保持寄存器TMR1GET1CKPS1T1CKPS0T1OSCENT1SYNCTMR1CSTMR1ON-000 0000-uuu uuuu-EEIEADIE--CMIE--TMR1IE00-- 0--000-- 0--0 x =未知、u=未改变、-=未实现位,读作0。 阴影单元表示未被Timer1模块使用。 2004 Microchip Technology 41190C_CN第33页

PIC12F629/675注:DS41190C_CN第34页

 2004 Microchip Technology Inc.

PIC12F629/6756.0比较器模块PIC12F629/675器件有一个模拟比较器。比较器的输入端与GPO和GP1引脚复用。模块中带有片上比较器参考电压,该电压也可作为比较器的输入电压。此外,可以将GP2配置为比较器的输出引脚。如寄存器6-1所示的比较器控制寄存器(CMCON)包含比较器的控制位。寄存器6-1:CMCON —比较器控制寄存器(地址:19h)

U-0—bit 7R-0COUTU-0—R/W-0CINVR/W-0CISR/W-0CM2R/W-0CM1R/W-0CM0bit 0bit 7bit 6未用位:读作0COUT:比较器输出位当CINV = 0时:1 = VIN+ > VIN-0 = VIN+ < VIN-当CINV = 1时:1 = VIN+ < VIN-0 = VIN+ > VIN-未用位:读作0CINV:比较器输出翻转位1 = 输出翻转0 = 输出不翻转CIS:比较器输入开关位当CM2:CM0 = 110或101时:1 = VIN-连接到CIN+0 = VIN-连接到CIN-CM2:CM0:比较器模式位图6-2给出比较器的几种模式以及相应的CM2:CM0位设置情况图注:R = 可读位- n = POR时的值W = 可写位1=置位U = 未用位,读作00=清零x=未知位bit 5bit 4bit 3bit 2-02004 Microchip Technology 41190C_CN第35页

PIC12F629/6756.1比较器工作原理表6-1:不同输入条件的输出状态CINV0011COUT0110图6-1所示为单比较器及模拟输入电平和数字输出之间的关系。如果VIN+上的模拟输入小于VIN-上的模拟输入,那么比较器将输出数字低电平。如果VIN+上的模那么比较器将输出数字拟输入大于VIN-上的模拟输入,高电平。图6-1中比较器输出的阴影部分表示由于输入偏移和响应时间所造成的不确定区。注:要将CIN+和CIN-引脚用作模拟输入引脚,必须对CMCON(19h)寄存器中的适当位进行编程。

输入条件VIN- > VIN+VIN- < VIN+VIN- > VIN+VIN- < VIN+图6-1:VIN+单比较器+–输出通过置位CINV位(CMCON<4>)可以改变比较器输出的极性。清零CINV将导致输出不翻转。表6-1所示为不同输入条件和极性位的输出状态的完整信息。VIN-VIN-VIN+输出注:CINV位(CMCON<4>)已被清零。DS41190C_CN第36页

 2004 Microchip Technology Inc.

PIC12F629/6756.2比较器配置比较器有8种工作模式。寄存器6-1所示的CMCON寄存器可用于选择工作模式。图6-2给出了这8种可能的模式。TRISIO寄存器控制每种模式下比较器引脚的数据方向。如果改变比较器模式,在指定的时间段内,比较器的输出电平可能无效。参见第12.0节中的电气规范。

注:改变比较器模式期间应禁止比较器的中断。否则可能会产生错误的中断。图6-2:CM2:CM0 = 000GP1/CIN-GP0/CIN+GP2/COUTAAD比较器I/O工作模式比较器关闭(功耗最低)CM2:CM0 = 111GP1/CIN-关闭(读作0)GP0/CIN+GP2/COUTDDD关闭(读作0)比较器复位(POR时的缺省值—低功耗)不带输出的比较器CM2:CM0 = 010GP1/CIN-GP0/CIN+GP2/COUTAADCOUT使用内部参考电压的比较器,不带输出CM2:CM0 = 100GP1/CIN-GP0/CIN+GP2/COUTADD来自CVREF模块COUT使用内部参考电压且带有输出的比较器CM2:CM0 =011输入端复用、使用内部参考电压并带有输出的比较器CM2:CM0 = 101GP1/CIN-COUTGP0/CIN+GP2/COUTAAD来自 CVREF模快CIS = 0CIS = 1COUTGP1/CIN-GP0/CIN+GP2/COUTADD来自 CVREF模快带有输出的比较器CM2:CM0 = 001输入端复用且使用内部参考电压CM2:CM0 = 110GP1/CIN-COUTGP0/CIN+GP2/COUTAAD来自CVREF模块CIS = 0CIS = 1COUTGP1/CIN-GP0/CIN+GP2/COUTAADA=模拟输入,端口始终读作0D = 数字输入CIS = 比较器输入切换开关(CMCON<3>)2004 Microchip Technology 41190C_CN第37页

PIC12F629/6756.3模拟输入连接注意事项图6-3所示为一个简化的模拟输入电路。由于模拟引脚和数字输出端相连,因而它们与VDD及 VSS之间加有反向偏置二极管。这样,模拟输入电压就必须限制在VSS和VDD之间。如果输入电压超过(或低于)这个电压范围0.6V以上,其中一个二极管就正向偏置,并可能发生闭锁。建议模拟输入信号源的最大源阻抗为10kΩ。任何连接到模拟输入引脚的外部元件(如电容器、齐纳二极管等),应保证其泄漏电流极小。图6-3:模拟输入模式VDDRs < 10KAINVACPIN5 pFVT = 0.6VVT = 0.6VRICILEAKAGE±500 nAVss图注:CPINVTILEAKAGERICRSVA=输入电容= 阈值电压

=由于不同的连接所引起的引脚上的泄漏电流= 连线电阻= 源阻抗= 模拟电压当比较器处于输出模式时,TRISIO<2>位可作为GP2引脚的输出使能/禁止位。注1:当读GPIO寄存器时,所有配置为模拟输入的引脚都读作0。 而配置为数字输入的引脚将根据TTL输入规范对模拟输入信号进行转换。2:在任何一个定义为数字输入的引脚上施加模拟电平,可能导致输入缓冲器的电流消耗超出规定值。6.4比较器输出通过读CMCON寄存器的相应位(COUT),可以得到比较器的输出。 该位是只读的。在8种可能模式中的3种模式下,比较器的输出可直接连接到GP2引脚,如图6-2所示。当比较器处于上述3种模式的任意一种时,GP2上的输出信号与内部时钟都是异步的。图6-4所示为比较器输出框图。图6-4:改进的比较器输出框图GP0/CIN+到GP2/T0CKI引脚到数据总线读CMCONQDENCINVGP1/CIN-CVREFCM2:CM0CMIF置1QDEN复位读CMCONDS41190C_CN第38页

 2004 Microchip Technology Inc.

PIC12F629/6756.5比较器参考电压下面的等式可用来计算输出电压:VRR = 1 (低电平范围): CVREF = (VR3:VR0 / 24)x VDD

VRR = 0 (高电平范围): CVREF = (VDD / 4) +(VR3:VR0 x VDD / 32)比较器模块还允许选择内部产生的参考电压作为比较器的输入信号之一。内部参考电压信号可用于8种比较器模式中的4种。VRCOM寄存器(寄存器6-2)可控制参考电压模块,如图6-5所示。6.5.1配置参考电压模块6.5.2参考电压精度/误差由于模块构造的原因 ,并不能实现从VSS到VDD的整个电压范围。梯形电阻网络(图6-5)的顶端和底端晶体管使CVREF 的值无法达到 VSS或VDD。由于参考电压来源于VDD,因此CVREF 的输出随着VDD的波动而变化。经过测试的比较器参考电压绝对精度参见第12.0节。参考电压模块可以输出32种不同的电平,其中16个高电平和16个低电平。图6-5:比较器参考电压模块框图16级8RRRRRVDD8R16选1模拟多路选择器VRENCVREF 到比较器的输入VRRVR3:VR06.6比较器响应时间6.8复位的影响响应时间是指选择了一个新的参考电压或是输入源后,比较器输出确定达到有效电平的最短时间。如果内部参考电压发生了改变,在使用比较器的输出时必须考虑到内部参考电压的最大延时。否则,应使用比较器的最大延时(表12-7)。器件复位将迫使CMCON和VRCON寄存器的值恢复到其复位状态。这也将迫使比较器模块进入复位模式(CM2:CM0=000)并将关闭参考电压模块。这样,所有可能的输入均为模拟输入,而比较器和参考电压模块均被禁止,此时电流消耗最小。6.7休眠期间的操作如果在进入休眠状态以前已使能了比较器和参考电压模块,那么它们将在休眠期间继续保持活动状态。这将导致休眠期间的电流高于电源关闭规范中的值。电气规范中另行列出了由于比较器和参考电压模块所造成的额外电流消耗。若要使休眠模式下最大限度地降低功耗,可关闭比较器(CM2:CM0 = 111)和参考电压模块(VRCON<7> = 0)。如果在休眠期间使能比较器,则中断将唤醒器件。当器件从休眠状态下唤醒时,CMCON和VRCON寄存器的内容将不受影响。2004 Microchip Technology 41190C_CN第39页

PIC12F629/675寄存器6-2:VRCON—参考电压控制寄存器(地址:99h)

R/W-0VRENbit 7bit 7VREN: CVREF使能位1 = CVREF 电路上电0 = CVREF电路断电,无泄漏电流IDD未用位:读作0VRR: CVREF范围选择位1 =低电平范围0 =高电平范围未用位:读作0VR3:VR0:CVREF值选择 0 ≤ VR [3:0] ≤ 15 * VDD当VRR = 1时:CVREF = (VR3:VR0 / 24)当VRR = 0时:CVREF = VDD/4 + (VR3:VR0 / 32) * VDD图注:R = 可读位- n = POR时的值W = 可写位1=置位U = 未用位,读作00=清零x=未知位U-0—R/W-0VRRR/W-0—R/W-0VR3R/W-0VR2R/W-0VR1R/W-0VR0bit 0bit 6bit 5bit 4bit 3-06.9 比较器中断用户可用以下方式在中断服务程序中清除该中断:a)b)对CMCON进行读或写。这将结束不匹配状况。将标志位CMIF清零。只要比较器的输出值发生变化,比较器的中断标志位就会置1。需要用软件来保持输出位的状态信息,即从CMCON<6>读取,以判断实际发生的变化。CMIF位即PIR1<3>是比较器中断标志位。该位必须用软件清零来将其复位。因为也可以把“1”写入该寄存器,所以可以启动模拟中断。必须置位CMIE位(PIE1<3>)和PEIE位(INTCON<6>)以允许中断。此外,也必须置位GIE位。只要清零这些位中的任何一位,尽管当发生中断条件时CMIF位仍会置位,却不会使能中断。

不匹配的状况将持续将标志位CMIF置1。读CMCON将会终止不匹配状况并允许将标志位CMIF清零。注:如果在执行读操作时(Q2周期的开始)CMCON寄存器(COUT)的值发生改变,则CMIF(PIR1<3>)中断标志位可能不会置位。表6-2:地址0Bh/8Bh0Ch19h8Ch85h99h图注:名称与比较器模块相关的寄存器 bit7GIEEEIF—EEIE—VREN bit6PEIEADIFCOUTADIE—— bit5T0IE——— bit4INTE—CINV— bit3GPIECMIFCISCMIE bit2T0IF—CM2— bit1INTF—CM1— bit0GPIFTMR1IFCM0TMR1IEPOR、BOD时的值0000 000000-- 0--0-0-0 000000-- 0--0--11 11110-0- 0000所有其它复位时的值0000 000u00-- 0--0-0-0 000000-- 0--0--11 11110-0- 0000INTCONPIR1CMCONPIE1TRISIOVRCONTRISIO5TRISIO4TRISIO3TRISIO2TRISIO1TRISIO0VRR—VR3VR2VR1VR0x = 未知, u = 未改变, - = 未用, 读作0。 阴影单元表示未被比较器模块使用。DS41190C_CN第40页

 2004 Microchip Technology Inc.

PIC12F629/6757.0模数转换器(A/D)模块(仅限PIC12F675)输出与模数转换器的输入相连。模数转换器通过逐次逼近比较产生二进制数,并将结果存入10位寄存器。可用软件选择转换所使用的参考电压为VDD或者是VREF引脚提供的电压。图7-1给出了PIC12F675上的A/D框图。模数转换器(A/D)可以将模拟输入信号转换为表示该信号的一个10位2进制数。PIC12F675有四个模拟输入通道,并复用到一个采样保持电路。采样保持电路的图 7-1:A/D框图

VDDVCFG = 0VREFVCFG = 1GP0/AN0GP1/AN1/VREFGP2/AN2GP4/AN3CHS1:CHS0ADCGO/DONEADFM10ADONADRESHVSS10ADRESL7.11.2.A/D的配置及操作ADCON0 (寄存器7-1)ANSEL (寄存器7-2)7.1.4转换时钟有两个用于控制A/D模块功能的寄存器:

A/D转化周期需要11个TAD。可通过软件设置ADCS位(ANSEL<6:4>)来选择转换时钟源。有以下7种时钟频率可供选择:• FOSC/2• FOSC/4• FOSC/8• FOSC/16• FOSC/32• FOSC/64• FRC(专用内部RC振荡器)为了保证转换结果正确,必须选择合适的A/D转换时钟频率(1/TAD)以确保最小转换时钟周期TAD为1.6µs。表7-1所示为选定频率下的几种TAD 计算结果。7.1.1模拟端口引脚ANS3:ANS0位(ANSEL<3:0>)和TRISIO位控制A/D端口引脚的操作。置位相应的TRISIO位,可将引脚输出驱动器置为高阻态。同样,置位相应的ANS位可禁止数字输入缓冲器。注:在定义为数字输入的引脚上施加模拟电压可能使输入缓冲器消耗过多电流。7.1.2通道选择PIC12F675上有4个模拟通道(AN0到AN3)。CHS1:CHS0位(ADCON0<3:2>)控制哪条通道与采样保持电路相连。7.1.3参考电压A/D转换器的参考电压有两种选择: 使用VDD,或使用引脚上的模拟电压。VCFG位施加在VREF(ADCON0<6>)控制参考电压的选择。如果置位VCFG位,将选择VREF引脚上的电压作为参考电压,否则将

选择VDD作为参考电压。 2004 Microchip Technology 41190C_CN第41页

PIC12F629/675表 7-1:工作频率2 TOSC4 TOSC8 TOSC16 TOSC32 TOSC64 TOSCA/D RC不同器件工作频率下的 TAD

器件频率20 MHz100 ns(2)200 ns(2)400 ns(2)800 ns(2)1.6 µs3.2 µs2 - 6 µs(1.4)5 MHz400 ns(2)800 ns(2)1.6 µs3.2 µs6.4 µs12.8 µs(3)2 - 6 µs(1.4)4 MHz500 ns(2)1.0 µs(2)2.0 µs4.0 µs8.0 µs(3)16.0 µs(3)2 - 6 µs(1.4)1.25 MHz1.6 µs3.2 µs6.4 µs12.8 µs(3)25.6 µs(3)51.2 µs(3)2 - 6 µs(1.4)ADCS2:ADCS1010110x11A/D时钟源(TAD)图注:阴影单元表示超出了建议范围。注1:VDD > 3.0V时,A/D RC源产生4 µs的典型 TAD时间。2:这些值均违反了所需的最小TAD时间。3:为了加快转换速度,建议选用其它时钟源。4:当器件的频率高于1 MHz时,仅当在休眠期间进行转换时才推荐使用A/D RC时钟源。7.1.5启动转换通过置位GO/DONE位(ADCON0<1>)启动A/D转换。转换完成时,A/D模块将:• 清零GO/DONE位• 置位ADIF标志位(PIR1<6>)• 产生中断(如果使能的话)如果必须要中止转换,则可用软件清零GO/DONE位。如果A/D转换采样只进行了一部分,则ADRESH:ADRESL寄存器的内容不会更新。而ADRESH:ADRESL寄存器将保持上次转换所得到的值。如果转换发生异常中断,必须经过2TAD的延时后才可启动下一次采集。延时过后,将自动开始对选定通道进行输入采集。注:不应在启动A/D转换的同一条指令中置位GO/DONE位。7.1.6转换输出A/D转换的结果可以如下两种格式提供:左对齐或右对齐。ADFM位(ADCON0<7>)控制输出格式。图7-2所示为输出的格式。图 7-2:10位A/D结果的格式

ADRESHADRESLLSBbit 0bit 7bit 0(ADFM = 0)MSBbit 710位A/D转换的结果(ADFM = 1)bit 7MSBbit 0bit 7未用位: 读作0LSBbit 0未用位: 读作010位A/D转换的结果DS41190C_CN第42页

 2004 Microchip Technology Inc.

PIC12F629/675寄存器 7-1:ADCON0—A/D控制寄存器(地址:1Fh)

R/W-0ADFMbit 7bit 7ADFM:A/D结果格式选择位1 =右对齐0 =左对齐VCFG:参考电压位1 = 选用VREF引脚上的电压0 = 选用VDD未用位: 读作0CHS1:CHS0:模拟通道选择位00 =通道00 (AN0)01 =通道01 (AN1)10 =通道02 (AN2)11 =通道03 (AN3)GO/DONE:A/D转换状态位1 = A/D转换正在进行。 将该位置1可启动A/D转换。

当A/D转换完成以后,该位由硬件自动清零。0 = A/D转换已完成/未进行。ADON:A/D转换器状态位1 = A/D转换器模块正在运行0 = A/D转换器被关闭且不消耗工作电流图注:R = 可读位- n = POR时的值W = 可写位1=置位U = 未用位,读作00=清零x=未知位R/W-0VCFGU-0—U-0—R/W-0CHS1R/W-0CHS0R/W-0GO/DONER/W-0ADONbit 0bit 6bit 5-4bit 3-2bit 1bit 0 2004 Microchip Technology 41190C_CN第43页

PIC12F629/675寄存器 7-2:ANSEL— 模拟选择寄存器(地址:9Fh)

U-0—bit 7bit 7bit 6-4未用位: 读作0。ADCS<2:0>:A/D转换时钟选择位000 = FOSC/2001 = FOSC/8010 = FOSC/32x11 = FRC (由专用内部振荡器产生的时钟,其频率的最大值为500 kHz)100 = FOSC/4101 = FOSC/16110 = FOSC/64ANS3:ANS0:模拟选择位(可将AN<3:0>引脚的功能分别选为模拟或是数字)1 = 模拟输入;分配引脚为模拟输入(1)0 = 数字I/O;分配引脚为端口引脚或特殊功能引脚注1:将引脚设置为模拟输入端将自动禁止数字输入电路、弱上拉和引脚电平变化中断等功能。相应的TRISIO位必须设置为输入模式以允许从外部控制引脚电压。R/W-0ADCS2R/W-0ADCS1R/W-0ADCS0R/W-1ANS3R/W-1ANS2R/W-1ANS1R/W-1ANS0bit 0bit 3-0图注:R = 可读位- n = POR时的值W = 可写位1=置位U = 未用位,读作00=清零x=未知位DS41190C_CN第44页

 2004 Microchip Technology Inc.

PIC12F629/6757.2A/D采集要求

为了使A/D转换器达到规定的精度,必须使充电保持电容(CHOLD)充满至输入通道的电压电平。模拟输入模型见图7-3。 源阻抗(RS)和内部采样开关(RSS)阻抗直接影响电容CHOLD充电所需的时间。采样开关(RSS)阻抗随器件电压(VDD)的变化而变化,参见图7-3。 建议模拟信号源的最大阻抗为10 kΩ。采集时间随着阻抗的降低而缩短。在选择(改变)模拟输入通道以后,必须在开始转换之前完成采集。可以使用等式 7-1来计算最小采集时间。该等式假设误差为1/2 LSb(A/D转换需要1024步)。1/2 LSb误差是A/D达到规定精度所允许的最大误差。,请参见《PICmicro®中要计算最短采集时间(TACQ)档单片机系列参考手册》(DS33023A_CN)。等式 7-1:TACQ采集时间

=放大器稳定时间+保持电容充电时间+温度系数=======TAMP + TC + TCOFF2µs + TC + [(温度 -25°C)(0.05µs/°C)]

CHOLD (RIC + RSS + RS)×(1/2047)- 120pF (1kΩ + 7kΩ + 10kΩ)×(0.0004885)16.47µs2µs + 16.47µs + [(50°C -25°C)(0.05µs/°C)19.72µsTCTACQ

注 1:因为参考电压(VREF)自行抵消,因此它对该等式没有影响。2:充电保持电容(CHOLD)在每次转换结束时不会放电。3:建议模拟信号源的最大阻抗为10 kΩ。它必须符合引脚泄漏电流规范中的规定。图 7-3:模拟输入模型

VDDRSVAANxCPIN5 pFVT = 0.6V采样开关RIC ≤ 1KSSRSSI

LEAKAGE± 500 nACHOLD=

DAC电容= 120 pFVSS图注CPINVTI

LEAKAGERICSSCHOLDVT = 0.6V=

输入电容= 阈值电压= 由于不同连接所造成的泄漏电流=

连线电阻=

采样开关=

采样/保持电容(来自DAC)6V5VVDD4V3V2V567891011 采样开关(kΩ) 2004 Microchip Technology 41190C_CN第45页

PIC12F629/6757.3休眠期间的A/D转换A/D转换器可在休眠模式下运行。此时要求将内部RC振荡器作为A/D转换的时钟源。当选用RC时钟源时,A/D转换器会等待一个指令再开始转换。这使SLEEP指令得以执行,从而消除了转换中的大多数开关噪声。当转换完成时,GO/DONE被清零,同时转换结果存入ADRESH:ADRESL寄存器。此时如果允许A/D中断,则器件将会从休眠状态下唤醒。如果A/D中断未被使能,即使ADON保持置位,也还是会关闭A/D模块。当A/D时钟源不是RC时,执行SLEEP指令将中止当前的转换,同时关闭A/D模块。ADON位仍保持置位。7.4复位的影响器件复位将迫使所有的寄存器恢复到其复位状态。 因此,复位会关闭A/D模块并且中止任何当前待处理的转换。ADRESH:ADRESL寄存器的内容不变。表 7-2:地址05h0Ch1Eh1Fh85h8Ch9Eh9Fh图注:名称GPIOPIR1ADCON0TRISIOPIE1ADRESLANSELA/D寄存器汇总bit 7—GIEEEIFADFM—EEIE—bit 6—PEIEADIFVCFG—ADIEADCS2bit 5GPIO5T0IE——TRISIO5—ADCS1bit 4GPIO4INTE——TRISIO4—ADCS0bit 3GPIO3GPIECMIFCHS1TRISIO3CMIEANS3bit 2GPIO2T0IF—CHS0—ANS2bit 1GPIO1INTF—GO—ANS1bit 0GPIO0GPIFTMR1IFADONTMR1IEANS0POR、 所有其它复位BOD时的值时的值--xx xxxx0000 000000-- 0--0xxxx xxxx00-- 0000--11 111100-- 0--0xxxx xxxx-000 1111--uu uuuu0000 000u00-- 0--0uuuu uuuu00-- 0000--11 111100-- 0--0uuuu uuuu-000 11110Bh, 8BhINTCONADRESH左对齐格式下A/D结果的高8位或右对齐格式下结果的高2位TRISIO2TRISIO1TRISIO0左对齐格式下A/D结果的低2位或右对齐格式下结果的低8位x = 未知, u =未改变, - = 未实现,读作0。 阴影单元表示未被A/D转换器模块使用。DS41190C_CN第46页

 2004 Microchip Technology Inc.

PIC12F629/6758.0数据EEPROM存储器数据EEPROM存储器在整个VDD范围内正常运行时是可读写的。 其存储器并不直接映射到寄存器文件空间,而是通过特殊功能寄存器来间接寻址。有四个SFR用于读写该存储器,它们是:• EECON1• EECON2(非实际存在的寄存器)• EEDATA• EEADREEDATA内存放8位读写数据,而EEADR寄存器存放要访问的EEPROM地址。PIC12F629/675器件有128字节的数据EEPROM存储器,寻址范围从0h到7Fh。EEPROM数据存储器允许字节读写。字节写操作将自动擦除该地址单元并写入新的值(即先擦后写)。EEPROM是一种具有高擦/写周期的数据存储器。写入的时间由片上定时器控制,还会随着电压、温度以及芯片的不同而有所差异。具体限制请参阅AC 规范。当器件处于代码保护下时,CPU可以继续对EEPROM存储器进行读写操作,但 器件编程器则不再能访问此寄存器。有关数据EEPROM更多的信息可以参考《PICmicro®中档单片机系列参考手册》(DS33023A_CN)。寄存器 8-1:EEDAT—EEPROM数据寄存器(地址: 9Ah)

R/W-0EEDAT7bit 7R/W-0EEDAT6R/W-0EEDAT5R/W-0EEDAT4R/W-0EEDAT3R/W-0R/W-0R/W-0EEDAT0bit 0EEDAT2EEDAT1bit 7-0EEDATn: 读/写数据EEPROM的字节值图注:R = 可读位- n = POR时的值W = 可写位1=置位U = 未用位,读作00=清零x=未知位

寄存器 8-2:EEADR—EEPROM地址寄存器(地址: 9Bh)

U-0-bit 7R/W-0EADR6R/W-0EADR5R/W-0EADR4R/W-0EADR3R/W-0EADR2R/W-0EADR1R/W-0EADR0bit 0bit 7bit 6-0未用位: 应该清零EEADR: 指定128个地址单元之一进行EEPROM读/写操作图注:R = 可读位- n = POR时的值W = 可写位1=置位U = 未用位,读作00=清零x=未知位 2004 Microchip Technology 41190C_CN第47页


本文发布于:2024-09-21 03:36:11,感谢您对本站的认可!

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

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

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