单元三MCS51单片机指令系统.ppt
《单元三MCS51单片机指令系统.ppt》由会员分享,可在线阅读,更多相关《单元三MCS51单片机指令系统.ppt(105页珍藏版)》请在三一办公上搜索。
1、单元三 MCS-51单片机指令系统,3.1 任务二 P1口外接8只发光二极管模拟彩灯,3.2 任务三 单片机做加、减、乘、除运算,3.3 任务四 单片机做逻辑运算,3.4 任务五 按键控制灯,3.5 任务六 LED显示电路,返回主目录,3.1 任务二 P1口外接8只LED发光二极管模拟彩灯,学习目标:通过学习任务二的完成方法,掌握MCS-51单片机的数据传送指令的功能及MCS-51单片机的寻址方式。任务描述:利用P1口外接的8只LED发光二极管模拟彩灯。常见的彩灯模式有:流水式彩灯、追逐式彩灯、累积式彩灯、开幕式与闭幕式彩灯以及将上述模式组合而成的复合式彩灯。大多数的彩灯都是采用单片机控制的,
2、简单的彩灯单片机的控制程序也较为简单,复杂的彩灯单片机控制程序也较为复杂。,3.1.1 硬件电路,1、硬件电路,2、工作原理 当P1。0P1。7中的某端口为低电平时,对应的发光二极管亮,为高电平灭。我们只要控制P1口各位的电平状态,就可以控制8只LED的亮与灭。例如使(P1)=01010101B=55H,D7、D5、D3、D14只LED亮,D6、D4、D2、D04只LED灭,从效果上看亮与灭是相间隔的;反之,使(P1)=10101010B=AAH,则另外4只LED亮,若反复以一定时间间隔不断从P1口轮流输出55H和AAH,则P1口上8只LED会呈现流水彩灯的效果。,1)将立即数送P1口的程序O
3、RG 0000H;定义程序从程序存贮器0000H单元开始存放LOOP:MOV P1,#55H;立即数55H送P1口,4只LED亮SJMP LOOP;原地踏步END;程序结束2)通过累加器A控制P1口的程序ORG 0000HLOOP:MOV A,#0AAH;将立即数AAH送累加器AMOV P1,A;累加器A中的数送P1端口SJMP LOOP;转移到LOOPEND,3.1.2 控制程序,3)流水式彩灯程序,ORG 0000H LOOP:MOV P1,#55H;将立即数55H送P1端口LCALL TIME;调延时子程序TIMEMOV P1,#0AAH;将立即数AAH送P1端口LCALL TIME;调
4、延时子程序TIMESJMP LOOP;转移到LOOPTIME:MOV R6,#200;延时子程序TIMETIME1:MOV R7,#200 TIME2:NOPNOPNOPDJNZ R7,TIME2DJNZ R6,TIME1RETEND,4)开幕式与闭幕式彩灯程序,ORG0000HLJMPMAIN;跳转到主程序ORG0030HMAIN:MOVR0,#8;R0送循环次数8MOVDPTR,#TAB;给数据指针赋值LOOP:MOVA,#00H;MOVCA,A+DPTRMOVP1,ALCALLTIMEINCDPLDJNZR0,LOOPSJMPMAINTIME:MOV R6,#200TIME1:MOV R
5、7,#200TIME2:NOPNOPNOPDJNZ R7,TIME2DJNZ R6,TIME1RETTAB:DB 81H,0C3H,0E7H,0FFH,18H,3CH,7EH,0FFHEND,用“伟福”模拟仿真软件进行程序的编辑、编译。打开“ISP下载软件”将目标文件下载到ISP-4实验开发板上的AT89S51单片机芯片,观察程序运行结果。要解决的问题:1、什么是数据传送操作与数据传送指令?MCS-51单片机 有哪些数据传递指令?2、什么是指令的寻址方式?MCS-51单片机指令系统采 用了哪几种寻址方式?3、指令在CPU内部的执行过程?,3.1.3 源程序的编辑、编译、下载,3.1.4 相关知
6、识,1.单片机内部数据是怎样传送到端口使二极管发亮的?单片机内部的端口寄存器与片外引脚是直接相连的,数据通过单片机内部数据总线传送到端口寄存器(用数据传送指令完成数据的传送),结合发光二极管硬件电路,二极管便发亮了。2.什么是数据传送操作与数据传送指令?MCS-51单片机有哪些数据传递指令?数据传送操作:在计算机中将数据信息从源存储地址传送到目标存储地址的操作 数据传送指令:完成数据传送的指令,MCS-51单片机的数据传送指令共有29条:,(1)以累加器A为目的操作数类指令(4条)MOV A,data;(data)(A)直接单元地址中的内容 送到累加器A MOV A,#data;#data(A
7、)立即数送到累加器A中 MOV A,Rn;(Rn)(A)Rn中的内容送到累加器A 中 MOV A,Ri;(Ri)(A)Ri内容指向的地址单 元中的内容送到累加器A。例如:任务中“累加器A控制P1口的程序”里有一条MOV A,#0AAH指令就属于此类。,(2)以寄存器Rn为目的操作数的指令(3条)这3条指令的功能是把源操作数指定的内容送到所选定的工作寄存器Rn中。有直接、立即和寄存器寻址方式:MOV Rn,data;(data)(Rn)直接寻址单元中的内容送到 寄存器Rn中MOV Rn,#data;#data(Rn)立即数直接送到寄存器Rn中。MOV Rn,A;(A)(Rn)累加器A中的内容送到
8、寄存器 Rn中。例如:任务中“开幕式和闭幕式彩灯程序”里的 MOV R6,#200 MOV R7,#200 指令属于此类。,(3)以直接地址为目的操作数的指令(5条)这组指令的功能是把源操作数指定的内容送到由直接地址data所选定的片内RAM中 MOV data,data;(data)(data)直接地址单元中的内容送到直接地址单元。MOV data,#data;#data(data)立即数送到直接地址单元。,MOV data,A;(A)(data)累加器A中的内容送到直接地址单元。MOV data,Rn;(Rn)(data)寄存器Rn中的内容送到直接地址单元。MOV data,Ri;(Ri)
9、(data)寄存器Ri中的内容指定的地址单元中数据送到直接地址单元。例如:任务中“流水式彩灯程序”里的 MOV P1,#0AAH。任务中“开幕式和闭幕式彩灯程序”里MOVP1,A指令属于此类。应该注意,这里DATA是用寄存器的名字表示的。,(4)以间接地址为目的操作数的指令(3条)这组指令的功能是把源操作数指定的内容送到以Ri中的内容为地址的片内RAM中。MOV Ri,data;(data)(Ri)直接地址单元中的内容送到以Ri中的内容为地址的RAM单元。MOV Ri,#data;#data(Ri)立即数送到以Ri中的内容为地址的RAM单元。MOV Ri,A;(A)(Ri)累加器A中的内容送到
10、以Ri中的内容为地址的RAM单元。,(5)查表指令(2条)这组指令的功能是对存放于程序存储器中的数据表格进行查找传送,使用变址寻址方式:MOVC A,A+DPTR;(A)+(DPTR)(A)表格地址单元中的内容送到累加器A中。MOVC A,A+PC;(PC)+1(A),(A)+(PC)(A)表格地址单元中的内容送到累加器A中。例如:在任务中“开幕式闭幕式彩灯程序”里就有 MOVCA,A+DPTR 指令讲预先制好的表格数据取出来。,(6)累加器A与片外数据存储器RAM传送指令(4条)这4条指令的作用是累加器A与片外RAM间的数据传送。使用寄存器寻址方式:MOVX DPTR,A;(A)(DPTR)
11、累加器中的内容送到数据指针指向片外RAM地址中。MOVX A,DPTR;(DPTR)(A)数据指针指向片外RAM地址中的内容送到累加器A中。MOVX A,Ri;(Ri)(A)寄存器Ri指向片外RAM地址中的内容送到累加器A中。MOVX Ri,A;(A)(Ri)累加器中的内容送到寄存器Ri指向片外RAM地址中。,(7)堆栈操作类指令(2条),这4类指令的作用是把直接寻址单元的内容传送到堆栈指针SP所指的单元中,以及把SP所指单元的内容送到直接寻址单元中。PUSH data;(SP)+1(SP),(data)(SP)堆栈指针首先加1,直接寻址单元中的数据送到堆栈指针SP所指的单元中。POP dat
12、a;(SP)(data)(SP)-1(SP),堆栈指针SP所指的单元数据送到直接寻址单元中,堆栈指针SP再进行减1操作。,(8)交换指令(5条)这5条指令的功能是把累加器A中的内容与源操作数所指的数据相互交换。XCH A,Rn;(A)(Rn)累加器与工作寄存器Rn中的内容互换。XCH A,Ri;(A)(Ri)累加器与工作寄存器Ri所指的存储单元中的内容互换。XCH A,data;(A)(data)累加器与直接地址单元中的内容互换。XCHD A,Ri;(A3-0)(Ri)3-0)累加器与工作寄存器Ri所指的存储单元中的内容低半字节互换。SWAP A;(A3-0)(A7-4)累加器中的内容高低半字
13、节互换。,(9)16位数据传送指令(1条)这条指令的功能是把16位常数送入数据指针寄存器。MOV DPTR,#data16;(data16)H(DPH);(data16)L(DPL)。16位常数的高8位送到DPH,低8位送到DPL。3、什么是指令的寻址方式?MCS-51单片机指令系统采用了哪几种寻址方式?寻址的“地址”即为操作数所在单元的地址,绝大部分指令执行时都需要用到操作数,那么到哪里去取得操作数呢?最易想到的就是告诉CPU操作数所在的地址单元,从那里可取得响应的操作数,这便是“寻址”之意。,操作数是指令的重要组成部分,指出了参与操作的数据或数据的地址。寻找操作数地址的方式称为寻址方式。一
14、条指令采用什么样的寻址方式,是由指令的功能决定的。寻址方式越多,指令功能就越强。MCS-51指令系统共使用了7种寻址方式,包括寄存器寻址、直接寻址、立即数寻址、寄存器间接寻址、变址寻址、相对寻址和位寻址。,直接寻址是指把存放操作数的内存单元的地址直接写在指令中。在MCS-51单片机中,可以直接寻址的存储器主要有内部RAM区和特殊功能寄存器SFR区。例如指令:MOV A,2BH 执行的操作是将内部RAM 中地址为3AH的单元内容传送到累加器A中,其操作数3AH就是存放数据的单元地址,因此该指令是直接寻址。设内部RAM 3AH单元的内容是88H,那么指令MOV A,2BH的执行过程如立即数寻址示意
15、图所示。,(1)直接寻址,直接寻址示意图,寄存器寻址是指将操作数存放于寄存器中,寄存器包括工作寄存器R0R7、累加器A、通用寄存器B、地址寄存器DPTR等。例如指令:MOV R1,A 的操作是把累加器A中的数据传送到寄存器R1中,其操作数存放在累加器A中,所以寻址方式为寄存器寻址。如果程序状态寄存器PSW的RS1RS0=10(选中第二组工作寄存器,对应地址为10H17H),设累加器A的内容为4AH,则执行MOV R1,A 指令后,内部RAM 11H单元的值就变为4AH,如寄存器寻址示意图所示。,(2)寄存器寻址,寄存器寻址示意图,(3)寄存器间接寻址寄存器间接寻址是指将存放操作数的内存单元的地
16、址放在寄存器中,指令中只给出该寄存器。执行指令时,首先根据寄存器的内容,找到所需要的操作数地址,再由该地址找到操作数并完成相应操作。在MCS-51指令系统中,用于寄存器间接寻址的寄存器有R0、R1和DPTR,称为寄存器间接寻址寄存器。注意:间接寻址寄存器前面必须加上符号“”。例如,指令MOV A,R0 执行的操作是将R0的内容作为内部RAM的地址,再将该地址单元中的内容取出来送到累加器A中。,设R0=3AH,内部RAM 3AH中的值是65H,则指令MOV A,R0的执行结果是累加器A的值为65H,该指令的执如右图。,寄存器间接寻址示意图,(4)立即数寻址立即数寻址是指将操作数直接写在指令中。例
17、如指令:MOV A,#2BH 执行的操作是将立即数3AH送到累加器A中,该指令就是立即数寻址。注意:立即数前面必须加“#”号,以区别立即数和直接地址。该指令的执行过程如立即数寻址示意图所示。,立即数寻址示意图,变址寻址是指将基址寄存器与变址寄存器的内容相加,结果作为操作数的地址。DPTR或PC是基址寄存器,累加器A是变址寄存器。该类寻址方式主要用于查表操作。例如,指令MOVC A,A+DPTR执行的操作是将累加器A和基址寄存器DPTR的内容相加,相加结果作为操作数存放的地址,再将操作数取出来送到累加器A中。,(5)变址寻址,(6)变址寻址过程,设累加器A=02H,DPTR=1110H,外部RO
18、M中,1112H单元的内容是AAH,则指令MOVC A,A+DPTR的执行结果是累加器A的内容为55H。该指令的执行过程如下图所示。,位寻址是指按位进行的寻址操作,MCS-51单片机中,操作数不仅可以按字节为单位进行操作,也可以按位进行操作。当我们把某一位作为操作数时,这个操作数的地址称为位地址。位寻址区包括专门安排在内部RAM中的两个区域:一是内部RAM的位寻址区,地址范围是20H2FH,共16个RAM单元,位地址为00H7FH;二是特殊功能寄存器SFR中有11个寄存器可以位寻址。,(7)位寻址,例如,指令SETB 3DH执行的操作是将内部RAM位寻址区中的3DH位置1。,设内部RAM 27
19、H单元的内容是00H,执行SETB 3DH后,由于3DH对应内部RAM 27H的第6位,因此该位变为1,也就是27H单元的内容变为20H。该指令的执行过程如图3.7所示。,相对寻址是指程序计数器PC的当前内容与指令中的操作数相加,其结果作为跳转指令的转移地址(也称目的地址)。该类寻址方式主要用于跳转指令。例如,指令SJMP 54H执行的操作是将PC当前的内容与54H相加,结果再送回PC中,成为下一条将要执行指令的地址。,(7)相对寻址,相对寻址过程,设指令SJMP 54H的机器码80H 54H存放在2000H处,当执行到该指令时,先从2000H和2001H单元取出指令,PC自动变为2002H;
20、再把PC的内容与操作数54H相加,形成目标地址2056H,再送回PC,使得程序跳转到2056H单元继续执行。该指令的执行过程如图所示。,指令的书写必须遵守一定的规则,指令描述的约定如下。,指令系统中的符号约定,#data16,4、指令在CPU内部的执行过程,指令是以二进制的形式存放在程序存储器中的,CPU执行指令的过程是不断的从程序存储器取指令,指令译码器对指令进行译码,并发出与指令相应的微操作信号,完成指令的执行。,MCS-51单片机取指时序,5、数据传送指令应用举例,【例3.1】在程序存储器中从而2000H单元开始依次存放置09的平方值:0、1、4、9、81,要求依据累加器A中的值(09)
21、来查找所对应的平方值,分析下述程序的结果。MOV DPTR,#2000HMOV A,#09HMOVC A,A+DPTR执行结果:(DPTR)=2000H,(A)=51H。,【例3.2】仍以上例程序存储器中 2000H单元开始存放09的平方值,以PC作为基址寄存器进行查表,设MOVC指令所在地址(PC)=1FF0F。解:偏移量=2000H(1FF0H+1)=0FH相应的程序如下:MOV A,#09HADD A,#0FHMOVC A,A+PC执行结果:(PC)=1FF1H,(A)=51H,【例3.3】若在程序存储器中2000H单元开始依次存放09的平方值,数据指针(DPTR)=3A00H,用查一指
22、令取出2003H单元的数据后,要求保持DPTR中的内容不变,完成以上功能的程序如下:MOV A,#03H;(A)03H PUSH DPH;保护DPTR高8位入栈 PUSH DPL;保护DPTR低8位入栈 MOV DPTR,#2000H;(DPTR)2000H MOVC A,A+DPTR;(A)(2000H+03H)POP DPL;弹出DPTR低8位 POP DPH;弹出DPTR高8位,(先进后出)执行结果:(A)=09H,(DPTR)=3A00H。,小结:1、MCS-51单片机指令系统有哪些数据传送指令?2、什么是指令的寻址方式?MCS-51单片机指令系统采用了哪几种寻址方式?3、指令在CPU
23、内部的执行过程,思考与练习:3.1 3.5,模拟彩灯实验实训项目 功能:8只LED模拟彩灯,形成流水、追逐等效果。要求:课外完成硬件制作、编程、仿真调试,3.2 任务三 单片机做加、减、乘、除运算,学习目标:通过学习任务三的完成方法,掌握MCS-51单片机的算术运算指令的功能及运算指令对程序状态字的影响。任务描述:利用单片机的算术运算指令进行加、减、乘、除运算,并将结果送P1口发光二极管显示。,3.2.1 硬件电路,1、硬件电路,2、工作原理利用P0口、P2口外接的拨动开关设制运算的数据,利用单片机的算术运算指令进行加、减、乘、除运算,并将结果送P1口发光二极管显示。,1)加法运算程序ORG
24、0000HMOV A,P0MOV R0,P2ADD A,R0MOV P1,ASJMP$END,2)减法运算程序 ORG 0000HMOV A,P0MOV R0,P2SUBB A,R0MOV P1,ASJMP$END,3.2.2 程序设计,4)除法运算程序 ORG 0000HMOV A,P0MOV B,P2DIV ABMOV P1,ASJMP$END,3)乘法运算程序 ORG 0000HMOV A,P0MOV B,P2MUL ABMOV P1,ASJMP$END,用“伟福”模拟仿真软件进行程序的编辑、编译。打开“ISP下载软件”将目标文件下载到ISP-4实验开发板上的AT89S51单片机芯片,观
25、察程序运行结果。要解决的问题:1、什么是算术运算指令?MCS-51单片机有哪些算术运 算指令?2、单片机运算的速度快吗?3、指令使用的区别?,3.2.3 源程序的编辑、编译、下载,用“伟福”模拟仿真软件进行程序的编辑、编译。打开“ISP下载软件”将目标文件下载到ISP-4实验开发板上的AT89S51单片机芯片,观察程序运行结果。要解决的问题:1、什么是算术运算指令?MCS-51单片机有哪些算术运 算指令?2、单片机运算的速度快吗?3、指令使用的区别?,3.2.4 相关知识,1、单片机是怎样做加、减、乘、除运算的?在单片机CPU内部集成的算术运算部件(主要有加法器和乘法器、除法器),可以完成加、
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单元 MCS51 单片机 指令系统

链接地址:https://www.31ppt.com/p-5891532.html