AT89S51单片机最小系统组成及存储器的扩展
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第五章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所