单片机3-1课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《单片机3-1课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课件
- 资源描述:
-
1、第三章第三章 89C51单片机单片机指令系统指令系统Exit3.3 89C51单片机指令系统单片机指令系统3.1 汇编语言汇编语言3.2 寻址方式寻址方式3.4 程序设计举例程序设计举例指令学习要点指令学习要点 了解指令的操作了解指令的操作 了解指令的寻址格式了解指令的寻址格式 了解指令对程序状态字的影响了解指令对程序状态字的影响 合理使用指令合理使用指令3.1 汇编语言汇编语言3.1.1 指令和程序设计语言指令和程序设计语言3.1.2 指令格式指令格式BACK3.1 汇编语言汇编语言计算机指令系统是一套控制计算机操作的编码,称为机器语言。 计算机只能识别和执行机器语言的指令。 为了便于记忆和
2、使用,通常用符号指令符号指令(即汇编语言)来描述计算机的指令系统。 不同的计算机有不同的汇编语言不同的计算机有不同的汇编语言。 BACK3.1.1 指令和程序设计语言指令和程序设计语言指令:指令: 是CPU根据人的意图来执行某种操作的 命令。指令系统:指令系统:一台计算机所能执行的全部指令的集合。要使计算机按照人的思维完成一项工作,就必须让CPU按顺序执行各种操作。 即一步步地执行一条条的指令。 3.1.1 指令和程序设计语言指令和程序设计语言程序:程序:按人的要求编排的指令操作序列称为程序。程序设计:程序设计:编写程序的过程就叫作程序设计。3.1.1 指令和程序设计语言指令和程序设计语言程序
3、设计语言是实现人机交换信息的基本工具,分为:机器语言机器语言汇编语言汇编语言高级语言高级语言3.1.1 指令和程序设计语言指令和程序设计语言l机器语言:机器语言:用二进制编码表示每条指令,是计算机能直接识别和执行的语言。用机器语言编写的程序称为机器语言程序或指令程序(机器码程序)。 因为机器只能直接识别机器码程序,所以又称它为目标程序目标程序。3.1.1 指令和程序设计语言指令和程序设计语言l机器语言举例:机器语言举例:要做“10+20”的加法,在MCS-51中可用机器码指令编程:0111010001110100 0000101000001010 把10放到累加器A中;00100100 001
4、00100 0001010000010100 A加20,结果仍放在A中为了便于书写和记忆,可采用十六进制表示指令码:74 74 0AH0AH2424 14H14H3.1.1 指令和程序设计语言指令和程序设计语言l机器语言特点:机器语言特点:用机器语言编写程序不易记忆,不易查错,不易修改。 3.1.1 指令和程序设计语言指令和程序设计语言l汇编语言:汇编语言:用助记符、符号和数字等来表示指令的程序设计语言。它与机器语言指令是一一对应的。它与机器语言指令是一一对应的。 3.1.1 指令和程序设计语言指令和程序设计语言l汇编语言举例:汇编语言举例:例如:例如:“10+20”10+20”例子可写成例子
5、可写成: :汇编语言程序汇编语言程序 机器语言程序机器语言程序MOV AMOV A,#0AH #0AH 7474 0AH0AHADD AADD A,#14H #14H 24 24 14H14H3.1.1 指令和程序设计语言指令和程序设计语言l汇编语言特点:汇编语言特点:用与CPU的硬件结构紧密相关。不同的CPU其汇编语言是不同的。 汇编语言程序不能移植,使用不便汇编语言程序不能移植,使用不便。用汇编语言进行程序设计必须了解所使用的CPU硬件的结的与性能,对程序设计人员有较高的要求。 3.1.1 指令和程序设计语言指令和程序设计语言l高级语言:高级语言:脱离具体机器的语言。3.1.2 指令格式指
6、令格式p89C5189C51汇编语言指令由汇编语言指令由操作码助记符字段和操作数字段两部分组成。p指令格式如下指令格式如下: : 操作码操作码 目的操作数目的操作数 ,源操作数,源操作数 ;注释;注释 例如例如:MOVA,#00H 3.1.2 指令格式指令格式p操作码部分操作码部分 规定了指令所实现的操作功能,由2-5个英文字母表示。例如,JB, MOV,DJNZ,LCALL等。3.1.2 指令格式指令格式p操作数部分操作数部分 指出了参与操作的数据来源和操作结果存放的目的单元。 操作数可以直接是一个数(立即数), 或者是一个数据所在的空间地址,即在执行指令时从指定的地址空间取出操作数。 3.
7、1.2 指令格式指令格式p操作码和操作数都有对应的二进制代码,指令代码由若干字节组成。 p对于不同的指令,指令的字节数不同。p89C51指令系统中,有: 1 1、单字节指令、单字节指令 、双字节指令、双字节指令 、三字节指令。、三字节指令。 1 1、单字节指令、单字节指令p单字节指令中的8位二进制代码 既包含操作码的信息,也包含操作数的信息。 p这种指令有两种情况。1)指令码中隐含着对某一种寄存器的操作2)由指令中的rrr三位的不同编码指定某一寄存器1 1、单字节指令、单字节指令1)指令码中隐含着对某一种寄存器的操作INCINC DPTRDPTR指令代码:指令代码:A3H=A3H=1 1 1
8、0 1 r r r1 1 1 0 1 r r r1 1、单字节指令、单字节指令2)由指令中的rrr三位的不同编码指定某一寄存器 MOV AMOV A,RnRn指令代码:指令代码:2、双字节指令、双字节指令p用一个字节表示操作码,另一个字节表示操作数或操作数所在的地址。p格式为:操作码操作码立即数或地址立即数或地址3 3、三字节指令、三字节指令p一个字节操作码,两个字节操作数。p格式为:操作码操作码立即数或地址立即数或地址立即数或地址立即数或地址3.2 寻址方式寻址方式3.2.0 寻址的概念3.2.1 寻址方式的种类3.2.2 寻址空间及符号注释3.2.0 寻址的概念4寻址寻址: :就是寻找指令
9、中操作数或操作数所在地址。4寻址方式:寻址方式:就是如何找到存放操作数的地址,把操作数提取出来的方法。 寻址方式是计算机的重要性能指标之一,也是汇编语言程序设计中最基本的内容之一,必须十分熟悉,牢固掌握。3.2.1 寻址方式的种类11、寄存器寻址12、直接寻址13、立即数寻址14、寄存器间接寻址 15、变址寻址16、相对寻址 17、位寻址1 1、寄存器寻址、寄存器寻址p由指令指出寄存器组R0R7中的某一个或其他寄存器(A,B,DPTR等)的内容作为操作数。p例如例如: p MOV A,R0; (R0)Ap MOV P1,A; (A)P1口p ADD A,R0; (A)+(R0)A2、直接寻址、
10、直接寻址p在指令中直接给出操作数所在存储单元的地址。指令中操作数部分是操作数所在地址。p例如:例如:p MOV A,3AH; (3A) Ap MOV A,P1; (P1口) A p或: MOV A,90H; 90H是P1口的地址2、直接寻址、直接寻址p直接寻址方式可访问:片内RAM的128个单元、所有的SFR。对于SFR,既可以使用它们的地址,也可以使用它们的名字。p直接寻址的地址占一字节,所以,一条直接寻址方式的指令至少占内存两个单元。 2、直接寻址、直接寻址p注意下面指令的区别:MOV A,20HMOV C,20H3、立即数寻址、立即数寻址p指令操作码后面紧跟的是一字节或两字节操作数,用“
11、#”号表示,以区别直接地址。p例如:pMOV A,3AH;(3AH)ApMOV A,#3AH;3AHApMOV DPTR,#2000H;2000HDPTR ;(DPH)=20H ;(DPL)=00H4 4、寄存器间接寻址、寄存器间接寻址 p操作数的地址事先存放在某个寄存器中,p寄存器间接寻址是把指定寄存器的内容作为地址,由该地址所指定的单元内容作为操作数。p89C51规定R0R0、R1R1为间接寻址寄存器,它可寻址内部地址RAM低位的128B单元内容。p还可采用DPTRDPTR作为间接寻址寄存器,寻址外部数据存储器的64KB空间。p例如例如:例如:将片内将片内RAM 65HRAM 65H单元内
12、容单元内容47H47H送送A A,可执,可执行指令行指令“MOV AMOV A,R0”R0”。其中。其中R0R0内容为内容为65H65H。如图所示:。如图所示:65H47HR0A47H数据存储器数据存储器地址地址65H以指令中所指定的以指令中所指定的R0内内容(容(65H)为指针)为指针将片内将片内RAM 65H单单元内容元内容47H送送A5、变址、变址寻址寻址( (基址寄存器基址寄存器+ +变址寄存器间接寻址变址寄存器间接寻址) )p以某个寄存器的内容为基地址,在这个基地址的基础上加上地址偏移量形成真正的操作数地址。p89C51中没有专门的变址寄存器。而是采用DPTRDPTR或或PCPC为变
13、址寄存器,A A的内容为地址偏移量。p变址寻址只能访问程序存储器,访问范围为64KB。p例如例如:例如:MOVC AMOVC A,A+DPTRA+DPTR1EH0302HROMDPTRAA02F1H11H1EH+DPTRDPTR内容与内容与A A的内容之和的内容之和为程序存储器地址为程序存储器地址程序存储器内容送程序存储器内容送A A6、相对寻址、相对寻址 p相对寻址只出现在相对转移指令中。p以当前的PC值加上指令中规定的偏移量rel而形成实际的转移地址。p当前的当前的PCPC值值是指执行完相对指令后的PC值;p相对转移指令操作码所在地址称为源地址;p转移后的地址称为目的地址。6、相对寻址、相
14、对寻址 目的地址目的地址= =源地址源地址+ +相对转移指令字节数相对转移指令字节数+rel+relrel为补码表示的有符号数。7、位寻址、位寻址p采用位寻址方式的指令的操作数是8位二进制数中的某一位,指令中给出的是位地址。p位地址在指令中用bit表示。p例如:CLR bit;p位地址的两种表示方法:位地址的两种表示方法:直接使用位地址,如D3H;直接用寄存器名字加位数,如PSW.3。7、位寻址、位寻址p位寻址空间:位寻址空间:片内RAM的20H-2FH的16个字节单元中的128位(位地址:00HFFH)部分SFR(字节地址能被8整除的SFR)3.2.2 寻址空间及符号注释1 1、寻址空间、寻
15、址空间2 2、符号注释、符号注释1 1、寻址空间、寻址空间2、符号注释符号注释 Rn(n=0-7)Rn(n=0-7):当前选中的工作寄存器组:当前选中的工作寄存器组R0-R7R0-R7。 Ri(i=0,1)Ri(i=0,1):作为地址指针两个工作寄存器:作为地址指针两个工作寄存器R0R0, R1R1。 #data#data:8 8位立即数。位立即数。 #data16#data16:1616位立即数。位立即数。 directdirect:8 8位片内位片内RAMRAM单元单元( (包括包括SFR)SFR)的直接地址。的直接地址。 addr11addr11:1111位目的地址,用于位目的地址,用于
16、ACALLACALL和和AJMPAJMP指指 令中。令中。 addr16addr16:1616位目的地址。用于位目的地址。用于LCALLLCALL和和LJMPLJMP指指 令中。令中。2、符号注释符号注释 relrel:补码表示的:补码表示的8 8位地址偏移量。位地址偏移量。 范围:范围:-128 +127D-128 +127D。 bitbit:片内:片内RAMRAM或或SFRSFR的直接寻址位地址。的直接寻址位地址。 :间接寄存器的符号。:间接寄存器的符号。 / /:位操作指令中对该位先取反再参与操作,不影:位操作指令中对该位先取反再参与操作,不影响原值。响原值。 ( () ):中的内容。中
17、的内容。 ( () ):指出的地址单元中的内容。指出的地址单元中的内容。 :指令操作流程方向。:指令操作流程方向。3.3 89C51单片机指令系统单片机指令系统&3.3.0 绪绪&3.3.1 数据传送指令数据传送指令&3.3.2 算术运算指令算术运算指令&3.3.3 逻辑运算及移位指令逻辑运算及移位指令&3.3.4 控制程序转移指令控制程序转移指令&3.3.5 位操作指令(布尔操作)位操作指令(布尔操作)3.3.0 绪绪p89C51指令系统由111条指令组成。p单字节指令49条,双字节指令45条,三字 节指令17条。 p单周期指令64条,双周期45条, 只有乘、除指令为4个周期。3.3.0 绪
18、绪p指令系统可分为五大类指令系统可分为五大类: :数据传送指令:28条算术运算指令:24条逻辑运算及移位指令:25条控制转移指令:17条位操作指令(布尔操作):17条3.3.1 数据传送指令数据传送指令11.以累加器A为目的操作数的指令 (4条,即4种寻址方式)1 2.以寄存器Rn为目的操作数的指令(3条)1 3.以直接地址为目的操作数的指令(5条)1 4.以间接地址为目的操作数的指令(3条)p最基本、最重要的操作。 3.3.1 数据传送指令数据传送指令15.十六位数据传送指令(1条)16.查表指令(2条)17.累加器A与片外RAM传送指令(4条)18.栈操作指令(2条)19.交换指令(4条)
19、1 1、以累加器、以累加器A A为目的操作数的指令为目的操作数的指令 (4(4条条, ,即即4 4种寻址方式种寻址方式) )MOV A, Rn MOV A, directMOV A, RiMOV A, #data例:例:(30H)=11H, (R1)=30H MOV A MOV A,#30H #30H ;(;(A A)=30H=30H MOV A MOV A, 30H 30H ;(A A)=11H=11H MOV A MOV A,R1 R1 ;(;(A A)=11H=11H MOV A MOV A,R1 R1 ;(;(A A)=30H =30H 2 、以寄存器、以寄存器Rn为目的操作数的指令(
20、为目的操作数的指令(3条)条)MOV Rn, A MOV Rn, directMOV Rn, #data注意注意: : 在8051指令系统中没有 “MOV Rn,Rn”传送指令。例如:例如:(A A)=78H=78H,(,(R5R5)=47H=47H,(70H70H)=F2H=F2H,执行指令:,执行指令: MOV R5,A ; (R5)=78H MOV R5,70H ; (R5)=F2H MOV R5,#A3H; (R5)=A3H3 、以直接地址为目的操作数的指令(、以直接地址为目的操作数的指令(5条)条)MOV direct, A MOV direct, Rn MOV direct, di
21、rect MOV direct, Ri MOV direct, #datap这组指令的功能是把源操作数所指定的内容送入由直接地址直接地址directdirect所指出的片内存储单元中。p源操作数有寄存器寻址,直接寻址,寄存器间接寻址和立即寻址等方式。3 、以直接地址为目的操作数的指令(、以直接地址为目的操作数的指令(5条)条)4 、以间接地址为目的操作数的指令(、以间接地址为目的操作数的指令(3条)条)MOV Ri, A MOV Ri, direct MOV Ri, #data(Ri)表示Ri中的内容为指定的RAM单元。 Ri 为 R0, R1 5、 十六位数据传送指令十六位数据传送指令(1条
22、条) 这条指令的功能是把16位常数送入DPTR。 DPTR由DPH和DPL组成。MOV DPTR, #data16例:例: MOV DPTR, #1000H(DPTR)=1000H, (DPH)=10H, (DPL)=00H 5、 十六位数据传送指令十六位数据传送指令(1条条)6 、查表指令(、查表指令(2条)条)MOVC A,A+DPTR; 先(PC)+1PC, 后(A)+(DPTR) A (远程查表) MOVC A, A+PC; 先(PC)+1PC, 后(A)+(PC) A (近程查表)基地址寄存器+变址寄存器间接寻址PC+A(程序存储器0-64K)基地址寄存器+变址寄存 器间接寻址DPT
23、R+A(程序存储器0-64K)A寄存器程序存贮器传送程序存贮器传送例例: :若初始若初始ROM内容为:内容为: 1010H02H1011H04H1012H06H1013H08H1000H 74 0DMOVA, #0DH(A)=0DH1002H 83MOVC A,A+PC(PC)=1002+1=1003H(A)=(A)+(PC)=(0D+1003) =(1010H)(A)=02H1003H F8MOV R0, A(R0)=(A)=02H执行程序:执行程序: 所以,最后结果为:所以,最后结果为:(A)=02 (R0)=02 (PC)=1004H(A)=02 (R0)=02 (PC)=1004H例例
24、: :若初始若初始ROM内容为:内容为: 7010H02H7011H04H7012H06H7013H08H执行程序:执行程序:1000HMOVA, #10H1002HPUSH DPH1004HPUSH DPL1006HMOV DPTR,#7000H1009HMOVC A, A+DPTR(10H+7000H) A100AH POP DPL100CH POP DPH 所以,最后结果为:所以,最后结果为:(A)=02 (PC)=100EH (DPTR)=(A)=02 (PC)=100EH (DPTR)=原值7、 累加器累加器A与片外与片外RAM传送指令传送指令(4条条)MOVX A, RiMOVX
25、A, DPTRMOVX Ri, AMOVX DPTR, A 在8051指令系统中,CPU对片外RAM的访问只 能用寄存器间接寻址的方式,且仅有四条指令.第2,4两条指令以DPTR为片外数据存储器16位 地址指针,寻址范围达64KB。其功能是DPTR所 指定的片外数据存储器与累加器A之间传送数据第1,3两条指令是用R0或R1作低8位地址指针, 由P0口送出,寻址范围是256字节。这两条指令 完成以R0或R1为地址指针的片外数据存储器与 累加器A之间的传送数据。上述四条指令的操作如图7、 累加器累加器A与片外与片外RAM传送指令传送指令(4条条)累加器寄存器间接寻址R1、R0(片外RAM0-255
展开阅读全文