MCS-51单片机C语言第2章课件

上传人:我*** 文档编号:144949948 上传时间:2020-09-14 格式:PPT 页数:201 大小:2.10MB
返回 下载 相关 举报
MCS-51单片机C语言第2章课件_第1页
第1页 / 共201页
MCS-51单片机C语言第2章课件_第2页
第2页 / 共201页
MCS-51单片机C语言第2章课件_第3页
第3页 / 共201页
MCS-51单片机C语言第2章课件_第4页
第4页 / 共201页
MCS-51单片机C语言第2章课件_第5页
第5页 / 共201页
点击查看更多>>
资源描述

《MCS-51单片机C语言第2章课件》由会员分享,可在线阅读,更多相关《MCS-51单片机C语言第2章课件(201页珍藏版)》请在金锄头文库上搜索。

1、第2章 MCS-51系列单片机的指令系统及汇编语言程序设计,指令是CPU按照人们的意图来完成某种操作的命令。一台计算机全部指令集合称为指令系统。 本章主要介绍以下内容: 2.1 指令格式与寻址方式 2.2 MCS-51单片机指令系统 2.3 汇编语言程序设计 2.4 实用程序设计举例,2.1 指令格式与寻址方式,2.1.1 指令格式 2.1.2 MCS-51单片机寻址方式,2.1.1 指令格式,MCS-51汇编语言指令格式由以下几个部分组成: 标号: 操作码 操作数 ;注释 WAIT0 : JC TI, WAIT0 ;发送完一个字节吗?,2.1.1 指令格式,标号:又称为指令地址符号,对标号有

2、如下规定: (1)一般由18个ASCII字符组成,以字母开头,其余字符可以是字母、数字和其他特定字符。 (2)不能使用助记符、伪指令或者寄存器的符号名称做标号。 (3)与操作码之间用冒号分开,带方括号表示为可选项。 (4)一个标号在程序中具有唯一性,但可以在指令中被多次引用。 操作码:是由助记符表示的字符串,它规定了指令要完成的具体操作。 操作数:是指参加操作的数据或数据的地址。 注释:是为该条指令所做的说明,以便于阅读,中英文不限,用“;”与指令分开。,2.1.1 指令格式,在指令的描述中经常用到一些特殊符号,介绍如下:,2.1.2 MCS-51单片机寻址方式,所谓寻址方式就是计算机获取操作

3、数的方法和途径,寻址方式越多,表示计算机的指令越丰富,操作越灵活。MCS-51单片机一共有7种寻址方式,分别介绍如下: 1. 立即寻址 2. 直接寻址 3. 寄存器寻址 4. 寄存器间接寻址 5. 变址寻址 6. 相对寻址 7. 位寻址,2.1.2 MCS-51单片机寻址方式,1. 立即寻址 例:MOV SCON,#00H ;将立即数00H送给SCON,即SCON00H 操作数直接在指令中给出,它是指令代码一部分,是存放在程序存储器内的一个常数,这种寻址方式就称为立即寻址。 注意:立即数的前面必有“#”标志。,2.1.2 MCS-51单片机寻址方式,2. 直接寻址 例:MOV A,30H ;将

4、30H单元的内容给累加器A,即(A)(30H) 操作数(源操作数)是直接给出内部RAM中某个单元的地址或名称(特殊功能寄存器),这种寻址方式称为直接寻址 。 直接寻址方式的寻址范围包括: (1)内部RAM的128个单元。 (2)特殊功能寄存器。 应当说明的是,直接寻址方式是对所有特殊功能寄存器读/写的唯一寻址方式。,2.1.2 MCS-51单片机寻址方式,3. 寄存器寻址 例:MOV A,R7 ;将通用寄存器R7中的数送给A,即(A)(R7) 操作数(源操作数)存放在当前工作寄存器组中某个寄存器中,这种寻址方式称为寄存器寻址 。 寄存器寻址方式的寻址范围包括: (1)4组通用工作寄存器共32个

