单片机应用技术 工业和信息化高职高专“十二五”规划教材立项项目 教学课件 ppt 作者 李海涛 第2章 单片机汇编语言程序设计

上传人:E**** 文档编号:89355760 上传时间:2019-05-23 格式:PPT 页数:79 大小:620.50KB
返回 下载 相关 举报
单片机应用技术 工业和信息化高职高专“十二五”规划教材立项项目  教学课件 ppt 作者  李海涛 第2章  单片机汇编语言程序设计_第1页
第1页 / 共79页
单片机应用技术 工业和信息化高职高专“十二五”规划教材立项项目  教学课件 ppt 作者  李海涛 第2章  单片机汇编语言程序设计_第2页
第2页 / 共79页
单片机应用技术 工业和信息化高职高专“十二五”规划教材立项项目  教学课件 ppt 作者  李海涛 第2章  单片机汇编语言程序设计_第3页
第3页 / 共79页
单片机应用技术 工业和信息化高职高专“十二五”规划教材立项项目  教学课件 ppt 作者  李海涛 第2章  单片机汇编语言程序设计_第4页
第4页 / 共79页
单片机应用技术 工业和信息化高职高专“十二五”规划教材立项项目  教学课件 ppt 作者  李海涛 第2章  单片机汇编语言程序设计_第5页
第5页 / 共79页
点击查看更多>>
资源描述

《单片机应用技术 工业和信息化高职高专“十二五”规划教材立项项目 教学课件 ppt 作者 李海涛 第2章 单片机汇编语言程序设计》由会员分享,可在线阅读,更多相关《单片机应用技术 工业和信息化高职高专“十二五”规划教材立项项目 教学课件 ppt 作者 李海涛 第2章 单片机汇编语言程序设计(79页珍藏版)》请在金锄头文库上搜索。

1、第2章 单片机汇编语言程序设计,实训任务2 LED显示电路 2.1 MCS51系列单片机汇编指令格式 2.2 寻址方式 2.3 MCS51系列单片机指令系统 2.4 MCS51系列单片机汇编程序设计,实训任务2 LED显示电路,任务:将09这十个数循环送P0口七段LED上显示。,图2-1 实训2电路,LED显示电路控制程序,ORG 0100H START: SETB P2.0 MOV R0,#00H MOV DPTR,#TABLE DISP: MOV A,R0 MOVC A,A+DPTR MOV P0,A ACALL DELAY INC R0 CJNE R0,#0AH,DISP AJMP ST

2、ART DELAY: MOV R1,#0FFH LOOP0: MOV R2,#0FFH LOOP1: DJNZ R2,LOOP1 DJNZ R1,LOOP0 RET TABLE: DB 0C0H,0F9H, 0A4H,0B0H,99H DB 92H, 82H, 0F8H,80H, 90H END,2.1 MCS51系列单片机汇编指令格式,MCS 51系列单片机汇编指令格式如下: 标号: 操作码助记符 目的操作数,源操作数 ;注释 例如:MOV A,#22H;A22H,说明: 1)操作码助记符表明指令的功能,一般用说明其功能的英文单词的缩写形式表示。如MOVMOVE表示传送。 2)操作数即操作对

3、象,包括数据、数据的地址或指令的地址,用相应的寻址方式指明。操作数之间用逗号隔开。 3)标号是该指令的符号地址。标号后必须用冒号。 4)注释是对该指令的解释说明。注释前面须带分号。,2.2 寻址方式,寻找操作数地址的方式称为寻址方式。 MCS-51指令系统共使用了7种寻址方式,包括立即数寻址、寄存器寻址、直接寻址、寄存器间接寻址、变址寻址、相对寻址和位寻址。,2.2 寻址方式,1、立即数寻址(常数寻址) 操作数是常数,又称为立即数,使用时直接写在指令中,紧跟在操作码的后面,作为指令的一部分,与操作码一起存放在程序存储器中。立即数前面以“#”号作前缀。 例如: MOV A,#20H,2.2 寻址

4、方式,2、寄存器数寻址(寄存器寻址) 操作数在寄存器中,使用时在指令中直接提供寄存器的名称,这种寻址方式称为寄存器寻址。在MCS-51系统中,这种寻址方式针对的寄存器包括工作寄存器R0R7、累加器A、通用寄存器B、地址寄存器DPTR等。 例如: MOV A,R0,2.2 寻址方式,3、直接寻址 直接寻址是指操作数据在存储器单元中,指令中直接给出该存储器单元的地址。在MCS-51单片机中,可直接寻址的是片内RAM低128B空间和特殊功能寄存器。 例如: MOV A,20H MOV A,P0,注意:在MCS-51中,用“#”来区别立即数和直接地址,数据前面不加“#”是存储单元地址,加符号“#”是立

