80C51单片机指令系统.ppt_第1页
80C51单片机指令系统.ppt_第2页
80C51单片机指令系统.ppt_第3页
80C51单片机指令系统.ppt_第4页
80C51单片机指令系统.ppt_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机原理与应用,第3章 80C51单片机指令系统,1.CPU包括哪两部分电路?,2.80C51单片机引脚有多少个?分为几类?,3.80C51内部RAM空间分配?ROM空间?,4.80C51单片机PO口在作为通用I/O口使用时要注意什么?,5.80C51单片机时钟电路一般外接晶振多少HZ?相应的机器周期如何计算?,6.80C51单片机复位如何实现,有哪两种方式?,单片机指令系统简介,80C51指令寻址方式,80C51单片机指令分类介绍,1,2,3,本章主要内容,3.1 单片机指令系统概述,一、基本概念 指令: 规定计算机基本操作的语句或命令。 指令系统: 一个单片机所能执行的指令集合,是单片机

2、提供给用户使用的软件资源。,二、指令格式: 标号:操作码目的操作数,源操作数;注释 标号: 用户设定的符号, 它实际代表该指令所在的地址。标号必须以字母开头, 其后跟17个字母或数字, 并以“:”结尾。 操作码: 用英文缩写的指令功能助记符,规定指令进行什么操作,源操作数 : 提供操作的对象 指出的是一个源地址,表示操作数来自何处。 也可以是一个立即数,表示操作的对象 与目的操作数之间要用“,”号隔开。,目的操作数: 提供操作的对象; 指出一个目标地址, 表示操作结果存放单元的地址; 与操作码之间必须以一个或几个空格分隔。,注释: 在编写程序时, 为了增加程序的可读性, 由用户拟写对该条指令或

3、该段程序功能的说明。 它以分号“;”开头, 可以用中文、 英文或某些符号来表示, 显然它不存入计算机, 只出现在源程序中。,标号:操作码目的操作数,源操作数;注释 表示该项是可选项; 例如: LOOP: ADD A, 10H ; (A)(A)+10H CLR A RETI RET,三、指令中常用符号介绍 (1) Ri和Rn: R表示当前工作寄存器区中的工作寄存器,当前工作寄存器的选定是由PSW的RS1和RS0位决定的。 i表示0或1, 即R0和R1; n表示07, 即R0R7; (2) data: 表示立即数, data为8位二进制常数。 data是指包含在指令中的8位立即数。 (3) dat

4、a16: 包含在指令中的16位立即数。,(4) rel: 8位补码形式表示的地址偏移量 范围为-128+127, 主要用于无条件相对短转移指令SJMP和所有的条件转移指令中。,(5) addr16: 16位目的地址 目的地址可在全部程序存储器的64 KB空间范围内, 用于无条件长转移指令LJMP和子程序长调用指令LCALL中,(6) addr11: 11位目的地址 以该11位地址替换PC的低11位内容,形成新的PC值。用于绝对转移指令AJMP和子程序绝对调用指令ACALL指令中,(7) direct: 表示直接寻址的地址, 即8位内部数据存储器RAM的单元地址(0127); 特殊功能寄存器SF

5、R的地址。对于SFR可直接用其名称来代替其直接地址。,(8) bit: 内部数据存储器RAM中位寻址区中的位地址 特殊功能寄存器SFR中的可直接寻址位地址或名称。,(9) : 间接寻址寄存器或基地址寄存器的前缀, 如Ri, DPTR, 表示寄存器间接寻址。,(10) (X): 表示X(地址或寄存器)中的内容。在注释中使用。,(11) (X): 表示 (X)作地址, 该地址的内容用(X)表示。在注释中使用。,(12) / 符号: 加在位地址的前面,表示对该位状态取反。,(13) 符号: 表示指令操作流程, 将箭头右边的内容, 送入箭头左边的单元中去。,3.2 80C51单片机指令寻址方式,寻址方

6、式:如何确定操作数单元地址,并取得操作数(源操作数的寻址方式) 80C51有7种寻址方式:,1. 寄存器寻址方式,2. 直接寻址方式,3. 寄存器间接寻址方式,4. 立即寻址方式,5. 变址寻址方式,6. 位寻址方式,7. 相对寻址方式,1. 寄存器寻址方式 操作数在寄存器(以符号名表示寄存器)中,指定寄存器就能得到操作数 寄存器寻址的主要对象: 当前通用寄存器,R0R7; 部分专用寄存器 A、AB、DPTR 例:MOV A,R0,2.直接寻址方式 操作数直接以存储单元地址的形式给出 寻址范围:在内部RAM中 低128单元:直接以单元地址形式给出 专用寄存器:可以以单元地址形式给出,还可以寄存

