8051单片机内部RAM结构图
单片机内部主要部件

1.2 单片机内部主要部件单片机内部电路比较复杂,MCS-51系列的8051型号单片机的内部电路根据功能可以分为CPU、RAM、ROM/EPROM、并行口、串行口、定时/计数器、中断系统及特殊功能寄存器(SFR)等8个主要部件,如图1-2-1所示。
这些部件通过片内的单一总线相连,采用CPU加外围芯片的结构模式,各个功能单元都采用特殊功能寄存器集中控制的方式。
其他公司的51系列单片机与8051结构类似,只是根据用户需要增加了特殊的部件,如A/D转换器等。
在设计程序过程中,寄存器的使用非常频繁。
本节内容在了解单片机内部的组成机构基础上,重点介绍单片机内部常用的寄存器的作用。
图1-2-1 MCS-51架构1.2.1中央处理器(CPU)中央处理器是单片机的核心,主要功能是产生各种控制信号,根据程序中每一条指令的具体功能,控制寄存器和输入/输出端口的数据传送,进行数据的算术运算、逻辑运算以及位操作等处理。
MCS-51系列单片机的CPU字长是8位,能处理8位二进制数或代码,也可处理一位二进制数据。
单片机的CPU从功能上一般可以分为运算器和控制器两部分。
一、控制器控制器由程序计数器PC、指令寄存器、指令译码器、定时控制与条件转移逻辑电路等组成。
其功能是对来自存储器中的指令进行译码,通过定时电路,在规定的时刻发出各种操作所需的全部内部和外部的控制信号,使各部分协调工作,完成指令所规定的功能。
各部分功能部件简述如下。
1.程序计数器PC(Program Counter)程序计数器是一个16位的专用寄存器,用来存放下一条指令的地址,具有自动加1的功能。
当CPU要取指令时,PC的内容送地址总线上,从存储器中去取出一个指令码后,PC 内容自动加1,指向下一个指令码,以保证程序按顺序执行。
PC是用来指示程序的执行位置,在顺序执行程序时,单片机每执行一条指令,PC就自动加1,以指示出下一条要取的指令的存储单元的16位地址。
也就是说,CPU总是把PC 的内容作为地址,根据该地址从存储器中取出指令码或包含在指令中的操作数。
8051单片机CPU的内部组成及功能介绍

8051单片机CPU的内部组成及功能介绍一、运算器运算器以完成二进制的算术/逻辑运算部件ALU为核心,再加上暂存器TMP、累加器ACC、寄存器B、程序状态标志寄存器PSW及布尔处理器。
累加器ACC是一个八位寄存器,它是CPU中工作最频繁的寄存器。
在进行算术、逻辑运算时,累加器ACC往往在运算前暂存一个操作数(如被加数),而运算后又保存其结果(如代数和)。
寄存器B主要用于乘法和除法操作。
标志寄存器PSW也是一个八位寄存器,用来存放运算结果的一些特征,如有无进位、借位等。
其每位的具体含意如下所示。
PSW CY AC FO RS1 RS0 OV -P对用户来讲,最关心的是以下四位。
1?进位标志CY(PSW?7)。
它表示了运算是否有进位(或借位)。
如果操作结果在最高位有进位(加法)或者借位(减法),则该位为1,否则为0。
2?辅助进位标志AC。
又称半进位标志,它反映了两个八位数运算低四位是否有半进位,即低四位相加(或减)有否进位(或借位),如有则AC为1状态,否则为0。
3?溢出标志位OV。
MCS-51反映带符号数的运算结果是否有溢出,有溢出时,此位为1,否则为0。
4?奇偶标志P。
反映累加器ACC内容的奇偶性,如果ACC中的运算结果有偶数个1(如11001100B,其中有4个1),则P为0,否则,P=1。
PSW的其它位,将在以后再介绍。
由于PSW存放程序执行中的状态,故又叫程序状态字?运算器中还有一个按位(bit)进行逻辑运算的逻辑处理机(又称布尔处理机)。
其功能在介绍位指令时再说明。
二、控制器控制器是CPU的神经中枢,它包括定时控制逻辑电路、指令寄存器、译码器、地址指针DPTR及程序计数器PC、堆栈指针SP等。
这里程序计数器PC是由16位寄存器构成的计数器。
要单片机执行一个程序,就必须把该程序按顺序预先装入存储器ROM的某个区域。
单片机动作时应按顺序一条条取出指令来加以执行。
因此,必须有一个电路能找出指令所。
80C51单片机的硬件结构

