单片机第二章精选PPT.ppt
《单片机第二章精选PPT.ppt》由会员分享,可在线阅读,更多相关《单片机第二章精选PPT.ppt(53页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、单片机第二章单片机第二章第1页,此课件共53页哦 单片机指令系统概述一、一、MCS-51MCS-51指令分类指令分类 MCS-51MCS-51单片机共有单片机共有11111 1条指令。条指令。1 1按指令所占的字节数分类按指令所占的字节数分类 单字节指令单字节指令4949条条 双字节指令双字节指令4646条条 三字节指令三字节指令1616条条 每条指令的平均字节数:每条指令的平均字节数:第2页,此课件共53页哦2 2按指令执行时间长短分按指令执行时间长短分 单周期指令65条 双周期指令44条 四周期指令2条 每条平均执行时间:第3页,此课件共53页哦2-1 指令格式一一一一.汇编语言指令格式汇
2、编语言指令格式汇编语言指令格式汇编语言指令格式 标号:标号:操作码操作码 操作数操作数1 1,操作数,操作数22;注释;注释 换行表示一条指令结束。换行表示一条指令结束。例:例:LOOPLOOP:MOV A MOV A,#40H#40H;取参数取参数1.1.标号:标号:指令的符号地址指令的符号地址2.2.操作码:操作码:指明指令功能。指明指令功能。3.3.操作数:操作数:指令操作对象指令操作对象数据、地址、寄存器名及约定符号。数据、地址、寄存器名及约定符号。4.4.注释行:注释行:说明指令在程序中的作用。说明指令在程序中的作用。操作码和操作数操作码和操作数是指令主体。是指令主体。第4页,此课件
3、共53页哦MOV _move传送传送XCH _exchange交换交换ANL _and logic与逻辑运算与逻辑运算XRL _exclusive or异或运算异或运算MUL _Multiply乘法乘法RR _rotate right右循环右循环SJMP _short jump短跳转短跳转RET _return 子程序返回子程序返回第5页,此课件共53页哦二.机器语言指令格式操作码操作码 操作数操作数1 1 操作数操作数22有单字节、双字节和三字节指令。有单字节、双字节和三字节指令。汇编语言指令中操作码和操作数是指令主体,称为指令可执行部分,汇编语言指令中操作码和操作数是指令主体,称为指令可执
4、行部分,指令表中可查出对应指令代码。指令表中可查出对应指令代码。举例:举例:汇编语言:汇编语言:机器语言:机器语言:MOV AMOV A,R0R0E8HE8HMOV R6MOV R6,#32H#32H7E 32H7E 32HMOV 40HMOV 40H,#100#10075 40 64H75 40 64H111010000111111000110010011101010100000001100100第6页,此课件共53页哦2-2 指令寻址方式2-2-12-2-12-2-12-2-1 操作数类型操作数类型操作数类型操作数类型位位(b)b)位寻址区中的一位二进制数据位寻址区中的一位二进制数据字节字
5、节(B)8B)8位二进制数据位二进制数据字字(W)16W)16位双字节数据位双字节数据2-2-2 2-2-2 2-2-2 2-2-2 寻址方式寻址方式寻址方式寻址方式一一.立即寻址方式立即寻址方式 指令中给出实际操作数据指令中给出实际操作数据(立即数立即数),一般用于为寄存器或存,一般用于为寄存器或存储器赋常数初值。储器赋常数初值。举例:举例:8 8位立即数:位立即数:MOV AMOV A,#40H#40H ;A A40H40H 16 16位立即数:位立即数:MOV DPTRMOV DPTR,#2100H#2100H;DPTRDPTR2100H2100H第7页,此课件共53页哦二.直接寻址方式
6、指令操作数是存储器单元地址,数据在存储器单元中。指令操作数是存储器单元地址,数据在存储器单元中。MOV AMOV A,40H40H;A A(40H)(40H)直接寻址方式对数据操作时,地址是固定直接寻址方式对数据操作时,地址是固定值,而地址所指定的单元内容为变量形式。值,而地址所指定的单元内容为变量形式。41H 78H40H 56H56H 例:例:设存储器两个单元的内容如图所示,设存储器两个单元的内容如图所示,执行指令执行指令 MOV AMOV A,40H40H后后 A=A=?思考题:思考题:直接寻址方式指令和立即寻址方式指令的形式有什么直接寻址方式指令和立即寻址方式指令的形式有什么不同?不同
7、?第8页,此课件共53页哦三三.寄存器寻址方式寄存器寻址方式指令操作数为寄存器名,数据在寄存器中。例:MOV A,R0;AR0设指令执行前 A=20H,R0=40H,执行指令后,A=?,R0=?四四.寄存器间接寻址方式寄存器间接寻址方式 指令的操作数为寄存器名,寄存器中为数据地址。指令的操作数为寄存器名,寄存器中为数据地址。存放地址的寄存器称为间址寄存器或数据指针。存放地址的寄存器称为间址寄存器或数据指针。例例:MOV AMOV A,R0R0;A A(R0)(R0)设指令执行前设指令执行前 A=20HA=20H,R0=40HR0=40H,地址为地址为4040H H存储器单元内容如图存储器单元内
8、容如图所示。执行指令后,所示。执行指令后,A=A=?,R0=,R0=?,(40H)=,(40H)=?41H 67H 40H 34H34H40H34H40H40H0100 0000A0010 0000R00100 0000R0第9页,此课件共53页哦五.变址间接寻址方式数据在存储器中,指令给出的寄存器中为数据的基地址和偏移量。数据地址=基地址+偏移量。例:例:MOVC AMOVC A,A+DPTRA+DPTR;A A(A+DPTR)(A+DPTR)设指令执行前设指令执行前 A=09HA=09H,DPTR=2000HDPTR=2000H,存储器单元内容如图所示。执存储器单元内容如图所示。执行指令后
9、,行指令后,A=A=?DPTR=DPTR=?12H2000H六六.位寻址方式位寻址方式 指令给出位地址。一位数据在存储器位寻址区。指令给出位地址。一位数据在存储器位寻址区。例:例:MOV CMOV C,40H40H;CyCy(位地址位地址4040H)H)设指令执行前设指令执行前 Cy=1Cy=1,位地址位地址4040H H存储器单元如图,存储器单元如图,执行指令后,执行指令后,Cy=Cy=?28H 0110001029H 11010111位寻址区02008H 89H2009H 12H第10页,此课件共53页哦2-42-4MCS-51MCS-51指令系统分析指令系统分析指令功能分类:指令功能分类
10、:数据传送、数据操作、布尔处理、程序控制。数据传送、数据操作、布尔处理、程序控制。2-4-1 2-4-1 数据传送指令数据传送指令实现寄存器、存储器之间的数据传送。实现寄存器、存储器之间的数据传送。一一.内部传送指令:内部传送指令:片内数据存储器数据传送。片内数据存储器数据传送。二二.外部传送指令外部传送指令:片外数据存储器数据传送。片外数据存储器数据传送。三三.交换指令:交换指令:片内数据存储器数据传送。片内数据存储器数据传送。四四.堆栈操作指令:堆栈操作指令:片内数据存储器数据传送。片内数据存储器数据传送。五五.查表指令:查表指令:程序存储器数据传送。程序存储器数据传送。第11页,此课件共
11、53页哦(一)内部传送指令:实现片内数据存储器中数据传送。指令格式:MOV 目的操作数,源操作数 寻址方式:立即寻址、直接寻址、寄存器寻址、寄存器间址。习题习题1 1:找出配对指令,实现反向传送。找出配对指令,实现反向传送。指令机器码:指令机器码:1110111101rrr rrr E8E8EFEF11100101 n 11100101 n E5E5 n n1110011i 1110011i E6E6、E7E7 01110100 01110100 d d 74 d74 d 10101rrr n10101rrr n 1010011i n 1010011i n 85 n1 n2 85 n1 n2
12、90 90 d1 d2d1 d2MOV A,Rn ;ARn,Rn=R0R7 MOV A,n ;A(n),MOV A,Ri;A(Ri),Ri=R0、R1 MOV A,#d ;Ad,MOV Rn,n ;Rn(n)MOV Ri,n ;(Ri)(n)MOV n1,n2;(n1)(n2)MOV DPTR,#d1d2;DPTRd1d2第12页,此课件共53页哦例2-4-1:顺序执行下列指令序列,求每一步执行结果。MOV AMOV A,#30H#30HMOV 4FHMOV 4FH,A AMOV R0MOV R0,#20H#20HMOV R0MOV R0,4FH4FHMOV 21HMOV 21H,20H20H
13、例:例:用两种寻址方式实现,将片内用两种寻址方式实现,将片内RAM RAM 6060H H单元的数据传送给累加单元的数据传送给累加器器A A。解解1 1:MOV A,#60H MOV A,#60H?解解2 2:MOV R0MOV R0,#60H#60H MOV A MOV A,R0R0;A=30HA=30H;(4FH)=30H(4FH)=30H;R0=20HR0=20H;(20H)=30H(20H)=30H;(21H)=30H(21H)=30H解解2 2:MOV R0MOV R0,60H 60H?MOV A MOV A,R0R0解解1 1:MOV A,60HMOV A,60H第13页,此课件共
14、53页哦说明:只有指令表中的指令才有对应指令代码,计算机才 能执行。编程时,不能随意“创造发明”指令。1.一条指令中不能同时出现两个工作寄存器:非法指令:MOV R1,R2MOV R2,R02.间址寄存器只能使用 R0、R1。非法指令:MOV A,R23.SFR区只能直接寻址,不能用寄存器间接寻址。非法指令:MOV R0,#80HMOV A,R04.指令表:B:指令字节数,M:机器周期数第14页,此课件共53页哦(二)外部传送指令实现片外数据存储器和A累加器之间的数据传送。指令格式:指令格式:MOVXMOVX 目的目的操作数,操作数,源源操作数操作数寻址方式:片外数据存储器用寄存器间址方式。寻
15、址方式:片外数据存储器用寄存器间址方式。1.1.DPTRDPTR作作1616位数据指针,寻址位数据指针,寻址6464KBKB片外片外RAMRAM空间空间MOVX AMOVX A,DPTRDPTR;A(DPTR)A(DPTR)MOVX DPTRMOVX DPTR,A A;(DPTR)A(DPTR)A2.2.RiRi作作8 8位数据指针,寻址位数据指针,寻址256256B B片外片外RAMRAM空间空间MOVXMOVXA A,RiRi;A(Ri)A(Ri)MOVXMOVXRiRi,A A;(Ri)A(Ri)A第15页,此课件共53页哦例2-4-2:实现片外数据存储器数据传送(2000H)(2100
16、H)。MOV DPTRMOV DPTR,#2000H#2000HMOVX AMOVX A,DPTRDPTRMOV DPTRMOV DPTR,#2100H#2100HMOVX DPTRMOVX DPTR,A A习题习题3:将片外将片外RAM 0000HRAM 0000H单元的数据传送到片内单元的数据传送到片内RAMRAM的的6060H H单元单元。;DPTR=2000HDPTR=2000H;A=X A=X;DPTR=2100H DPTR=2100H;(2100H)=X(2100H)=X片外数据存储器不能直接寻址。片外数据存储器不能直接寻址。下列为下列为非法非法指令:指令:MOVX AMOVX A
17、,2000H 2000H MOVX 2100H MOVX 2100H,2000H2000H思考题:思考题:为什么对为什么对DPTRDPTR的数据传送使用内部传送指令?的数据传送使用内部传送指令?第16页,此课件共53页哦(三)(三)交换指令交换指令 实现片内RAM区的数据双向传送。1.1.字节交换指令字节交换指令XCH AXCH A,Rn Rn;A A Rn RnXCH AXCH A,RiRi;A A(Ri)(Ri)XCH AXCH A,n n ;A A(n)(n)习题习题4 4:将片内将片内RAMRAM6060H H单元与单元与6161H H单元的数据交换。单元的数据交换。例:例:设设A=2
18、9HA=29H,执行指令执行指令 XCH AXCH A,2AH2AH后,后,A=A=?(2AH)=(2AH)=?38H29HXCH 60HXCH 60H,61H 61H 对吗?对吗?29 H第17页,此课件共53页哦2.半字节交换指令XCHD XCHD A A,Ri Ri;A A0 03 3 (Ri)(Ri)0 03 3 SWAP SWAP A A ;A A4 47 7 A A0 03 3例例2-4-32-4-3:将片内将片内RAM RAM 2 2AHAH和和2 2BHBH单元中的单元中的ASCIIASCII码转换成压缩式码转换成压缩式BCDBCD码存入码存入2020H H单元。单元。交换片内
19、交换片内RAM RAM 4040H H单元和单元和 41 41H H单元的低半字节。单元的低半字节。第18页,此课件共53页哦(四)堆栈操作指令 入栈指令:PUSH n ;SPSP+1,(SP)(n)出栈指令:POP n ;(n)(SP),SPSP-1例例:设设 A=02A=02,B=56HB=56H,执执行行下下列列指指令令后后,SP=SP=?,A=A=?,B=?B=?SPSP SP 02 SP 56H 02 02HA00H02H00H02H02HSBRSBR:MOV SP MOV SP,#30H#30H;设栈底;设栈底 PUSH APUSH A PUSH B PUSH B MOV A MO
20、V A,#0#0 MOV MOV B B,#01#01 POP POP B B POP A POP A SP 56H 02 SP 56H 02 56H SP 02 56H 02HSP 第19页,此课件共53页哦 (五)查表指令 实现从程序存储器读取数据到A累加器,只能使用变址间接寻址方式。多用于查常数表程序,可直接求取常数表中的函数值。1 1DPTRDPTR为基址寄存器为基址寄存器MOVCMOVCA A,A+DPTR A+DPTR;A A(A+DPTR)(A+DPTR)查表范围为查表范围为 64 64KB KB 程序存储器任意空间,称为远程查表指令程序存储器任意空间,称为远程查表指令 。2 2
21、PCPC为基址寄存器为基址寄存器MOVCMOVCA A,A+PCA+PC;A A(A+PC)(A+PC)常数表只能在查表指令后常数表只能在查表指令后256256B B范围内。范围内。第20页,此课件共53页哦例:查表法求Y=X2。设X(0X15)在片内RAM的20H单元中,要求将查表求Y,存入片内RAM21H单元。1 1)ORG 1000HORG 1000HSQU:SQU:MOV DPTRMOV DPTR,#TAB#TAB;确定表首地址(基地址);确定表首地址(基地址)MOV AMOV A,20H20H;取取X X(偏移量)偏移量)MOVC AMOVC A,A+DPTRA+DPTR;查表求查表
22、求Y=XY=X2 2MOV 21HMOV 21H,A A;保存保存Y YRETRET;子程序结束子程序结束;其它程序段;其它程序段ORG 3000HORG 3000H;常数表格首地址常数表格首地址TAB:TAB:DB 00DB 00,0101,0404,0909,225225;平方表平方表第21页,此课件共53页哦2 2)指令地址指令地址 源程序源程序 ORG 1000HORG 1000H ;程序起始地址程序起始地址 1000 1000H H SQU:SQU:MOV A MOV A,20H20H;取取X X 1002H 1002H ADD A ADD A,#3#3 ;修正偏移量修正偏移量 10
23、04 1004H H MOVC AMOVC A,A+PCA+PC ;查表求查表求Y=XY=X2 2 1005H 1005H MOV 21H MOV 21H,A A;存结果存结果 1007 1007H H RET RET ;子程序结束子程序结束 1008 1008H H TAB:TAB:DB 00 DB 00,0101,04 04;平方表平方表 100100BHBH DB 09 DB 09,225 225 思考题:思考题:当当00X255X255时,如何用查表法编程求时,如何用查表法编程求Y=XY=X2 2。例:查表法求Y=X2。设X(0X15)在片内RAM的20H单元中,要求将查表求Y,存入片
24、内RAM21H单元。第22页,此课件共53页哦习题:找出指令错误并改正:1 1MOV AMOV A,#1000H#1000H;A1000HA1000H2 2MOVX AMOVX A,1000H1000H;A(1000H)A(1000H)片外片外RAM3 3MOVC AMOVC A,1000H1000H;A(1000H)A(1000H)片外片外ROM4 4MOVX 60HMOVX 60H,A A;片外片外RAM(60H)ARAM(60H)A5 5MOV R0MOV R0,60H60H;片内片内RAMRAM:(61H)(60H)(61H)(60H)MOV 61H MOV 61H,R0R06.6.X
25、CH R1 XCH R1,R2R2;R1R2R1R27.7.MOVX DPTR MOVX DPTR,#2000H#2000H;DPTR2000HDPTR2000H8.8.MOVX 60H MOVX 60H,DPTRDPTR;片内片内RAMRAM片外片外RAMRAM第23页,此课件共53页哦2-4-2算术运算指令与数据传送指令不同,多数算术运算指令会影响标志位与数据传送指令不同,多数算术运算指令会影响标志位的状态,即的状态,即CPUCPU执行算术运算指令后,根据数据操作情况自执行算术运算指令后,根据数据操作情况自动设置标志位的状态。动设置标志位的状态。2-3 2-3 状态标志状态标志 MCS-5
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 第二 精选 PPT
限制150内