历史上的今天

今天是:2024年10月07日(星期一)

正在发生

2018年10月07日 | 【知识点】80C51单片机的内部结构

发布者:技术旅人 来源: eefocus关键字:80C51  单片机  内部结构 手机看文章 扫描二维码
随时随地手机看文章

单片机按存储结构可分为二类:一类是哈佛结构,另一类是普林斯顿结构。哈佛结构所谓哈佛结构是指程序存储器地址空间与数据存储器地址空间分开的单片机结构,如80C51单片机采用哈佛结构,所以80C51单片机的程序存储器地址空间与数据存储器地址空间是分开的,各有64K存储空间。


普林斯顿结构所谓普林斯顿结构是指程序存储器地址空间与数据存储器地址空间合并的单片机结构,如MCS-96单片机采用普林斯顿结构,所以MCS-96单片机的程序存储器地址空间与数据存储器地址空间是合并的,共有64K存储空间。


1.单片机的CPU 图1是80C51单片机的内部结构框图。若除去图中的存储器电路和I/O部件,剩下的便是CPU。它可以分为运算器和控制器两部分。运算器功能部件包括算术逻辑运算单元ALU、累加器ACC、寄存器B、暂存寄存器TMP1、TMP2、程序状态字寄存器PSW等。控制器功能部件包括程序计数器PC、指令寄存器IR、指令译码器ID、定时控制逻辑电路CU、数据指针寄存器DPTR、堆栈指针SP及时钟电路等。


(1)运算器


 算术逻辑运算单元ALU(Arithmetic Logical Unit)


ALU可以进行算术、逻辑运算。算术运算有:加、减、乘、除,逻辑运算有:与、或、异或等。


累加器ACC


累加器ACC的主要功能是在运算前存放一个操作数,运算后存放一个操作结果。80C51系列单片机虽然在结构上仍然以累加器A作为重要部件。但由于内部电路采取了措施,使得累加器A在数据传送、逻辑操作等方面的核心作用有所削弱。数据可以在片内直接/间接地址的存储器之间直接传送,而不必经过累加器A。但,加、减、乘、除算术运算指令的运算结果都存放在累加器A或AB寄存器对中。 

       

【知识点】80C51单片机的内部结构


暂存器TMP1、TMP2由图1可知,ALU进行算术逻辑运算前的两个操作数来自暂存器TMP1、TMP2,所以暂存器TMP1、TMP2用于存放运算前的两个操作数。


程序状态字寄存器PSW程序状态字寄存器PSW用来存放运算结果的状态标志。PSW寄存器各位的含义如下,其中PSW.1未定义,其它各位说明如下:


CY:进位标志。它是累加器A的进位位,如果操作结果在最高位有进位(加法)或借位(减法)时置1,否则清0。


AC:半进位标志。它是低半字节的进位位(累加器A中A3位向A4位的进位),主要用于BCD码调整。低4位有进位(加法时)或向高4位有借位时(减法时),AC是1,否则,AC清0。


F0:用户定义的状态标志位。可通过软件对它置位、复位或测试,以控制程序的流向。


RS1、RS0:工作寄存器区选择控制位,用于选择4组工作寄存器之一。可以用软件来置位或清零,以确定工作寄存器区。RS1、RS0与寄存器区的对应关系如下:       RS1、RS0=00——0区(地址00H~07H)       RS1、RS0=01——1区(地址08H~0FH)       RS1、RS0=10——2区(地址10H~17H)      RS1、RS0=11——3区(地址18H~1FH)


OV:溢出标志位,用于表示有符号数算术运算的溢出。溢出时OV为1,否则OV为0。


P:奇偶标志位。每个指令周期都由硬件来置位或清零,以表示累加器A中1的个数的奇偶性。若1的个数为奇数,则P置位;若1的个数为偶数,则清零。


寄存器B


在乘除指令中,用到了寄存器B。


(2)控制器 控制器是控制单片机各种操作的部件,用于完成指令规定的操作。它包括程序计数器PC、指令寄存器IR、指令译码器ID、定时控制逻辑、数据指针寄存器DPTR、时钟发生器、复位电路、堆栈指针SP等。


程序计数器 PC


程序计数器PC为16位寄存器,用于存放下一条要执行指令地址,具有自动加1功能。


指令寄存器IR、指令译码器ID、定时控制逻辑电路


