资源预览内容
第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
亲,该文档总共6页全部预览完了,如果喜欢就下载吧!
资源描述
单元三单元三 MCS-51 单片机指令系统单片机指令系统一、学习目标与要求一、学习目标与要求1、了解 MCS-51 单片机的寻址方式、指令结构及指令长度、指令周期等概念。2、了解 MCS-51 单片机指令系统结构。3、掌握常用指令的功能及指令操作方式。4、能应用 MCS-51 单片机常用指令进行简单程序编写。5、能解决简单应用课题程序设计。二、本章重点内容二、本章重点内容1、指令寻址方式直接寻址、立即寻址、寄存器寻址、间接寻址、变址寻址、相对寻址、位寻址。2、指令系统(1)数据传送指令(2)算术运算指令(3)逻辑运算指令(4)转移指令(5)位指令三、本章内容的前后联系三、本章内容的前后联系1、本章内容与前面内容的联系单片机的指令执行过程同单片机的内部结构密切相关,他包括:单片机存储器空间、端口结构、程序状态字(PSW)、程序存储器中的常数表格等等。2、与后面章节联系指令是构成程序的基础,所以,必须注意掌握每一条指令的功能与使用特点,为后面汇编语言程序设计打好基础。四、学习方法指导:四、学习方法指导:学习单片机指令系统要注意对指令功能及操作的理解,常用指令要在较短的时间内采取强化记忆的方式背记下来,同时,通过编写应用程序熟练掌握指令的应用环境。1、对指令功能的理解以及常用与不常用指令(1)数据传送指令中大部份指令的功能较为简单容易理解,难点是对查表指令 MOVC A,A+DPTR 和 MOVC A,A+PC 的理解,其中 MOV AA+DPTR 是常用指令,它允许将常数表格存放在程序存储器内的任何位置,查表时只需将表的首地址赋 1 台数据指针 DPTR(即DPTR 指向表首地址),而 A 中的值是表内偏移地十,指令将程序存储器中(A+DPTR)单元中的内容传送到累加器 A(即查表)。而 MOVC AA+PC 指令形成的查表地址是(A)+(PC),其中程序计数器 PC 为该 MOVC 指令的下一条指令的地址(即所谓当前的 PC 值),外循环内循环NYY开始200R6200R7R7-1=0?R6-1=0?返回往往要计算当前 PC 值与表首地址的距离,将该距离加到累加器 A 中去,所以用MOVC,AA+PC 指令查表 ee 较麻烦,故该指令不是常用指令,半字节交换(XCHD)指令是常用指令,而累加器 A 高 4 位与低 4 位数据交换指令(SWAP 指令)是常用指令。(2)算术运送指令大多是常用指令,功能简明确,大多数指令以累加 A 为第一操作数,运算结果保存在累加 A 中,同一种运算的指令,第二操作数的来源于以来自不同的存储空间,也可以是相同的存储空间,但采用不同的寻址方式,例如将累加器 A 中的内容与片内 RAM中 50H 单元的内容相加。第二操作数采用直接寻址:ADD A:50H第二操作数采用寄存器间接寻址:MOV R0,#50HADD A,R0MCS-51 单片机指令系统中只有带进位的减法指令,应用时要根据实际情况确定是否对进位标志清零。使用乘除法指令时,应注意每操作(被乘数或被除数)与第二操作数(乘数或除数)的存储位置以及运算结果的存储位置。(3)逻辑运算指令大多也是功能简单常用指令,移位指令的作有征收数字电子技术中移位寄存器的作用类似,每次将累加器 A 中的内容左移(或右移)一位,数值上相当于将原数乘以 2(或除以 2)。(4)控制转移指令是系统学习的难点之一,它难在条件转移指令中对转移条件的理解,它即要判断条件是否满足,又要确定程序是否转移。其实掌握这类指令并不难,简言之“满足条件则转移,不满足条件则执行下一条指令”。无条件转移指令容易理解,但要注意转移范围分别是-127B+128B(短转移)或2KB 范围(相对转移)或 64KB 范围(长转移)。子程序调用与返回指令操作与堆拽操作有一定关系,要注意出入拽顺序。(5)位操作指令是 MCS-51 单片机的特色,由于可以按位操作,方便了程序设计。位操作指令中的条件转移指令是短转移指令(-127+128B 范围),而且都是以条件位的状态作转移条件的。五、典型例题分析五、典型例题分析【例题例题 3.13.1 】 0.2 秒软件延时程序,设单片机振荡频率为 12MHz。TIME:MOV R6,#200TIME1:MOV R7,#200TIME2:NOP NOPNOPDJNZ R7,TIME22DJNZ R6,TIME1RET分析分析:1、该程序流程图如图 1 所示2、由三条 NOP 指令和 DJNZR7,TIME2 指令构成内循环,内循环次数为 200 次(R7 从 200减到等于 0),延时时间为 5 个机器周期200=1000 机器周期,因 fosc=12MHz,一个机器周期 TC=1/(fosc/12)=1us,因此延时时间为 1ms。3、外循环次数同样为 200 次,因此总延时时间为 f=200(5200)+2+1=200600us200ms=0.2s4、采用三条 NOP 指令是为了方便延时时间的计算。【例题例题 3.2】3.2】 在程序存储器中从而 2000H 单元开始依次存放置 09 的平方值:0、1、4、9、81,要求依据累加器 A 中的值(09)来查找所对应的平方值,分析下述程序的结果。MOV DPTR,#2000HMOV A,#09HMOVC A,A+DPTR执行结果:(DPTR)=2000H,(A)=81H。这里根据累加器 A 中的值(09),利用查表指令来查找所对应的平方值。【例题例题 3.3】3.3】 对 BCD 码加法 65+58 =123(BDH)进行十进制调整。解解:高 R5(高)、R4(低)为被加数;高 R3(高)、R2(低)为加数;相加和的结果存和:高 R6(万)、R5(千、百)、R4(十、个)。参考程序如下:MOV A,R4 ;被加数十位个位送入 AADD A,R2 ;十位个位相加DA A ;和的十位个位调整MOV R4,A ;和的十位个位存入 R4MOV A,R5 ;被加数千位百位送入 AADDC A,R3 ;千位百位的和加低位进位DA A ;和的千位百位调整MOV R5,A ;和的千位百位存入 R5MOV A,#00H ; A 清零ADDC A,#00H ;求和的万位值MOV R6,A ;和的万位存入 R6若程序执行前:(R5)=(98H)BCD, (R4)=(76H)BCD,(R3)=(54H)BCD,(R2)=(32H)BCD,则执行后:(R6)=(01H)BCD,(R5)=(53H)BCD,(R4)=(08H)BCD六、自我检查题六、自我检查题1、试确定下列程序运行后,累加器 A,寄存器 B,20H 单元中的内容多少秒。MOV 20H,#20HMOV A,20HMOV B,AMOV A,#40HDIV AB2、MCS 一 51 系列单片机的寻址方式有哪几种?分析各种寻址方式的访问对象与寻址范围。 3、要访问片内 RAM,有哪几种寻址方式? 要访问片外 RAM,有哪几种寻址方式? 要访问ROM,有哪几种寻址方式? 4、请选用指令,分别达到下列操作:(1)将累加器内容送工作寄存器 R。(2)将累加器内容送片内 RAM 的 7BH 单元。(3)将累加器内容送片外 RAM 的 7BH 单元。(4)将累加器内容送片外 RAM 的 007BH 单元。(5)将 ROM007BH 单元内容送累加器。 5、请写出下列各指令的机器码与执行下列指令后的结果(指各有关寄存器、RAM 单元与端口的内容)。MOV 05H,#55HMOV 30H,#05H MOV R0,#30H MOV A,R0 MOV R1,A MOV B,Rl MOV R0,P1 MOV P3,P1 MOV 10H,#20H MOV 30H,10H 6、已知:(A)=35H,(R0)=6FH,(n)=FCH,(SP)=30H,试分别写出下列指令执行的结果: (1)MOV R6,A (2)MOV R0,A (3)MOV A,#90H (4) MOV 80H,#81H (5)MOVX R0,A (6)PUSH A (7)SWAP A (8)XCH A,R0 7、请对下列各组数分别计算“与”、“或”、“异或”的结果: (1)10011010 和 00001111 (2)11010011 和 01011010 (3)11001100 和 00110011 (4)10101010 和 11111111 七、自我检查题答案七、自我检查题答案1、(A)=20H,(B)=00H,(20H)=20H2、单片机的寻址方式有:(1)直接寻址。访问对象与寻址范围是内部 RAM 和特殊功能寄存器。(2)寄存器寻址。访问对象与寻址范围是工作寄存器 R0-R7。(3)寄存器间接寻址。访问对象与寻址范围是内部 RAM 和特殊功能寄存器。(4)立即寻址。操作数包含在指令中。(5)变址寻址。变址寻址是以 DPTR 或 PC 作为基址寄存器,以累加器 A 作为变址寄存器,将两寄存器的内容相加形成 16 位地址形成操作数的实际地址。访问对象与寻址范围是程序存储器。(6)位寻址。对象与寻址范围是片内 RAM 中的 20H2FH 字节单元对应的位单元 00H7FH,特殊功能寄存器中的某些位也可进行位寻址,这些单元既可以采用字节方式访问它们,也可采用位寻址的方式访问它们。(7)相对寻址。相对寻址方式是为了程序的相对转移而设计的,它是以 PC 的内容为基址,加上给出的偏移量作为转移地址,从而实现程序的转移。转移的目的地址为:目的地址=转移指令地址+转移指令字接数+偏移量值得注意的是,偏移量是有正负号之分的,偏移量的取值范围是当前 PC 值的-128+127之间。3、访问片内 RAM 有直接寻址、寄存器间接寻址。访问片外 RAM 有变址寻址、寄存器间接寻址。访问 ROM 有变址寻址。 4、(1)将累加器内容送工作寄存器 R。的指令:MOV A,R0(2)将累加器内容送片内 RAM 的 7BH 单元的指令:MOV 7BH,A(3)将累加器内容送片外 RAM 的 7BH 单元的指令:MOV R0,#7BHMOVX R0,A(4)将累加器内容送片外 RAM 的 007BH 单元的指令:MOV DPTR,#007BHMOVX DPTR,A(5)将 ROM007BH 单元内容送累加器的指令:MOV A,#0MOV DPTR,#007BHMOVC A,A+DPTR5、 (A)=05H;(B)=55H(R0)=30H;(R1)=05H;(10H)=20H;(30H)=20H;(P3)=05H。6、已知: (R0)=6FH,(n)=FCH,(SP)=C0H,试分别写出下列指令执行的结果: (1) (A)=35H,(R6)=35H。(2) (A)=35H,(6FH)=35H。(3) (A)=90H。(4) (P0)=(80H)=81H。(5)片外 RAM (6FH)=35H。(6) (30H)=35H。(7) (A)=53H。(8) (A)=6FH,(R0)=35H。7、请对下列各组数分别计算“与”、“或”、“异或”的结果: (1) “与”:00001010B;“或”:10011111B;“异或”:10010101B。 (2) “与”:01010010B;“或”:11011011B;“异或”:10001001B。 (3) “与”:00000000B;“或”:11111111B;“异或”:11111111B。 (4) “与”:10101010B;“或”:11111111B;“异或”:01010101B。
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号