5、即数。,2.2 寻址方式,4、寄存器间接寻址 寄存器间接寻址是指数据存放在存储单元中,将存储单元的地址存放在寄存器中,在指令中只提供存放存储单元地址的寄存器。执行指令时,首先根据寄存器的内容,找到所需要的操作数地址,再由该地址找到操作数并完成相应操作。形式为:寄存器名。 例如:MOV A,R0,在MCS-51指令系统中,用于寄存器间接寻址的寄存器有R0、R1和DPTR,称为寄存器间接寻址寄存器或数据指针。它能访问的数据是片内数据存储器和片外数据存储器。,若R0中的内容为20H,片内RAM地址为20H的单元中的内容为50H,则执行该指令后,累加器A的内容为50H,2.2 寻址方式,5、变址寻址

6、变址寻址所访问的存储器为程序存储器,指令中操作数的地址由基址寄存器的内容加上变址寄存器的内容得到。在MCS-51系统中,它是以数据指针寄存器DPTR或程序计数器PC为基址寄存器,累加器A为变址寄存器。 例如: MOVC A,A+DPTR,设指令执行前DPTR2000H,A05H,程序存储器2005H单元的内容为80H,则指令执行后,A80H,2.2 寻址方式,6、变址寻址 变址寻址所访问的存储器为程序存储器,指令中操作数的地址由基址寄存器的内容加上变址寄存器的内容得到。在MCS-51系统中,它是以数据指针寄存器DPTR或程序计数器PC为基址寄存器,累加器A为变址寄存器。 例如:MOVC A,A

7、+DPTR,设指令执行前DPTR2000H,A05H,程序存储器2005H单元的内容为80H,则指令执行后,A80H。,2.2 寻址方式,6、相对寻址 相对寻址是以程序计数器PC的当前值为基础,加上指令给出的相对偏移量rel形成新的PC值(又称目的地址)的寻址方式。该类寻址方式主要用于跳转指令。 例如:SJMP 50H,2.2 寻址方式,7、位寻址 位寻址是指操作数是某一个二进制位的寻址方式。在MCS-51系统中,位处理的操作对象是各种可位寻址位。对于它们的访问是通过提供相应的位地址来处理。 在MCS-51系统中,位地址的表示可以用以下几种方式: 1直接位地址(00H0FFH)。例如:20H

8、2字节地址带位号。例如:20H.3表示20H单元的3位。 3特殊功能寄存器名带位号。例如:P0.1表示P0口的1位。 4位符号地址。例如:TR0是定时/计数器T0的启动位。,2.3 MCS51系列单片机指令系统,MCS-51单片机指令系统共有33种功能,42种助记符,111条指令。其中有49条单字节指令,45条双字节指令和17条三字节指令;有64条为单机器周期指令,45条为双机器周期指令,只有乘、除法两条指令为四机器周期指令。,2.3.1 指令中用到的标识符,(1)Ri和Rn:表示当前工作寄存器区中的寄存器,i取0或1,表示R0或R1。n取07,表示R0R7。 (2)#data:表示包含在指令

9、中的8位立即数。 (3)#data16:表示包含在指令中的16位立即数。 (4)rel:以补码形式表示的8位偏移量,范围为-128127,主要用在相对寻址的指令中。 (5)addr16和addr11:分别表示16位直接地址和11位直接地址。 (6)direct:直接地址,包括内部低128B RAM单元地址和全部特殊功能寄存器地址。 (7)bit:表示内部RAM 或特殊功能寄存器中的可直接寻址位。 (8)(X):表示X单元中的内容。,2.3.1 指令中用到的标识符,(9)(X):表示以X单元的内容为地址的存储器单元内容,即(X)作地址,该地址单元的内容用(X)表示。 (10)/ :表示对指定位操

