下图是输入端A0、A1、A2为000,控制端S1=1、S1=0、S2=0的电平示意图(红色数字为端口电平),大家可按下图进行分析,也可以分析输出端另外七种组合时的输出情况 。

文章插图

文章插图
四、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直接相连 。
推荐阅读
- 猫咪最迟多久不排尿
- 租房子需要如何写合同
- 全网无版权音乐免费搜索下载 vip歌曲免费下载网站
- 怎么取电影票 二维码,微信电影票怎么取票流程
- 时光浪漫的语录 时光语录经典唯美
- 微软在备受瞩目的失败之后带着智能手机回归
- 微信验证失败什么原因,为什么微信好友验证后还是登录不了
- 西红柿怎么切丁
- 世界上最原始的哺乳动物 世界上最原始的哺乳动物名字
