单片机原理及应用PPT教学课件第3章 MCS51单片机指令系统.ppt
《单片机原理及应用PPT教学课件第3章 MCS51单片机指令系统.ppt》由会员分享,可在线阅读,更多相关《单片机原理及应用PPT教学课件第3章 MCS51单片机指令系统.ppt(111页珍藏版)》请在三一办公上搜索。
1、单片机原理及应用,第3章 MCS-51单片机指令系统,光华学院信息工程系王 超,3.1 指令系统概述,指令:控制计算机完成指定操作的命令。指令系统:计算机所能执行的指令的集合。,MCS-51的基本指令共111条。按指令的功能来分为五类:(1)数据传送类指令(29条)(2)算术操作类指令(24条)(3)逻辑操作类指令(24条)(4)控制转移类指令(17条)(5)位操作指令(17条),按指令所占的字节(空间属性)来分:,(1)单字节指令(49条):(2)双字节指令(45条):(3)三字节指令(17条):,按指令的执行时间(时间属性)来分:(1)1个机器周期指令(64条);(2)2个机器周期指令(4
2、5条);(3)4个机器周期指令(只有乘、除两条指令)。,3.2 指令格式,操作码:用来规定指令进行什么操作。操作数:是指令操作的对象。标号:代表该指令所存放的第一个字节存储单元的地址,故标号又称为“符号地址”。,DELAY:MOV R3,#0FFH;一段延时程序,3.3 指令系统的寻址方式(寻找操作数),有我的信,找信去,立即找到信!,找信是寻找存放信的!,找到放信的箱子才找到信!,“地方”,3.3 指令系统的寻址方式(寻找操作数),找到放信的箱子才找到信!,1,80H,2002H,找信是寻找存放信的!,“地方”,“地址”,找操作数是找操作数的,“地址”,立即寻址,信,操作数,立即找到信!,立
3、即数寻址!,#XXH,#55H,CPU,A,MOV Rn,#01H,R0-R7,MOV DPTR,#1FFFH,DPTR,MOV direct,#88H,direct,70H,70H,88H,10001000,ADD A,#55H,SUB A,#01H,立即数寻址,直接寻址,寄存器寻址,寄存器间接寻址,变址寻址,相对寻址,位寻址,CPU,操作数,内部RAM或SFR区,20H,A,88H,MOV Rn,20H,MOV direct,30H,MOV Ri,30H,R0-R7,direct,Ri,直接给出操作数地址的方式20H直接寻址,ADD A,20H,SUB A,30H,寻址比较,MOV P1,
4、#20HMOV P1,20HMOV P1,R0MOV P1,R0,直接将20H这个数送P1口,地址是寄存器R0,地址在寄存器R0内,地址是内存20H,指出下列指令寻址方式,MOVP1,#0FFHMOVA,F0HPUSH12H,立即寻址,直接寻址,直接寻址,立即数寻址,直接寻址,寄存器寻址,寄存器间接寻址,变址寻址,相对寻址,位寻址,CPU,88H,20H,操作数,60H,寄存器,A,操作数,操作数,MOV P1,A,你能说出:带圈的圆弧箭头代表的是什么吗?,谁能说出:寄存器寻址与直接寻址的区别?,P1,MOV P1,R4,CLR A,立即数寻址,直接寻址,寄存器寻址,寄存器间接寻址,变址寻址,
5、相对寻址,位寻址,2,2,通过 间接找到 的地址“2号”!,“1号”,信,寄存器,操作数,寄存器,1,CPU,3AH,寄存器,R0,猜一猜:操作数的地址是多少吗?,内部RAM,3AH,我才是操作数,65H,MOV A,R0,A,寄存器间接寻址寄存器,MOVX A,DPTR,寻址比较,MOV P1,#20HMOV P1,20HMOV P1,R0MOV P1,R0,直接将20H这个数送P1口,地址是寄存器R0,地址在寄存器R0内,地址是内存20H,立即数寻址,直接寻址,寄存器寻址,寄存器间接寻址,变址寻址,相对寻址,位寻址,CPU,寄存器,3AH,3AH,程序存储区,65H,操作数,0302H,0
6、302H,88H,A,DPTRPC,MOVC A,A+DPTR,A,MOVC A,A+PC,立即数寻址,直接寻址,寄存器寻址,寄存器间接寻址,变址寻址,相对寻址,位寻址,0000H,0001H,0002H,2002H,2003H,2004H,2005H,2006H,PC,PC,PC,PC,PC,PC,如果想跳到2006H执行,该给PC值加上多少呢?,2006H,2003H,03H,03H就是当前PC值与目的PC值相对差,SJMP,03H,(PC+03H),SJMP,=2003H+03H=2006H,操作数哪去了?,03就是操作数,立即数寻址,直接寻址,寄存器寻址,寄存器间接寻址,变址寻址,相对
7、寻址,位寻址,20H,21H,0,0,0,0,0,0,0,0,1,想一想:如果想使27H单元的D5位置1,该怎么办呢?,位寻址地址表,立即数寻址,直接寻址,寄存器寻址,寄存器间接寻址,变址寻址,相对寻址,位寻址,SETB 3DH,20H,21H,0,0,0,0,0,0,0,0,1,MCS-51单片机指令系统分类介绍,MCS-51单片机指令系统共有111条指令,按功能分类,可分下面5大类:数据传送类(29条)算数操作类(24条)逻辑运算类(24条)控制转移类(17条)位操作类(17条)常用伪指令(17条),指令中一些符号的约定意义,目的地址 源地址,数 据,MOV,MOV A,#20H,,,MO
8、V,20H,A,3.4.1 数据传送指令(29条)8位数据传送指令(15条),3.4.1 数据传送指令(29条)16位数据传送指令(1条),MOV DPTR,#data16,外部数据传送指令(4条),MOVX,,,MOVX,谁知道内RAM中30H中数据外RAM的1001H中?,MOV A,30H,MOV DPTR,#1001H,MOVX DPTR,A,片内传送MOV,在A累加器、工作寄存器R0R7、片内RAM与SFR(direct、Ri)之间传送数据。,单片机与片外RAM之间的数据传送(取数/送数)MOVX,在片外RAM(或外扩I/O口)与A累加器之间传送。仅采用寄存器间接寻址方式。,当采用D
9、PTR做间接寻址,则可寻址整个64K片外RAM,高8位地址(DPH)由P2口输出,低8位地址(DPL)由P0口输出。采用Ri(i=0,1)作间接寻址,可寻址片外256个单元RAM,8位地址和数据均由P0口输出,可选其他任何输出口线来输出高于8位的地址,一般选用P2口输出高8位的地址。,单片机与ROM之间的数据传送(查表)MOVC,读取存放在程序存储器ROM中的数据,通常是以表格形式存放。采用变址寻址方式。MOVCA,A+DPTRMOVCA,A+PCAROM,例如:(A)=30H,执行1000H处的指令1000H:MOVC A,A+PC本指令占用1个单元,下条指令地址为1001H,(PC)=10
10、01H,再加上A种的30H,得1031H,结果将ROM种的1031H的内容送入A。,单片机与ROM之间的数据传送(查表)MOVC,优点:不改变特殊功能寄存器及PC的状态,根据A的内容就可以取出表格中的常数。缺点:表格只能存放在该条查表指令后面的256个单元之内,表格的大小受到限制,且表格只能被一段程序所利用。,单片机与ROM之间的数据传送(查表)MOVC,MOVCA,A+PC,例如:(DPTR)=8100H,(A)=40H执行指令MOVC A,A+DPTR结果将 ROM 中 8140H 单元内容送入累加器A。,单片机与ROM之间的数据传送(查表)MOVC,以DPTR作为基址寄存器,A的内容作为
11、无符号整数和DPTR的内容相加得到一个16位的地址,把由该地址指出的程序存储器单元的内容送到累加器A。例如:MOVC A,A+DPTR 本指令的执行结果只和指针DPTR及累加器A的内容有关,与该指令存放的地址及常数表格存放的地址无关。表格的大小和位置可以在64K程序存储器中任意安排,一个表格可以为各个程序块公用。,MOVCA,A+DPTR,例:从程序存储器2000H单元开始存放09的平方值,以DPTR作为基址寄存器进行查表得的平方值,若用以DPTR作为基址寄存器的查表指令.程序如下:MOV DPTR,#2000HMOV A,#09HMOVC A,A+DPTR,1)字节交换指令(3条),交换类指
12、令(3条),A,F5,81,内部RAM,2)低半字节交换指令(1条),XCHDA,Ri 这里假设i=0,3)累加器A中高4位和低4位交换指令(1条),SWAP A,PUSH direct,POP direct,PUSH 33H,PUSH 34H,堆栈操作指令(2条),POP 36H,POP 35H,.,堆栈原则:后进先出,数据缓冲堆栈区,堆栈指针 SP,SP 内是存放的是堆栈栈顶的地址,堆栈原则:后进先出,PUSH direct,POP direct,PUSH 33H,PUSH 34H,堆栈原则:后进先出,复位后SP=07H,PUSH direct,POP direct,POP 36H,POP
13、 35H,堆栈原则:后进先出,复位后SP=07H,传送类指令分类,单片机内部数据传送指令:MOVXCHXCHDSWAPPUSHPOP读写单片机外部RAM数据的传送指令:MOVX单片机ROM的数据传送指令:MOVC,MOVX 和MOVC 以A作中介,为便于理解记忆指令,对数据传送类指令再作如下分类:,direct,3.4.2算术运算类指令(24条)加法指令(8条),A,,Rn,Ri,#data,ADD,direct,A,,Rn,Ri,#data,ADDC,减法指令(4条),direct,A,,Rn,Ri,#data,SUBB,ADDC A,B(A+B+CYA),SUBB A,B(A B CYA)
14、,3.4.2 算术操作类指令(24条),加法指令(8条),0011,0110,1010,1101+1010,1100,1101,1100 1110,0011,1000,1001,1010,1101+1101,1100 1000,1001,MOV A,#0ADHADD A,#0DCHMOV 20H,AMOV A,#36HADDC A,#0ACHMOV 21H,A,BCD码:0011 0100,BCD码调整指令(1条),DA A,注意:DA A指令只能跟在ADD或ADDC加法指令后,不适用于减法指令。,0001 1000,0001 0110,BCD码,0010 1110,差6,BCD码调整指令,B
15、CD码也叫8421码,就是将十进制的数以8421的形式展开成二进制,大家知道十进制是09十个数组成,这十个数每个数都有自己的8421码:举个例子:321的8421码就是 3 2 1 0011 0010 0001 原因:0011=8x0+4x0+2x1+1x1=3 0010=8x0+4x0+2x1+1x0=2.0001=8x0+4x0+2x0+1x1=1,BCD码调整指令,DAA,该指令有何用途呢?,注意:DA A 指令只能跟在进行BCD码运算的ADD或ADDC加法指令后,不适用与减法指令。,BCD码调整指令,例如:87+13,加1减1指令,程序状态字寄存器PSW(Program Status
16、Word)(1)Cy(PSW.7)进位标志位,或写为C,有进位或借位时硬件置1。(2)Ac(PSW.6)辅助进位标志位,用于BCD码的十 进制调整运算。当低4位向高4位数发生进位或借位时,AC被硬件置位,否则被清0。(3)F0(PSW.5)用户自定义标志位。可用软件使它置1或清0,也可由软件来测试标志F0以控制程序的流向。编程时,该标志很有用。,D0H,D7 D6 D5 D4 D3 D2 D1 D0,PSW,表 2.3 RS1、RS0与片内工作寄存器组的对应关系,(4)RS1、RS0(PSW.4、PSW.3):4组工作寄存器区选择控制位1和位0。,D0H,D7 D6 D5 D4 D3 D2 D
17、1 D0,PSW,RAM共256个单元中低128个单元,(5)OV(PSW.2):溢出标志位 指示运算是否产生溢出。各种算术运算指令对该位的影响情况较复杂,将在第3章介绍。(6)PSW.1位:保留位,未用(7)P(PSW.0):奇偶标志位,每个指令周期都由硬件置位或清除.P=1,A中“1”的个数为奇数P=0,A中“1”的个数为偶数注:奇偶标志位对串行口通讯中的数据传输有重要意义,常用奇偶检验的方法来检验数据传输的可靠性。,D0H,D7 D6 D5 D4 D3 D2 D1 D0,PSW,A中存放结果的低8位B中存放结果的高8位,乘法指令(1条),除法指令(1条),MULAB,DIVAB,A中存放
18、结果的商B中存放结果的余数,A中存放结果的低8位B中存放结果的高8位,乘法指令(1条),MULAB,例如:MOV A,#02HMOV B,#03HMUL AB,A=06HB=00H,乘法指令(1条),MULAB,例如:MOV A,#20MOV B,#20MUL AB,20=14HA=90HB=01H,20*20=40020=14H400=0190H,提示:,除法指令(1条),DIVAB,A中存放结果的商B中存放结果的余数,例如:MOV A,#25MOV B,#03DIV AB,A=08HB=01H,3.4.3 逻辑运算指令,逻辑与指令(6条),逻辑与指令常用于屏蔽字节中的某些位。若清除某位,则
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机原理及应用PPT教学课件第3章 MCS51单片机指令系统 单片机 原理 应用 PPT 教学 课件 MCS51 指令系统
链接地址:https://www.31ppt.com/p-2974232.html