第2章单片机基本原理_第1页
第2章单片机基本原理_第2页
第2章单片机基本原理_第3页
第2章单片机基本原理_第4页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第2章单片机基本原理 第 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

2、,8751 芯片带 4kb 的 eprom。51 子系列单片机的主要特点如下。 l 8 位 cpu。片内带振荡器,频率范围 1.212mhz。 l 片内带 128b 的数据存储器。片外最多可扩展 64kb 的数据存储器。 l 片内带 4kb 的程序存储器。片外最多可扩展 64kb 的程序存储器。 l 128 个用户位寻址空间。 l 21 个字节特殊功能寄存器。 l 4 个 8 位的并行 i/o 接口:p0、p1、p2、p3。 l 两个 16 位定时/计数器。两个优先级别的 5 个中断源。 l 1 个全双工的串行 i/o 接口,可多机通信。 l 111 条指令,含乘法指令和除法指令。 l 片内采

3、用单总线结构。 l 有较强的位处理能力。 l 采用单一+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 系列单片机的芯片有多种类型,但它

4、们的基本结构相同。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.0p0.7 p2.0p2.7 ram 地址 寄存器 ram p0 锁存器 p2 锁存器 eprom 或 rom 程序地址 寄存器 缓冲器 b 寄存器

5、 acc 暂存器 2 暂存器 1 alu psw sp pc 增量器 pc dptr p0 驱动器 p2 驱动器 特殊功能 寄存器 指令 寄 存器 定时 及 控制 p1 锁存器 p3 锁存器 p1 驱动器 p3 驱动器 振荡器 vss p1.0p1.7 p3.0p3.7 ea xlat2 vcc 图 2.2 mcs-51 单片机的内部结构框图 由图 2.2 可以看到:它集成了.处理器(cpu)、存储器系统(ram 和 rom)、定时/计数器、并行接口、串行接口、中断系统及一些特殊功能寄存器(sfr)。它们通过内部总线紧密地联系在一起。它的总体结构仍是通用 cpu 加上外围芯片的总线结构。只是在

6、功能部件的控制上与一般微机的通用寄存器加接口寄存器控制不同,cpu 与外设的控制不再分开,采用了特殊功能寄存器集中控制,使用更方便。内部还集成了时钟电路,只需外接石英晶体就可形成时钟。另外注意,8031 和 8032 内部没有集成 rom。 2.2.3 51 系列单片机的.处理器 51 单片机的.处理器(cpu)包含运算部件和控制部件。 1. 运算部件 运算部件以算术逻辑运算单元(alu)为核心,包含累加器 acc、b 寄存器、暂存器、标志寄存器 psw 等许多部件,且能实现算术运算、逻辑运算、位运算、数据传输等处理。 算术逻辑运算单元 alu 是一个 8 位的运算器,它不仅可以完成 8 位二

7、进制数据加、减、乘、除等基本的算术运算,还可以完成 8 位二进制数据逻辑与、或、异或、循环移位、求补、清零等逻辑运算,并且具有数据传输、程序转移等功能。alu 还有一个一般微型计算机没有的位运算器,可以对一位二进制数据进行置位、清零、求反、测试转移及位逻辑与、或等处理。这对于控制方面很有用。 累加器 acc(简称为 a)为一个 8 位的寄存器,是 cpu 中使用最频繁的寄存器。alu进行运算时,数据绝大多数都来自累加器 acc,运算结果也通常送回累加器 acc。在 51指令系统中,绝大多数指令中都要求累加器 acca 参与处理,在堆栈操作指令和位指令中,累加器名需用全称 acc,在其他指令中累

8、加器名用 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):进位或

9、借位标志位。执行算术运算和逻辑运算指令时,用于记录最高位向前面的进位或借位。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。在编程时,也可以通过软件

