汽车电子技术与单片机第3章知识讲解

上传人:夏** 文档编号:576318426 上传时间:2024-08-19 格式:PPT 页数:55 大小:890.50KB
返回 下载 相关 举报
汽车电子技术与单片机第3章知识讲解_第1页
第1页 / 共55页
汽车电子技术与单片机第3章知识讲解_第2页
第2页 / 共55页
汽车电子技术与单片机第3章知识讲解_第3页
第3页 / 共55页
汽车电子技术与单片机第3章知识讲解_第4页
第4页 / 共55页
汽车电子技术与单片机第3章知识讲解_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《汽车电子技术与单片机第3章知识讲解》由会员分享,可在线阅读,更多相关《汽车电子技术与单片机第3章知识讲解(55页珍藏版)》请在金锄头文库上搜索。

1、汽车电子技术与单片机第3章第一节第一节 MCS-51指令系统概述指令系统概述通常在通常在MCS-51指令系统中,有一字节、二字节和三字节等指令系统中,有一字节、二字节和三字节等不同长度的指令。一字节指令只有一个字节,操作码和操作不同长度的指令。一字节指令只有一个字节,操作码和操作数信息同在其中。二字节指令包括两个字节,其中一个字节数信息同在其中。二字节指令包括两个字节,其中一个字节为操作码,第二个字节是操作数。三字节指令中,操作码占为操作码,第二个字节是操作数。三字节指令中,操作码占一个字节,操作数占两个字节,其中操作数既可能是数据,一个字节,操作数占两个字节,其中操作数既可能是数据,也可能是

2、地址。也可能是地址。二、寻址方式二、寻址方式MCS-51共有共有5种寻址方式,现介绍如下:种寻址方式,现介绍如下:上一页 下一页返回第一节第一节 MCS-51指令系统概述指令系统概述1.立即寻址立即寻址操作数就写在指令中,和操作码一起放在程序存储器中。把操作数就写在指令中,和操作码一起放在程序存储器中。把“#”号放在立即数前面,以表示该寻址方式为立即寻址,如号放在立即数前面,以表示该寻址方式为立即寻址,如#20H。2.寄存器寻址寄存器寻址操作数放在寄存中,在指令中直接以寄存器的名字来表示操操作数放在寄存中,在指令中直接以寄存器的名字来表示操作数的地址。例如作数的地址。例如MOV A,R0就属于

3、寄存器寻址,即将就属于寄存器寻址,即将RO寄存器的内容送到累加器寄存器的内容送到累加器A中。中。3.直接寻址直接寻址操作数放在单片机的内部操作数放在单片机的内部RAM某单元中,在指令中直接写出某单元中,在指令中直接写出该单元的地址。如前例的该单元的地址。如前例的ADD A,70H中的中的70H。上一页 下一页返回第一节第一节 MCS-51指令系统概述指令系统概述4.寄存器间接寻址寄存器间接寻址寄存器间接寻址方式可用于访问内部寄存器间接寻址方式可用于访问内部RAM或外部数据存储器。或外部数据存储器。访问内部访问内部RAM或外部数据存储器的低或外部数据存储器的低256个字节时,可采用个字节时,可采

4、用R0或或R1作为间接寄存器。这类指令为单字节指令,其最低作为间接寄存器。这类指令为单字节指令,其最低位是表示采用位是表示采用R0还是还是R1作为间接寄存器。这种寻址方式的作为间接寄存器。这种寻址方式的示意图如示意图如图图3-1所示。访问外部数据存储器的低所示。访问外部数据存储器的低256字节时,字节时,只要把只要把MOV改为改为MOVX就行了。访问外部数据存储器,还就行了。访问外部数据存储器,还可用数据指针可用数据指针DPTR作为间址寄存器,作为间址寄存器,DPTR是是16位寄存器,位寄存器,故它可对整个外部数据存储器空间(故它可对整个外部数据存储器空间(64K)寻址。在执行)寻址。在执行P

5、USH和和POP指令时,也采用寄存器间接寻址,这是堆栈指指令时,也采用寄存器间接寻址,这是堆栈指针针SP用作间接寄存器。用作间接寄存器。上一页 下一页返回第一节第一节 MCS-51指令系统概述指令系统概述5.基址寄存器加变址寄存器间接寻址基址寄存器加变址寄存器间接寻址这种寻址方式用于访问程序寄存器的一个单元,该单元的地这种寻址方式用于访问程序寄存器的一个单元,该单元的地址是基址寄存器(址是基址寄存器(DPTR或或PC)的内容与变地址寄存器)的内容与变地址寄存器A的的内容之和。这种寻址方式对查表访问特别有用。寻址方式的内容之和。这种寻址方式对查表访问特别有用。寻址方式的示意图如示意图如图图3-2

