编辑: bingyan8 2013-02-03

否则,AC=0.该位常用于BCD码的调整.F0:用户标志位 RS

1、RS0:选择工作寄存器组位 用于选择内部数据存储器区内4组工作寄存器中的某一组.具体选择情况见寄存器介绍部分.OV:溢出标志位 运算结果超出机器所能表示的范围时称溢出.溢出是指有符号数运算时,数值超过了+127---128. OV=Cy7?Cy6,补码运算产生溢出OV=1,否则OV=0 P:奇偶校验标志位 根据累加器ACC中1的个数由硬件置位或清除,当累加器ACC中有奇数个1时P=1;

否则,P=0.PSW.1:保留位 无定义. 【例】:分析执行下列指令序列后,A、C、AC、OV、P的内容是什么?MOV A,#79H ADD A,#58H ? 该指令功能是将79H+58H→A.计算过程如下:79H)

01111001 +(58H)

01011000 D1H)

11010001 A=D1H最高位无进位,C=0;

低半字节有进位,AC=1;

OV=1,发生溢出;

A中1的个数为偶数,P=0. (5)临时寄存器TMP1和TMP2 这两个寄存器专门供ALU存放临时数据,用户不可以直接访问.(6)程序控制逻辑 包括程序计数器PC、指令寄存器IR、指令译码器ID、振荡器及定时电路等.程序计数器PC 16位字节地址计数器,PC中的内容是将要执行的下一条指令的地址.改变PC的内容就可改变程序执行的方向.指令寄存器IR及指令译码器ID CPU把由PC中的内容决定的Flash或ROM地址中的指令代码取出后,经指令寄存器IR送至指令译码器ID进行译码,译码后产生一定序列的控制信号,以执行指令所规定的操作(例如,把片内工作寄存器中的数据传送到外部I/0口). 2.2.2 MCS-51的存储空间及应用配置 89C51存储器 程序存储器ROM 数据存储器RAM 片内程序存储器 片外程序存储器 片内数据存储器 片外数据存储器 2.2.2 MCS-51的存储空间及应用配置 MCS-51系列单片机的存储器在物理结构上分为程序存储器空间和数据存储器空间. (哈佛结构)程序存储器空间采用片内、片外统一编址的方式,共有64KB,地址范围为 0000H~FFFFH (用16位地址表示).数据存储器:片内有256字节数据存储器地址空间,地址范围为 00H~FFH (用8位地址表示). 除了片内数据存储器空间,MCS-51还有64KB的片外数据存储器空间,其地址范围也是 0000H~FFFFH (用16位地址表示).片内、片外数据存储器空间的访问通过不同的数据访问指令来区分开来.片外数据存储器空间和片外程序存储器空间,采用的外部地址总线和数据总线是相同的,不同的是控制总线不一样. MCS-51系列单片机的存储器分配如下图所示: (1)程序存储器空间配置 程序存储器空间的片内、片外选择通过单片机的引脚EA来实现:当EA接低电平时(EA=0),程序存储器空间的前4KB(MCS-52是8KB)由片外实现 当EA接高电平时(EA=1),程序存储器空间的前4KB(MCS-52是8KB)由片内实现.对于8031/80C31/8032/80C32这些片内没有ROM的单片机,EA引脚必须接低电平.对于具有片内FLASH或者ROM的这些单片机,如果使用片内存储器,引脚必须接高电平. (2)片内数据存储器空间配置 MCS-51系列单片机片内最多可以配置256字节的数据存储器空间,地址从00H~FFH.片内数据存储器分为两部分:低128字节(00H~7FH)是真正的RAM区高128字节(80H~FFH)为特殊功能寄存器(SFR)区(MCS-52也有高128字节的数据存储单元,它们和特殊功能寄存器重叠的,区分这些重叠的高128字节存储单元的方法是使用不同的寻址方式,SFR使用直接寻址而数据存储单元使用间接寻址). MCS-51系列单片机的SFR都是采用直接寻址方式进行访问的. ①特殊功能寄存器(SFR) 在MCS-51系列单片机片内高128字节RAM中,有21个特殊功能寄存器(SFR),它们离散地分布在80H~FFH的RAM空间中.这些特殊功能寄存器提供了CPU以及其它功能部件(如定时器计数器、串行口、并行口等)所需要的控制、状态和缓冲寄存器.由于这些寄存器一般都具有特殊的功能,因此称为特殊功能寄存器.这些寄存器的分布如图所示. 栈指针SP(81H) 堆栈:在MCS-51系列单片机片内RAM中,常常要指定一个专门的区域来存放某些特别的数据,它遵循顺序存取和后进先出的原则,这个RAM区叫做堆栈.堆栈中的数据一般是某些事件发生时的CPU状态或者寄存器的值. 比如说,当中断到来时,为了防止中断服务程序中的操作对某些寄存器(如PSW、ACC等)形成破坏,需要将这个寄存器保护起来,我们就可以把这些需要保护的寄存器的值压入堆栈,等服务程序执行完毕后,再把这些寄存器的值恢复出来,这个过程我们叫做现场的保护与恢复. 特殊功能寄存器堆栈指针SP地址为81H,SP的功能就是用来指向堆栈的栈顶的. 压栈(执行PUSH指令)时: SP自动加1,然后把被压的数据放到SP指向的单元.SP仍然指向栈顶,如左图所示. 弹栈(执行POP指令)时:先把SP指向的单元弹出,然后把SP减1,如右图所示. 数据指针DPTR(83H,82H)DPTR是一个16位的特殊功能寄存器. 高位字节寄存器用DPH表示(地址83H), 低位字节寄存器用DPL表示(地址82H). DPTR既可以作为一个16位寄存器来处理,也可以作为两个独立的8位寄存器DPH和DPL使用.DPTR主要用于存放16位地址,以便对64 KB片外RAM作间接寻址,这在

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题