avr单片机的内部结构

发布者:清新自然最新更新时间:2019-11-15 来源: 51hei关键字:avr  单片机  内部结构 手机看文章 扫描二维码
随时随地手机看文章

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


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


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

 

位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指令从子程序或中断返回时堆栈指针加二。

关键字:avr  单片机  内部结构 引用地址:avr单片机的内部结构

上一篇:AVR的指令与汇编器系统及宏指令
下一篇:avr宏汇编和表达式

推荐阅读最新更新时间:2024-11-01 22:08

Silicon Labs:现在才是推出ARM单片机的好时机
2003年,Silicon Labs通过收购Cygnal Integrated Products,成功进入MCU领域。同时结合了Silicon Labs在接口等模拟混合信号接口上的优势,推出了一系列独特的基于8051内核的单片机产品,其中包括带有USB、触摸、射频的MCU,同时也包括低功耗MCU。 谈到低功耗MCU,我无意间找到了一个视频,就是Silicon Labs如何与Microchip的产品做对比的广告片,大家不妨先轻松一下。 一直以来,Silicon Labs所从事的都是8位单片机的开发,而现在随着ARM的广泛应用,公司开始拓展在ARM架构下的产品,正式推出Precision32单片机。公司单片机产品线总经理M
[单片机]
Silicon Labs:现在才是推出ARM<font color='red'>单片机</font>的好时机
单片机进行脉宽调制(PWM) 直流电机调速测试程序
单片机 进行脉宽 调制 ( PWM ) 直流电机调速测试程序 ;UNL2003提供电机驱动 电流 .( =500MA/5V) ;使用六个按键实现六种不同速度 DC BIT P1.0 speed equ 20h org 000h jmp dc_MOTOR ORG 100H dc_MOTOR: MOV a,p1 MOV speed,a ;键盘去抖动 lcall del MOV a,p1 cjne a,speed,dc_MOTOR JB P3.3,JUD
[单片机]
基于单片机的气压式高度计设计
摘要:采用集成度高的压阻式硅气压传感器,运用模块化设计方法完成了基于C8051F353单片机的数字式气压高度计的设计。通过仿真软件采用分段插值方法优化提高测量精度,实现了数字式气压高度计的智能化。实验表明,本文设计的气压式高度计能够显著提高测量精度,非常适合对体积和功耗有要求的小型飞行器上使用,也可使用在地面仪表上,进行大气数据采集。 关键词:气压传感器;误差补偿;C8051F353;非线性校正 高度是载体到某一基准水平面的垂直距离,是导航的一个重要依据。气压传感器是气压式高度计的重要器件。传统的气压传感器信号调理电路校准和补偿电路复杂,稳定性差,不能直接用于计算机数字化处理,也不便于在便携式设备中集成。本气压式高度测量系
[工业控制]
基于<font color='red'>单片机</font>的气压式高度计设计
Modbus协议下单片机与eView触摸屏的通信方法
  Modbus协议由于其具有开放性、透明性、成本低、易于开发等特点,已成为当今工业领域通信协议的首选。   本文介绍了一种基于Modbus通信协议的eView触摸屏与常用的51单片机的通信方法。该方法通过C51编程实现Modbus通信,在51系列单片机上具有通用性,有一定的借鉴作用。   工业控制中经常需要观察系统的运行状态或者修改运行参数。触摸屏能够直观、生动地显示运行参数和运行状态,而且通过触摸屏画面可以直接修改系统运行参数,人机交互性好。单片机广泛应用于工控领域中,与触摸屏配合,可组成良好的人机交互环境。   触摸屏与单片机通信,需要根据触摸屏采用的通信协议为单片机编写相应的通信程序。Modbus协议是美国Modic
[单片机]
Modbus协议下<font color='red'>单片机</font>与eView触摸屏的通信方法
火拼32位MCU市场 NEC电子如是说
根据市调机构Gartner 2008年度研究报告,NEC电子的32位MCU在全球的销售额排名第一。在产业低迷的时期,如此骄人的战绩是来之不易的。敏锐洞察到市场对更加绿色智能产品的渴求,使得NEC电子用出色的低功耗产品来武装自己,从而赢得了市场。此外,正在于瑞萨科技商讨的合并事项,也表现出其鲸吞MCU市场的野心。 “随着低端市场的竞争日趋激烈,本土客户也在积极向高端市场靠近以获取更高的经济效益。”近日,EEWORLD就竞争愈发激烈的32位单片机市场状况及在中国的发展趋势采访了NEC电子大中国区汽车电子产品市场总监赵明宇。 虽然当前的市场状况并不乐观,但赵仍然看好中国高端MCU的发展,并表达了NEC电子在该领域志
[EEWORLD独家]
火拼32位<font color='red'>MCU</font>市场 NEC电子如是说
关于PIC单片机“读-修改-写”的相关说明
关于PIC单片机 读-修改-写 的相关说明 Topic: I have seen references to Read-Modify-Write instructions in your datasheet, but I do not know what that is. Can you explain what it is and why I need to know this? 我曾在数据手册里看到 读-修改-写 的相关说明,但我不知道这是什么。你能解释一下它的含义以及为什么要注意它吗? Discussion: An easy example of a Read-Modify-Write (or RMW) instru
[单片机]
单片机51小实验---跑马灯
以下这个程序我在实验箱上运行过,AT89C52功能:根据P2.X口的电平,若输入为1,则有X个灯在P0P1口上循环 ;输入为开关按键 ORG 0000H JMP8: MOV P2,#0FFH ;将所在口置1,即设为输入方式 MOV A,#0 ;初始化R1 MOV R1,A JB P2.0,SHOW1 ;判断P2口,若为1则转入相应的处理程序 JB P2.1,SHOW2 JB P2.2,SHOW3 JB P2.3,SH
[单片机]
泰矽微发布极低成本高压MCU芯片TCHV4018L
市场背景 智能化和电动化是汽车市场发展的两大主流方向,智能化的要求对整个汽车电子电气架构提出了新的挑战。原来架构中的一些孤岛控制单元通常只需要简单的电气控制,对芯片的外部资源要求比较低,但同时又要求远端节点具有跟域控之间的通讯能力,还有部分远端节点需要具备一定的计算能力,用于对传感器采集到的数据进行本地化融合处理或对执行单元进行简单的控制并监控其运行状态。 传统的控制架构采用分立方案,具有独立的LIN收发器,供电LDO和MCU,存在控制板面积大,MCU资源过剩,总体成本高,系统可靠性差等痛点,泰矽微新发布的TCHV4018L将32位M0 MCU与LIN收发器以及LDO供电进行了单芯片集成,实现了极低成本和极高的性价比的完
[单片机]
泰矽微发布极低成本高压<font color='red'>MCU</font>芯片TCHV4018L
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved