书签 分享 收藏 举报 版权申诉 / 97
上传文档赚钱

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

  • 上传人(卖家):ziliao2023
  • 文档编号:5769394
  • 上传时间:2023-05-07
  • 格式:PPT
  • 页数:97
  • 大小:406.51KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《单片机原理及应用第三章课件.ppt》由用户(ziliao2023)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

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

    特殊限制:

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

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

    1、第三章第三章MCS51单片微机的指令系统单片微机的指令系统 3.1 MCS3.1 MCS5151指令及其表示方法指令及其表示方法 指令系统是根据单片机硬件电路确定的一组操作编码,指令系统是根据单片机硬件电路确定的一组操作编码,每一条指令完成一个特定的操作。指令系统设计是单片机每一条指令完成一个特定的操作。指令系统设计是单片机设计的一个组成部分,芯片制造厂在推出单片机的同时也设计的一个组成部分,芯片制造厂在推出单片机的同时也要提供指令系统,我们为了使用单片机就必须了解和熟悉要提供指令系统,我们为了使用单片机就必须了解和熟悉其指令系统。本节介绍指令的格式,指令的字节数等基本其指令系统。本节介绍指令

    2、的格式,指令的字节数等基本知识。知识。一、机器语言指令与汇编语言指令一、机器语言指令与汇编语言指令 和一般的微机一样,指令具有两级形式,即机器语言指令和一般的微机一样,指令具有两级形式,即机器语言指令和汇编语言指令,指令的集合便是程序。例如作和汇编语言指令,指令的集合便是程序。例如作10+2010+20的运算的运算可采用下列二进制机器语言程序可采用下列二进制机器语言程序 :01110100B 00001010B 1601110100B 00001010B 16进制表示为进制表示为74H 0AH74H 0AH 00100100B 00010100B 00100100B 00010100B 24H

    3、 14H24H 14H 为了使用方便,用助记符来表示操作性质,并规定一定为了使用方便,用助记符来表示操作性质,并规定一定的书写格式,这样就形成了汇编语言级的指令和程序,例如的书写格式,这样就形成了汇编语言级的指令和程序,例如上述程序的汇编语言形式为:上述程序的汇编语言形式为:MOV AMOV A,#0AH#0AHADD AADD A,#14H#14H操作码操作数 上述程序中上述程序中MOVMOV为助记符,表示操作的性质是数据传送,助为助记符,表示操作的性质是数据传送,助记符后面的符号记符后面的符号A A为累加器为累加器ACCACC,是数据传送的,是数据传送的“目的目的”地址地址(地址为符号地址

    4、),(地址为符号地址),#0AH#0AH中前缀中前缀#表示表示0AH0AH为数据,处于此位为数据,处于此位置的数据或符号(或不带置的数据或符号(或不带#的数)是数据传送的的数)是数据传送的“源源”(或(或“源源”地址)。第二条指令的地址)。第二条指令的ADDADD表示加法操作。根据上例可知,表示加法操作。根据上例可知,汇编汇编语言指令的格式为:语言指令的格式为:标号:助记符标号:助记符 操作对象操作对象 指令中的操作对象可以是寄存器名、存贮器地址、数据指令中的操作对象可以是寄存器名、存贮器地址、数据(带有前缀(带有前缀#等),等),操作对象可以是操作对象可以是1 1个或个或2 2个、个、3 3

    5、个个,例如上例,例如上例中两条指令均为两个操作对象,第一个为目的操作对象,第二中两条指令均为两个操作对象,第一个为目的操作对象,第二个为源操作对象。个为源操作对象。由于汇编语言指令不是机器代码,故编制好汇编语言程序后,由于汇编语言指令不是机器代码,故编制好汇编语言程序后,还需要再翻译成还需要再翻译成机器语言程序(称目标程序),机器语言程序(称目标程序),然后才能输入到然后才能输入到计算机的存贮器中去执行。机器语言程序主要由数码组成,它包计算机的存贮器中去执行。机器语言程序主要由数码组成,它包含两种不同性质的编码,一种是表示操作性质的数码含两种不同性质的编码,一种是表示操作性质的数码操作码,操作

    6、码,另一种为表示某个数(或地址)的编码另一种为表示某个数(或地址)的编码操作数,所以机器语操作数,所以机器语言指令的格式为:言指令的格式为:地址地址 操作码操作码 操作数(操作数(0 02 2个)个)例如上述机器码程序例如上述机器码程序74H74H、24H24H为操作码,为操作码,0AH0AH、14H14H为操作为操作数,汇编语言指令与机器语言指令具有完全确定的关系,二者可数,汇编语言指令与机器语言指令具有完全确定的关系,二者可以互相转换。以互相转换。二、指令的格式二、指令的格式 指令是完成一种特定操作的命令。指令是完成一种特定操作的命令。一条指令由一个操作一条指令由一个操作码和几个操作数组成

    7、,其中操作数可以是码和几个操作数组成,其中操作数可以是0 02 2个,在计算机中个,在计算机中以以8 8位二进制码为一个字节,各种编码均以字节为单位(即位二进制码为一个字节,各种编码均以字节为单位(即1616进制的进制的2 2位数)。位数)。单字节指令:单字节指令:双字节指令:双字节指令:三字节指令:三字节指令:操作码操作码操作数操作码第1操作数第2操作数二、指令的格式二、指令的格式 例如:例如:操作内容操作内容 汇编语言汇编语言 机器语言指令机器语言指令 累加器内容加累加器内容加1 INC A 000001001 INC A 00000100(04H04H)累加器内容取反累加器内容取反 CP

    8、L A 01011000CPL A 01011000(18H18H)MOV A MOV A,RnRn(n=0n=07 7););机器码为机器码为11101rrrb11101rrrb 式中式中 rrrrrr为为0707的二进制码的二进制码 MOV data MOV data,#data#data ;机器码为机器码为 75H75H datadata#data#data操作码操作码第一操作数第二操作数3.2 3.2 寻址方式寻址方式一、指令系统中使用的符号一、指令系统中使用的符号A A累加器;累加器;B B乘、除运算寄存器,亦可当作一般寄存器使用;乘、除运算寄存器,亦可当作一般寄存器使用;RnRn工

    9、作寄存器工作寄存器n=0n=07 7;RiRi用于存放地址的工作寄存器用于存放地址的工作寄存器i=0i=0,1 1,亦称,亦称8 8位地址指位地址指针;针;DPTRDPTR1616位数据(地址)指针(由位数据(地址)指针(由DPHDPH,DPLDPL两个寄存器组两个寄存器组成),存放成),存放1616位地址;位地址;以寄存器的内容为地址的前缀;以寄存器的内容为地址的前缀;rrrrrr:R0 R0R7R7对应的对应的rrrrrr为为000000111111;dirdir(directdirect或或data)data)单片机内地址为单片机内地址为dirdir(directdirect或或data

    10、)data)的通用寄存器;的通用寄存器;#data#data8 8位的数据;位的数据;#data16#data161616位的数据;位的数据;SPSP堆栈指针,其内容为堆栈栈顶的地址;堆栈指针,其内容为堆栈栈顶的地址;bitbit位操作中的一个位操作中的一个“位位”;C CPSWPSW中的最高位,亦称位累加器;中的最高位,亦称位累加器;addr11addr111111位地址;位地址;addr16addr161616位地址;位地址;relrel相对地址;相对地址;(X X)以以X(R0,R1,DPTRX(R0,R1,DPTR,dirdir等等)的内容为地址的该单元内的内容为地址的该单元内容;容;

    11、其它其它特殊功能寄存器符号及其内部的特殊功能寄存器符号及其内部的“位位”符号符号。二、寻址方式二、寻址方式 计算机的各种操作都涉及到寄存器和存贮器,它们分计算机的各种操作都涉及到寄存器和存贮器,它们分布在片内和片外,数量很多,因此指令中必须明确指明是布在片内和片外,数量很多,因此指令中必须明确指明是哪一个寄存器或哪一个存贮单元,哪一个寄存器或哪一个存贮单元,寻址方式就是在指令中寻址方式就是在指令中给出的寻找操作数或操作数所在地址的方法。给出的寻找操作数或操作数所在地址的方法。执行任何一执行任何一条指令都需要使用操作数。条指令都需要使用操作数。MCSMCS5151系列单片微机指令系系列单片微机指

    12、令系统中共有以下统中共有以下7 7种寻址方式。种寻址方式。1.1.立即寻址立即寻址 立即寻址是指在指令中直接给出参与操作的数,出现立即寻址是指在指令中直接给出参与操作的数,出现在指令中的这种操作数称为在指令中的这种操作数称为立即数立即数,这种寻址方式称为立,这种寻址方式称为立即寻址。为了与直接寻址指令中的直接地址相区别,在立即寻址。为了与直接寻址指令中的直接地址相区别,在立即数前面必须加上前缀即数前面必须加上前缀“#”#”。例如:指令例如:指令 MOV DPTRMOV DPTR,#1234H#1234H 其中其中1234H1234H就是立即数,指令功能是把就是立即数,指令功能是把1616位立即

    13、数位立即数1234H1234H送入数据指针送入数据指针DPTRDPTR中。中。1.1.立即寻址立即寻址例如:指令例如:指令 MOV DPTRMOV DPTR,#1234H#1234H 机器语言指令机器语言指令:90 12 3490 12 34程序存储器程序存储器901234PCPCPC+1PC+1PC+2PC+2特殊功能寄存器特殊功能寄存器DPHDPHDPLDPL12342.2.直接寻址直接寻址 直接寻址是指在指令中直接给出直接寻址是指在指令中直接给出操作数单元的地址操作数单元的地址。例如:指令例如:指令 MOV AMOV A,3AH3AH 其功能是把片内其功能是把片内RAMRAM中中3AH3

    14、AH单元内的数据传送给累加器单元内的数据传送给累加器A A。直接寻址方式只能给出直接寻址方式只能给出8 8位地址,因此这种寻址方式的寻址位地址,因此这种寻址方式的寻址范围只限于片内范围只限于片内RAMRAM。具体地说:。具体地说:(1 1)低低128128单元单元,在指令中直接以单元地址形式给出。,在指令中直接以单元地址形式给出。(2 2)特殊功能寄存器特殊功能寄存器,这时除可以单元地址形式给出外,这时除可以单元地址形式给出外,还可以寄存器符号形式给出。虽然特殊功能寄存器可以使用还可以寄存器符号形式给出。虽然特殊功能寄存器可以使用符号标志,但在指令代码中还是按地址进行编码的。符号标志,但在指令

    15、代码中还是按地址进行编码的。例如:指令例如:指令 MOV A,B;MOV A,F0H;MOV A,B;MOV A,F0H;2.2.直接寻址直接寻址 (3)(3)位地址空间。位地址空间。特殊功能寄存器和位地址空间只能用直接寻址方式来访特殊功能寄存器和位地址空间只能用直接寻址方式来访问。问。例:指令:例:指令:MOV A,45H;MOV A,45H;机器代码:机器代码:E5 45E5 45程序存储器程序存储器E545PCPCPC+1PC+1片内片内RAMRAMXX45HXXA A3.3.寄存器寻址寄存器寻址 寄存器寻址是指在指令中寄存器寻址是指在指令中将指定寄存器的内容作为操作数。将指定寄存器的内

    16、容作为操作数。因此指定了寄存器就能得到操作数。因此指定了寄存器就能得到操作数。寄存器寻址方式中,用符号名称来表示寄存器。寄存器寻址方式中,用符号名称来表示寄存器。例如:指令例如:指令INC R0INC R0 其功能是把寄存器其功能是把寄存器R0R0的内容加的内容加1 1,再送回,再送回R0R0中。由于操作中。由于操作数在数在R0R0中,指定了中,指定了R0R0,也就得到了操作数。,也就得到了操作数。寄存器寻址方式的寻址范围包括:寄存器寻址方式的寻址范围包括:(1 1)在指令中只能使用)在指令中只能使用当前寄存器组当前寄存器组。因此在使用中要通。因此在使用中要通过指定过指定PSWPSW中的中的R

    17、S1RS1、RS0RS0,以选择使用的当前寄存器组。,以选择使用的当前寄存器组。(2 2)部分特殊功能寄存器部分特殊功能寄存器。例如。例如累加器累加器A A、B B寄存器、寄存器、C CY Y以以及数据指针及数据指针DPTRDPTR。3.3.寄存器寻址寄存器寻址 例如:指令例如:指令 MOV AMOV A,R3R3;机器代码:机器代码:EBEB 设累加器设累加器A A 的内容为的内容为28H28H,R3R3的内容为的内容为58H58H。PSWPSW中中RS1RS1,RS0RS0分别为:分别为:1 1、0 0。则。则R3R3的地址为的地址为13H13H。程序存储器程序存储器EBPCPC片内片内R

    18、AMRAM58 13H(R3)28 HA A58H4.4.寄存器间接寻址寄存器间接寻址 寄存器间接寻址是指在指令中寄存器间接寻址是指在指令中给出的寄存器内容是操作数的给出的寄存器内容是操作数的地址地址,从该地址中取出的才是操作数。寄存器间接寻址也需以寄,从该地址中取出的才是操作数。寄存器间接寻址也需以寄存器符号名称的形式表示,为了区别寄存器寻址和寄存器间接寻存器符号名称的形式表示,为了区别寄存器寻址和寄存器间接寻址,在寄存器间接寻址中,应在寄存器的名称前面加前缀址,在寄存器间接寻址中,应在寄存器的名称前面加前缀“”。例如:指令例如:指令 MOV A,R0;机器代码机器代码 E6 程序存储器程序

    19、存储器片内片内RAMRAM5E 00H(R0)XXA AE6PCPC5EHXX寄存器间接寻址的寻址范围:寄存器间接寻址的寻址范围:(1 1)片内片内RAMRAM的低的低128128单元单元,只能采用,只能采用R0R0或或R1R1作为间址寄存作为间址寄存器,其形式为器,其形式为Ri(iRi(i=0=0,1)1),例:,例:MOV A,R0;(2 2)片外片外RAMRAM的的64KB64KB单元单元,使用,使用DPTRDPTR作为间址寄存器,其形作为间址寄存器,其形式为式为DPTRDPTR,例如:,例如:MOVX AMOVX A,DPTR,DPTR,其功能是把其功能是把DPTRDPTR指定的指定的

    20、片外片外RAMRAM单元的内容送累加器单元的内容送累加器A A。(3 3)片外片外RAMRAM的的256256单元单元,除了可使用,除了可使用DPTRDPTR作为间址寄存器作为间址寄存器外,也可使用外,也可使用R0R0或或R1R1作间址寄存器。例如作间址寄存器。例如MOVX AMOVX A,R0;R0;(4 4)堆栈区:堆栈区:堆栈操作指令(堆栈操作指令(PUSHPUSH和和POPPOP)也应算作是寄存)也应算作是寄存器间接寻址,即以堆栈指针(器间接寻址,即以堆栈指针(SPSP)作间址寄存器的间接寻址方)作间址寄存器的间接寻址方式。式。5.5.变址寻址变址寻址 变址寻址是指以变址寻址是指以DP

    21、TRDPTR或或PCPC作基址寄存器作基址寄存器,累加器累加器A A作变址作变址寄存器寄存器,以两者内容相加,形成的,以两者内容相加,形成的1616位程序存储器地址作为位程序存储器地址作为操作数地址,又称操作数地址,又称基址寄存器基址寄存器+变址寄存器间接寻址变址寄存器间接寻址。有效地址有效地址=基址寄存器基址寄存器PCPC(或(或DPTRDPTR)+A+A 例如:指令例如:指令 MOVC A,MOVC A,A+DPTRA+DPTR 机器代码机器代码 93 93 假定指令执行前(假定指令执行前(A A)=54H=54H,(DPTRDPTR)=1256H=1256H 变址寻址形成的操作数地址为变

    22、址寻址形成的操作数地址为1256H+54H=12AAH1256H+54H=12AAH,若,若12AAH12AAH单元的内容为单元的内容为00H00H,则该指令执行的结果是,则该指令执行的结果是A A的内容为的内容为00H00H。程序存储器程序存储器54A A93PCPCSFRSFR56DPLDPH121256H54H12AAH12AAH0000例如:指令例如:指令 MOVC A,A+DPTR 机器代码机器代码 93 变址寻址指令有:变址寻址指令有:MOVC A,A+DPTR;(A+DPTR)A MOVC A,A+PC;PC+1 PC,(,(A+PC)A JMP A+DPTR;(A+DPTR)P

    23、C 变址寻址方式用于查表操作。变址寻址方式用于查表操作。6.6.相对寻址相对寻址 相对寻址是仅用于相对转移指令的一种寻址方式。与其他相对寻址是仅用于相对转移指令的一种寻址方式。与其他寻址方式不同,这种寻址方式是要寻找指令地址,即寻找下一寻址方式不同,这种寻址方式是要寻找指令地址,即寻找下一条要执行指令的地址。相对寻址的有效地址条要执行指令的地址。相对寻址的有效地址D D(目的地址)为:(目的地址)为:D=PC+relD=PC+rel PC PC的当前值称为源地址,它是相对转移指令操作码的地址;的当前值称为源地址,它是相对转移指令操作码的地址;relrel是相对地址是相对地址,它是目的地址与源地

    24、址的差值。,它是目的地址与源地址的差值。相对地址的机器码称为偏移量,记为相对地址的机器码称为偏移量,记为dispdisp,它与,它与relrel的关的关系是:系是:dipsdipsrel-brel-b 目的地址目的地址=源地址源地址+转移指令字节数转移指令字节数+dips+dips 若转移指令为若转移指令为2 2字节,则字节,则b b2 2;若转移指令为;若转移指令为3 3字节,则字节,则b=3b=3。偏移量为一字节二进制补码数,取值范围为。偏移量为一字节二进制补码数,取值范围为-128-128一一+127+127。相对地址取值范围为相对地址取值范围为-126-126+129+129。在源程序

    25、中,相对地址。在源程序中,相对地址relrel一般用标号表示。一般用标号表示。6.6.相对寻址相对寻址例如:指令例如:指令 JC 18H JC 18H ;设;设C CY Y=1=1,操作码的地址为,操作码的地址为1000H1000H。机器代码机器代码 40 1640 16 程序存储器程序存储器161001H1000PCPC1000H4016H1000H+21018H1018H1018H6.6.相对寻址相对寻址 例:例:设有如下一段程序,试写出与设有如下一段程序,试写出与JNZ RET0JNZ RET0相对应的机器相对应的机器代码。代码。地址地址 机器代码机器代码 标号标号 源程序源程序 015

    26、2H 70 XX JNZ RET0(A0,PC 016CH)016CH DO E0 RET0:POP A解:源地址解:源地址=0152H=0152H,目的地址,目的地址=016CH=016CHrelrel=D-PC=016CH-0152H=1AH=D-PC=016CH-0152H=1AHdispdisp=rel-2=1AH-2=18H=rel-2=1AH-2=18H186.6.相对寻址相对寻址 例:例:设有如下一段程序,试写出与设有如下一段程序,试写出与DJNZ R7,ML2相对应相对应的机器代码。的机器代码。地址地址 机器代码机器代码 标号标号 源程序源程序 0110H CO DO ML2:

    27、PUSH PSW 011BH DF XX DJNZ R7,ML2解:源地址解:源地址=011BH ,目的地址,目的地址=0110H rel=D-PC=0110H-011BH=-0BH-0BH补补=F5Hdisp=rel-2=F5H-2=F3HF37.7.位寻址位寻址 80518051有位处理功能,可以对数据位进行操作,因此就有相有位处理功能,可以对数据位进行操作,因此就有相应的位寻址方式,位寻址的寻址范围:应的位寻址方式,位寻址的寻址范围:(1 1)RAMRAM中的位寻址区中的位寻址区 片内片内RAMRAM中的单元地址中的单元地址20H-2FH20H-2FH,共,共1616个单元个单元1281

    28、28位,为位位,为位寻址区,位地址是寻址区,位地址是00H-7FH00H-7FH。对这。对这128128个位的寻址使用直接位个位的寻址使用直接位地址表示。地址表示。例如例如 MOV C,2BH MOV C,2BH 指令的功能是把位寻址区的指令的功能是把位寻址区的2BH2BH位的值位的值送累加位送累加位C C。SETB 3AHSETB 3AH;(给;(给3A3A位置位置1 1)(2 2)可位寻址的特殊功能寄存器位可位寻址的特殊功能寄存器位 可供位寻址的特殊功能寄存器共有可供位寻址的特殊功能寄存器共有1111个,有寻址位个,有寻址位8383位。位。3.3 3.3 指令系统指令系统 MCSMCS51

    29、51的指令系统,共有的指令系统,共有111111条指令,按其功能可分条指令,按其功能可分为五大类:为五大类:(1 1)数据传送类指令()数据传送类指令(2828条)条)(2 2)算术运算类指令()算术运算类指令(2424条)条)(3 3)逻辑运算类指令()逻辑运算类指令(2525条)条)(4 4)控制转移类指令()控制转移类指令(1717条)条)(5 5)布尔操作(位)类指令()布尔操作(位)类指令(1717条)。条)。3.3.1 3.3.1 数据传送类指令数据传送类指令 一、片内数据传送指令一、片内数据传送指令 片内数据传送指令的助记符为片内数据传送指令的助记符为MOVMOV,大部分的传送方

    30、式都,大部分的传送方式都是双向的,现以目的寄存器为序列列出如下:是双向的,现以目的寄存器为序列列出如下:1.1.以累加器以累加器A A为目的操作数的指令组为目的操作数的指令组 指令指令 操作内容操作内容 MOV A,Rn;ARn MOV A,direct;A(direct)MOV A,Ri;A(Ri)MOV A,#data;Adata1.1.以累加器以累加器A A为目的操作数的指令组为目的操作数的指令组例例:R1=20H,(,(20H)=55H;MOV A,R1执行后,执行后,A=55H。例:已知例:已知A=40H,R6=50H,(,(6FH)=32H,R0=18H,(,(18H)=10H,执

    31、行下列程序段执行下列程序段:MOV A,R6 ;A 50H MOV A,6FH ;A (6FH)MOV A,R0 ;A (R0)执行后,执行后,A=10H。2.2.以工作寄存器以工作寄存器RnRn为目的操作数的指令组为目的操作数的指令组 指令指令 操作内容操作内容 MOV Rn,A ;RnA MOV Rn,direct ;Rn(direct)MOV Rn,#data ;Rndata 这组指令的功能是把源操作数的内容送入当前工作寄存这组指令的功能是把源操作数的内容送入当前工作寄存器区的器区的R0-R7R0-R7中的某一个寄存器,源操作数有寄存器寻址、直中的某一个寄存器,源操作数有寄存器寻址、直接

    32、寻址和立即寻址等寻址方式。接寻址和立即寻址等寻址方式。例:已知例:已知A=3FHA=3FH,(,(4EH4EH)=2FH=2FH,R1=20HR1=20H,R3=30HR3=30H,执行下,执行下列程序段:列程序段:MOV A,#2EH ;A 2EH MOV R1,A ;R1 A MOV R2,4EH ;R2 (4EH)MOV R3,#6FH ;R3 6FH 执行后,执行后,A=2EH,R2=2FH,R3=6FH3.3.以直接地址以直接地址directdirect为目的操作数的指令组为目的操作数的指令组 指令指令 操作内容操作内容 MOV direct,A ;(direct)A MOV dir

    33、ect,Rn ;(direct)Rn MOV direct1,direct 2 ;(direct1)(direct2)MOV direct,Ri ;(direct)(Ri)MOV direct,#data ;(direct)data 这组指令的功能是把源操作数的内容送入由直接地址这组指令的功能是把源操作数的内容送入由直接地址指出的存储单元。源操作数有寄存器寻址、直接寻址、寄指出的存储单元。源操作数有寄存器寻址、直接寻址、寄存器间接寻址和立即寻址等寻址方式。存器间接寻址和立即寻址等寻址方式。例如:例如:MOV AMOV A,80H 80H ;表示把片内表示把片内RAMRAM中地址为中地址为80H

    34、80H单元(即单元(即P1P1口)中的内容送口)中的内容送A A。MOV 80HMOV 80H,#88H#88H ;表示把立即数表示把立即数88H88H送到片内送到片内RAMRAM中的中的80H80H地址单元中去。地址单元中去。MOV 80HMOV 80H,E0H E0H;表示把表示把E0HE0H单元的内容送到单元的内容送到80H80H单元中去。这是片内数单元中去。这是片内数据存储单元中的直接地址单元之间数据的直接传送。据存储单元中的直接地址单元之间数据的直接传送。4 4间接地址为目的操作数的指令间接地址为目的操作数的指令 指令指令 操作内容操作内容 MOV Ri,A ;(Ri)A MOV R

    35、i,direct ;(Ri)(direct)MOV Ri,#data ;(Ri)data 例:例:A=30H,R1=40H,MOV R1,A;执行后执行后,(40H)=30H。二、二、1616位数目标地址传送指令位数目标地址传送指令 MOV DPTR,#data16;该指令把该指令把1616位常数装入数据指针位常数装入数据指针DPTRDPTR,即数据高八位,即数据高八位送入送入DPHDPH寄存器,数据低八位送入寄存器,数据低八位送入DPLDPL寄存器。寄存器。1616位常数在位常数在指令的第二、第三字节中(第二字节为高位字节指令的第二、第三字节中(第二字节为高位字节DPHDPH,第,第三字节为

    36、低位字节三字节为低位字节DPLDPL)。此操作不影响标志位。)。此操作不影响标志位。例:执行指令例:执行指令 MOV DPTRMOV DPTR,#1234H#1234H 执行结果:(执行结果:(DPHDPH)=12H=12H,(DPLDPL)=34H=34H三、堆栈操作指令三、堆栈操作指令PUSH direct:SPSP+1,(SP)(direct)POP direct:(direct)(SP),SP SP-1例如:设SP=30H,(50H)=80H,指令如下:PUSH 50H ;SP SP+1,(31H)(50H)POP 40H ;(40H)(31H),SP SP-1 程序执行过程中如图所示

    37、。四、查表指令四、查表指令 MOVC A,A+PC ;PC PC+1,A (A+PC)MOVC A,A+DPTR ;A (A+DPTR)例如,在程序存储器中,数据表格为:例如,在程序存储器中,数据表格为:1010H:01 1011H:02 1012H:03执行程序:执行程序:1000H:MOV A,#0DH ;A 0DH1002H:MOVC A,A+PC ;A(0DH+1003H)结果:结果:A=01H,PC=1003H。例如:在程序存储器中,数据表格为:例如:在程序存储器中,数据表格为:2000H:01H 2001H:23H 2002H:45H 2003H:67H 执行程序:执行程序:100

    38、0H:MOV A,#03H 1002H:MOV DPTR,#2000H 1005H:MOVC A,A+DPTR 结果:结果:A=67H,DPTR=2000H。五、片外数据传送指令五、片外数据传送指令 片外数据传送指令的助记符为片外数据传送指令的助记符为MOVXMOVX,片外数据传送必,片外数据传送必须使用累加器须使用累加器A A,另一操作对象采用间接寻址方式。,另一操作对象采用间接寻址方式。指令指令 操作内容操作内容 MOVX A,Ri ;A (Ri)MOVX A,DPTR ;A(DPTR)MOVX Ri,A ;(Ri)A MOVX DPTR,A ;(DPTR)A例如:例如:DPTR=2000

    39、H,(2000H)=18H 指令指令 MOVX A,DPTR;执行后 A=18H 例如,把片内例如,把片内RAM40HRAM40H单元中内容送到片外单元中内容送到片外RAM 2000HRAM 2000H单元单元中去。程序如下:中去。程序如下:MOV A,40H ;A(40H)MOV DPTR,#2000H ;DPTR2000H MOVX DPTR,A ;(2000H)A例如,把片外例如,把片外RAM2100HRAM2100H单元内容传送单元内容传送2120H2120H 单元中去,程序如下:单元中去,程序如下:MOV DPTR,#2100H MOVX A,DPTR MOV DPTR,#2120H

    40、 MOVX DPTR,A六、交换指令六、交换指令 1 1、字节交换指令、字节交换指令 XCH A,Rn ;A Rn XCH A,direct ;A (direct)XCH A,Ri ;A (Ri)上述指令的功能是,将累加器上述指令的功能是,将累加器A A的内容与源操作数所指出的内容与源操作数所指出的数据互相交换。的数据互相交换。例如,已知例如,已知R0=10H,A=4EH,(,(10H)=5FH;执行指令:执行指令:XCH A,R0;结果:结果:A=5FH,(,(10H)=4EH。2 2、半字节交换指令、半字节交换指令 XCHD A,Ri ;A.3-A.0 (Ri.3-Ri.0)该指令的功能是

    41、,将累加器该指令的功能是,将累加器A A中低中低4 4位与位与RiRi间接寻址单元内容的低间接寻址单元内容的低4 4位相互交位相互交换,而各自的高换,而各自的高4 4位内容不变。位内容不变。例如,已知例如,已知R0=10H,A=35H,片内片内RAM(10H)=46H;执行指令:执行指令:XCHD A,R0;结果:结果:A=36H,(,(10H)=45H。3 3、累加器、累加器A A的高的高4 4位与低位与低4 4位内容互换指令位内容互换指令 SWAP A ;A.3-A.0 A.7-A.4 该指令的功能是,将该指令的功能是,将A A的高、低两半字节相互交换。的高、低两半字节相互交换。例:设例:

    42、设A=86H,程序如下:程序如下:MOV R3,#4FH ;R3 4FH XCH A,R3 ;A R3 SWAP A ;A.7-A.4 A.3-A.0 XCH A,R3 ;A R3 结果:结果:A=86H,R3=F4H3.3.2 3.3.2 算术运算类指令算术运算类指令 MCSMCS5151算术运算指令,主要是对算术运算指令,主要是对8 8位无符号二进制数位无符号二进制数进行进行加法、减法、乘法和除法加法、减法、乘法和除法四则运算;四则运算;增增1 1、减、减1 1运算;运算;可以实现对可以实现对压缩压缩BCDBCD码加减运算码加减运算和对带符号二进制数进行和对带符号二进制数进行2 2的的补码

    43、运算补码运算。算术运算指令共有算术运算指令共有2424条。在加法、带进位加法和带借条。在加法、带进位加法和带借位减法的指令中,累加器位减法的指令中,累加器A A中总是存放目的操作数,并存中总是存放目的操作数,并存放操作的中间结果;而源操作数则可以是立即数、工作寄放操作的中间结果;而源操作数则可以是立即数、工作寄存器内容、间接或直接寻址片内存器内容、间接或直接寻址片内RAMRAM内容。这些指令都影内容。这些指令都影响程序状态字响程序状态字PSWPSW的进位位的进位位C C、溢出位、溢出位OVOV、半进位位、半进位位ACAC和奇和奇偶标志位偶标志位P P。仅当源操作数为。仅当源操作数为A A时,加

    44、时,加1 1、减、减1 1指令才对标志指令才对标志位位P P有影响。乘法、除法指令影响标志位有影响。乘法、除法指令影响标志位OVOV和和P P。一、加法类指令一、加法类指令 1 1、加法指令(、加法指令(4 4条)条)ADD A,Rn ;A A+Rn ADD A,direct ;A A+(direct)ADD A,Ri ;A A+(Ri)ADD A,#data ;A A+data 这组指令的功能是,把源操作数所指出的内容和累加器这组指令的功能是,把源操作数所指出的内容和累加器A A的内容相加,其结果存放在累加器的内容相加,其结果存放在累加器A A中中。例如,设例如,设A=85H,R0=20H,

    45、(20H)=9EH执行指令:执行指令:ADD A,R0;其操作如下:其操作如下:1000 0101 +)1001 1110 10010 0011结果:结果:A=23H、Cy=1、AC=1、OV=1、P=1。2 2、带进位加法指令(、带进位加法指令(4 4条)条)ADDC A,Rn ;A A+Rn+Cy ADDC A,direct ;A A+(direct)+Cy ADDC A,Ri ;A A+(Ri)+Cy ADDC A,#data ;A A+data+Cy 这是一组带进位的加法指令。其功能是,把源操作数所这是一组带进位的加法指令。其功能是,把源操作数所指出的内容和累加器指出的内容和累加器A

    46、A的内容以及进位标志的内容以及进位标志CyCy相加,结果存相加,结果存放在放在A A中。带进位加法指令常用于多字节加法运算。中。带进位加法指令常用于多字节加法运算。例如,设A=4EH,R0=20H,(20H)=9EH,Cy=1:执行指令:ADDC A,R0;其操作如下:0100 1110 1001 1110 +)1 1110 1101结果:A=EDH,Cy=0,AC=1,OV=0,P=0。3 3、加、加1 1指令(指令(5 5条)条)INC A ;A A+1 INC Rn ;Rn Rn+1 INC direct ;(direct)(direct)+1 INC DPTR ;DPTR DPTR+1

    47、 INC Ri ;(Ri)(Ri)+1 这组指令的功能是,把操作数所指定单元的内容加这组指令的功能是,把操作数所指定单元的内容加1 1。其操作除第。其操作除第一条指令影响奇偶标志位外,其余指令操作均不影响一条指令影响奇偶标志位外,其余指令操作均不影响PSWPSW。当用上述指令对并行当用上述指令对并行I/OI/O口的内容加口的内容加1 1时,其原来的数据不是从时,其原来的数据不是从I/OI/O口的引脚上读入,而是从口的引脚上读入,而是从I/OI/O口的输出锁存器中读入,加口的输出锁存器中读入,加1 1后仍保存于输后仍保存于输出锁存器下,即对出锁存器下,即对I/OI/O进行读进行读改改写操作。写操

    48、作。4.4.二二十进制调整指令(十进制调整指令(1 1条)条)DA ADA A;十进制修正十进制修正 这条指令的功能是,这条指令的功能是,对对BCDBCD码加法运算的结果自动进行修码加法运算的结果自动进行修正正,以便得到正确的,以便得到正确的BCDBCD码运算结果。码运算结果。如前所述,如前所述,0 09 9的的BCDBCD码是用码是用4 4位二进制数(位二进制数(0000000010011001)表示的,进行加法运算时,两位表示的,进行加法运算时,两位BCDBCD数之间应逢十进位。但是,数之间应逢十进位。但是,计算机中加法运算都是按二进制规则进行的,所以对于用计算机中加法运算都是按二进制规则

    49、进行的,所以对于用4 4位位二进制数表示的二进制数表示的1 1位位BCDBCD数实际上是逢十六进位,显然不符合数实际上是逢十六进位,显然不符合十进制运算的要求,可能产生错误的结果。因此,在十进制运算的要求,可能产生错误的结果。因此,在BCDBCD码加码加法运算后,必须进行十进制调整,这样才可以得到正确的法运算后,必须进行十进制调整,这样才可以得到正确的BCDBCD码结果。码结果。例如:设例如:设A=(00111000)BCD(即即38)data=(01001001)BCD(即(即49):):执行指令执行指令:ADD A,#data;其操作如下其操作如下:0011 1000 +)0100 100

    50、1 1000 0001 由于计算机中是按二进制进行运算的,由于计算机中是按二进制进行运算的,BCD码结果为码结果为81,这,这显然是错误的。如果在显然是错误的。如果在ADD A,#data;指令执行之后,再执行一指令执行之后,再执行一条指令条指令DA A;即即 1000 0001 +)0000 0110(+6修正修正)1000 0111 所得结果为所得结果为87,即调整后得到的,即调整后得到的BCD码结果是正确的。码结果是正确的。DA A;指令的指令的操作过程操作过程是:测试累加器是:测试累加器A A的的低低4 4位位及辅助进位位及辅助进位位ACAC,若,若A A中的中的低低4 4位值大于位值

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

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库