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