6、所示。所示。三、指令执行过程和指令符号意义三、指令执行过程和指令符号意义单片机执行程序的过程,实际上就是执行我们所编制程序的单片机执行程序的过程,实际上就是执行我们所编制程序的过程,即执行逐条指令的过程。计算机每执行一条指令都可过程,即执行逐条指令的过程。计算机每执行一条指令都可分为三个阶段进行,即取指令分为三个阶段进行,即取指令分析指令分析指令执行指令。执行指令。上一页 下一页返回第一节第一节 MCS-51指令系统概述指令系统概述取指令的任务是:根据程序计数器取指令的任务是:根据程序计数器PC中的值从程序存储器读中的值从程序存储器读出现行指令,送到指令寄存器。分析指令阶段的任务是:将出现行指

7、令,送到指令寄存器。分析指令阶段的任务是:将指令寄存器中的指令操作码读出后进行译码,分析其指令性指令寄存器中的指令操作码读出后进行译码,分析其指令性质,如指令要求操作数,则寻找操作数地址。计算机执行程质,如指令要求操作数,则寻找操作数地址。计算机执行程序的过程实际上就是逐条指令地重复上述操作过程,直至遇序的过程实际上就是逐条指令地重复上述操作过程,直至遇到停机指令或循环等到指令。到停机指令或循环等到指令。一般计算机进行工作时,首先要通过外部设备把程序和数据一般计算机进行工作时,首先要通过外部设备把程序和数据通过输入接口电路和数据总线送入到存储器,然后逐条取出通过输入接口电路和数据总线送入到存储

8、器,然后逐条取出执行。但单片机中的程序一般事先都已通过写入器固化在片执行。但单片机中的程序一般事先都已通过写入器固化在片内或片外程序存储器中,因而一开机即可执行指令。内或片外程序存储器中,因而一开机即可执行指令。上一页 下一页返回第一节第一节 MCS-51指令系统概述指令系统概述指令中操作数的描述符号:指令中操作数的描述符号:Rn工作寄存器工作寄存器R0R7Ri间接寻址寄存器间接寻址寄存器R0、R1Direct直接地址,包括内部直接地址,包括内部128B RAM单元地址、单元地址、26个个SFR地址。地址。#data8位常数位常数#data1616位常数位常数addr1616位目的地址位目的地

9、址addr1111位目的地址位目的地址rel8位带符号的偏移地址位带符号的偏移地址DPTR16位外部数据指针寄存器位外部数据指针寄存器上一页 下一页返回第一节第一节 MCS-51指令系统概述指令系统概述bit可直接位寻址的位可直接位寻址的位A累加器累加器AB寄存器寄存器BC进、借位标志位,或位累加器进、借位标志位,或位累加器间接寄存器或基址寄存器的前缀间接寄存器或基址寄存器的前缀/指定位求反指定位求反(x)x中的内容中的内容(x)x中的地址中的内容中的地址中的内容 当前指令存放的地址当前指令存放的地址上一页 返回第二节第二节 MCS-51单片机指令详解单片机指令详解一、数据传输指令一、数据传输

10、指令1.累加器相关的数据传输指令累加器相关的数据传输指令以下指令的功能是把源操作数的内容送入累加器以下指令的功能是把源操作数的内容送入累加器A,源操作,源操作数有寄存器寻址、直接寻址、间接寻址和立即寻址等方式。数有寄存器寻址、直接寻址、间接寻址和立即寻址等方式。2.内部内部RAM单元之间的数据传输指令单元之间的数据传输指令下一页返回第二节第二节 MCS-51单片机指令详解单片机指令详解内部内部RAM单元之间的数据传输可以使用直接寻址、寄存器寻单元之间的数据传输可以使用直接寻址、寄存器寻址以及寄存器间接寻址方式。址以及寄存器间接寻址方式。3.外部存储器数据传输指令外部存储器数据传输指令外部外部R

11、AM传输指令通常使用间接寻址的方式,主要可以分为传输指令通常使用间接寻址的方式,主要可以分为以以Ri进行间接寻址和使用进行间接寻址和使用16位的位的DPTR进行的间接寻址。针进行的间接寻址。针对外部对外部RAM的操作只能通过累加器的操作只能通过累加器A来完成,来完成,MCS-51系统系统中没有专门的存储器读写指令,实际上这些传输指令就是读中没有专门的存储器读写指令,实际上这些传输指令就是读写指令,为了区分是外部寄存器,特别是指令助记符上增加写指令,为了区分是外部寄存器,特别是指令助记符上增加了了“X”代表外部之意。具体的指令如下:代表外部之意。具体的指令如下:上一页 下一页返回第二节第二节 M