指令寄存器IR用来暂时存放当前取出的指令,并由指令译码器ID译码,产生相应的译码信号,并传送给定时控制电路,定时控制电路发出各种控制信号控制各器件完成指令规定的操作。


数据指针DPTRDPTR为16位寄存器。由于80C51单片机采用哈佛结构,因此,其程序存储器与地址存储器是分开的,程序存储器的地址是由程序计数器PC提供,而数据存储器的地址是由数据指针DPTR提供的,所以DPTR用于存放片外数据存储器及I/O口的地址。


时钟电路时钟电路是计算机的心脏,它控制着计算机的工作节奏。


复位和复位电路计算机在启动运行时都需要复位,复位就是使CPU和系统中的其它部件处于一个确定的初始状态,并从这个状态开始工作。


堆栈指针SP堆栈指针SP用于存放栈顶单元的地址。


2.单片机的存储器配置 由于80C51单片机采用哈佛结构,所以其程序存储器和数据存储器是分开的,各有自身的寻址系统、控制信号和功能。程序存储器用来存放程序和表格常数;数据存储器通常用来存放程序运行所需要的给定参数和运行结果。从实际的物理存储介质来看,80C51有4种存储空间,它们是片内程序存储器、片外程序存储器、片内数据存储器(含特殊功能寄存器)和片外数据存储器。80C51的存储器配置情况如图2所示。


【知识点】80C51单片机的内部结构


逻辑地址空间来看,80C51单片机可分为三部分,即:程序存储器、片外数据存储器、片内数据存储器。这3部分分别使用不同的地址指针,不同的访问指令。因此,下面按逻辑结构介绍80C51的存储器结构。


(1)程序存储器


由图3可知,程序存储器以程序计数器PC作地址指针,通过16位地址总线,可寻址的地址空间为0000H~0FFFFH共64K(216=64K)字节,其访问指令为MOVC。用于存放程序指令码与固定的数据表格等。


【知识点】80C51单片机的内部结构


80C51单片机中内部和外部共64K字节程序存储器的地址空间是统一的。对于有内部ROM的单片机,在正常运行时,应把引脚接高电平,使程序从内部ROM开始执行。当PC值超出内部ROM的容量时,会自动转向外部程序存储器空间。


(2)片外数据存储器由图可知,片外数据存储器以DPTR作为地址指针,通过16位地址总线,可寻址的地址空间为0000H~0FFFFH共64K(216=64K)字节,其访问指令为MOVX。用于存放数据与运算结果。


(3)片内据存储器片内数据存储器的地址空间从00H~FFH共256字节,其访问指令为MOV。其地址可由R0、R1寄存器提供。内部数据存储器是最灵活的地址空间,它分成物理上独立且性质上不同的2个区:00H~7FH单元组成的128字节RAM区,地址为80H~FFH的特殊功能寄存器区(简称SFR区)。


1)RAM区(00H~7FH)由图2-3可知,RAM区又分为3个区:工作寄存器区、位地址区与数据缓冲区。工作寄存器区(00H~1FH)80C51单片机的内部RAM区结构如图2-3所示。位地址区(20H~2FH)内部RAM的20H~2FH为位寻址区域,见表1所示。这16个单元的每一位都有一个位地址,位地址范围为00H~7FH。通常把各种程序状态标志、位控制变量设在位寻址区内。位寻址区的RAM单元也可以作为一般的数据缓冲区使用。  


表1 内部RAM区的位地址映像表

【知识点】80C51单片机的内部结构


数据缓冲区数据缓冲区的地址空间从30H~7FH共80个字节单元,用于存放数据与运算结果,如加法运算时,存放加数、被加数及运算和。通常堆栈区也设置在该区内。有些单片机将显示缓冲区设置在该区内。


2)特殊功能寄存器SFR(80H~FFH)80C51单片机内的I/O口锁存器、状态标志寄存器、定时器、串行口、数据缓冲器以及各种控制寄存器统称为特殊功能寄存器,它们离散地分布在内部RAM地址空间(80H~0FFH)内,表2列出了这些特殊功能寄存器的标识符、名称及地址。由表2-2可知累加器ACC、寄存器B、程序状态字PSW、I/O口P0~P3等均为特殊功能寄存器。


表2  特殊功能寄存器SFR

【知识点】80C51单片机的内部结构


