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

PIC16F873A-I/SO 参数 Datasheet PDF下载

PIC16F873A-I/SO图片预览
型号: PIC16F873A-I/SO
PDF下载: 下载PDF文件 查看货源
内容描述: 40分之28引脚增强型闪存微控制器 [28/40-pin Enhanced FLASH Microcontrollers]
分类和应用: 闪存微控制器和处理器外围集成电路光电二极管PC时钟
文件页数/大小: 222 页 / 3815 K
品牌: MICROCHIP [ MICROCHIP ]
 浏览型号PIC16F873A-I/SO的Datasheet PDF文件第150页浏览型号PIC16F873A-I/SO的Datasheet PDF文件第151页浏览型号PIC16F873A-I/SO的Datasheet PDF文件第152页浏览型号PIC16F873A-I/SO的Datasheet PDF文件第153页浏览型号PIC16F873A-I/SO的Datasheet PDF文件第155页浏览型号PIC16F873A-I/SO的Datasheet PDF文件第156页浏览型号PIC16F873A-I/SO的Datasheet PDF文件第157页浏览型号PIC16F873A-I/SO的Datasheet PDF文件第158页  
PIC16F87XA  
14.11.1 INT INTERRUPT  
14.12 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  
Routine before re-enabling this interrupt. The INT inter-  
rupt can wake-up the processor from SLEEP, if bit INTE  
was set prior to going into SLEEP. The status of global  
interrupt enable bit, GIE, decides whether or not the  
processor branches to the interrupt vector following  
wake-up. See Section 14.14 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 PIC16F873A/874A 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 regis-  
ters, PCLATH_TEMP and STATUS_TEMP, are only  
defined in bank 0.  
Since the upper 16 bytes of each bank are common in  
the PIC16F876A/877A devices, temporary holding reg-  
isters 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 code shown in  
Example 14-1 can be used.  
14.11.2 TMR0 INTERRUPT  
An overflow (FFh 00h) in the TMR0 register will set  
flag bit TMR0IF (INTCON<2>). The interrupt can be  
enabled/disabled by setting/clearing enable bit  
TMR0IE (INTCON<5>) (Section 5.0).  
14.11.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 4.2).  
EXAMPLE 14-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)  
:
;(Insert user code here)  
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  
DS39582A-page 152  
AdvanceInformation  
2001 Microchip Technology Inc.  
 复制成功!