12、CS-51单片机指令详解单片机指令详解采用采用Ri的指令有:的指令有:采用采用DPTR的指令有:的指令有:上一页 下一页返回第二节第二节 MCS-51单片机指令详解单片机指令详解4.数据交换指令数据交换指令数据交换主要是在内部数据交换主要是在内部RAM单元与累加器单元与累加器A之间进行,有整之间进行,有整字节交换、半字节交换和累加器高低半字节交换指令。源操字节交换、半字节交换和累加器高低半字节交换指令。源操作数有寄存器寻址、直接寻址和寄存器间接寻址等方式,例作数有寄存器寻址、直接寻址和寄存器间接寻址等方式,例如:如:上一页 下一页返回第二节第二节 MCS-51单片机指令详解单片机指令详解5.堆

13、栈指令堆栈指令在在MCS-51内部内部RAM中可以设定一个后进先出中可以设定一个后进先出LIFO的区域的区域作为一个堆栈。在特殊功能寄存器中有一个堆栈指针作为一个堆栈。在特殊功能寄存器中有一个堆栈指针SP,它,它指出栈顶的位置,在指令系统中有两条用于数据操作的栈操作指出栈顶的位置,在指令系统中有两条用于数据操作的栈操作指令。首先是入栈指令,这条指令的功能是首先将栈指针指令。首先是入栈指令,这条指令的功能是首先将栈指针SP加加1,然后把直接地址指出的内容送到栈指针,然后把直接地址指出的内容送到栈指针SP指示的内部指示的内部RAM单元中。还有对应的出栈指令,出栈指令是将当前堆栈单元中。还有对应的出

14、栈指令,出栈指令是将当前堆栈指针寄存器指针寄存器SP所指示的单元的内容传送到该指令指定的直接所指示的单元的内容传送到该指令指定的直接寻址单元中去,然后寻址单元中去,然后SP中的内容减中的内容减1.堆栈操作实际上是通过堆栈操作实际上是通过堆栈指示器堆栈指示器SP进行的读写操作,是以进行的读写操作,是以SP为间址寄存器的间接为间址寄存器的间接寻址方式。因为寻址方式。因为SP是唯一的,所以在指令中把通过是唯一的,所以在指令中把通过SP的间接的间接寻址的操作数项隐含了,只表示出直接寻址的操作数项。寻址的操作数项隐含了,只表示出直接寻址的操作数项。上一页 下一页返回第二节第二节 MCS-51单片机指令详

15、解单片机指令详解二、算术运算指令二、算术运算指令1.加法指令加法指令在加法指令中,又分位普通加法和带进位的加法。这组加法在加法指令中,又分位普通加法和带进位的加法。这组加法指令的功能是把所指出的字节变量与累加器指令的功能是把所指出的字节变量与累加器A的内容相加,的内容相加,其结果放在累加器其结果放在累加器A中。如果位中。如果位7有进位输出,则置有进位输出,则置“1”进进位标志位标志Cy,否则对,否则对Cy清清“0”,如果位,如果位3有进位输出,置有进位输出,置“1”辅助进位标志辅助进位标志Ac,否则对,否则对Ac清清“0”;如果位;如果位6有进位有进位输出而位输出而位7没有进位,或者位没有进位

16、,或者位7有进位输出而位有进位输出而位6没有进位,没有进位,则置则置“1”溢出标志溢出标志OV,否则对,否则对OV清清“0”。源操作数有寄。源操作数有寄存器寻址、直接寻址、寄存器间接寻址和立即寻址等方式。存器寻址、直接寻址、寄存器间接寻址和立即寻址等方式。带进位的加法,除了与上述的运算相似外,还增加了进位标带进位的加法,除了与上述的运算相似外,还增加了进位标制制Cy参加运算;参加运算;上一页 下一页返回第二节第二节 MCS-51单片机指令详解单片机指令详解上一页 下一页返回第二节第二节 MCS-51单片机指令详解单片机指令详解2.减法指令减法指令通常的减法运算都带有借位,这与带进位的加法十分类

17、似:通常的减法运算都带有借位,这与带进位的加法十分类似:上一页 下一页返回第二节第二节 MCS-51单片机指令详解单片机指令详解3.增增1减减1指令指令这些指令可以实现对相应的操作数的增这些指令可以实现对相应的操作数的增1和减和减1操作,这种操操作,这种操作不会影响作不会影响PSW的状态,具体指令如下:的状态,具体指令如下:以上为自增以上为自增1运算,只需将运算,只需将INC更改为更改为DEC,则可以实现减,则可以实现减1运算,但增运算,但增1运算中还有运算中还有INC DPTR,实现,实现DPTR增增1,而,而减减1中却没有这条指令。中却没有这条指令。上一页 下一页返回第二节第二节 MCS-

