|
|
PICRICE实时在线仿真器简介 |
▲ PICRICE实时在线仿真系统,用于在线仿真PIC系列单片机,如PIC12C5XX、PIC16C5X/55X/6X/62X/7X/72X/8X等。其开发功能强大,使用方便。
▲ 采用MICROCHIP公司提供的专用仿真芯片设计,通过不同的从属仿真CPU芯片和相应的仿真头即可实时在线仿真PIC系列单片机。
▲ 通过计算机并行口(打印口)相连操作。
| |
PIC16CX 单片机程序计数器
| 深圳市凌雁电子有限公司 |
2.程序计数器f2(PC)
程序计数器给出片内2048x12的ROM地址,不同的型号程序计数器与它们的两层堆栈为9-11位寛,如表1所示。
|
表1 程序计数器PC与堆栈大小 |
型号 |
PC宽度/位 |
堆栈宽度/位 |
PIC16C54/55 |
9 |
9 |
PIC16C56 |
10 |
10 |
PIC16C57 |
11 |
11 |
|
系统复位后,PC为全“1”,程序执行每一条指令PC自动加“1”,除非程序指令本身改变PC的内容(例如程序跳转,中断服务等),下面的指令将改变PC的值。
[1].“GOTO”指令:允许直接装入程序计数器的低8位,对于PIC16C56/57/58,PC的最高位由PA0、PA1两个页面选择位(也即状态寄存器的5、6位确定),此指令允许跳到任一页的任意位置。
[2].“CALL”指令:先把当前PC的值压入堆栈,然后使第9位清“0”,并把低8位装入程序计数器PC,对于PIC16C56/57/58,PC的高两位被装入页面选择位PA0、PA1。
[3].“RETLW”指令:该返回指令直接把栈顶内容重装入PC。
[4].程序计数器可由某位指令改变(例如MOVWF f2,ADDWF f2或BSF f2,5)计算结果将装入PC低8位,第9位清“0”。对于PIC16C56/57/58,PC的高两位被装入页面选择位PA0、PA1。
需要注意的是:在执行“CALL”或其它改变PC值指令时,第9位会被清“0”,所有子程序调用指令和需要计算的跳转指令时,要把分支程序放在任何页面(512字节)的前256个单元(地址分别为000-0FFH、200-2FFH、400-4FFH、600-6FFH)。
多个程序存储器页面选择(对PIC16C56/57/58有效)情况下,当程序计数器指向所在存储页的最后地址时,它仍能加1,并继续执行到下一页面,但PA0,PA1页面选择位不会改变,以后的“GOTO”、“CALL”、“ADDWF f2”、“MOVWFf2”等指令会返回原来的页面,除非页面选择位在程序中被更改。例如NOP指令位于1FFH(0页),PC加1变为200(1页),一条在200的“GOTO XXX”指令将返回0页的XXX地址(若f3的页预选位“0”)。
RESET状态下,PA0、PA1清“0”,0页会成为预选页。同时程序计数器PC会对最后一页的最后一个单元寻址。因此,在这个位置的“GOTO”指令会自动返回至0页执行。
| |
|