微控制器是集成电路或芯片与处理器和其他支持设备,如程序存储器,数据存储器,I/O端口,串行通信接口等集成在一起。不像微处理器(例:英特尔8085),微控制器不需要支持设备的任何外部接口。英特尔8051是世界上最受欢迎的微控制器。现在让我们详细讨论8051微控制器。

在继续之前,了解一下微处理器和微控制器的区别.我们有一篇详细的文章,描述了两者的基本区别。

微处理器与微控制器

这里是快速访问这篇文章的各个部分:-

针图:-内部架构:-程序内存组织:-数据存储器组织:-8051系统时钟:-8051年复位电路

介绍

英特尔首先在1976年制作了一台微控制器以...之名MCS-48.,这是一个8位微控制器。在名称MCS-51下,1980年后,他们释放了进一步改进的版本(也是8位)。最流行的微控制器8051属于英特尔的MCS-51系列微控制器。在8051的成功之后,许多其他半导体制造商在自己的品牌名称下释放了微控制器,但使用MCS-51核心。半导体行业的全球公司和巨人微芯片,Zilog, Atmel,飞利浦,西门子以他们的品牌名称发布产品。其特点是所有这些设备都可以使用相同的MCS-51指令集进行编程。它们在支持设备配置上基本上是不同的,比如改进的内存、ADC或DAC的存在等。英特尔随后在1982年发布了第一个16位微控制器,命名为MCS-96

注意:-阅读关于英特尔的故事和历史-第一个微处理器的制作和更多!

8051微控制器包装

没有必要解释每个包的含义,您已经知道了。所以我将浏览一下8051主要使用的包装。可见,各种包的可用性因设备而异。最常用的是双内联封装(40引脚)-通常称为DIP。8051也有QFP(四平包装),TQFP(薄四平包装),PQFP(塑料四平包装)等。为了解释引脚图,我们使用了一个40引脚DIP IC作为模型。

8051单片机的体系结构

可以详细地解释微控制器架构,但我们将本文的范围限制在内部架构、引脚配置、程序存储器和数据存储器组织。MCS-51系列的基本架构保持不变。一般来说,MCS- 51系列中的所有微控制器都用XX51表示,其中XX可以取80,89等值。

原理和特性

基本原理图

以上示出了8051微控制器的一般示意图。我们可以看到3个系统输入,3个控制信号和4个端口(用于外部接口)。还显示了VCC电源和地面。现在让我们详细解释并通过每个人进行。系统输入是使微控制器功能的必要条件。因此,这是第一个也是最重要的是电源,标有带有GND(地电位)的VCC。没有适当的电源,没有电子系统就会起作用。XTAL 1和XTAL 2用于来自晶钟电路的系统时钟输入。重置输入需要将微控制器初始化为默认/所需值并进行新的开始。

有3个控制信号,EA,PSEN和ALE。这些信号被称为外部访问(EA)、程序存储使能(PSEN)和地址锁存使能(ALE),用于外部存储器接口。

看一下下面的示意图(功能单片机)

8051功能图

如上所述,控制信号用于外部存储器接口。如果没有外部存储器接口的要求,则EA引脚被拉高(连接到VCC),另外两个PSEN和ALE独自留下。您还可以看到连接到VCC的0.1微法离耦电容(以避免输入的HF振荡)。

共有0、1、2、3四个端口,分别称为端口0、端口1、端口2、端口3,用于DAC、ADC、7段显示、LED等设备的外部接口。每个端口有8条I/O线,它们都是位可编程的。

8051针图和描述

8051微控制器针图

为了描述8051的引脚图和引脚配置,我们考虑了一个40引脚DIP (Dual inline package)。现在让我们详细地了解引脚配置。

PIN-40:命名为Vcc是主要的电源。通常是+5V DC。

你可能会注意到一些引脚被指定为两个信号(显示在括号中)。