注:带“·”号的寄存器可按字节和按位寻址,其特征是直接地址能被8整除。带“*”号的寄存器是与定时器/计数器2有关的寄存器,仅在80C52系列中存在。下面以一个实例说明单片机的内部存储器。


【知识点】80C51单片机的内部结构


3.80C51单片机并行输入/输出口 80C51单片机含有4 个8位并行I/O口P0、P1、P2和P3。每个口有8个引脚,如图2-1所示,共有32个I/O引脚,每一个并行I/O口都能用作输入或输出。各口的第一、第二功能如下:       I/O口   引脚      第一功能      第二功能       P0口   P0.0~P0.7  输入与输出    分时的传送地址低8位与数据线       P1口   P1.0~P0.7  输入与输出    无第二功能       P2口   P2.0~P2.7  输入与输出   传送地址的高8位       P3口   P3.0~P3.7  输入与输出    P3.0——RXD:串行口输入端


P3.1——TXD:串行口输出端P3.2——INT0:外部中断0中断请求输入端P3.3——INT1:外部中断1中断请求输入端P3.4——T0:定时器/计数器0外部输入端P3.5——T1:定时器/计数器1外部输入端P3.6——WR:外部数据存储器写选通信号


P3.7——RD:外部数据存储器读选通信号


四个通道口都有一种特殊的线路结构,每个口都包含一个锁存器,即特殊功能寄存器P0~P3,一个输出驱动器和两个(P3口有三个)三态缓冲器。这种结构在数据输出时,可以锁存,即在重新输出新的数据之前,口上的数据一直保持不变。但对于输入信号是不锁存的,所以外设欲输入的数据必须保持到取数指令执行(把数据读取后)为止。


下面分别叙述各个端口的结构、功能和使用方法。


(1)P0口的组成与功能 1)位结构在访问外部存储器时,P0口是一个真正的双向数据总线口,并分时送出地址的低8位。图2-4所示的是P0口的一位结构图。它包含两个输入缓冲器、一个输出锁存器以及输出驱动电路、输出控制电路。输出驱动电路由两只场效应管V1和V2组成,其工作状态受输出控制电路的控制。输出控制电路包括与门、反相器和多路模拟开关MUX。P0口既能用作通用I/O口,又能用作地址/数据总线。


2)作为通用I/O口P0口作为通用I/O口使用时,CPU令控制信号为低电平。这时多路开关MUX接通B端即输出锁存器的 端,同时使与门输出低电平,场效应管V1截止,因而输出级为开漏输出电路。


【知识点】80C51单片机的内部结构


作为输出口当用P0口输出数据时,写信号加在锁存器的时钟端CL上,此时与内部总线相连的D端其数据经反相后出现的 端上,再经V2管反相,于是在P0口引脚上出现的数据正好是内部总线上的数据。由于输出级为开漏电路,所以用作输出口时应外接上拉电阻。


作为输入口当P0口用于输入数据时,要使用端口中的两个三态输入缓冲器之一。这时有两种工作方式:读引脚和读锁存器。当CPU执行一般的端口输入指令时,“读引脚”信号使图2-4中下面一个缓冲器开通,于是端口引脚上的数据经过缓冲器输入到内部总线上。当CPU执行“读一修改一写”一类指令时,“读锁存器”信号使图2-4上面一个缓冲器开通,锁存器Q端的数据经缓冲器输入内部数据总线。在P0口作为输入口使用时,必须首先向端口锁存器写入“1”。这是因为当进行读引脚操作时,如果V2是导通的,那么不论引脚上的输入状态如何,都会变为低电平。为了正确读入引脚上的逻辑电平,先要向锁存器写1,使其 端为0,V2截止。该引脚成为高阻抗的输入端。


3)作为地址/数据总线P0口还能作为地址总线低8位或数据总线,供系统扩展时使用。这时控制信号为高电平,多路开关MUX接通A端。有两种工作情况:一种是总线输出,另一种是外部数据输入。作为总线输出时,从“地址/数据”端输入的地址或数据信号通过与门驱动V2,同时通过非门驱动V2,结果在引脚上得到地址或数据输出信号。


作为数据总线输入数据时,从引脚上输入的外部数据经过读引脚缓冲器进入内部数据总线。对于80C51、87C51单片机,P0口能作为I/O口或地址/数据总线使用。对于80C31单片机,P0口只能用作地址/数据总线。


