首页 范文大全 古典文学 职场知识 中国文学 公文书信 外国名著 寓言童话 百家讲坛 散文/诗歌 美文欣赏 礼仪知识 民俗风情
  • 工作总结
  • 工作计划
  • 心得体会
  • 竞聘演讲
  • 会议发言
  • 爱国演讲
  • 就职演说
  • 开业开幕
  • 思想学习
  • 征文演讲
  • 经验材料
  • 述职报告
  • 调研报告
  • 工作汇报
  • 年终总结
  • 申报材料
  • 学习体会
  • 企划方案
  • 活动方案
  • 技巧经验
  • 模板范例
  • 思想宣传
  • 经济工作
  • 工作报告
  • 组织人事
  • 反腐倡廉
  • 慰问贺电
  • 先进事迹
  • 思想汇报
  • 入党申请书
  • 党会发言
  • 先进性教育
  • 入团申请书
  • 个人简历
  • 演讲稿
  • 调查报告
  • 实习报告
  • 和谐社会
  • 观后感
  • 读后感
  • 作文范文
  • 自我鉴定
  • 讲话稿
  • 自查报告
  • 第2章单片机基本原理

    时间:2021-06-23 00:06:36 来源:蒲公英阅读网 本文已影响 蒲公英阅读网手机站

    相关热词搜索:单片机 基本原理

     第 2 章

     单片机基本原理 本章将用 Intel 公司的 MCS-51 系列介绍 51 单片机结构和原理,考虑到现在实际中通常使用 ATMEL 公司的 AT89S5X 系列,因此将把 AT89S5X 系列特有的部分进行专门介绍。

     2.1

     51 系列单片机简介 MCS-51 系列单片机是美国 Intel 公司在 1980 年推出的高性能 8 位单片机,它包含 51和 52 两个子系列。

     对于 51 子系列,主要有 8031、8051、8751 三种机型,它们的指令系统与芯片引脚完全兼容,仅片内程序存储器有所不同,8031 芯片不带 ROM,8051 芯片带 4KB 的ROM,8751 芯片带 4KB 的 EPROM。51 子系列单片机的主要特点如下。

      8 位 CPU。片内带振荡器,频率范围 1.2~12MHz。

      片内带 128B 的数据存储器。片外最多可扩展 64KB 的数据存储器。

      片内带 4KB 的程序存储器。片外最多可扩展 64KB 的程序存储器。

      128 个用户位寻址空间。

      21 个字节特殊功能寄存器。

      4 个 8 位的并行 I/O 接口:P0、P1、P2、P3。

      两个 16 位定时/计数器。两个优先级别的 5 个中断源。

      1 个全双工的串行 I/O 接口,可多机通信。

      111 条指令,含乘法指令和除法指令。

      片内采用单总线结构。

      有较强的位处理能力。

      采用单一+5V 电源。

     对于 52 子系列,有 8032、8052、8752 三种机型。52 子系列与 51 子系列相比大部分相同,不同之处在于:片内数据存储器增至 256B;8032 芯片不带 ROM,8052 芯片带8KB 的 ROM,8752 芯片带 8KB 的 EPROM;有 3 个 16 位定时/计数器;6 个中断源。本书以 51 子系列的 8051 为例来介绍 MCS-51 单片机的基本原理。

     2.2

     MCS-51 系列单片机的结构原理 2.2.1

     MCS-51 系列单片机的基本组成 虽然 MCS-51 系列单片机的芯片有多种类型,但它们的基本结构相同。MCS-51 单片机的基本结构如图 2.1 所示。

     CPU ROM/EPROM RAM 定时/计数器 并行接口 串行接口 中断系统 P0 P1 P2 P3 TXD RXD INT0 INT1 T0 T1 XTAL1 XTAL2 时钟电路

     图 2.1

     MCS-51 单片机的基本结构 2.2.2

     MCS-51 系列单片机的内部结构 MCS-51 单片机的内部结构框图如图 2.2 所示。

     PSEN ALE RESET XLAT1 P0.0~P0.7 P2.0~P2.7 RAM 地址 寄存器 RAM P0 锁存器 P2 锁存器 EPROM 或 ROM 程序地址 寄存器 缓冲器 B 寄存器 ACC 暂存器 2 暂存器 1 ALU PSW SP PC 增量器 PC DPTR P0 驱动器 P2 驱动器 特殊功能 寄存器 指令 寄 存器 定时 及 控制 P1 锁存器 P3 锁存器 P1 驱动器 P3 驱动器 振荡器 Vss P1.0~P1.7 P3.0~P3.7 EA XLAT2 Vcc

     图 2.2

     MCS-51 单片机的内部结构框图

     由图 2.2 可以看到:它集成了中央处理器(CPU)、存储器系统(RAM 和 ROM)、定时/计数器、并行接口、串行接口、中断系统及一些特殊功能寄存器(SFR)。它们通过内部总线紧密地联系在一起。它的总体结构仍是通用 CPU 加上外围芯片的总线结构。只是在功能部件的控制上与一般微机的通用寄存器加接口寄存器控制不同,CPU 与外设的控制不再分开,采用了特殊功能寄存器集中控制,使用更方便。内部还集成了时钟电路,只需外接石英晶体就可形成时钟。另外注意,8031 和 8032 内部没有集成 ROM。

     2.2.3

     51 系列单片机的中央处理器 51 单片机的中央处理器(CPU)包含运算部件和控制部件。

     1. 运算部件 运算部件以算术逻辑运算单元(ALU)为核心,包含累加器 ACC、B 寄存器、暂存器、标志寄存器 PSW 等许多部件,且能实现算术运算、逻辑运算、位运算、数据传输等处理。

     算术逻辑运算单元 ALU 是一个 8 位的运算器,它不仅可以完成 8 位二进制数据加、减、乘、除等基本的算术运算,还可以完成 8 位二进制数据逻辑与、或、异或、循环移位、求补、清零等逻辑运算,并且具有数据传输、程序转移等功能。ALU 还有一个一般微型计算机没有的位运算器,可以对一位二进制数据进行置位、清零、求反、测试转移及位逻辑与、或等处理。这对于控制方面很有用。

     累加器 ACC(简称为 A)为一个 8 位的寄存器,是 CPU 中使用最频繁的寄存器。ALU进行运算时,数据绝大多数都来自累加器 ACC,运算结果也通常送回累加器 ACC。在 51指令系统中,绝大多数指令中都要求累加器 ACCA 参与处理,在堆栈操作指令和位指令中,累加器名需用全称 ACC,在其他指令中累加器名用 A。

     寄存器 B 称为辅助寄存器,它是为乘法和除法指令而设置的。在进行乘法运算时,累加器 A 和寄存器 B 在乘法运算前存放乘数和被乘数,运算完,通过寄存器 B 和累加器A 存放结果。在除法运算前,累加器 A 和寄存器 B 存入被除数和除数,运算完用于存放商和余数。

     标志寄存器 PSW 是一个 8 位的寄存器,其中 4 位状态标志,用于保存指令执行结果的状态,以供程序查询和判别;2 位控制标志。其各位的情况如图 2.3 所示。

     D7 D6 D5 D4 D3 D2 D1 D0 C AC F0 RS1 RS0 OV - P 图 2.3

     标志寄存器 PSW 的格式 C(PSW.7):进位或借位标志位。执行算术运算和逻辑运算指令时,用于记录最高位向前面的进位或借位。8 位加法运算时,若运算结果的最高位 D7 位有进位,则 C 置 1,否则 C 清 0。8 位减法运算时,若被减数比减数小,不够减,需借位,则 C 置 1,否则 C清 0。另外,在 51 单片机中,该位也可作位运算器,完成各种位处理。

     AC(PSW.6):辅助进位或借位标志位。用于记录在进行加法和减法运算时,低 4 位向高 4 位是否有进位或借位。当有进位或借位时,AC 置 1,否则 AC 清 0。

     F0(PSW.5):用户标志位。是系统预留给用户自己定义的标志位,可以用软件使它置1 或清 0。在编程时,也可以通过软件测试 F0 以控制程序的流向。

     RS1、RS0(PSW.4、PSW.3):寄存器组选择位,用软件置 1 或清 0。在 51 单片机中,为弥补 CPU 寄存器的不足,在片内数据存储器中用了 32 个字节作寄存器使用,这 32 个字节分成 4 组,每组 8 个,用寄存器 R0~R7 表示,这两位用于从 4 组工作寄存器中选定当前的工作寄存器组,选择情况如表 2.1 所示(注:数字后面有 H 后缀时,表示其为十六进制数)。

     表 2.1

     RS1 和 RS0 工作寄存器组的选择 RS1 RS0 工作寄存器组 0 0 0 组(00H~07H) 0 1 1 组(08H~0FH) 1 0 2 组(10H~17H) 1 1 3 组(18H~1FH)

     OV(PSW.2):溢出标志位。在加法或减法运算时,如运算的结果超出 8 位二进制数的范围,则 OV 置 1,标志溢出,否则 OV 清 0。

     P(PSW.0):偶标志位。用于记录指令执行后累加器 A 中 1 的个数的奇偶性。若累加器 A 中 1 的个数为奇数,则 P 置 1;若累加器 A 中 1 的个数为偶数,则 P 清 0。

     其中 PSW.1 未定义,可供用户使用。

     【例 例 2-1 】试分析下面指令执行后,累加器 A,标志位 C、AC、OV、P 的值。

     MOV A,#67H ADD A,#58H

     分析:第一条指令执行时把立即数 67H 送入累加器 A,第二条指令执行时把累加器A 中的立即数 67H 与立即数 58H 相加,结果回送到累加器 A 中。加法运算过程如下:

     67H=B

      58H=B

      0 1 1 0

     0 1 1 1B +

      0 1 0 1

     1 0 0 0B

      1 0 1 1

     1 1 1 1= 0BFH 则执行后累加器 A 中的值为 0BFH,由相加过程得 C=0、AC=0、OV=1、P=1。

     2. 控制部件 控制部件是单片机的控制中心,它包括程序计数器 PC、堆栈指针 SP、数据指针DPTR、定时和控制电路、指令寄存器、指令译码器以及信息传送控制部件等。

     程序计数器 PC 是一个 16 位的寄存器,它存放下一条要执行的指令的地址。在 51 单片机中,由程序计数器 PC 控制着程序的执行顺序。在程序执行时,由控制器控制从 PC指向的 64KB 程序存储器中取出当前执行的指令送执行部件执行,在取出的同时,程序计数器 PC 会自动调整(加上当前指令的字节数)以指向下一条指令,以便程序能自动往后执行。当程序发生转移时,就必须把新的指令地址(目标地址)装入程序计数器 PC,这通常由控制转移指令来实现。

     堆栈指针 SP 用来控制堆栈段内容的入栈(输入)和出栈(输出),在 MCS-51 单片机中,SP 指针始终指向栈底位置。

     数据指针 DPTR 也是一个 16 位的寄存器,在 MCS-51 单片机中,通常用 DPTR 实现对片外数据存储器 64KB 空间的访问。要访问哪个单元,就把相应单元地址放 DPTR,然后通过 DPTR 寄存器间接寻址进行访问。

     控制部件以振荡信号为基准产生 CPU 工作的时序信号,先从程序存储器 ROM 中取出指令到指令寄存器,然后在指令译码器中对指令进行译码,产生执行指令所需的各种控制信号送到单片机内部的各功能部件,指挥各功能部件产生相应的操作,完成对应的功能。具体控制过程本书不作描述。

     3. AT89S5X 单片机的双数据指针和辅助寄存器 在 AT89S5X 单片机中央处理器中,数据指针寄存器实际有两个:DPTR0 和DPTR1,另外,配合着数据指针寄存器和其他方面相关管理的还有两个辅助寄存器:AUXR 和 AUXR1。

     为了方便访问数据寄存器,AT89S5X 单片机设置了双数据指针寄存器 DPTR0 和DPTR1。其中 DPTR0 为 51 单片机原有的数据指针,DPTR1 为新增加的数据指针。它们还是通过名称 DPTR 使用,使用时通过辅助寄存器 AUXR1 的 DPS 位选择,如图 2.4 所示。

     D7 D6 D5 D4 D3 D2 D1 D0

     - - - - - - - DPS A2H 图 2.4

     AUXR1 的格式 其中:DPS=0,选择数据寄存器 DPTR0;DPS=1,选择数据寄存器 DPTR1;默认DPS=0。

     对于辅助寄存器 AUXR,其格式如图 2.5 所示。

     D7 D6 D5 D4 D3 D2 D1 D0

     - - - WDIDLE DISRTO - - DISALE 8EH 图 2.5

     AUXR 的格式 其中,DISALE:ALE 的禁止/允许位。DISALE=0,ALE 信号有效,发 ALE 脉冲;DISALE=1,ALE 信号仅在 CPU 访问外部存储器时有效,不访问外部存储器时,ALE 引脚不输出信号,这样既可以减少对外部电路的干扰,又可降低功耗。

     DISRTO:禁止/运行看门狗定时器 WDT 溢出时输出复位信号。DISRTO =0,WDT 溢出时,允许向 RST 引脚输出一个高电平脉冲,使单片机复位。DISRTO =1,禁止。

     WDIDLE:WDT 在空闲模式下的禁止/允许位。WDIDLE=0,允许 WDT 在空闲模式下计数;WDIDLE=0,禁止。

     复位时,AUXR 寄存器值为 0。

     2.2.4

     MCS-51 系列单片机的存储器结构 MCS-51 单片机的存储器结构与一般微机的存储器结构不同,采用哈佛(Harvard)结

     构,分程序存储器(ROM)和数据存储器(RAM)。程序存储器存放程序、固定常数和数据表格,数据存储器用作工作区及存放数据,两者完全分开。程序存储器和数据存储器有各自的寻址空间、寻址方式和控制系统。程序存储器和数据存储器从物理结构上可分为片内和片外两种。它们的寻址空间和访问方式也不相同。

     1. 程序存储器 1) 程序存储器的编址与访问 程序存储器用于存放单片机工作时的程序,单片机工作时先由用户编制好程序和表格常数,存放到程序存储器中,然后在控制器的控制下,依次从程序存储器中取出指令送到CPU 中执行,实现相应的功能。为此,设有一个专用寄存器——程序计数器 PC,用于控制程序的执行。程序计数器 PC 中存放指令的地址,CPU 执行指令时,首先通过 PC 取出存放在程序存储器中当前的指令,取出指令后,程序计数器 PC 会根据取出的字节数自动加 n,指向下一条要执行的指令;其次完成指令的功能。当前指令执行完毕后,CPU 就能根据程序计数器 PC 从程序存储器(ROM)中自动地取下一条指令执行,这种过程周而复始地重复处理,从而实现程序的自动运行。51 单片机的程序计数器 PC 为 16 位,程序存储器地址空间为 64KB。

     MCS-51 单片机的程序存储器(ROM),从物理结构上有片内和片外之分,不同的芯片,片内程序存储器情况不一样。51 单片机使用时必须要用程序存储器存放执行的程序,对于内部没有程序存储器的芯片,工作时只能用只读存储器芯片扩展外部程序存储器;对于内部带有程序存储器的芯片,根据使用情况外部可以扩展,也可以不扩展,但内部和外部共用 64KB 的存储空间。MCS-51 单片机的程序存储器如图 2.6 所示。其中,8031 和 8032 内部没有程序存储器,只能外部扩展,可扩展 64KB,地址范围 0000H~0FFFFH;8051 和 8751 内部有 4KB 程序存储器,地址范围 0000H~0FFFH;8052 和 8752内部有 8KB 程序存储器,地址范围 0000H~1FFFH,它们外部也可扩展,最多也可扩展64KB,但扩展的外部程序存储器低端部分和片内程序存储器地址空间重叠,总空间还是64KB。

     片 外

     ROM

     EA=0 片 外 ROM EA=0 片 内 ROM EA=1

     片 外 ROM

     0000H FFFFH 0000H 0FFFH 1000H FFFFH 片 外 ROM EA=0 片 内 ROM EA=1

     片 外 ROM

     0000H 1FFFH 2000H FFFFH

      (a) 8031 和 8032

      (b) 8051 和 8751

     (c) 8052 和 8752 图 2.6

     MCS-51 单片机的程序存储器 由于 MCS-51 单片机程序存储器的低地址空间存在片内和片外之分,执行指令时,对于低端地址,是从片内程序存储器取,还是从片外程序存储器取呢?MCS-51 单片机是通

     过芯片上的一个引脚 EA (片外程序存储器选用端)连接的高低电平来区分。

     EA 接低电平,则从片外程序存储器取指令; EA 接高电平,则从片内程序存储器取指令。对于 8031 和8032 芯片, EA 只能保持低电平,指令只能从片外程序存储器取得。

     当然,在实际使用时,工作的程序往往只能全部放在片内程序存储器或片外程序存储器(不能一部分放片内,一部分放片外)。因此,当我们选用片内程序存储器的 51 单片机芯片时,一般把所有程序放在片内程序存储器中,如果程序较大,集成 4KB 的 8051 不够用,可以选择集成 8KB 的 8052,如果 8KB 也不够呢?51 单片机厂家已经给大家考虑到这个情况,现在,很多 51 单片机厂家已经生产了内部集成 16KB、24KB、32KB 等更大容量的片内程序存储器芯片供大家选择。

     程序存储器主要用于存放单片机工作时执行...

    • 范文大全
    • 职场知识
    • 精美散文
    • 名著
    • 讲坛
    • 诗歌
    • 礼仪知识