18、51单片机指令详解单片机指令详解4.乘除指令乘除指令MUL ABDIV ABMUL为乘法指令,其功能是把累加器为乘法指令,其功能是把累加器A和寄存器和寄存器B中的无符中的无符号号8位整数相乘,其位整数相乘,其16位积得低位字节在累加器位积得低位字节在累加器A中,高位中,高位字节在字节在B中。如果积大于中。如果积大于255,则置位溢出标志位,则置位溢出标志位OV,否则,否则对对OV清清“0”。进位标志位总是清。进位标志位总是清“0”。DIV为除法指令,为除法指令,该指令的功能是把累加器该指令的功能是把累加器A中中8位无符号整数除以位无符号整数除以B中的中的8位位无符号整数,所得的商(为整数)存放

19、在累加器无符号整数,所得的商(为整数)存放在累加器A中,余数中,余数在寄存器在寄存器B中,清中,清“0”Cy和溢出标志位和溢出标志位OV。如果。如果B得内容为得内容为“0”(除数为(除数为“0”),则结果),则结果A,B中的内容不定,并置位中的内容不定,并置位溢出标志位溢出标志位OV。上一页 下一页返回第二节第二节 MCS-51单片机指令详解单片机指令详解5.十进制调整指令十进制调整指令DA A这条指令对累加器这条指令对累加器A由前两个变量(压缩的由前两个变量(压缩的BCD码)相加的码)相加的结果进行十进制调整使结果进行十进制调整使A中的结果为二进制码数。中的结果为二进制码数。三、逻辑运算指令

20、三、逻辑运算指令逻辑运算指令包括与、或、异或、循环、累加器清零与求反逻辑运算指令包括与、或、异或、循环、累加器清零与求反指令。这些指令中的操作数都是指令。这些指令中的操作数都是8位,它们在执行时,不影响位,它们在执行时,不影响标志位。标志位。上一页 下一页返回第二节第二节 MCS-51单片机指令详解单片机指令详解1.与(与(AND)逻辑运算指令)逻辑运算指令逻辑运算都是按位进行的,逻辑与运算用符号逻辑运算都是按位进行的,逻辑与运算用符号 表示。以上这表示。以上这几条指令运算结果存放在几条指令运算结果存放在A中,下面这两条指令的运算结果中,下面这两条指令的运算结果则存放在直接地址的地址单元中:则

21、存放在直接地址的地址单元中:上一页 下一页返回第二节第二节 MCS-51单片机指令详解单片机指令详解2.或(或(OR)逻辑运算指令)逻辑运算指令逻辑或运算用符号逻辑或运算用符号表示。以上几条指令运算结果存放在表示。以上几条指令运算结果存放在A中,下面这两条指令的运算结果则存放在直接寻址的地址单中,下面这两条指令的运算结果则存放在直接寻址的地址单元中元中:上一页 下一页返回第二节第二节 MCS-51单片机指令详解单片机指令详解3.异或逻辑运算指令异或逻辑运算指令逻辑异或运算的规则是,两运算数相同时为假(逻辑异或运算的规则是,两运算数相同时为假(0),两运算),两运算数相异时为真(数相异时为真(1

22、),这种运算用符号),这种运算用符号 表示。以上这几条表示。以上这几条指令运算结果存放在指令运算结果存放在A中,下面这两条指令的运算结果则存中,下面这两条指令的运算结果则存放在直接地址的地址单元中:放在直接地址的地址单元中:上一页 下一页返回第二节第二节 MCS-51单片机指令详解单片机指令详解4.累加器清零和求反指令累加器清零和求反指令四、控制转移指令四、控制转移指令控制转移指令包括无条件转移指令、条件转移指定、比较转控制转移指令包括无条件转移指令、条件转移指定、比较转移指令、循环转移指令及调用与返回指令。移指令、循环转移指令及调用与返回指令。1.无条件转移指令无条件转移指令这里又分为长转移

23、、短转移、绝对转移和变址寻址转移这里又分为长转移、短转移、绝对转移和变址寻址转移4种方种方式。长转移指令执行时可以把指令的第二和第三字节分别装式。长转移指令执行时可以把指令的第二和第三字节分别装入入PC的高位和低位字节中,无条件地转向指定地址。转移的的高位和低位字节中,无条件地转向指定地址。转移的目标地址可以在目标地址可以在64K程序存储器地址空间的任何地方。指令程序存储器地址空间的任何地方。指令格式如下:格式如下:上一页 下一页返回第二节第二节 MCS-51单片机指令详解单片机指令详解对于短转移指令,在执行时在对于短转移指令,在执行时在PC加加2之后,把指令的有符号之后,把指令的有符号的偏移

