1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C51结构

执行第一条指令 PUSH 40H,首先(SP) ←(SP)+1 =2FH+1=30H,然后将40H中的数据22H,送入堆栈指针SP指向的单元30H中,如图3-16(a)所示。第一个进栈的数据不是堆栈指针指向的初始单元,在计算机中数据的传送,不是完全给予的意思,而是复制,40H单元数据进栈后,影响了堆栈指针指向的单元,但不影响40H这个单元的原始数据,所以40H的数据仍为22H。 执行第二条指令 PUSH 41H,进栈过程同第一条指令。进栈后,示意图如图3-16(b)所示。 执行第三条指令 POP 40H,首先是取堆栈指针指向单元的数据给40H,则40H的数据为33H,然后将(SP) ←(SP)-1=31H-1=30H,执行完后,示意图如图3-16(c)所示。 执行第四条指令 POP 41H,出栈过程同第四条指令,示意图如图3-16(d)所示。当数据取出后,堆栈指针又回到初始状态,如图3-15所示。但原来进栈的数还存于堆栈中,直到下次进栈的数据将其覆盖。 该程序,是将40H和41H的数据交换,进栈两次,出栈两次,所以堆栈指针SP的值,仍为初始值2FH,堆栈指针的初始值指向的单元,是不能用于存放堆栈数据的,第一个入栈的数据,是该单元的地址加1单元。 系统复位时堆栈指示器的值为07H,即指向的是工作寄存器区0组的R7单元,如图3-17所示,第一个入栈的数放于08H单元,但堆栈一般开辟在用户区(30H~7FH)中。堆栈的深度是由数据连续进栈的次数来决定的。若根据某个程序设计的需要,需要16个单元堆栈来存储数据,堆栈开辟在40H到4FH单元,则堆栈指示器SP的初始值应付3FH,第一个入栈的数放入40H中,在程序的设计中,40H~41H中不能用于其它的数据的存放,否则数据被覆盖。若实际进栈的数据超出了16个单元,则堆栈溢出,溢出的单元在50H以上,这些单元没有数据,则没有影响,否则影响原有数据。堆栈指针始终指向的是堆栈的栈顶位置。 注:★ 51子系列中,共有18个SFR(特殊功能寄存器), 占用21个单元,我们先学5个SFR(共6个单元), 其余SFR在后面的学习中,会逐步的给大家介绍。 ★ 这18个SFR,21个单元中,字节地址能被8整除的单 元是可以进行位寻址的,也就是说字节地址的后面 一位是0或者8,都是可以进行位寻址的(bit)。 ★ 可位寻址的单元,可以用位地址、位编号或位定 义,在寻址中都称之为位寻址(bit)。 ★ 系统复位后,各寄存器的值如表3-4所示。 2.4 80C51存储器结构    问题:位寻址范围为00H~7FH,而片内RAM字节地址范围也是00H~7FH,问CPU对这部分RAM空间访问时会不会混淆? 答案:不会。    原因:单片机可根据指令的寻址方式来区分。  例:   MOV 2AH,A ;字节寻址,把A中内容送入字节地址为2AH单元   MOV 2AH,C ;位寻址,把PSW中最高位C中的数送入位地址2AH处 * SP (Stack Pointer): 堆栈指针,8位寄存器,用来指定堆栈的栈顶位置,初值为07H。它是加1计数。 堆栈操作遵循“后进先出”的原则 入栈操作时:SP先加1,数据再压入SP指向的单元。 出栈操作时: 先将SP指向的单元的数据弹出,SP再减1,这时SP指向的单元是新的栈顶。 80C51单片机的堆栈区是向地址增大的方向生成的。 DPTR (Data Pointer)(分成DPH、DPL两个): 数据指针可以用它来访问外部数据存储器中的任一单元,也可以作为通用寄存器来用,由我们自已决定如何使用。 二、指针类寄存器(3个) * P0、P1、P2、P3: 四个并行输入/输出口的寄存器。它里面的内容对应着管脚的输出。 SCON (Serial Control Register) SBUF (Serial Date Buffer) PCON (Power Control Register) 三、与口相关的寄存器(7个) 四、与中断相关的寄存器(2个) IP (Interrupt Priority Register) IE (Interrupt Enable Register) * TMOD (Timer/Counter Mode Register) 定时器工作模式寄存器。 TCON (Timer/Counter Control Register)

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档