综上所述,P0口既可以作为地址/数据总线口,这时它是真正的双向口,也可作通用的I/O口,但只是一个准双向口。准双向口的特点是:复位时,口锁存器均置“1”,8根引脚可当一般输入线使用,而在某引脚由原输出状态变成输入状态时,则应先写入“1”,以免错读引脚上的信息。一般情况下,P0口已当作地址/数据总线口使用时,就不能再作通用I/O口使用。


【知识点】80C51单片机的内部结构


(2)P1口组成与功能


P1口只用作通用I/O口,其一位结构图如图所示。与P0口相比,P1口的位结构图中少了地址/数据的传送电路和多路开关,上面一只MOS管改为上拉电阻。


P1口作为一般I/O的功能和使用方法与P0口相似。当输入数据时,应先向端口写“1”。它也有读引脚和读锁存器两种方式。所不同的是当输出数据时,由于内部有了上拉电阻,所以不需要再外接上拉电阻。


(3)P2口的组成与功能


当系统中接有外部存储器时,P2口可用于输出高8位地址,若当作通用I/O口用,P2口则是一个准双向口。因此说P2口能用作通用I/O口或地址总线,其一位的结构如图所示。


作为通用I/O口


当控制信号为低电平时,多路开关接到B端,P2口作为通用I/O口使用,其功能和使用方法与P1口相同。


作为地址总线当控制端输出高电平时,多路开关接到A端,地址信号经反相器、V从引脚输出。这时P2口输出地址总线高8位,供系统扩展使用。


对80C51、87C51单片机,P2口能作为I/O口或地址总线作用。对于80C31单片机,P2口只能用作地址总线。


(4)P3口组成与功能P3口能作通用I/O口,同时每一引脚还有第二功能。P3口的一位结构如图2-7所示。作为通用I/O口:当“第二功能输出”端为高电平时,P3口用作通用I/O口。这时与非门对于输入端Q来说相当于非门,位结构与P2口完全相同,因此P3口用作通用I/O口时的功能和使用方法与P2口、P1口相同。用作第二功能: 当P3口的某一位作为第二功能输出使用时,应将该位的锁存器置“1”,使与非门的输出状态只受“第二功能输出”端的控制。“第二功能输出”端的状态经与非门和驱动管V输出到该位引脚上。当P3口的某一位作为第二功能输入使用时,该位的锁存器和“第二功能输出”端都应为“1”,这样,该位引脚上的输入信号经缓冲器送入“第二功能输入”端。


【知识点】80C51单片机的内部结构

       

至此,可以对组成一般单片机应用系统时各个并行口的分工小结如下:       P0口:分时的用作地址低8位与数据线,低8位地址由PC低8位或DPL提供。       P1口:按位可编址的输入输出口。       P2口:地址线的高8位,高8位地址由PC高8位或DPH提供。       P3口:双功能口,若不用第二功能,可作为一般的I/O口。


关键字:80C51  单片机  内部结构 引用地址:【知识点】80C51单片机的内部结构

上一篇:KEILC51编译问题ERRORL104:MULTIPLEPUBLICDEFINITIONS重复定义
下一篇:利用51单片机制作廉价盒仔机器人

推荐阅读

        IT之家10月6日消息上个月,华为和苹果推出了他们的新旗舰芯片,Apple A12 Bionic搭载在了最新的iPhoneXS,iPhone XS Max和iPhone XR中,麒麟980将搭载在华为Mate 20和Mate 20 Pro中。随着Galaxy S10和Galaxy S10 Plus智能手机即将推出,高通和三星的新旗舰芯片将很快亮相。        最近,高通骁龙8150已经在蓝牙认证网...
