单片机技术与应用(四)

上传人:ji****n 文档编号:57313765 上传时间:2018-10-20 格式:PPT 页数:48 大小:414KB
返回 下载 相关 举报
单片机技术与应用(四)_第1页
第1页 / 共48页
单片机技术与应用(四)_第2页
第2页 / 共48页
单片机技术与应用(四)_第3页
第3页 / 共48页
单片机技术与应用(四)_第4页
第4页 / 共48页
单片机技术与应用(四)_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《单片机技术与应用(四)》由会员分享,可在线阅读,更多相关《单片机技术与应用(四)(48页珍藏版)》请在金锄头文库上搜索。

1、单片机技术与应用 (四),唐英杰,电子信息工程专业选修课,第二章 MCS-51系列单片机的指令系统,计算机的指令系统是表征计算机性能的重要指标,每种类型计算机都有自己的指令系统。主要包括: (1)MCS-51单片机指令系统的寻址方式; (2)MCS-51单片机的指令系统; (3)MCS-51单片机的伪指令。,第二章 MCS-51系列单片机的指令系统,一、MCS-51单片机指令系统概述,MCS-51单片机指令系统具有功能强、指令短、执行快等特点,共111条指令。 从功能上可划分为数据传送类指令、算术运算类指令、逻辑操作类指令、控制转移类指令、位操作类指令; 从空间属性上分为单字节指令(49条)、

2、双字节指令(46条)和最长的三字节指令(16条); 从时间属性上可分为单机器周期指令(64条)、双机器周期指令(45条)和只有乘、除两条4个机器周期的指令 。,第二章 MCS-51系列单片机的指令系统,在指令系统中,不同的指令描述了不同的操作,但在结构上,每条指令通常由操作码和操作数两部分组成。操作码表示计算机执行该指令将进行何种操作;操作数表示参加操作的数的本身或操作数所在的地址。MCS-51单片机的指令汇编语言指令有如下格式:标号: 操作码 操作数1,操作数2,操作数3;注释,第二章 MCS-51系列单片机的指令系统,操作数的类型有三种: 1立即数 2寄存器操作数 3存储器操作数,第二章

3、MCS-51系列单片机的指令系统,MCS-51汇编语言描述约定 Rn、Direct、Ri #data、#data16、 addr16、addr11、Rel bit、 /bit 、DPTR、 A、 B、C (X)、(X),第二章 MCS-51系列单片机的指令系统,二、寻址方式 寻址就是寻找指令中操作数或操作数所在的地址。 MCS-51单片机寻址方式有8种:立即寻址、寄存器寻址、直接寻址、寄存器间接寻址、基寄存器加变址寄存器间接寻址、相对寻址、位寻址、页面寻址。,第二章 MCS-51系列单片机的指令系统,1立即寻址 指令中给出的是一个具体的数值,操作时是对该数据操作。 2寄存器器寻址 指令中给出的

4、是某一寄存器的名字,操作时是将该寄存器中的内容取出来进行操作。,第二章 MCS-51系列单片机的指令系统,3直接寻址 指令中给出的是某一存储单元地址,操作时是对该单元中的内容进行操作。该地址指出了参如运算或传送的数据所在的字节单元或位的地址。 4寄存器间接寻址 指令中给出的是某一寄存器的名字,操作时是以该寄存器中的内容为地址,将该地址中的数据取出来进行操作。MOV A,R1,第二章 MCS-51系列单片机的指令系统,第二章 MCS-51系列单片机的指令系统,5基寄存器加变址寄存器间接寻址 指令中给出的是某一基寄存器(数据指针DPTR或PC)和某一变址寄存器(累加器A),操作时以给出的基寄存器和

5、变址寄存器中的内容之和为地址,将该地址中的数据取出来进行操作。MOVC A,A+DPTR,第二章 MCS-51系列单片机的指令系统,第二章 MCS-51系列单片机的指令系统,6相对寻址 相对寻址是以当前程序计数器PC值 加上指令中给出的偏移量rel,而构成实际操作数地址的寻址方式。 7位寻址位寻址是在位操作指令中直接给出位操作数的地址,可以对片内RAM中的128位和特殊功能寄存器SFR中的93位进行寻址。,第二章 MCS-51系列单片机的指令系统,总结:(1)对程序存储器只能采用立即寻址和基寄存器加变址寄存器间接寻址方式。(2)对特殊功能寄存器空间只能采用直接寻址(可以用符号来代表地址),不能

