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

PIC16F916-I/SO 参数 Datasheet PDF下载

PIC16F916-I/SO图片预览
型号: PIC16F916-I/SO
PDF下载: 下载PDF文件 查看货源
内容描述: 40分之28 / 44/ 64引脚基于闪存的8位CMOS微控制器与LCD驱动器和纳瓦技术 [28/40/44/64-Pin Flash-Based, 8-Bit CMOS Microcontrollers with LCD Driver and nanoWatt Technology]
分类和应用: 驱动器闪存微控制器和处理器外围集成电路光电二极管PC时钟
文件页数/大小: 330 页 / 6045 K
品牌: MICROCHIP [ MICROCHIP ]
 浏览型号PIC16F916-I/SO的Datasheet PDF文件第38页浏览型号PIC16F916-I/SO的Datasheet PDF文件第39页浏览型号PIC16F916-I/SO的Datasheet PDF文件第40页浏览型号PIC16F916-I/SO的Datasheet PDF文件第41页浏览型号PIC16F916-I/SO的Datasheet PDF文件第43页浏览型号PIC16F916-I/SO的Datasheet PDF文件第44页浏览型号PIC16F916-I/SO的Datasheet PDF文件第45页浏览型号PIC16F916-I/SO的Datasheet PDF文件第46页  
PIC16F913/914/916/917/946  
2.3  
PCL and PCLATH  
Note 1: There are no Status bits to indicate stack  
The Program Counter (PC) is 13 bits wide. The low  
byte comes from the PCL register, which is a readable  
and writable register. The high byte (PC<12:8>) is not  
directly readable or writable and comes from  
PCLATH. On any Reset, the PC is cleared. Figure 2-6  
shows the two situations for the loading of the PC. The  
upper example in Figure 2-6 shows how the PC is  
loaded on a write to PCL (PCLATH<4:0> PCH).  
The lower example in Figure 2-6 shows how the PC is  
overflow or stack underflow conditions.  
2: There are no instructions/mnemonics  
called PUSH or POP. These are actions  
that occur from the execution of the CALL,  
RETURN, RETLW and RETFIE instruc-  
tions or the vectoring to an interrupt  
address.  
loaded during  
(PCLATH<4:3> PCH).  
a
CALL or GOTO instruction  
2.4  
Program Memory Paging  
All PIC16F91X/946 devices are capable of addressing  
a continuous 8K word block of program memory. The  
CALL and GOTO instructions provide only 11 bits of  
address to allow branching within any 2K program  
memory page. When doing a CALLor GOTOinstruction,  
the upper 2 bits of the address are provided by  
PCLATH<4:3>. When doing a CALL or GOTO instruc-  
tion, the user must ensure that the page select bits are  
programmed so that the desired program memory  
page is addressed. If a return from a CALLinstruction  
(or interrupt) is executed, the entire 13-bit PC is POPed  
off the stack. Therefore, manipulation of the  
PCLATH<4:3> bits is not required for the RETURN  
instructions (which POPs the address from the stack).  
FIGURE 2-6:  
LOADING OF PC IN  
DIFFERENT SITUATIONS  
PCH  
PCL  
Instruction with  
12  
8
7
0
PCL as  
Destination  
PC  
8
PCLATH<4:0>  
PCLATH  
5
ALU Result  
PCH  
12 11 10  
PC  
PCL  
8
7
0
GOTO, CALL  
Note:  
The contents of the PCLATH register are  
unchanged after a RETURN or RETFIE  
instruction is executed. The user must  
rewrite the contents of the PCLATH regis-  
ter for any subsequent subroutine calls or  
GOTOinstructions.  
PCLATH<4:3>  
PCLATH  
11  
2
OPCODE<10:0>  
2.3.1  
COMPUTED GOTO  
Example 2-1 shows the calling of a subroutine in  
page 1 of the program memory. This example assumes  
that PCLATH is saved and restored by the Interrupt  
Service Routine (if interrupts are used).  
A computed GOTOis accomplished by adding an offset  
to the program counter (ADDWF PCL). When perform-  
ing a table read using a computed GOTOmethod, care  
should be exercised if the table location crosses a PCL  
memory boundary (each 256-byte block). Refer to the  
Application Note AN556, “Implementing a Table Read”  
(DS00556).  
EXAMPLE 2-1:  
CALL OF A SUBROUTINE  
IN PAGE 1 FROM PAGE 0  
ORG 500h  
BCF PCLATH,4  
BSF PCLATH,3 ;Select page 1  
;(800h-FFFh)  
CALL SUB1_P1 ;Call subroutine in  
:
2.3.2  
STACK  
The PIC16F91X/946 family has an 8-level x 13-bit wide  
hardware stack (see Figures 2-1 and 2-2). The stack  
space is not part of either program or data space and  
the Stack Pointer is not readable or writable. The PC is  
PUSHed onto the stack when a CALL instruction is  
executed or an interrupt causes a branch. The stack is  
POPed in the event of a RETURN, RETLWor a RETFIE  
instruction execution. PCLATH is not affected by a  
PUSH or POP operation.  
;page 1 (800h-FFFh)  
:
ORG 900h  
;page 1 (800h-FFFh)  
SUB1_P1  
:
;called subroutine  
;page 1 (800h-FFFh)  
:
RETURN  
;return to  
;Call subroutine  
;in page 0  
;(000h-7FFh)  
The stack operates as a circular buffer. This means that  
after the stack has been PUSHed eight times, the ninth  
PUSH overwrites the value that was stored from the  
first PUSH. The tenth PUSH overwrites the second  
PUSH (and so on).  
DS41250F-page 40  
© 2007 Microchip Technology Inc.  
 复制成功!