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

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

微处理器与微控制器

以下是对本文各部分的快速访问:-

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

介绍

英特尔首先在1976年制作了一台微控制器以...之名MCS-48,这是一个8位微控制器。在1980年后,他们在名称MCS-51下发布了进一步改进的版本(也是8位)。最受欢迎的微控制器8051属于英特尔的MCS-51系列微控制器。在8051的成功之后,许多其他半导体制造商在自己的品牌名称下释放了微控制器,而是使用MCS-51核心。半导体行业的全球公司和巨人Microchip、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基本原理图

以上示出了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(双列直插封装)。现在,让我们详细介绍引脚配置。

Pin-40:名为Vcc的是主电源。通常为+5V直流电。

您可能会注意到,某些管脚指定有两个信号(显示在括号中)。

引脚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脉冲可用于每个机器循环。

引脚-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:-如在RESET引脚之前解释的,用于将8051微控制器设置为其初始值,而微控制器正在工作或在应用程序的初始开始时。必须为2个机器循环设置高速销。

引脚1 - 8: -称为端口1。与其他端口不同,此端口不提供任何其他功能。端口1是一个内部上拉的准双向I/O端口。

8051内部结构

8051内部图

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

8051内存组织

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

例如:-8051微控制器基于哈佛体系结构,8085微处理器基于普林斯顿体系结构。

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

程序存储器组织

8051程序存储器

现在让我们深入了解8051的程序内存组织。它有一个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个寄存器组,分别指定为bank#0、#1、#2和#3。每个银行有8个寄存器,它们被指定为R0、R1…R7。一次仅选择一个寄存器组进行操作,并使用助记符R0..R1访问所选寄存器组内的寄存器。。其他寄存器只能通过直接寻址同时访问。寄存器用于在执行期间存储数据或操作数。默认情况下,选择寄存器组#0(在系统重置后)。

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

划痕垫区域是用于通用存储的占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. 罗希塔什·辛格

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

  2. 沙鲁

    很好。感谢你

  3. 高丽

    这对于理解8051是一个很好的解释。
    谢谢等待其他控制器PIC和Arm以及rasberry pie的解释

  4. 纳姆拉塔

    真棒的文章,先生。希望有更多这样的文章。

  5. 比拉尔·马利克

    写得很好的文章

  6. 约瑟夫·格雷戈拉西

    大家好,
    我是一名学生,我正在做最后一年的项目。我想知道在8051的输入端口可以提供的最小电压是多少,以及理想的电压,这样8051就可以将其作为高(1)输入读取。

    谢谢
    约瑟夫

    • 乔乔

      @Joseph–这要看情况而定!要了解这一点,您需要阅读制造商的数据表。这因制造商而异。一种方法是使用运算放大器调节传感器/输入信号的微弱电压,并将其电平提高到5V。

      • 潘多斯蒂芬

        我是三年级的学生,我正在做一个项目,使用8051微控制器基本图章2。请告诉我如何连接到电路

  7. 拉利特

    8051微控制器中位可寻址存储器限制为16字节的原因

  8. 巴斯卡:当然

    很有帮助,谢谢

  9. Bhavin.

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

  10. P. jesal.

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

  11. 苏希玛

    超链接解释。。这真的很好,你可以很容易地理解我们需要的概念,更像你能提供的奔腾功能?

  12. 梅嘉娜

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

    • 克里希纳查塔安

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

  13. 梅嘉娜

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

  14. 弗兰克·唐纳德

    很好的一个…发布关于MC的各种编程概念。若你们能解释嵌入式C编程,那个就太棒了

  15. 拉哈鲁

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

  16. 普拉德库马尔

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

    再次感谢

  17. nidhi rathi

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

  18. 戈文德

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

  19. Bhushan Waghmare.

    哇,太棒了

  20. 戈帕尔

    用清晰的语言进行精彩的解释。继续……

  21. 吉沙·莫迪

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

    • 辛格

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

  22. 大理乃都

    很好的解释

  23. 普拉巴卡尔

    我想知道。为什么保留8052微控制器的名称。它背后的逻辑是什么

  24. Anurag.

    解释得很好,语言简单

  25. 古塔姆·辛格

    我想购买8051微控制器,所以请提供我的制造商地址

    • 乔乔

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

  26. 尼希尔

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

    • 乔乔

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

  27. 阿比吉特

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

  28. 苏米尔·库马尔·贾哈

    很好的解释,先生,

    这对我帮助很大 !!!!

  29. 尼图库马兰

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

  30. 哈里卡

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

    • 阿密特

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

    • Lycon.

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

  31. 乔乔

    你好,萨米尔,

    你能指出一个例子吗?

  32. 萨米尔·古普塔

    先生
    在8051微控制器的大多数程序中,我看到“0*85,0*AF等”,这是什么意思?

    • 达克什亚达夫

      在uc的c语言编程中使用c这样的符号
      这意味着将ir 0AF作为十六进制数

  33. 赛特加

    为技术专业学生提供良好的信息。

  34. 您的解释对于我们想要来自您的所有学生,您可以从您智能信息中获取信息,请将我的电子邮件ID发送给我dhupamsai16@gmail.com

  35. 普拉萨德

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

  36. 斯里哈里罗

    棒极了。谢谢分享。
    想要更喜欢这个。

Baidu