5、工作寄存器。但只能寻址当前工作寄存器区的8个工作寄存器,因此指令中的寄存器名称只能是R0R7。 (2)部分特殊功能寄存器,如累加器A、寄存器B以及数据指针寄存器DPTR等。,2.1.2 MCS-51单片机寻址方式,4.寄存器间接寻址 例: MOV R0, #3FH ;(R0)3FH, 立即寻址方式MOV A,R0 ;(A)(R0),即:(A)(3FH) 操作数不是(R0)=3FH,而是以(R0)为地址,间接找到内部RAM中的3FH单元,将(3FH)中的数送给A,这种寻址方式称为寄存器间接寻址。 当访问片内RAM或片外的低256字节RAM空间时,可用R0或R1作为间址寄存器;如果访问片外整个64

6、KB的RAM地址空间时,可用DPTR作间址寄存器,2.1.2 MCS-51单片机寻址方式,5. 变址寻址 例:MOVC A,A+DPTR ;将地址为(A)+(DPTR)的ROM单元中的数送给A 操作数是以(DPTR)为基址,(A)为变址,将两者之和作为地址,找出该地址对应的ROM单元,再将该单元的数送给A,这种寻址方式称为变址寻址方式。,2.1.2 MCS-51单片机寻址方式,对变址寻址方式做如下说明: (1)该寻址方式只能对程序存储器进行寻址,寻址范围可达64KB。 (2)该寻址方式的指令只有3条: MOVC A,A+DPTR MOVC A,A+PC JMPA,A+DPTR 其中,前两条指令

7、为读程序存储器指令,最后一条指令为无条件转移指令,2.1.2 MCS-51单片机寻址方式,6. 相对寻址 例:CJNE A,#80H,BUDENG ;如(A)80H,跳转到BUDENG SETB FLAG0 ;(A)=80H, 置标志FLAG0 BUDENG:JNC DAYU ;如(A)80H,跳转到DAYU DAYU:SETB FLAG1 ;置标志FLAG1 下画线的操作数指明了程序跳转的目的地址,即PC的当前值加上偏移量就构成程序转移的目的地址,这个目的地址可用如下公式表示: 目的地址=转移指令所在地址+转移指令的字节数+地址偏移量,2.1.2 MCS-51单片机寻址方式,其中偏移量是一个

8、带符号的8位二进制补码数,其表示范围为128+127。上例中假设“CJNE A,#80H,BUDENG”(3字节指令)在ROM中的存放位置是2000H、2001H和2002H单元,下一条语句“JNC DAYU”的起始地址即PC就是2003H,那么,“CJNE A,#80H,BUDENG”的目标地址BUDENG的地址范围就是1F83H(2003H128)2082H(2003H+127)。目标地址不得超出这个范围,否则程序出错。 相对寻址方式是为解决程序转移而专门设置的,被转移指令所采用。在指令表中,凡用rel表示的操作数都是相对寻址。,2.1.2 MCS-51单片机寻址方式,7. 位寻址 例:M

9、OV C,30H ;将地址为30H的位的状态赋给进位位Cy SETB P1.0 ; 将P1口(对应特殊功能寄存器P1)的P1.0位置1 在上面这两条指令中,带下画线的操作数不是某个字节地址或某个字节数,而是内部RAM中某个可直接寻址位的地址或名称,是针对位(bit)进行的操作,这种寻址方式称为位寻址。在指令表中,凡用bit和C做操作数的指令都属此类,它主要用在位操作指令和部分条件转移指令中。,2.1.2 MCS-51单片机寻址方式,位寻址方式的寻址范围包括以下两种情况: (1)内部RAM中的位寻址区。单元地址为20H2FH,共16个单元,128个位,位地址为00H7FH。 (2)特殊功能寄存器

10、中的可寻址位。可供位寻址的特殊功能寄存器有11个,共有88个位,其中5位没有定义,所以有可寻址位83位。,2.1.2 MCS-51单片机寻址方式,MCS-51指令系统的7种寻址方式,概括起来如下表所示。,7种寻址方式及其寻址空间,2.2 MCS-51单片机指令系统,MCS-51单片机指令系统有5类共111条指令,按照功能分类,可以分为以下五大类: (1)数据传送类(29条) (2)算术运算类(24条) (3)逻辑运算类(24条) (4)控制转移类(17条) (5)位操作类(17条),2.2.1 数据传送和交换类指令,在MCS-51单片机中,数据传送是最基本和最主要的操作。MCS-51单片机的数

