当前位置:首页 > 嵌入式培训 > 单片机学习 > 单片机编程入门 > 嵌入式大神总结的avr单片机指令表,带你加深记忆

嵌入式大神总结的avr单片机指令表,带你加深记忆 时间:2018-07-23      来源:未知

avr单片机是推出的比较新颖的单片机,对于avr单片机来说,高性能、高速度、低功耗等这些都是他的优势,AVR单片机指令以字为单位,且大部分指令都为单周期指令。而单周期既可执行本指令功能,同时完成下一条指令的读取。通常时钟频率用4~8MHz,故最短 指令执行时间为250~125ns,那么问题来了,对于avr单片机来说。指令就是极为重要的了,那么我们来看看人家嵌入式大神的avr单片机指令总结:

一、数据传送指令

1、直接寻址数据传送指令

工作寄存器间传送数据:MOV Rd,Rr

SRAM数据直接送寄存器:LDS Rd,k

寄存器数据直接送SRAM:STS k,Rr

立即数送寄存器:LDI Rd,K

2、间接寻址数据传送指令

①使用X指针寄存器间接寻址传送数据

使用地址指针寄存器X间接寻址将SRAM内容装入到指定寄存器:

LD Rd,X

LD Rd,X+

LD Rd,-X

使用地址指针寄存器X间接寻址将寄存器内容存储到SRAM:

ST X,Rr

ST X+,Rr

ST –X,Rr

②使用Y指针寄存器间接寻址传送数据

使用地址指针寄存器Y间接寻址将SRAM内容装入到指定寄存器:

LD Rd,Y

LD Rd,Y+

LD Rd,-Y

LDD Rd,Y+q

使用地址指针寄存器Y间接寻址将寄存器内容存储到SRAM:

ST Y,Rr

ST Y+,Rr

ST –Y,Rr

STD Y+q,Rr

③使用Z指针寄存器间接寻址传送数据

使用地址指针寄存器Y间接寻址将SRAM内容装入到指定寄存器:

LD Rd,Z

LD Rd,Z+

LD Rd,-Z

LDD Rd,Z+q

使用地址指针寄存器Y间接寻址将寄存器内容存储到SRAM:

ST Z,Rr

ST Z+,Rr

ST –Z,Rr

STD Z+q,Rr

3、从程序存储器中取数装入寄存器指令

从程序存储器中取数装入寄存器R0:LPM

从程序存储器中取数装入寄存器Rd:LPM Rd,Z

带后增量的从程序存储器中取数装入寄存器Rd:LPM Rd,Z+

4、写程序存储器指令

写程序存储器:SPM

5、I/O口数据传送指令

I/O口数据装入寄存器:IN Rd,P

寄存器数据送I/O口:OUT P,Rr

6、堆栈操作指令

进栈指令:PUSH Rr

出栈指令:POP Rd

二、跳转指令

1、无条件跳转指令

相对跳转:RJMP k

间接跳转:IJMP

直接跳转:JMP k

2、条件跳转指令

①测试条件符合跳转指令

状态寄存器中位为“1”跳转:BRBS s,k

状态寄存器中位为“0”跳转:BRBC s,k

相等跳转:BREQ k

不相等跳转:BRNE k

进位标志位C为“1”跳转:BRCS k

进位标志位C为“0”跳转:BRCC k

大于或等于跳转(对无符号数):BRSH k

小于跳转:BRLO k

结果为负跳转:BRMI k

结果为正跳转:BRPL k

大于或等于跳转(带符号数):BRGE k

小于跳转(带符号数):BRLT k

半进位标志H为“1”跳转:BRHS k

半进位标志H为“0”跳转:BRHC k

T标志为“1”跳转:BRTS k

T标志为“0”跳转:BRTC k

溢出标志V为“1”跳转:BRVS k

溢出标志V为“0”跳转:BRVC k

中断标志I为“1”跳转:BRIE k

中断标志I为“0”跳转:BRID k

②测试条件符合跳行跳转指令

相等跳行:CPSE Rd,Rr

寄存器位为“1”跳行:SBRS Rr,b

