AT89S51单片机最小系统组成及存储器的扩展
- 格式:doc
- 大小:785.01 KB
- 文档页数:15
详细解读AT89S51存储器的结构AT89S51单片机存储器结构的特点之一是将程序存储器和数据存储器分开(称为哈佛结构),并有各自的对这两个不同的存储器空间的访问指令。
AT89S51的存储器空间可划分为如下4类。
1.程序存储器空间单片机能够按照一定的次序工作是由于程序存储器中存放了经调试正确的程序。
程序存储器可以分为片内和片外两部分。
AT89Ssl单片机的片内程序存储器为4 KB的Flash存储器,编程和擦除完全是电气实现,且速度快。
可使用通用的编程器对其编程,也可在线编程。
当AT89S51片内的4 KB的Flash存储器不够用时,用户可在片外扩展程序存储器,最多可扩展至64 KB。
2.数据存储器空间数据存储器空间分为片内与片外两部分。
AT89S51单片机内部有128 B的RAM(增强型的52子系列为256 B),用来存放可读/写的数据。
当AT89S51的片内RAM不够用时,又给用户提供了在片外可扩展至64 KB RAM的功能。
至于究竟扩展多少RAM,则根据用户实际需要来定。
3.特殊功能寄存器(SFR,Special Function Register)特殊功能寄存器实际上是AT89S51片内各功能部件的控制寄存器及状态寄存器。
SFR综合反映了整个单片机基本系统内部实际的工作状态及工作方式。
4.位地址空间AT89S51单片机内共有211个可寻址位,构成了位地址空间。
它们位于内部RAM(共128位)和特殊功能寄存器区(共83位)中。
程序存储器空间程序存储器是只读存储器(ROM),用于存放程序和表格之类的固定常数。
AT89S51单片机的片内程序存储器为4 KB的Flash存储器,地址范围为0000H~0FFFH。
AT89S51有16位地址线,可外扩的程序存储器空间最大为64KB,地址范围为0000H~FFFFH。
片内与片外扩展的程序存储器在使用时应注意以下问题:(1)整个程序存储器空间可以分为片内和片外两部分,CPU究竟是访问片内的还是片外的程序存储器,可由EA(的反)引脚上所接的电平来确定。
AT89S51单⽚机简介⼀、AT89S51单⽚机简介AT89S51 为ATMEL 所⽣产的可电⽓烧录清洗的8051 相容单芯⽚,其内部程序代码容量为4KB (⼀)、AT89S51主要功能列举如下:1、为⼀般控制应⽤的8 位单芯⽚2、晶⽚内部具时钟振荡器(传统最⾼⼯作频率可⾄12MHz)3、内部程式存储器(ROM)为4KB4、内部数据存储器(RAM)为128B5、外部程序存储器可扩充⾄64KB6、外部数据存储器可扩充⾄64KB7、32 条双向输⼊输出线,且每条均可以单独做I/O 的控制8、5 个中断向量源9、2 组独⽴的16 位定时器10、1 个全多⼯串⾏通信端⼝11、8751 及8752 单芯⽚具有数据保密的功能12、单芯⽚提供位逻辑运算指令(⼆)、AT89S51各引脚功能介绍:VCC:Array AT89S51 电源正端输⼊,接+5V。
VSS:电源地端。
XTAL1:单芯⽚系统时钟的反相放⼤器输⼊端。
XTAL2:系统时钟的反相放⼤器输出端,⼀般在设计上只要在XTAL1 和XTAL2上接上⼀只⽯英振荡晶体系统就可以动作了,此外可以在两引脚与地之间加⼊⼀20PF 的⼩电容,可以使系统更稳定,避免噪声⼲扰⽽死机。
RESET:AT89S51的重置引脚,⾼电平动作,当要对晶⽚重置时,只要对此引脚电平提升⾄⾼电平并保持两个机器周期以上的时间,AT89S51便能完成系统重置的各项动作,使得内部特殊功能寄存器之内容均被设成已知状态,并且⾄地址0000H处开始读⼊程序代码⽽执⾏程序。
EA/Vpp:"EA"为英⽂"External Access"的缩写,表⽰存取外部程序代码之意,低电平动作,也就是说当此引脚接低电平后,系统会取⽤外部的程序代码(存于外部EPROM中)来执⾏程序。
因此在8031及8032中,EA引脚必须接低电平,因为其内部⽆程序存储器空间。
如果是使⽤8751 内部程序空间时,此引脚要接成⾼电平。
14 第2
章
AT89S51单片机的片内硬件结构 【内容概要】本章介绍AT89S51单片机的片内硬件结构。
读者应牢记AT89S51单片机的片内硬件结构,以及片内外设资源的基本功能及工作原理,重点掌握AT89S51单片机的存储器结构、常见的特殊功能寄存器的基本功能以及复位电路与时钟电路的设计,掌握单片机最小系统的概念。
最后介绍低功耗节电模式。
本章的学习目的是为单片机应用系统的硬件设计打下基础。
单片机应用的特点是编写程序来控制硬件电路,所以,读者应首先熟知并掌握AT89S51单片机片内硬件的基本结构和特点。
2.1 AT89S51单片机的硬件组成
AT89S51单片机片内硬件结构如图2-1所示,它把那些作为控制应用所必需的基本外围部件都集成在一个集成电路芯片上。
AT89S51单片机具有如下部件及特性。
图2-1 AT89S51单片机片内结构
(1)8位CPU。
(2)数据存储器(128B RAM)。
(3)程序存储器(4KB Flash ROM)。
浅析AT89S51单片机最小系统的设计与制作作者:杨美荣来源:《职业·中旬》2011年第04期单片机最小系统,是指用最少的元件组成以单片机为核心元件的可以正常工作具有特定功能的单片机系统,是单片机产品开发的核心电路。
下面我们设计单片机最小系统,实现的功能为八路流水灯,同时应具有上电复位和手动复位功能,并且使用单片机片内程序存储器存放用户程序。
一、原理图的设计对51系列单片机来说,单片机要正常工作,必须具有五个基本电路:电源电路、时钟电路、复位电路、程序存储器选择电路、外围电路。
因此,单片机最小系统一般应该包括单片机、晶振电路、复位电路、外围电路等。
1.电源电路单片机芯片的第40脚为正电源引脚VCC,一般外接+5V电压。
第20脚为接地引脚GND。
2.时钟电路设计单片机是一种时序电路,必须要有时钟信号才能正常工作。
芯片的18脚(XTAL2)、19脚(XTAL1)分别为片内反向放大器的输出端和输入端,只要在18脚(XTAL2)和19脚(XTAL1)之间接上一个晶振,再加上2个30PF的瓷片电容即可构成单片机所需的时钟电路。
注意,当采用外部时钟时,19脚(XTAL1)接地,18脚(XTAL2)接外部时钟信号。
3.复位电路的设计单片机芯片的第9脚RST(Reset)是复位信号输入端。
在开机或工作中因干扰而使程序失控,或工作中程序处于某种死循环状态等情况下都需要复位。
MCS-51系列单片机的复位靠外部电路实现,信号从RST引脚输入,高电平有效,只要保持RST引脚高电平2个机器周期,单片机就能正常复位。
常见的复位电路有上电复位电路和按键复位电路二种。
4.程序存储器选择电路单片机芯片的第31脚(EA)为内部与外部程序存储器选择输入端。
当EA引脚接高电平时,CPU先访问片内4KB的程序存储器,执行内部程序存储器中的指令,当程序计数器超过0FFFH时,将自动转向片外程序存储器,既是从1000H地址单元开始执行指令;当EA引脚接低电平时,不管片内是否有程序存储器,CPU只访问片外程序存储器。
第二章 AT89S51 单片机的硬件结构第二章 AT89S51 单片机的硬件结构本章“从内到外”主要讲述关于AT89S51单片机的一些基础知识。
首先介绍AT89S51单片机的组成、CPU 、存储器组织以及特殊功能寄存器(SFR),然后,详细讲解了AT89S51的引脚分布及其功能;最后,讨论了使用AT89S51单片机时的时钟和复位电路。
2.1 AT89S51 单片机的组成如前所述,AT89S51单片机与MCS-51完全兼容,内部的结构如图2.1所示:从功能上分,它包括如下部件:一个8位中央处理器(CPU);4K可在线编程Flash ;128字节RAM与特殊功能寄存器;2个16位定时/计数器;中断逻辑控制电路;一个全双工串行接口(UART);32条可编程的I/O口线;另外,还包括一些寄存器如程序计数器PC 、程序状态寄存器PSW 、堆栈指针寄存器SP 、数据指针寄存器DPTR等部件。
2.2 AT89S51 单片机 CPU 的结构CPU是单片机的核心,它主要由运算器(ALU)、时序控制逻辑电路(控制器)以及各种寄存器等部件组成。
( 1 )运算器的功能是进行算术和逻辑运算。
它主要由算术逻辑单元ALU(Arithmetic Logic Unit)和寄存器组成,实现“加、减、乘、除、比较”等算术运算和“与、或、异或、求补、循环”等逻辑操作。
运算器中还包含一个布尔处理器,可以执行置位、清零、求补、取反、测试、逻辑与、逻辑或等操作,为单片机的应用提供了极大的便利。
( 2 )控制器的主要功能是产生各种控制信号和时序。
在CPU内部协调各寄存器之间的数据传送,完成ALU的各种算术或逻辑运算操作;在CPU访问外部存储器或端口时,提供地址锁存信号ALE、外部程序存贮器选通信号PSEN以及读(/RD)、写(/WR)等控制信号。
( 3 )寄存器。
CPU中还有一些寄存器,如累加器(ACC)、程序状态字(PSW)、B寄存器、程序计数器PC 、堆栈指针(SP)、指令寄存器(IR)等,这些寄存器有的在片内特殊功能寄存器空间有地址映像,它们既可看作CPU的寄存器,也可看作具有确定单元的存储单元。
单片机实用教程第6章AT89S51单片机并行扩展技术本章主要内容1、AT89S51系统扩展概述2、扩展外部ROM3、扩展外部RAM4、扩展并行I/O口一、并行扩展的内容1、外部的程序存储器2、外部的数据存储器3、I/O口扩展二、并行扩展的三总线1、地址总线(AB)P0(低8位):A0-A7P2(高8位):A8-A152、数据总线(DB)P0口8位的数据线(分时复用)3、控制总线(CB)(1)ALE:地址所存允许。
控制P0口分时复用。
地址数据ALE(2)PSEN:外ROM读选通信号。
用于片外程序存储器的读选通控制,一般与外部程序存储器的输出允许端OE相连。
(3)WR(P3.6口的第二功能):用于外部数据存储器或I/O口的写选通控制,一般与所扩展芯片的写允许WE端相连。
(4)RD(P3.7口的第二功能):用于外部数据存储器或I/O口的读选通控制,一般与所扩展芯片的输出允许OE端相连。
三、AT89S51并行扩展三总线电路的实现一、ROM分类1、Mask ROM(掩膜)2、OTPROM(Only Time Programmable一次性编程)3、EPROM(Erasable PROM)4、EEPROM(Electrically EPROM)5、Flash ROM二、EPROM芯片三、EPROM与AT89S51单片机典型连接电路表6-1 2764工作方式1、芯片的高位地址线(A8~A15)直接与单片机的P2口相连,低位地址(A0~A7)通过地址锁存器接到P0口。
2、芯片的数据线直接接到P0口。
3、芯片的片选接地,输出允许控制OE用单片机PSEN控制。
单片机的ALE接锁存器的控制端。
4、芯片、锁存器、单片机的其它控制线接有效信号。
一、RAM分类1、静态RAM2、动态RAM二、常用RAM芯片三、外RAM操作指令(1)MOVX A,@Ri ;(Ri)→A (2)MOVX A,@DPTR ;(DPTR)→A (3)MOVX @Ri,A ;A→(Ri)(4)MOVX @DPTR,A ;A→(DPTR)四、SRAM与AT89S51的典型连接电路表6-36264工作方式地址空间范围:6264的地址线只有13根,高3位地址线对其不影响,0000H和8000H都可以访问到6264的第一个单元,这种现象称为地址重叠。
第五章A T89S51单片机最小系统组成及存储器的扩展本章主要讲述了单片机系统的最小组成以及各种存储器电路的扩展方法,特别对GAL译码方法进行了讨论。
5.1 单片机最小系统组成能使单片机工作的最少器件构成的系统称为单片机的最小系统。
对于AT89S51单片机,由于其内部有4K可在线编程的Flash存储器,用它组成最小系统时,不需机外扩程序存储器,只要有复位电路和时钟电路即可,因此,由A T89S51单片机组成的最小系统如图5.1所示:图5.1是一个实际应用的最小系统,74HC14可以提高复位的可靠性;另外,当P0用作I/O口时,需要接10k~20k 的上拉电阻。
5.2 单片机的时序时序就是进行某种操作时,各种数据、控制信号先后出现的顺序。
单片机的工作时序是个很重要的概念,了解时序是进行硬件电路设计的第一步5.2.1 单片机取指和执行时序运行单片机程序时,总是按照取指、译码、执行,再取指、再译码、再执行的顺序进行。
为了说明CPU的时序,把12个振荡周期称为一个机器周期,2个振荡周期被称为一个状态(state),每个状态中,前一个振荡周期被称为相(Phase)1,第二个振荡周期被称为相(Phase)2,这样任何一个振荡周期都可以用SiPj(i=1~6;j=1~2)来表示。
ALE信号总是在一个机器周期的S1P2、S2P1和S4P2、S5P1被激活。
单周期指令总是从S1P2开始取指,当操作码被锁存到指令寄存器时,如果是双字节指令,在同一机器周期的S4读第二个字节代码;如果是个单字节指令,在S4仍会读一次,但这次读到的内容将被忽略或丢弃。
在任何情况下,指令都是在S6P2执行完毕。
单周期、单字节指令和单周期、双字节指令的取指、执行过程如图5.2的(A)、(B)所示。
A T89S51单片机的指令中,大多数指令都是单周期或双机器周期指令,只有乘法指令(MUL,multiply)和除法指令(DIV,divide)需要四个机器周期才能完成。
单字节双周期指令的取指、执行时序如图5.2(C)所示。
共有四次取指,但只有第一次是有效的,后三次都被丢弃。
在这类指令中,有一个例外,即MOVX 指令,它的取指和执行时序如图5.2 (D)所示,当读取和执行MOVX指令时,在第二个机器周期的没有了两次取指操作,并且,在第二个机器周期的S1P2、S2P1期间,ALE信号也不会出现。
5.2.2 单片机访问外部存储器的时序单片机外部的存储器可分成两种,即程序存储器和数据存储器,程序存储器一般都是只读,而数据存储器则可读、写。
由于单片机系统中外部数据存储器和I/O端口是统一编址的,读、写外部数据存储器的时序和读写I/O 端口的时序完全一样。
A T89S51单片机片内有4k可在线编程的程序存储器,当程序超过4K时,就必须扩展外部程序存储器,AT89S51单片机最大可扩展64K的外部程序存储器。
当单片机CPU从外部程序存储器取指令时,PCH(A15~A8)由P2口输出;PCL(A7~A0)由P0口输出,读取的指令代码也由P0口输入,此时,P0分时复用作地址/数据总线,为了将P0口的地址/数据信息分开,单片机同时输出一个地址锁存允许信号ALE(Address Latch Enable),用于锁存P0口的地址信息。
AT89S51单片机外部程序存储器的读时序可分成两种情况,即读MOVX类指令时的情况和读其它类指令的情况,具体的时序如图 5.3(a)、(b)所示。
当读取的不是MOVX类指令时,读外部程序存储器时序如图5.3(a)所示。
每一个机器周期中,地址锁存允许信号ALE两次有效,在ALE由高变低时,出现在P0口的信息总是有效地址PCL,可用外部地址锁存器将PCL 锁存起来,形成地址总线的A7~A0;/PSEN(program store enable)也是每个机器周期两次有效,用于选通外部程序存储器,使指令送到P0总线上,由CPU取入;P2口输出PCH,形成地址总线的高8位,即A15~A7;P0口交替出现地址信息PCL和指令代码,即在ALE的下降沿出现地址信息,在/PSEN有效时出现的是指令代码。
这种情况下,若专用功能寄存器AUXR中的DISALE位为0,ALE有效信号会以振荡器频率(的1/6)的恒定速率出现在引脚上。
ALE信号,主要有两个功能,一个是用于锁存出现在P0口的PCL,另一个是用来作为外部时钟或定时脉冲。
当读取的指令是MOVX类指令时,读外部程序存储器时序如图5.3(b)所示。
MOVX类指令是单字节双周期指令,即需要两个机器周期才能完成。
在第一个周期的S5状态,ALE由高变低,P0总线上出现的将不再是有效的PCL值,而是一个有效的地址信息,若执行的是MOVX @DPTR类指令,则此有效的地址信息为地址DPL 的值,同时,在P2口出现的信息是有效的DPH值;若执行的是MOVX @Ri类指令,此有效的地址信息为Ri 的内容,同时在P2口线上出现的将是特殊功能寄存器P2口内锁存器的内容。
在第一个机器周期的S6状态,/PSEN 信号将不再出现,且下一个机器周期的第一个ALE有效信号也不再出现。
从图5.3可以看出,执行MOVX类指令需要两个机器周期,ALE信号出现三次,比读非MOVX类指令时少了一次;/PSEN信号出现了两次,比非MOVX类指令少了两次。
读到MOVX指令操作码后,在执行阶段,/RD、/WR)会有效,这时,在P0总线上将出现有效的输入(或输出)数据。
5.3单片机系统中的半导体存储器存储器是单片机系统的一个重要组成部分,其功能主要是存放程序或数据。
存储器有很多种分类方法,如按照制造工艺不同可分为双极型晶体管电路和MOS电路两种,双极型存储器的存取速度快,但集成度低、功耗大;MOS型存储器正好相反,集成度高,功耗低,但速度较慢。
按功能不同,存储器又可分为随机存取存储器(简称RAM,Random Access Memory)、只读存储器(ROM,Read Only Memory)以及可读写ROM三大类,如图5.4所示。
5.3.1随机存取存储器(RAM)随机存取存储器(RAM)在单片机系统中主要用于存放数据,用户程序可随时对RAM进行读或写操作,断电后,RAM中的信息将丢失。
RAM可分为静态RAM(Static RAM,SRAM)和动态RAM(Dynamic RAM,DRAM)两种。
SRAM中的内容在加电期间存储的信息不会丢失;而DRAM在加电使用期间,当超过一定时间时(大约2ms),其存储的信息会自动丢失。
因此,为了保持存储信息不会丢失,必须设置刷新电路,每隔一定时间对DRAM进行一次刷新。
与SRAM相比,DRAM具有集成度高、功耗低、价格低等优点,但因为其需要刷新电路,与CPU进行联接时比SRAM复杂。
静态RAM虽然集成度低、功耗高、但由于和CPU的接口电路简单,在单片机系统中被广泛采用。
SRAM在单片机系统中主要用作数据存储器,常见的芯片有6116、6264、628128 等。
5.3.2只读存储器(ROM)只读存储器(ROM)在单片机系统中主要用作外部程序存储器,其中的内容只能读出,不能被修改,断电情况下,ROM中的信息不会丢失。
按照制造工艺的不同,ROM可分为如下几种:(1)掩膜ROM。
掩膜ROM是在工厂生产的时候,通过“掩膜”技术将需存储的程序等信息由厂家固化在芯片内,这种ROM制成后便无法改变其中内容,掩膜ROM的成本低,适用于做成固定的、成批生产的程序存储芯片。
(2)紫外线擦除的可编程ROM又称EPROM(Erasable PROM)。
这种芯片上开有一个小窗口,紫外线通过小窗口照射内部电路可以擦除内部的信息,芯片内的信息被擦除后可重新进行编程,常见的芯片有27C32、27C64、27C128、27C512等,EPROM在单片机系统中常用作外部扩展的程序存储器。
(3)OTP型PROM。
OTP(One Time Programmable)型PROM(Programmable ROM)在出厂时不写入信息,用户可根据自己的需要将信息写入其中,但只能写入一次,即一次写入后不能再写入,这种存储器常被集成到单片机内部,目前有许多OTP型的单片机,OTP型的存储器很少见。
5.3.3非易失性随机存储器(NVRAM)非易失性(Nonvolatile)随机存储器(NVRAM)是指可电擦除的存储器,它们具有RAM的可读、写特性,又具有ROM停电后信息不丢失的优点,在单片机系统中既可作程序存储器,也可作数据存储器用。
这类芯片主要有EEPROM或EEPROM(Electrically Erasable PROM)和Flash。
按接口方式不同,NVRAM 又可分成两种,即并行接口和串行接口。
并行接口的芯片因需要封装很多条的数据线和地址线,容量一般较小。
串行接口的芯片一般只用二条或三条线和CPU交换数据,因此,容量一般很大。
并行接口的芯片在单片机系统中即可用作程序存储器,也可用作数据存储器,而串行接口的芯片只能用作数据存储器。
5.3.4存储器的主要参数存储器的主要性能参数有三个,即存储容量、存取周期和功耗。
(1)存储容量。
存储器是由许多存储单元组成,每个存储单元又由若干存储元组成,每个存储元存放1位二进制代码。
存储容量是表示存储器存放信息量的指标。
存储容量越大,所能存储的信息就越多。
一个存储器芯片的容量常用有多少个存储单元以及每个存储单元可存放多少位二进制数来表示。
例如,某存储器芯片有1024个单元,每个存储单元可存放4位二进制数,则常以1024×4表示该存储器芯片的容量。
容量的单位用K表示,1K 即表示1024(210)个存储单元,这样,上述存储器芯片的容量便可记作1K×4。
在单片机系统中,存取数据时常以字节(Byte)为单位,一个字节规定由8个二进制位组成,因此,单片机中的数据存储器一般情况下每个单元都是由8个存储元组成,表示存储器容量时更常见的是KB。
(2)存取周期。
存储器从接收到寻找存储单元的地址码开始,到它取出或存入数据所需要的时间,称为存取周期,这是用以表示存储器工作速度的重要指标。
MOS型存储器的存取周期约为100~300ns。
(3)功耗。
每个存储器芯片的功率称为功耗,单位为mW/芯片。
功耗又分为工作功耗和维持功耗。
维持功耗是存储器未选通时,处于低功耗、高输出阻抗、后备状态下时的功耗,芯片被选通后,它能自动进入读/写工作状态,对DRAM而言,维持功耗要比工作功耗小1~2个数量级。
有时功耗的单位为μW/b (每存储位的功耗)。
5.3.5存储器容量的计算芯片存储容量的识别与计算。
对于并行接口的存储器芯片,由地址线的条数可以确定芯片包含的存储单元数,由数据线的条数可以确定每个单元包含的存储元的数量。