作的执行部件。由加法器和其他逻辑电路(移位电
路和判断电路等)组成。完成算术加、减、乘、除
和逻辑“与”、“或”、“异或”等运算以及循环
移位操作、位操作等功能。
(3) 程序状态字寄存器PSW:是8位寄存器, 用来存放运算结果的一些特征。 (4) B寄存器:在进行乘法、除法运算时作 为ALU的输入之一,与ACC配合完成运算和并存 放运算结果。 (5) 暂存器:用以暂存进入运算器之前的数 据。
微机控制技术
主讲:
张 勤 工学博士 副教授
教材:单片机基础,航空航天大学出版
第2章 80C51单片机的硬件结构
2.1 单片机的概念及系列
2.2 80C51单片机内部结构 2.3 80C51系列单片机外引脚功能
2.4 80C51单片机的内部存储器
2.5 80C51单片机的并行I/O口
…
17H 18H 19H … 1FH
…
R7 R0 R1 … R7
工作寄存器3组
20H
21H 22H 23H 24H 25H 26H 27H 位 寻 28H
07H
0FH 17H 1FH 27H 2FH 37H 3FH 47H
06H
0E H 16H 1E H 26H 2E H 36H 3E H 46H
ቤተ መጻሕፍቲ ባይዱ
05H
1.封装:80C51系列单片机常用的两种封装为双 列直插式DIP40,方形封装LCC44
2.80C51系列单片机外部引脚
3.80C51单片机逻辑符号
4.80C51系列单片机外部引脚说明
重要性:引脚表现出单片机的外部特性或硬
件特性,通过引脚连接和组建系统。 共有40个引脚,分为端口线(32条),电源 线(2条)和控制线(6条) 端口:4个并行I/O端口,每个端口有8条端口 线,用于传送数据或地址。每个端口结构各 不相同,因此功能和用途上的差别也较大。
8051单片机的引脚及结构.

中断源:指能产生中断请求信号的源泉。
8051可处理5个中断源(2个外部,3个内部)发出的中断 请求,并可对其进行优先权处理。外部中断的请求信号可以从 P3.2, P3.3(即 INT0 和 INT1 )引脚上输入,有电平或边沿两种触 发方式;内部中断源有3个,2个定时器/计数器中断源和1个串行 口中断源。
一 般将 只读存 储器 ( ROM)用 做程序 存储 器 。可 寻址 空间 为 64KB,用于存放用户程序、数据和表格等信息。
MCS-51单片机按程序 存储器可分为内部无ROM 型(如8031)和内部有 ROM型(如8051)两种,EA 连接时 引脚有区别。程序存 储器结构如右图所示:
(2)数据存储器
XTAL2 XTAL1
VSS
1
40
2
39
3
38
4 5
8031
37 36
6
35
7 8051 34
8
33
9 10
8751
32 31
11
30
12 89C51 29
13
28
14
27
15
26
16
25
17
24
18
24
19
22
20
21
VCC P0. 0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 EA ALE PSEN P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2. 0
8051的中断系统主要由中断允许控制器IE和中断优先级控 制器IP等电路组成。
二、MCS-51单片机外部引脚
P1. 0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
8051单片机的体系结构