24、量的偏移量rel加到加到PC上,并计算出转向地址。因此转向的目上,并计算出转向地址。因此转向的目标地址可以在这条指令前标地址可以在这条指令前128字节到后字节到后127字节之间。指令字节之间。指令格式如下:格式如下:绝对转移指令是绝对转移指令是2KB范围内的无条件跳转指令。范围内的无条件跳转指令。AJMP把把MCS-51的的64K程序存储器空间划分为程序存储器空间划分为32个区,每个区为个区,每个区为2K字节,转移目标地址必须与字节,转移目标地址必须与AJMP下一条指令的第一个字下一条指令的第一个字节在同一节在同一2KB范围内,否则,将引起混乱,如果范围内,否则,将引起混乱,如果AJMP正好正

25、好落在区底的两个单元内,程序就转移到下一个区中去了,这落在区底的两个单元内,程序就转移到下一个区中去了,这时不会出现问题。时不会出现问题。上一页 下一页返回第二节第二节 MCS-51单片机指令详解单片机指令详解执行该指令时,先将执行该指令时,先将PC加加2,然后把,然后把addr11送入送入PC的低的低11位,位,PC高位不变,程序转移到指定的地方。指令格式如高位不变,程序转移到指定的地方。指令格式如下:下:变址寻址转移指令的功能是把累加器中变址寻址转移指令的功能是把累加器中8位元符号数与数据指位元符号数与数据指针针DPTR的的16位数相加,结果作为下条指令地址送入位数相加,结果作为下条指令地

26、址送入PC,不改变累加器和数据指针不改变累加器和数据指针DPTR内容,也不影响标志。指令内容,也不影响标志。指令格式如下:格式如下:上一页 下一页返回第二节第二节 MCS-51单片机指令详解单片机指令详解2.条件转移指令条件转移指令条件转移指令又可以分为判零转移、数值比较转移和减条件转移指令又可以分为判零转移、数值比较转移和减1转移转移三种。判零转移是有条件的相对转移指令,指令如下:三种。判零转移是有条件的相对转移指令,指令如下:上一页 下一页返回第二节第二节 MCS-51单片机指令详解单片机指令详解数值比较转移指令的功能是比较前面两个操作数的大小,如数值比较转移指令的功能是比较前面两个操作数

27、的大小,如果他们的值不相等则转移,在果他们的值不相等则转移,在PC加到下一条指令的起始地址加到下一条指令的起始地址后,通过把指令最后一个字节的有符号的相对偏移量加到后,通过把指令最后一个字节的有符号的相对偏移量加到PC上,并计算出转向地址。如果第一操作数(无符号数)小于上,并计算出转向地址。如果第一操作数(无符号数)小于第二操作数(无符号整数),则置进位标志位第二操作数(无符号整数),则置进位标志位Cy,否则对,否则对Cy清清“0”,不影响任何一个操作数的内容。指令格式如下:不影响任何一个操作数的内容。指令格式如下:上一页 下一页返回第二节第二节 MCS-51单片机指令详解单片机指令详解这组指

28、令将源操作数这组指令将源操作数(Rn,direct)减减1,结果回送到源操作,结果回送到源操作数寄存器或存储器中去。如果结果不为数寄存器或存储器中去。如果结果不为0则转移。源操作数有则转移。源操作数有寄存器寻址和直接寻址。允许程序员把内部寄存器寻址和直接寻址。允许程序员把内部RAM单元用作程单元用作程序循环计数器。指令格式如下:序循环计数器。指令格式如下:DJNZ Rn,relDJNZ direct,rel3.子程序调用和返回指令子程序调用和返回指令子程序结构是一种重要的程序结构。在一个程序中经常遇到子程序结构是一种重要的程序结构。在一个程序中经常遇到反复多次执行程序段的情况,如果重复书写这个

29、程序段,会反复多次执行程序段的情况,如果重复书写这个程序段,会使程序变得冗长而杂乱,因而采用了功能较为重复的子程序。使程序变得冗长而杂乱,因而采用了功能较为重复的子程序。上一页 下一页返回第二节第二节 MCS-51单片机指令详解单片机指令详解调用和返回构成了子程序调用的完整过程。为了实现这一过调用和返回构成了子程序调用的完整过程。为了实现这一过程,必须有子程序调用指令和返回指令。返回指令则应该是程,必须有子程序调用指令和返回指令。返回指令则应该是子程序的最后一条指令。执行完这条指令之后,程序返回主子程序的最后一条指令。执行完这条指令之后,程序返回主程序断点处继续执行。程序断点处继续执行。上一页

