nj单片机原理及应用(C语言版)第2章研讨
单片机原理及应用 (C语言版)第2章 MCS-51单片机结构与原理 第2章 MCS-51单片机结构与原理 本章讨论MCS-51单片机的结构和工作原理,是单片机的基本内容,不仅是学习后面各个章节的基础,也是从事单片机应用开发的基础。 2.1 MCS-51单片机内部结构及CPU 主要内容 2.1.1 MCS-51单片机的功能结构及特点 2.1.2 MCS-51单片机的内部原理结构 2.1.3 MCS-51单片机的CPU 2.1.1 MCS-51单片机的功能结构及特点 MCS-51单片机的内部功能结构如图2-1所示,图中以增强型单片机的结构为对象。 2.1.3 MCS-51单片机的CPU MCS-51单片机内部有一个功能强大的8位CPU,它包含两个基本部分,运算器和控制器。 一、运算器 运算器包括:算术和逻辑运算部件ALU(Arithmetic Logic Unit) 以及累加器ACC、寄存器B、暂存器1、暂存器2、程序状态字寄存器PSW、布尔处理器等。 2.1.3 MCS-51单片机的CPU 1、算术逻辑运算部件ALU ALU可以对4位(半字节)、8位(一字节)和16位(双字节)数据进行操作。 这些操作可以是:算术运算:加、减、乘、除、加1、减1、BCD码数的十进制调整及比较等; 逻辑运算:与、或、异或、求补及循环移位等。 2.1.3 MCS-51单片机的CPU 2、累加器ACC ACC在CPU结构中占有特殊的位置,所以ACC在指令中使用的非常多。 ACC既做源操作数又做目的操作数,如在加、减、乘、除算术运算指令中,在与、或、异或、循环移位逻辑运算指令等。 ACC也作为通用寄存器使用,并且可以按位操作,所以ACC是一个用处最多、最忙碌的寄存器。 在指令中用助记符A来表示。 2.1.3 MCS-51单片机的CPU 3、B寄存器 B做专门应用:在乘、除运算时,用来存放一个操作数,并且存放运算后的部分结果。 B做一般应用:在非乘、除运算中,B可以作为通用寄存器使用。 B可以按位操作 2.1.3 MCS-51单片机的CPU 5、布尔处理器 布尔处理器以PSW中的进位标志位CY作为位累加器(用C表示)。 功能:专门用于处理位操作。MCS-51单片机有丰富的位处理指令:如置位、位清0、位取反、判断位值(为1或为0)转移,以及通过C(指令中用C代替CY)做位数据传送、位逻辑与、位逻辑或等位操作。 2.1.3 MCS-51单片机的CPU 二、控制器 控制器包括程序计数器PC、指令寄存器IR、指令译码器ID,以及时钟控制逻辑、堆栈指针SP、地址指针DPTR等。 1、程序计数器PCPC是一个具有自加1功能的16位的计数器PC的内容是将要执行的下一条指令的地址 改变PC的内容就改变了程序执行的顺序 2.1.3 MCS-51单片机的CPU 2、指令寄存器IR和指令译码器ID IR:存放从Flash ROM中读取的指令 ID:进行译码,产生一定序列的控制信号,完成指令所规定的操作。 3、堆栈(1)堆栈的概念堆栈是在RAM中专门开辟的一个特殊用途的存储区。 (2)堆栈的访问原则: “先进后出”、“后进先出” 。即先进入堆栈的数据后移出堆栈,即后进入堆栈的数据先移出堆栈。 2.1.3 MCS-51单片机的CPU (3)堆栈的结构 堆栈的一端的地址是固定的,称为栈底;另一端的地址是动态变化的,称为栈顶。 (4)堆栈的操作方式堆栈有两种操作方式:数据进栈和数据出栈。 进栈和出栈都是在栈顶进行,这就必然是按照“先进后出”、“后进先出”的方式存取数据。 2.1.3 MCS-51单片机的CPU (5)堆栈的应用 主要是用来暂时存放数据,有两种情况使用堆栈: 一是CPU自动使用堆栈,当调用子程序或响应中断,处理中断服务程序时,CPU自动将返回地址存放到堆栈中;通过堆栈传递参数。 二是程序员使用堆栈,用堆栈暂时存放数据。 2.1.3 MCS-51单片机的CPU 4、堆栈指针SP 堆栈指针SP(Stack Pointer)中为栈顶的地址,即SP指向栈顶。 SP是访问堆栈的间址寄存器 SP具有自动加1、自动减1功能。当数据进栈时,SP先自动加1,然后CPU将数据存入;当数据出栈时,CPU先将数据送出,然后SP自动减1。 数据进栈时SP的变化过程。 2.1.3 MCS-51单片机的CPU 5、数据指针DPTR DPTR是唯一的16位寄存器。 DPTR既可以作为