PIC16F877中文数据手册

所需积分/C币:50 2012-10-20 15:25:34 472KB PDF
27
收藏 收藏
举报

PIC16F877中文数据手册,学习单片机必看的参考文档。
2.0存储器结构 在这些 PICmicro处理器里有3个存储器块。程序存储器和数据存储器有它自u的总线,以使能够并行 访问。详见这节。 EEPROM数据存储器块见4。0节。 关于单片机存储器的附加情况可从 PlCmicro-tM Mid- Range ReferenceⅦ anua l,(DS33023)中发现信 2.1:程序存储器结构 PICl6F87X有一个13位的程序计数器,它的寻址能力达8K×14个程序存储器空间。PIC16F877/876 有8K×14个 FLASH程序存储器字和PIC16F873/874有4K×14个 FLASH稈序存储器字。寻址超出 上面 执行的地址将导致回饶 复位向量在0000h种中断向量在0004h。 22数据存储器结构 数据存储器被分成多个块,它包括通用寄存器(GPR)和特姝功能寄存器(SFR),位RPI和RPO 是块选择位。 RPl, RPO ( STATUS 6:5) =00块0 块 10块2 11块3 每个块的范围达到7h(128bit),每个块的较低位存储单元保存SHRS,在SHRS上面是GPRS做为 静态RAM操作的。所有执行的块包括SFR。一些经常使用的SFRS可以从一个块镜像到另外一个块 来减少代码和实现快速访问。 注: EEPROM数据存储器可在这份资料的第4节描述。 22.1通用存储器 通用寄存器文件可以通过文件选择寄存器直接或间接的访问。 2.2.2特殊功能寄存器 特殊功能寄存器(SFRS)是通过CPU和外闱模块来控制单片机运行的寄存器。这些寄存器是做 为静态RAM操作的 特殊功能寄存器被分成两类:一类是与这节所说的“核心”功能有关的特殊功能寄存器,另一 类是在这节所说与外围特性有关的外设寄存器。 2221状态寄存器 状态寄存器包括ALU的算术运算状态、复位状态和数据寄存器的块选择位。 和其它任何寄存器一样,状态寄存器可以做为任一指令的目标寄存器。如果在一个影响Z、DC、 C位的指令中状态寄存器是一个日标寄存器的话,那么写入状态寄存器的这三位是禁止的,这些字位 可通过单片机的逻辑运算而清零或置1。此外T0和PD位是不可写入的,因此,用状态寄存器作为目 标寄存器,·条指令的执行结果跟预想的也许不同。 如CLRF、 STATUS将清除高三位和将Z位置1。这将使状态寄有器成为000U1U(U表示未变) 因此推荐用BCF、BS, SWAPE和MoWW指令米改变状态寄存器,因为这些指令不影响状态寄存 器的Z.DC和C位。对于其它不影响状态位的指令见指令一览表。 注1:C和DC位在减法中作为各自的借位和辅助借位。例见 SUBLW和 SUBWE指令 2222选择寄器 OPTION-REG寄存器是一个可读写的寄存器,它包括各种控制位用来设定 TMRO/WDT预分频 器,(做为预分频器的分配寄存器)外部INT中断,TMRO和在 PORTB上的弱上拉。 注:为得到一个给TMRO寄存器的1:1预分频器分配,将预分频器分配给监视定时器 2223中断控制寄存器 INTCON寄存器是可读写的寄存器,它包括各和对于TMR0寄存器溢出,RB端口变化和外部RB0 引脚中断的使能位和标志位。 注:当中断条件发生时,中断标志位置1,不管它的相应使能位或全体使能位GIE( INTCON〈7)) 的状态。用户软件应该在使能个中断之前保证合适的中断标志位清零。 2224PIE1寄存器 这个寄存器包括进行外部中断的使能位。 注:(Ⅰ NTCON<6>)为使任何外部中断使能,位PEE必须置1 2225PIR1寄存器 这个寄存器包括进行外部中断的单个标志位。 注:当中断条件发生时,中断标志位置1,不管它的相应使能位或全体使能位GIE(Ⅰ NTCON〈7〉) 的状态。用户软件应该在使能一个中断之前保证合适的中断标志位清零。 寄存器2-5(略) 222.6PIE2寄存器 这个寄存器包括对于SSP总线冲突和低电压探测中断的使能位。 寄存器2-6(略) 2227PIR2寄存器 这个寄存器包括对于SSP总线冲突和低电压探测中断的标志位。 注:当中断条件发生时,中断标志位置1,不管它的相应使能位或全体使能位GIE( INTCON〈7〉) 的状态。用户软件应该在使能一个中断之前保证合适的中断标志位清零。 寄存器2-7(略) 2228:PCON寄存器 电源控制(PCON)寄存器包括在一个上电复位(POR),一个降压复位,外部MCLR复位, 监视定时器(WDT)之间不同的标志位 注:BOR在POR上未知,它必须通过用户置1和后继复位上检查看看BOR是否清零,以表明 出现一个溢出,如果溢出电路不能使用,BOR是一个随意位和不可预测的。 23:PCL和 PCLATH PC是13位字宽,它的低位字节叫做PCL寄存器,它是一个可读写的寄存器。它的高位(PC(12: 8〉)是不可读的。但通过 PCLATH寄存器是可以间接写的。在任何复位上PC的较高位将被清零。图 2-3给出了装入PC的两种情况。在上面的例子给出了在一个写入PCL( PCLATH(4:0〉到PCL)时 PC是如何被装入的。在下面的例子给出了在一个CALL或GOO指令期间( PCLATH(4:0〉到PCH) 时PC是如何被装入的。 2.3.1:计算GOTO 个计算GOTO指令通过向程序计数器增加个位移来完成( ADDWF PCL)。当用计算GOTO 方法进行一个读表,如果这个表的有储单元通过一个PCL存储器边界(每个256字节块)时,必须小 心操作。参考“ implementiy a Table Read”的应用。 2.3,2:堆栈 PICl6CXX系列有一个8级深度13位字宽的硬件堆栈,堆栈空间既不是程序空间的一部分, 也不是数据空间的部分,并且堆栈指针是不可读写的,当执行个CALL指令或者中断引起个分 支时,程序计数器值被压入堆栈,通过执行 RETURN、 RETLW或 RETFIE指令,堆栈内容被弹出, PCLATH 的内容不受PUCH或POP指令操作的影响。 堆栈是作为一个循环缓冲器来运行的,这意味着在向堆栈压入8次内容之后,第九次压入的内容 将覆盖第一次压入的存储在堆栈里的内容,第十次压入内容将覆盖第二次压入内容。(如此等等) 注:1.没有状态位表明堆栈溢出或堆栈不溢出的条件 注2:没有指令助记符叫PUSH或POP,它是通过执行CALL, RETURN, RETLW和 RETFIE指令 来产生动作或指向一个中断地址。 24:程序存储器的分贝 PICl6CXX单片机有连续寻址8K程序存储器字块的能力,在任何2K程序存储器页面之内,CaLL 和GOTO指令只能提供11个地址位来允许分支程序。当执行CaLL和GOTO指令时,地址的高2位 山 PCLATH4∶3〉提供。当执行CaLL和GOTO指令时,用户必须俣讦页面选择位被合适编程以便 所要求的程序仔储器页面被寻址。如果执行从个CaLL指令(或中断)的返回,整个13位程序计数 器的内容被弹出堆栈。因此 PCLATH(4:3〉位的操作对于返回指令是不要求的。 和例2-1给出了在程序存储器的页面1里的一个子程序的访问。这个例子假定 PCLATH通过中 服务程序被保存和重新存储。 2.5:间接寻址,IDF和FSR寄存器 IND寄存器不是一个物理上的寄存器,寻址INDF寄存器将导致间接寻址。 间接寻址通过使用INDF寄存器而成为可能。任何使用IDF寄存器的指令实际上是通过文件选 择寄存器FSR来访问所指向的寄存器。间接地读INDF寄存器(FSR=“0”)自身将会读00h,间接地 写入INDF奇行器将导致个不运行(尽管状态位会被影响),·个有效的9位地址可通过连接8位FSR 寄存器和IRP位( STATUS〈7〉)来获得。见图2-6(晔) 用问接寻址的一个简单的清除RAM20h~2h存储单元的程序见例2-2。 3.0输入输出端∏ 这些IO端口引脚是多路复用的,亡对于在单片机的外部特性具有可选择功能。通常当使用外部 功能时,这个引脚就不可以作为正常IO引脚使用。 3.1端口A和 TRISA寄存器 端口A是一个六位双向端口。相应的数据方向寄存器是TRSA,将 TRISA寄存器的一位置1, 把相应的端凵A引脚变为输入,即把相应的输出驱动器置成高阻抗方式。对IRSA寄存器里的一位 清零会把输出锁存器的内容放到所选择的引脚上。 读端口∧寄存器读的是引脚的状态,反之写入端口将是写向端口锁存器。所有写操作都是先读 后写操作,因此,写入个端∏意味着这个端∏引脚是先读入的,这个值经更改再写向端∏数据锁存 引脚RA4对于 Numero模块时钟输入变成RA4/IOCK1引脚是复用的。RA4/OCKI引脚是一个施 密特触发器输入和一个漏极开路输出 其它端口A引脚对于模拟输入和模拟VREF输入是复用的。每个引脚的操作是通过在 ADCON寄 存器里(AD控制寄存器1)里对控制位清零/置1来选择 注:在一个上电复位上,这些引脚都设定为模拟输入和读为0。 ⅠRSA寄存器控制RA引脚的方向,即使当他们正被用作模拟输入时也一样。当用他们作为模拟输入 时,用户必縯保证在 TRISA寄存器里的此位是置1的 3.2端口B和 TRISB寄存器 端口B是一个8位字宽的双向端口,相应的数据方向寄存器是 TRISB,把 TRISB寄存器里的 位置1会把相应的输出驱动变成为—个高阻输入方式。把 TRISB寄存器里的一位置0将会把输出锁存 器的内容送到所选的引脚上。 PORTB的3个引脚对于低电压编程功能;RB3PGM,RB6PGC和RB7PGD是复用的。这些弓 脚的选择功能在特别功能节描述。 端口B的每一个引脚都有一个内部弱上拉,一个单独控制位能够打开所有的弱上拉。这个可以 通过对RBPU( OPTION_REG<7>)位清零来实现。当端口设置为一个输出时弱上拉自动关闭。上拉 不能使用在上电复位 这个中断能够将单片机从睡眠中唤醒。用户在中断服务程序中用下列方法清零中断。 a〉端口B的任何读写,这将结束不匹配条件; b〉将标志RBIF位清零 个不匹配条件将持续使标志位RBIF置1,读端口B将结束不匹条件和允许标志位RBIF 被清零。 变化中断特征要求对于按键唤猩操作和端凵B只用作变化中断特征的操作。当使用变化中断 特征时不要求对端口B的探洵 这种不匹配中断特征和在这四个引脚上可用软件设置上拉一起,使得很容易与键盘接口,从 而使通过按键唤醒器件成为可能。参考 Embedded Conlrol houddook,“ IMPLEMENTING WAKE ON KEY STROKE”。 RBO/INT是一个外部中断输入引脚和通过使用 INTEDO位( OPTION-REG<6)米设置。 RBO/NT在12.10.1节详细讨论 3.3端口C和 TRISO寄存器 端∏C是个8位字宽的双向端∏,相应的数据方向奇存器是 TRISC,把 TRISC寄存器里的 位置1把相应的端口C引脚变为输入,即把相应的输岀驱动变成为一个高阻输入方式。把 TRISC寄存 器里的一位置0将会把相应的端凵C引脚变为输出,即把输出锁存器的内容送到所选的引脚上。 端口¢对于几种外部功能是复用的,(表3-5),端口C引脚有施密特触发器输入缓冲器。 当C模块使用时, PORTO〈3:4)引脚可以通过CKE位( SSPSTAT(6)用标准1C或用 SMBUS 来设置。 当外围功能使能时,对每个端口C引脚在设定 TRIS位时应该小心,当其它外部超越TRIS位使 个引脚成为输入时,一些外部超越TRIS位使一个引脚成为输出,因为当外部功能能使时,TRIs位 超越是有效的,带有 TRISO作为目标的先读后写指令(BSF、BCF,ⅩORWF)应该避免,用户应该参 考相关的正确设置TRIS位的章节。 34:端口D和 TRISD寄存器 注:PIC16F873876不提供端口D。 端口D是一个8位端口,它带有施密特触发器输入缓冲器,每个引脚可单独设定为输入或输出。 端口D可以通过设置控制位 PSPMODE( TRISE(4)而破设置为一个8位字宽的单片机端口 (并行从端∏)。用这种方式输入缓冲器是TTL。 3.5:并行从端口(PSP) 并行从端口在PIC16F873/876上不执行。 端口D作为一个8字宽并行从端口(PSP),或当控制位PSP、MODE( TRISE(4))置1时作 为微处理器端口。用从方式,通过外部字:用RD控制输入引脚REO/RD和用wR控制输入引脚 RELAWR 使它可同步读写。 辶可以直接接口到8位单片机的数据总线上,外部单片机能够读或写作为8位锁存器的端口D 锁存器。将位 PSPMODE置1能使端冂引脚 REO/RD成为RD输入, RELWR成为WR输入和RE2CS 成为CS(片选)输入,对这种功能相应的 TRISE寄存器( TRISE〈2:0〉)数据方向位必须设置为输 入(置1)和A/D端山设置位PClG〈2:0)( ADCON1〈2:0))必须置1,它将设置引脚RE〈2:0) 设定为数字输入/输出。 实际上有两个8位锁存器,一个用作数据输入(从 PICMICRO微处理器)和一个用作数据输入。 用户写8位数据到端口D数据锁存器和从端口引脚锁存器读数据(注意他们有相同的地址)。用这种 方式, TRISD寄存器被忽略了,因为微处理器正在控制数据流的方向。 当CS和WR线都被首先探测为低电平时,发生一个写入并行从属端口。当CS或WR线两者变 成高电平(电平触发器)时,这时输入触发器全静态(IBF)标志位( TRISE(7〉)在Q4时钟周期时 被置1,在下一个Q2周期之后,标志写完成(图3-10)。中断标志位PSPF(PRI(7)在相同的Q4 时钟上也被置1,IBF通过读端口D输入锁存器也能被清岺。如果当先前字节还没有被读出缓冲器时, 尝试第次写入PSP,这时输入缓冲器溢出(IBOⅴ)状怂标忐位( TRISE〈5))做置1。 当CS和RD线是首先被探测为低电平时,发生一个从PSP读出。输出缓冲器全静态标志位( TRISE 〈6})被立即清零(图3-11)以表明端口D锁存器通过外部总线正在等待被读。当CS和RD引脚都 变成高电平(电平触发器)时,中断标志位 PSPIF在Q4时钟周期上是置1的,在下个Q2周期之后, 表明读操作完成。OBF仍保持低电平直到通过用户固件将数据写向端口D。 当不用PSP方式时,IBF和OBF位是保持清零的,然而,如果状态位IBOⅤ先前被置1,它必 须用固件清零 当一个读写操作完成后,产生一个中断和被锁存到标志位PSPF。PSPF必须通过用户用软件清 零,通过中断使能位 PSPIF(PIE〈7})清岺而使中断使能。 4.0: EEPROM数据存储器和快速程序寄存器 Data EEProm和快速程序寄有器中(在整个ⅤDD范围上)在。的正常运行期间是可读写的。 大容量的擦洗不可以从用户代码中产生(包括移动代码保护)。数据存储器不直接映射在寄存器攴件空 闩里,而是通过特姝功能寄存器(SFR)间接寻址的。 有六个SFRS寄存器用来读和写 EEPROM程序和数据存储器,它们是 · EECON EECON2 EEDATA · EEDATI EEADR · EEADRH EEPROM数据存储器允许字节读和写,当和数据存储器块接口时, EEDATA俣存8位读和写数 据, EEADR保存被访问的 EEPROM存储单元的地址。寄存器 EEDATH和 EEADRH不用作 EEPROM 数据存储器的访问。这些单片机有高达256个带有0h~-Fh的地址范围的 EEPROM数据存储器字节。 EEPROM数据存储器有高速的擦和写周期。写时间由片内定时器控制。写时间随着电压和温度 以及不同的单片机将有变化,请参考限制说明。 程序存储器允许按字读和写。程序存储器允许对检查计算和校准衣存储器的访问。写个字节 或字会自动地擦除存储单元(擦除写之前的存储单元)和写入一个新的数据。写入程序存储器将停止 单片机运行直到写入完成。程序存储器在写期间不能被访问,因此代码不能执行。在写操作期间,振 荡器继续运行外部时钟,因此它们继续运行。中断事件将被探测到和需要“排队”,直到写完成。当写 完成时,在流水线上的下一个指令被执行,稈序将分支到中断向量地址。 当和程序存储器块接∏吋, EEDATH: EEDATA寄仔器组成个两字节字。它为读/写保存14位 数据。 EEADRH: EEADR寄存器组成一个两字节字,它休存被访问的 EEPROM存储单儿的13位地 址。这些单片机能有达到8K带有从Oh到3FFFh地址范围的 EEPROV程序字。在 EEDATH和 EEDATA 寄存器上未用的较高位都应读作 4.8.1: EEPROM数据存储器 当单片机不要求写入 EEPROM数据存储器时有一些条件,为了防止寄生的 EEPROM写,各种 结构己建立,在上电时,WREN位被清岺,并且上电定时器(72ms)持续时间防止 EEPROM写 写初始化顺序和wRFN位一起帮助防止电压降低,电源误操作和软件故障期间的意外写入。 4.8.2:快速程序存储器 为防止寄生写入快速稈序存储器,在设定字里的WRT位可以通过编程为0以防止写入,写初始 顺序也必须跟在后面,WRI和设定字通过用户代码不能被编程,只有通过外部缤程器的使用被编程。 4.9:在代码保护期间的操作 每一个重新可编程存储器坝有它自己的代码保护结构,外部的读和写操作不能使,如果这些结 构中的任个能使 4.9.1: EEPROM数据存储器 微处理器自己能够到内部 EEPROM数据存储器里读和写。而不管代码保扩设定位的状态如何 4.9.2:程序快速存储器 单片机脱离内部快速稈序存储器能够读和执行指令,而不管代码保护设定位的状态如何,然而WRT 设定位和代码保护位在写入程序存储器上有不同的影响,衣4-1给出了各种设定和读写状态。为了擦 除WRT或在设定字里代码保护位要求单片机仝部被擦除。表4-1、表4-2略 0: Timer模块 Timer0模块定时器/计数器有下列特征: ·8位定时器/计数器寄存器。 可读写 ·8位软件可绵程预分频器。 內部或外部时钟选择。 中断在从上H到00H溢出 外部时钟为边缘选择。 图5-1是 Timer0模块的方块框图和预分频器分给WT 在 PICMICROTM中等WU系刎参考资料中关于 TIMER0模块的附加情况在 PICMICROTM中等MCU系 列参考资料中可得到的。 通过对'CS位(OP1ON-RG〈5〉)清零可选择定吋器方式,在定时器方式时, Timer0模块在每 个指令周期加1(无预分频器)。如果是在写入TMR0寄存器时,递增将会延迟两个指令周期发生。用 户可以通过向TMR0寄存器写入一个调整值来解决。 计数器方式通过对T0CS位(0PTON-REG〈5〉置1来选择,用计数器方式时, Timer0在TOCK1引 脚的每个上升/下降边沿递增加1。递增边沿通过 Timer源边沿选择位T0SE(OPTI0N-REG(4〉来决定, 通过对T0SE位清0来选择上升边沿,外部时钟的输入限定在5.2节详细讨论。 预分频器可以在定时器模块和监视定吋器之间分配,预分频器是不可读写的,5.3节将详细说 明预分频器的运行 5 I Timer中断 当TMR0寄存器从FFh到00h溢出时将产生TMR0中断。这个溢出将位TOIF(Ⅰ NTCON〈2)) 置1。可以通过对TOE( NTCON〈5〉)位清零来屏蔽中断,在重新使能这个中断之前,位TOF必须通 过 TIMER0模块中断服务程序清零。TMR0中断不能将单片机从睡眠中唤醒,因为在睡眠期间,定吋 器是关闭的。 52:使用带有外部时钟的 Timer0。 当没有使用预分频器时,外部时钟输入与预分频器输出相同。通过采样在内部相位时钟的Q2和Q4 周期时的预分频器输岀,来实现TOCK1与内部相位时钟(T0SC)同步。因此,对TOCK1变成高电平 至少需要2T0SC(一个20ns的RC延迟)和成为低电平至少需要2T0SC(一个20ns的RC延迟)。参考 所要求单片机的电气特性。 53:预分频器 只有个预分频器在 Timer0模块和监视定时器之间相互独自分享,当预分频器分配给 Timer0模 块,意味着将没有预分频器分给监视定器和Ⅴice-Ⅴersa使用,这种预分频器是不可读写的,见图5-1 PSA和Ps0PS2位(0PTI0N<3:0>决定了预分频器的分配对象和分频频率。 当预分频器分胤给 Timer0模块时,所有写入 Timer0寄存器的指令将使预分频器清零(如CLRF1 MWWF1,BSF1,X等)当预分频器分配给WT时, CLRWDT指令在对预分频器清零时,也对WT清零。 预分频器既不可读也不可写. 注:当预分频器分配给 Timer0模块时,写入TMR0将预分频器清零,但不改变预分频器分配 60: Timer1模块 Timer模块由两个8位可读写的寄存器( TMRIH和 TMRIL)组成的一个16位定时器/计数器 寄存器对( TMRIH: TMRIL)从0000H递增到FFFH然后再转回到0000H。当相应中断能使吋,可 产生溢出中断,并锁存在中断标志位 TMRIF(PIR1〈0〉)。通过对TMR1中断使能位TMRE(PIE1 (0})置1和清零来确定这种中断使能或不使能。 Timer能够下列两种方法之一来操作 1.定时器方式 2.计数器方式 运行方式可通过时钟选择位 TMRICS( TICON〈1〉)来决定c 在定时器方式时, TIMER I在每个指令周期递增加1,在计数器方式时,它在每个外部时钟输入 的上升延递增加1。 Timer可通过对控制位 TMRION( TICON(0〉)置1和清零来确定这种中断使能或不使能。 Timer也有一个中断“复位输入”这种复位可以通过两个CCP模块中的一个米广生。(8.0节) 寄存器7-1表小 Timer 1控制寄存器。 当 Timer振荡器使能时( TIOSCEN置1),RC丌SI。CCP2和RC0TOSO/T|CK|引脚变为 输入,这时, TRISO〈1)的值是可忽喀的 在中等系列参考于册(DS33023)中,在定时器模块上的另一个情况是可用的。 6 I Timer1在定时器方式的运行 通过对位 TMRICS( TICON(1〉)清零来选择定时器方式。用这种方式,向定时器输入的时钟 是FOSO4。因为中断时钟一直是同步的,所以同步控制位T1SYNC(T1CON〈2〉)没有受影响。 62: Timer l计数器运行 根据对位 TMRICS置1, Timer可以运行在同步或异步模式。 当 Timer正在执行一个外部时钟源时,在一个上升边沿发生递增。在 Timer1用计数器模式能使 时,在计数器丌始遍增之前,模块必须首先有个下降边沿。 63: Timer l在同步计数器方式的运行 通过对位 TMRICS置1来选择计数器方式,用这种方式,当 TIOSCEN位置1时,定时器在 RCIT1OSⅠ引脚上每个时钟输入的上升边沿递增加1。或者当T1 OSCEN位清零时,定时器在 RCOT1OSOT1CK1引脚上每个时钟输入的上升也延递增加1 如果 TISYNO是清零的,那么外部吋钟输入和内部相位时钟是同步的。在预分频器级之后同步 运行,顶分频齐级是一个同步脉动计数器。 在这种设置时,在 SLEEP期间,既使出现外部时钟, TIMERI将不会递增加1,这是因为同步 线路被切断,然而预分频器将继续逐增。 6.4: Timer1在异步计数器模式下操作 如果位 TISYNC( TICON〈2))置1,外部时钟输入不同步。定时器继续递增以便和内部相位时 钟同步。定时器在睡眠期间继续运行和在溢出时产生中断,这个中断能够唤醒处理器。然而,用软件 读/写定时器时需要注意。 异步计数器方式吋, Timer不能用作捕捉器或比价器运行的吋基。 6.4.1用异步计数器模式读和写 TIMER1 当定时器从一个外部异步时钟运行时,读1MRIH或IMRL将保证一个有效的(用硬件小心)。 然而,用户应该记住用两个8位值木身读16位造成一定的问题,因为定时器在读之间可以溢出 对于写,建议用户简单的停止定时器后写入所要求的值。当寄存器的值递增时,通过写入定时器 寄行器出现个写竞争。这样在定吋器寄存器里可以产生个预想不到的值。 读16位佰要求一些小心,在 PICMICROTM MID- RANGE MCU系列参考资料甲的例12-2和例12-3 给出当 TIMER运行在异步计数器模式时如何读和写 6,5: TIMERI振荡器 一个晶体电路建立在 TIOSI(输入)和T1OSO(放大器输出)。它通过对控制位T1 OSCEN(T1CON 〈3〉)置1而使能。振荡器是一个低功耗振荡器,其频牽可达200KHZ。在睡眠气间继续运行。基本 预想使用一个32KHZ的品体振荡器,表6-1给出 TIMERI振荡器的电容选择。 Timer振荡器和LP振荡器是有区别的。用户必须提供一个软件时间延迟以保证的振荡器合适 启动。 6.6:使用一个CCP输出复位 TIMER1 如果CCPl模块设置为比较器模块来产生个“特别事件触发器”( CCPIM〈3:0〉-=1011),这 个信号将复位 TIMERI。 注;从CCPl模块里产牛的特別事件触发器不会将中断标志位 TMRIF(PIR〈0〉)置1。 为充分利用着个特征, TIMER1必须设置为定时器或异步计数器模式。如果 TIMER1运行在异步 计数器模式时,这个复位操作可以不工作。 在写入 TIMER1事件里与从CCP1里产牛的特别事件触发器相符合,写将优先 在这种操作模式中, CCPRIH; CCPRIL寄存器对使 TIMER1有效地成为周期寄存器。 6 7:TⅠMER1寄存器对( TMRIH,TMRL)的复位 除通过CCP特别事件触发器外。TMR,TMRL寄放器在POR或其它复位时都不会复位到 TICON寄存器在一个上电复位或一个降压复位时,复位到00H。它关闭定时器和产生一个1: 预分频器。在所有其它复位时,寄存器不受影响。 6.8 TIMER1预分频器 预分频器计数器在写入 TMRIH或TRLL寄存器时被清零

...展开详情
试读 37P PIC16F877中文数据手册
立即下载 低至0.43元/次 身份认证VIP会员低至7折
一个资源只可评论一次,评论内容不能少于5个字
fanliying 这份中文资料我也有,感觉不是很好,就是网上常见的那份,共37页。
2013-04-25
回复
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
上传资源赚积分or赚钱
    最新推荐
    PIC16F877中文数据手册 50积分/C币 立即下载
    1/37
    PIC16F877中文数据手册第1页
    PIC16F877中文数据手册第2页
    PIC16F877中文数据手册第3页
    PIC16F877中文数据手册第4页
    PIC16F877中文数据手册第5页
    PIC16F877中文数据手册第6页
    PIC16F877中文数据手册第7页
    PIC16F877中文数据手册第8页

    试读结束, 可继续读4页

    50积分/C币 立即下载 >