7、器符号形式给出,直接寻址是访问专用寄存器的唯一方法。 例: MOV A,30H MOVA,P1,3. 寄存器间接寻址方式 由指令指出某一个寄存器的内容作为操作数的地址。在寄存器前加符号。 寻址范围: 访问片内RAM低128单元,用R0和R1。 MOV A, R0(R1) 用访问片外RAM 64KB,用DPTR。 MOVX A, DPTR 访问片外RAM低256单元,也可以用R0和R1。 MOVX A, R0(R1)(DPTR) 堆栈操作指令 PUSH POP,4. 立即寻址方式 在指令中直接给出操作数。 立即数前面加#标志。 例: MOVA,#30H MOVDPTR,#2000H,5. 变址寻

8、址 以16位的程序计数器PC或数据指针DPTR作为基址寄存器,以8位的累加器A作为变址寄存器,并以两者内容相加形成的16位地址为操作数地址。 只能对程序存储器进行寻址,范围64K。 指令只有三条: MOVC A, A+DPTR MOVC A,A+PC JMP A+DPTR,6. 位寻址方式 指令中直接给出位地址,对数据位进行处理 寻址范围: 片内RAM的位寻址区(128位)。 SFR的可寻址位(83位)。 直接使用位地址 位名称表示方法 单元地址加位数 专用寄存器符号加位数 例: MOV C, 3AH,7.相对寻址方式 为转移指令采用的寻址方式。 以PC的内容(相对转移指令的存储地址加上该指令

9、的字节数)作为基址寄存器,加上指令中给定的偏移量所得结果作为转移地址。 偏移量rel是有符号的单字节数。以补码表示,其值的范围是-128+127,负数表示从当前地址向前转移,正数 表示从当前地址向后转移。 目的地址=转移指令地址+转移指令字节数+rel,说明下列指令中源操作数的寻址方式 MOVA,R7 MOVA,R1 MOVCA,A+DPTR MOVA,P0 MOVA,#88H MOVA,88H MOV C,P0.0,3.3 80C51单片机指令系统,80C51指令分类(按功能分) 数据传送指令(29条) 算术运算指令(24条) 逻辑运算指令及移位类指令(24条) 控制转移类指令(17条) 位

10、操作类指令(17条),一、数据传送指令(29条) 1. 内部RAM单元之间数据传送指令(16条) 2. 片外RAM数据传送指令(4条) 3. ROM数据传送指令(2条) 4. 交换指令(5条) 5. 堆栈指令(2条),1. 内部RAM单元之间数据传送指令(16 ) 以A为目标操作数的传送指令 (4) 以Rn为目标操作数的指令 (3) 以直接地址为目标操作数的指令 (5) 以间接地址为目标操作数的指令 (3) 16位数据传送指令 (1),目的操作数为A (4) MOV A, #data MOV A,direct MOV A, Rn MOV A, Ri 目的操作数为Rn (3) MOV Rn, #

11、data MOV Rn, direct MOV Rn, A 目的操作数为DPTR (1) MOV DPTR, #data,例1:指令执行前(A)=33H,(R0)=30H,(30H)=55H,指令执行后的结果:MOVA,R0 ;(A)=?MOVA , 30H ;(A)=?MOVA , R0 ;(A)=?MOVA , #20H ;(A)=?,30H,55H,(30H)=55H,20H,例2指令执行前(A)=33H,(R0)=30H,(30H)=55H,指令执行后的结果:MOVR0,A ; (R0)=MOVR3 , 30H ; (R3)=MOVR7 , #20H ; (R7)=,33H,55H,2

12、0H,例3 指令执行前(DPTR)=2000H,指令执行后的结果:MOV DPTR,#8811H;,(DPTR)=8811H,目的操作数为direct (5) MOV direct, A MOV direct, direct MOV direct, #data MOV direct, Rn MOV direct, Ri 目的操作数为Ri (3) MOV Ri, A MOV Ri, direct MOV Ri, #data,例4指令执行前(A)=33H,(R0)=20H,(20H)=55H,(40H)=88H,指令执行后的结果: MOV30H,A ;(30H)=MOV30H,R0 ;(30H)=

