80C51讲义单片机的存储器结构
第2章 80C51内部结构

1
存储器的主要功能:存储信息(程序和数据)。 存储器的主要功能:存储信息(程序和数据)。 分以下两类: 分以下两类:
随机存储器RAM CPU在运行时进行数据的写入和读 RAM: ① 随机存储器RAM:CPU在运行时进行数据的写入和读 出,但关闭电 源时,信息将丢失。 源时,信息将丢失。 功能:用来存放暂时性的输入输出数据。运算的中间结果或用作堆栈。 功能:用来存放暂时性的输入输出数据。运算的中间结果或用作堆栈。 只读存储器ROM 写入信息不易改写的存储器。断电后,信息保留不变。 ROM: ②只读存储器ROM:写入信息不易改写的存储器。断电后,信息保留不变。 功能:用来存放程序或常数。 功能:用来存放程序或常数。
2011-5-1内部数据 80C51单片机内部数据 存储器分为两部分: 存储器分为两部分:低 128B和高128B。 128B和高128B。 和高128B 两者地址相连。 两者地址相连。
80C51单片机片内数据存储器配置 2.15 80C51单片机片内数据存储器配置
2011-5-13
5
在程序存储器中有一个固定的中断源入口地址区。 在程序存储器中有一个固定的中断源入口地址区。这些指令 不被其他程序指令占用。80C51的 个中断源的入口地址为: 不被其他程序指令占用。80C51的5个中断源的入口地址为:
0000H:单片机复位后的入口地址; 0000H:单片机复位后的入口地址; 0003H:外部中断0入口地址; 0003H:外部中断0入口地址; 000BH:定时器0溢出中断入口地址: 000BH:定时器0溢出中断入口地址: 0013H:外部中断l入口地址; 0013H:外部中断l入口地址; 001BH:定时/计数器1溢出中断服务程序入口地址; 001BH:定时/计数器1溢出中断服务程序入口地址; 0023H:串行口的中断服务程序入口地址。 0023H:串行口的中断服务程序入口地址。 程序存储器的操作有: 程序存储器的操作有: (1)程序指令自主操作 程序按照PC指针顺序操作或转移操作。 程序指令自主操作: PC指针顺序操作或转移操作 (1)程序指令自主操作:程序按照PC指针顺序操作或转移操作。 (2)表格常数的查表操作 80C5l查表操作指令为MOVC,通过PC 表格常数的查表操作。 查表操作指令为MOVC PC或 (2)表格常数的查表操作。80C5l查表操作指令为MOVC,通过PC或DPTR 的基址变址,寻址方式实现查表操作。 的基址变址,寻址方式实现查表操作。 编程时,一般在这些入口地址开始的 开始的2 个单元中 放入一条转移指 编程时,一般在这些入口地址开始的2或3个单元中,放入一条转移指 以使相应的服务与实际分配的程序存储器区域中的程序段相对应。 令,以使相应的服务与实际分配的程序存储器区域中的程序段相对应。
80C51单片机的硬件结构之CPU与存储器

2.1 80C51系列单片机结构
2.1.1 内部结构框图
1.1个8位的CPU 2.1个片内振荡器和时钟电路 3.程序存储器 4 KB的掩膜ROM,用于存放程序、原始数 据或表格。 4.数据存储器 5.64KB总线扩展控制器 6.4个8位并行I/O口(P0、P1、P2、P3)
7.1个全双工串行接口
堆栈指针SP:存放栈顶的地址,内容可软件设置初值,单片机 复位时SP = 07H。CPU每往堆栈中存放一个数,SP都会先自动 加1,CPU每从堆栈中取走一个数,SP都会自动减1,SP始终指向 堆栈最顶部的数据的地址。
(5)数据指针DPTR
分成DPL(低8位)和DPH(高8位)两个寄存器,用来存放16 位地址值。
P0.4 84H
P0.3 83H
P0.2 82H
P0.1 81H
P0.0 80H
(1)累加器Acc
最常用的寄存器,所有的运算类指令都要使用它。累加器 在指令中的助记符为A,自身带有全零标志Z,若A=0则Z=1; 若A≠0则Z=0。该标志常用作程序分支转移的判断条件。
(2)B寄存器
80C51中,在做乘、除法时必须使用B寄存器,不做乘、除法 时,可作为一般的寄存器使用。
① 掩膜ROM。 ② 可编程的只读存储器(PROM)。 ③ 可改写的只读存储器EPROM。 ④ 可电改写只读存储器(EEPROM)。
随机存取存储器(RAM)
① 静态SRAM。 ② 动态DRAM。
可现场改写的非易失性存储器
① 快擦写存储器(FLASH)。 ② 铁电存储器FRAM。
2.存储单元和存储单元地址
1.80C51片内数据存储空间(低128B)
(1)工作寄存器区(00H~1FH) 作用:有专用于工作寄存器操作的指令,读写速度比一般内 RAM要快,指令字节比一般直接寻址指令要短,还具有间 址功能,能给编程和应用带来方便。 工作寄存器区分为4个区:0区、1区、2区、3区。每区有8 个寄存器:R0~R7,寄存器名称相同。但是,当前工作的 寄存器区只能有一个,由PSW中的D4、D3位决定。
80C51单片机的内部结构

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寄存器对中。
③暂存器TMP1、TMP2由图1可知,ALU进行算术逻辑运算前的两个操作数来自暂存器TMP1、TMP2,所以暂存器TMP1、TMP2用于存放运算前的两个操作数。
第2章 80C51系列单片机基本结构及原理

串行通信、扩展I/O接口芯片 定时、计数作用。与CPU之间各自独立工作,当它计数满时向CPU中断。
五个中断源、两级优先,可编程进行控制。
各部分通过内部总线相连。
7
2.1 80C51系列单片机的内部结构
本节内容
2.1.1 80C51系列单片机的CPU
2.1.2 程序存储器(ROM)和数据存储器(RAM)的区别
12
2.1 80C51系列单片机的内部结构
本节内容
2.1.1 80C51系列单片机的CPU
2.1.2 程序存储器(ROM)和数据存储器(RAM)的区别
2.1.3 单片机时序及有关概念
13
2.1 80C51系列单片机的内部结构
2.1.2 程序存储器(ROM)和数据存储器(RAM)的区别
程序存储器是用来存放指令代码的,即用来存放汇编语言 或C语言程序编译后的二进制程序代码; 数据存储器是用来存放程序运行中产生的运算结果或随机
2.1.3 单片机时序及有关概念
8
2.1 80C51系列单片机的内部结构
2.1.1 80C51系列单片机的CPU
CPU的作用:读入和分析每条指令,根据每条指令的功能要求,
控制各个部件执行相应的操作。 80C51系列单片机的CPU是由运算器和控制器构成的。
运算器主要用来对操作数进行算术、逻辑和位运算。 控制器的主要任务是识别指令,并根据指令的性质控制单片机各
环移位操作,位操作等功能。此外,还要
通过对运算结果的判断,影响程序状态标 志寄存器的有关位。
10
2.1 80C51系列单片机的内部结构
控制器 指令寄存器 指令译码器
时钟发生器、定时控制逻辑、 程序计数器PC、 程序地址寄存器、 数据指针寄存器DPTR、 堆栈指针SP
单片机80C51

