深圳市微雪电子有限公司

首页     产品中心     购买指南     支付方式     销售网点     人才招聘     关于我们
 


 
AVR 8-BIT MCU
 >> AVR 简介
 >> AVR 选型列表
 >> AVR Datasheets
 >> AVR 应用笔记
 >> AVR 软件平台
 >> AVR仿真器 编程器
 >> AVR开发板 评估板
 >> 测试座 | 编程座
 
 
  微控制器
 >> AVR 8-BIT MCU
 
  可编程逻辑器
 >> ATMEL CPLD & FPGA
 >> ALTERA CPLD & FPGA
 
  存储器
 >> EEPROM
 >> FLASH
 >> RAM
 
  接口器件
 >> USB 接口
 
  功能器件
 >> 实时时钟
 >> 光耦
 >> 其它
 
  模块 & 配件
 >> LCD模块

 首页 >> AVR应用笔记 >> AVR单片机内核剖析 >> ATmega16 堆栈指针
ATmega16 堆栈指针

堆栈指针主要用来保存临时数据、局部变量和中断/ 子程序的返回地址。堆栈指针总是指向堆栈的顶部。要注意AVR 的堆栈是向下生长的,即新数据推入堆栈时,堆栈指针的数值将减小。如果在调用或中断后读程序计数器,未用位(15:13) 应屏蔽。

堆栈指针指向数据SRAM 堆栈区。在此聚集了子程序堆栈和中断堆栈。调用子程序和使能中断之前必须定义堆栈空间,且堆栈指针必须指向高于0x60 的地址空间。使用PUSH指令将数据推入堆栈时指针减一;而子程序或中断返回地址推入堆栈时指针将减二。使用POP 指令将数据弹出堆栈时,堆栈指针加一;而用RET 或RETI 指令从子程序或中断返回时堆栈指针加二。

AVR的堆栈指针由I/O空间中的两个8位寄存器实现。实际使用的位数与具体器件有关。请注意某些AVR 器件的数据区太小,用SPL 就足够了。此时将不给出SPH 寄存器。

 

 

资料说明

可作为如下AVR的参考资料: ATtiny13 ATtiny24 ATtiny44 ATtiny84 ATtiny2313 ATtiny26 ATmega48 ATmega88 ATmega168 ATmega8 ATmega16 ATmega32 ATmega64 ATmega128 ATmega162 ATmega169 ATmega169P ATmega8515 ATmega8535

相关AVR型号资料

ATtiny13
ATtiny24
ATtiny44
ATtiny84
ATtiny26
ATtiny2313
ATmega48
ATmega88
ATmega168
ATmega8
ATmega16
ATmega32
ATmega64
ATmega128
ATmega162
ATmega169
ATmega8515
ATmega8535


  售前咨询&下单:0755-83040855, 83040860, 83040711 售后服务:0755-83040712  传真:0755-83042572  VIP:0755-88861195
  Email:waveshare_1@163.com(业务),waveshare_2@163.com(技术)  
 营业时间:周一至周六,早9:00 -- 晚6:00(北京时间)
  公司地址:深圳市福田区福明路雷圳大厦12B11(
点击查看地图   研发分部地址:深圳市南山区西丽镇深职院现代电子技术应用中心  
  www.waveshare.net(最新) www.22ew.com(备用) 网站地图 友情链接 网营许可证号:粤ICP备05067009号 深圳市微雪电子有限公司版权所有