针32-39:被称为端口0 (P0.0到P0.7) -除了作为I/O端口,低阶地址和数据总线信号与该端口复用(用于外部内存接口的目的)。这是一个双向I/O端口(在8051中唯一的一个)和外部上拉电阻需要功能这个端口作为I/O。

PIN-31: -EA/外部访问输入用于启用或禁用外部内存接口。如果没有外部内存要求,这个引脚被拉高连接到Vcc。

PIN-30: -ALE AKA地址锁存使能用于解复用端口0的地址数据信号(用于外部存储器接口。)2个ALE脉冲可用于每个机器循环。

PIN- 29: -PSEN或Program Store使能用于从外部程序存储器读取信号。

针——第21至28:-被称为端口2 (p2.0到p2.7) -除了作为I/O端口,更高阶地址总线信号与这个准双向端口复用。

销20: -命名为VSS - 它表示地面(0 V)连接。

引脚18和19:-用于连接外部晶体以提供系统时钟。

引脚10 - 17: -称为端口3。该端口还提供中断、定时器输入、外部存储接口RD和WR的控制信号、串行通信信号RxD和TxD等功能。这是一个准双向端口与内部拉升。

销9:-如重置引脚之前的说明,用于将8051微控制器设置为其初始值,而微控制器正在工作或在应用程序的初始开始时。必须为2个机器周期设置高速标识。

引脚1 - 8: -称为端口1。与其他端口不同,该端口没有其他功能。端口1是一个内部上拉,准双向I/O端口。

8051年内部架构

8051年内部图

8051微控制器的内部结构无需详细讲解。看看上面的图表,仔细观察。系统总线将所有支持设备与中央处理单元连接起来。8051系统总线由8位数据总线、16位地址总线和控制信号总线组成。从图中你可以理解,所有其他设备,如程序存储器、端口、数据存储器、串行接口、中断控制、定时器和中央处理单元都通过系统总线接口在一起。RxD和TxD(串口输入和输出)与端口3相连。

8051内存组织

在深入研究8051的内存架构之前,我们先来讨论一下可用的两种变体。它们是普林斯顿建筑和哈佛建筑。普林斯顿体系结构将地址存储器和数据存储器视为一个单元(不区分两者),而哈佛体系结构将程序存储器和数据存储器视为独立的实体。因此,哈佛体系结构要求地址、数据和控制总线分别访问它们,而普林斯顿体系结构不要求任何这样的单独总线。

例子:-8051微控制器基于哈佛架构,8085微处理器基于普林斯顿架构。

因此8051有两个存储器:程序存储器和数据存储器

程序内存组织

8051程序内存

现在让我们深入到程序内存组织0f8051。它有一个4K大小的内部程序,如果需要,可以添加一个最大60K大小的外部内存(通过接口)。所以在总共64K大小的内存是可用的8051微控制器。默认情况下,外部访问(EA)引脚应该连接到Vcc,以便指令最初从内部内存中获取。当超过内部内存(4K)的限制时,控制将自动移动到外部内存获取剩余指令。如果程序员想从外部内存中获取指令(绕过内部内存),那么他必须连接外部访问(EA)引脚到地(GND)。

您可能已经知道8051具有锁定程序内存(内部)的特殊功能,因此可以防止软件盗版。这个特性是通过程序锁位来实现的。一旦这些位被编程,内部存储器的内容就不能被外部电路访问。如果外部内存也被用来存储软件代码,那么如何锁定软件是不可能的。只有内部内存可以被锁定和保护。一旦锁定,这些位只能通过内存擦除操作解锁,这反过来也会擦除内部内存中的程序。

8051能够流水线。流水线使得一个处理器能够在执行前面的指令时提取下一个指令。它的一些像多任务一样的东西,一次做多个操作。8051能够在执行上一个指令时获取下一个指令的第一个字节。

数据存储器组织

8051年的数据内存

在MCS-51系列中,8051拥有128个字节的内部数据存储器,它允许连接最大尺寸的外部数据存储器最多可达64K。因此,8051中的数据存储器的总大小可以高达64K(外部)​​+ 128字节(内部)。仔细观察图表以获得更多理解。因此,数据存储器有3个分离/分区: - 1)寄存器银行2)位寻址区域3)划痕垫区域。

