历史上的今天
返回首页

历史上的今天

今天是:2025年01月21日(星期二)

正在发生

2020年01月21日 | AVR单片机的CPU内核结构及汇编语言

2020-01-21 来源:elecfans

学单片机那么久了,感觉想要深入,还得看汇编语言,至少得了解单片机内部结构。


下面就以ATmega16为例,介绍一下AVR单片机结构和汇编语言。


AVR单片机的CPU内核结构

AVR单片机的CPU内核结构及汇编语言
 

AVR单片机的CPU内核结构及汇编语言


 

如上两图,左图是虚线框内AVR CPU的内核结构,右图是AVR单片机内核结构的方框图,可以看出AVR单片机的数据总线(CPU字长)是8位的,也就说它是8位单片机。


AVR采用了Harvard结构,具有独立的数据和程序总线,CPU在执行一条指令的同时,就将PC中指定的下一条指令取出,构成了一级流水线运行方式,实现了一个时钟周期执行一条指令,数据吞吐量高达1MIPS/MHz。


AVR CPU内核由几个重要的部分组成,它们分别是:

A.算数逻辑单元ALU(Arithmetic Logic Unit)


AVR ALU与32个通用工作寄存器直接相连。寄存器与寄存器之间、寄存器与立即数之间的ALU运算只需要一个时钟周期。ALU操作分为3类:算术、逻辑和位操作,此外还提供了支持无/有符号数和分数乘法的乘法器,操作结果的状态将影响到状态寄存器SREG(Status Register)。


B.程序计数器PC、指令寄存器和指令译码器

程序计数器PC用来存放下一条需要执行指令在程序存储器(ROM)空间的地址(指向FlashROM空间),取出的指令存放在指令寄存器中,然后送入指令译码器中产生各种控制信号,控制CPU的运行(执行指令)。


AVR一条指令的长度大多数为16位,还有少部分为32位,因此AVR的程序存储器结构实际上是以字(16位)为一个存储单元的。


ATmega16单片机的程序计数器为13位,正好满足了对片内8K字(及16K字节)的Flash程序存储器空间直接寻址的需要。


C.通用寄存器General Purpose Registers

在AVR中,由命名为R0~R31的32个8位通用工作寄存器构成一个“通用快速工作寄存器组”,为ALU提供操作数。它们的在RAM的映射空间地址是$0000~$001F,其中有6个寄存器($001A-$001F)可以合并为3个16位间接寻址寄存器指针,分别被称为X寄存器,Y寄存器,和Z寄存器,用于对数据存储器(SRAM)进行间接寻址。


D.状态寄存器-SREG

状态寄存器SREG是一个8位标志寄存器,用来存放指令执行后的有关状态和结果的标志,各位状态通常是在指令执行过程中自动产生的,但也可以由用户根据需要用专用指令加以改变。

AVR单片机的CPU内核结构及汇编语言

位7-I:全局中断使能位

当I位被置位时,表示CPU可以响应中断请求,反之,则所有中断被禁止。I位可以通过SEI和CLI指令来置位和清零,在中断发生后,I位由硬件清除,并由RETI(中断返回)指令置位。

位6-T:位拷贝存储

位拷贝指令BLD和BST利用T作为目的或源地址。BST把寄存器的某一位拷贝到T,而BLD把T拷贝到寄存器的某一位。

位5-H:半进位标志半进位标志H表示算术操作发生了半进位,此标志对于BCD运算非常有用。

位4-S:符号位S=N⊕V,S为负数标志N与2的补码溢出标志V的异或

位3-V:2的补码溢出标志,支持2的补码运算

位2-N:负数标志 表明算术或逻辑操作结果为负

位1-Z:零标志 表明算术或逻辑操作结果为零

位0-C:进位标志 表明算术或逻辑操作发生了进位


E.堆栈指针寄存器SP(Stack Point)

堆栈指针主要用来保存临时数据、局部变量和中断/子程序的返回地址。堆栈指针总是指向堆栈的顶部,AVR的堆栈是向下生长的,即新的数据推入堆栈时,堆栈指针的数值将减小。

处在I/O地址空间的&3E($005E)和$3D($005D)的两个8位寄存器构成了AVR单片机的16位堆栈指针寄存器SP,分别为SPH,SPL。


堆栈指针指向数据SRAM堆栈区,必须指向高于0x60的地址空间,所以通常初始化时将SP的指针设在SRAM最高处。


使用PUSH指令将数据推入堆栈时指针减一;而子程序或中断返回地址推入堆栈时指针将减二。


使用POP指令将数据弹出堆栈时,堆栈指针加一;而用RET或RETI指令从子程序或中断返回时堆栈指针加二。

推荐阅读

史海拾趣

Gennum ( Semtech )公司的发展小趣事
确保所有元件都已正确安装,没有损坏或接错。
Heidenhain Corp公司的发展小趣事