单片机80C5180C51单片机的典型产品有80C51﹑80C31和87C51,80C51是ROM型单片机,内部有4KB ROM;80C31无片内ROM;87C51片内有4KB EPROM。
除此外三者的内部结构和引脚完相同。
图1-1 为80C51的内部结构80C51的内部结构包括:【中央处理器(CUP)】主要完成运算和控制功能,80C51的CPU 是一个字节为8位的中央处理器,即它对数据的处理是按字节为单位的;【内部数据处理器(内部RAM】)80C51中共有256个RAM单元,但其中能作为寄存器供用户使用的仅有前面128个,后128个被专用寄存器占用;【内部程序储存器(内部ROM)】80C51共有4KB的掩膜ROM,用于存放程序、原始数据;【定时器/计数器】80C51有2个16位的定时器/计数器;【并行I/O口】80C51共有4个8位I/O口(P0P1P2P3)可实现数据并行输入输出;【串行口】80C51有1个全双工的可编程的串行口,以实现单片机与其他设备之间的串行数据传送;【时钟电路】80C51单片机内部有时钟电路,但晶振和微调电容要外接,为其产生时钟脉冲序列;【中断系统】它共有5个中断源:2个是外部中断源/INTO和/INT1,3个内部中断源,即2个定时/计数中断,1个串行口中断;还有驱动器、锁存器、缓冲器、地址寄存器等。
图1-2 为80C51的引脚图功能说明:主电源引脚Vss(20脚)和Vcc(40脚);时钟电路引脚XTAL1(19脚)和XTAL2(18脚),用法见图1-2;控制信号引脚如下:RST复位(9脚)输入24个时钟脉冲周期宽度以上H电平复位,接法见图1-3;ALE或/PROG、(30脚)锁存扩展地址低位字节控自信号,或EPROM编程时输入编程脉冲;/PSEN、(29脚)访问片外程序存储器是输出负脉冲作片选控制信号,12个始终周期2次生效,但访问片外RAM时无效,见时序图图1-3;/EA或Vpp(31)程序储存地址的选择,H时先选片内超址时自动跳到片外ROM,或编程时施加编程电压。
第二章 80c51硬件结构

•
• • •
(2) 寄存器B (8位):
2.1.2
80C51内部逻辑结构组成
2.内部数据存储器(RAM)
低128字节区:用户RAM区为128x8Byte,地址为00H~
7FH。用于存放运算的中间结果、数据暂存以及数据缓 冲等。 高128字节区:特殊寄存器RAM区128x8Byte,地址为 80H~FFH。有21个特殊功能寄存器(SFR),存放功能 部件的控制命令、状态或数据等。 特点:掉电数据丢失。
失,使得复位后能继续正常运行。
三、控制信号引脚:RST、ALE、PSEN和EA
ALE/PROG(30脚):
ALE:地址锁存允许信号端。正常工作时,该引脚以 振荡频率的1/6固定输出正脉冲,可作为外部定时 脉冲使用。 CPU访问片外存储器时,该引脚输出信号作为锁存 低8位地址的控制信号。它的负载能力为8个LS型 TTL负载。
字 节 地 址
位地址
2.2.3
内部数据存储器高128单元
1 特殊寄存器概述
用于存放单片机各个功能部件的控制命令、状态或数据的寄存 器叫特殊寄存器,其功能已经由单片机规定。
1. 有21个特殊功能功能寄存器,地址不连续分布在80H~FFH的 RAM空间,剩余空闲单元用户并不能使用,读出不确定,写入 被舍弃。
片内数据存储器 MOV,
片外数据存储器 MOVX, RD WR作选通信号操作 逻辑上3个存储器地址空间(软件角度) : 64KB 程序存储器: 统一编地址,0000H-FFFFH 256B 片内数据存储器:独立编地址 0000H-00FFH 64KB 片外数据存储器:独立编地址 0000H-FFFFH
(1)运算电路 构成: 运算部件以算术逻辑运算单元ALU为核心,包 含累加器ACC、B寄存器、暂存器、标志寄存器PSW等, 功能: 它能实现算术运算、逻辑运算 。
单片机第2章80C51的结构与原理课件

通信。
并行通信接口的构成和使用
1
并行传输
2
接口标准
3
应用举例
同时发送和接收多个数据
定义了数据传输的电气和
并行通信接口常用于图形
位,适用于高速数据传输
逻辑特性,如PIO、DDR、
显示、高速数据采集、并
和快速响应的应用。
USB等。
行计算等。
3
寄存器
用于存储临时数据和控制单元的状态信息。
80C51的存储系统:ROM与RAM的区别
ROM
RA M
只读存储器,用于存储程序和常量数据。
随机存储器,用于存储变量和临时数据。
片内I/O口的构成和使用
引脚接口
输入模式
通过引脚连接外部设备和单片机。
接收外部信号并将其转换为数字信号。
输出模式
通信接口
将数字信号转换为外部的模拟或数字信号。
80C51芯片在各个行业中
的特点,提供了出色的性
RAM,使得80C51非常灵
得到广泛应用,包括消费
能表现,适用于各种领域
活,能够适应不同的应用
电子、通信、汽车电子、
的嵌入式应用。
需求。
医疗设备等领域。
单片机中的CPU结构和工作原理
1
控制单元
负责指令解码和控制单片机的操作。
2
运算单元
执行算术和逻辑运算,以及位操作等基本操作。
单片机第2章80C51的结
构与原理课件
本课件将详细介绍单片机80C51的结构和原理。包括单片机的基本结构与分
类、80C51芯片的特点与应用、CPU结构和工作原理、ROM与RAM的区别等内
容。
80C51芯片:特点与应用
1
存储器结构和地址空间

