【单片机原理】第1章 微机基本知识

1.1 微处理器

§1.1 微机的组成

1.1.1 微处理器的组成

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

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

• 外部总线一般分为数据总线、地址总线和控制总线,统称为系统总线。
• 存储器包括RAM和ROM。
• 微计 算 机 通 过 输 入 / 输出 接口电路可与各种外围设备联接。

1. 运算器:


• 组成
算术逻辑单元(简称ALU)
累加器
数据寄存器
• 作用
把传送到微处理器的数据进行算术运算或逻辑运算。ALU可对两个操作数进行加、减、与、或、比较大小等操作,最后将结果存入累加器。ALU执行不同的运算操作是由不同控制线上的信息所确定的。
• ALU数据来源
累加器、数据寄存器
• 主要功能
算术运算
逻辑运算和逻辑测试,如零值测试、两值比较

运算器功能实现过程举例:
两个数(7和9)相加,在相加之前,操作数9放在累加器中,7放在数据寄存器中,执行两数相加运算的控制线发出“加”操作信号,ALU即把两个数相加并把结果(16)存入累加器,取代累加器前面存放的数9。

2. 控制器:


• 组成
程序计数器、指令寄存器、指令译码器、时序发生器、操作控制器等
• 作用
它是发布命令的“决策机构”,即协调和指挥整个计算机系统的操作。
• 主要功能
① 从内存中取出一条指令,并指出下一条指令在内存中的位置。
② 对指令进行译码或测试,并产生相应的操作控制信号,以便启动规定的动作。
③ 指挥并控制CPU、内存和输入/输出设备之间数据流动的方向。

3. 主要寄存器:


• 累加器(A)
• 数据寄存器(DR)
• 指令寄存器(IR)和指令译码器(ID)
• 程序计数器(PC)
• 地址寄存器(AR)

• 累加器(A)


累加器是微处理器中最繁忙的寄存器。
在算术和逻辑运算时,它具有双重功能:
① 运算前,用于保存一个操作数;
② 运算后,用于保存所得的和、差或逻辑运算结果。

• 数据寄存器(DR)


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

• 指令寄存器(IR)


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

• 指令译码器(ID)


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

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

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

• 程序计数器(PC)


通常又称为指令地址计数器。在程序开始执行前,必须将其起始地址,即程序的第一条指令所在 的 内 存 单 元 地 址 送 到 PC 。 当执 行 指 令 时 ,CPU将自动修改PC的内容,使之总是保存将要执行的下一条指令的地址。由于大多数指令都是按顺序执行的,所以修改的过程通常是简单的加1操作。

• 地址寄存器(AR)


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

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

1. 存储器:


地址总线、数据总线和若干控制线把存储器和微处理器连接起来。
存储 器 从 CPU 接收 控 制 信 号 ,以确定存储器执行读/写操作。

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

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

2. I/O接口及外设

每个外设与微处理器的连接必须经过接口适配器(I/O接口)。
每个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个字节不是操作数,而是存放操作数的内存单元的地址。例如:LDA 23;将地址为23的内存单元中的内容7装入累加器A中。23为操作数的地址

1.2.1 执行一条指令的顺序

     计算机执行程序是一条指令一条指令执行的。执行一条指令的过程可分为两个阶段,如图1-7所示。
           在计算机中,“存储程序”第1条指令的第1个字节一定是操作码。这样,CPU首先进入取指阶段,从存储器中取出指令并通过CPU译码后,转入执指阶段,在这期间,CPU执行指令指定的操作。
           取指阶段是由一系列相同的操作组成的,因此,取指阶段的时间总是相同的。而执行指令的阶段是由不同的事件顺序组成的,它取决于被执行指令的类型。执行完一条指 令 后 接 着 执 行 下 一 条 指 令 。 所以 , 程序 的 执 行 顺 序 是 取 指 、 执指 , 取指 、 执指……如此反复直至程序结束。

             指令“LDA 23”的执行过程是怎样的呢?这是一条直接寻址方式的指令,执行的过程如图1-8所示。
             LDA指令的指令周期由3个CPU周期(即机器周期)组成。其中,第1个CPU周期为取指令阶段;执行指令阶段由2个CPU周期组成,第2个CPU周期中将操作数的地址送往地址寄存器并完成地址译码,在第3个CPU周期中,从内存取出操作数并执行装入的操作。