30、 下一页返回第二节第二节 MCS-51单片机指令详解单片机指令详解还有子程序返回指令还有子程序返回指令RET和和RETI,分别放置了在子程序和,分别放置了在子程序和中断服务程序的最后。中断服务程序的最后。4、空操作指令、空操作指令这条语句什么也不做,消耗一个机器周期的时间,通常用于这条语句什么也不做,消耗一个机器周期的时间,通常用于程序的延时。程序的延时。上一页 下一页返回第二节第二节 MCS-51单片机指令详解单片机指令详解五、位操作指令五、位操作指令1.数据位传送指令数据位传送指令这组指令的功能是把由源操作数指出的位变量送到目的操作这组指令的功能是把由源操作数指出的位变量送到目的操作数指定

31、的单元中去。其中一个操作数必须为进位标志,另一数指定的单元中去。其中一个操作数必须为进位标志,另一个可以是任何直接寻址位。不影响其他寄存器或标志。指令个可以是任何直接寻址位。不影响其他寄存器或标志。指令格式如下:格式如下:上一页 下一页返回第二节第二节 MCS-51单片机指令详解单片机指令详解2.修改变量指令修改变量指令这组指令将操作数指出的位清这组指令将操作数指出的位清“0”、取反、置、取反、置“1”,不影,不影响其他标志。响其他标志。上一页 下一页返回第二节第二节 MCS-51单片机指令详解单片机指令详解3.位变量的逻辑运算位变量的逻辑运算实际上位运算全部是逻辑运算,共有与、或、非三种指令

32、。实际上位运算全部是逻辑运算,共有与、或、非三种指令。这里仅以与运算为例来说明,或运算符位这里仅以与运算为例来说明,或运算符位ORL,非运算已在,非运算已在上文中替代。上文中替代。上一页 下一页返回第二节第二节 MCS-51单片机指令详解单片机指令详解4.条件转移类指令条件转移类指令与前文介绍的条件转移指令类似,位运算也可以进行条件转与前文介绍的条件转移指令类似,位运算也可以进行条件转移。移。上一页返回第三节第三节 MCS-51单片机系统程序设单片机系统程序设计实例计实例一、汇编语言程序的基本结构一、汇编语言程序的基本结构各种计算机的汇编语言的语法规则基本相同,且具有相同的各种计算机的汇编语言

33、的语法规则基本相同,且具有相同的语句格式。先以语句格式。先以MCS-51汇编语言作具体说明。汇编语言作具体说明。MCS-51汇汇编语言的语句格式表示如下:编语言的语句格式表示如下:下一页返回第三节第三节 MCS-51单片机系统程序设单片机系统程序设计实例计实例其中,方括号括起来的是可选部分,可有可无,视需要而定。其中,方括号括起来的是可选部分,可有可无,视需要而定。标号是指令的符号的地址,有了标号,程序中的其他语句才标号是指令的符号的地址,有了标号,程序中的其他语句才能访问该语句。标号的规则:标号由能访问该语句。标号的规则:标号由18个个ASCII字符组成,字符组成,但头一个字符必须是字母,其

34、余可以是字母,数字或其他特但头一个字符必须是字母,其余可以是字母,数字或其他特定字符。不能使用本汇编语言已定义了符号作为符号,如指定字符。不能使用本汇编语言已定义了符号作为符号,如指令助记符、伪指令助记符以及寄存器的符号名称。标号后必令助记符、伪指令助记符以及寄存器的符号名称。标号后必须跟以冒号(:)同一标号在一个程序中只能定义一次,不须跟以冒号(:)同一标号在一个程序中只能定义一次,不能重复定义。能重复定义。上一页 下一页返回第三节第三节 MCS-51单片机系统程序设单片机系统程序设计实例计实例一条语句可以有标号,也可以没有标号,标号的有无取决于一条语句可以有标号,也可以没有标号,标号的有无

35、取决于本程序中的其他语句是否需要访问这条语句操作码用于规定本程序中的其他语句是否需要访问这条语句操作码用于规定语句执行的操作内容。操作码是以指令助记符或伪指令助记语句执行的操作内容。操作码是以指令助记符或伪指令助记符表示的,操作码是汇编指令格式中唯一不能空缺的部分。符表示的,操作码是汇编指令格式中唯一不能空缺的部分。操作数用于给指令和操作提示数据或地址。注释不属于语句操作数用于给指令和操作提示数据或地址。注释不属于语句的功能部分,它只是对语句的解释说明。分界符用于把语句的功能部分,它只是对语句的解释说明。分界符用于把语句格式中的各部分隔开,以便于汇编语言程序区分,包括空格,格式中的各部分隔开,

