zoukankan      html  css  js  c++  java
  • 8051硬件结构

    8051硬件结构

        8051的片内主要包含以下的资源:

        #1个8位的CPU(8位是指它一次性可进行8位数据的操作)

        #4KB的内部ROM(在8051中,程序和一些表格数据是存放在ROM之中的,我们又把ROM称为程序存储器)

        #128B的内部RAM(在8051中,数据是存放在RAM之中的,我们又把RAM称为数据存储器)

        #4个8位的I/O口(P0—P3)

        #2个16位的定时/计数器(T0和T1)

        #1个串行通信口

        片外可支持的最大寻址范围(RAM和ROM)都是64KB。

        8051的引脚图,图中没有40引脚和20引脚,默认已经接好了电源和地。

        

        端口0:P0口是双用途口,在元件最少化的设计中,该端口作为通用I/O口,而在有外部存储器的设计中,P0口是被用作多路 复用的数据总线和地址总线(地址总线的低8位)。

        端口1:P1口是专用的I/O口,没有第二功能,仅作与外部设备的接口。

        端口2:P2口是双用途口,在元件最少化的设计中,该端口作为通用I/O口,而在有外部存储器的设计中,P2口是被用作地址总线的高8位。

        端口3:P3口是双用途口,可用作通用的I/O口,同时也具备第二功能。


    8051有4个专用的总线控制信号。

    #PSEN信号是位于29号引脚(低电平有效)的输出信号,用来控制启用外部的ROM。通常连接到EPROM的使能端(OE)。

    #ALE信号位于30号引脚(地址锁存信号),8051正是通过它来实现多路复用。ALE的频率是时钟信号的1/6。

    #EA信号位于31号引脚(外部访问),低电平的时候仅仅只访问外部ROM,高电平的时候从内部ROM开始访问,如果超过4KB,则自动跳转到外部ROM中去。

    #RST信号位于9号引脚(复位信号),是8051的主复位信号。此引脚维持至少两个机器周期的高电平,8051将会被复位。使得系统重新启动。

    VCC在40号引脚上,需要一个5V的电源。VSS在20号引脚上。

    I/O口的内部结构:图中是P0口的某一个引脚内部结构图。看到8051具有读锁存器和读引脚两种能力。



    大多数时候读引脚和读锁存器没有什么区别,但是有的情况下会不一样。比如在引脚外面外接了一个三极管。当我们输出高电平到三极管的基级使得三极管导通,这时候三极管导通,使得端口电压被拉低。导致读引脚和读锁存器得到的结果是不一样的。为了避免错误的判断引脚电平。我们在输入的时候将锁存器必须置1。

    P0口内部无上拉电阻,在外接负载的时候需要在电路中加入上拉电阻。P1—P3内置了上拉电阻。

    8051需要两个时钟周期来完成一个操作,我们称之为一个状态。6个状态的时间称为一个机器周期。因此,一个机器周期包含了12个时钟周期(振荡周期)。一般在12MHZ的频率下,一个机器周期的时间大约是1us。

    微控制器的存储器特点:(和PC的区别)

    (1)各寄存器和I/O口,以及外部设备的引脚是以内存映射的形式在存储器中。我们可以向访问存储器一样去访问它们。

    (2)栈存储在内部RAM之中,而不像微处理器放在外部RAM中。

            (我不懂什么是哈佛结构和冯诺依曼结构,也不去讨论MCS—51到底是属于那种结构。)

            在8051中,内部数据存储器被分为了内部RAM和SFR(特殊功能寄存器)共计256B。只有低128B可以存放通用数据,高128B是特殊功能寄存器区。

            工作寄存器组区:从00H——1FH是工作寄存器组。工作寄存器有4组,每组有8个。分别是R0——R7。

            通用RAM:从30H——7FH这片空间是通用RAM,我们一般把堆栈放在这里。

            可位寻址区:20H——2FH这片空间是可位寻址区,每个位都有它的位地址,从00H——7FH。

            特殊功能寄存器:从80H——FFH这片空间是SFR区。我们知道51单片机有21个特殊功能寄存器。它并没有完全占据内部RAM的高128B。有些地方是空着的。我们需要特别注意这些SFR。因为我们对8051的操作,实质是对寄存器的操作。我们也只能是去操作寄存器。

            从上面我们也都看出了8051的存储器的地址有大量的重合,那么我们该怎么去区分到底访问哪个空间。8051对于地址重合区域的访问方案是通过指令的不同来解决的。不同的指令表示了访问的空间是哪一个。



  • 相关阅读:
    C# Excel工作表区域Range装入数组
    【Word VBA】批量插入图片到表格
    C# Office Com 开发 创建任务窗格 CustomTaskPane
    C# Office Com 开发 Excel插件与函数dll注册
    视频逐帧转换为图片
    ssh 免密登录
    NPS 内网穿透配置
    php7.3 centos Call to undefined function AdminControllermcrypt_get_block_size()
    Centos 6 安装 php7.3.x
    nginx配置之proxy_pass路径加斜杠/以及包含路径的区别
  • 原文地址:https://www.cnblogs.com/zy666/p/9028268.html
Copyright © 2011-2022 走看看