随着电子行业的快速发展,对高精度电子元件的需求日益增长。海德汉公司凭借其iTNC系列数控系统的高精度控制能力,成为众多电子元件制造商的首选合作伙伴。某知名电子元件生产商在引入海德汉iTNC 530数控系统后,成功实现了微型电子元件的精密加工,将加工精度提升至微米级,大大提高了产品的质量和市场竞争力。这一合作不仅巩固了海德汉在高精度加工领域的领先地位,也推动了电子行业向更高精度、更高质量方向发展。

EOZ S.A.S公司的发展小趣事

为了进一步扩大市场份额,EOZ S.A.S公司积极实施国际化战略。公司通过参加国际电子展、建立海外研发中心和生产基地等方式,加强与国际市场的联系和合作。同时,EOZ S.A.S还针对不同国家和地区的消费者需求进行产品定制和本地化营销,成功将产品打入多个国际市场并取得良好业绩。

ESTEK公司的发展小趣事

在电子行业竞争日益激烈的背景下,ESTEK公司也面临着诸多挑战和危机。然而,公司始终保持着清醒的头脑和坚定的信心。在面对市场波动、原材料价格上涨等挑战时,ESTEK公司迅速调整战略、优化生产流程、降低成本等措施,成功度过了危机。在危机中,ESTEK公司展现出了强大的韧性和生命力,为公司未来的发展奠定了坚实基础。

FETek Technology(东沅)公司的发展小趣事

在快速发展的过程中,东沅始终坚持以客户为中心的经营理念。他们深入了解客户的需求和反馈,不断优化产品和服务。同时,东沅还注重持续创新,不断推出具有领先技术水平和市场竞争力的新产品。这些努力使得东沅在激烈的市场竞争中保持领先地位,赢得了客户的信任和支持。

请注意,以上故事仅为虚构示例,旨在展示FETek Technology(东沅)公司可能的发展历程和里程碑。实际的发展情况可能有所不同,具体细节请以公司官方发布的信息为准。

Ceramics公司的发展小趣事

某家名为“创新陶瓷”的Ceramics公司,通过不断研发新技术,成功打破了传统陶瓷材料在电子领域的应用限制。该公司推出了一款具有高热导率、低电阻率的陶瓷基板,显著提高了电子设备的性能稳定性。这一创新不仅赢得了市场的广泛认可,还吸引了多家知名电子厂商的合作意向。创新陶瓷通过持续的技术创新,逐渐在电子行业树立了领先地位。

问答坊 | AI 解惑

(清华)电路原理课件1

(清华)电路原理课件…

查看全部问答>

请问这是不是解码器的原因-------------------------------------up有分?

在Wince下使用directshow播放视频 视频文件是Avi的,压缩格式是MPEG4 现在问题是,RenderFile出错,错误原因找不到解码器 但是我定制系统的时候已经选了MPEG4的解码器,而且用TCPMP能播这个视频,是解码器没注册还是什么原因呢? 帮我分析分析 ...…

查看全部问答>

网络连接不稳,如何办

求教:    我是wince和硬件的新手,自己做了一块板子,现在网口老出问题。网口没有焊在板子上,只是拉了六个线出来;下载系统时,用tptf32给板子分配IP。    问题一:我在wince5.0下向ep9315开发板下载系统,常连接不上。在t ...…

查看全部问答>

Fatutil.dll和formatdisk.h这两个文件谁能给我发一下吗?邮箱是nanxi.su@tidever.com.cn

我安的是STANDARDSDK_420,安装目录下只发现了Fatutil.h这个文件,没有找到Fatutil.dll和formatdisk.h,哪位大虾有的话帮我发一下好吗?我想用FormatVolume函数格式化磁盘。…

查看全部问答>

用commondialog控件保存文件问题,知道的进来看看,帮帮忙,指导一下

Private Sub Command3_Click() CommonDialog1.CancelError = True On Error GoTo errhandler CommonDialog1.Filter = \"All Files(*.*)|*.*|Text Files(*.txt)|*.txt\" CommonDialog1.FilterIndex = 2 CommonDialog1.ShowSave Open CommonDia ...…

查看全部问答>

请教用F107做音频播放的方案

                                 用F107读SD卡上的音频文件,然后用IIS接口放音,不知这个方案对不?是否可行。我对IIS接口不熟,没用过。请高手指 ...…

查看全部问答>

电路设计中地的处理

电路设计中地的处理及地平面分割…

查看全部问答>

【MSP430共享】MSP430在冲击波测试系统中的应用

摘要:文章介绍了MSP430在无线冲击波测试系统中的应用,通过软件编程管理无线模块电源,防止了爆轰区对无线传输的干扰,控制模块电源进入低功耗,增加了系统的工作时间。并且在无线传输过程中起到桥梁纽带的作用。关键词:MSP430;测试系统;低功耗…

查看全部问答>