6、采用寄存器间接寻址方式。(3)内部数据存储器高128字节,整个能采用寄存器间接寻址方式,不能采用直接寻址方式。(4)内部数据存储器低128字节既能采用寄存器间接寻址方式,又能采用直接寻址方式。(5)外部扩展的数据存储器只能采用MOVX指令来访问。,第二章 MCS-51系列单片机的指令系统,MCS-51单片机指令系统共42种操作助记符,用来描述33种操作功能,由111条指令组成。MCS-51指令系统按功能来分类如下:数据传送类指令(29条)、算术运算类指令(24条)、逻辑运算类指令(24条)、控制转移类指令(17条)、位操作类指令(17条)。,三、 MCS-51的指令系统,第二章 MCS-51系

7、列单片机的指令系统,1数据传送类指令,传送类指令是指令系统中最活跃、使用最多的一类指令,主要用于数据的保存及交换等场合,共29条。按其操作方式,又可把它们分为三种:数据传送、数据交换和栈操作。助记符:MOV、MOVX、MOVC、XCH、XCHD、SWAP、PUSH、POP。,第二章 MCS-51系列单片机的指令系统,(1) 以累加器A为目的操作数的指令 (2) 以Rn为目的操作数的指令(3) 以直接地址为目的操作数的指令 (4) 以间接地址为目的操作数的指令 (5) 16位数据传送指令 (6) 查表指令 (7) 累加器A与片外RAM数据传送指令 (8) 堆栈操作 (9) 字节交换指令 (10)

8、 半字节交换指令,第二章 MCS-51系列单片机的指令系统,MCS-51单片机算术运算类指令包括加、减、乘、除基本四则运算和增量(加1)、减量(减1)运算。执行结果将使进位(Cy)、辅助进位(AC)、置位或复位,但加1和减1指令不影响以上标志。,2算术运算类指令,第二章 MCS-51系列单片机的指令系统,(1) 不带进位的加法指令 (2) 带进位的加法指令 (3) 带借位的减法 (4) 增量(加1)指令 (5) 减量(减1)指令 (6) 十进制调整指令 (7) 乘法指令 (8) 除法指令,第二章 MCS-51系列单片机的指令系统,3逻辑运算类指令,MCS-51单片机逻辑运算类指令包括清除、求反

9、、移位及与、或、异或等操作。 这类指令有:CLR、CPL、RL、RLC、RR、RRC、ANL、ORL、XRL,共9种操作助记符,第二章 MCS-51系列单片机的指令系统,(1) 两个操作数的逻辑与指令 (2) 两个操作数的逻辑或指令 (3) 两个操作数的逻辑异或指令 (4)对累加器A的单操作数的逻辑操作指令,第二章 MCS-51系列单片机的指令系统,4控制转移类指令,MCS-51提供了丰富的控制转移类指令,包括无条件转移、条件转移、调用和返回指令等。 这类指令有AJMP、LJMP、SJMP、JMP、JZ、JNZ、CJNZ、DJNZ、ACALL、LCALL、RET、RETI、NOP,共13种操作

10、助记符。,第二章 MCS-51系列单片机的指令系统,(1) 无条件转移指令 绝对短跳转 AJMP addr11 长跳转指令 LJMP addr16 相对短跳转指令 SJMP rel 间接跳转指令JMP A+DPTR (2) 条件转移指令 判零跳转指令 比较不相等跳转指令 减1不为0跳转,(3) 调用和返回指令绝对调用指令 ACALL addr11长调用指令 LCALL addr16子程序返回指令 RET 中断返回指令 RETI (4) 空操作指令 NOP,第二章 MCS-51系列单片机的指令系统,5位操作类指令,MCS-51系列单片机内有一个布尔处理机,它具有一套处理位变量的指令集,它以进位标