(3)数据缓冲区
内部RAM的30H~7FH是数据缓冲区,也称为用户RAM区, 共80个单元。
52子系列内部有256个单元的数据存储器,用户RAM区范 围为30H~FFH,共208个单元。
工作寄存器区和位寻址区的地址及单元数与上述一致。
3、堆栈和堆栈指针 堆栈的概念:是一种数据项按序排列的数据结
构,采用后进先出,这种后进先出操作的缓冲器 区称为堆栈。
由内部控制信号产生输入锁存器两个输入缓冲器buf1和buf2推拉式io驱动器251p0口位图内部结构buf2buf15p0r2为读引脚信号执行movap0时该信号有效6读引脚端口时输出锁存器应为1qqdcvcc控制ad0p0r1p0r2d0p0w图1p0口内部结构读锁存器读引脚锁存器内部总线写锁存器地址数据p00多路开关10写数据读端口p03地址锁存器cbioa15a14a13a12a11a10a9a8a7a6a5a4a3a2a1a0d7d6d5d4d3d2d1d0dbabp10p11p12p13p14p15p16p17resetp30p31p33p34p35p36p37vssvccp00p01p02p05p06p07eaalepsenp27p26p25p24p23p22p21p20p32mcs51片外总线结构示意图返回mcs51单片机片外总线p04返回单片机8031p20p21p22a8a9a10alerd74ls373g6264a7a6a5a4a3a2a1a0o0o1o2o3o4o5o6o7p00p01p02p03p04p05p06p07oeceq0q1q2q3q4q5q6q7d0d1d2d3d4d5d6d7wewrp27p23p24a11a126264we单片机8031p20
P2.0
.P:2.4
单片机
8031 P0.0
单片机 第二章 80C51系列单片机内部结构与工作原理

2.2 80C51单片机内部基本结构及引脚功能
③检查单片机芯片的好坏,可用示波器查看ALE端
是否有脉冲信号输出。
④ALE端的负载能力为8个LS型TTL。 :对EPROM型单片机,如对87C51BH编程时 的编程脉冲输入端。 ⑵、 (29脚):程序存储允许输出端。片外程
序存储器的读选通信号,低电平有效。
2.2 80C51单片机内部基本结构及引脚功能
3、基本功能单元
功能: 满足单片机测控功能要求的基本计算机外 围电路,用来完善和扩大计算机的功能.
组成: 包括定时/计数器、中断系统、串行通信 接口等。 说明: (1)80C51有两个16位定时/计数器 (T0和T1)。 作用: 可以作为内部定时器或外部脉冲计数器使 用。作内部定时器时,是靠对时钟振荡器的12分频脉
2.1 2.2 2.3
2.4
2.5 2.6
2.7
2.8 2.9
80C51系列单片机简介 80C51单片机内部基本结构及引脚功能 80C51单片机CPU结构 80C51存储器结构 输入/输出(I/O)端口 单片机的工作过程 80C51的低功耗方式 本章小结 练习思考题
第二章
80C51系列单片机内部结构与工作原理
①CPU从外部ROM取指令时,在每个机器周期中两 次有效。但在访问片外RAM时,要少产生两次负脉冲信
2.2 80C51单片机内部基本结构及引脚功能
号。有效时,将外部ROM中的指令读到数据总线上。
②检查单片机系统上电后,CPU能否正常到 EPROM/ROM中读取指令码,可用示波器查看该端有无负 脉冲信号输出。 ③可驱动8个LS型TTL门电路。
⑶、 (31脚):内部/外部ROM地址选择信号/ 固化编程电压输入端。 :①为高电平,CPU访问ROM有两种情况: 当PC中的值小于0FFFH时,执行片内ROM指令; 当PC中的值超过0FFFH时,将自动转向执行片外 ROM指令。
51单片机数据类型