在AI换脸软件ZAO和旷视校园人脸识别的风波后,17万人脸数据被公开挂在网上商城出售的消息“接踵而至”,人脸突然成了“危险品”。无处不在的人脸识别,当采集人脸数据的渠道越来越广,很多人会疑惑,我们的人脸数据最终都流向了哪里?在刷脸解锁手机,付款,进出入高铁站、机场的时代,你的脸可能在研究人员的数据集中,也可能在暗网的黑产交易中,也可能...
综合编译自HPC与Techcrunch不知是否巧合,十一期间,Nvidia和Arm都前后举行了开发者大会,Nvidia CEO黄仁勋前脚刚参加完GTC的主题演讲后,又与Arm CEO Simon Segars在Arm开发者大会上尽情畅谈,包括AI、数据中心、并购以及其他等等。黄仁勋:Nvidia与Arm结合为了人工智能和超级计算的创新黄仁勋承诺将保留Arm在剑桥的总部,同时将投资5200万美元打造英...
据悉,我国机器人研究开始于八十年代,在技术上晚于其它的发达国家。但是目前我国机器人水平已经实现了跨越性的进步,且来看看2021中国科技机器人企业排行榜TOP10: 1、美的集团:工业机器人、物流自动化系统 2、埃斯顿:工业机器人及智能制造系统 3、创新:与飞行器控制系统 4、汇川技术:工业机器人核心部件与整机 5、航天科技:航天工业机器人研...

史海拾趣

问答坊 | AI 解惑

职业生涯设计的几个基本观点

在中国,我们定义个人的成功大都集中于工作层面,不太像欧美国家,把家庭幸福、自娱自乐等作为成功的标志。所以这个时代的中国人也就更为关心工作上的发展了,也就努力的学习、警觉的寻找着机会、苦心孤诣地培养着自己的能力,但在这些具体的行为上 ...…

查看全部问答∨

Freescale芯片的资料并不少

很多人一直以为Freescale芯片的资料太少,其实不然。相对其他一些公司Freescale的芯片只是在国内用的少些罢了,他的网站上有他所有芯片的详细资料,手册简洁易懂,整理的很好,还有大量的参考设计代码、开发包。 说资料少的人估计大都是没用过他的 ...…

查看全部问答∨

单片机VS ARM VS DSP,单片机的未来在哪里?

  自从毕业以后,就再也没有碰过单片机了,只是偶尔来这里看看,回味一下大学自学单片机的日子,那时候真的是很疯狂,很单纯,当时以为懂得了单片机就以为掌握了自己的未来,在一些学校的DIY爱好者中几乎飘着“单片机”的空气。到了大三 ...…

查看全部问答∨

DM642 NDK UDP问题

我的程序流程: PC机与DM642开发板相连。 PC机流程:SOCKETàBINDà有数则收,有键盘输入则发送数据; DM642流程:SOCKETàBINDà接收数据à收到数据则发送 上述为可以正常工作的流程,DM642在收到数据后,再发送,则可以一直发送成功,并且PC ...…

查看全部问答∨

招聘windows驱动开发

文思信息技术有限公司成立于1995年,是中国软件外包行业的先行者和领军企业。 我们为来自亚太、北美和欧洲的国际客户及其在中国的分支机构提供IT外包服务。 文思在高科技行业、金融服务业、制造业、零售与分销业、电信业等领域具备全面 的专业能 ...…

查看全部问答∨

tornado2.2 (for poverPc) simulator 启动问题??

我在网上下了一个tornado 按说明安装后,运行没有问题,但是启动VX是, 报error : simulator failed to initialize before timeout 的错误。 大家看看这是什么问题啊? …

查看全部问答∨

关于在线编程和烧写

我这边是9s12dp512的一个芯片   外围是一个485芯片  232芯片  一个can芯片  还有一些继电器    在线编程情况下调试通过   485串口通信没有问题   但是将烧写器拔掉的情况下 &nbs ...…

查看全部问答∨

求教关于TMS320C6678的开发环境

目前本人在学习TMS320C6678,这款芯片现在貌似刚出来啊,,目前它的开发只有CCS么,还有没有其他的开发软件呢?…

查看全部问答∨

外部干扰会不会使2812运行中进入非法中断?

我做了一个PWM整流器,直流电压在200V以下DSP运行正常,但电压加到250V时DSP就容易跑飞,多数是进入了非法中断(我在非法中断中设置了一个GPIO口,多数情况下会反转,以此判断多数情况下进入非法中断),我认为程序在低压下能跑,应该不是程序问题 ...…

查看全部问答∨

【易电源试用】 之 --- LMZ12002

使用我的简易电子负载,作易电源的测试 ,效果基本满意,比找功率电阻要方便多了。 这次测试了LMZ12002的输出电流与电压、波纹的关系,在测量波纹时,加大负载时,怎么就看不到波纹了呢!示波器用的是0.010V档,开始时略显有纹波,加大负载后的纹 ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved