欢迎访问ic37.com |
会员登录 免费注册
发布采购

PIC16F876-20I/SO 参数 Datasheet PDF下载

PIC16F876-20I/SO图片预览
型号: PIC16F876-20I/SO
PDF下载: 下载PDF文件 查看货源
内容描述: 40分之28引脚8位CMOS闪存微控制器 [28/40-pin 8-Bit CMOS FLASH Microcontrollers]
分类和应用: 闪存微控制器和处理器外围集成电路光电二极管PC时钟
文件页数/大小: 200 页 / 3544 K
品牌: MICROCHIP [ MICROCHIP ]
 浏览型号PIC16F876-20I/SO的Datasheet PDF文件第128页浏览型号PIC16F876-20I/SO的Datasheet PDF文件第129页浏览型号PIC16F876-20I/SO的Datasheet PDF文件第130页浏览型号PIC16F876-20I/SO的Datasheet PDF文件第131页浏览型号PIC16F876-20I/SO的Datasheet PDF文件第133页浏览型号PIC16F876-20I/SO的Datasheet PDF文件第134页浏览型号PIC16F876-20I/SO的Datasheet PDF文件第135页浏览型号PIC16F876-20I/SO的Datasheet PDF文件第136页  
PIC16F87X  
12.10.1 INT INTERRUPT  
12.11 Context Saving During Interrupts  
External interrupt on the RB0/INT pin is edge triggered,  
either rising, if bit INTEDG (OPTION_REG<6>) is set,  
or falling, if the INTEDG bit is clear. When a valid edge  
appears on the RB0/INT pin, flag bit INTF  
(INTCON<1>) is set. This interrupt can be disabled by  
clearing enable bit INTE (INTCON<4>). Flag bit INTF  
must be cleared in software in the interrupt service rou-  
tine before re-enabling this interrupt. The INT interrupt  
can wake-up the processor from SLEEP, if bit INTE was  
set prior to going into SLEEP. The status of global inter-  
rupt enable bit GIE decides whether or not the proces-  
sor branches to the interrupt vector following wake-up.  
See Section 12.13 for details on SLEEP mode.  
During an interrupt, only the return PC value is saved  
on the stack. Typically, users may wish to save key reg-  
isters during an interrupt, (i.e., W register and STATUS  
register). This will have to be implemented in software.  
For the PIC16F873/874 devices, the register W_TEMP  
must be defined in both banks 0 and 1 and must be  
defined at the same offset from the bank base address  
(i.e., If W_TEMP is defined at 0x20 in bank 0, it must  
also be defined at 0xA0 in bank 1.). The registers,  
PCLATH_TEMP and STATUS_TEMP, are only defined  
in bank 0.  
Since the upper 16 bytes of each bank are common in  
the PIC16F876/877 devices, temporary holding regis-  
ters W_TEMP, STATUS_TEMP and PCLATH_TEMP  
should be placed in here. These 16 locations don’t  
require banking and therefore, make it easier for con-  
text save and restore. The same basic code in  
Example 12-1 can be used.  
12.10.2 TMR0 INTERRUPT  
An overflow (FFh 00h) in the TMR0 register will set  
flag bit T0IF (INTCON<2>). The interrupt can be  
enabled/disabled by setting/clearing enable bit T0IE  
(INTCON<5>). (Section 5.0)  
12.10.3 PORTB INTCON CHANGE  
An input change on PORTB<7:4> sets flag bit RBIF  
(INTCON<0>). The interrupt can be enabled/disabled  
by setting/clearing enable bit RBIE (INTCON<4>).  
(Section 3.2)  
EXAMPLE 12-1: SAVING STATUS, W, AND PCLATH REGISTERS IN RAM  
MOVWF  
SWAPF  
CLRF  
MOVWF  
MOVF  
MOVWF  
CLRF  
:
W_TEMP  
STATUS,W  
STATUS  
STATUS_TEMP  
PCLATH, W  
PCLATH_TEMP  
PCLATH  
;Copy W to TEMP register  
;Swap status to be saved into W  
;bank 0, regardless of current bank, Clears IRP,RP1,RP0  
;Save status to bank zero STATUS_TEMP register  
;Only required if using pages 1, 2 and/or 3  
;Save PCLATH into W  
;Page zero, regardless of current page  
:(ISR)  
:
MOVF  
MOVWF  
SWAPF  
PCLATH_TEMP, W  
PCLATH  
STATUS_TEMP,W  
;Restore PCLATH  
;Move W into PCLATH  
;Swap STATUS_TEMP register into W  
;(sets bank to original state)  
;Move W into STATUS register  
;Swap W_TEMP  
MOVWF  
SWAPF  
SWAPF  
STATUS  
W_TEMP,F  
W_TEMP,W  
;Swap W_TEMP into W  
DS30292B-page 132  
1999 Microchip Technology Inc.