从数据存储类型来说,8051系列有片内、片外程序存储器,片内、片外数据存储器,片内程序存储器还分直接寻址区和间接寻址类型,分别对应code、data、xdata、idata以及根据51系列特点而设定的pdata类型,使用不同的存储器,将使程序执行效率不同,在编写C51程序时,最好指定变量的存储类型,这样将有利于提高程序执行效率。
在51系列中data,idata,xdata,pdata的区别:1、data:固定指前面0x00-0x7f的128个RAM,可以用acc直接读写的,速度最快,生成的代码也最小。
2、idata:固定指前面0x00-0xff的256个RAM,其中前128和data的128完全相同,只是因为访问的方式不同。
idata是用类似C中的指针方式访问的。
汇编中的语句为:moxACC,@Rx.(不重要的补充:c中idata做指针式的访问效果很好)3、 xdata:外部扩展RAM,一般指外部0x0000-0xffff空间,用DPTR访问。
4、 pdata:外部扩展RAM的低256个字节,地址出现在A0-A7的上时读写,用movxACC,@Rx读写。
这个比较特殊,而且C51好象有对此BUG,建议少用。
但也有他的优点,具体用法属于中级问题,这里不提。
当然现在有些51单片本身内部就有扩展的RAM区域,故在允许使用内部扩展RAM的时候使用xdata 和pdata并不影响P2和P0口。
单片机C语言unsigned char code table[] code 是什么作用?code的作用是告诉单片机,我定义的数据要放在ROM(程序存储区)里面,写入后就不能再更改,其实是相当与汇编里面的寻址MOVX(好像是),因为C语言中没办法详细描述存入的是ROM 还是RAM(寄存器),所以在软件中添加了这一个语句起到代替汇编指令的作用,对应的还有data 是存入RAM的意思。
程序可以简单的分为code(程序)区,和data (数据)区,code区在运行的时候是不可以更改的,data区放全局变量和临时变量,是要不断的改变的,cpu从code区读取指令,对data 区的数据进行运算处理,因此code区存储在什么介质上并不重要,象以前的计算机程序存储在卡片上,code区也可以放在rom里面,也可以放在ram里面,也可以放在flash里面(但是运行速度要慢很多,主要读flash比读ram要费时间),因此一般的做法是要将程序放到flash里面,然后load到 ram里面运行的;DATA区就没有什么选择了,肯定要放在RAM里面,放到rom 里面改动不了。
51单片机存储器内部结构

MCS-51单片机在物理结构上有四个存储空间:1、片内程序存储器2、片外程序存储器3、片内数据存储器4、片外数据存储器但在逻辑上,即从用户的角度上,8051单片机有三个存储空间:1、片内外统一编址的64K的程序存储器地址空间(MOVC)2、256B的片内数据存储器的地址空间(MOV)3、以及64K片外数据存储器的地址空间(MOVX)在访问三个不同的逻辑空间时,应采用不同形式的指令(具体我们在后面的指令系统学习时将会讲解),以产生不同的存储器空间的选通信号。
程序内存ROM寻址范围:0000H ~ FFFFH 容量64KBEA = 1,寻址内部ROM;EA = 0,寻址外部ROM地址长度:16位作用:存放程序及程序运行时所需的常数。
七个具有特殊含义的单元是:0000H ——系统复位,PC指向此处;0003H ——外部中断0入口000BH —— T0溢出中断入口0013H ——外中断1入口001BH —— T1溢出中断入口0023H ——串口中断入口002BH —— T2溢出中断入口内部数据存储器RAM物理上分为两大区:00H ~ 7FH即128B内RAM 和 SFR区。
作用:作数据缓冲器用。
下图是8051单片机存储器的空间结构图程序存储器一个微处理器能够聪明地执行某种任务,除了它们强大的硬件外,还需要它们运行的软件,其实微处理器并不聪明,它们只是完全按照人们预先编写的程序而执行之。
那么设计人员编写的程序就存放在微处理器的程序存储器中,俗称只读程序存储器(ROM)。
程序相当于给微处理器处理问题的一系列命令。
其实程序和数据一样,都是由机器码组成的代码串。
只是程序代码则存放于程序存储器中。
MCS-51具有64kB程序存储器寻址空间,它是用于存放用户程序、数据和表格等信息。
对于内部无ROM的8031单片机,它的程序存储器必须外接,空间地址为64kB,此时单片机的端必须接地。
强制CPU从外部程序存储器读取程序。