11、据传送指令共有29条。数据传送操作可以在片内RAM和SFR内进行,也可以在累加器A和片外存储器之间进行。指令中必须指定传送数据的源地址和目的地址,以便机器执行指令时把源地址中内容传送到目的地址中,但不改变源地址中的内容。在这类指令中,除以累加器A为目的操作数,指令会对特殊寄存器PSW中的奇偶标志位P有影响外,其余指令执行时均不会影响任何标志位。,2.2.1 数据传送和交换类指令,1. 内部数据传送指令 这类指令的基本格式为: MOV 目的地址,源操作数 内部数据传送是在单片机内部128字节RAM和SFR范围内进行的,如图2.1所示。,图2.1 MCS-51单片机内部数据传送示意图,2.2.1

12、数据传送和交换类指令,(1)以累加器A为目的的传送指令: MOV A,#data ;(A)data MOV A,direct;(A)(direct) MOV A,Rn ;(A)(Rn) MOV A,Ri ;(A)(Ri),2.2.1 数据传送和交换类指令,(2)以通用寄存器Rn为目的的传送指令: MOV Rn,A ;(Rn)(A) MOV Rn,direct ;(Rn)(direct) MOV Rn,#data ;(Rn)data,2.2.1 数据传送和交换类指令,(3)以直接地址为目的的传送指令: MOV direct,A ;(direct)(A) MOV direct,Rn ;(direc

13、t)(Rn) MOV direct1,direct2 ;(direct1)(direct2) MOV direct,Ri ;(direct)(Ri) MOV direct,#data ;(direct)data,2.2.1 数据传送和交换类指令,(4)以寄存器间接地址为目的的传送指令: MOV Ri,A ;(Ri)(A) MOV Ri,direct ;(Ri)(direct) MOV Ri,#data ;(Ri)data,2.2.1 数据传送和交换类指令,例2.1 设计一个最简单的程序,让图2.2所示电路中VD0VD4发光,VD5VD7熄灭。 解:ORG 0000H ;定位伪指令,参见2.3.

14、1节 MOV P1,#1FH ;P100011111B END ;结束伪指令,参见2.3.1节,2.2.1 数据传送和交换类指令,图2.2 P1口应用电路,2.2.1 数据传送和交换类指令,例2.2 分析在执行完以下指令后,R0和内部RAM中40H单元的内容。 ORG 0000H MOV R0,#40H ;R040H MOV 40H,#10 ;(40H)10 MOV R0,#00H ;(R0)00H END 解:(R0)=40H,(40H)=00H,2.2.1 数据传送和交换类指令,例2.3 设计一个简单的程序,将内部RAM中30H单元的数据通过图2.2中的VD0VD7显示出来。 解:ORG

15、0000H MOV P1,30H ;P1(30H) END,2.2.1 数据传送和交换类指令,例2.4 分析在执行完如下程序后,各空格的数值分别为多少? ORG 0000H MOV R0,#40H MOV 40H,#30H MOV A,R0 MOV R0,A END (R0)= (40H)= (A)= 解:(R0)= 30H (40H)= 30H (A)= 30H,2.2.1 数据传送和交换类指令,2. 数据指针赋值指令(16bit数据传送指令) 当要对片外RAM、I/O接口进行访问,或进行查表操作时,一般要先给数据指针DPTR赋值,此时应用下条指令: MOV DPTR,#data16 ;将1

16、6bit二进制立即数赋给数据指针DPTR 例如,将数据指针指向片外RAM的2000H单元: MOV DPTR,#2000H,2.2.1 数据传送和交换类指令,3. 片外数据传送指令 当把一个数送到单片机外部扩展RAM的某个单元或外部扩展I/O口某个端口,或者从该单元、端口将数据取回到单片机内部的时候,就要用到片外数据传送指令,它们如下: MOVX A,Ri ;(A) (Ri) 片外 MOVX A,DPTR ;(A) (DPTR) 片外 MOVX Ri,A ;(Ri) 片外(A) MOVX DPTR, A ;(DPTR) 片外(A) 如果以Ri作指针,只能访问00FFH地址段的外部RAM或I/O端口。如果以DPTR作指针,则能访问0000FFFFH地址段的任何外部RAM单元或I/O端口。,2.2.1 数据传送和交换类指令,例2.5 假如在图2.2的基础上为89C51扩展一片地址为000007FFH的外部RAM,设计一个程序,将外部RAM中0100H单元的数送到P1口,通过VD7VD0显示出来。

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

最新文档


当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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