AVR单片机指令系统计算机的指令系统是一套控制计算机操作的代码,称之为机器语言。计算机只能识别和执行机器语言的指令。为了便于人们理解、记忆和使用,通常用汇编语言指令来描述计算机的指令系统。汇编语言指令可通过汇编器翻译成计算机能识别的机器语言。AVR单片机指令系统是RISC结构的精简指令集,是一种简明易掌握﹑效率高的指令系统。SL-DIY02-3开发实验器使用AT90S8535单片机,有118条指令,而我们所做的11个实验程序仅用了34条指令,我们重点讲这34条指令,其余指令就可自学了。AVR器件(指令速查表)118条指令器件AT90S2313/2323/2343/2333,AT90S4414/4433/4434/8515,AT90S8534/8535算术和逻辑指令BRCCkC清零转位指令和位测试指令ADDRd,Rr加法BRSHk≥转SBIP,b置位I/O位ADCRd,Rr带进位加BRLOk小于转(无符号)CBIP,b清零I/O位◇ADIWRdl,K加立即数BRMIk负数转移LSLRd左移SUBRd,Rr减法BRPLk正数转移LSRRd右移SUBIRd,Rr减立即数BRGEk≥转(带符号)ROLRd带进位左循环SBCRd,Rr带进位减BRLTk小于转(带符号)RORRd带进位右循环SBCIRd,K带C减立即数BRHSkH置位转移ASRRd算术右移◇SBIWRdl,K减立即数BRHCkH清零转移SWAPRd半字节交换ANDRd,Rr与BRTSkT置位转移BSETs置位SREGANDIRd,K与立即数BRTCkT清零转移BCLRs清零SREGORRd,Rr或BRVSkV置位转移BSTRr,bRr的b位送TORIRd,K或立即数BRVCkV清零转移BLDRdT送Rr的b位EORRd,Rr异或BRIEk中断位置位转移SEC置位CCOMRd取反BRIDk中断位清零转移CLC清零CNEGRd取补数据传送指令SEN置位NSBRRd,K寄存器位置位MOVRd,Rr寄存器传送CLN清零NCBRRd,K寄存器位清零◇LDIRd,K装入立即数SEZ置位ZINCRd加1◇LDRd,XX间接取数CLZ清零ZDECRd减1◇LDRd,X+X间接取数后+SEI置位ITSTRd测试零或负◇LDRd,-XX间接取数先-CLI清零ICLRRd寄存器清零◇LDRd,YY间接取数SES置位SSERRd寄存器置FF◇LDRd,Y+Y间接取数后+CLS清零S条件转移指令◇LDRd,–YY间接取数先-SEV置位VRJMPk相对转移◇LDDRd,Y+qY间接取数+qCLV清零V◇IJMP间接转移(Z)◇LDRd,ZZ间接取数SET置位TRCALLk相对调用◇LDRd,Z+Z间接取数后+CLT清零T◇ICALL间接调用(Z)◇LDRd,–ZZ间接取数先-SEH置位HRET子程序返回◇LDDRd,Z+qZ间接取数+qCLH清零HRETI中断返回◇LDSRd,K从SRAM装入NOP空操作CPSERd,Rr比较相等跳行◇STX,RrX间接存数SLEEP休眠指令CPRd,Rr比较◇STX+,RrX间接存数后+WDR看门狗复位CPCRd,Rr带进位比较◇ST–X,RrX间接存数先-90条指令为Attiny11/12/15/22=□+89条基本指令是AT90S1200CPIRd,K与立即数比较◇STY,RrY间接存数SBRCRr,b位清零跳行◇STY+,RrY间接存数后+SBRSRr,b位置位跳行◇ST–Y,RrY间接存数先-SBICP,bI/O位清零跳行◇STDY+q,RrY间接存数+qSBISP,bI/O位置位跳行STZ,RrZ间接存数BRBSs,kSREG位置位转◇STZ+,RrZ间接存数后+118条指令器件=◇+90条指令器件BRBCs,kSREG位清零转◇ST–Z,RrZ间接存数先-BREQk相等转移◇STDZ+q,RrZ间接存数+qBRNEk不相等转移◇STSk,,Rr数据送SRAMBRCSkC置位转□LPM从程序区取数INRd,P从I/O口取数OUTP,Rdr存数I/O口PUSHRr压栈POPRd,出栈