AVR单片机指令详解与不同器件对应
需积分: 10 85 浏览量
更新于2024-07-30
收藏 163KB PDF 举报
AVR单位片机指令是针对Atmel公司生产的AVR系列单片机(如ATmega161、ATtiny11/12/15/22、AT90S2313/2323/2343/2333等)设计的一套指令集。这些指令集根据不同型号的AVR器件,具有不同的指令数量和特性。以下是一些关键的指令及其功能:
1. **基本运算指令**:
- `addrd,rr`:加法操作,将寄存器`rr`的值加上另一个寄存器或立即数,并将结果存回`rr`。
- `subrd,rr`:减法操作,从`rr`中减去另一个寄存器或立即数。
- `lsld,rr`:左移操作,将`rr`中的数据左移指定的位数。
- `lsrd,rr`:带进位的右移操作,将`rr`中的数据右移指定的位数。
- `rorrd,rr`:带进位的循环右移操作,将`rr`中的数据循环右移。
2. **条件转移指令**:
- `sbrcrr,b`:如果`rr`的第`b`位清零,则执行下一条指令。
- `sbisp,bi/o`:如果I/O端口的`bi/o`位置位,则执行下一条指令。
- `brbss,ksreg`:如果标志寄存器的`ksreg`位设置,则转到指定地址。
- `brbcs,ksreg`:如果标志寄存器的`ksreg`位未设置,则转到指定地址。
3. **位操作指令**:
- `sbip,b`:如果输入引脚`b`置位,则执行下一条指令。
- `cbip,b`:如果输入引脚`b`清零,则执行下一条指令。
- `sbrsrr,b`:如果`rr`的第`b`位置位,则执行下一条指令。
- `cbrrd,k`:将寄存器`rr`的第`k`位清零。
4. **控制转移指令**:
- `brlok`/`brltk`:根据操作数的大小进行无符号或带符号的转移,判断是否满足条件。
- `brmik`/`brplk`:根据操作数的符号进行转移,当操作数为负/正时执行特定指令。
- `bsets`/`bclrs`:设置/清零标志寄存器的指定位。
5. **位操作辅助指令**:
- `bldrd,bt`:将寄存器`rr`的第`b`位复制到`bt`。
- `negrd`:对`rr`执行取反操作。
- `sen`:置位特定标志(可能是中断请求)。
6. **与/或/异或操作**:
- `andrd,rr`:逻辑与操作,如果`rr`与指定值相等则转移。
- `orrd,rr`:逻辑或操作,如果`rr`与指定值置位则转移。
- `eordr,rr`:逻辑异或操作,根据指定值的奇偶性决定转移。
每个AVR型号的指令集可能会有所扩展,例如ATmega161相较于基础型号(如AT90S1200)增加了更多的指令,以支持更复杂的计算和功能。了解和掌握这些指令对于编写AVR单片机程序至关重要,因为它们直接影响到代码的效率和功能实现。通过查阅各种AVR器件的指令比较表,开发者可以根据具体硬件选择合适的指令来编写针对性的程序。
2010-10-08 上传
2023-06-11 上传
2023-09-03 上传
2023-06-08 上传
2023-05-31 上传
2023-05-10 上传
2023-06-11 上传
2023-06-08 上传
2023-06-08 上传
mansung
- 粉丝: 0
- 资源: 6
最新资源
- WebLogic集群配置与管理实战指南
- AIX5.3上安装Weblogic 9.2详细步骤
- 面向对象编程模拟试题详解与解析
- Flex+FMS2.0中文教程:开发流媒体应用的实践指南
- PID调节深入解析:从入门到精通
- 数字水印技术:保护版权的新防线
- 8位数码管显示24小时制数字电子钟程序设计
- Mhdd免费版详细使用教程:硬盘检测与坏道屏蔽
- 操作系统期末复习指南:进程、线程与系统调用详解
- Cognos8性能优化指南:软件参数与报表设计调优
- Cognos8开发入门:从Transformer到ReportStudio
- Cisco 6509交换机配置全面指南
- C#入门:XML基础教程与实例解析
- Matlab振动分析详解:从单自由度到6自由度模型
- Eclipse JDT中的ASTParser详解与核心类介绍
- Java程序员必备资源网站大全