【单片机原理】第1章 微机基础知识,运算器,控制器,寄存器,微机工作过程,数制转换

devtools/2024/12/23 2:47:29/


关注作者了解更多

我的其他CSDN专栏

过程控制系统

工程测试技术

虚拟仪器技术

可编程控制器

工业现场总线

数字图像处理

智能控制

传感器技术

嵌入式系统

复变函数与积分变换

单片机原理

线性代数

大学物理

热工与工程流体力学

数字信号处理

光电融合集成电路技术

电路原理

模拟电子技术

高等数学

概率论与数理统计

数据结构

C语言

模式识别原理

自动控制原理

数字电子技术

关注作者了解更多

资料来源于网络,如有侵权请联系编者

目录

1.1微处理器

1.1.1微处理器的组成

​编辑1.运算器

2./控制器

3.主要寄存器

1.1.2存储器和输入/输出接口

1.存储器

2/I/O接口及外设

§1.1.3 输入输出接口

1.2 微机的工作过程

1.2.1 执行一条指令的顺序

1.2.2 执行一条指令的过程

1.2.3 执行一个程序的过程

1.3 常用数制和编码

1.3.1 数制与数制之间的转换​编辑​编辑

1.3.2 计算机中的常用编码

1.BCD(Binary Coded Decimal)码——二-十进制码

2.ASCII(American Standard Code for Information Interchange)码

1.4 数据在计算机中的表示

1.4.1 有符号数

1.4.2 无符号数

1.5 89C51/S51单片机


1.1微处理器

1.1.1微处理器的组成

图中假设所有的计数器、寄存器和总线都是8位宽度。

数据单元

ALU、计数器、寄存器和控制部分除在微处理器内通过内部总线相互联系以外,还通过外部总线和外部的存储器和输入输出接口电路联系。

外部总线一般分为数据总线、地址总线和控制总线,统称为系统总线。

存储器包括RAM和ROM

为计算机通过输入/输出接口电路可与各种外围设备联接。

1.运算器

组成

算术逻辑单元(简称ALU)

累加器

数据寄存器

作用

  把传送到微处理器的数据进行算术运算或逻辑运算。ALU可对两个操作数进行加、减、与、

或、比较大小等操作,最后将结果存入累加器。ALU执行不同的运算操作是由不同控制线上的信息所确定的。

ALU数据来源

累加器、数据寄存器

主要功能

算数运算

逻辑运算和逻辑测试,如零值测试,两值比较

运算器功能实现过程举例

   两个数(7和9)相加,在相加之前,操作数9放在累加器中,7放在数据寄存器中,执行两数相加运算的控制器发出“加”操作信号,ALU即把两个数相加并把结果(16)存入累加器,取代累加器前面存放的数9.

2./控制器

 组成

  程序计数器、指令寄存器、指令译码器、时序发生器、操作控制器等

作用

它是发布命令的“决策机构”,即协调和指挥整个计算机系统的操作

主要功能

1.从内存中取出一条指令,并指出下一条指令在内存中的位置

2.对指令进行译码或测试,并产生相应的操作控制信号,以便启动规定的动作

3.指挥并控制CPU、内存和输入/输出设备之间数据流动的方向

3.主要寄存器

累加器(A)

  累加器是微处理器中最繁忙的寄存器。

在算数和逻辑运算时,它具有双重功能:

1运算前,用于保存一个操作数;

2.运算后,用于保存所得的和、差或逻辑运算结果

数据寄存器(DR)

  数据(缓冲)寄存器(DR)是通过数据总线(DBUS)向存储器(M)和输入/输出设备I/O送(写)或取(读)数据的暂存单元

指令寄存器(IR)和指令译码器(ID)

   指令寄存器用来保存当前正在执行的一条指令。当执行一条指令时先把它从内存取到数据寄存器中,然后再传送到指令寄存器中。

    指令分为操作码和地址码字段,由二进制数字组成。当执行任何给定的指令,必须对操作码进行译码,以便确定所要求的操作。

   指令寄存器中操作码字段的输出就是指令译码器的输入

  操作码一经译码后,即可向控制器发出具体操作的特定信号。

