第十三课:51单片机CPU的内部结构

在前面的课程中,我们已知道了单片机内部有一个8位的CPU,同时知道了CPU内部包含了运算器,控制器及若干寄存器。在这节课,我们就与大家一起来讨论一下51单片机CPU的内部结构及工作原理。

从上图中我们可以看到,在虚线框内的就是CPU的内部结构了,8位的MCS-51单片机的CPU内部有数术逻辑单元ALU(Arithmetic Logic Unit)、累加器A(8位)、寄存器B(8位)、程序状态字PSW(8位)、程序计数器PC(有时也称为指令指针,即IP,16位)、地址寄存器AR(16位)、数据寄存器DR(8位)、指令寄存器IR(8位)、指令译码器ID、控制器等部件组成。

1、运算器(ALU)的主要功能

A)算术和逻辑运算,可对半字节(一个字节是8位,半个字节就是4位)和单字节数据进行操作。

B)加、减、乘、除、加1、减1、比较等算术运算。

C)与、或、异或、求补、循环等逻辑运算。

D)位处理功能(即布尔处理器)。

由于ALU内部没有寄存器,参加运算的操作数,必须放在累加器A中。累加器A也用于存放运算结果。

例如:执行指令 ADD A,B

执行这条指令时,累加器A中的内容通过输入口In_1输入ALU,寄存器B通过内部数据总线经输入口In_2输入ALU,A+B的结果通过ALU的输出口Out、内部数据总线,送回到累加器A。

2、程序计数器PC

PC的作用是用来存放将要执行的指令地址,共16位,可对64K ROM直接寻址,PC低8位经P0口输出,高8位经P2口输出。也就是说,程序执行到什么地方,程序计数器PC就指到哪里,它始终是跟蹿着程序的执行。我们知道,用户程序是存放在内部的ROM中的,我们要执行程序就要从ROM中一个个字节的读出来,然后到CPU中去执行,那么ROM具体执行到哪一条呢?这就需要我们的程序计数器PC来指示。

程序计数器PC具有自动加1的功能,即从存储器中读出一个字节的指令码后,PC自动加1(指向下一个存储单元)。

3、指令寄存器IR

指令寄存器的作用就是用来存放即将执行的指令代码。

在这里我们先简单的了解下CPU执行指令的过程,首先由程序存储器(ROM)中读取指令代码送入到指令寄存器,经译码器译码后再由定时与控制电路发出相应的控制信号,从而完成指令的功能。关于指令在单片机内部的执行过程,我们在后面将会以另一节课来进行详细的讲解。

4、指令译码器ID

用于对送入指令寄存器中的指令进行译码,所谓译码就是把指令转变成执行此指令所需要的电信号。当指令送入译码器后,由译码器对该指令进行译码,根据译码器输出的信号,CPU控制电路定时地产生执行该指令所需的各种控制信号,使单片机正确的执行程序所需要的各种操作。

5、地址寄存器AR(16位)

AR的作用是用来存放将要寻址的外部存储器单元的地址信息,指令码所在存储单元的地址编码,由程序计数器PC产生,而指令中操作数所在的存储单元地址码,由指令的操作数给定。从上图中我们可以看到,地址寄存器AR通过地址总线AB与外部存储器相连。

6、数据寄存器DR

用于存放写入外部存储器或I/O端口的数据信息。可见,数据寄存器对输出数据具有锁存功能。数据寄存器与外部数据总线DB直接相连。

7、程序状态字PSW

用于记录运算过程中的状态,如是否溢出、进位等。

例如,累加器A的内容83H,执行:

ADD A,#8AH ;累加器A与立即数8AH相加,并把结果存放在A中。

指令后,将产生和的结果为[1]0DH,而累加器A只有8位,只能存放低8位,即0DH,元法存放结果中的最高位B8。为些,在CPU内设置一个进位标志位C,当执行加法运算出现进位时,进位标志位C为1。

8、时序部件

由时钟电路和脉冲分配器组成,用于产生微操作控制部件所需的定时脉冲信号

