单片机学习笔记(三)

单片机的存储器配置(未完成,待补充)


89C51/S51单片机存储器分类

哈佛结构

物理结构上可以分为程序存储空间和数据存储空间,共4个存储空间。片内程序存储器、片外程序存储器空间、片内数据存储器、片外数据存储器空间

程序存储器和数据存储器分开的结构形式为哈佛结构,与哈佛结构相对的是普林斯顿结构
89C51/S51哈哈弗结构

存储器地址空间分类及指令

对于用户角度来看,89C51/S51存储器地址空间可以分为三类,但是3个存储空间地址是重叠的,89C51/S51的指令系统设计了不同的数据传输指令符号:

  • 片内、片尾统一编码地址0000H ~ FFFFH的64KB程序存储器地址空间。MOVC指令
  • 0000H ~ FFFFH的64KB片外数据存储地址空间。MOVX指令
  • 256字节数据存储器地址空间(采用8位地址)。MOV指令

程序存储器的地址空间

程序存储器的分类

AT89S51/52以及STC89C51单片机采用4KB的Flash ROM的程序存储器,具有刷写方便,刷写速度快的,使用方便的优点。

此外还有以下程序存储器:

  • 掩膜ROM程序存储器,用于成熟的和大批量生产的产品
  • OTPROM,可以刷写程序,但是写入后不能擦除
  • EPROM,可以刷写程序,刷写时需要用紫外线进行擦除
  • E2 PROM,可以刷写程序但是速度稍慢

编址及寻址方式

编址

AT89C51单片机片内有4KB的Flash ROM,其地址为0000H~0FFFH,单片机启动复位后,程序计数器的内容为0000H,所以系统将从0000H单元开始执行程序。

片外最多可扩至64KB ROM/EPROM,地址为1000H~FFFFH

片内片外同一编址

寻址方式(ROM读取方式)

  • EA=1 时
    89C51的PC在0000H~0FFFH范围内执行片内ROM中的程序,当指令地址超过0FFFH后自动转向片外ROM中取指令

  • EA=0 时
    89C51片内ROM不起作用,CPU只能从ROM/EPROM中取指令。可以从0000H开始寻址。

  • 89C51从片内ROM和片外ROM取指的速度相同
    在这里插入图片描述

  • ROM保留空间
    0000H~0002H三个单元
    用作89C51上电复位后引导程序的存放单元。因为复位后PC的内容为0000H,CPU总是从0000H开始执行程序。将转移指令存放到这三个单元,程序就被引导到指定的程序存储器空间去执行。

    0003H~002AH单元

地址名称
0003H~000AH外部中断0
000BH~0012H定时器0溢出中断
0013H~001AH外部中断1
001BH~0022H定时器1溢出中断
0023H~002AH串行口中断

数据存储器地址空间

数据存储器RAM(读写存储器)用于存放运算的中间结果、数据包暂存和缓冲、标志位等
在这里插入图片描述

片外RAM

片外64KB(0000H~FFFFH)RAM空间,采用MOVX指令进行寻址

89C51/51片外RAM接法

片内RAM

片内数据存储器配置

片内地址空间

片内RAM最大可寻址256个单元,采用MOV寻址命令,可分为两类:

  • 低128字节(00H~7FH)RAM
  • 高128字节(80H~FFH)RAM

低128字节RAM()

  • 工作寄存区(00H~1FH)

    00H~1FH地址安排为4组工作寄存器区,每组8个工作寄存器(R0 ~ R7),共占32个单元
    通过程序寄存器PSW中RSI、RS0两位设定选择CPU的当前工作寄存器组。复位时第0组为当前的工作寄存器
    不需要第四组时其余可作为一般RAM单元

工作寄存器地址表

RS1 RS0R0R1R2R3R4R5R6R7
00 000H01H02H03H04H05H06H07H
10 108H09H0AH0BH0CH0DH0EH0FH
21 010H11H12H13H14H15H16H17H
31 118H19H1AH1BH1CH1DH1EH1FH
  • 位寻址区(20H~2FH)

    位寻址区有16个单元,每个单元8位,共128位00H~7FH
    可通过位寻址方式访问其各位
    这些可寻址位通过指令对某一位操作,置1、清0、判断

  • 用户RAM区(30H~7FH)
    用于堆栈和数据缓冲。即普通寄存器区

高128字节RAM()


总结

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值