36、以便于汇编语言程序区分,包括空格,冒号,分号或逗号等多种符号,在冒号,分号或逗号等多种符号,在MCS-51中,冒号(:)中,冒号(:)用于标号之后;空格()用于操作码和操作数之间;逗号(,用于标号之后;空格()用于操作码和操作数之间;逗号(,)用于操作数之间;分号(;)用于注释之前。)用于操作数之间;分号(;)用于注释之前。上一页 下一页返回第三节第三节 MCS-51单片机系统程序设单片机系统程序设计实例计实例汇编语言程序的结构形式主要分为三种:顺序结构,分支结汇编语言程序的结构形式主要分为三种:顺序结构,分支结构和循环结构。顺序结构是最简单的程序结构,在顺序结构构和循环结构。顺序结构是最简单

37、的程序结构,在顺序结构中既无分支,循环,也不调用子程序,程序执行时一条一条中既无分支,循环,也不调用子程序,程序执行时一条一条地按顺序执行指令。分支结构使用条件转移指令实现,即根地按顺序执行指令。分支结构使用条件转移指令实现,即根据条件对程序的执行进行判断,满足条件则进行程序转移,据条件对程序的执行进行判断,满足条件则进行程序转移,否则程序顺序执行。循环结构则在程序的某个区段进行反复否则程序顺序执行。循环结构则在程序的某个区段进行反复的运行,直到满足某种条件结束,而有的程序则完全不能跳的运行,直到满足某种条件结束,而有的程序则完全不能跳出的死循环,将会无休止地运行下去。出的死循环,将会无休止地

38、运行下去。上一页 下一页返回第三节第三节 MCS-51单片机系统程序设单片机系统程序设计实例计实例二、简单程序设计二、简单程序设计简单程序设计指的就是按照顺序来执行程序,程序中可以包简单程序设计指的就是按照顺序来执行程序,程序中可以包含某种算法。含某种算法。实例实例求解多项式求解多项式y=2a-b。假设操作数假设操作数a放在寄存器放在寄存器R3,操作数,操作数b放在寄存器放在寄存器R4;结果;结果分别放在寄存器分别放在寄存器R5和和R6.上一页 下一页返回第三节第三节 MCS-51单片机系统程序设单片机系统程序设计实例计实例上一页 下一页返回第三节第三节 MCS-51单片机系统程序设单片机系统

39、程序设计实例计实例三、分支和循环程序三、分支和循环程序在许多情况下,需要根据不同的条件转向不同的处理程序,在许多情况下,需要根据不同的条件转向不同的处理程序,这种结构的程序称为分支程序。这种结构的程序称为分支程序。MCS-51单片机设置的条件单片机设置的条件转移指令、比较转移指令和位转移指令可以实现程序的分支。转移指令、比较转移指令和位转移指令可以实现程序的分支。图图3-3为分支程序框图。为分支程序框图。实例实例设设a存放在累加器存放在累加器R2中,中,b存放在寄存器存放在寄存器R3中,要求中,要求按下式计算按下式计算y值,并将结果值,并将结果y存于累加器存于累加器A中。中。上一页 下一页返回

40、第三节第三节 MCS-51单片机系统程序设单片机系统程序设计实例计实例上一页 下一页返回第三节第三节 MCS-51单片机系统程序设单片机系统程序设计实例计实例循环程序是指一段反复执行的程序。循环程序是指一段反复执行的程序。图图3-4为循环程序框图。为循环程序框图。实例实例将内部数据存储器将内部数据存储器38H6FH单元的内容传送到外部单元的内容传送到外部数据存储器以数据存储器以1000H开始的连续单元中去。开始的连续单元中去。38H6FH单元向外传数据,需传送单元向外传数据,需传送56次。将次。将R6作为循环作为循环计数寄存器,有如下的流程图:计数寄存器,有如下的流程图:上一页 下一页返回第三

41、节第三节 MCS-51单片机系统程序设单片机系统程序设计实例计实例四、查表程序四、查表程序查表就是根据自变量查表就是根据自变量x的值,在表总查找的值,在表总查找y,使,使y=f(x)。)。x和和y可以使各种类型的数据。表的结构也是多种多样的。表格可以使各种类型的数据。表的结构也是多种多样的。表格可以放在程序存储器中,也可以存放在数据存储器中。在单可以放在程序存储器中,也可以存放在数据存储器中。在单片机应用系统中,这类程序使用频繁。利用它能避免进行复片机应用系统中,这类程序使用频繁。利用它能避免进行复杂的运算或转换过程,故它广泛应用于显示、打印字符的转杂的运算或转换过程,故它广泛应用于显示、打印

