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

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

微处理器和微控制器

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

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

简介

英特尔1976年首次生产出微控制器用……的名字MCS-48,这是一个8位单片机。后来在1980年,他们发布了一个进一步改进的版本(也是8位),命名为MCS-51。目前最流行的8051单片机属于Intel公司的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电源和地面也显示。现在让我们详细地解释和讨论每一项。系统输入是实现微控制器功能的必要条件。因此,首先也是最重要的是电源,标记为Vcc和GND(地电位)。没有适当的电力供应,任何电子系统都无法工作。XTAL 1和XTAL 2用于晶体时钟电路的系统时钟输入。重置输入需要初始化微控制器为默认值/所需的值,并使一个新的开始。

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

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

8051功能图

如上所述,控制信号用于外部存储器接口。如果没有外部内存接口的要求,那么EA引脚被拉高(连接到Vcc),其他两个PSEN和ALE被单独留下。您还可以看到一个0.1微法拉解耦电容器连接到Vcc(以避免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 DC。

您可能注意到一些引脚是用两个信号指定的(在括号中显示)。

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

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

Pin-30: -ALE又名地址锁存使能用于解复用端口0的地址数据信号(用于外部内存接口)每个机器周期2 ALE脉冲可用。

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

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

销20:命名为Vss -它表示接地(0v)连接。

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

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

销9:-正如前面解释的那样,RESET引脚用于设置8051微控制器的初始值,而微控制器正在工作或在应用的初始开始。RESET引脚必须设置高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大小的外部存储器(通过接口)。因此8051微控制器总共有64K大小的内存可用。默认情况下,外部访问(EA)引脚应该连接Vcc,以便最初从内部内存中获取指令。当超出内部内存(4K)的限制时,控制将自动移动到外部内存以获取剩余指令。如果程序员只想从外部内存中获取指令(绕过内部内存),那么他必须将外部访问(EA)引脚连接到地(GND)。

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

8051能够流水线操作。流水线使处理器能够在执行上一条指令的同时获取下一条指令。它类似于多任务处理,一次做多个操作。8051能够在执行上一条指令的同时获取下一条指令的第一个字节。

数据存储器组织

8051年的数据内存

在MCS-51系列中,8051有128字节的内部数据存储器,它允许与最大大小为64K的外部数据存储器进行接口。因此8051中数据存储器的总大小可以达到64K(外部)+ 128字节(内部)。仔细观察图表以获得更多的理解。所以有3个分离/分区的数据内存:- 1)注册银行2)位可寻址区3)刮板区。

内部RAM

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

8051的位可寻址区域通常用于存储位变量。位可寻址区域是由16个字节旁边的注册银行形成的。它们被指定从地址20H到2FH(共128位)。在从20H到2FH的128位中,每个比特可以从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辛格

    有四个端口,但是端口o和端口2不理解,请解释这两个端口,这个输出或输入的目的是什么。哪里会得到正确的输出。

  2. 临近夏鲁寺

    它的好。谢谢你

  3. 吉奥莉•

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

  4. 帕迪

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

  5. Bilal马利克

    写得很好的文章

  6. 约瑟夫gregoraci

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

    谢谢
    约瑟夫

    • 乔乔

      @Joseph——看情况吧!你读过制造商的数据表就知道了。这与制造商不同。一个想法是使用opamp调节传感器/输入信号的微弱电压,并将其电平提高到5V。

      • pendo斯蒂芬

        我是一名三年级的学生,我在做项目用8051单片机基本戳记2。请告诉我如何连接到电路

  7. lalith

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

  8. Bhaskar肯定

    有帮助,谢谢

  9. bhavin

    我正在用8051做项目。那么请告诉我如何使用8051。我的项目是能源最大需求控制器

  10. p . jesal

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

  11. p . sushma

    Superab解释. .这真的很好,一个很容易理解的概念,我们需要更多像pentinum的特点,你能提供吗?

  12. megana

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

    • 克里希纳Chaitanya

      公共汽车是8051号公路上每个街区相互连接的地方。所以当我们从一个块到另一个块发送数据时,我们需要使用总线。但是当使用多个数据块进行数据传输时就会出现问题,这个问题可以通过总线控制逻辑来消除。
      总线控制逻辑在数据传输中起着关键作用。

  13. megana

    这个回答很好
    8051单片机为什么采用总线控制

  14. 弗兰克·唐纳德

    好一个……如果你能解释一下嵌入式C编程,那就太好了

  15. lahiru

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

  16. Pradeepkumar

    好解释。它具有读取8051核心及其架构的重要信息。感谢您构建本文。
    这将是更有帮助的,仍然有更多的概念解释,如配置计时器,计数器,中断…

    再次感谢

  17. 尼迪rathi

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

  18. govind

    8051单片机中为什么要将电容器置于VCC和复位之间

  19. bhushan waghmare

    其优秀的哇

  20. 塔·

    出色的解释,清晰的语言。继续……

  21. jeesha莫迪

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

    • Gurmukh辛格

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

  22. 大理naidu

    很好的解释

  23. 角色

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

  24. Anurag

    很好地解释,用简单的语言

  25. goutam辛格

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

    • 乔乔

      您可以从Atmel购买AT89S51

  26. nikhil

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

    • 乔乔

      你好,Nikhil,请稍等。我们肯定会写出关于16位和32位架构的文章。

  27. Abhijeet

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

  28. Sumir Kumar Jha

    好的解释先生,

    它帮助了我很多!!!!

  29. neethukumaran

    这对学生非常有帮助。

  30. harika

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

    • 阿米特

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

    • Lycon

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

  31. 蟹道

    对学生非常有用……

  32. 乔乔

    你好Sameer,

    你能给我举个例子吗?

  33. sameer古普塔

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

    • DAKSH YADAV

      U alwyas c这样的符号在c语言编程的uc
      这意味着将0AF作为十六进制数字

  34. saiteja

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

  35. 你的解释是很容易理解的,每一个学生,我们想从你更多的信息,请发送我的电子邮件iddhupamsai16@gmail.com

  36. 普拉萨德

    请告诉我如何焊接耳机插孔.......

  37. SrihariRao

    出色的文章。谢谢你的分享。
    想要更多像这样的。

Baidu