MOVC A,@A+PC;以PC为基址寄存器,A为偏址数据, 相加后的数作为地址,取出该地址单元的内容送累加器A。表 格只能放在0-255字节范围之内。称短查表指令。
1.3 数据存储器
片内外统一编址,最大寻址范围64KB。 (2)程序存储器特定的复位入口地址
MCS-51单片机复位/中断入口地址
入口地址
名称
0000H
程序计数器PC地址
0003H
外部中断INT0入口地址
000BH
定时、器T0溢出中断入口地址
0013H
外部中断INT1入口地址
001BH
定时/计数器T1溢出中断入口地址
0023H
片外用MOVX指令 片内128B/256B, 片外2KB-64KB
DRAM/SRAM/EEPROM(FLASH)
片外RAM并行总线/I2C总线
1.2 程序存储器(Program memory--Read only memory) 一.特点:
(1)ROM类型有:掩膜ROM、EPROM、E2 PROM、 FLASH ROM、OTPROM。分成片内和片外两部分,由EA 引脚接高(内)或接地(外)决定。
MOV SP, #60H;将栈底设在60H单元。 位地址:00H-7FH共128位 软件置位STEB bit,清零CLR bit 例:
SETB 08H;置位21H字节单元的D0位 CLR 22H ;将24H字节单元的D2位清0
随机
直接与A进行传送、运算、转移等操作
片内RAM中可位寻址区的字节地址与位地址对应关系
对于程序存储器查表,用MOVC指令寻址; 对片内RAM传送数据用MOV指令寻址; 对片外RAM读、写用MOVX指令寻址。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图3-3 内部数据存储器结构
7FH
用户区
30H 2FH
位寻址区
20H 1FH
工作寄存 器区
00H
(1)工作寄存器区(00H~1FH)
共32个单元,又分为4组,每组8个单元,都用 R0~R7表示,如图38H
R0
17H
R7
2组
10H
R0
0FH
R7
1组
08H
R0
07H
R7
06H
RAM)。
2. 逻辑空间有三个部分
(1)程序存储器ROM:包括内部和外部,共用 一个64K的寻址空间。
(2)内部数据存储器RAM(128B),独立的一 个128B的寻址空间。
(3)外部数据存储器RAM(64K),独立的一 个64K的寻址空间。
如图3-2所示。
FFFFH
FFFFH
FFH SFR
外部数据 储存器64K (SRAM)
R6
05H
R5
04H
0组
R4
03H
R3
02H
R2
01H
R1
00H
R0
个寄存器对应的地址见表3-1所示 在内部工作寄存器中的地址是唯一,但寄存器名重名,
一个寄存器名对应有4个单元,为了解决重名问题,单片机 用特殊功能寄存器PSW中的RS1、RS0来选择,也就是说, 单片机在工作时不会同时使用这4组寄存器,在某一时刻, 只能选择其中的一组。
在指令系统中对于这些空间的访问有以下方法: ●直接使用地址,在指令系统中用“direct”表示, 这种方式称之为直接寻址。
如:指令 MOV A , direct ;指令中的“direct” 就是指内部数据存储器中的地址(00H~7FH)
该指令就是把direct这个单元中的操作数传送到 A中。操作数是指指令中参与操作的数据。
指令系统中出现的“direct”,在实际编程的过 程中不能出现,必须写对应的实际地址 “00H~7FH”,这一点非常重要。
如:MOV A , 30H ;就是将30H中的数送给A。
●直接使用寄存器名R0~R7,指令系统中用“Rn” 表示这8个寄存器,这种方式的寻址称之为“寄存 器寻址”,就是操作数放在寄存器中。
如:MOV A, @Ri ; 指令中的“@Ri”就是指 工作寄存器R0和R1。该指令就是把Ri中的数取出作 为所取数据的单元地址。指令系统中出现“@Ri”, 在实际编程的过程中不能出现,必须写 “@R0或 @R1”。
如:MOV A , @R0 ;就是将R0中的数取出, 作为所取数据的地址,将该地址单元的数取出送到 A中。如图3-5所示, @R0所指的操作数就是 10101010B(AAH)。
由于上述特点,所以在单片机中一般做为程序 存储器。
2. 随机存取存储器RAM
在加电期间,可以随时向存储器里写入数据或 从中读出数据,但掉电后,数据丢失。
SRAM:静态存储器,加电期间数据可以长久保 存,掉电信息丢失。
DRAM:动态存储器,即使在加电期间数据也会 丢失(数据要刷新)。
由于上述特点,所以在单片机中一般作为数据 储存器。
精品jing
80C51单片机的存储器结构
3.1 存储器的分类
存储器的的作用是用来存放程序和数据,存储 器可分为磁存储和半导体存储器,半导体存储器按 功能又可分为只读存储器ROM和随机存储器RAM, 如图3-1所示。单片机存储器结构中都采用半导体存 储器。
1. 只读存储器ROM 只读存储器在正常工作状态下只能从中读出数
据,用户不能快速地随时修改或者重新写入数据, 数据可长时间的保存。
(1)可编程ROM,可通过专用设备(编程器)将 数据写入ROM。
PROM:用户可一次编程; EPROM:紫外线擦除,电改写(多次); EEPROM:电擦除,电改写(多次); FLASHROM:闪存(多次)。 (2)掩膜ROM 用户不能将数据写入,由厂家写入数据。
3.2 计算机中储存器的两种结构 在计算机中存储器的用途是存放程序和数据,
它有两种结构:冯•诺伊曼结构和哈佛结构。 冯•诺伊曼结构:程序和数据共用一个存储器逻
辑空间,统一编址。
哈佛结构:程序与数据分为两个独立存储器逻 辑空间,分开编址。
注: ★ 个人电脑(PC机)采用的是冯•诺伊曼结 构;
★ 单片机一般采用哈佛结构(8051); ★ 8051(80C51)单片机,数据存储器用的是
1000H 0FFFH
外部程序储 存器64K (ROM)
80H 7FH 内部数据
储存器
128B 00H (SRAM)
0000H
内部程序储 存器4K
(ROM)
0000H
★内部数据存储器和外部数据存储器相互之间独立编址,
★内部程序存储器和外部程序存储器统一编址,共用一个64K的寻址空
间。
3.3.2 数据储存器
如:指令 MOV A , Rn ;指令中的“Rn”就是 指工作寄存器R0~R7。该指令就是把Rn中的操作数 传送到A中。
指令系统中出现的“Rn”,在实际编程的过程中 不能出现,必须写对应的寄存器“R0~R7”。
如:MOV A , R3 ;就是将工作寄存器R3中的 数传送到A中。
●R0和R1这两个寄存器还有一种用法,称之为“ 寄存器间接寻址”,用“@Ri”表示,i=0、1。R0和 R1存放的是操作数所在单元的地址。
SRAM程序存储器用的是ROM。
3.3 80C51单片机的储存器 3.3.1 8051(80C51)系列存储器结构 1. 物理空间有四个部分
(1)内部数据存储器(128B SRAM)。 (2)外部扩展数据存储器(最大64K
RAM)。 (3)内部程序存储器(4K FlashROM
AT89S51)。 (4)外部扩展程序存储器(最大64K
数据存储器是采用了静态随机存储器(SRAM) 的结构,掉电信息丢失,故用于暂存数据及运算的 中间结果。
1. 内部数据存储器的结构
内部数据储存器它由工作寄存器区、位寻址区 、用户区三个部分组成,地址范围00H~7FH,共 128个单元。用户对这些单元的访问,可以用“直 接寻址”的方法,即在指令中用“direct”表示,指 的就是00H~7FH这128个地址单元,指令中直接给 出操作数所在单元地址的这种寻址方式称之为“直 接寻址”。 何为寻址方式,即寻找操作数的方法。
3-5所示, 指令MOV A , @R0 操作示意。 可以用((R0))=(40H)=AAH表示。