单片机内部结构解析:揭秘核心构造,入门必备知识

注意:本文章所使用的单片机型号为STC89C52RC

一,8051系列的经典结构:

P0口与P2口各有八位数据总线,二者合起来构成十六位地址,则二的十六次方(65536)也就是64k,则51系列单片机访问的存储器为64k,P0口和P2口构成十六位地址总线,其中P2口为地址总线的高八位,P0口为地址总线的低八位。需要注意的是,当前一般不将P2口作为地址总线高八位来进行使用,而是作为普通I/O(与外设通信)来访问不同的地址。

注释:

  • P0口可以做数据总线也可以I/O口,当P0做I/O口的时候,要加上上拉电阻(4.7k-10k),其他端口本身就有上拉;
  • 其他功能口:

  • UART(串口通信):P3.0与P3.1用于接收(有些单片机会设计两个串口,一般第二个串口会放置在P1.0和P1.1),发射串口信号;
  • EA非:外部存储器选择引脚,用于选择外部存储器;(已淘汰)
  • ALE:{输出}地址锁存允许引脚:用于允许锁存外部芯片地址;/{输入}编程脉冲引脚;(已淘汰);
  • PSEN:外部程序存储器选择引脚,选择外部程序存储器(ROM)(已淘汰);
  • 注意:ALE,EA非,PSEN在当下的较为先进的单片机中已经变成I/O口来使用,在有些单片机中有内置的复位,因此有些单片机的RST复位引脚也作为I/O口来使用

  • XTAL2和XTAL1(18,19引脚):用于接外部晶振;
  • RST:复位端;
  • 内部:

  • RAM:随机存取存储器;用于存储数据
  • ROM:只读存储器,又叫程序存储器,用于存储程序。
  • 定时器/计数器:
  • CPU:包括控制器与运算器;
  • SFR:特殊功能寄存器;
  • 二,8051内部CPU的结构图:

    三.单片机的最小系统:

    (1).电源:

    由于电源部分的电流是跳变的,会产生噪声,所以在电源电路当中一般要加入滤波电路滤除高频(小电容),低频噪声(大电容)

    (2).晶振电路;

    晶振周期:晶振的震荡频率:如12Mhz的晶振,的震荡一次用时1/12us;

    机器周期:12个晶振周期构成一个机器周期;对于12MHz的晶振来说,机器周期为1us

    指令周期:执行一条指令所需要的机器周期数,包括单周期,双周期,四周期;

    (3).复位电路(RST):

    高电平信号持续至少两个机器周期才能复位(对于12MHz,就是2us);

    (4)EA非:

    通常在不使用外部存储器的情况下EA非要接入5v高电平来关闭使用;

    四.C51:

    C51是在c语言的基础上,根据8051系列单片机的特点,拓展了c语言的数据类型定义,变量的存储定义和操作符的引用,增加了中断函数声明,用于开发51系列单片机的应用系统的程序语言;

  • data:变量分配在低128区域,采用直接寻址的方式,访问速度最快;
  • bdata:变量分配在20H~2FH区域(可位寻址区域)内,采用直接寻址的方式,允许位或字节访问;
  • idata:变量分配在低128字节或者高128字节,采用间接寻址的方式;
  • pdata:变量分配在XRAM(外部随机存取存储器),分页访问外部数据存储器(256B),用MOVX@Ri指令;
  • xdata:变量分配在XRAM(外部随机存取存储器),访问全部外部数据存储器(64KB),用MOVX@DPTP指令;
  • code:变量分配在程序存储器(64KB),用MOVCA,@A+DPTP指令访问;
  • 注释:

    一,直接寻址和间接寻址:

    直接寻址:直接在指令当中给出操作数的存储单元地址,比如直接指定要访问的存储单元0想0;

    适用范围:用于访问单片机的片内存储器的低128字节和特殊功能寄存器;

    间接寻址:不在指令当中直接给出操作数的地址,而是把操作数的地址存于某个寄存器当中,通过访问寄存器,间接访问操作数;

    适用范围:片内全部256字节,还能访问片外存储器;

    二,分页访问:

  • 概念:
  • 分页访问把内存或者存储设备划分成大小固定的块,这些块被称作 “页”。每一页都有唯一的编号,也就是页号。系统在访问内存时,以页为单位进行操作,而不是按单个字节或者字来访问。

  • 工作原理:
  • 分页:操作系统把进程的地址空间划分成多个逻辑页,同时把物理内存划分成相同大小的物理页框。逻辑页和物理页框的大小通常是一样的,常见的页大小有 4KB、8KB 等。

    页表:为了实现逻辑页到物理页框的映射,操作系统会维护一个页表。页表记录了每个逻辑页对应的物理页框的地址。当进程访问某个逻辑地址时,系统会先把这个逻辑地址拆分成页号和页内偏移量两部分。

    地址转换:通过页号在页表中查找对应的物理页框号,然后将物理页框号和页内偏移量组合起来,得到最终的物理地址,进而访问物理内存。

  • 示例说明:

  • 假设页大小为 4KB(即 212 字节),逻辑地址为 0x1234。

    页号计算:因为页大小为 4KB,所以页内偏移量占 12 位,页号占剩余的高位。将逻辑地址 0x1234 转换为二进制为 0001 0010 0011 0100,低 12 位 0010 0011 0100 是页内偏移量,高 4 位 0001 是页号。

    地址转换:通过页号在页表中查找对应的物理页框号,假设查找到的物理页框号为 0x2,将物理页框号和页内偏移量组合起来,得到物理地址为 0010 0010 0011 0100,即 0x2234;

    (对于指令的使用,我们以后在介绍)

    五,存储类型及操作符

  • 按位与:两位都为1,才为1。如:1&1=1;1&0=0;0&0=0;
  • 按位或:只拥有一个1就是1。如:1|1=1;1|0=1;0|0=0;
  • 异或:两位如果相同为0,不同为1.如0^0=0;1^1=0;1^0=1;
  • 按位左移/右移:移动产生的空位有0补位。
  • (本人为单片机初学者,如有错误欢迎指正)

    作者:释怀齐恒

    物联沃分享整理
    物联沃-IOTWORD物联网 » 单片机内部结构解析:揭秘核心构造,入门必备知识

    发表回复