11、志Cy作为累加器C,以RAM地址20H2FH单元中的128位和地址为8的倍数的特殊功能寄存器的位地址单元作为操作数,进行位变量的传送、位状态控制、修改和位逻辑操作等操作。这类指令的助记符有:MOV、CLR、CPL、SETB、ANL、ORL、JC、JNC、JB、JNB、JBC,共11种操作助记符,第二章 MCS-51系列单片机的指令系统,(1) 位数据传送指令 (2) 位变量修改指令 (3) 位变量逻辑与、或指令 (4) 位变量条件转移指令,第二章 MCS-51系列单片机的指令系统,四、 伪指令,汇编程序对用汇编语言写的源程序进行汇编时,还要提供一些汇编用的指令,例如要指定程序或数据存放的起始地

12、址;要给一些连续存放的数据确定单元等等。但是,这些指令在汇编时并不产生目标代码,不影响程序的执行,所以称为伪指令,第二章 MCS-51系列单片机的指令系统,1 ORG定位伪指令 2DB定义字节伪指令 3DW定义字伪指令 4 EQU赋值伪指令 5 DS定义存储空间伪指令 6BIT定义位地址符号伪指令 7 END汇编结束伪指令,第二章 MCS-51系列单片机的指令系统,例 设计一个延时10ms的延时子程序,已知单片机使用的晶振为6MHz。 分析 延时时间与两个因素有关:晶振频率和循环次数。由于晶振采用6MHz,一个机器周期是2s,用单循环可以实现1ms延时,外循环10次即可达10ms延时。内循环如

13、何实现1ms延时呢,程序中可先以未知数MT代替,从附录A查每条指令机器周期计算程序的执行时间。,第二章 MCS-51系列单片机的指令系统,第二章 MCS-51系列单片机的指令系统,ORG 0020H MOV R0,#0AH ;外循环10次DL2: MOV R1,#MT ;内循环MT次DL1: NOP NOP ;空操作指令DJNZ R1,DL1 DJNZ R0,DL2 RET,内循环DL1到指令DJNZ R1,DL1的计算:(1+1+2)2SMT=1000SMT=125=7DH,将7DH代入上面程序的MT,计算总的延时时间:1+1+(1+1+2)125+28102S=10062S=10.062m

14、S,第三章 单片机的C语言编程Franklin C51,Franklin C51 51系列单片机支持三种高级语言:PL/M、 C、 BASICBASIC语言适用于简单编程而对编程效率运行速度要求不高的场合,8052单片机内固化有解释BASIC语言 。 PL/M是一种结构化的 语言,很象PASCAL,PL/M编译器好象汇编器一样产生紧凑的机器代码,可以说是高级汇编语言,但它不支持复杂的算术运算,无丰富库函数支持,学习PL/M无异于学习一种新的语言。,第三章 单片机的C语言编程Franklin C51,C语言是一种通用的程序设计语言,其代码率高,数据类型及运算符丰富,并具有良好的程 序结构,适用于

15、各种应用的程序设计,是目前使用最广的单片机编程语言。Franklin C51编译器(简称C51)为C语言对MCS-51的应用提供一种C语言编程。由C51产生的目 标代码其运行速度高;所需存储空间小,符合C语言的ANSI标准,生成的代码遵循Intel目标 文件格式,而且可与A51汇编语言或PL/M51语言目标代码混和使用。,第三章 单片机的C语言编程Franklin C51,应用C51编程具有以下优点: C51管理内部寄存器和存贮器的分配,编程时,无需考虑不同存储器的寻址和数据类型等细节问题; 程序由若干函数组成,具有良好的模块化结构; 有丰富的子程序库可直接引用,从而大大减少用户编程的工作量。

16、 C语言和汇编语言可以交叉使用,汇编语言程序代码短、运行速度快、但复杂运算编程耗 时。用汇编语言编写与硬件有关的部分程序,用C语言编写与硬件无关的运算部分程序,充 分发挥两种语言的长处,提高开发效率。,第三章 单片机的C语言编程Franklin C51,3.1 C51程序结构,同标准C一样,C51的程序由一个个函数组成,其中必须有一个主函数main(),程序的执行从主函数main() 开始,调用其他函数后返回主函数main(),最后在主函数中结束整个程序,而不管函数的排列顺序如何。C语言程序的组成结构: 全局变量说明 /*可被各函数引用*/ main( ) /*主函数*/ 执行语句(包括函数调用语句);,第三章 单片机的C语言编程Franklin C51,

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

当前位置:首页 > 中学教育 > 初中教育

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