寄存器位为“0”跳行:SBRC Rr,b

I/O寄存器位为“1”跳行:SBIS P,b

I/O寄存器位为“0”跳行:SBIC P,b

3、子程序调用和返回指令

相对调用:RCALL k

间接调用:ICALL

直接调用:CALL k

从子程序返回:RET

从中断程序返回:RETI

三、算术和逻辑指令

1、加法指令

不带进位位加法:ADD Rd,Rr

带进位位加法:ADC Rd,Rr

字加立即数:ADIW Rdl,K

增1指令:INCRd

2、减法指令

不带进位位减法:SUB Rd,Rr

减立即数(字节):SUBI Rd,K

带进位位减法SBC :Rd,Rr

带进位位减立即数(字节):SBCI Rd,K

减立即数(字):SBIW Rdl,K

减1指令:DECRd

3、取反码指令

COM Rd

4、取补码指令

NEG Rd

5、比较指令

寄存器比较:CP Rd,Rr

带进位比较:CPC Rd,Rr

与立即数(字节)比较:CPI Rd,K

6、逻辑“与”指令

寄存器逻辑“与”:AND Rd,Rr

“与”立即数(字节):ANDI Rd,K

寄存器位清零:CBR Rd,K

测试寄存器为零或负:TST Rd

7、逻辑“或”指令

寄存器逻辑“或”:OR Rd,Rr

“或”立即数(字节):ORI Rd,K

置寄存器位:SBR Rd,K

置寄存器为$FF:SER Rd

8、逻辑“异或”指令

寄存器“异或”:EOR Rd,Rr

寄存器清零:CLR Rd

9、乘法指令

无符号数乘法:MUL Rd,Rr

有符号数乘法:MULS Rd,Rr

有符号数与无符号数乘法:MULSU Rd,Rr

无符号定点小数乘法:FMUL Rd,Rr

有符号定点小数乘法:FMULS Rd,Rr

有符号定点小数和无符号定点小数乘法:FMULSURd,Rr

avr单片机指令表

四、位操作和位测试指令

1、带进位逻辑操作指令

寄存器逻辑左移:LSL Rd

寄存器逻辑右移:LSR Rd

带进位位的寄存器逻辑循环左移:ROL Rd

带进位位的寄存器逻辑循环右移:ROR Rd

寄存器算术右移:ASR Rd

寄存器半字节交换:SWAP Rd

2、位变量传送指令

寄存器中的位存储到SREG中的T标志:BST Rr,b

SREG中的T标志位值装入寄存器Rd中的某一位:BLD Rd,b

3、位变量修改指令

状态寄存器SREG的指定位置位:BSET s

状态寄存器SREG的指定位清零:BCLR s

I/O寄存器的指定位置位:SBI P,b

I/O寄存器的指定位清零:CBI P,b

置进位位:SEC

清进位位:CLC

置负标志位:SEN

清负标志位:CLN

置零标志位:SEZ

清零标志位:CLZ

使能全局中断位:SEI

禁止全局中断位:CLI

置S标志位:SES

清S标志位:CLS

置溢出标志位:SEV

清溢出标志位:CLV

置T标志位:SET

清T标志位:CLT

置半进位标志:SEH

清半进位标志:CLH

五、MCU控制指令

空操作指令:NOP

进入休眠方式指令:SLEEP

清0看门狗计数器:WDR

其实还不只这些,这些都是在以后工作学习中经常用到的,avr单片机指令就像上面这样规划好,那么这样的话,对这些指令的记忆还是很不错的,可以让你更加快速高效的记忆,这些指令,你必须要大体都知道,不要求你死记硬背,但是在用的时候会用,而且还要多多实践,这样是很有帮助的。

上一篇:单片机介绍 生活中无处不在的单片机

下一篇:单片机汇编语言 常见的错误失败原因分析

热点文章推荐
华清学员就业榜单
高薪学员经验分享
热点新闻推荐
前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2022 北京华清远见科技集团有限公司 版权所有 ,京ICP备16055225号-5京公海网安备11010802025203号

回到顶部