在后面的课程中我们将会安排一节课来讲解这些专用的寄存器。

http://www.jdzyjs.com/dianqi/4823.html

在前面的课程中,我们已知道了单片机内部有一个8位的CPU,同时知道了CPU内部包含了运算器,控制器及若干寄存器。在这节课,我们就与大家一起来讨论一下51单片机CPU的内部结构及工作原理。

从上图中我们可以看到,在虚线框内的就是CPU的内部结构了,8位的MCS-51单片机的CPU内部有数术逻辑单元ALU(Arithmetic Logic Unit)、累加器A(8位)、寄存器B(8位)、程序状态字PSW(8位)、程序计数器PC(有时也称为指令指针,即IP,16位)、地址寄存器AR(16位)、数据寄存器DR(8位)、指令寄存器IR(8位)、指令译码器ID、控制器等部件组成。

1、运算器(ALU)的主要功能

A)算术和逻辑运算,可对半字节(一个字节是8位,半个字节就是4位)和单字节数据进行操作。

B)加、减、乘、除、加1、减1、比较等算术运算。

C)与、或、异或、求补、循环等逻辑运算。

D)位处理功能(即布尔处理器)。

由于ALU内部没有寄存器,参加运算的操作数,必须放在累加器A中。累加器A也用于存放运算结果。

例如:执行指令 ADD A,B

执行这条指令时,累加器A中的内容通过输入口In_1输入ALU,寄存器B通过内部数据总线经输入口In_2输入ALU,A+B的结果通过ALU的输出口Out、内部数据总线,送回到累加器A。

2、程序计数器PC

PC的作用是用来存放将要执行的指令地址,共16位,可对64K ROM直接寻址,PC低8位经P0口输出,高8位经P2口输出。也就是说,程序执行到什么地方,程序计数器PC就指到哪里,它始终是跟蹿着程序的执行。我们知道,用户程序是存放在内部的ROM中的,我们要执行程序就要从ROM中一个个字节的读出来,然后到CPU中去执行,那么ROM具体执行到哪一条呢?这就需要我们的程序计数器PC来指示。

程序计数器PC具有自动加1的功能,即从存储器中读出一个字节的指令码后,PC自动加1(指向下一个存储单元)。

3、指令寄存器IR

指令寄存器的作用就是用来存放即将执行的指令代码。

在这里我们先简单的了解下CPU执行指令的过程,首先由程序存储器(ROM)中读取指令代码送入到指令寄存器,经译码器译码后再由定时与控制电路发出相应的控制信号,从而完成指令的功能。关于指令在单片机内部的执行过程,我们在后面将会以另一节课来进行详细的讲解。

4、指令译码器ID

用于对送入指令寄存器中的指令进行译码,所谓译码就是把指令转变成执行此指令所需要的电信号。当指令送入译码器后,由译码器对该指令进行译码,根据译码器输出的信号,CPU控制电路定时地产生执行该指令所需的各种控制信号,使单片机正确的执行程序所需要的各种操作。

5、地址寄存器AR(16位)

AR的作用是用来存放将要寻址的外部存储器单元的地址信息,指令码所在存储单元的地址编码,由程序计数器PC产生,而指令中操作数所在的存储单元地址码,由指令的操作数给定。从上图中我们可以看到,地址寄存器AR通过地址总线AB与外部存储器相连。

6、数据寄存器DR

用于存放写入外部存储器或I/O端口的数据信息。可见,数据寄存器对输出数据具有锁存功能。数据寄存器与外部数据总线DB直接相连。

7、程序状态字PSW

用于记录运算过程中的状态,如是否溢出、进位等。

例如,累加器A的内容83H,执行:

ADD A,#8AH ;累加器A与立即数8AH相加,并把结果存放在A中。

指令后,将产生和的结果为[1]0DH,而累加器A只有8位,只能存放低8位,即0DH,元法存放结果中的最高位B8。为些,在CPU内设置一个进位标志位C,当执行加法运算出现进位时,进位标志位C为1。