13、 MOV30H , R0 ;(30H)=MOV30H , #20H ;(30H)=MOV30H,40H ;(30H)=,33H,20H,55H,20H,88H,例5指令执行前(A)=33H,(R0)=30H,(30H)=55H,指令执行后的结果:MOV R0 ,A ;(30H)=MOV R0 , 30H;(30H)= MOV R0, #20H ;(30H)=,33H,55H,20H,练习一,(59H)=50H,执行指令后的结果 MOVA,59H MOVR0,A MOVA,#00H MOVR0,A MOVA,#25H MOV51H,A MOV53H,#70H,练习二,写出相应的指令 (内RAM内

14、RAM) 将R1的内容传送到20H单元。 将A的内容传送到寄存器R5。 将立即数30H传送到累加器A。 将R0的内容传送到A。 将立即数88H传送到50H单元。,2. 片外RAM传送指令 (4) 寻址方式:寄存器间接寻址, 只能通过A实现片内片外数据传送 目的操作数为A MOVX A, Ri MOVX A, DPTR 目的操作数为Ri MOVX Ri, A MOVX DPTR, A,例6:指令执行前(DPTR)=2000H,(A)=30H,(2000H)=55H,(R0)=20H,(20H)=88H MOVXA,DPTR ; MOVXR0,A ;,(A)=55H,(20H)=30H,练习3:按

15、要求写出指令: 将外部RAM中2000H单元的内容送A,MOV DPTR,#2000H MOVXA, DPTR 法1,MOV P2,#20H 法2 MOV R0,#00H MOVX A, R0,练习4:按要求写出指令: 将A的内容送外部RAM中2000H单元,MOV DPTR,#2000H MOVXDPTR,A 法1,MOV P2,#20H 法2 MOV R0,#00H MOVXR0,A,练习5:按要求写出指令:(内RAM 外RAM) 将50H的内容送外部RAM中2000H单元,MOV DPTR,#2000H MOV A,50H MOVXDPTR,A,练习6:按要求写出指令:(外RAM 内RA

16、M) 将外部RAM中2000H的内容送50H单元,MOV DPTR,#2000H MOVX A,DPTR MOV 50H, A,练习7:按要求写出指令:(外RAM 外RAM) 将外部RAM中2000H的内容送1000H单元,MOV DPTR,#2000H MOVX A,DPTR MOV DPTR,#1000H MOVX DPTR,A,3. ROM数据传送指令(2条) ROM数据只能读,不能写,因此数据传送是单向的。 MOVC A,A+PC MOVC A,A+DPTR 片外ROM中的数据只能传送到累加器A。 用于查阅常数表,DPTR、PC称为基地址寄存器,用于存放表格的首地址。A中的数称为地址偏

17、移量,用于指出表格中待查数据存放的单元地址偏移表头地址的字节数。,例:指令执行前(DPTR)=2000H, (A)=30H,(2030H)=55H, MOVC A,A+DPTR 则(A)=(2000H+30H) =(2030H) =55H,ROM数据传送指令又称查表指令,例:MOV DPTR,#TABLE MOV A,#02H MOVC A,A+DPTR SJMP $ TABLE: DB 0,1,24,9,16,25,36,49,64,81,或者MOV A,#02H ADD A,#02H MOVC A,A+PC SJMP $ TABLE: DB 0,1,24,9,16,25,36,49,64,

18、81,4.数据交换指令(5条),将源操作数的内容和累加器A的内容互换 XCHA,Rn ;(A)(Rn) XCHA ,direct;(A)(direct) XCHA , Ri ;(A)(Ri) XCHDA,Ri ;(A)30(Ri)30,最后一条指令将A的低4位和R0或R1指出的RAM单元低4位相互交换,各自的高4位不变。,累加器高低半字节交换指令 只有一条指令: SWAP A,例:已知:(A)=80H,(R0)=30H,(30H)=44H;执行下列指令后的结果: XCHA, R0 ;(A)=44H,(30H)=80H XCHDA, R0 ;(A)=84H,(30H)=40H XCHA,R0 ;(A)=30H,(R0)=80H,法1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论