程序计数器(PC)

通常又称为指令地址计数器。在程序开始执行前,必须将其起始地址,即程序的第一条指令所在的内存单元地址送到PC。当执行指令时,CPU将自动修改PC的内容,使之总是保存将要执行的下一条指令的地址。

地址寄存器(AR)

 地址寄存器用来保存当前CPU所要访问的内存单元或I/O设备的地址。因为内存(I/O设备)和CPU之间存在着速度上的差别,所以必须使用地址寄存器来保存地址信息,指导内存(I/O设备)读/写操作完成为止。

1.1.2存储器和输入/输出接口

1.存储器

  地址总线、数据总线和若干控制线把存储器和微处理器连接起来。

  存储器从CPU接受控制信号,以确定存储器执行读/写操作。

  地址总线将8位地址信息送入地址译码器,地址译码器的输出可以确定唯一的存储单元。

  数据总线用来传送存储器到CPU或CPU到存储器的数据信息。

2/I/O接口及外设

   每个外设与微处理器的连接必须经过接口适配器(I/0接口)

  每个I/O接口及其对应的外设都有一个固定的地址,在CPU的控制下实现对外设的输入(读)和输出(写)操作。

§1.1.3 输入输出接口

每个外设与微处理器的连接必须经过接口适配器(I/O接口)

每个I/O接口及其对应的外设都有一个固定的地址,在CPU的控制下实现对外设的输入(读)和输出(写)操作。

1.2 微机的工作过程

微机的“存储程序”工作方式

 计算机采取“存储程序”的工作方式,即事先把程序加载到计算机的存储器中,当启动运行后,计算机便自动进行工作。计算器虽然也有运算和控制的功能,但它不是“存储程序”式的自动工作方式,所以不能称为计算机。

任何计算机都有它的指令系统,有十几条至一百多条指令,并有若干种寻址方式。我们假设图1-2所示的模型计算机有4条指令,并只有一种寻址方式——直接寻址方式,模型机的指令及其说明如表1-1所列。

直接寻址方式

寻址方式是指用什么方法寻找指令的操作数。上述4条指令除HLT外,LDA、ADD和STA都有操作数。直接寻址方式的指令格式如图1-5所示。

指令中应有一部分数位(8位,即1字节)用于指明所执行的特定操作,这部分(图
1-5中的第1字节)称为操作码。指令中还应有一部分数位(图1-5中的第2字节)用于说
明被操作的数据来自什么地方,这一部分叫操作数的地址。

在直接寻址方式中,一条指令(如LDA、ADD和STA)需要2个字节:第1个字节是操
作码,第2个字节不是操作数,而是存放操作数的内存单元的地址。例如:

1.2.1 执行一条指令的顺序

计算机执行程序是一条指令一条指令执行的。执行一条指令的过程可分为两个阶段,如图1-7所示。

在计算机中,“存储程序”第1条指令的第1个字节一定是操作码。这样,CPU首先进入取指阶段,从存储器中取出指令并通过CPU译码后,转入执指阶段,在这期间,CPU执行指令指定的操作。

取指阶段是由一系列相同的操作组成的,因此,取指阶段的时间总是相同的。而执行指令的阶段是由不同的事件顺序组成的,它取决于被执行指令的类型。执行完一条指 令 后 接 着 执 行 下 一 条 指 令 。 所以 , 程序 的 执 行 顺 序 是 取 指 、 执指 , 取指 、 执指……如此反复直至程序结束。

1.2.2 执行一条指令的过程

指令“LDA 23”的执行过程是怎样的呢?这是一条直接寻址方式的指令,执行的
过程如图1-8所示。

LDA指令的指令周期由3个CPU周期(即机器周期)组成。其中,第1个CPU周期为取
指令阶段;执行指令阶段由2个CPU周期组成,第2个CPU周期中将操作数的地址送往地
址寄存器并完成地址译码,在第3个CPU周期中,从内存取出操作数并执行装入的操作。