8051  - 内部RAM

寄存器组在内部存储器上形成最低32字节,有4个寄存器组指定银行#0,#1,#2和#3。每家银行有8个寄存器,分别为R0,R1,…R7。每次只选择一个寄存器银行进行操作,并使用助记符R0..R1..访问所选银行中的寄存器。等。其他寄存器只能通过直接寻址来同时访问。寄存器用于在执行期间存储数据或操作数。默认情况下,选择了0号寄存器(在系统重置后)。

8051的位可寻址区通常用于存储位变量。位可寻址区域由寄存器银行旁边的16个字节组成。它们被指定为地址20H到2FH(总共128位)。在这128位从20H到2FH中,每个位都可以从00H到7FH访问。位可寻址区主要用于存储应用程序中的位变量,如LED或电机等输出设备的状态(ON/OFF)等。我们只需要一点来存储这个状态,使用一个完整的字节可寻址区域来存储这是非常糟糕的编程实践,因为它会导致内存的浪费。

划痕垫区域是用于通用存储的占80个字节。划痕垫区域为30H至7FH,这也包括堆栈。

8051系统时钟

8051时钟频率电路

上面显示了一个8051时钟电路。一般情况下,石英晶体被用来制作时钟电路。连接如图(a)所示,并注意到XTAL 1和XTAL 2的连接。在某些情况下使用外部时钟源,你可以看到上面的各种连接。时钟频率限制(最大值和最小值)可能因设备而异。标准做法是使用12MHz频率。如果涉及串行通信,那么最好使用11.0592 MHz频率。

8051机器循环波形

好的,看看上面的机器周期波形。时钟源的一次完全振荡称为脉冲。两个脉冲形成一个状态,六个状态形成一个机器周期。还要注意,ALE的两个脉冲可用于一个机器周期。

8051年复位电路

微控制器重置电路

8051可以通过两种方式复位:1)上电复位——当电源打开时复位8051;2)手动复位——只有手动按下按钮时才会复位。上面显示了两种不同的复位电路。重置不会影响内部RAM的内容。复位发生,复位输入引脚(引脚9)必须是高的活动至少2个机器周期。在一个重置操作期间:-程序计数器被清除,它从00H开始,寄存器组#0被选择为默认值,堆栈指针初始化为07H,所有端口都用FFH写入。

作者

