(6) P:奇偶标志位每个指令周期由硬件来置位或清零用以表示累加器A中1
的个数的奇偶性,若累加器中1的个数为奇数则P=1,否则P=0。
程序计数器(PC)的位宽(16bit)决定了单片机可访问的程序存储器的最大容量为216=64K
PC与DPTR的异同点:
相同点:
1、都是与地址有关的16位寄存器
2、都是通过P0(低)、P2(高)口输出地址的。
不同点:
1、PC 对应程序存储器,DPTR对应数据存储器。
PC输出与ALE和PSEN*有关;DPTR输出与ALE、WR*、RD*有关。
PC只能作为16位的寄存器,DPTR可以作为16位寄存器也可作为两个8位的寄存器
PC不能用MOV指令访问,DPTR是可以的。
51系列单片机的存储器还可以从物理结构上可以分为:片内、片外程序存储器和片内、片外数据存储器4部分
80C51的程序存储器中有些单元具有特殊功能,使用时应予以注意。
其中一组特殊单元是0000H~0002H。系统复位后,(PC)=0000H,单片机从0000H 单元开始取指令执行程序。如果程序不从0000H单元开始,应在这三个单元中存放一条无条件转移指令,以便直接转去执行指定的程序。
还有一组特殊单元是0003H~002AH。共40个单元,这40个单元被均匀地分为五段,作为五个中断源的中断地址区。其中:
?0003H~000AH 外部中断0中断地址区
?000BH~0012H 定时器/计数器0中断地址区
?0013H~001AH 外部中断1中断地址区
?001BH~0022H 定时器/计数器1中断地址区
?0023H~002AH 串行中断地址区
?中断响应后,按中断种类,自动转到各中断区的首地址去执行程序。因
此在中断地址区中理应存放中断服务程序。但通常情况下,8个单元难以
存下一个完整的中断服务程序,因此通常也是从中断地址区首地址开始
存放一条无条件转移指令,以便中断响应后,通过中断地址区,再转到
中断服务程序的实际入口地址去。
在实际应用中,常需在RAM区(位寻址区之后的30H至7FH共80个字节)设置堆栈。80C51的堆栈一般设在30H~7FH的范围内。栈顶的位置由SP寄存器指示。复位时SP的初值为07H(开始于08H),在程序初始化时可以重新设置。
堆栈指针SP,8位。它总是指向栈顶。 80C51单片机的堆栈常设在30H~7FH这一段RAM中。堆栈操作遵循“后进先出”的原则,入栈操作时,SP先加1,数据再压入SP指向的单元。出栈操作时,先将SP指向的单元的数据弹出,然后,SP再减1,这时SP指向的单元是新的栈顶。可见,80C51单片机的堆栈区是向地址增大的方向生成的(与常用的80X86微机不同);
数据指针DPTR,16位。用来存放16位的地址。它由两个8位的寄存器DPH和DPL组成。间接寻址或变址寻址可访问片外的64KB范围的RAM或ROM数据。CPU时序
一个机器周期包含12个晶振周期或6个时钟(状态)周期