汽车电子技术与单片机第3章24884.pptx
《汽车电子技术与单片机第3章24884.pptx》由会员分享,可在线阅读,更多相关《汽车电子技术与单片机第3章24884.pptx(56页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章 MCS-51 单片机系统程序设计 第一节 MCS-51 指令系统概述 第二节 MCS-51 单片机指令详解 第三节 MCS-51 单片机系统程序设计实例第一节 MCS-51 指令系统概述 一、概述 MCS-51 指令系统是一种简明易掌握、效率较高的指令系统。MCS-51 的基本指令共111 条,其中单字节指令49 条,双字节指令45 条,三字节指令17 条。从指令的执行时间来看,单机器周期指令64 条,双机器周期指令45 条,只有乘、除两条指令的执行时间为4 个机器周期。指令的表示方法称之为指令格式,其内容包括指令的长度和指令内部信息的安排等。一条指令通常由两部分组成,即操作码和操作数
2、。下一页 返回第一节 MCS-51 指令系统概述 通常在MCS-51 指令系统中,有一字节、二字节和三字节等不同长度的指令。一字节指令只有一个字节,操作码和操作数信息同在其中。二字节指令包括两个字节,其中一个字节为操作码,第二个字节是操作数。三字节指令中,操作码占一个字节,操作数占两个字节,其中操作数既可能是数据,也可能是地址。二、寻址方式 MCS-51 共有5 种寻址方式,现介绍如下:上一页 下一页 返回第一节 MCS-51 指令系统概述 1.立即寻址 操作数就写在指令中,和操作码一起放在程序存储器中。把“#”号放在立即数前面,以表示该寻址方式为立即寻址,如#20H。2.寄存器寻址 操作数放
3、在寄存中,在指令中直接以寄存器的名字来表示操作数的地址。例如MOV A,R0 就属于寄存器寻址,即将RO寄存器的内容送到累加器A 中。3.直接寻址 操作数放在单片机的内部RAM 某单元中,在指令中直接写出该单元的地址。如前例的ADD A,70H 中的70H。上一页 下一页 返回第一节 MCS-51 指令系统概述 4.寄存器间接寻址 寄存器间接寻址方式可用于访问内部RAM 或外部数据存储器。访问内部RAM 或外部数据存储器的低256 个字节时,可采用R0 或R1 作为间接寄存器。这类指令为单字节指令,其最低位是表示采用R0 还是R1 作为间接寄存器。这种寻址方式的示意图如图3-1 所示。访问外部
4、数据存储器的低256 字节时,只要把MOV 改为MOVX 就行了。访问外部数据存储器,还可用数据指针DPTR 作为间址寄存器,DPTR 是16 位寄存器,故它可对整个外部数据存储器空间(64K)寻址。在执行PUSH 和POP 指令时,也采用寄存器间接寻址,这是堆栈指针SP 用作间接寄存器。上一页 下一页 返回第一节 MCS-51 指令系统概述 5.基址寄存器加变址寄存器间接寻址 这种寻址方式用于访问程序寄存器的一个单元,该单元的地址是基址寄存器(DPTR 或PC)的内容与变地址寄存器A 的内容之和。这种寻址方式对查表访问特别有用。寻址方式的示意图如图3-2 所示。三、指令执行过程和指令符号意义
5、 单片机执行程序的过程,实际上就是执行我们所编制程序的过程,即执行逐条指令的过程。计算机每执行一条指令都可分为三个阶段进行,即取指令分析指令执行指令。上一页 下一页 返回第一节 MCS-51 指令系统概述 取指令的任务是:根据程序计数器PC 中的值从程序存储器读出现行指令,送到指令寄存器。分析指令阶段的任务是:将指令寄存器中的指令操作码读出后进行译码,分析其指令性质,如指令要求操作数,则寻找操作数地址。计算机执行程序的过程实际上就是逐条指令地重复上述操作过程,直至遇到停机指令或循环等到指令。一般计算机进行工作时,首先要通过外部设备把程序和数据通过输入接口电路和数据总线送入到存储器,然后逐条取出
6、执行。但单片机中的程序一般事先都已通过写入器固化在片内或片外程序存储器中,因而一开机即可执行指令。上一页 下一页 返回第一节 MCS-51 指令系统概述 指令中操作数的描述符号:Rn 工作寄存器R0R7 Ri 间接寻址寄存器R0、R1 Direct 直接地址,包括内部128B RAM 单元地址、26 个SFR 地址。#data8 位常数#data1616 位常数 addr1616 位目的地址 addr1111 位目的地址 rel8 位带符号的偏移地址 DPTR16 位外部数据指针寄存器上一页 下一页 返回第一节 MCS-51 指令系统概述 bit 可直接位寻址的位 A 累加器A B 寄存器B
7、C 进、借位标志位,或位累加器 间接寄存器或基址寄存器的前缀/指定位求反(x)x 中的内容(x)x 中的地址中的内容 当前指令存放的地址上一页 返回第二节 MCS-51 单片机指令详解 一、数据传输指令 1.累加器相关的数据传输指令 以下指令的功能是把源操作数的内容送入累加器A,源操作数有寄存器寻址、直接寻址、间接寻址和立即寻址等方式。2.内部RAM 单元之间的数据传输指令下一页 返回第二节 MCS-51 单片机指令详解 内部RAM 单元之间的数据传输可以使用直接寻址、寄存器寻址以及寄存器间接寻址方式。3.外部存储器数据传输指令 外部RAM 传输指令通常使用间接寻址的方式,主要可以分为以Ri
8、进行间接寻址和使用16 位的DPTR 进行的间接寻址。针对外部RAM 的操作只能通过累加器A 来完成,MCS-51 系统中没有专门的存储器读写指令,实际上这些传输指令就是读写指令,为了区分是外部寄存器,特别是指令助记符上增加了“X”代表外部之意。具体的指令如下:上一页 下一页 返回第二节 MCS-51 单片机指令详解 采用Ri 的指令有:采用DPTR 的指令有:上一页 下一页 返回第二节 MCS-51 单片机指令详解 4.数据交换指令 数据交换主要是在内部RAM 单元与累加器A 之间进行,有整字节交换、半字节交换和累加器高低半字节交换指令。源操作数有寄存器寻址、直接寻址和寄存器间接寻址等方式,
9、例如:上一页 下一页 返回第二节 MCS-51 单片机指令详解 5.堆栈指令 在MCS-51 内部RAM 中可以设定一个后进先出LIFO 的区域作为一个堆栈。在特殊功能寄存器中有一个堆栈指针SP,它指出栈顶的位置,在指令系统中有两条用于数据操作的栈操作指令。首先是入栈指令,这条指令的功能是首先将栈指针SP加1,然后把直接地址指出的内容送到栈指针SP 指示的内部RAM 单元中。还有对应的出栈指令,出栈指令是将当前堆栈指针寄存器SP 所指示的单元的内容传送到该指令指定的直接寻址单元中去,然后SP 中的内容减1.堆栈操作实际上是通过堆栈指示器SP 进行的读写操作,是以SP 为间址寄存器的间接寻址方式
10、。因为SP 是唯一的,所以在指令中把通过SP 的间接寻址的操作数项隐含了,只表示出直接寻址的操作数项。上一页 下一页 返回第二节 MCS-51 单片机指令详解 二、算术运算指令 1.加法指令 在加法指令中,又分位普通加法和带进位的加法。这组加法指令的功能是把所指出的字节变量与累加器A 的内容相加,其结果放在累加器A 中。如果位7 有进位输出,则置“1”进位标志Cy,否则对Cy清“0”,如果位3 有进位输出,置“1”辅助进位标志Ac,否则对Ac 清“0”;如果位6 有进位输出而位7 没有进位,或者位7 有进位输出而位6 没有进位,则置“1”溢出标志OV,否则对OV 清“0”。源操作数有寄存器寻址
11、、直接寻址、寄存器间接寻址和立即寻址等方式。带进位的加法,除了与上述的运算相似外,还增加了进位标制Cy参加运算;上一页 下一页 返回第二节 MCS-51 单片机指令详解上一页 下一页 返回第二节 MCS-51 单片机指令详解 2.减法指令 通常的减法运算都带有借位,这与带进位的加法十分类似:上一页 下一页 返回第二节 MCS-51 单片机指令详解 3.增1 减1 指令 这些指令可以实现对相应的操作数的增1 和减1 操作,这种操作不会影响PSW 的状态,具体指令如下:以上为自增1 运算,只需将INC 更改为DEC,则可以实现减1 运算,但增1 运算中还有INC DPTR,实现DPTR 增1,而减
12、1 中却没有这条指令。上一页 下一页 返回第二节 MCS-51 单片机指令详解 4.乘除指令 MUL AB DIV AB MUL 为乘法指令,其功能是把累加器A 和寄存器B 中的无符号8 位整数相乘,其16 位积得低位字节在累加器A 中,高位字节在B 中。如果积大于255,则置位溢出标志位OV,否则对OV 清“0”。进位标志位总是清“0”。DIV 为除法指令,该指令的功能是把累加器A 中8 位无符号整数除以B 中的8 位无符号整数,所得的商(为整数)存放在累加器A 中,余数在寄存器B 中,清“0”Cy 和溢出标志位OV。如果B 得内容为“0”(除数为“0”),则结果A,B 中的内容不定,并置位
13、溢出标志位OV。上一页 下一页 返回第二节 MCS-51 单片机指令详解 5.十进制调整指令 DA A 这条指令对累加器A 由前两个变量(压缩的BCD 码)相加的结果进行十进制调整使A 中的结果为二进制码数。三、逻辑运算指令 逻辑运算指令包括与、或、异或、循环、累加器清零与求反指令。这些指令中的操作数都是8 位,它们在执行时,不影响标志位。上一页 下一页 返回第二节 MCS-51 单片机指令详解 1.与(AND)逻辑运算指令 逻辑运算都是按位进行的,逻辑与运算用符号 表示。以上这几条指令运算结果存放在A 中,下面这两条指令的运算结果则存放在直接地址的地址单元中:上一页 下一页 返回第二节 MC
14、S-51 单片机指令详解 2.或(OR)逻辑运算指令 逻辑或运算用符号表示。以上几条指令运算结果存放在A中,下面这两条指令的运算结果则存放在直接寻址的地址单元中:上一页 下一页 返回第二节 MCS-51 单片机指令详解 3.异或逻辑运算指令 逻辑异或运算的规则是,两运算数相同时为假(0),两运算数相异时为真(1),这种运算用符号 表示。以上这几条指令运算结果存放在A 中,下面这两条指令的运算结果则存放在直接地址的地址单元中:上一页 下一页 返回第二节 MCS-51 单片机指令详解 4.累加器清零和求反指令 四、控制转移指令 控制转移指令包括无条件转移指令、条件转移指定、比较转移指令、循环转移指
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汽车 电子技术 单片机 24884
限制150内