48评论

  1. Rohitash Singh.

    有四个端口但端口O和端口2不明白请解释这两个端口,此输出或输入的目的是什么。在哪里可以得到正确的输出。

  2. 临近夏鲁寺

    很好。感谢你

  3. 吉奥莉•

    这是理解8051的一个很好的解释。
    谢谢。等待其他控制器PIC和Arm以及覆盆子派的解释

  4. 帕迪

    非常棒的文章,希望能有更多这样的文章。

  5. Bilal马利克

    写得很好

  6. Joseph Gregoraci.

    嗨,伙计们,
    我是学生,我在做期末项目。我想知道在8051的输入端口上你能给出的最小电压是多少,以及理想的电压是多少,这样8051就可以把它读成一个高(1)输入。

    谢谢
    约瑟夫

    • 乔乔

      @Joseph -看情况!你可以阅读制造商数据表来了解这一点。它因制造商而异。一个想法是使用Opamps调节传感器/输入信号的微弱电压,并将其水平提高到5V。

      • pendo斯蒂芬

        我是一个三年级的学生,我用8051单片机做项目,基本邮票2。请告诉我怎样才能接通电路

  7. lalith

    为什么8051微控制器中的位可寻址存储器被限制为16字节

  8. Bhaskar肯定

    有帮助,谢谢

  9. Bhavin.

    我正在使用8051.所以请告诉我如何使用8051.my项目是能源最大需求调味者

  10. P. jesal.

    你好,
    我正在使用8051制作太阳能逆变器,请给我一些指导和电路。
    我还建了一个太阳能跟踪器…现在我要做一个逆变器了。

  11. p . sushma

    超级解释..这真的很好,可以很容易地理解我们需要的概念更像pentinum功能你可以提供吗?

  12. megana

    这解释得很好
    8051单片机为什么采用总线控制

    • 克里希纳查塔安省

      总线是8051中的每个块相互连接的地方。因此,当我们曾经从一个街区发送数据时,我们需要使用总线。但是,当使用多个街区来传输数据然后存在问题时,可以通过总线控制逻辑来消除此问题。
      总线控制逻辑在数据传输中扮演关键作用。

  13. megana

    这是很好的答案
    8051单片机为什么采用总线控制

  14. 弗兰克唐纳德

    好一个……关于MC的各种编程概念,如果你能解释一下嵌入式C编程,那就太棒了

  15. 拉哈鲁

    我需要将IC8051添加到pic c程序中。
    我在那里使用reg51.h文件。
    我应该设置设备名称。
    我应该用什么名字?

  16. Pradeepkumar

    好解释。它具有读取8051核心及其体系结构的重要信息。感谢您编写本文。
    它会更加乐于助人,还要解释更多的概念,如配置定时器,计数器,中断......

    再次感谢

  17. 尼迪rathi

    时间图ni h vo b daldo PLZZZ ar uski解释b…

  18. govind

    为什么电容器位于VCC之间并在8051微控制器中重置

  19. Bhushan Waghmare.

    其优秀的哇

  20. 塔·

    用清晰的语言做了极好的解释。继续……

  21. jeesha莫迪

    我的问题是,为什么在8051的晶体CKT中使用电容,值是33pf,为什么?

    • Gurmukh辛格

      电容器与振荡器一起使用,因为振荡器的输出是具有一定频率的时钟脉冲,伴随着频率非常高的噪声(谐波失真),现在通过使用这些陶瓷电容器,高频噪声将被接地,时钟脉冲有较低的频率提供给MC,几乎没有失真。

  22. 角色

    我想知道。为什么要保留8052单片机的名字。它背后的逻辑是什么

  23. Anurag.

    解释得很好,语言简单

  24. goutam辛格

    我想购买8051单片机,请提供厂家地址给我

    • 乔乔

      您可以在AT89S51购买 - 从Atmel购买

  25. nikhil

    你好先生,
    我想知道关于16位80286处理器和32位80486处理器架构......
    请帮助我

    • 乔乔

      你好尼克尔,请继续等待。我们肯定会出现16位和32位架构的文章。

  26. Abhijeet

    如果端口1、2、3有内部上拉,那么为什么我们要连接外部10k上拉?有必要吗? ?如果上拉没有送到端口1,2,3会发生什么?

  27. Sumir Kumar Jha

    好的解释先生,

    这对我帮助很大 !!!!

  28. Neethukumaran.

    为学生提供非常有帮助的帖子..

  29. harika

    先生,计时器和计数器有什么区别

    • 阿米特

      计数器:计数并指示在任何间隔输入信号(事件)的数量。
      ..
      定时器:以固定的间隔计算输入信号的数量,以指示经过的时间。

    • Lycon.

      简单地说,计数器计数正在执行的事件的个数,而计时器基本上用于产生时间延迟。

  30. 蟹道

    对学生非常有用......

  31. 乔乔

    你好Sameer,

    你能指出一个例子吗?

  32. sameer古普塔

    先生,
    在8051单片机的大部分程序中,我看到“0*85,0*AF等”,这是什么意思?

    • DAKSH YADAV

      在uc的c语言程序设计中,经常会遇到这样的问题
      这意味着IR 0AF作为十六进制号码

  33. saiteja

    对技术专业的学生来说是很好的信息。

  34. 普拉萨德

    Pls Sumbody告诉我关于如何焊接耳机杰克的......。

  35. SrihariRao

    出色的文章。谢谢你的分享。
    想要更喜欢这个。

Baidu