单片机原理与应用技术第1章单片机原理.ppt

  1)? 00H~1FH的32个单元   此32个单元被称为工作寄存器区,分为0组~3组,每组8个存储单元,用R0~R7命名。R0~R7称为工作寄存器,每个寄存器存放1个字节的数据。   在任一时刻,4个寄存器组中只有1个有资格成为工作寄存器组,其它不能成为工作寄存器组的3个组只能充当一般的RAM使用。工作寄存器的选择由程序状态字PSW中的PSW.3(RS1)和PSW.4(RS0)位决定: RS1 RS0 0 0 选中0组为工作寄存器组 0 1 选中1组为工作寄存器组 1 0 选中2组为工作寄存器组 1 1 选中3组为工作寄存器组   RS1、RS0的取值通过指令设置,这样,选择哪个寄存器组作为工作寄存器组就取决于编程人员。   当单片机上电或复位时,由于PSW的状态被置成 0000 0000B,因此自动选中0组。   2) ?20H~2FH的16个单元   此16个单元共有128位,被称为位寻址区。16个单元可作为一般的字节存储单元使用。128位的每一位都可以单独利用位操作指令进行清零(CLR)、取反(CPL)、置位(SETB)等操作。为此,给128位的每一位设置了位地址,地址范围为00H~7FH。位寻址区的特点是既可进行字节寻址,又可进行位寻址。位寻址区常用于设置各种状态变量、位控制变量等。   3) ?30H~7FH的80个单元   此80个单元被称为一般RAM区,又叫其余空间。这些单元和工作寄存器区中未被选中的24个单元一起,使一般RAM区可用的存储单元个数达到104个,它们作字节数据缓冲器使用,对这些单元只能进行字节寻址,不能进行位寻址。通常堆栈就设置在从30H开始的区间内。   增强型单片机的片内数据RAM有256 B,地址80H~FFH的128 B和特殊功能寄存器SFR地址重合,区分方法是使用不同的寻址方式。有关寻址方式的内容将在第2章介绍。   2. 特殊功能寄存器SFR   MCS-51单片机内有21个特殊功能寄存器SFR(Special Function Register),每一个寄存器是一个存储单元,但不作一般RAM使用,而是有各自不同的特殊功能,它们分散在80H~FFH的128 B地址空间内,如表1-10所示。表内部分寄存器名前标有“△”符号,表示该寄存器可以进行位寻址,位地址编号为80H~F7H,这样的寄存器有11个,还有10个只能进行字节操作,不能进行位寻址。   128 B地址空间内仅有21个特殊功能寄存器占有字节地址,余下的地址没有任何作用,也不能用指令操作。   21个SFR主要用于描述单片机的状态字和控制字,它们大体上可以分为两类:一类发布单片机的地址信号、控制命令以及输入/输出数据信号,通过单片机引脚形成对外电路的三组总线信号;还有一类作单片机内部控制使用。21个SFR简要介绍如下。   (1) ?P0端口,地址线/数据线分时使用端口。作地址线使用时,输出低8位地址信A0~A7;作数据线使用时,可外接I/O端口,输入/输出数据信号D0~D7。对于地址信号,需要在单片机外使用锁存器(例如8D触发器74LS373、8282等)将其锁存,也需要单片机提供一条地址锁存允许ALE实现锁存功能。由于外接的I/O端口和数据RAM统一编址,因此I/O操作使用存储器操作指令就能完成。例如,MOV 30H,A是把累加器A的内容送地址为30H的存储单元;而MOV P0,A就能实现累加器A的内容经P0口送到单片机外的I/O设备。   (2) ?SP,堆栈指针,用于指示堆栈的栈顶。堆栈是存储器内按照“先入后出”原则组织起来的一段区间,单片机内的堆栈通常设置在片内RAM中,具有向下生长的性质。   MCS-51单片机上电或复位时,SP被置成07H,使得堆栈实际从08H单元开始。为了不影响工作寄存器组R0~R7的选择和位寻址区的使用,通常使用MOV指令将SP的值设置在30H~7FH其余空间内,SP的初始值越小,堆栈的深度就会越深。   堆栈操作为字节操作,有入栈操作和出栈操作两种,分别用PUSH和POP指令实现。图1-11分别画出了指令PUSH ACC和POP B的执行示意图。 图1-11 堆栈及其操作   入栈过程分为两步完成:   ① ?SP自动加1,指向下一单元;   ② ?A的内容进入SP所指单元。完成后,SP依旧指向栈顶。   出栈过程分为两步完成:   ① ?SP所指单元内容送入A;   ② ?SP自动减1,栈顶发生变化,但SP依旧指向栈顶。   在执行调用子程序指令和响应中断时,将自动产生16位的PC值入栈操作;在执行子程序返回和中断返回指令时,将产生出栈操作,栈顶内容自动弹送到PC内。如果在子程序或中断服务程序中要

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档