1.2.3 执行一个程序的过程

采用直接寻址,执行一个“7+10”的程序实例如表1-2所示

1.3 常用数制和编码

1.3.1 数制与数制之间的转换

2.不同数制之间的转换

2.不同数制之间的转换

1.3.2 计算机中的常用编码

1.BCD(Binary Coded Decimal)码——二-十进制码

  BCD码是一种二进制形式的十进制码,也称二-十进制码。它用4位二进制数表示1
位十进制数,最常用的是8421BCD码,见表1-4。8421BCD码用0000B-1001B代表十进制
数0-9,运算法则是逢十进一。8421BCD码每位的权分别是8,4,2,1,故得此名。

例如,十进制1649的BCD码为0001 0110 0100 1001。

2.ASCII(American Standard Code for Information Interchange)码

           ASCII码是一种字符编码,是美国信息交换标准代码的简称。它由7位二进制数码
构成,共有128个字符。ASCII码主要用于微机与外设通信。当微机与ASCII码制的键
盘、打印机及CRT等连用时,均以ASCII码形式进行数据传输。

         例如,当按微机的某一键时,键盘中的单片机便将所按的键码转换成ASCII码传
入微机进行相应处理。

1.4 数据在计算机中的表示

因AT89C51是8位单片机,因此以8bit二进制数进行讲解。

1.4.1 有符号数

有符号的8位二进制数用最高位D7表示数的正或负,0代表“+”,1代表“-”,D7称为符号位,D6~D0为数值位。

上述的8位带符号二进制数又有3种不同表达形式,即原码、反码和补码。在计算
机中,所有有符号数都是以补码形式存放的。

1. 原码

         一个二进制数,用最高位表示数的符号,其后各位表示数值本身,这种表示
方法称为原码。原码的表示范围是-127~+127。例如:

2. 反码

          正数的反码与原码相同,符号位一定为0,其余位为数值位。负数的反码符号
位为1,数值位将其原码的数值位逐位求反。反码的表示范围是-127~+127。例如:

3. 补码

            正数的补码与原码相同。负数的补码符号位为1,数值位将其原码的数值位逐
位求反后加1,即负数的反码加1。补码的表示范围是-128~+127。例如:

      通常计算机中的数用补码表示,用补码进行运算。一个很明显的优点是减法
可以用补码的加法来运算。

        这里还要特别提示“溢出”的概念。溢出与进位不同,溢出是指有符号数的
运算结果超出了数-128~+127的表示范围,破坏了符号位。

4. 机器数与真值

       机器数:计算机中以二进制形式表示的数。

       真值:机器数所代表的数值。

       例如,机器数10001010B,它的真值为

1.4.2 无符号数

        无符号的8位二进制数没有符号位,从D7~D0皆为数值位,所以8位无符号二进制
数的表示范围是0~+255。

1.5 89C51/S51单片机

              8051是Intel公司推出的内核架构,其他公司的51系列单片机都是以8051为内核的。

        51系列单片机有多种型号的产品,如普通型(51子系列)80C51、80C31、87C51和89C51等,增强型(52子系列)80C32、80C52、87C52和89C52等。它们的结构基本相同,其主要差别反映在存储器的配置上。

  89系列单片机已经在片内增加4KB或8KB的Flash ROM,而且整个89C51/89C52芯片比87C51便宜得多。所以现在已经没有人使用80C31或87C51开发产品了。
     

      单片机是典型的嵌入式系统,从体系结构到指令系统都是按照嵌入式应用特点专
门设计的,能最好地满足面对控制对象、应用系统的嵌入、现场的可靠运行以及非凡
的控制品质要求。因此,单片机是发展最快、品种最多、数量最大的嵌入式系统。

        嵌入式系统与单片机已深入到国民经济众多技术领域,从天上到地下,从军事、
