news 2026/6/8 5:49:22

第二章(2.3):微控制器8051的硬件结构---内部总线与微控制器工作原理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
第二章(2.3):微控制器8051的硬件结构---内部总线与微控制器工作原理

内部总线(bus)

MCU内部总线或称片内总线,是微控制器CPU与各功能模块之间传输信息的公共通道,包括数据总线DB(data bus)、地址总线AB(address bus)和控制总线CB(control bus)三类,分别用来传输数据、地址和控制信号。

  • 数据总线:数据总线DB是双向的,用于传送数据,实现CPU与存储器、I/O接口、各功能模块之间的信息交互,其方向取决于是读操作还是写操作。数据总线的位数就是CPU的字长,是微控制器的重要指标。对于8位、16位、32位和64位的CPU,它们的数据线是8条、16条、32条和64条,其计算性能随着数据总线位数的增加而增强。
  • 地址总线:地址总线AB是单向的,由CPU发出地址信息,用来访问存储器和I/O接口。地址总线的位数决定了CPU可直接寻址的存贮空间的大小,若地址总线为16位,则其最大可寻址空间为2^{16}=64K字节=64K byte=64KB;若地址总线为20位,则其可寻址空间为2^{20}=1M byte=1MB;若地址总线为n位,则其寻址空间为2^n字节。
  • 控制总线:控制总线CB用来传送控制信号或时序信号。控制总线是单向的,有的是CPU输出,如读/写信号、时钟信号等;有的是外设传送给CPU的,如中断请求信号、复位信号等。每个信号都有自己的功能,控制着微控制器有序工作。

以CPU访问存储器为例,CPU通过地址总线、数据总线和控制总线的配合, 与存储器之间传输信息,如从存储器读取指令、数据;或将运算结果输出,写入存储器保存。(存储器由存储矩阵、地址译码器、读写控制(三态双向缓冲器)等部分组成),

微控制器工作原理

对于微控制器使用者来说不需要详细了解其内部结构的具体线路,但需要清楚理解微控制器的工作原理和过程。微型计算机和微控制器的工作过程就是执行程序的过程,执行不同的程序就完成不同的任务、实现不同的功能。用户编写的程序预先存放在ROM中,微控制器的工作过程就是从ROM中逐条取出指令并执行的过程。

在介绍工作原理之前,先了解程序与指令的概念:程序是为实现某个功能而编写的一系列指令的有序集合。而指令是微控制器指挥各功能部件工作的指示和命令。微控制器使用者熟悉的指令用助记符进行表示,而微控制器能识别的是指令的机器码,是一组二进制数。对于微控制器的指令类别、数量、助记符、机器代码等,因其使用的内核不同而不同,是由内核设计者规定的。采用8051内核的MCU,其指令系统都是相同的。
一条指令包括两部分内容:
1.操作码,指明指令的功能(即做什么操作)
2.操作数,指明指令执行的数据或数据存放的地址(即操作对象)
以以下指令为例:

第一条指令的操作码是24H,操作数是68H。指令执行的操作是将累加器A的内容与立即数68相加,并把结果放回A中,即(A) <- (A)+68。
第二条指令的操作码是74H,操作数是15H。指令执行的操作是将立即数15H赋给累加器A,执行后A中的内容为15H,即(A) <- 15H。
第三条指令的操作码是D2H,操作数是90H。指令执行的操作是将P1口的D0位即P1.0置为1,执行后P1.0引脚变为高电平,即P1.0 <- 1。

之前在CPU一节中说到过CPU由运算器(ALU)控制器组成,控制器又由指令部件、时序部件操作控制部件三部分组成,指令部件由程序计数器PC(Program Counter) 、指令寄存器IR(Instruction Register)指令译码器ID(Instruction Decode)组成,其中程序计数器 PC是16位的ROM指针(16位特殊功能寄存器),用于存放下一条取指指令的地址,寻址范围为64K;指令寄存器IR为8位寄存器,存放当前指令的操作码,等待译码;指令译码器ID对当前指令操作码进行译码,并通过控制电路产生执行该指令需要的控制信号,完成指令规定的操作。

