8051 内核

1 CPU

        51单片机是 8 位机,代表总线宽 8 位(严格的说,是指ALU单元一次能处理数据的宽度),数据总线。但地址总线是 16 位的。

        在物理上有 3 个存储空间:片内、片外统一编址的 64KB 程序存储器, 64KB 片外数据存储器,256B 片内数据存储器。

        程序、数据分开编址,是哈佛结构。

一般的存储器在物理结构上是一个存储空间,ROM、RAM可任意安排在其中,用同类指令访问,是冯诺依曼(普林斯顿)结构。

2 指令

        8051 指令系统设计了不同数据传送指令区别不同逻辑空间;

MOVC:片内 / 片外ROM
MOV:访问片内RAM
MOV A, 20H

        片外RAM与片外ROM空间相同,由指令的不同来区分。

MOVX:访问片外RAM
MOV R0, #20h
MOVX A, @R0

3. Flash

     

工作寄存器 Rn 实际上就是 RAM 单元的一部分

        一般8051芯片,内部RAM只有128B,0x80-0xFF则是 SFR(CPU和外设在此)。

        8052,内部RAM有256B,高位RAM 与 SFR 都在 0x80-0xFF,区别在于间接寻址与直接寻址,即寻址方式不同。

4. RAM

        data:00-7F,直接寻址

        bdata:20-2F,可位寻址

        idata:00-FF(低 128 可直接寻址或间接寻址,高 128 间接寻址)

        pdata:间接访问片外RAM低256B

        xdata:用DPTR访问片外RAM 0000-FFFF

        code:片内 64K ROM

          访问片外 xdata 时,由于是 16 位寻址,所以需要 DPTR 寄存器来辅助。

普通51单片机中,引脚 EA 上的电平选择 低4k ROM 是用片内还是片外

5. SFR

    21 个特殊功能寄存器:P0~P3,PSW,ACC,B,SP,DPL,DPH,PCON,TCON,TMOD,TL0,TH0,TL1,TH1,IE,IP,SCON,SBUF

    PC 是一个 16 位计数器,是程序存储器中指令机器码的地址指针,是将要执行的下一条指令的机器码的地址。在物理上是独立于 SFR 的。

    DPTR 是一个数据指针,

    0000H单元放的是程序复位时PC,所以可以放跳转指令,如跳转到 main 所在的地址。中间则可以放向量表。

              

6. 关于指针的大小

uint8_t xdata * xdata a; 
uint8_t idata * data a;    

        前面指定数据大小,后面指定指针存放的位置。

        如果已经指定了数据的大小,那么指针的大小就已经确定了,如 xdata 是外部 64k,则指针的大小是 2 字节,data、idata 是内部,所以指针的大小占 1字节;

uint8_t * idata a;

    这样未指定变量 a 的存储空间,则指针占 3字节,由编译器分配位置,第1个字节是存储区类型,第 2 ~ 3 字节是变量地址。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值