书签 分享 收藏 举报 版权申诉 / 219

类型《单片机原理及应用》课件第3章.ppt

  • 文档编号:2347844
  • 上传时间:2024-11-29
  • 格式:PPT
  • 页数:219
  • 大小:1.63MB
  • 配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    单片机原理及应用 单片机 原理 应用 课件
    资源描述:

    1、第第3章章51系列单片机指令系统和系列单片机指令系统和汇编语言程序示例汇编语言程序示例3.1 51系列单片机指令系统概述系列单片机指令系统概述3.2 寻址方式寻址方式3.3 数据传送类指令数据传送类指令3.4 算术运算类指令算术运算类指令3.5 逻辑运算及移位指令逻辑运算及移位指令3.6 控制转移类指令控制转移类指令3.7 子程序调用与返回指令子程序调用与返回指令3.8 位操作类指令位操作类指令3.9 汇编程序格式与伪指令汇编程序格式与伪指令3.10 汇编程序设计示例汇编程序设计示例习题三习题三3.151系列单片机指令系统概述系列单片机指令系统概述3.1.1指令与指令系统的概念指令与指令系统的

    2、概念指令是使计算机内部执行相应动作的一种操作,是提供给用户编程使用的一种命令。指令由构成计算机的电子器件特性所决定,计算机只能识别二进制代码,以二进制代码来描述指令功能的语言,称之为机器语言。由于机器语言不便于人们识别、记忆、理解和使用,因而给每条机器语言指令赋予助记符号来表示,这就形成了汇编语言。计算机能够执行的全部操作所对应的指令集合,称之为这种计算机的指令系统。从指令是反映计算机内部的一种操作的角度来看,指令系统全面展示了计算机的操作功能,也就是它的工作原理;从用户使用的角度来看,指令系统是提供给用户使用计算机功能的软件资源。要让计算机处理问题,首先要编写程序。编写程序实际上是从指令系统

    3、中挑选一个指令子集的过程。因此,学习指令系统时,既要从编程使用的角度掌握指令的使用格式及每条指令的功能,又要掌握每条指令在计算机内部的微观操作过程(即工作原理),从而进一步加深对硬件组成原理的理解。指令一般有功能、时间和空间三种属性。功能属性是指每条指令都对应一个特定的操作功能;时间属性是指一条指令执行所用的时间,一般用机器周期来表示;空间属性是指一条指令在程序存储器中存储时所占用的字节数。指令的描述形式一般有两种:机器语言形式和汇编语言形式。现在描述计算机指令系统及实际应用中主要采用汇编语言形式。采用机器语言编写的程序称之为目标程序。采用汇编语言编写的程序称之为源程序。计算机能够直接识别并执

    4、行的只有机器语言。汇编语言程序不能被计算机直接识别并执行,必须经过一个中间环节把它翻译成机器语言程序,这个中间过程叫做汇编。汇编有两种方式:机器汇编和手工汇编。机器汇编是用专门的汇编程序,在计算机上进行翻译;手工汇编是编程员把汇编语言指令逐条翻译成机器语言指令。现在主要使用机器汇编,有时也会用到手工汇编。从上述指令与指令系统基本概念的介绍中可以看出,学习指令系统时,应掌握每条指令的功能、内部微观操作过程、汇编语言描述的指令格式及其对应的机器码、时间和空间属性等内容。3.1.251单片机指令系统及其指令格式单片机指令系统及其指令格式51单片机指令系统具有功能强、指令短、执行快等特点,共有111条

    5、指令。从功能上可将指令系统划分成数据传送、算术运算、逻辑操作、程序转移、位操作等5大类;从空间属性上可分为单字节指令(49条)、双字节指令(46条)和最长的三字节指令(只有16条);从时间属性上可分为单机器周期指令(64条)、双机器周期指令(45条)和只有乘、除法两条4个机器周期的指令。可见,51单片机指令系统在存储空间和执行时间方面具有较高的效率。在51单片机指令系统中,有丰富的位操作(或称布尔处理)指令,形成了一个完整的位操作指令子集,成为该指令系统的一大特色。这会给需要进行大量位处理的程序带来明显的便捷。指令系统中的指令描述了不同的操作,不同的操作对应不同的指令。但从组成结构上看,每条指

    6、令通常由操作码和操作数两部分组成。操作码表示计算机执行该指令将进行何种操作,操作数表示参加操作的数的本身或操作数所在的地址。51单片机的指令有无操作数、单操作数、双操作数三种情况。汇编语言指令有如下的格式:标号:操作码助记符 目的操作数,源操作数 ;注释为便于后面的学习,在这里先对描述指令的一些符号的约定意义加以说明。(1)Ri和Rn:表示当前工作寄存器区中的工作寄存器,i取0或1,表示R0或R1;n取07,表示R0R7。(2)#data:表示包含在指令中的8位立即数。(3)#data16:表示包含在指令中的16位立即数。(4)rel:以补码形式表示的8位相对偏移量,范围为-128127,主要

    7、用在相对寻址的指令中。(5)addr16和addr11:分别表示16位直接地址和11位直接地址。(6)direct:表示直接寻址的地址。(7)bit:表示可位寻址的直接位地址。(8)(X):表示X单元中的内容。(9)(X):表示以X单元的内容为地址的存储器单元内容,即(X)作地址,该地址单元的内容用(X)表示。(10)/和:“/”表示对该位操作数取反,但不影响该位的原值;“”表示操作流程,将箭尾一方的内容送入箭头所指另一方的单元中。3.2寻址方式寻址方式所谓寻址方式,就是CPU执行一条指令时怎样找到该指令所要求的操作数的方式。操作数总是存放在某一存储单元中,找操作数实际就是寻找操作数所在的单元

    8、地址,因此就称之为寻址方式。指令通常由操作码和操作数构成,操作数部分实际上只指出操作数的寻址方式。所以,寻址方式是指令的重要组成内容。深刻理解寻址方式对后面学习指令系统是非常重要的。一种计算机的寻址方式的种类是由它的硬件结构决定的,寻址方式越多样、灵活,指令系统将越有效,用户编程也越方便,计算机的功能也随之越强。51系列单片机有7种寻址方式:立即寻址、寄存器寻址、寄存器间接寻址、直接寻址、基址寄存器加变址寄存器间接寻址、相对寻址和位寻址。3.2.1立即寻址立即寻址操作数直接出现在指令中,紧跟在操作码的后面,作为指令的一部分与操作码一起存放在程序存储器中,可以立即得到并执行,不需要经过别的途径去

    9、寻找,故称为立即寻址。在汇编指令中,在一个数的前面冠以“#”符号作前缀,就表示该数为立即寻址。3.2.2寄存器寻址寄存器寻址在指令选定的某寄存器中存放或读取操作数,以完成指令规定的操作,称为寄存器寻址。3.2.3寄存器间接寻址寄存器间接寻址由指令指出某一寄存器的内容作为操作数地址的寻址方法,称为寄存器间接寻址。这里需要强调的是:寄存器中的内容不是操作数本身,而是操作数的地址,到该地址单元中才能得到操作数。寄存器起地址指针的作用。图 3.1寄存器间接寻址示意图3.2.4直接寻址直接寻址指令中直接给出操作数所在的存储器地址,以供取数或存数的寻址方式称为直接寻址。3.2.5变址寻址变址寻址基址寄存器

    10、加变址寄存器间接寻址,简称变址寻址。它是以数据指针寄存器DPTR或PC作为基址寄存器,累加器A作为变址寄存器,两者内容相加的和作为程序存储器地址,再寻址该单元,读取数据。这种寻址方式常用于访问程序存储器中的常数表。例如:MOVC A,A+DPTR指令中的源操作数就是这种寻址方式。该指令寻址及操作功能如图3.2所示。图 3.2变址寻址示意图3.2.6相对寻址相对寻址相对寻址是以当前程序计数器PC值加上指令中给出的偏移量rel而构成实际操作数地址的寻址方法。它用于访问程序存储器,常出现在相对转移指令中。3.2.7位寻址位寻址位寻址是在位操作指令中直接给出位操作数的地址,可以对片内RAM中的128个

    11、位和特殊功能寄存器SFR中的93个位进行寻址。3.3数据传送类指令数据传送类指令数据传送类指令有29条,是指令系统中最活跃、使用最频繁的一类指令,几乎所有的应用程序都要用到这类指令。为便于找到规律以理解、记忆指令,对数据传送类指令再作如下分类:3.3.1访问片内数据存储器的一般数据传送指令访问片内数据存储器的一般数据传送指令该类指令的功能是实现数据在片内RAM单元之间、寄存器之间、寄存器与RAM单元之间的传送。图3.3给出了该类指令的操作关系图。图 3.3访问片内RAM的一般传送指令操作关系图图3.3中,一条单向箭头线表示一种操作,箭头线尾是源操作数,箭头指向的是目的操作数,箭头线旁的标识符表

    12、示对片内RAM的某种寻址方式。因此,一条单向箭头线,对应一种寻址方式,就有一条“MOV”指令。双向箭头线可以看做两条单向箭头线。从图中可以看出:立即数只能作为源操作数,而不能作为目的操作数;工作寄存器中的内容只能和直接寻址方式寻址的片内RAM单元的内容相互传送,不能和其它寻址方式寻址的单元进行数据传送;累加器A的内容可以和寄存器间接寻址方式、直接寻址方式寻址的片内RAM单元的内容相互传送;寄存器间接寻址方式寻址的片内RAM单元的内容可以和直接寻址方式寻址的另一个RAM单元的内容相互传送;直接寻址方式寻址的两个不同地址的RAM单元的内容可以相互传送。16位传送指令只有一条,它是一条给DPTR置数

    13、的指令。根据图3.3可很快推写出本类的16条指令。表3.1给出了这些指令及相关说明。表表3.1 访问片内访问片内RAM的一般传送指令表的一般传送指令表例1设内部RAM(30H)=40H,(40H)=10H,(10H)=00H,(P1)=CAH,分析以下程序执行后各单元及寄存器、P2口的内容。MOV R0,#30H ;(R0)30HMOV A,R0;(A)(R0)MOV R1,A ;(R1)(A)MOV B,R1;(B)(R1)MOV R1,P1;(R1)(P1)MOV P2,P1 ;(P2)(P1)MOV 10H,#20H;(10H)20H执行上述指令后的结果为:(R0)=30H,(R1)=(

    14、A)=40H,(B)=10H,(40H)=(P1)=(P2)=CAH,(10H)=20H。3.3.2访问片内特殊传送指令访问片内特殊传送指令1.堆栈操作指令堆栈操作指令堆栈操作有进栈和出栈,即压入和弹出数据,常用于保存或恢复现场。进栈指令用于保存片内RAM单元(低128字节)或特殊功能寄存器SFR的内容;出栈指令用于恢复片内RAM单元(低128字节)或特殊功能寄存器SFR的内容。该类指令共有如下两条指令:PUSH direct;(SP)(SP)+1修改指针,使其指向栈顶上的一个存数单元(SP)direct把直接地址单元的内容压入SP所指单元内POP direct;(direct)(SP)把栈顶

    15、的数据弹出到直接寻址单元中去(SP)(SP)-1修改指针,指向新栈顶这两条指令都是双字节指令,机器码分别为C0 direct 和D0 direct。例2若在外部程序存储器中2000H单元开始依次存放09的平方值,数据指针(DPTR)=3A00H,用查表指令取得2003H单元的数据后,要求保持DPTR中的内容不变。完成上述功能的程序如下:MOV A,#03H;(A)03HPUSH DPH;保护DPTR高8位入栈PUSH DPL;保护DPTR低8位入栈MOV DPTR,#2000H;(DPTR)2000HMOVC A,A+DPTR;(A)(2000H+03H)POP DPL ;弹出DPTR低位PO

    16、P DPH ;弹出DPTR高位执行结果:(A)09H,(DPTR)=3A00H。由此可见,虽然在程序中改变了DPTR的内容,但利用PUSH和POP指令可对其进行保护和恢复。需要注意的是堆栈先进后出的原则,否则DPL与DPH弹出时互换。执行结果:(A)09H,(DPTR)=3A00H。由此可见,虽然在程序中改变了DPTR的内容,但利用PUSH和POP指令可对其进行保护和恢复。需要注意的是堆栈先进后出的原则,否则DPL与DPH弹出时互换。2.数据交换指令数据交换指令数据传送指令一般都是将操作数自源地址单元传送到目的地址单元,指令执行后,源地址单元的操作数不变,目的地址单元的操作数则修改为源地址单元的操作数。交换指令数据作双向传送,涉及传送的双方互为源地址、目的地址,指令执行后每方的操作数都修改为另一方的操作数。因此,两操作数均未冲掉、丢失。数据交换指令共有如下5条指令:指令助记符 功能操作注释 机器码(H)XCH A,direct ;(A)(direct)C5 directXCH A,Ri ;(A)(Ri)C6C7XCH A,Rn ;(A)(Rn)C8FXCHD A,Ri ;(A30)(R

    展开阅读全文
    提示  兔兜文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:《单片机原理及应用》课件第3章.ppt
    链接地址:https://www.tudouwenku.com/doc/2347844.html

    若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理!

    copyright@2008-2024 兔兜文库 版权所有

    鲁公网安备37072502000182号  ICP备案号:鲁ICP备2021021588号-1  百度保障

    兔兜文库
    收起
    展开