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

类型第03MCS51系列单片机的指令系统和时序精品课件.ppt

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

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

    特殊限制:

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

    关 键  词:
    03 MCS51 系列 单片机 指令系统 时序 精品 课件
    资源描述:

    1、西华大学电气信息学院 郑海春2TTS2S6S5S4S3机器周期P1S1P2ROMROMROM单字节指令双字节指令三字节指令由操作码和操作数(或操作数地址)两部分构成。举例:MOV A,#0FFH ADD A,R0nn+130H累加器A直接寻址示意图例如:MOV A,80H 与 MOV A,P0是等价的。02H0300H0302H累加器ADPTR 0300H (DPTR)+02H (A)0302H0300H平方表03H2019H2019H累加器APC2019H+03H2019H操作码偏移量2000H2019H当前PC值LOOPMCS-51单片机控制、检测系统驱动器电动机外设1外设2状态信号状态信

    2、号控制信号 MOV A,data ;(A)data 立即数 MOV A,Rn ;n=07,(A)(Rn)MOV A,Ri ;i=0,1 ,(A)(Ri)MOV A,direct ;A(direct)direct为内部RAM或SFR地址MOV A,#20H ;(A)=20H A的内容为20HMOV A,20H ;(A)=(20H)A的内容为20H中的内容MOV A,R0 ;将R0的内容送到A去。(A)(R0)MOV A,Ri ;以Ri的内容为地址,把该地址中的内容送到A中去。(A)(Ri)40HA 34H 40H R0 34H MOV P1,#0FEH;11111110BMOV P1,#0FEH

    3、;11111110B可以使可以使P1.0P1.0上的发光二极管点亮上的发光二极管点亮MOV P1,#0F0H;11110000BMOV P1,#0F0H;11110000B可以使可以使P1P1口上的上面口上的上面4 4个发光二极个发光二极管点亮管点亮P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 5v4308 MOV P1,#00H ;显示显示 8.MOV P1,#0F8H ;显示显示 7MOV P1,#88H ;显示显示 AP1.0 aP1.1 bP1.2 cP1.3 d P1.4 eP1.5 fP1.6 gP1.7 dp5v4308 一个引脚的高低电平,可以

    4、通过一个引脚的高低电平,可以通过“光电耦合器光电耦合器”控制控制继电器,从而以继电器,从而以“弱电弱电”控制控制“强电强电”。共两条,用于读程序存储器中的数据表格的指令,均共两条,用于读程序存储器中的数据表格的指令,均采用基址寄存器加变址寄存器间接寻址方式。采用基址寄存器加变址寄存器间接寻址方式。(1)MOVC A,A+PC 以以PC作基址寄存器,作基址寄存器,A的内容作为无符号整数和的内容作为无符号整数和PC中的内容(下一条指令的起始地址)相加后得到一个中的内容(下一条指令的起始地址)相加后得到一个16位的地址位的地址,该地址指出的程序存储单元的内容送到累该地址指出的程序存储单元的内容送到累

    5、加器加器A。注意:注意:PSEN*信号有效。信号有效。PC程序指针,指向下一条将要执行指令的地址。程序指针,指向下一条将要执行指令的地址。例如:根据例如:根据A A的内容的内容(09)(09)查平方表。查平方表。例如例如 (DPTR)=8100H (A)=40H (DPTR)=8100H (A)=40H 执行指令执行指令 MOVC A,A+DPTRMOVC A,A+DPTR 本指令的执行结果只和指针本指令的执行结果只和指针DPTRDPTR及累加器及累加器A A的内容的内容有关,与该指令存放的地址及常数表格存放的地址无有关,与该指令存放的地址及常数表格存放的地址无关,关,因此表格的大小和位置可以

    6、在因此表格的大小和位置可以在64K64K程序存储器中程序存储器中任意安排任意安排,一个表格可以为各个程序块公用。,一个表格可以为各个程序块公用。两条指令是在两条指令是在MOVMOV的后面加的后面加C C,“C”C”是是CODECODE的第一的第一个字母,即代码的意思。个字母,即代码的意思。例如:例如:(A)=80H(A)=80H,(R7)=08H(R7)=08H,执行指令:执行指令:XCH A,R7 ;(A)XCH A,R7 ;(A)与与(R7)(R7)互换互换结果:结果:(A)=08H,(R7)=80H(A)=08H,(R7)=80H例:将片内例:将片内RAM 60HRAM 60H单元与单元

    7、与61H61H单元的数据交换。单元的数据交换。XCH 60H,61H XCH 60H,61H 对吗?对吗?Cy进位位进位位Ac半进位位半进位位OV溢出位溢出位调整规则:从低调整规则:从低4 4位开始运算位开始运算如果如果A A中数的低中数的低4 4位是位是0 09 9,则不变。,则不变。如果低如果低4 4位大于位大于9 9,则低,则低4 4位保留个位,向高位保留个位,向高4 4位进一;位进一;如果如果A A中数的高中数的高4 4位是位是0 09 9,则不变。,则不变。如果高如果高4 4位大于位大于9 9,则高,则高4 4位保留个位,位保留个位,CyCy置置1.1.例:(例:(A A)=9BH=

    8、9BH DA A DA A ;(A)=01H Cy=1(A)=01H Cy=1 3带进位左环移指令带进位左环移指令 RLC A例例 (A)=6CH =0110 1100(A)=6CH =0110 1100B B,(C)=1(C)=1 RLC ARLC A (A)=0D9H =1101 1001 (A)=0D9H =1101 1001B B 4右环移指令右环移指令 RR A例例(A A)6CH =0110 11006CH =0110 1100B B RR ARR A (A A)36H =0011 011036H =0011 0110B B 5带进位右环移指令带进位右环移指令 RRC ARRC A

    9、例例(A)6CH =0110 1100B,(C)=1 RRC A (A)0B6H=1011 0110B6 6累加器半字节交换指令累加器半字节交换指令 SWAP ASWAP A将累加器将累加器A A的高半字节(的高半字节(Acc.7Acc.7Acc.4Acc.4)和)和低半字节(低半字节(Acc.3Acc.3Acc.0Acc.0)互换。)互换。例例 (A A)=0C5H=0C5H,执行指令:,执行指令:SWAP ASWAP A 结果:(结果:(A A)=5CH=5CH地址地址 汇编语言格式:汇编语言格式:地址地址 机器码机器码 标号标号 源程序源程序 注释注释 ORG 0000H ;整个程序起始

    10、地址整个程序起始地址0000 02 00 30 LJMP MAIN ;跳向主程序跳向主程序 ORG 0030H ;主程序起始地址主程序起始地址0030 C3 MAIN:CLR C ;MAIN为程序标号为程序标号0031 E6 LOOP:MOV A,R00032 37 ADDC A,R10033 08 INC R00034 D9 FB DJNZ R1,LOOP ;相对转移;相对转移0036 80 02 SJMP NEXT0038 78 03 MOV R0,#03H003A 18 NEXT:DEC R0003B 80FE SJMP$;HERE:SJMP HERE END ;结束标记结束标记 JMP

    11、 A+DPTRJMP A+DPTR由由A A中中8 8位无符号数与位无符号数与DPTRDPTR的的1616位数内容之和位数内容之和来确定。以来确定。以DPTRDPTR内容作为基址,内容作为基址,A A的内容作变的内容作变址。给址。给A A赋予不同的值,即可实现程序的多分赋予不同的值,即可实现程序的多分支转移。支转移。间接跳转指令间接跳转指令编程时,可用编程时,可用标号标号代替转移目的代替转移目的地址地址,addr11addr11,addr16 addr16 交给编译程序计算。交给编译程序计算。6.6.子程序返回指令子程序返回指令8.8.空操作指令空操作指令 RETI RET从堆栈弹出保存的从堆

    12、栈弹出保存的PCPC地址,实现子程序返回。地址,实现子程序返回。汇编语言格式:汇编语言格式:地址地址 机器码机器码 标号标号 源程序源程序 注释注释 ORG 0000H ;整个程序起始地址整个程序起始地址0000 02 00 30 LJMP MAIN ;跳向主程序跳向主程序 ORG 0030H ;主程序起始地址主程序起始地址0030 C3 MAIN:CLR C ;MAIN为程序标号为程序标号0031 E6 LOOP:MOV A,R00032 37 ADDC A,R10033 08 INC R00034 D9 FB DJNZ R1,LOOP ;相对转移;相对转移0036 80 02 SJMP N

    13、EXT0038 78 03 MOV R0,#03H003A 18 NEXT:DEC R0003B 80FE SJMP$;HERE:SJMP HERE END ;结束标记结束标记例例2 2:将存放在内部将存放在内部RAM 50HRAM 50H单元内的一个压缩的单元内的一个压缩的BCDBCD码中的码中的两位十进制数拆开,并转换成相应的两位十进制数拆开,并转换成相应的ASCIIASCII码,再存入内部码,再存入内部RAM 51HRAM 51H单元(高位)单元(高位),52H,52H单元(地位)中。单元(地位)中。若(若(50H50H)=45H45H程序清单如下:程序清单如下:ORG 0000HORG

    14、 0000HMOV R0,#52HMOV R0,#52HMOV 52H,#00HMOV 52H,#00HMOV A,50HMOV A,50HXCHD A,R0XCHD A,R0ORL 52H,#30HORL 52H,#30HSWAP ASWAP AADD A,#30HADD A,#30HMOV 51H,AMOV 51H,AENDEND1.1.单分支结构单分支结构240H40Hxxyxx(A)14H相当于(相当于(A)14H相当于(相当于(A)15H CJNE A,#15H,LOOPLOOP:JNC NEXT CJNE A,#14H,LOOPLOOP:JNC NEXT CJNE A,#14H,L

    15、OOPLOOP:JC NEXT CJNE A,#data,rel;(A)=#data,继续,继续(C)0(A)#data,转转 (C)0(A)#data,转转 (C)1特点:只有时(特点:只有时(C)12.2.多分支结构多分支结构例:按下式编写程序,例:按下式编写程序,x x为无符号数为无符号数(128),(128),存在存在30H30H单元,单元,结果结果y y存放在存放在31H31H单元。单元。ORG 0000H ORG 0000H MOV A,30H MOV A,30H CJNE A,#21H,LOOP1 CJNE A,#21H,LOOP1LOOP1:JC NEXT1LOOP1:JC N

    16、EXT1 CJNE A,#40H,LOOP2 CJNE A,#40H,LOOP2LOOP2:JNC NEXT2LOOP2:JNC NEXT2 MOV B,#2 MOV B,#2 MUL AB MUL AB AJMP NEXT2 AJMP NEXT2NEXT1:CPL ANEXT1:CPL ANEXT2:MOV 31H,ANEXT2:MOV 31H,A END END3.3.散转结构散转结构 ORG 0000H ORG 0000HJUMP1:MOV DPTR,#TABJUMP1:MOV DPTR,#TAB MOV A,R2 MOV A,R2 ADD A,R2 ADD A,R2;乘;乘2 2 JM

    17、P A+DPTR JMP A+DPTR ORG 0100H ORG 0100HTAB:AJMP PRG0 TAB:AJMP PRG0;两个字节;两个字节 AJMP PRG1AJMP PRG1 AJMP PRG2 AJMP PRG2 .例例1 1:对内部对内部RAM 50HRAM 50H开始的开始的1010个无符号数求和。个无符号数求和。循环程序设计的特点:循环程序设计的特点:1.1.设定循环初值;设定循环初值;2.2.确定循环体:重复执行的部分;确定循环体:重复执行的部分;3.3.循环结束条件:循环结束条件:(1 1)计数器:如)计数器:如DJNZ R7,relDJNZ R7,rel(2 2)

    18、比较:如)比较:如CJNE A,#data,relCJNE A,#data,rel源程序:源程序:ADD1:MOV R7,#10ADD1:MOV R7,#10;循环次数循环次数 MOV R3,#0 MOV R3,#0;存放结果的高存放结果的高8 8位位 MOV R4,#0 MOV R4,#0;存放结果的低存放结果的低8 8位位 MOV R0,#50H MOV R0,#50H;求和的数据存放在求和的数据存放在RAMRAM中的起始地址中的起始地址LOOP:MOV A,R4LOOP:MOV A,R4 ADD A,R0 ADD A,R0 MOV R4,A MOV R4,A;结果送回结果送回R4R4 C

    19、LR A CLR A ADDC A,R3 ADDC A,R3;把进位位把进位位C C加到高加到高8 8位去位去 MOV R3,AMOV R3,A INC R0 INC R0 ;为下一轮循环作准备为下一轮循环作准备 DJNZ R7,LOOPDJNZ R7,LOOP END END ORG 0000H ORG 0000H MOV R0,#22H MOV R0,#22H;数据块起始地址数据块起始地址 MOV R1,21HMOV R1,21H;数据个数数据个数n n MOV 20H,#0FFH MOV 20H,#0FFH;取最大数为基准数取最大数为基准数LOOP:LOOP:MOV A,R0 MOV A

    20、,R0;取新数取新数 INC R0INC R0 CJNE A,20H,LOP1 CJNE A,20H,LOP1;与原最小数比较与原最小数比较LOP1:LOP1:JNC NEXT JNC NEXT ;大于或等于,保留原最小数大于或等于,保留原最小数 MOV 20H,A MOV 20H,A ;小于,改变最小数小于,改变最小数NEXT:NEXT:DJNZ R1,LOOP DJNZ R1,LOOP;循环循环 ENDEND 执行查表指令时,发出读程序存储器选通脉冲执行查表指令时,发出读程序存储器选通脉冲/PSEN/PSEN。在在MCS-51MCS-51的指令系统中,给用户提供了的指令系统中,给用户提供了

    21、两条极为有用两条极为有用的查表指令:的查表指令:MOVC A MOVC A,A+DPTRA+DPTR MOVC A MOVC A,A+PCA+PC指令指令“MOVC AMOVC A,A+DPTR”A+DPTR”完成把完成把A A中的内容作为一个中的内容作为一个无符号数与无符号数与DPTRDPTR中的内容相加,所得结果为某一程序中的内容相加,所得结果为某一程序存储单元的地址,然后把该地址单元中的内容送到累存储单元的地址,然后把该地址单元中的内容送到累加器加器A A中。指令中。指令“MOVC AMOVC A,A+PC”A+PC”以以PCPC作为基址寄存器,作为基址寄存器,PCPC的内容和的内容和A

    22、 A的内容作为无符号数,相加后所得的数作的内容作为无符号数,相加后所得的数作为某一程序存储器单元的地址,根据地址取出程序存为某一程序存储器单元的地址,根据地址取出程序存储器相应单元中的内容送到累加器储器相应单元中的内容送到累加器A A中。中。地地 址址 子程序子程序Y3Y2Y1Y0 ADD A,#01HY3Y2Y1Y0 ADD A,#01H Y3Y2Y1Y0+2 MOVC A,A+PC Y3Y2Y1Y0+2 MOVC A,A+PCY3Y2Y1Y0+3 RETY3Y2Y1Y0+3 RET Y3Y2Y1Y0+4 DB 00H,01H,04H,09H,10H Y3Y2Y1Y0+4 DB 00H,01

    23、H,04H,09H,10H DB 19H,24H,31H,40H,51H DB 19H,24H,31H,40H,51H第第1 1条指令条指令 ADD AADD A,#01H#01H 的作用是加上偏移量,可以根据的作用是加上偏移量,可以根据A A的内容查出的内容查出X X对应的平方。对应的平方。MOVC AMOVC A,A+DPTR A+DPTR 这条指令的应用范围较为广泛,一般情况这条指令的应用范围较为广泛,一般情况下,大多使用该指令,使用该指令时不必计算偏移量,使用下,大多使用该指令,使用该指令时不必计算偏移量,使用该指令的优点是表格可以设在该指令的优点是表格可以设在64K64K程序存储器空

    24、间内的任何程序存储器空间内的任何地方地方,使用较方便。使用较方便。上面的程序可改成如下形式:上面的程序可改成如下形式:PUSH DPH PUSH DPH ;保存;保存DPHDPH PUSH DPL PUSH DPL ;保存;保存DPLDPL MOV DPTR MOV DPTR,#TAB1#TAB1 MOVC A MOVC A,A+DPTRA+DPTR POP DPL POP DPL ;恢复;恢复DPLDPL POP DPH POP DPH ;恢复;恢复DPHDPH RET RETTAB1:DB 00HTAB1:DB 00H,01H01H,04H04H,09H09H,10H 10H DB 19H

    25、 DB 19H,24H24H,31H31H,40H40H,51H51H例:例:8 8位二进制转换成位二进制转换成BCDBCD码(用十进制表达的二进制码)。码(用十进制表达的二进制码)。;程序名:程序名:BINBCD1BINBCD1;功能:功能:0 0FFHFFH内的二进制数转换为内的二进制数转换为BCDBCD数数;入口:入口:A A存要转换的二进制数存要转换的二进制数;出口:出口:R0R0存放存放BCDBCD数百位,十位,个位数在数百位,十位,个位数在RAMRAM中的起始地址中的起始地址BINBCD1:MOV B,#100BINBCD1:MOV B,#100 DIV AB DIV AB MOV

    26、 R0,A MOV R0,A INC R0 INC R0 MOV A,#10 MOV A,#10 XCH A,B XCH A,B DIV AB DIV AB MOV R0,A MOV R0,A INC R0 INC R0 XCH A,B XCH A,B MOV R0,A MOV R0,A RET RETMCS-51MCS-51单片机的单片机的C C语言要采用语言要采用C51C51编译器,目前最常用的是编译器,目前最常用的是Keil C51Keil C51。C C源程序源程序C51C51编译器编译器L51L51(或(或BL51BL51)连接)连接/定位定位生成生成 .HEX.HEX目标程序目标程

    27、序流程流程每定义一个变量,都要考虑它的存储区域。每定义一个变量,都要考虑它的存储区域。带存储区域的变量定义举例:带存储区域的变量定义举例:char data var1;/在内部在内部RAM定义一个带符号的一字节变量定义一个带符号的一字节变量var1bit bdata flags;/在可寻址的片内在可寻址的片内RAM定义了一个位变量定义了一个位变量flagsfloat idata x,y,z;/在内部在内部RAM(含含52子系列的高子系列的高128字节字节)定义浮点变量定义浮点变量 x y、zunsigned int pdata var2;/在片外在片外RAM 低低256字节内定义了一个字节内定

    28、义了一个 无符号整型变量无符号整型变量var2unsigned char vector34;/在内部在内部RAM定义一个带符号的一字定义一个带符号的一字 节节3x4数组数组vector如果用户不对变量的存储区域定义,则如果用户不对变量的存储区域定义,则C51编译器采用默认存储编译器采用默认存储区域,而默认的存储区域由存储模式决定。区域,而默认的存储区域由存储模式决定。建议首先选用建议首先选用SMALL C51C51数据的存储模式(编译模式)数据的存储模式(编译模式)用户在满足需求的情况下,应该尽量使用用户在满足需求的情况下,应该尽量使用SMALLSMALL模式。模式。如:如:char t;由于

    29、没有指定存储类型,所以其实际的存储区域由于没有指定存储类型,所以其实际的存储区域由默认决定:由默认决定:在在SMALLSMALL模式下,分配到模式下,分配到datadata空间;空间;在在COMPACTCOMPACT模式下,分配到模式下,分配到pdatapdata空间;空间;在在LARGELARGE模式下,分配到模式下,分配到xdataxdata空间。空间。#include sbit LED1=P32;/定义定义SFR中引脚的中引脚的“位位”sbit LED2=P33;sbit LED3=P34;void delayms(unsigned int x);/毫秒延时函数毫秒延时函数 void main(void)/主程序主程序 while(1)/非非0为真,此为无限循环为真,此为无限循环 LED1=0;LED2=1;LED3=1;delayms(1000);LED1=1;LED2=0;LED3=1;delayms(1000);LED1=1;LED2=1;LED3=0;delayms(1000);void delayms(unsigned int x)/毫秒延时函数毫秒延时函数 unsigned char j;while(x-)/非非0,为真,即,为真,即x=0时退出循环时退出循环 for(j=0;j123;j+);

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:第03MCS51系列单片机的指令系统和时序精品课件.ppt
    链接地址:https://www.163wenku.com/p-3302165.html

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


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


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

    163文库