片机原理及应用第二章.ppt
《片机原理及应用第二章.ppt》由会员分享,可在线阅读,更多相关《片机原理及应用第二章.ppt(125页珍藏版)》请在三一办公上搜索。
1、第2章 MCS-51单片机指令系统与汇编语言程序设计,主要内容:MCS-51单片机的寻址方式、指令系统、基本程序结构及汇编语言程序的开发与调试。重 点:寻址方式、各种指令的应用、程序设计的规范、程序设计的思想及典型程序的理解和掌握。难 点:控制转移、位操作指令的理解,各种指令的灵活应用,程序设计的基本方法以及针对具体的硬件设计出最合理的软件。要 求:抽时间自学Keil,C51。,第2章 MCS-51单片机指令系统与汇编语言程序设计,2.1 概述2.2 MCS-51单片机的寻址方式2.3 MCS-51单片机的指令系统2.4 汇编语言及程序设计2.5 程序设计举例2.6 汇编语言的开发环境,指令系
2、统:一台计算机所能识别、执行的指令的集合。机器语言:指令系统是一套控制计算机执行操作的二进制编码,称为机器语言。特点:机器语言指令是计算机惟一能直接识别和执行的指令。汇编语言:利用指令助记符来描述指令系统的一套计算机指令。特点:计算机的指令系统一般都是利用汇编语言描述的,是由计算机硬件设计所决定的。指令系统没有通用性。,2.1 概述,单片机一般是空机,未含任何系统软件。因此在第一次使用前,必须对其进行编程。,指令:计算机用于控制各功能部件完成某一指定动作的指示和命令。识别指令的标志指令的表示形式:(1)指令的二进制形式 机器码、源程序的目标代码二进制。特点:直接为计算机识别和执行。读/写和记忆
3、困难。(2)指令的十六进制形式 指令的十六进代码需翻译成二进制代码才能被计算机识别和执行。特点:方便读,写和记忆困难。(3)指令助记符 用英文字母、单词表征指令的功能。其源程序必须翻译成机器码(目标代码)才能被计算机识别和执行。特点:方便读/写和记忆。,2.1.1 汇编语言指令格式与伪指令2.1.2 指令的分类2.1.3 指令中的常用符号,2.1 概述,2.1.1 汇编语言指令格式与伪指令,1常用单位与术语位(bit):计算机所能表示的最小的、最基本的数据单位,指一个二进制位。字节(Byte):一个连续的8位二进制数码,1Byte=8bit。字(Word):通常由16位二进制数码组成,即1Wo
4、rd=2Byte。字长:计算机一次处理二进制数码的位数。,MCS-51系列单片机都是以Intel公司最早的典型8位产品8051为核心,增加了一定的功能部件后构成的。本章以8051为主介绍MCS-51系列单片机。,2汇编语言指令格式,指令格式:指令的表示方式,规定了指令的长度和内部信息的安排。标号:操作码 操作数,操作数;注释其中:项是可选项。标号(符号地址):本条指令起始地址的符号,代表该条指令在程序编译时的具体地址。操作码(助记符):英文字母、单词表征指令,一般是对应英文的缩写。特点:规定了指令具体的操作功能,描述指令的操作性质,是指令语句的关键,是一条指令中不可缺少的内容。操作数:一个具体
5、的数据,或存放数据的地址。注释:针对某指令而添加的说明性文字,增加程序的可读性,不产生可执行的目标代码。,伪指令:汇编程序的控制命令。是程序员发给汇编程序的命令。功能:设置符号值、保留和初始化存储空间、控制用户程序代码的位置。,3伪指令,伪指令只出现在汇编前的源程序中,仅提供汇编用的某些控制信息,不产生可执行的目标代码,是CPU不能实际执行的指令。,(1)定位伪指令ORG,格式:ORG n其中:n绝对地址,十六进制数、标号或表达式。功能:规定编译后的机器代码存放的起始位置。规定:在一个汇编语言源程序中允许存在多条定位伪指令,但每一个n值都应和前面生成的机器指令存放地址不重叠。例如:ORG 10
6、00H START:MOV A,#20H MOV B,#30H,(2)结束汇编伪指令END格式:标号:END 表达式功能:源程序的汇编到此结束,其后的任何内容不予理睬。放在汇编语言源程序的末尾。(3)赋值伪指令EQU格式:字符名称x EQU 赋值项n功能:将赋值项n的值赋予字符名称x。程序中凡出现该字符名称x就等同于该赋值项n,其值在整个程序中有效。规定:在使用时,必须先赋值后使用。赋值项n可以是常数、地址、标号或表达式。,“字符名称”与“标号”表示形式的区别:“字符名称”后无冒号,而“标号”后面有冒号。,(4)定义字节伪指令DB格式:标号:DB x1,x2,xn功能:将8位数据(数据组)x1
7、,x2,xn顺序存放在从当前程序存储器地址开始的存储单元中。规定:xi8位常数(00HFFH)、ASCII码(字符在单引号内)、表达式,字符串(在单引号内,长度80个字符)。两个数据之间用逗号“,”分隔。,(5)定义双字节伪指令DW,格式:标号:DW x1,x2,xn功能:将双字节数据(数据组)顺序存放在从标号指定地址单元开始的存储单元中。规定:xi16位数值常数,先存高8位入低位地址单元。(6)预留存储空间伪指令DS格式:标号:DS n功能:从标号指定地址单元开始,预留n个存储单元。规定:汇编时不对预留存储单元赋值。n数据,表达式。注意:DB、DW、DS伪指令只能对程序存储器进行赋值和初始化
8、工作,不能用来对数据存储器进行赋值和初始化工作。,(7)定义位地址符号伪指令BIT格式:字符名称x BIT 位地址n功能:将位地址n的值赋予字符名称x。规定:程序中凡出现该字符名称x就代表该位地址。位地址n绝对地址,符号地址。(8)数据地址赋值伪指令DATA格式:字符名称x DATA 表达式n功能:把表达式n的值赋值给左边的字符名称x。规定:n数据或地址,包含所定义的“字符名称x”在内的表达式,但不能为汇编符号。DATA与EQU的主要区别是:EQU必须先定义后使用,DATA无限制。EQU 源程序的开头,DATA源程序的开头或末尾。,2.1.2 指令的分类,MCS-51指令系统有111条指令,分
9、类如下:1.按指令字节数分类 单字节(49条),双字节(46条),3字节(16条)。2.按指令执行时间分类 单机器周期指令(65条)、双机器周期指令(44条)和四机器周期指令(2条)。3.按功能分类 数据传送指令(29条)、算术操作指令(24条)、逻辑操作指令(24条)、控制转移指令(17条)和位操作指令(17条)。,4.指令的字节数:指令操作码1字节;直接地址1字节,8位数据1字节,16位数据2字节;操作数中的A、B、R0R7、C、Ri、DPTR、A+DPTR、A+PC等均隐含在操作码中。(1)1字节指令(单字节指令)指令中只有操作码。NOP RET 操作数的寄存器号隐含在指令码中。MOV
10、A,Rn;指令码11101 rrr INC DPTR;指令码A3H(2)2字节指令(双字节指令)指令的格式:操作码 操作数(操作码为第一字节,操作数为第二字节)MOV A,#data;指令码为0111 0100#data(3)3字节指令(三字节指令)指令的格式:操作码 目的操作数,源操作数(三字节:操作码,目的操作数,源操作数)ANL direct,#data;指令码0101 0011 direct#data,SWAP A,2,3,2,2,1,2,3,2,1,1,2,MOV DPTR,#1000H,MOVA,20H,ANLA,#0FH,MOVC A,A+DPTR,MOV21H,A,MOVSP,
11、#60H,ANLA,#0F0H,MOVC A,A+PC,MOV22H,A,SJMP,注:部分特殊功能寄存器SFR占一个字节。,2.1.3 指令中的常用符号,MCS-51指令系统共有44种助记符,类似于8086。常用符号如下:Rn(n=07):工作寄存器组R0R7中的任一个寄存器。Ri(i=0或1):工作寄存器组中用于间址的寄存器R0,R1。#data:8位直接参与操作的立即数。#data16:16位直接参与操作的立即数。direct:片内RAM的8位单元地址。addr11:11位目的地址,主要用于ACALL和AJMP指令中。addr16:16位目的地址,主要用于LCALL和LJMP指令中。re
12、l:8位二进制地址偏移量(补码),取值范围为128+127,主要用于相对转移指令,以形成转移的目的地址。DPTR:数据指针,用于寄存器间接寻址方式和变址寻址方式。,bit:片内RAM的位寻址区、可以位寻址的SFR的位地址。A(或ACC):累加器。B:B寄存器。C:PSW中的进位标志位Cy。:用于间接寻址寄存器指针的前缀标志。$:当前指令的地址。/:在位操作指令中,对该位先求反后再参与操作。(X):由X所指定的某寄存器或某单元中的内容。(X):由X间接寻址单元中的内容。:指令的操作结果是将箭头右边的内容传送到左边。:指令的操作结果是将箭头左边的内容传送到右边。、:表示逻辑或、与、异或。,寻址方式
13、:说明操作数所在地址的方法。或指令按地址获得操作数的方式。计算机在设计时决定了它的寻址方式,寻址方式越多,计算机的灵活性越强,指令系统也就越复杂。MCS-51单片机的指令系统提供了七种寻址方式,分别为:立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、相对寻址和位寻址。一条指令可能含多种寻址方式。,2.2 MCS-51单片机的寻址方式,计算机执行程序实际上是在不断寻找操作数并进行操作的过程。,2.2.1 立即寻址,定义:立即参与操作的数据(立即数)直接写在指令中。特点:指令中直接含有所需8位/16位的操作数。处于指令的第二字节和第三字节的位置上。立即数表示方法:#data8,#data
14、16。MOV A,#2DH;(A)立即数2DH MOV A,2DH;(A)内部RAM的2DH单元内容 ADD A,#05H;(A)(A)+立即数 05H MOV DPTR,#1000H;(DPTR)立即数 1000H,2.2.2 直接寻址,定义:操作数的地址直接写在指令中。特点:指令中含有操作数的地址指出了参与操作的数据所存放在存储器单元(位)的地址。寻址范围:ROM、片内RAM、SFR和位地址空间。MOV R1,2DH;(R1)(2DH)MOV 30H,4AH;(30H)(4AH)注意:MOV A,SP;(A)(SP)MOV A,81H;(A)(SP)MOV P1,#5AH;(P1)(#5A
15、H)MOV 90H,#5AH;(P1)(#5AH),2.2.3 寄存器寻址定义:操作数存放在MCS-51内部的Rn或部分专用寄存器中。特点:指令中指出的寄存器的内容作为操作数。寻址范围:四组通用寄存器Rn(R0R7)、部分专用寄存器(A,B,DPTR,Cy)。MOV A,R7;(A)(R7)MOV 30H,B;(30H)(B)MOV DPTR,#1000H;(DPTR)1000H,存放操作数的寄存器在指令代码中不占据单独的一个字节,嵌入(隐含)到操作码字节中。,2.2.4 寄存器间接寻址(寄存器间址)定义:指令的寄存器中存放的是操作数据的单元地址。特点:二次寻找操作数地址的寻址方式。寻址范围:
16、内部RAM低128B(只能用R0或R1),外部RAM(R0、R1,DPTR)。MOV R1,#30H;(R1)立即数30H MOV R1,#0FH;(30H)立即数0FH MOV A,R1;(A)(30H)=立即数0FH,寄存器间接寻址,寄存器前边必须加前缀符号“”,不能用于寻址特殊功能寄存器SFR。,2.2.5 变址寻址(基址加变址寄存器间接寻址)定义:操作数存放在变址寄存器(累加器A)和基址寄存器(DPTR或PC)相加形成的16位地址单元中。特点:单字节指令,指令操作码中隐含基址寄存器和变址寄存器。执行时,基地址+偏移地址操作数地址操作数完成相应的操作。寻址范围:ROM,主要用于查表性质的
17、访问。注意:A中存放的偏移地址的范围为00HFFH(无符号数)。MCS-51单片机共有以下三条变址寻址指令:MOVC A,A+PC;(A)(A)+(PC)+1)MOVC A,A+DPTR;(A)(A)+(DPTR)JMP A+DPTR;(PC)(A)+(DPTR),如:(DPTR)=1234H,(A)=50H,ROM的(1284H)=65H。执行MOVC A,A+DPTR 过程:(A)+(DPTR)=1284H(1284H)=65H(A)=65H,2.2.6 相对寻址定义:将程序计数器PC的当前值(取出本条指令后的PC值)与+rel新的转移目标地址。特点:用于程序的相对转移,易于生成浮动代码。
18、如:SJMP rel;(PC)(PC)+2+rel 双字节指令 相对转移指令的目的地址指令地址指令字节数偏移量寻址范围:ROM。,相对地址偏移量(rel):8位二进制补码,范围为128127。在程序中,“rel”通常用“标号”代替。,分析指令SJMP 06H的执行过程及执行结果。执行的过程如下图所示。,2.2.7 位寻址定义:指令中给出的操作数是一个可单独寻址的位地址。特点:直接寻址方式的一种,对8位二进制数中的某一位的地址进行操作。寻址范围:片内RAM低128B中位寻址区、部分SFR(83位)。可位寻址的位地址的表示形式:(1)直接使用位地址。如:MOV 00H,C;(00H)(Cy)其中:
19、00H是片内RAM中20H地址单元的第0位。,(2)字节地址加位序号的形式。如:MOV 20H.0,C;(20H.0)(Cy)其中:20H.0是片内RAM中20H地址单元的第0位。(3)位的符号地址(位名称)的形式。利用部分特殊功能寄存器各位的特定名称来访问该位。如:ANL C,P;(C)(C)(P)其中:P是PSW的第0位,C是PSW的第7位。(4)字节符号地址(字节名称)加位序号的形式。利用部分特殊功能寄存器名称加位序号形式来访问该位。如:CPL PSW.6;(AC)()其中:PSW.6表示该位是PSW的第6位。,例题1 指出下列指令中源操作数的寻址方式,寄存器寻址,立即寻址,寄存器间接寻
20、址,直接寻址,变址寻址,相对寻址,位寻址,MOV A,R1;(A)(R1),ADD A,#05H;(A)(A)+立即数 05H,MOV A,R1;(A)(R1),MOV 30H,4AH;(30H)(4AH),MOVC A,A+DPTR;(A)(A)+(DPTR),SJMP LP;(PC)(PC)+2+偏移量,MOV 65H,C;(65H)(Cy),2.3 MCS-51单片机的指令系统,MCS-51指令系统:44种助记符,33种功能,51种操作,111条指令(指令助记符与操作数的各种寻址方式的结合)。MCS-51单片机指令系统按其功能可分为五类:数据传送类指令 算术运算类指令 逻辑运算和移位类指
21、令 控制转移类指令 位操作类指令,学习指令系统时,应注意:(1)指令的格式、功能;(2)操作码的含义,操作数的表示方法;(3)寻址方式,源、目的操作数的范围;(4)对标志位的影响;(5)指令的适用范围;(6)正确估算指令的字节数。,操作码1字节。操作数中:直接地址derict1字节,#data1字节,#data16两字节;A、B、R0R7、C、Ri、DPTR、A+DPTR、A+PC等均隐含在操作码中。特殊功能寄存器SFR一个字节。,2.3 MCS-51单片机的指令系统,2.3.1 数据传送类指令(29条)2.3.2 算术运算类指令(24条)2.3.3 逻辑运算及移位类指令(24条)2.3.4
22、控制转移类指令(17条)2.3.5 位操作(布尔操作)类指令(17条),2.3.1 数据传送指令,最基本、最主要的操作指令。29条,可分为五类:内部RAM间传送:(MOV16条)外部RAM与累加器间传送:(MOVX4条)ROM向累加器传送:(MOVC2条)数据交换:(SWAP,XCH,XCHD5条)堆栈操作:(PUSH,POP2条)寻址范围:累加器A、片内RAM、SFR、片外RAM、ROM。功能:(目的地址)(源地址),表示为:源地址单元的内容不变。对标志位的影响:除以累加器A为目的操作数的数据传送指令对P标志位有影响外,其余均不影响标志位。,1内部RAM数据传送指令(16条)格式:MOV,范
23、围:片内RAM、SFR中。指令形式:按目的操作数可将内部数据传送指令分为五类。(1)以累加器A为目的操作数(4条)MOV A,其中:包括Rn、Ri、direct、#data。影响P标志。如:MOV A,30H(A)(30H)(2)以工作寄存器Rn为目的操作数(3条)MOV Rn,其中:包括A、direct、#data。如:MOV R7,#30H(R7)#30H,(3)以直接地址单元为目的操作数(5条)MOV direct,其中:包括A、Rn、Ri、direct、#data。如:MOV 30H,20H;(30H)(20H)(4)以间址寄存器Ri为目的操作数(3条)MOV Ri,其中:包括A、di
24、rect、#data。如:MOV R1,A;(R1)(A)(5)16位数据传送指令(1条)MOV DPTR,#data16 如:MOV DPTR,#1000H;(DPTR)#1000H 注意:(2)、(3)、(4)、(5)均不影响标志位。,内部数据传送指令的传送关系图,MCS-51允许在两个内部RAM的直接地址之间进行传送数据,不允许在两个工作寄存器之间直接进行传送数据。,2外部RAM数据传送指令(4条),特点:只能通过A,采用寄存器间址(R0,R1和DPTR)。指令格式:MOVX A,MOVX,A 其中:、包括DPTR、Ri(R0,R1)。Ri片外RAM的低256个单元;DPTR片外RAM。
25、对标志位的影响:MOVX A,只影响P标志;MOVX,A不影响标志位。如:MOVX A,R1;(A)(R1)MOVX DPTR,A;(DPTR)(A),3程序存储器(ROM)数据传送指令(查表指令)(2条),特点:单向传送,只能读到累加器A中。专用于查表。指令格式:MOVC A,A+DPTP;(A)(A)+(DPTR)MOVC A,A+PC;(PC)(PC)+1(A)(A)+(PC)两条指令的异同:功能相同,使用中存在着差异。(1)查表的位置要求不同A+DPTR(远程查表):表可放在64KB ROM的任何地址,使用方便。A+PC(近程查表):表只能放在ROM中查表指令后的256B的地址空间中。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 原理 应用 第二
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6187138.html