第3章 ATmega 单片机的指系统.ppt
《第3章 ATmega 单片机的指系统.ppt》由会员分享,可在线阅读,更多相关《第3章 ATmega 单片机的指系统.ppt(130页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、广西大学电气工程学院广西大学电气工程学院 海涛海涛第3章 ATmegaATmega单片机的指令系统单片机的指令系统第第3章章ATmega单片机的指令系统单片机的指令系统内容提要:内容提要:本章主要介绍了本章主要介绍了ATmega单片机的指令系统、寻址单片机的指令系统、寻址方式和寻址空间。方式和寻址空间。指令系统按功能可分为五大类,即算术和逻辑运指令系统按功能可分为五大类,即算术和逻辑运算指令、比较和转移指令、数据传送指令、位操算指令、比较和转移指令、数据传送指令、位操作和位测试指令、作和位测试指令、MCU控制指令控制指令广西大学电气工程学院广西大学电气工程学院 海涛海涛第3章 ATmegaAT
2、mega单片机的指令系统单片机的指令系统31 ATmega指令系统概述指令系统概述C程程序序由由一一条条条条指指令令组组合合在在一一起起以以完完成成某某种种功功能能,所所以以编编写写C语语言言程程序序,学学习习C语语言言指指令令系系统统是是关关键键。编编写写C程程序序就就好好像像建建房房子子,一一条条条条指指令令就就是是砖砖瓦瓦,把这些砖瓦有机堆砌起来就能建好房子。把这些砖瓦有机堆砌起来就能建好房子。ATmega指指令令系系统统是是RISC结结构构的的精精简简指指令令集集,是是一一种种简简明明的的、易易掌掌握握的的、效效率率高高的的指指令令系系统统,具具有有高高性性能能的的数数据据处处理理能能
3、力力,能能对对位位、半半字字节节、字字节节和和双双字字节节数数据据进进行行各各种种操操作作,包包括括算算术术和和逻逻辑辑运运算算、数数据传送、布尔处理、控制转移和硬件乘法等操作。据传送、布尔处理、控制转移和硬件乘法等操作。广西大学电气工程学院广西大学电气工程学院 海涛海涛第3章 ATmegaATmega单片机的指令系统单片机的指令系统ATmega指令系统按功能可分为五大类:指令系统按功能可分为五大类:1、算术和逻辑运算指令算术和逻辑运算指令2、比较和转移指令比较和转移指令3、数据传送指令数据传送指令4、位操作和位测试指令位操作和位测试指令5、MCU控制指令控制指令3.1.1 ATmega指令系
4、统的分类指令系统的分类广西大学电气工程学院广西大学电气工程学院 海涛海涛第3章 ATmegaATmega单片机的指令系统单片机的指令系统3.1.2 ATmega寻址方式和寻址空间寻址方式和寻址空间指指令令的的一一个个重重要要组组成成部部分分就就是是操操作作数数。指指令令给给出出参参与与运运算算的的数数据据的的方方式式称称为为寻寻址址方方式式。ATmega指指令令操操作作数数的的寻寻址址方方式式有有以以下下几几种种:单单寄寄存存器器直直接接寻寻址址、双双寄寄存存器器直直接接寻寻址址、I/O寄寄存存器器直直接接寻寻址址、数数据据寄寄存存器器直直接接寻寻址址、数数据据存存储储器器间间接接寻寻址址、带
5、带后后增增量量的的数数据据存存储储器器间间接接寻寻址址、带带预预减减量量的的数数据据存存储储器器间间接接寻寻址址、带带位位移移的的数数据据存存储储器器间间接接寻寻址址、程程序序存存储储器器取取常常量量寻寻址址、程程序序存存储储器器空空间间直直接接寻寻址、程序存储器空间间接寻址、程序相对寻址等。址、程序存储器空间间接寻址、程序相对寻址等。广西大学电气工程学院广西大学电气工程学院 海涛海涛第3章 ATmegaATmega单片机的指令系统单片机的指令系统1、单寄存器直接寻址、单寄存器直接寻址由由指指令令指指出出一一个个寄寄存存器器的的内内容容作作为为操操作作数数,在在指指令令中中给给出出寄寄存存器器
6、的的直直接接地地址址,这这种种寻寻址址方方式式称称为为单单寄寄存存器器直直接接寻寻址址。单单寄寄存存器器寻寻址址的的地地址址范范围围限限制制为为通通用用工工作作寄寄存存器器组组中中的的32个个寄寄存存器器R0R31,或后或后16个寄存器个寄存器R16R31(取决于不同指令)。(取决于不同指令)。例例3.1 INC Rd;操作:;操作:Rd Rd+1。INC R5;将寄存器;将寄存器R5 内容加内容加1回放。回放。广西大学电气工程学院广西大学电气工程学院 海涛海涛第3章 ATmegaATmega单片机的指令系统单片机的指令系统2、双寄存器直接寻址、双寄存器直接寻址双双寄寄存存器器直直接接寻寻址址
7、方方式式与与单单寄寄存存器器直直接接寻寻址址方方式式相相似似,它它是是将将指指令令的的两两个个寄寄存存器器Rd和和Rr的的内内容容作作为为操操作作数数,而而结结果果存存放放在在Rd寄寄存存器器中中。指指令令中中同同时时给给出出两两个个寄寄存存器器的的直直接接地地址址,这这种种寻寻址址方方式式称称为为双双寄寄存存器器直直接接寻寻址址。双双寄寄存存器器寻寻址址的的地地址址范范围围限限制制为为通通用用工工作作寄寄存存器器组组中中的的32个个寄寄存存器器R0R31,或或后后16个个寄寄存存器器R16R31,或或后后8个个寄寄存存器器R16R23(取决于不同指令)。(取决于不同指令)。例例3.2 ADD
8、 Rd,Rr;操作:;操作:Rd Rd+Rr。ADD R0,R1;将将R0和和R1寄寄存存器器内内容容相相加加,结结果回放果回放R0。广西大学电气工程学院广西大学电气工程学院 海涛海涛第3章 ATmegaATmega单片机的指令系统单片机的指令系统3、I/O寄存器直接寻址寄存器直接寻址由由指指令令指指出出一一个个I/O寄寄存存器器的的内内容容作作为为操操作作数数。在在指指令令中中直直接接给给出出I/O寄寄存存器器的的地地址址,这这种种方方式式称称为为I/O寄寄存存器器直直接接寻寻址址。I/O寄寄存存器器直直接接寻寻址址的的地地址址使使用用I/O寄寄存存器器空空间间的的地地址址003F,共共64
9、个个,取值为取值为063 或或031(取决于指令)。(取决于指令)。例例3.3 IN Rd,P;操作:;操作:Rd P。IN R5,3E;读读I/O空空间间地地址址为为3E寄寄存存器器(SPH)的内容,放入寄存器)的内容,放入寄存器R5。广西大学电气工程学院广西大学电气工程学院 海涛海涛第3章 ATmegaATmega单片机的指令系统单片机的指令系统4、数据存储器空间直接寻址、数据存储器空间直接寻址数数据据存存储储器器空空间间直直接接寻寻址址方方式式便便于于直直接接从从SRAM存存储储器器中中存存取取数数据据。数数据据存存储储器器空空间间直直接接寻寻址址为为双双字字节节指指令令,在在指指令令的
10、的低低字字节节中中指指出出一一个个16位位的的SRAM地址。地址。例例3.4 LDS Rd,K;操作:;操作:Rd (K)。)。LDS R18,100;读读地地址址为为100的的SRAM中中内容,传送到内容,传送到R18中。中。指指令令中中16位位SRAM的的地地址址字字长长度度限限定定了了SRAM的的地地址址空空间间为为64K字字节节,该该地地址址空空间间实实际际包包含含了了32个个通通用用寄寄存存器器和和64个个I/O寄寄存存器器。因因此此,也也可可能能使使用用数数据据存存储储器器空空间间直直接接寻寻址址的的方方式式读读取取通通用用寄寄存存器器或或I/O寄寄存存器器中中的的内内容容。但但效
11、效率率比比使使用用寄寄存存器器直直接寻址的方式要低。接寻址的方式要低。广西大学电气工程学院广西大学电气工程学院 海涛海涛第3章 ATmegaATmega单片机的指令系统单片机的指令系统5、数据存储器空间的寄存器间接寻址、数据存储器空间的寄存器间接寻址由由指指令令指指出出某某一一个个16位位寄寄存存器器的的内内容容作作为为操操作作数数在在SRAM中中的的地地址址,该该寻寻址址方方式式称称为为数数据据存存储储器器空空间间的的寄寄存存器器间间接接寻寻址址。ATmega系系列列单单片片机机中中使使用用16位位寄寄存存器器X、Y或或Z作作为为规规定定的的地地址址指指针针寄寄存存器器,因因此此操操作作数数
12、的的SRAM地地址址在在间间址址寄寄存存器器X、Y或或Z中。中。例例3.5 LD Rd,Y;操操作作:Rd (Y),把把以以Y为为指针的指针的SRAM的内容送的内容送Rd。LD R16,Y;设设Y=0567,即即把把SRAM地地址址为为0567的内容传送到的内容传送到R16。广西大学电气工程学院广西大学电气工程学院 海涛海涛第3章 ATmegaATmega单片机的指令系统单片机的指令系统6、带增量的数据存储器空间的寄存器、带增量的数据存储器空间的寄存器间接寻址间接寻址这这种种寻寻址址方方式式类类似似于于数数据据存存储储器器空空间间的的寄寄存存器器间间接接寻寻址址方方式式,间间址址寄寄存存器器X
13、、Y、Z中中的的内内容容仍仍为为操操作作数数在在SRAM空空间间的的地地址址,但但指指令令在在间间接接寻寻址址操操作作后后,再再自自动动把把间间址址寄寄存存器器中中的的内内容容加加1。这这种种寻址方式特别适用于访问矩阵、查表等应用。寻址方式特别适用于访问矩阵、查表等应用。例例3.6 LD Rd,Y+;操操作作:Rd (Y),Y=Y+1,先先把把以以Y为为指指针针的的SRAM的的内内容容送送Rd,再再把把Y增增1。LD R16,Y+;设设原原Y=0567,即即把把SRAM地地址址为为0567的的内内容容传传送送到到R16中中,再再将将Y的的值值加加1,操作完成后,操作完成后Y=0568。广西大学
14、电气工程学院广西大学电气工程学院 海涛海涛第3章 ATmegaATmega单片机的指令系统单片机的指令系统7、带预减量的数据存储器空间寄存器、带预减量的数据存储器空间寄存器间接寻址间接寻址这这种种寻寻址址方方式式类类似似于于数数据据存存储储器器空空间间的的寄寄存存器器间间接接寻寻址址方方式式,间间址址寄寄存存器器X、Y、Z中中的的内内容容仍仍为为操操作作数数在在SRAM空空间间的的地地址址,但但指指令令在在间间接接寻寻址址操操作作之之前前,先先自自动动将将间间址址寄寄存存器器中中的的内内容容减减1,然然后后把把减减1后后的的内内容容作作为为操操作作数数在在SRAM空空间间的的地地址址。这这种种
15、寻寻址址方方式式也也特特别别适适用用于于访访问问矩矩阵阵、查查表表等等应应用。用。例例3.7 LD Rd,-Y;操作:;操作:Y=Y-1,Rd (Y),),先把先把Y减减1,再把以,再把以Y为指针的为指针的SRAM的内容送的内容送Rd。广西大学电气工程学院广西大学电气工程学院 海涛海涛第3章 ATmegaATmega单片机的指令系统单片机的指令系统8、带位移的数据存储器空间寄存器、带位移的数据存储器空间寄存器间接寻址间接寻址带带位位移移的的数数据据存存储储器器空空间间寄寄存存器器间间接接寻寻址址方方式式是是:由由间间址址寄寄存存器器(Y或或Z)及及指指令令字字中中给给出出的的地地址址偏偏移移量
16、量共共同同决决定定操操作作数数在在SRAM空空间间的的地地址址,偏偏移移量的范围为量的范围为063。例例3.8 LDD Rd,Y+q;操操作作:Rd (Y+q),其其中中0q63,即即把把以以Y+q为为指指针针的的SRAM的的内内容容送送Rd,而,而Y寄存器的内容不变。寄存器的内容不变。LDD R16,Y+31;设设Y=0567,即即把把SRAM地地址址为为0598的的内内容容传传送送到到R16中中,Y寄寄存存器器中中的的内容不变。内容不变。广西大学电气工程学院广西大学电气工程学院 海涛海涛第3章 ATmegaATmega单片机的指令系统单片机的指令系统9、程序存储器空间取常量寻址、程序存储器
17、空间取常量寻址程程序序存存储储器器空空间间取取常常量量寻寻址址主主要要从从程程序序存存储储器器Flash中中取取常常量量,此此种种寻寻址址方方式式只只用用于于指指令令LPM。程程序序存存储储器器中中常常量量字字节节的的地地址址由由地地址址寄寄存存器器Z的的内内容确定。容确定。例例3.9 LPM;操操作作:R0(Z),即即把把以以Z为为指指针针的程序存储器的内容送的程序存储器的内容送R0。若若Z=0100,即即把把地地址址为为0080的的程程序序存存储储器器的低字节内容送的低字节内容送R0。若若Z=0101,即即把把地地址址为为0080的的程程序序存存储储器器的高字节内容送的高字节内容送R0。广
18、西大学电气工程学院广西大学电气工程学院 海涛海涛第3章 ATmegaATmega单片机的指令系统单片机的指令系统 10、带后增量的程序存储器空间、带后增量的程序存储器空间取常量寻址取常量寻址 带带后后增增量量的的程程序序存存储储器器空空间间取取常常量量寻寻址址主主要要从从程程序序存存储储器器Flash中中取取常常量量,此此种种寻寻址址方方式式只只用用于于指指令令LPM Rd,Z+。程程序序存存储储器器中中常常量量字字节节的的地地址址由由地地址址寄寄存存器器Z的的内内容容确确定定。Z寄寄存存器器的的高高15位位用用于于选选择择字字地地址址(程程序序存存储储器器的的存存储储单单元元为为字字),而而
19、Z寄寄存存器器的的最最低低位位Z(d0)用用于于确确定定字字地地址址的的高高/低低字字节节。若若d0=0,则则选选择择字字的的低低字字节节;若若d0=1,则则选选择择字字的的高高字字节节。寻寻址址操操作作后后,Z寄寄存存器器的的内内容加容加1。广西大学电气工程学院广西大学电气工程学院 海涛海涛第3章 ATmegaATmega单片机的指令系统单片机的指令系统 11、程序存储器空间写数据寻址、程序存储器空间写数据寻址程程序序存存储储器器空空间间写写数数据据寻寻址址主主要要用用于于可可进进行行在在系系统统自自编编程程的的AVR单单片片机机,此此种种寻寻址址方方式式只只用用于于指指令令SPM。该该指指
20、令令将将寄寄存存器器R1和和R0中中的的内内容容组组成成一一个个字字R1 R0,然然后后写写入入由由Z寄寄存存器器的的内内容容作作为为地地址址的程序存储器单元中。的程序存储器单元中。例例3.12 SPM;操操作作:(Z)R1 R0,把把R1 R0内容写入以内容写入以Z为指针的程序存储器单元。为指针的程序存储器单元。广西大学电气工程学院广西大学电气工程学院 海涛海涛第3章 ATmegaATmega单片机的指令系统单片机的指令系统12、程序存储器空间直接寻址、程序存储器空间直接寻址程程序序存存储储器器空空间间直直接接寻寻址址方方式式用用于于程程序序的的无无条条件件转转移移指指令令JMP、CALL。
21、指指令令中中含含有有一一个个16位位的的操操作作数数,指指令令将将操操作作数数存存入入程程序序寄寄存存器器PC中中,作作为为下下一一条条要要执执行行的的指指令令在在程程序序存存储储器器空空间间的的地地址址。JMP类类指指令令和和CALL类类指指令令的的寻寻址址方方式式相相同同,但但CALL类类的的指指令令还还包包括括了了返返回回地地址址的的压压进进堆堆栈栈和和堆堆栈栈指指针针寄寄存存器器SP内容减内容减2的操作。的操作。例例3.13 JMP 0100;操操作作:PC0100。程程序序计计数数器器PC的的值值设设置置为为0100。接接下下来来执执行行程程序序存存储储器器0100单元的指令代码。单
22、元的指令代码。广西大学电气工程学院广西大学电气工程学院 海涛海涛第3章 ATmegaATmega单片机的指令系统单片机的指令系统13、程序存储器空间、程序存储器空间Z寄存器寄存器间接寻址间接寻址程程序序存存储储器器空空间间间间接接寻寻址址方方式式是是使使用用Z寄寄存存器器存存放放下下一一步步要要执执行行指指令令代代码码程程序序地地址址,程程序序转转到到Z寄寄存存器器内内容容所所指指定定程程序序存存储储器器的的地地址址处处继继续续执执行行,即即用用寄寄存存器器Z的的内内容容代代替替PC的的值值。此此寻寻址址方方式式用用于于IJMP、ICALL指令。指令。例例3.15 LJMP;操操作作:PCZ,
23、即即把把Z的的内内容容送送程程序序计计数数器器PC。若若Z=$0100,即即把把$0100送送程程序序计计数数器器PC,接接下下来来执执行行程程序序存存储储器器$0100单单元元的的指指令令代码。代码。广西大学电气工程学院广西大学电气工程学院 海涛海涛第3章 ATmegaATmega单片机的指令系统单片机的指令系统14、程序存储器空间相对寻址、程序存储器空间相对寻址在在程程序序存存储储器器空空间间相相对对寻寻址址方方式式中中,在在指指令令中中包包含含一一个个相相对对偏偏移移量量k,指指令令执执行行时时,首首先先将将当当前前程程序序计计数数器器PC值值加加1后后再再与与偏偏移移量量k相相加加,作
24、作为为程程序序下下条条要要执执行行指指令令的的地地址址。此此寻寻址址方方式式用用于于RJMP,RCALL指令。指令。例例3.17 RJMP$0100;操操作作:PCPC+1+$0100。若若当当前前指指令令地地址址为为$0200(PC=$0200),即即把把$0301送送程程序序计计数数器器PC,接接下下来来执执行行程程序序存存储储器器$0301单元的指令代码。单元的指令代码。广西大学电气工程学院广西大学电气工程学院 海涛海涛第3章 ATmegaATmega单片机的指令系统单片机的指令系统15、数据存储器空间堆栈寄存器、数据存储器空间堆栈寄存器SP间接寻址间接寻址数数据据存存储储器器空空间间堆
25、堆栈栈寄寄存存器器SP间间接接寻寻址址是是将将16位位的的堆堆栈栈寄寄存存器器SP的的内内容容作作为为操操作作数数在在SRAM空空间间的地址,此寻址方式用于的地址,此寻址方式用于PUSH,POP指令。指令。例例 3.19 PUSH R0;操操 作作:STACKRU;SPSP-1。若若当当前前SP=$045F,先先把把寄寄存存器器R0的的内内容容送送到到SRAM的的$045F单单元元,再再将将SP内内容容减减I,即即SP=$045E。例例 3.20 POP R1;操操 作作:5PSP+1;R1STACK。若若当当前前SP=$045E,先先将将SP内内容容加加1,再再把把SRAM的的$045F单单
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第3章 ATmega 单片机的指系统 单片机 系统
限制150内