网站公告列表     本站正式改版推出,欢迎大家光临!!  [dycxin  2008年8月20日]        
加入收藏
设为首页
联系站长
您现在的位置: AVR单片机开发工具网 >> 文章中心 >> 入门篇 >> 正文
专 题 栏 目
最 新 热 门
最 新 推 荐
相 关 文 章
马潮老师关于正确配置AV
用PonyProg2000 for Win
ATMEGA8单片机—AVR,AVR
AVR系列单片机简介—AVR
STK500使用说明操作步骤
AVR JTAGICE的详细使用说
AVR单片机从零开始—AVR
AVR Studio 调试快速入门
AVR 性能简介—AVR,AVR单
AVR芯片入门知识—AVR,A
  AVR起步教程2:SRAM和Flash—AVR,起步教程,AVR单片机,GCC,SRAM,Flash           
AVR起步教程2:SRAM和Flash—AVR,起步教程,AVR单片机,GCC,SRAM,Flash
作者:佚名 文章来源:不详 点击数: 更新时间:2008-8-22 9:35:55
本文介绍了AVR系列的SRAM和Flash的结构 SRAM实际上就是AVR的内存,运算只能通过32个工作寄存器,而SRAM在这个过程中起到
保存数据的作用。
  在做简单的工程的时候,你使用的变量可能只需要用的寄存器就足够了,但是在比较复杂的工程下,就要频繁的进行寄存器和SRAM之间的数据交换了。
  如果你是使用汇编进行工作,此时你需要知道的是AVR的地址空间分配,对SRAM的操作的汇编指令等,而如果是使用C编译器,知道这些,能有帮助你优化你的程序。
  所有的地址空间能被直接或者间接的寻址。
  直接寻址:
  在要保存(加载)数据到(从)你所指定的直接地址的时候,你可以使用sts、lds指令。
          ldi r16,0x55      ;r16装入立即数0x55
         sts 0x0190,r16 ;把r16里的数据保存在SRAM中地址为0x190的地方

         lds r16,0x0190 ;把SRAM中地址为190的数据装入r16
 
  间接寻址可以象C或者Pascal里的指针那样操作,这些相应的寄存器我们在上一节提到过,就是32个寄存器里的(R26,R27)X,(R28,R29)Y,(R30,R31)Z。
  还是以地址0x0190为例子
         ldi XL, 0x90 ;加载目标地址的低位
         ldi XH, 0x01 ;加载目标地址的高位
         ld  r16, X ;把目标地址的数据加载到r16
  间接寻址的加载和存储和直接的指令是不一样的,间接的只能使用ls和st来执行。
 
  接下来,我们来看看AVR的存储器的映像
  AVR的地址空间是由3个主要部分构成的:32个寄存器、I/O寄存器(UART、TIME、等等)、内部SRAM。
   图1

在官方的数据手册上,我们经常可以看到寄存器的地址有2个表示方法,比如状态寄存器SREG的地址就是$3F($5F),刚接触AVR的可能会有些不明白,下图应该对你有所帮助
  图2

文章录入:dycxin    责任编辑:dycxin 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      开发板精品推荐
     
    AVR单片机开发工具网--东营市荣燕商贸有限公司版权所有 站长:阿荣
    联系电话:0546-7870320,13371507828 电邮:51edacn@163.com
    山东东营西城济南路百祥电脑商城B302室 邮编:257000 鲁ICP备07018763号
    公司帐号:1615011209000037682 户名:东营市荣燕商贸有限公司 开户行:工行西城支行石油大学分理处