1、第三章第三章 MCS-51系列单片机存储器系列单片机存储器3.1 MCS-51系列单片机系统的存储器配置系列单片机系统的存储器配置 8051的存储器有4个不同的逻辑空间,即内部程序存储器、内部数据存储器、外部程序存储器、外部数据存储器。它们分别由不同的指令和寻址方式访问,对外部的两个逻辑空间还使用不同的读控制信号。MCS-51系列单片机8051的存储器配置 图见下页 0FFFH 0000H 外 部 程 序 存 EA=0 储 器 内部程序 存储器 EA=1 FFFFH 1000H 0FFFH 0000H 程序存储器的配置 8031 无片内存储器 FFH 外 部 数 据 存 储 器 特殊功能 寄存
2、器 内部数据 存储器 FFFFH 0000H 数据存储器的配置 80H 7FH 00H 007FH 0080H 00FFH 0100H 3.2 内部存储器和特殊功能寄存器内部存储器和特殊功能寄存器 3.2.1 内部程序存储器内部程序存储器 8051/8751内部有4KB ROM/EPROM程序存储器,地址为0000H0FFFH。当接高电平时,使程序从内部ROM/EPROM开始运行,当PC值超过OFFFH时,自动转到外部程序存储区1000HFFFFH去执行程序。3.2.2 内部数据存储器内部数据存储器 8031/8051/8751单片机内有128字节的数据存储区,字节地址为00H7FH,与外部数
3、据存储器低端128字节地址相同,但访问它们的指令不同,访问内部数据存储器用MOV指令,访问外部数据存储器用MOVX指令。内部这128个字节的SRAM又分为三个区域,即工作寄存器区、位寻址区和数据缓存区。内部数据存储器 见下页。数 据 缓 冲 区 位 寻 址 区 (位 地 址 为 00H 7FH)3 区 2 区 1 区 0 区 7FH 30H 2FH 20H 1FH 18H 17H 10H 0FH 08H 07H 00H 80 个 字 节 为 数 据 缓 冲 区(含 堆 栈)16 个 字 节 为 位 寻 址 区 32 个 字 节 为 四 个 工 作 寄 存 器 区 (1)工作寄存器区:)工作寄存
4、器区:00H1FH为4个工作寄存器区,每区8个单元,分别称为R0、R1、R2、R3、R4、R5、R6、R7,且4个区的工作寄存器同名。实际上,它们都是通用的数据寄存器,可用于寄存器地址和数据,其中R0、R1还可作为间接寻址寄存器使用。当程序中需使用工作寄存器时,必须先指出它们是哪一个区的,这是由特殊功能寄存器PSW中的RS1和RS0两位来选择的。(2)位寻址区:)位寻址区:20H2FH这16个字节的每一位都可以单独进行操作,每一位有一个地址,称为位地址,例如20H单元的位地址为00H07H。共有128个位地址。(3)数据缓冲区:)数据缓冲区:30H3FH这80个字节为一般的数据缓冲区,但通常将
5、堆栈区放在这个空间。由于复位后堆栈指针自动指向07H(即工作寄存器区),故在程序开始需要用指令将SP设置在30H以后。8051单片机内部地址80HFFH空间有21个专用寄存器,见表3-1所示(书上25页),也称为特殊功能寄存器SFR。其中有11个可以位寻址,如图3-3所示(书上26页)。图中有7个控制寄存器,各位功能见表3-2所示(书上27页)。表中PCON、TMOD不可位寻址。1程序计数器程序计数器PC程序计数器PC用于存放下一条要执行指令的地址(PC总是指向程序存储器地址),是一16位专用寄存器,寻址范围64K字节,PC在物理结构上是独立的,不属于特殊功能寄存器SFR块。3.2.3 特殊功
6、能寄存器特殊功能寄存器2累加器累加器A累加器A是一个最常用的专用寄存器,系统运转时工作最频繁,大部分单操作数指令的操作数取自累加器A,很多双操作数指令的一个操作数取自A;加、减、乘、除算术运算以及逻辑操作指令的结果都存放在累加器A或AB寄存器中;输入/输出大多数指令都以累加器A为核心操作。指令系统中采用A作累加器的助记符。3寄存器寄存器B它是一个8位寄存器。一般用于乘除法指令,与累加器A配合使用。寄存器B存放第二操作数、乘积的高位字节或除法的余数部分。在其他指令中,可作为中间结果的暂存器使用,相当于RAM中的一个特殊单元。程序状态字是一个8位寄存器,用来存放程序的状态信息,表征指令的执行状态,
7、供程序查询和辨别之用。其PSW格式如下:CYACF0RS1RS0OVP(1)CY:(PSW.7)进/借位标志 在执行加/减法指令时,如果操作结果D7位有进/借位,CY置“1”,否则清“0”。在布尔处理机中被定义为布尔(位)累加器(或称位累加器)。(2)AC:(PSW.6)辅助进位标志或称为半进位标志 当进行加法操作而产生由低4位数(十进数的1位数)向高4位数进位时,AC将被硬件置“1”,否则被清“0”。AC被用于BCD码加法调整,详见DA指令。4程序状态字程序状态字PSW(3)F0:(PSW.5)用户标志0 由用户定义的一个状态标志。可以用软件来使它置“1”或清“0”,也可以由软件测试F0来控
8、制程序流向。(4)RS1、RS0:(PSW.4、PSW.3)工作寄存器区选择控制位 可由软件来改变RS1和RS0的组合以确定当前工作寄存器区,详见表3-3所示。(5)P:(PSW.0)奇偶标志 每个指令周期都由硬件来置位或清零,以表示累加器A中值为“1”的位数的奇偶性。若P=1,则A中“1”的位数为奇数,否则P=0。(6)OV:(PSW.2)溢出标志用于补码运算,以指示溢出状态。当执行加法指令时,若以Ci表示i位向位i+1有进位,则OV=C6 C7即当位6向位7有进位,而位7不向CY进位时;或位6不向位7进位,而位7向CY进位时,溢出标志OV被置“1”,否则被清“0”。同样,若以Ci表示减法运
9、算时,位i向位i+1有借位,则执行减法指令SUBB时,OV=C6 C7 无符号数乘法指令MUL的执行结果也会影响溢出标志;除法指令DIV也会影响溢出标志,当除数为0时,OV=1,否则OV=0。5堆栈指针堆栈指针SP 它是一个8位寄存器,用来存放栈顶地址。MCS-51堆栈设在内部RAM中,是一个按“先进后出”顺序,受SP管理的存储区域。在程序中断,子程序调用等情况下,用于存放一些特殊信息(亦可作数据传送的中转站)。当数据压入堆栈时,SP就自动加“1”;当数据从堆栈中弹出时,SP就自动减“1”。因而SP指针始终指向栈顶。MCS-51堆栈最大深度为128个字节,系统复位时硬件使SP=07H。6数据指
10、针数据指针DPTR 是一16位专用寄存器,其高字节寄存器用DPH表示,低字节寄存器用DPL表示。既可作为16位寄存器(DPTR)使用,又可作为两个独立的8位寄存器(DPH、DPL)来使用。DPTR主要用来保持16位地址,当对64KB外部数据存储器RAM(或I/O口)空间寻址时,作间址寄存器用,指向外部数据存储器地址。7I/O端口端口P0P3 专用寄存器P0、P1、P2和P3分别是I/O端口P0P3的锁存器。8串行数据缓冲器串行数据缓冲器SBUF 串行数据缓冲器SBUF用于存放欲发送或已接受的数据。它由两个独立的寄存器组成,一个是发送缓冲器,一个是接受缓冲器(两个缓冲器共用一个地址)。9定时器定
11、时器/计数器计数器 MCS-51子系列中有两个16位定时器/计数器T0和T1,MCS-52子系列增加了一个16位定时器/计数器T2。它们各由两个独立的8位寄存器组成,共分为6个独立的寄存器;TH0、TL0,TH1、TL1,TH2和TL2。可以对这6个寄存器寻址,但不可把T0、T1和T2当作一个16位寄存器来对待。10其他控制寄存器其他控制寄存器 IP、IE、TMOD、TCON、T2CON、SCON和PCON寄存器分别包括有中断系统、定时器/计数器、串行口和供电方式的控制和状态位,这些寄存器将在有关章节中一一介绍。3.3 MCS-51系列单片机外部存储器及其扩展系列单片机外部存储器及其扩展 1半
12、导体存储器的分类半导体存储器的分类 半导体存储器可分为只读存储器和读写存储器两大类3.3.1 常用半导体存储器芯片常用半导体存储器芯片 半 导 体 存 储 器 读 写 存 储 器RAM 只 读 存 储 器ROM 新 型 存 储 器 静 态RAM:SRAM,不 需 刷 新 动 态RAM:DRAM,需 要 刷 新 掉 电 后 信 息 丢 失 掩 膜ROM:M ROM,厂 家 写 入,不 可 更 改 可 编 程ROM:PROM,用 户 可 一 次 写 入,不 可 更 改 紫 外 线 可 擦 除 可 编 程ROM:EPROM,用 户 可 擦 除 后 重 写 电 可 擦 除 可 编 程ROM:EEPRO
13、M,用 户 可 擦 除 后 重 写 掉 电 后 不 会 丢 失 信 息 快 速 电 可 擦 除 可 编 程ROM:FLASH-ROM 非 易 失 性RAM:NVRAM,SRAM与EEPROM的 共 同 体 比ROM的 读 写 速 度 快,且 掉 电 后 信 息 不 丢 失 2单片机系统中常用的典型半导体存储器芯片介绍单片机系统中常用的典型半导体存储器芯片介绍 (1)EPROM芯片:EPROM芯片有许多系列,这里介绍一种常用的系列27。这个系列的EPROM存储器芯片有2716、2732、2764、27128、27256、27512、27010、27020、27040,它们的存储器容量分别是2K8
14、、4K8、8K8、32K8、64K8、128K8、256K8、512K8。它们的引脚功能列于表3-4。图3-5给出了2764的引脚图 123456ABCD654321DCBATitleNum berR evisionSizeBDate:21-Jul-2004Sheet of File:C:Docum ents and Settingsyyc桌 面 protel图 片 7.21yao524.ddbDrawn B y:2764D3D4D5D6D7CEA10OEA11A9A8NCPGMVppA12A5A2VccA6A0A1A3A7A4123456789101112131415161718192021
15、222324252627282764的引脚图D1D2GNDD0(2)SRAM芯片:HM6116是存储容量为2K8的高速静态CMOS可读写半导体存储器集成电路。其引脚图如图所示:1 24 2 23 3 22 4 21 5 20 6 19 7 18 8 17 9 16 10 15 11 14 12 13 A7 A6 A5 A4 A3 A2 A1 A0 D0 D1 D2 地 VCC A8 A9 WE OE A10 CE D7 D6 D5 D4 D3 6116 (3)E2PROM芯片:电可擦除可编程只读存储器芯片:电可擦除可编程只读存储器E2PROM E2PROM是电可擦除可编程的半导体存储器,比EP
16、ROM在使用上要方便得多,它具有RAM的在线随机读写性能,掉电后信息不丢失。+5V供电下即可进行编程,而且对编程脉冲宽度一般没有特殊要求,不需专门的编程器和擦除器,是一种特殊的可读写存储器。E2PROM 2864的引脚图如图 1 28 2 27 3 26 4 25 5 24 6 23 7 22 8 21 9 20 10 19 11 18 12 17 13 16 14 15 2864 E2P R O M R D Y/B U S Y A12 A7 A6 A5 A4 A3 A2 A1 A0 I/O0 I/O1 I/O2 G N D VC C W E N C A8 A9 A11 O E A10 C E
17、 I/O7 I/O6 I/O5 I/O4 I/O3 3.3.2 MCS-51系列单片机外部存储器扩展设计系列单片机外部存储器扩展设计 1 1程序存储器扩展设计程序存储器扩展设计(1 1)单片程序存储器扩展)单片程序存储器扩展 数据线的连接:2764的数据线直接与单片机的数据线对应相接。控制线的连接:由于是单片存储器扩展,所以其CE可直接接地。特别要注意的是,MCS-51系列单片机读外部程序存储器的控制信号为专用信号PSEN,所以一定要将程序存储器的读信号OE接PSEN引脚,而不能接RD。电源线等的连接:在读方式下,编程电压VPP和编程脉冲PGM以及空脚都与工作电源引脚VCC一起接至“+5V”。
18、地址线的连接:由于MCS-51系列单片机的数据线与低8位地址线分时复用,所以P0口输出的信息经74LS373锁存后才是低8位地址线,与2764的低8位地址线对应相接,高5位地址与单片机P2口输出的地址线A8A12(P2.0P2.4)对应相接。1 16 2 15 3 14 4 13 5 12 6 11 7 10 8 9 A B C E1 E 2 E3 Y7 GND VCC Y0 Y1 Y2 Y3 Y4 Y5 Y6 74LS138 输 入 输 出 使 能 选 择 E3 E2 E1 C B A Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 1 0 0 1 0 0 1 0 0 1 0 0 0 0 0
19、 0 0 1 0 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 74LS138 引脚图及功能表 3 0 2 9 1 8 1 7 1 4 1 1 8 7 4 3 3 2
20、 3 3 3 4 3 5 3 6 3 7 3 8 3 9 2 2 3 2 1 2 4 2 5 1 2 7 2 5 2 4 2 3 2 2 2 1 3 4 5 6 7 8 9 1 0 8 D 8 Q 7 D 7 Q 6 D 6 Q 5 D 5 Q 4 D 4 Q 3 D 3 Q 2 D 2 Q 1 D 1 Q G O E G N D VC C 7 4 L S 3 7 3 P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 8 0 3 1 E A 3 1 A L E P S E N P2.3 P2.2 P2.1 P2.0 P2.4 1 9 1 6 1 5 1 2 9 6
21、 5 2 A1 1 A1 0 A9 A8 A1 2 VC C P G M VP P N C 2 8+5 V 2 7 6 4 E P R O M (8 K 8)+5 V 2 0 1 0 1 1 1 A7 A 6 A 5 A 4 A 3 A 2 A 1 A 0 D7 D 6 D 5 D 4 D 3 D 2 D 1 D 0 2 2 1 9 1 8 1 7 1 6 1 5 1 3 1 2 1 1 O E C E G N D 2 0 1 4 图3-9 2764与8031的连接图(2)多片程序存储器扩展设计)多片程序存储器扩展设计 书上39页图3-10是8031系统中扩展3片2764的连接图,图中对3片2
22、764的选址采用完全译码法。除片选信号CE外,其他引脚的连接与单片存储器扩展时相同。3片2764的片选信号CE分别连接译码器74LS138的Y0、Y1和Y2,图3-10中同时给出了74LS138的引脚图及功能表。由连接方式计算出它们的寻址空间分别为:0000H1FFFH、2000H3FFFH和4000H5FFFH,并且寻址空间唯一确定。2数据存储器扩展设计(单片数据存储器扩展设计)数据存储器扩展设计(单片数据存储器扩展设计)书上40页图3-11所示为8051系统中使用1片HM6116的硬件连接。1234ABCD4321DCBA74LS55结构图1234567891011121314AGNDNC
23、NCDCBYNCEFGHVcc74LS393结构图1234567891011121314AGNDNCNCDCBYNCEFGHVccACLRQDQCQBQAACLRQDQCQBQAA8A9A10A0A1A2A3A4A5A6A7A8A9A10A0A1A2A3A4A5A6A7A0A1A2A3A4A5A6A7+5V8031扩展2K ROM连接图D03Q02D14Q15D27Q26D38Q39D413Q412D514Q515D617Q616D718Q719E1G11GND10Vcc20U274LS373A08A17A26A35A44A53A62A71A823A922A1019CE18OE20WE21D0
24、9D110D211D313D414D515D616D717Vss12Vcc24U36116EA/VP31XTAL119XTAL218RESET9RD17WR16INT012INT113T014T115P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P0.039P0.138P0.237P0.336P0.435P0.534P0.633P0.732P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728PSEN29ALE/P30TXD11RXD10Vss20Vcc40U18031+5V+5V+5V+5V2 2数据存储器扩展设计数
25、据存储器扩展设计(单片数据存储器扩展设计)(单片数据存储器扩展设计)片选信号CE接单片机P2.7,即最高位地址A15,这在存储器选址方式中属于线选法。而地址线A14、A13、A12、A11未使用,因此HM6116的寻址空间不能唯一确定,而是占用64K数据存储空间的前32K。也就是说将前32K空间分成了16个2K的空间,这32K中的任意一个地址都对应HM6116的某一个单元。计算出16个2K的空间分别为:0000H07FFH、0800H0FFFH、1000H17FFH、1800H1FFFH2000H27FFH、2800H2FFFH、3000H37FFH、3800H3FFFH4000H47FFH、
26、4800H4FFFH、5000H57FFH、5800H5FFFH6000H67FFH、6800H6FFFH、7000H77FFH、7800H7FFFH 读信号OE接RD单片机。在MCS-51系列单片机中外部程序存储器的读信号用PSEN,外部数据存储器和扩展的I/O接口的读信号用RD。写信号WE接WR单片机。多片数据存储器扩展设计多片数据存储器扩展设计 EA/VP31XTAL119XTAL218RESET9RD17WR16INT012INT113T014T115P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P0.039P0.138P0.237P0.336P0.4
27、35P0.534P0.633P0.732P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728PSEN29ALE/P30TXD11RXD10Vss20Vcc40U18031DI01DO019DI12DO118DI23DO217DI34DO316DI45DO415DI56DO514DI67DO613DI78DO712OE9STB11Vcc20GND108282A010A19A28A37A46A55A64A73A825A924A1021A1123A122WE27OE22D011D112D213D315D416D517D618D719CE18Vss12Vcc
28、6264A8A9A10A11A12A0A1A2A3A4A5A6A7A8A9A10A11A12A0A1A2A3A4A5A6A7A0A1A2A3A4A5A6A7+58031外部8K ROM连接图EA/VP31XTAL119XTAL218RESET9RD17WR16INT012INT113T014T115P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P0.039P0.138P0.237P0.336P0.435P0.534P0.633P0.732P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728PSEN29ALE/P30T
29、XD11RXD10Vss20Vcc40U10831A8A9A10A0A1A2A3A4A5A6A7A0A1A2A3A4A5A6A7A0A1A2A3A4A5A6A7+58031外扩2864系统D03Q02D14Q15D27Q26D38Q39D413Q412D514Q515D617Q616D718Q719E1G11GND10Vcc20U274LS373A010A19A28A37A46A55A64A73A825A924A1021A1123A122WE27OE22D011D112D213D315D416D517D618D719CE18Vss12Vccu32864A8A9A10A11A12+5V+5V+5
30、V+5V+5V+5V3 3程序程序/数据存储器扩展设计数据存储器扩展设计 有时我们希望系统中只扩展1片存储器,但它既能用作程序存储器,又能用作数据存储器。这时,使用E2PROM存储器可很方便地达到目的。书上42页图3-13是8031系统中扩展1片E2PROM2864A的连接图。4 4程序存储器和数据存储器同时扩展程序存储器和数据存储器同时扩展 书上图3-14是8031系统中同时扩展1片程序存储器和1片数据存储器的连接图。图中EPROM 27256占用程序存储空间的前32K,SRAM 62256占用数据存储空间的前32K,因此,它们的寻址空间均为0000H7FFFH,而27256使用PSEN信号读程序代码,62256用RD读数据,用WR写数据。
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。