8、时序部件

由时钟电路和脉冲分配器组成,用于产生微操作控制部件所需的定时脉冲信号

在后面的课程中我们将会安排一节课来讲解这些专用的寄存器。

http://www.jdzyjs.com/dianqi/4823.html


相关内容

  • 51单片机存储器内部结构
  • MCS-51单片机在物理结构上有四个存储空间: 1.片内程序存储器 2.片外程序存储器 3.片内数据存储器 4.片外数据存储器 但在逻辑上,即从用户的角度上,8051单片机有三个存储空间: 1.片内外统一编址的64K 的程序存储器地址空间(MOVC ) 2.256B 的片内数据存储器的地址空间(MO ...

  • [单片机原理及应用]课程设计
  • <微机控制技术及应用> 课程设计 题 目∶ 院 系∶ 8051单片机系统扩展 专业班级∶ 姓 名∶ 学 号∶ 指导教师∶ 成 绩∶ 目录 引言 -----------------------------------(2) 一.设计目的和要求------------------------ ...

  • 单片机分类
  • ATMEL公司的AVR单片机,是增强型RISC内载Flash的单片机,芯片上的Flash存储器附在用户的产品中,可随时编程,再编程,使用户的产品设计容易,更新换代方便.AVR单片机采用增强的RISC结构,使其具有高速处理能力,在一个时钟周期内可执行复杂的指令,每MHz可实现1MIPS的处理能力.AV ...

  • 微机接口技术在单片机中的应用
  • 第16卷第2期 2005年4月 JOURNALOFGUIZHOUEDUCATIONALCOLLEGE(NaturaiSciences) 贵州教育学院学报(自然科学) Voi.16.No.2 Apr.2005 微机接口技术在单片机中的应用 唐晓慧 (贵州教育学院数学系,贵州贵阳 550003) 摘要: ...

  • 51单片机原理及应用期末考试试题汇总6
  • 1.若累加器A中的数据为67H,则PSW中的P=_1__. 2. 一个机器周期= _6_个状态周期=12个振荡周期. 3.89C51的堆栈是按照先进后出的原则进行存取的RAM区. 4. 用一条指令实现以下功能: 若A中数据不等于200,则程序转至PROM_ CJNZ A,#200H,PROM__. ...

  • 单片机种类
  • 1.Motorola 单片机(现在为飞思卡尔): Motorola是世界上最大的单片机厂商,品种全,选择余地大,新产品多,在8位机方面有 68HC05和升级产品68HC08,68HC05有30多个系列200多个品种,产量超过20亿片.8位增强型单片机68HC11也有30多个品种,年产量1亿片以上,升 ...

  • 单片机及其应用的文献综述
  • 单片机及其应用的文献综述 摘要:单片机由于其特点和突出的性能被广泛应用于各个领域,随着社会的发展和技术的进步,各种新型单片机层出不穷,片内集成的功能模块越来越多,整体性能也越来越强大.本文主要介绍了单片机的种类.特点.主要的生产厂家和应用领域等,概述介绍了单片机应用技术的进展和动向. 关键词:单片机 ...

  • 习题1答案单片机硬件基础
  • 习题一答案 单片机硬件基础 一.选择题 1.在计算机中,字符的编码普遍采用的是( B ) A)BCD 码 B)ASCII 码 C)余3码 D)格雷码 2.在MCS-51系统中,若晶振频率是6MHz ,一个机器周期等于( D ) μs A)0.5 B)1 C)1.5 D)2 3.MCS-51的时钟最高 ...

  • 单片机题库带答案
  • 单片机题库 一.填空题 1.当使用8031单片机时,需要扩展外部程序存储器,此时/EA应接( (地)低电平 ). 2.8051单片机内部有( 2 )个定时/计数器,门控制信号GATE 设置为1 时,由( TRx )和( INTx )控制定时器的启动. 3. 若由程序设定RS1.RS0=01,则工作寄 ...