10、作数取反,但不影响该位的原值。 (11):表示操作流程,将箭尾后面的内容送入箭头所指的单元中去。 (12)A : 累加器ACC。 (13)C : 进、借位标志位,或位累加器。 (14):间接寄存器或基址寄存器的前缀 (15) :当前指令的地址,2.3.2 数据传送类指令,数据传送操作是指把数据从源地址传送到目的地址,源地址内容不变。数据传送指令有29条,是指令系统中数量最多、使用也最频繁的一类指令。可分为五大类:内部传送指令;外部传送指令;交换指令;堆栈操作指令;查表指令。,一、内部传送指令,实现片内数据存储器中数据传送。 指令格式: MOV 目的操作数,源操作数 寻址方式可以采用立即寻址、直

11、接寻址、寄存器寻址、寄存器间接寻址。源操作数可以为A、Rn、Ri、direct、#data,目的操作数可以为A、Rn、Ri、direct,组合起来共16条。,一、内部传送指令,(1)以A为目的操作数 MOV A,Rn ;A Rn MOV A,direct ;A(direct) MOV A,Ri ;A(Ri) MOV A,#data ;A #data,一、内部传送指令,(2)以Rn为目的操作数 MOV Rn,A ;Rn A MOV Rn,direct ;Rn (direct) MOV Rn,#data ;Rn #data,一、内部传送指令,(3)以直接地址direct为目的操作数 MOV dir

12、ect,A ;(direct) A MOV direct,Rn ;(direct) Rn MOV direct2,direct1;(direct2)(direct1) MOV direct,Ri ;(direct) (Ri) MOV direct,#data ;(direct) #data,一、内部传送指令,(4)以间接地址Ri为目的操作数 MOV Ri,A ;(Ri) A MOV Ri,direct ;(Ri) (direct) MOV Ri,#data ;(Ri) #data (5)以DPTR为目的操作数 MOV DPTR,#data16 ;DPTR #data16,一、内部传送指令,注意

13、: 1、在MOV指令中,不允许在一条指令中同时出现工作寄存器,无论它是寄存器寻址(形式为Rn)还是寄存器间接寻址(形式为Ri)。如不允许有“MOV R2,R1”,“MOV R1,R7”这样的指令。 2、立即数不能作为目的操作数,如不允许有“MOV #50H,A”这样的指令。 3、区别以下两组指令: MOV A, R0 ; 以R0的内容为RAM地址,把该地址单元中的值送到A中去。 MOV A, R0 ; 将R0中的内容送到A去。 MOV A, #20H ; A的内容为立即数20H MOV A, 20H ; A的内容为20H地址单元中的内容,二、外部传送指令,实现片外数据存储器和累加器A之间的数据

14、传送。 指令格式:MOVX 目的操作数,源操作数 在MCS-51系统中只能通过累加器A与片外数据存储器进行数据传送,访问外数据存储器时,只能通过Ri和DPTR以间接寻址方式进行。,二、外部传送指令,1、 DPTR作16位数据指针,寻址整个64KB片外RAM空间 MOVX A,DPTR ;A(DPTR) MOVX DPTR,A ;(DPTR)A 2、 Ri作8位数据指针,寻址片外RAM低256B空间 MOVX A,Ri ;A(Ri) MOVX Ri,A ;(Ri)A,三、查表指令,实现从程序存储器读取数据到累加器A。 通常用于访问ROM中已做好的表格数据,因此称为查表指令。这类指令只能使用变址寻

15、址方式来访问ROM。共两条指令,一条用DPTR为基址寄存器,一条用PC作基址寄存器。 MOVC A,A+DPTR ;A (A+DPTR) MOVC A,A+PC ;A (A+PC),四、数据交换指令,实现片内RAM区的数据双向传送。 数据交换指令要求第一个操作数须为累加器A,共有5条。 XCH A,Rn ;A Rn XCH A ,direct ;A (direct) XCH A,Ri ;A (Ri) XCHD A,Ri ;A03 (Ri)03 SWAP A ;A03 A47,五、堆栈操作指令,在80C51中,堆栈的生长方向是向上的(地址增大)。 入栈操作: PUSH direct;SPSP+1,(SP)(direct) 出栈操作:POP direct;(direct)(SP),SP SP-1,2.3.3 算术运算类指令,算术运算指令共24条,可以完成加、减、乘、除及加1和减1等运算。这类指令多数以A为源操作数之一,同时又使A为目的操作数。多数算术运算指令会影响标志位的状态,即CPU执行算术运算指令后,根据数据操作情况自动设置标志位的状态。,一加法指令,1不带进位加法指令ADD(影响标志位Cy、AC、OV和P) ADD A,Rn ;A A + Rn ADD A,direct ;A A +(direct) ADD A,Ri ;A A +(Ri) ADD A,#data ;A A

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号