AVR指令表
- 格式:pdf
- 大小:235.54 KB
- 文档页数:4
AVR指令表 2000/5耿德根编
算术和逻辑指令条件转移指令
ADDRd,Rr加法RJMP相对转移(-2KK2K)
ADCRd,Rr带进位加法IJMP间接跳转(128KB)
ADIWRd,K直接数加法JMPk长跳转(4M)
SUBRd,Rr减法RCALLk相对调用(-2KK2K)
SUBIRd,K立即数减ICALL间接调用(128KB)
SBCRd,Rr带进位减CALLk长调用(4M)
SBCIRd,K带进位立即数减RET子程序返回
SBIWRd,K立即数减法RETI中断返回
ANDRd,Rr逻辑与CPSERd,Rr比较相等跳行
ANDIRd,K直接数逻辑与CPRd,Rr比较
ORRd,Rr逻辑或CPCRd,Rr带进位比较
ORIRd,K直接数逻辑或CPIRd,K带直接数比较
EORRd,Rr异或SBRCRd,b寄存器位被清零跳行
COMRd取二进制反码SBRSRd,b寄存器位置位跳行
NEGRd二进制补码SBICP,bI/O寄存器的位清零跳行
SBRRd,K寄存器位置位SBISP,bI/O寄存器的位置位跳行
CBRRd,K清除进位标志BRBSS,kSREG中的位被置位转移
INCRd加1BRBCS,kSREG中的位被清除转移
DECRd减1BREQk相等转移
TSTRd测试零或负BRNEk不相等转移
CLRRd清除寄存器BRCSk进位位置位转移
SERRd置位寄存器所有位BRCCk进位位清除转移
MULRd,Rr乘法BRSHk高于等于转
寄存器和操作码BRLOk低于转移(无符号)
Rd:寄存器文件中的目的(或源)寄存器BRMIk负数转移
Rr: 寄存器文件中的源寄存器BRPLk正数转移
R:指令执行后的结果BRGEk大于或等于转移(带符号)
K:常数项或字节数据(8位)BRLTk小于转移(有符号)
k:程序计数器的常量地址数据BRHSk半进位标志置位转移
b:在寄存器文件中或I/O(3位)中的位BRHCk半进位标志被清除转移
s: 在状态寄存器 (3位)中的位BRTSkT标志被置位转移
X,Y,Z:间接地址寄存器BRTCkT标志被清除转移
P:I/O口地址BRVSk溢出标志被置位转移
q:直接寻址的偏移(6位)BRVCk溢出标志被转移清除
状态寄存器BRIEk全局中断被使能转移
SREG: 状态寄存器S:N⊕V,符号测试位BRIDk全局中断被禁止转移
C:进位标志位H:半进位标志位状态寄存器(SREG)和布尔格式
Z:零标志位N:负数标志位I T H S V N Z C
V:2的补码溢出指示位7 6 5 4 3 2 1 0
T:用于BLD和BST指令传送位
I:全局中断使能禁止标志位标志: =/0/1/-; = 由指令引起的有效标志
AVR C高级语言的效率
执行同功能的程序,
8MHzAVR224MHz C51
不再有作废的产品; 不需要5分钟的紫外线擦除时间;
再也用不着因为掩模而无法入睡了; 没有10周订货交货时间;
添加新特性易如反掌; 容易调试; 容易在线升级,几秒钟搞定;想想AVR的好处? AVR指令表 2000/5耿德根编数据传送指令位指令和位测试指令
MOVRd,Rr寄存器拷贝LSLRd
逻辑左移
LDIRd,K装入立即数LSRRd逻辑右移
LDSRd,K直接从SRAM装入ROLRd通过进位左循环
LDRd,XX变址间接装入RRORRd通过进位右循环
LDRd,X+X变址ASRRd算术右移
LDRd,-XX变址SWAPs半字节交换
LDRd,YY变址BSETs置状态寄存器的位
LDRd,Y+Y变址BCLRsSREG中的位清除
LDRd,-YY变址SBIP,b置I/O寄存器的位
LDDRd,Y+qY变址间接装入RCBIP,b清I/O寄存器的位
LDRd,ZZ变址BSTRr,bR中位到SREG中T标志
LDRd,Z+Z变址BLDRd,bSREG中T标志到R某位
LDRd,-ZZ变址SEC置位进位标志
LDDRd,Z+qZ变址CLC清除进位标志
STSK,RrR数据直接送SRAMSEN置位负数标志
STX,RrX变址间接装入SRAMCLN清除负数标志
STX+,RrX变址SEZ置位零标志
ST-X,RrX变址CLZ清零标志位
STY,RrY变址SEI置位全局中断标志
STY+,RrY变址CLI清除全局中断标志
ST-Y,RrY变址SES置位符号标志
STDY+q,Rr变址间接装入SRAMCLS清除符号标志
STZ,RrZ变址SEV置位溢出标志位
STZ+,RrZ变址CLV清除溢出标志
ST-Z,RrZ变址SET置位T标志
STDZ+q,RrZ变址CLT清除T标志
LPM装入程序存储器SEH置位半进位标志
INRd,PI/O口数据装入到RCLH清除半进位标志
OUTP,Rr寄存器数据送I/O口NOP空操作
PUSHRr压寄存器到堆栈SLEEP休眠
POPRd堆栈弹出到寄存器WDR看门狗复位
汇编器伪指令(伪指令前必须加 “ .. ” )
.BYTE-- 保存寄节到变量.CSEG-- 代码段
.DB-- 字节常数.EXIT-- 退出文件
.DEF-- 设置寄存器的符号名.INCLUDE--包括号外的文件
.DEVICE--定义被汇编的器件.LIST-- 打开列表文件生成器
.DSEG-- 数据段.LISTMAC--打开宏表达式
.DW-- 字常数.MACRO-- 宏开始
.ENDMACRO--宏结束.NOLIST-- 关闭列表文件生成器
.EQU-- 设置符号相等于一个表达式.ORG-- 设置程序起始位置
.ESEG-- EPROM段.SET-- 设置一个与表达式相等的符号
AVR ICE200在线仿真器 双龙电子为中国大陆总代理
ICE200可仿真的器件为AT90S1200/2313/2333/4433/4414/8515/4434/8535及
ATtiny10/11/12由于仿真器的电源不对外所以ICE200也支持低电压器件AT90S I/O空间定义
十六进制地址名 称AT90SMEG103名 称AT90S1200名 称AT90S8515功 能(对应8515名称,*为对应MEG103)
$3F($5F)SREGSREGSREG状态寄存器
$3E($5E)SPHSPH堆栈指针高
$3D($5D)SPLSPL堆栈指针低
$3C($5C)XDIVXTAL分频控制器 *
$3B($5B)RAMPZGIMSKGIMSK通用中断屏蔽寄存器
$3A($5A)EICRGIFR通用中断标态寄存器
$39($59)EIMSKTIMSKTIMSK定时器/计数器中断屏敝寄存器
$38($58)EIFRTIFRTIFR定时器/计数器中断标志寄存器
$37($57)TIMSK定时器/计数器中断屏敝寄存器 *
$36($56)TIFR定时器/计数器中断标志寄存器 *
$35($55)MCUCRMCUCRMCUCRMCU通用控制寄存器
$34($54)MCUSR MCU通用控制寄存器 *
$33($53)TCCR0TCCR0TCCR0定时器/计数器0控制寄存器
$32($52)TCNT0TCNT0TCNT0定时器/计数器0(8位)
$31($51)OCR0定时器/计数器0输出比较寄存器 *
$30($50)ASSR异步方式状态寄存器 *
$2F($4F)TCCR1ATCCR1A定时器/计数器1控制寄存器A
$2E($4E)TCCR1BTCCR1B定时器/计数器1控制寄存器B
$2D($4D)TCNT1HTCNT1H定时器/计数器1高字节
$2C($4C)TCNT1LTCNT1L定时器/计数器1低字节
$2B($4B)OCR1AHOCR1AH定时器/计数器1输出比较寄存器A高字节
$2A($4A)OCR1ALOCR1AL定时器/计数器1输出比较寄存器A低字节
$29($49)OCR1BHOCR1BH定时器/计数器1输出比较寄存器B高字节
$28($48)OCR1BLOCR1BL定时器/计数器1输出比较寄存器B低字节
$27($47)ICR1H定时器/计数器1输入捕获寄存器高字节 *
$26($46)ICR1L定时器/计数器1输入捕获寄存器低字节 *
$25($45)TCCR2ICR1HT/C1输入捕获寄存器高字节
$24($44)TCNT2ICR1LT/C1输入捕获寄存器低字节
$23($43)OCR2定时器/计数器2输出比较寄存器 *
$22($42)
$21($41)WDTCRWDTCRWDTCR看门狗定时控制寄存器
$20($40)
$1F($3F)EEARHEEARHEPROM地址寄存器高字节
$1E($3E)EEARLEEAREEARLEPROM地址寄存器低字节
$1D($3D)EEDREEDREEDREPROM数据寄存器
$1C($3C)EECREECREECREPROM控制寄存器
$1B($3B)PORTAPORTAA口数据寄存器
$1A($3A)DDRADDRAA口数据方向寄存器
$19($39)PINAPINAA口输入脚
$18($38)PORTBPORTBPORTBB口数据寄存器
$17($37)DDRBDDRBDDRBB口数据方向寄存器
$16($36)PINBPINBPINBB口输入脚
$15($35)PORTCPORTCC口数据寄存器
$14($34)ODRCC口数据方向寄存器
$13($33)PINCC口输入脚
$12($32)P0RTDPORTDPORTDD口数据寄存器
$11($31)DDRDDDRDDDRDD口数据方向寄存器$10($30)PINDPINDPINDD口输入脚
$0F($2F)SPORSPORSPI I/O数据寄存器
$0E($2E)SPSRSPSRSPI状态寄存器
$0D($2D)SPCRSPCRSPI控制寄存器
$0C($2C)UDRUDRUART I/O数据寄存器
$0B($2B)USRUSRUART状态寄存器
$0A($2A)UCRUCRUART控制寄存器
$09($29)UBRRUBRRUART波特率寄存器
$08($28)ACSRACSRACSR模拟比较控制和状态寄存器
$07($27)ADMUXADC多路选择寄存器 *
$06($26)ADCSRADC状态和控制寄存器 *
$05($25)ADCHADC数据寄存器高 *
$04($24)ADCLADC数据寄存器低 *
$03($23)PORIEE口数据寄存器 *
$02($22)DDREE口数据方向寄存器 *
$01($21)PINEE口输入脚 *
$00($20)PINFF口输入脚 *
复位和中断向量
向量号程序地址源源中断定义1$000/RESET/RESET硬件脚和看门狗复位
2$001INT0INT0外部中断请求0
3$002INT1INT1外部中断请求1
4$003TIMER1 CAPTTIMER1 CAPT定时器/计数器1捕获事件
5$004TIMER1 COMPATIMER1 COMPA定时器/计数器1比较匹配A
6$005TIMER1 COMPBTIMER1 COMPB定时器/计数器1比较匹配B
7$006TIMER1 OVFTIMER1 OVF定时器/计数器1溢出
8$007TIMER0 OVFTIMER0 OVF定时器/计数器0溢出
9$008SPI,STCSPI,STC串行传送完成
10$009UART,RXUART,RXUART,RX完成
11$00AUART,UDREUART,UDREUART数据寄存器空
12$00BUART,TXUART,TXUART,TX完成