當(dāng)前位置:首頁(yè) > 嵌入式培訓(xùn) > 單片機(jī)學(xué)習(xí) > 單片機(jī)編程入門(mén) > 嵌入式大神總結(jié)的avr單片機(jī)指令表,帶你加深記憶
avr單片機(jī)是推出的比較新穎的單片機(jī),對(duì)于avr單片機(jī)來(lái)說(shuō),高性能、高速度、低功耗等這些都是他的優(yōu)勢(shì),AVR單片機(jī)指令以字為單位,且大部分指令都為單周期指令。而單周期既可執(zhí)行本指令功能,同時(shí)完成下一條指令的讀取。通常時(shí)鐘頻率用4~8MHz,故最短 指令執(zhí)行時(shí)間為250~125ns,那么問(wèn)題來(lái)了,對(duì)于avr單片機(jī)來(lái)說(shuō)。指令就是極為重要的了,那么我們來(lái)看看人家嵌入式大神的avr單片機(jī)指令總結(jié):
一、數(shù)據(jù)傳送指令
1、直接尋址數(shù)據(jù)傳送指令
工作寄存器間傳送數(shù)據(jù):MOV Rd,Rr
SRAM數(shù)據(jù)直接送寄存器:LDS Rd,k
寄存器數(shù)據(jù)直接送SRAM:STS k,Rr
立即數(shù)送寄存器:LDI Rd,K
2、間接尋址數(shù)據(jù)傳送指令
①使用X指針寄存器間接尋址傳送數(shù)據(jù)
使用地址指針寄存器X間接尋址將SRAM內(nèi)容裝入到指定寄存器:
LD Rd,X
LD Rd,X+
LD Rd,-X
使用地址指針寄存器X間接尋址將寄存器內(nèi)容存儲(chǔ)到SRAM:
ST X,Rr
ST X+,Rr
ST –X,Rr
②使用Y指針寄存器間接尋址傳送數(shù)據(jù)
使用地址指針寄存器Y間接尋址將SRAM內(nèi)容裝入到指定寄存器:
LD Rd,Y
LD Rd,Y+
LD Rd,-Y
LDD Rd,Y+q
使用地址指針寄存器Y間接尋址將寄存器內(nèi)容存儲(chǔ)到SRAM:
ST Y,Rr
ST Y+,Rr
ST –Y,Rr
STD Y+q,Rr
③使用Z指針寄存器間接尋址傳送數(shù)據(jù)
使用地址指針寄存器Y間接尋址將SRAM內(nèi)容裝入到指定寄存器:
LD Rd,Z
LD Rd,Z+
LD Rd,-Z
LDD Rd,Z+q
使用地址指針寄存器Y間接尋址將寄存器內(nèi)容存儲(chǔ)到SRAM:
ST Z,Rr
ST Z+,Rr
ST –Z,Rr
STD Z+q,Rr
3、從程序存儲(chǔ)器中取數(shù)裝入寄存器指令
從程序存儲(chǔ)器中取數(shù)裝入寄存器R0:LPM
從程序存儲(chǔ)器中取數(shù)裝入寄存器Rd:LPM Rd,Z
帶后增量的從程序存儲(chǔ)器中取數(shù)裝入寄存器Rd:LPM Rd,Z+
4、寫(xiě)程序存儲(chǔ)器指令
寫(xiě)程序存儲(chǔ)器:SPM
5、I/O口數(shù)據(jù)傳送指令
I/O口數(shù)據(jù)裝入寄存器:IN Rd,P
寄存器數(shù)據(jù)送I/O口:OUT P,Rr
6、堆棧操作指令
進(jìn)棧指令:PUSH Rr
出棧指令:POP Rd
二、跳轉(zhuǎn)指令
1、無(wú)條件跳轉(zhuǎn)指令
相對(duì)跳轉(zhuǎn):RJMP k
間接跳轉(zhuǎn):IJMP
直接跳轉(zhuǎn):JMP k
2、條件跳轉(zhuǎn)指令
①測(cè)試條件符合跳轉(zhuǎn)指令
狀態(tài)寄存器中位為“1”跳轉(zhuǎn):BRBS s,k
狀態(tài)寄存器中位為“0”跳轉(zhuǎn):BRBC s,k
相等跳轉(zhuǎn):BREQ k
不相等跳轉(zhuǎn):BRNE k
進(jìn)位標(biāo)志位C為“1”跳轉(zhuǎn):BRCS k
進(jìn)位標(biāo)志位C為“0”跳轉(zhuǎn):BRCC k
大于或等于跳轉(zhuǎn)(對(duì)無(wú)符號(hào)數(shù)):BRSH k
小于跳轉(zhuǎn):BRLO k
結(jié)果為負(fù)跳轉(zhuǎn):BRMI k
結(jié)果為正跳轉(zhuǎn):BRPL k
大于或等于跳轉(zhuǎn)(帶符號(hào)數(shù)):BRGE k
小于跳轉(zhuǎn)(帶符號(hào)數(shù)):BRLT k
半進(jìn)位標(biāo)志H為“1”跳轉(zhuǎn):BRHS k
半進(jìn)位標(biāo)志H為“0”跳轉(zhuǎn):BRHC k
T標(biāo)志為“1”跳轉(zhuǎn):BRTS k
T標(biāo)志為“0”跳轉(zhuǎn):BRTC k
溢出標(biāo)志V為“1”跳轉(zhuǎn):BRVS k
溢出標(biāo)志V為“0”跳轉(zhuǎn):BRVC k
中斷標(biāo)志I為“1”跳轉(zhuǎn):BRIE k
中斷標(biāo)志I為“0”跳轉(zhuǎn):BRID k
②測(cè)試條件符合跳行跳轉(zhuǎn)指令
相等跳行:CPSE Rd,Rr
寄存器位為“1”跳行:SBRS Rr,b
寄存器位為“0”跳行:SBRC Rr,b
I/O寄存器位為“1”跳行:SBIS P,b
I/O寄存器位為“0”跳行:SBIC P,b
3、子程序調(diào)用和返回指令
相對(duì)調(diào)用:RCALL k
間接調(diào)用:ICALL
直接調(diào)用:CALL k
從子程序返回:RET
從中斷程序返回:RETI
三、算術(shù)和邏輯指令
1、加法指令
不帶進(jìn)位位加法:ADD Rd,Rr
帶進(jìn)位位加法:ADC Rd,Rr
字加立即數(shù):ADIW Rdl,K
增1指令:INCRd
2、減法指令
不帶進(jìn)位位減法:SUB Rd,Rr
減立即數(shù)(字節(jié)):SUBI Rd,K
帶進(jìn)位位減法SBC :Rd,Rr
帶進(jìn)位位減立即數(shù)(字節(jié)):SBCI Rd,K
減立即數(shù)(字):SBIW Rdl,K
減1指令:DECRd
3、取反碼指令
COM Rd
4、取補(bǔ)碼指令
NEG Rd
5、比較指令
寄存器比較:CP Rd,Rr
帶進(jìn)位比較:CPC Rd,Rr
與立即數(shù)(字節(jié))比較:CPI Rd,K
6、邏輯“與”指令
寄存器邏輯“與”:AND Rd,Rr
“與”立即數(shù)(字節(jié)):ANDI Rd,K
寄存器位清零:CBR Rd,K
測(cè)試寄存器為零或負(fù):TST Rd
7、邏輯“或”指令
寄存器邏輯“或”:OR Rd,Rr
“或”立即數(shù)(字節(jié)):ORI Rd,K
置寄存器位:SBR Rd,K
置寄存器為$FF:SER Rd
8、邏輯“異或”指令
寄存器“異或”:EOR Rd,Rr
寄存器清零:CLR Rd
9、乘法指令
無(wú)符號(hào)數(shù)乘法:MUL Rd,Rr
有符號(hào)數(shù)乘法:MULS Rd,Rr
有符號(hào)數(shù)與無(wú)符號(hào)數(shù)乘法:MULSU Rd,Rr
無(wú)符號(hào)定點(diǎn)小數(shù)乘法:FMUL Rd,Rr
有符號(hào)定點(diǎn)小數(shù)乘法:FMULS Rd,Rr
有符號(hào)定點(diǎn)小數(shù)和無(wú)符號(hào)定點(diǎn)小數(shù)乘法:FMULSURd,Rr
四、位操作和位測(cè)試指令
1、帶進(jìn)位邏輯操作指令
寄存器邏輯左移:LSL Rd
寄存器邏輯右移:LSR Rd
帶進(jìn)位位的寄存器邏輯循環(huán)左移:ROL Rd
帶進(jìn)位位的寄存器邏輯循環(huán)右移:ROR Rd
寄存器算術(shù)右移:ASR Rd
寄存器半字節(jié)交換:SWAP Rd
2、位變量傳送指令
寄存器中的位存儲(chǔ)到SREG中的T標(biāo)志:BST Rr,b
SREG中的T標(biāo)志位值裝入寄存器Rd中的某一位:BLD Rd,b
3、位變量修改指令
狀態(tài)寄存器SREG的指定位置位:BSET s
狀態(tài)寄存器SREG的指定位清零:BCLR s
I/O寄存器的指定位置位:SBI P,b
I/O寄存器的指定位清零:CBI P,b
置進(jìn)位位:SEC
清進(jìn)位位:CLC
置負(fù)標(biāo)志位:SEN
清負(fù)標(biāo)志位:CLN
置零標(biāo)志位:SEZ
清零標(biāo)志位:CLZ
使能全局中斷位:SEI
禁止全局中斷位:CLI
置S標(biāo)志位:SES
清S標(biāo)志位:CLS
置溢出標(biāo)志位:SEV
清溢出標(biāo)志位:CLV
置T標(biāo)志位:SET
清T標(biāo)志位:CLT
置半進(jìn)位標(biāo)志:SEH
清半進(jìn)位標(biāo)志:CLH
五、MCU控制指令
空操作指令:NOP
進(jìn)入休眠方式指令:SLEEP
清0看門(mén)狗計(jì)數(shù)器:WDR
其實(shí)還不只這些,這些都是在以后工作學(xué)習(xí)中經(jīng)常用到的,avr單片機(jī)指令就像上面這樣規(guī)劃好,那么這樣的話(huà),對(duì)這些指令的記憶還是很不錯(cuò)的,可以讓你更加快速高效的記憶,這些指令,你必須要大體都知道,不要求你死記硬背,但是在用的時(shí)候會(huì)用,而且還要多多實(shí)踐,這樣是很有幫助的。