工业到家庭日常生活。在人类进入信息时代的今天,难以想像,没有单片机的世界将
会怎 样 ! 本教 程 以 ATMEL 、 PHILIPS 和 SST 等公 司 的 89 系列 单 片 机 中 的
AT89C51/P89C51/SST89E554(以下简称为89C51)为典型机,讲述单片机的硬件结构、
原理、接口技术、编程及其应用技术。舍弃80C31扩展EPROM的传统模式,而依据目标
任务选择所需不同档次(片内不同存储器容量)的89系列单片机。
          AT89C系列单片机属常规类型,只能用通用编程器进行编辑,不能进行下载编程,
AT89S系列单片机主要特点是具有ISP功能,也就是说,对AT89S芯片进行编程时,不
需要将芯片从目标板上取下,只需用一根下载线即可对AT89S单片机进行下载编程。


http://www.ppmy.cn/devtools/144558.html

相关文章

基于 Node.js 的开源轻量简洁 API 调试工具:Hoppscotch

对于使用过 Postman 或 ApiPost 的开发者来说,可能找过比其更加简洁、轻量的API调试工具。本篇文章就为大家推荐一款开源、免费、轻量、简洁、美观的API调试工具:Hoppscotch。 项目介绍 Hoppscotch 是一款基于 Node.js 开发的免费、开源、且便捷美观的 …

Pytorch | 从零构建ResNet对CIFAR10进行分类

Pytorch | 从零构建ResNet对CIFAR10进行分类 CIFAR10数据集ResNet核心思想网络结构创新点优点应用 ResNet结构代码详解结构代码代码详解BasicBlock 类ResNet 类ResNet18、ResNet34、ResNet50、ResNet101、ResNet152函数 训练过程和测试结果代码汇总resnet.pytrain.pytest.py 前…

基于Spring Boot的校园车辆管理系统

一、系统背景与意义 随着校园规模的不断扩大和车辆数量的增加,传统的车辆管理方式已经难以满足高效、准确管理车辆的需求。因此,开发一个基于Spring Boot的校园车辆管理系统具有重要的现实意义。该系统可以实现对校园车辆的信息化管理,提高车…

使用Redis提升PHP应用的性能

使用Redis提升PHP应用的性能 在现代Web应用开发中,性能优化是确保用户体验的关键因素之一。Redis,作为一种高性能的内存数据存储系统,因其快速的读写速度和丰富的数据结构而广泛应用于各种场景。本文将探讨如何在PHP应用中使用Redis来提升性…

如何通过docker 部署minio,端口号为9105

通过Docker部署MinIO对象存储服务,并指定API端口为9105,可以按照以下步骤进行。我们将基于已有的资料来详细说明这一过程。 1. 准备工作 首先,确保你的系统上已经安装了Docker。如果没有安装,可以根据官方文档指导完成安装。接下…

ARM学习(38)多进程多线程之间的通信方式

ARM学习(38)ARM学习(38)多进程多线程之间的通信方式 一、问题背景 笔者在调试模拟器的时候,碰到进程间通信的问题,一个进程在等另外一个进程ready的时候,迟迟等不到,然后通过调试发现,另外一个进程变量已经变化了,但是当前进程变量没变化,需要了解进程间通信的方式…

【蓝桥杯】43699-四平方和

四平方和 题目描述 四平方和定理,又称为拉格朗日定理: 每个正整数都可以表示为至多 4 个正整数的平方和。如果把 0 包括进去,就正好可以表示为 4 个数的平方和。 比如: 502021222 712121222; 对于一个给定的正整数,可…

Redis应用缓存框架

1.Ehcache缓存框架 (1)Ehcache的核心对象 (2)单独使用Ehcache (3)Spring整合Ehcache (4)Spring Boot整合Ehcache (5)实际工作中如何使用Ehcache 2.Guava Cache缓存框架 (1)Guava Cache具有如下功能 (2)Guava Cache的主要设计思想 (3)Cuava Cache的优势 (4)Cuava Cach…