指令执行过程:每条指令的执行可分为三个步骤,即读取指令(取指)、分析指令(译码)和执行指令(执行)。

  1. 读取指令(取指):根据程序计数器PC中的值,从ROM中读出当前指令的操作码,送到指令寄存器IR
  2. 分析指令(译码):将指令寄存器IR中的操作码送入指令译码器进行译码,分析该指令要求进行什么操作、操作数在那里。
  3. 执行指令(执行):根据译码结果取出操作数,由控制逻辑电路发出完成这条指令需要的一系列时序和控制信号,完成指令规定的操作。

以指令“MOV A,#15H” (机器码为74H,15H,分别存放到ROM单元的0000H 和0001H)为例详细说明微控制器的工作过程:

  1. 取指令:程序开始执行时,CPU内部的程序计数器(PC)当前值为0000H。第一步PC将地址0000H送入地址寄存器,第二步CPU发出读信号,从ROM的0000H单元取出操作码74H,第三步取出的操作码74H经数据总线(DB)送入指令寄存器;第四步,PC值自动加1,指向下一个要读取的单元(0001H)。

  2. 分析指令:由指令译码器对现行指令进行译码,分析该指令要求 实现什么操作,如执行数据传送,还是加、减等运算等。第一步指令寄存器中的操作码74H送入译码器;第二步译码器分析74H,确认为“MOV A, #data”指令,并识别到需要从下一个存储单元获取立即数。

  3. 执行指令:取出操作数,由控制逻辑电路发出相应的控制信号, 完成操作码规定的操作。第一步CPU根据PC当前值(0001H)取出操作数15H;第二步将取出的立即数15H经由内部数据总线送入累加器A;第三步PC值再次自动加1,指向下一条指令的地址(0002H)。

微控制器在工作前,必须要把程序(完成一定功能的指令序列)存放在ROM中。微控制器上电后,即从ROM的0000H单元开始逐条取出指令,执行程序。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/7 6:39:55

Comsol仿真:相场法多晶铁电体介电击穿模拟全解析

Comsol仿真-相场法多晶铁电体介电击穿模拟 复现参考文献&#xff1a;《Revisiting the Dielectric Breakdown in a Polycrystalline Ferroelectric: A Phase-Field Simulation Study》 全文复现&#xff0c;介电常数随着电场相场变化而变化。 内容包括源文件&#xff0c;讲解视…

作者头像 李华
网站建设 2026/6/8 9:46:56

34、深入探索文件与目录操作及异步 I/O 技术

深入探索文件与目录操作及异步 I/O 技术 在软件开发中,文件和目录操作是非常重要的部分,同时,异步 I/O 技术能有效提升程序的性能和用户体验。下面将详细介绍文件截断、目录操作以及异步 I/O 等相关内容。 1. 文件截断操作 文件截断是将文件的大小调整为指定字节长度。以…

作者头像 李华
网站建设 2026/6/8 9:02:25

探索 PFC - LLC 谐振开关电源设计方案宝藏资料

PFC-LLC谐振开关电源设计方案整套学习资料 程序仿真硬件软件说明报告原理图计算书等等 注&#xff1a;该方案性价比很高&#xff0c;一套资料下来可以自己做个实物验证&#xff0c;要想看细节可以咨询我&#xff0c;我给你看资料的详细展示视频 01.电路原理图&#xff1a;使用A…

作者头像 李华
网站建设 2026/6/5 14:56:11

Windows系统wfdprov.dll文件损坏 下载修复

在使用电脑系统时经常会出现丢失找不到某些文件的情况&#xff0c;由于很多常用软件都是采用 Microsoft Visual Studio 编写的&#xff0c;所以这类软件的运行需要依赖微软Visual C运行库&#xff0c;比如像 QQ、迅雷、Adobe 软件等等&#xff0c;如果没有安装VC运行库或者安装…

作者头像 李华
网站建设 2026/6/8 10:16:44

Triton推理服务器部署微调后的模型及测试

使用Triton推理服务器部署微调后的模型&#xff0c;并通过基准测试&#xff08;如MMLU、GPQA&#xff09;验证模型效果。 把这个过程拆解为模型转换、Triton部署、基准测试三个核心步骤&#xff0c;给出可落地的操作指南和代码&#xff0c;确保你能一步步完成部署和验证。 一、…

作者头像 李华