历史上的今天
返回首页

历史上的今天

今天是:2024年12月13日(星期五)

正在发生

2021年12月13日 | ATmega168 通用寄存器

2021-12-13 来源:eefocus

寄存器文件针对AVR增强型RISC指令集做了优化。为了获得需要的性能和灵活性,寄存器文件支持以下的输入/ 输出方案:
·输出一个 8 位操作数,输入一个 8 位结果
·输出两个 8 位操作数,输入一个 8 位结果
·输出两个 8 位操作数,输入一个 16 位结果
·输出一个 16 位操作数,输入一个 16 位结果
Figure 4 为CPU 32 个通用工作寄存器的结构。

ATmega168 通用工作寄存器机构

Figure 4. AVR CPU 通用工作寄存器


大多数操作寄存器文件的指令都可以直接访问所有的寄存器,而且多数这样的指令的执行时间为单个时钟周期。


如Figure 4 所示,每个寄存器都有一个数据内存地址,将他们直接映射到用户数据空间的头32 个地址。虽然寄存器文件的物理实现不是SRAM,这种内存组织方式在访问寄存器方面具有极大的灵活性,因为X、Y、Z 寄存器可以设置为指向任意寄存器的指针。

寄存器R26..R31 除了用作通用寄存器外,还可以作为数据间接寻址用的地址指针。这三个间接寻址寄存器示于Figure 5。

ATmega168三个间接寻址寄存器

Figure 5. X、Y、Z 寄存器
在不同的寻址模式中,这些地址寄存器可以实现固定偏移量,自动加一和自动减一功能。
具体细节请参见ATmega168指令集。


推荐阅读

史海拾趣

恒连电子(EVERCOM)公司的发展小趣事

恒连电子一直将品质管理和客户服务作为公司发展的生命线。公司建立了严格的质量管理体系和完善的售后服务体系,确保产品的品质和服务的质量。在品质管理方面,公司从原材料采购到产品生产的每一个环节都进行严格把控,确保产品的稳定性和可靠性。在客户服务方面,公司秉承“客户至上”的服务理念,为客户提供全方位、个性化的服务支持。通过优质的服务赢得了客户的信任和好评。

CSR plc(剑桥硅晶无线电)公司的发展小趣事

为了进一步拓展业务范围,CSR plc在2010年8月收购了专业音频压缩技术供应商APT。这次收购让CSR plc得以将APT-X的低延迟音频压缩编解码器与公司的下一代音频产品实现更紧密的集成,从而支持公司向前景更广阔的音频市场进军。这一举措不仅让CSR plc在音频领域取得了更大的市场份额,也为其未来的发展开辟了新的道路。

DEMMELPRODUCTS公司的发展小趣事

DEMMELPRODUCTS公司深知人才是企业发展的根本。因此,公司始终注重人才培养和团队建设。通过制定科学的培训计划和激励机制,公司吸引了一批优秀的研发、生产和销售人才。同时,公司还鼓励员工之间进行知识和经验的分享与交流,形成了积极向上的团队氛围。这些优秀的人才和团队为公司的发展提供了有力的支持。

Gentron Corp公司的发展小趣事
如果某个LED不亮或闪烁异常,可能是LED本身损坏,需要更换新的LED。
Hind Rectifiers Ltd公司的发展小趣事
如果闪烁速度不稳定,可以尝试调整定时器的电阻和电容值,以改变振荡频率。
Excelight Communications Inc公司的发展小趣事

作为一家有社会责任感的企业,Excelight始终关注社会公益事业。公司积极参与各类慈善活动和社会捐赠项目,为贫困地区的教育、医疗等事业做出了贡献。

此外,Excelight还注重环保和可持续发展。公司在生产过程中严格遵守环保法规和标准,积极采用环保材料和工艺。同时,Excelight还加强了节能减排和废弃物处理工作,努力实现绿色生产和可持续发展。

问答坊 | AI 解惑

我用1602LCD做了一个电子表。

程序是用站上的1602LCD7线接法程序改的,硬件一样。 程序存在小BUG,我也知道,你试试就知道了,很好改,因为程序本来就很简单。 1M的时钟,每秒中断,给秒加1,并判断是不是有进位。 LCD使用中的问题: 原来以25米买了一个,但回来怎么改 ...…

查看全部问答>

串口通信的处理方法? & 多线程处理?

我的程序需要实现这样的功能。系统由 arm + 51单片机实现。arm做主处理器 1.arm通过串口发送一串字符比如“123456” 2.51单片机接收到这个字符串“123456”后,发送一个相应字符,比如是“5” 3.arm接受到这个“5”后就确认发送成功。否则继续发 ...…

查看全部问答>

WinCE 5.0触摸屏驱动移植到WinCE 6.0出现的问题

使用的MPU是S3C2440。 触摸屏驱动在CE5.0下可以正常工作,移植到CE6.0只是稍微修改了一下source文件: !if \"$(BSP_NOTOUCH)\" == \"1\" SKIPBUILD=1 !endif SYNCHRONIZE_DRAIN=1 TARGETNAME=s3c2440a_touch RELEASETYPE=PLATFORM TARGETTYPE=D ...…

查看全部问答>

ARM 4510B外部IO问题

开发板为4510B,想扩展外部IO.  使用外部IO默认基址0x3FD. 当向地址0x3FD0000写数据的时候数据正确.但向地址0x3FD0001写数据的时候就不正常了.发过来的数据不正确,好像死机一样. 请问有谁知道这是怎么回事呀?…

查看全部问答>

keil uv3 出错,已经定义的函数,报错说没定义

为什么装了KEIL后,程序运行在别人的机子上是正确的!但是在我的机子上运行就报错!已经宏定义的函数,说函数没定义!希望那位大师指点下!…

查看全部问答>

项目外包

有个用X-WALL LX-40的做加密芯片应用需有外包,公司个人均可,有意者请与我联系! 电子邮箱:lmzou_bc@126.com QQ:379627159…

查看全部问答>

使用Console.write 在output windows怎么没有输出??

用2005的向导生成的smartphone2003的项目,使用Console.write 在output windows 里怎么没有输出?? 我是没用过.net的菜鸟,大家帮忙谢谢…

查看全部问答>

BIOS刷坏了 怎么办呢?

我的一台笔记本电脑的BIOS是PHOENIX牌子的,前些天我制作了一个U盘的DOS启动盘,里面存放了Phlash16.exe程序,刷了一下,前几次刷成功了,后来又被我改了几次,又刷了几次,觉得挺好玩,最后一次突然不让我刷了,当我进入DOS,运行Phlash16.exe程序 ...…

查看全部问答>

有tmsf2000吗,如果有和tmsc2000是个什么关系

有tmsf2000吗,如果有和tmsc2000是个什么关系…

查看全部问答>

【求助】如何测低功耗时的单片机的电流

我想测447lpm3下的电流。我直接把电流表串联在电源3v上了电流居然是46mv。这样测是不是不对啊,请哪位大虾指点。应该如何测啊…

查看全部问答>