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

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

微处理器和微控制器

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

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

介绍

英特尔在1976年首次生产了一种微控制器用……的名字MCS-48,这是一个8位单片机。在1980年后期,他们发布了一个进一步改进的版本(也是8位的),命名为MCS-51。最流行的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用于晶体时钟电路的系统时钟输入。RESET输入需要将微控制器初始化为默认值/期望值并重新开始。

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

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

8051功能图

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

共有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又名地址锁存使能(Address Latch Enable)用于解复用端口0的地址数据信号(用于外部存储器接口)。每个机器周期有2个ALE脉冲可用。

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

针——第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微控制器的初始值,而微控制器正在工作或在最初的应用程序开始。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大小的外部内存(通过接口)。所以在总共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. 罗希塔什·辛格

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

  2. 临近夏鲁寺

    它的好。谢谢你

  3. 吉奥莉•

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

  4. 帕迪

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

  5. Bilal马利克

    写得很好

  6. 约瑟夫·格雷戈拉西

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

    谢谢
    约瑟夫

    • 乔乔

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

      • pendo斯蒂芬

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

  7. lalith

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

  8. Bhaskar肯定

    有帮助,谢谢

  9. bhavin

    我正在使用8051做项目。请告诉我8051的使用方法。我的项目是能量最大需求控制器

  10. p . jesal

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

  11. p . sushma

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

  12. megana

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

    • 克里希纳Chaitanya

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

  13. megana

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

  14. 弗兰克·唐纳德

    好一个……关于MC的各种编程概念,如果你能解释一下嵌入式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. 大理乃都

    很好的解释

  23. 角色

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

  24. Anurag

    解释得很好,语言简单

  25. goutam辛格

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

    • 乔乔

      你可以从Atmel买AT89S51

  26. nikhil

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

    • 乔乔

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

  27. Abhijeet

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

  28. Sumir Kumar Jha

    好的解释先生,

    这对我帮助很大!!!!

  29. 尼图库马兰

    对学生很有帮助的职位。

  30. harika

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

    • 阿米特

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

    • Lycon

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

  31. 乔乔

    你好Sameer,

    你能举个例子吗?

  32. sameer古普塔

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

    • DAKSH YADAV

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

  33. saiteja

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

  34. 你的解释对每个学生来说都是容易理解的,我们想从你那里得到更多的信息,请发给我我的邮箱dhupamsai16@gmail.com

  35. 普拉萨德

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

  36. SrihariRao

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

Baidu