1.2.3 执行一个程序的过程


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

取第一条指令操作码

取第一个操作数地址

取第一个操作数并装入A

1.3 常用数制和编码

1.3.1 数制与数制之间的转换

1.数制——计数的进位制


• 二进制:
是“0”和“1”这样的数、逢2进位。按权展开时权的基数为2。用后缀字母
“B”表示。
如:1001B=1×23+0×22+0×21+1×20 =9(十进制数)
• 十进制:
是“0”—“9”之间的数、逢10进位。按权展开时权的基数为10。用后缀字
母“D”表示。
如:1135D=1×103+1×102+3×101+5×100
• 十六进制:
是“0”—“9”,“A,B,C,D,E,F”之间的数、逢16进位。按权展开时权的基
数为16。用后缀字母“H”表示。
如:1C5H=1×162+12×161+5×160 =453D

2.不同数制之间的转换


• 二进制、十六进制转化成十进制:
将二、十六进制数按权展开相加即为相应的十进制数。
如:1101.11B=1×23+1×22+0×21+1×20+1×2-1+1×2-2=13.75D
如:1F.AH=1×161+15×160+10×16-1=31.625D
• 十进制转换成二进制数:
整数部分除2取余,商为0止,余数倒置;小数部分乘2取整,积为0止或满足精度
要求时停止,整数顺置
如:11.625D=1011.101B

• 十进制转换成十六进制数:
整数部分除16取余,商为0止,余数倒置;小数部分乘16取整,积为0止或满足精
度要求时停止,整数顺置
如:100.0625D=64.1H
• 二进制转换成十六进制数:
将二进制数以小数点为界四位一分,不足补0,用一位十六进制数代替四位二进制
数。
如:10011.11B=0001 0011. 1100 B= 13.C H
• 十六进制转换成二进制数:
将十六进制数以小数点为界,用四位二进制数代替一位十六进制数。
如:D4.E H=1101 0100. 1110 B

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码传
入微机进行相应处理。

3.ASCII扩展码
由8位二进制数码构成,共有256个字符。
4.UNICODE编码
由16位二进制数码构成,共有65536个字符。

1.4 数据在计算机中的表示

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

1.4.1 有符号数


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

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

1. 原码


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

X=+1011010B
[X]原=01011010B
X=-1011010B
[X]原=11011010B

2. 反码


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

X=-1011010B    [X]原=11011010B   [X]反=10100101B

3. 补码


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

X=-1011010B   [X]补=10100110B

    通常计算机中的数用补码表示,用补码进行运算。一个很明显的优点是减法
可以用补码的加法来运算。
      这里还要特别提示“溢出”的概念。溢出与进位不同,溢出是指有符号数的
运算结果超出了数-128~+127的表示范围,破坏了符号位。

4. 机器数与真值

机器数:计算机中以二进制形式表示的数。
真值:机器数所代表的数值。
例如,机器数10001010B,它的真值为
138(无符号数)
-10(原码)
-117(反码)
-118(补码)

【例1-5】怎样根据真值求补码,或根据补码求真值?
答:
一是求负数的补码,用绝对值“取反加1”来求补码;
二是求负数(补码)的真值,可先将该补码数用“取反加1”的方法得到其绝对值,
再在绝对值前添加一负号。
另:补码的表盘理论可以自行查阅。

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等。它们的结构基本相同,其主要差别反映在存储器的配置上。

80C31片内没有程序存储器,
80C51内部设有4KB的掩膜ROM程序存储器。
87C51是将80C51片内的ROM换成EPROM,
89C51则换成4KB的Flash ROM。
51增强型(52子系列)的程序存储器容量为普通型的2倍。

通常以8×C51代表这一系列的单片机,
其中×=0——掩膜ROM
×= 7——EPROM/OTPROM
×= 9——Flash ROM

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单片机进行下载编程。


资料仅供学习使用

如有错误欢迎留言交流

上理考试辅导培训的其他专栏:

光电融合集成电路技术

C语言

单片机原理

模式识别原理

数字电子技术

自动控制原理传感器技术

模拟电子技术

数据结构

 概率论与数理统计

高等数学

传感器技术

智能控制

嵌入式系统

图像处理与机器视觉

热工与工程流体力学

数字信号处理

关注上理考试辅导培训了解更多

  • 8
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值