如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
7.1I/O端口功能的通用结构7.1.1设置端口的输入/输出状态此时对应的TRIS要置“1”,是从输入锁存器输入的。如图。7.1.4各端口的介绍“读-修改-写”指令注意事项第8章定时器/计数器8.1.2Timer0工作原理OPTION_REG—OPTION寄存器(地址:81h,181H)bit5T0CS:TMR0时钟源选择位1=RA4/T0CKI引脚上的传输(计数)0=内部指令周期时钟(CLKOUT)bit4T0SE:TMR0时钟源边沿选择位1=RA4/T0CKI引脚的下降沿递增0=RA4/T0CKI引脚的上升沿递增bit3PSA:预分频器分配位1=将预分频器分配给WDT0=将预分频器分配给TIMER0模块bit2-0PS2:PS0:预分频比率选择位bit7GIE:全局中断使能位1=使能所有未屏蔽的中断0=禁止所有中断bit6PEIE:外设中断使能位1=使能所有未屏蔽的外设中断0=禁止所有外设中断bit5TMR0IE:TMR0溢出中断使能位1=使能TMR0溢出中断0=禁止TMR0溢出中断bit4INTE:RB0/INT外部中断使能位1=使能RB0/INT外部中断0=禁止RB0/INT外部中断bit3RBIE:端口电平变化时中断使能位1=使能RB端口电平变化时中断0=禁止RB端口电平变化时中断bit2TMR0IF:TMR0溢出中断标志位1=TMR0寄存器已经溢出(必须用软件清零)0=TMR0寄存器没有溢出bit1INTF:RB0/INT外部中断标志位1=发生RB0/INT外部中断(必须用软件清零)0=未发生RB0/INT外部中断bit0RBIF:端口电平变化时中断标志位1=RB7:RB4引脚中至少有一个引脚电平发生了变化(必须用软件清零)0=RB7:RB4引脚电平均未发生变化(1)通过清零T0CS位选择定时器模式。在定时器模式下,Timer0模块在每个指令周期递增(不带预分频器)。如果对TMR0执行写操作,在接下来的两个指令周期Timer0禁止递增。用户可将一个调整值写入TMR0寄存器来避开这一问题。(2)通过置位T0CS位选择计数器模式。在计数器模式下,Timer0模块可在RA4/T0CKI引脚的每个上升沿或下降沿加计数。具体是上升沿还是下降沿取决于时钟源边沿选择(TOSE)控制位(OPTION_REG<4>)。清零TOSE位选择上升沿。(3)Timer0中断当TMR0寄存器定时器/计数器产生从FFh至00h的溢出时,产生Timer0中断。此溢出将T0IF位置位。可以通过清零T0IE位来屏蔽该中断。在重新允许中断之前,必须在软件中用Timer0模块的中断服务程序将T0IF位清零。休眠状态下,由于定时器被关闭,所以Timer0中断无法唤醒单片机。(4)Timer0与外部时钟配合使用当不使用预分频器时,外部时钟输入与预分频器输出相同。在内部相位时钟的Q2和Q4周期对预分频器输出进行采样可实现T0CKI与内部相位时钟的同步。因此,要求T0CKI引脚上的信号高、低电平分别至少保持2TOSC(加上20ns的RC延时)。(5)预分频器器件有一个8位计数器,可作为Timer0模块的预分频器,或看门狗定时器的后分频器。为简化起见通称该计数器为“预分频器”。通过软件设置PSA控制位来控制预分频器的分配。清零PSA将预分频器分配给Timer0。预分频值可通过PS2:PS0位选择。该预分频器不可读写。当分配给Timer0模块时,所有对TMR0寄存器执行写操作的指令(例如CLRF1、MOVWF1、BSF1、x等)将清零预分频器。当分配给WDT时,执行CLRWDT指令将同时清零预分频器和看门狗定时器。(6)预分频器分配的切换预分频器分配是完全在软件控制下进行的(即它可以在程序执行时进行实时修改)。例:从RB5输出周期10mS的方波。先看OPTION的设置ORG0000HBSFRP0MOVLW0DFHMOVWFTRISBMOVLW84HMOVWFOPTIONRBCFRP0MOVLW64HMOVWFTMR0