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

PIC18F8620-I/PT 参数 Datasheet PDF下载

PIC18F8620-I/PT图片预览
型号: PIC18F8620-I/PT
PDF下载: 下载PDF文件 查看货源
内容描述: 八十〇分之六十四引脚高性能1 Mbit的增强型闪存微控制器与A / D [64/80-Pin High Performance 1 Mbit Enhanced FLASH Microcontrollers with A/D]
分类和应用: 闪存微控制器和处理器外围集成电路PC时钟
文件页数/大小: 366 页 / 6797 K
品牌: MICROCHIP [ MICROCHIP ]
 浏览型号PIC18F8620-I/PT的Datasheet PDF文件第40页浏览型号PIC18F8620-I/PT的Datasheet PDF文件第41页浏览型号PIC18F8620-I/PT的Datasheet PDF文件第42页浏览型号PIC18F8620-I/PT的Datasheet PDF文件第43页浏览型号PIC18F8620-I/PT的Datasheet PDF文件第45页浏览型号PIC18F8620-I/PT的Datasheet PDF文件第46页浏览型号PIC18F8620-I/PT的Datasheet PDF文件第47页浏览型号PIC18F8620-I/PT的Datasheet PDF文件第48页  
PIC18FXX20  
4.2.2  
RETURN STACK POINTER  
(STKPTR)  
4.2  
Return Address Stack  
The return address stack allows any combination of up  
to 31 program calls and interrupts to occur. The PC  
(Program Counter) is pushed onto the stack when a  
CALLor RCALLinstruction is executed, or an interrupt  
is acknowledged. The PC value is pulled off the stack  
on a RETURN, RETLW, or a RETFIE instruction.  
PCLATU and PCLATH are not affected by any of the  
RETURNor CALLinstructions.  
The stack operates as a 31-word by 21-bit RAM and a  
5-bit stack pointer, with the stack pointer initialized to  
00000b after all RESETS. There is no RAM associated  
with stack pointer 00000b. This is only a RESET value.  
During a CALLtype instruction, causing a push onto the  
stack, the stack pointer is first incremented and the  
RAM location pointed to by the stack pointer is written  
with the contents of the PC. During a RETURN type  
instruction, causing a pop from the stack, the contents  
of the RAM location pointed to by the STKPTR are  
transferred to the PC and then the stack pointer is  
decremented.  
The STKPTR register contains the stack pointer value,  
the STKFUL (stack full) status bit, and the STKUNF  
(stack underflow) status bits. Register 4-2 shows the  
STKPTR register. The value of the stack pointer can be  
0 through 31. The stack pointer increments when val-  
ues are pushed onto the stack and decrements when  
values are popped off the stack. At RESET, the stack  
pointer value will be ‘0’. The user may read and write  
the stack pointer value. This feature can be used by a  
Real-Time Operating System for return stack  
maintenance.  
After the PC is pushed onto the stack 31 times (without  
popping any values off the stack), the STKFUL bit is  
set. The STKFUL bit can only be cleared in software or  
by a POR.  
The action that takes place when the stack becomes  
full, depends on the state of the STVREN (Stack Over-  
flow Reset Enable) configuration bit. Refer to  
Section 24.0 for a description of the device configura-  
tion bits. If STVREN is set (default), the 31st push will  
push the (PC + 2) value onto the stack, set the STKFUL  
bit, and reset the device. The STKFUL bit will remain  
set and the stack pointer will be set to ‘0’.  
The stack space is not part of either program or data  
space. The stack pointer is readable and writable, and  
the address on the top of the stack is readable and writ-  
able through SFR registers. Data can also be pushed  
to, or popped from, the stack using the top-of-stack  
SFRs. Status bits indicate if the stack pointer is at, or  
beyond the 31 levels provided.  
If STVREN is cleared, the STKFUL bit will be set on the  
31st push and the stack pointer will increment to 31.  
Any additional pushes will not overwrite the 31st push,  
and STKPTR will remain at 31.  
When the stack has been popped enough times to  
unload the stack, the next pop will return a value of zero  
to the PC and sets the STKUNF bit, while the stack  
pointer remains at ‘0’. The STKUNF bit will remain set  
until cleared in software or a POR occurs.  
4.2.1  
TOP-OF-STACK ACCESS  
The top of the stack is readable and writable. Three  
register locations, TOSU, TOSH and TOSL hold the  
contents of the stack location pointed to by the  
STKPTR register. This allows users to implement a  
software stack if necessary. After a CALL, RCALLor  
interrupt, the software can read the pushed value by  
reading the TOSU, TOSH and TOSL registers. These  
values can be placed on a user defined software stack.  
At return time, the software can replace the TOSU,  
TOSH and TOSL and do a return.  
Note: Returning a value of zero to the PC on an  
underflow has the effect of vectoring the  
program to the RESET vector, where the  
stack conditions can be verified and  
appropriate actions can be taken.  
The user must disable the global interrupt enable bits  
during this time to prevent inadvertent stack  
operations.  
DS39609A-page 42  
Advance Information  
2003 Microchip Technology Inc.