42、字符的转换以及数据补偿、计算、转换等程序中。一般情况下,对自换以及数据补偿、计算、转换等程序中。一般情况下,对自变量变量x是有变化规律的数据,可以根据这一规律形成地址,对是有变化规律的数据,可以根据这一规律形成地址,对应的应的y则存放于该地址单元中;对则存放于该地址单元中;对x是没有变化规律的数据,是没有变化规律的数据,在表中存放在表中存放x及其对应的及其对应的y值。值。上一页 下一页返回第三节第三节 MCS-51单片机系统程序设单片机系统程序设计实例计实例实例实例试计算发动机燃油温度信号与油温的关系。试计算发动机燃油温度信号与油温的关系。设电压与油温的表为设电压与油温的表为1 2 3 4V2

43、0 28 36 52 。发动。发动机的燃油温度通常是电压信号,通过上表可以在得到一个电机的燃油温度通常是电压信号,通过上表可以在得到一个电压信号后,算出燃油温度。由于输入的字符之间很难找到什压信号后,算出燃油温度。由于输入的字符之间很难找到什么规律,建立表格时将字符和其对应的处理程序的地址一同么规律,建立表格时将字符和其对应的处理程序的地址一同存入。查表时先查找电压值,其后就是处理程序的入口地址。存入。查表时先查找电压值,其后就是处理程序的入口地址。程序代码如下:(假设待转化量放在程序代码如下:(假设待转化量放在A中,结果存放到中,结果存放到R2中。中。)上一页 下一页返回第三节第三节 MCS

44、-51单片机系统程序设单片机系统程序设计实例计实例上一页 下一页返回第三节第三节 MCS-51单片机系统程序设单片机系统程序设计实例计实例五、数据极值查找程序五、数据极值查找程序在控制程序的设计过程中,经常要使用数据极值查找程序,在控制程序的设计过程中,经常要使用数据极值查找程序,顾名思义这种程序的作用就是要在一个给定的数表中查找所顾名思义这种程序的作用就是要在一个给定的数表中查找所需要的极大值和极小值。通常极值查找的算法有需要的极大值和极小值。通常极值查找的算法有“筛选法筛选法”和和“冒泡法冒泡法”两种,前者逐次在数表中查找最大(小)值,两种,前者逐次在数表中查找最大(小)值,将这一数值记录

45、到某存储单元内,并逐渐缩小查找范围,最将这一数值记录到某存储单元内,并逐渐缩小查找范围,最终得到所需的极值;后一种方法通过比较相邻两个数据的大终得到所需的极值;后一种方法通过比较相邻两个数据的大小,得到相对结果,在将这一相对结果与后续数据进行比较,小,得到相对结果,在将这一相对结果与后续数据进行比较,最终得到极值。最终得到极值。上一页 下一页返回第三节第三节 MCS-51单片机系统程序设单片机系统程序设计实例计实例实例实例在内部在内部RAM 30H单元开始连续存放着单元开始连续存放着6个单字节数,个单字节数,分别表示发动机在不同时刻的冷却水温度值,试找出其中最分别表示发动机在不同时刻的冷却水温

46、度值,试找出其中最大的记录值,以观测发动机的实际工作过程的冷却效果。大的记录值,以观测发动机的实际工作过程的冷却效果。极值查找操作的主要内容是进行数值大小的比较。假定在比极值查找操作的主要内容是进行数值大小的比较。假定在比较过程中,以较过程中,以A存放大数,将逐个比较的另一个中间过程的存放大数,将逐个比较的另一个中间过程的数值放在数值放在37H单元中。比较结束后把查找到的最大数送单元中。比较结束后把查找到的最大数送38H单元中输出。该程序的流程图如单元中输出。该程序的流程图如图图3-5所示,程序的源代码所示,程序的源代码如下:如下:上一页 下一页返回第三节第三节 MCS-51单片机系统程序设单片机系统程序设计实例计实例上一页返回图图3-1 寄存器间接寻址寄存器间接寻址返回图图3-2 基址寄存器加变址寄存器间基址寄存器加变址寄存器间接寻址接寻址返回图图3-3 分支程序框图分支程序框图返回图图3-4 循环程序框图循环程序框图返回图图3-5 极值查找程序框图极值查找程序框图返回此课件下载可自行编辑修改,仅供参考!此课件下载可自行编辑修改,仅供参考!感谢您的支持,我们努力做得更好!谢谢感谢您的支持,我们努力做得更好!谢谢

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号