10、测试 f0 以控制程序的流向。 rs1、rs0(psw.4、psw.3):寄存器组选择位,用软件置 1 或清 0。在 51 单片机中,为弥补 cpu 寄存器的不足,在片内数据存储器中用了 32 个字节作寄存器使用,这 32 个字节分成 4 组,每组 8 个,用寄存器 r0r7 表示,这两位用于从 4 组工作寄存器中选定当前的工作寄存器组,选择情况如表 2.1 所示(注:数字后面有 h 后缀时,表示其为十六进制数)。 表 2.1 rs1 和 rs0 工作寄存器组的选择 rs1 rs0 工作寄存器组 0 0 0 组(00h07h) 0 1 1 组(08h0fh) 1 0 2 组(10h17h) 1

11、 1 3 组(18h1fh) 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,第二条指

12、令执行时把累加器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 单片机

13、中,由程序计数器 pc 控制着程序的执行顺序。在程序执行时,由控制器控制从 pc指向的 64kb 程序存储器中取出当前执行的指令送执行部件执行,在取出的同时,程序计数器 pc 会自动调整(加上当前指令的字节数)以指向下一条指令,以便程序能自动往后执行。当程序发生转移时,就必须把新的指令地址(目标地址)装入程序计数器 pc,这通常由控制转移指令来实现。 堆栈指针 sp 用来控制堆栈段内容的入栈(输入)和出栈(输出),在 mcs-51 单片机中,sp 指针始终指向栈底位置。 数据指针 dptr 也是一个 16 位的寄存器,在 mcs-51 单片机中,通常用 dptr 实现对片外数据存储器 64kb

14、 空间的访问。要访问哪个单元,就把相应单元地址放 dptr,然后通过 dptr 寄存器间接寻址进行访问。 控制部件以振荡信号为基准产生 cpu 工作的时序信号,先从程序存储器 rom 中取出指令到指令寄存器,然后在指令译码器中对指令进行译码,产生执行指令所需的各种控制信号送到单片机内部的各功能部件,指挥各功能部件产生相应的操作,完成对应的功能。具体控制过程本书不作描述。 3. at89s5x 单片机的双数据指针和辅助寄存器 在 at89s5x 单片机.处理器中,数据指针寄存器实际有两个:dptr0 和dptr1,另外,配合着数据指针寄存器和其他方面相关管理的还有两个辅助寄存器:auxr 和 a

15、uxr1。 为了方便访问数据寄存器,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

16、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 在空闲模

17、式下的禁止/允许位。wdidle=0,允许 wdt 在空闲模式下计数;wdidle=0,禁止。 复位时,auxr 寄存器值为 0。 2.2.4 mcs-51 系列单片机的存储器结构 mcs-51 单片机的存储器结构与一般微机的存储器结构不同,采用哈佛(harvard)结 构,分程序存储器(rom)和数据存储器(ram)。程序存储器存放程序、固定常数和数据表格,数据存储器用作工作区及存放数据,两者完全分开。程序存储器和数据存储器有各自的寻址空间、寻址方式和控制系统。程序存储器和数据存储器从物理结构上可分为片内和片外两种。它们的寻址空间和访问方式也不相同。 1. 程序存储器 1) 程序存储器的编址

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

19、现程序的自动运行。51 单片机的程序计数器 pc 为 16 位,程序存储器地址空间为 64kb。 mcs-51 单片机的程序存储器(rom),从物理结构上有片内和片外之分,不同的芯片,片内程序存储器情况不一样。51 单片机使用时必须要用程序存储器存放执行的程序,对于内部没有程序存储器的芯片,工作时只能用只读存储器芯片扩展外部程序存储器;对于内部带有程序存储器的芯片,根据使用情况外部可以扩展,也可以不扩展,但内部和外部共用 64kb 的存储空间。mcs-51 单片机的程序存储器如图 2.6 所示。其中,8031 和 8032 内部没有程序存储器,只能外部扩展,可扩展 64kb,地址范围 0000h0ffffh;8051 和 8751 内部有 4kb 程序存储器,地址范围 0000h0fffh;8052 和 8752内部有 8kb 程序存储器,地址范围 0000h1fffh,它们外部也可扩展,最多也可扩展64kb,但扩展的外部程序存储器低端部分和片内程序存储器地址空间重叠,总空间还是64kb。 片 外 rom ea=0 片 外 rom ea=0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论