8031单片机各种系统扩展_第1页
8031单片机各种系统扩展_第2页
8031单片机各种系统扩展_第3页
8031单片机各种系统扩展_第4页
8031单片机各种系统扩展_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机系统扩展在由单片机构成的实际测控系统中,最小应用系统往往不能满足要求,因此在系统设计时首先要解决系统扩展问题。单片机的系统扩展主要有程序存储器(ROM)扩展,数据存储器(RAM)扩展以及I/O口的扩展。MCS-51单片机有很强的扩展功能,外围扩展电路、扩展芯片和扩展方法都非常典型、规范。本章首先通过实训初步了解扩展的方法及应用,然后详细讨论各种扩展的常见电路、芯片以及使用方法。实训6 片外RAM对信号灯的控制及可编程I/O口的应用1. 实训目的 (1) 掌握扩展片外RAM的方法及使用。(2) 熟悉8155可编程接口芯片的内部组成。(3) 掌握8155初始化的方法及I/O口的使用。(4)

2、了解8155内部定时器和RAM的编程使用。(5) 认识片外RAM及8155相关地址的确定。2. 实训设备和器件 实训设备:单片机开发系统、微机。实训器件:实训电路板1套。3. 实训电路图 下图为实训电路图,与附录1中的电路图连接完全相同。图6.1 实训6电路图4. 实训步骤与要求 1)查阅附录实训电路板原理图及芯片手册,初步认识51单片机扩展片外RAM所使用的芯片6264的管脚排列,以及与单片机的连接关系;初步分析8155与单片机的连接及三个I/O口与外部LED的关系。2)将电路板与仿真器连接好。3)输入参考程序1,汇编并调试运行,观察P1口发光二极管的亮灭状态。4)输入参考程序2,汇编并调试

3、运行,观察电路板中LED(共阴极)的显示情况。参考程序1:对片外RAM写入数据并输出,控制P1口的亮灭状态。        ORG 0000H        MOV DPTR,#1000H     ;指向片外RAM的首地址        MOV A,#0FEH       

4、60; ;设置第一个要送入的数据        MOV R1,#08H         ;设循环次数WRITE:  MOVX DPTR,A        ;向RAM中写入数据        INC DPTR        

5、;    ;片外RAM地址加1        CLR CY        RL A                ;更新数据        DJNZ R1,WRITE   

6、0;   ;8次未送完,继续写入,否则顺序执行下一条指令        MOV R1,#08H         ;再次设置循环次数START:  MOV DPTR,#1000H     ;指向第一个数据单元1000HREAD:   MOVX  A,DPTR       ;读出数据到A累加器

7、        MOV P1,A            ;送P1口点亮发光二极管        LCALL DELAY         ;延时一段时间        INC DPTR 

8、60;          ;更新地址        DJNZ R1,READ        ;连续读出8个数据,送P1口显示        SJMP START          ;8个数据读完,继续从第一个数

9、据单元开始。延时子程序参见第4章。参考程序2:对8155初始化,使I/O口控制LED的显示情况。        ORG 0000H        MOV DPTR,#4400H    ;指向8155命令寄存器        MOV A,#03H          

10、60;      MOVX  DPTR,A       ;写入控制字。A口、B口为输出,C口为输入。        INC DPTR            ;指向8155A口        MOV A,#00H 

11、0;      MOVX  DPTR,A      ;向A口写入00H,输出选中所有8个LED。        INC DPTR            ;指向8155B口        MOV A,#OFFH  

12、0;             MOVX  DPTR,A      ;向B口写入某个字型码,输出点亮8个LED。        SJMP $5. 实训总结和分析 (1) 程序1的功能是,对片外RAM1000H1008H写入数据,然后再逐一读出送P1口控制发光二极管,使8个发光二极管依次点亮。片外RAM是当单片机内部RAM不够用时进行扩展的,常用的芯片是静态RA

13、M,例如实训电路板中所使用的6264,片外RAM的地址线是由单片机的P0口和P2口提供的,其具体连接方法以及片外RAM地址的确定方法在6.2节介绍。实训中,对片外RAM的写操作由MOVX DPTR,A完成,读操作由MOVX A,DPTR完成。(2) 程序2的功能是,对实训电路中扩展的8155芯片初始化,分别从8155的A口和B口输出数据,使8个LED同时显示“8”。8155是可编程的I/O芯片,当单片机提供的并行I/O口P0P3不够用户使用时,常常需要扩展I/O口,8155是扩展时使用较多的I/O芯片。在本书的实训电路中,用扩展的8155连接了8个LED数码管和16个按键。通过扩展8155可以

14、提供3个并行I/O口:A口、B口和C口,3个I/O口的工作方式(例如是输入还是输出)是由用户的编程来确定的,这个过程称作对8155的初始化。初始化编程是通过8155的命令寄存器写入控制字来实现的,例如参考程序2中的前3条指令。控制字的规定、8155和单片机的接口方法以及8155相关地址的确定在节介绍。(3) 分析参考程序2,我们注意到,对扩展I/O口芯片8155的写操作也是MOVX DPTR,A,与片外RAM的使用方法相同,读操作也是一样,因此这就要求片外RAM和扩展I/O口的地址不能冲突,在扩展连接时,二者要统一考虑,统一编址。(4) 请读者学习本章知识后,思考以下问题:实训中扩展的6264

15、的地址范围是什么?为什么8155命令寄存器、A口、B口的地址是程序2中所使用的4400H、4401H、4402H?(5) 在实际应用中,不仅要扩展RAM和I/O口,当单片机内部用于存放程序、表格的程序存储器容量不够时,也需要扩展。对这三者的扩展方法、常用芯片和使用方法是本章重点讨论的内容。6.1 程序存储器扩展在进行单片机应用系统设计时,首先考虑的就是存储器的扩展,包括程序存储器和数据存储器。其次是I/O口的扩展,用来连接一定的输入设备和输出设备。在本书附录的参考实训电路板原理图中,除了实训6中我们初步认识和使用的RAM和I/O口8155芯片,读者会注意到还扩展了两片存储器芯片2764和286

16、4,这是在程序存储器扩展中要介绍的内容。单片机的程序存储器空间和数据存储器空间是相互独立的。程序存储器的寻址空间是64K字节(0000HFFFFH)。 单片机程序存储器概述单片机应用系统由硬件和软件组成,软件的载体就是硬件中的程序存储器。对于MCS-51系列8位单片机,片内程序存储器的类型及容量如表6.1所示。表6.1   MCS-51系列单片机片内程序存储器一览表单片机  型号       片内程序存储器    类型 容量(字节)  8031 

17、    无   8051    ROM4K  8751    EPROM  4K  8951    Flash  4K 对于没有内部ROM的单片机或者程序较长、片内ROM容量不够时,用户必须在单片机外部扩展程序存储器。MCS-51单片机片外有16条地址线,即P0口和P2口,因此最大寻址范围为64K字节(0000HFFFFH)。这里要注意的是,MCS-51单片机有一个管脚跟程序存储器的扩展有关。如果接高电平,

18、那么片内存储器地址范围是0000H0FFFH(4K字节),片外程序存储器地址范围是1000HFFFFH(60K字节)。如果接低电平,不使用片内程序存储器,片外程序存储器地址范围为0000HFFFFH(64K字节)。8031单片机没有片内程序存储器,因此管脚总是接低电平。    扩展程序存储器常用芯片有EPROM(Erasable Programmable Read Only Memory)型(紫外线可擦除型),如2716(2K×8)、2732(4K×8)、2764(8K×8)、27128(16K×8)、27256(32K&#

19、215;8)、27512(64K×8)等,另外还有+5V电可擦除EEPROM,如2816(2K×8)、2864(8K×8)等等。如果程序总量不超过4KB,一般选用具有内部ROM的单片机。8051内部ROM只能由厂家将程序一次性固化,不适合小批量用户和程序调试时使用。因此选用8751、8951的用户较多。如果程序超过4K字节,一般不会选用8751、8951,直接选用8031,利用外部扩展存储器来存放程序。  EPROM程序存储器扩展实例    紫外线擦除电可编程只读存储器EPROM是国内用得较多的程序存储器。EPROM芯片上均

20、有一个玻璃窗口,在紫外线照射下,存储器中的各位信息均变1,即处于擦除状态。擦除干净的EPROM可以通过编程器将应用程序固化到芯片中。例6.1  在8031单片机上扩展4KEPROM程序存储器1. 选择芯片本例要求选用8031单片机,内部无ROM区,无论程序长短都必须扩展程序存储器(目前较少这样使用,但扩展方法比较典型、实用)。在选择程序存储器芯片时,首先必须满足程序容量,其次在价格合理情况下尽量选用容量大的芯片。芯片少,接线简单,芯片存储容量大,程序调整余量大。如估计程序总长3KB左右,最好扩展一片4KB的EPROM 2732,而不选用2片2716(2KB)。在单片机应用系统硬件设计

21、中应注意,尽量减少芯片使用个数,使得电路结构简单,提高可靠性,这也是8951比8031使用更加广泛的原因之一。2. 硬件电路图8031单片机扩展一片2732程序存储器电路如图6.2所示。图6.2 单片机扩展2732 EPROM电路    3. 芯片说明(1)  74LS37374LS373是带三态缓冲输出的8D锁存器,由于单片机的三总线结构中,数据线与地址线的低8位共用P0口,因此必须用地址锁存器将地址信号和数据信号区分开。74LS373的锁存控制端G直接与单片机的锁存控制信号ALE相连,在ALE的下降沿锁存低8位地址(2)EPROM 2732EPROM

22、 2732的容量为4K×8位。4K表示有4×1024(22×210=212)个存储单元,8位表示每个单元存储数据的宽度是8位。前者确定了地址线的位数是12位(A0A11),后者确定了数据线的位数是8位(O0O7),目前除了串行存储器之外,一般情况下我们使用的都是8位数据存储器)。2732单一+5V供电,最大静态工作电流为100mA,维持电流为35mA,读出时间最大为250ns。2732 的封装形式为DIP24,管脚如图6.3所示。            &

23、#160;                    图6.3  EPROM 2732管脚及说明    其中  A0A11: 地址线          O0O7:  数据线          :

24、     片选线/VPP:  输出允许/编程高压    除了12条地址线和8条数据线之外,为片选线,低电平有效,也就是说,只有当为低电平时,2732才被选中,否则,2732不工作。/VPP为双功能管脚,当2732用作程序存储器时,其功能是允许读数据出来;当对EPROM编程(也称为固化程序)时,该管脚用于高电压输入,不同生产厂家的芯片编程电压也有不同。当我们把它作为程序存储器使用时,不必关心其编程电压。4. 扩展总线的产生    一般的CPU,象INTEL8086/8088、Z80等,都有单独的地

25、址总线、数据总线和控制总线,而MCS-51系列单片机由于受管脚的限制,数据线与地址线是复用的,为了将它们分离开来,必须在单片机外部增加地址锁存器,构成与一般CPU相类似的三总线结构。    5. 连线说明(1)地址线单片机扩展片外存储器时,地址线是由P0和P2口提供的。图6.2中,2732的12条地址线(A0A11)中,低8位A0A7通过锁存器74LS373与P0口连接,高4位A8A11直接与P2口的P2.0P2.3连接,P2口本身有锁存功能。注意,锁存器的锁存使能端G必须和单片机的ALE管脚相连。(2)数据线 2732的8位数据线直接与单片机的P0口相连。因此P

26、0口是一个分时复用的地址/数据线。(3)控制线CPU执行2732中存放的程序指令时,取指阶段就是对2732进行读操作。注意,CPU对EPROM只能进行读操作,不能进行写操作。CPU对2732的读操作控制都是通过控制线实现的。2732控制线的连接有以下几条: 直接接地。由于系统中只扩展了一个程序存储器芯片,因此2732的片选端直接接地,表示2732一直被选中。若同时扩展多片,需通过译码器来完成片选工作;: 接8031的读选通信号端。在访问片外程序存储器时,只要端出现负脉冲,即可从2732中读出程序。6. 扩展程序存储器地址范围的确定    单片机扩展存储器的关键是搞

27、清楚扩展芯片的地址范围,8031最大可以扩展64K字节(0000HFFFFH)。决定存储器芯片地址范围的因素有两个:一个是片选端必须为低电平,另一个是芯片本身的地址线与单片机地址线的连接,单片机本身地址线的编码确定了芯片的容量。    本例中,2732的片选端总是接地,因此第一个条件总是满足的,另外,2732有12条地址线,与8031的低12位地址相连,编码结果如下:8031        P2.7   P2.6      P

28、2.5     P2.4    P2.3      P2.2     P2.1     P2.0     P0.7   P0.6   P0.5    P2.4   P0.3    P0.2   P0.1 

29、60;  P0.0A15   A14   A13   A12  A11  A10  A9   A8   A7  A6  A5   A4  A3  A2  A1   A02732                 

30、          A11  A10  A9   A8   A7  A6  A5   A4  A3  A2  A1   A0         0    x     x    x&#

31、160;   x    0     0    0    0    0   0   0    0   0    0   0   0         0    x 

32、    x    x    x    0     0    0    0    0   0   0    0   0    0   0   1     

33、0;   0    x     x    x    x    0     0    0    0    0   0   0    0   0    0   1&

34、#160;  0         0    x     x    x    x    0     0    0    0    0   0   0    0 &

35、#160; 0    0   1   1                                                 &

36、#160;                    0    x     x    x    x    1     1    1    1    1   1 &#

37、160; 1    1   1    1   1   1其中的“x”表示跟2732无关的管脚,取0或1都可以,通常取0。    由此可见,本例中扩展的2732的地址范围是0000H0FFFH(无关的管脚取0,地址范围不是唯一的),共4K字节容量。    实训电路中,系统扩展了一片EPROM2764,请读者对照上述6点理清连接方法,从而确定实训板中2764的地址范围。7. EPROM的使用  

38、60; 存储器扩展电路是单片机应用系统的功能扩展部分,只有当应用系统的软件设计完成了,才能把程序通过特定的编程工具(一般称为编程器或EPROM固化器)固化到2732中,然后再将2732插到用户板的插座上(扩展程序存储器一定要焊插座)。当上电复位时,PC=0000H,自动从2732的0000H单元取指令,然后开始执行指令。    如果程序需要反复调试,可以用紫外线擦除器先将2732中的内容擦除,然后再固化修改后的程序进行调试。    如果要从EPROM中读出程序中定义的表格,使用查表指令:    

39、    MOVC   A,A+DPTR        MOVC   A,A+PC  EEPROM扩展实例    电擦除可编程只读存储器EEPROM是一种可用电气方法在线擦除和再编程的只读存储器,它既有RAM可读可改写的特性,又具有非易失性存储器ROM在掉电后仍能保持所存储数据的优点。因此EEPROM在单片机存储器扩展中,可以用作程序存储器,也可以用作数据存储器,至于具体做什么使用,由硬件电路确定。 

40、0;  EEPROM作为程序存储器使用时,CPU读取EEPROM数据同读取一般EPROM操作相同;但EEPROM的写入时间较长,必须用软件或硬件来检测写入周期。例6.2  在8031单片机上扩展2KB EEPROM。1. 选择芯片    2816A和2817A均属于5V电擦除可编程只读存储器,其容量都是2K×8位。2816A与2817A的不同之处在于:2816A的写入时间为915ms,完全由软件延时控制,与硬件电路无关;2817A利用硬件引脚来检测写操作是否完成。在此我们选用2817A芯片来完成扩展2KB EEPROM,2817A的封

41、装是DIP28,采用单一+5V供电,最大工作电流为150mA,维持电流为55mA,读出时间最大为250ns。片内设有编程所需的高压脉冲产生电路,无需外加编程电源和写入脉冲即可工作。2817A在写入一个字节的指令码或数据之前,自动地对所要写入的单元进行擦除,因而无需进行专门的字节 / 芯片擦除操作。2817A的管脚如图6.4所示。图6.4 2817A的管脚其中A0A10:地址线 ;   I/O0I/O7:读写数据线;    : 片选线: 读允许线,低电平有效; :写允许线,低电平有效    :低电平表示2817A正在

42、写操作,处于忙状态,高电平表示写操作完毕。    Vcc:+5V电源;  GND:接地端2817A的读操作与普通EPROM的读出相同,所不同的只是可以在线进行字节的写入。2817A的写入过程如下:CPU向2817A发出字节写入命令后,2817A便锁存地址、数据及控制信号,从而启动一次写操作。2817A的写入时间大约为16ms左右,在此期间,2817A的RDY/BUSY脚呈低电平,表示2817A正在进行写操作,此时它的数据总线呈高阻状态,因而允许CPU在此期间执行其它的任务。当一次字节写入操作完毕,2817A便将RDY/BUSY线置高,由此来通知CPU。2

43、. 硬件电路图    单片机扩展2817A的硬件电路图如图6.5所示。图6.5 单片机扩展2817A EEPROM电路3. 连线说明(1)地址线图6.5中,2817A的11条地址线(A0A10,容量为2K ×8位,211=2×1024=2K),低8位A0A7通过锁存器74LS373与P0口连接,高3位A8A10直接与P2口的P2.0P2.2连接。(2)数据线2817A的8位数据线直接与单片机的P0口相连。(3)控制线单片机与2817A的控制线连接方法采用了将外部数据存储器空间和程序存储器空间合并的方法,使得2817A既可以作为程序存储器使用,又

44、可以作为数据存储器使用。单片机中用于控制存储器的管脚有以下3个:控制程序存储器的读操作,执行指令的取指阶段和执行MOVC  A,A+DPTR指令时有效;控制数据存储器的读操作,执行MOVX  DPTR,A和MOVX  Ri,A时有效;控制数据存储器的写操作,执行MOVX  A,DPTR和MOVX  A,Ri时有效。在图6.5中,2817A控制线的连线方法如下: 直接接地。由于系统中只扩展了一个程序存储器芯片,因此片选端直接接地,表示2817A一直被选中。:8031的程序存储器读选通信号和数据存储器读信号经过“与”操作后与2817A的读允许信号相

45、连。这样,只要、中有一个有效,就可以对2817A进行读操作了。也就是说,对2817A既可以看作程序存储器取指令,也可以看作数据存储器读出数据。:与8031的数据存储器写信号相连,只要执行数据存储器写操作指令时,就可以往2817A中写入数据。:与8031的P1.0相连,采用查询方法对2817A的写操作进行管理。在擦、写操作期间,脚为低电平,当字节擦写完毕时,为高电平。其实,检测2817A写操作是否完成也可以用中断方式实现,方法是将2817A的反相后与8031的中断输入脚 /相连。当2817A每擦、写完一个字节便向单片机提出中断请求。    图6.5中281

46、7A的地址范围是0000H07FFH(无关的管脚取0,该地址范围不是唯一的)。4. 2817A的使用    按照图6.5连接好后,如果只是把2817A作为程序存储器使用,使用方法同EPROM相同。EEPROM也可以通过编程器将程序固化进去。    如果将2817A作为数据存储器,读操作同使用静态RAM一样,直接从给定的地址单元中读取数据即可。向2817A中写数据采用MOVX  DPTR,A指令。    常用程序存储器芯片    从上面两个实例,我们可以体会到扩展程序

47、存储器的一般方法。程序存储器与单片机的连线分为三类: 数据线,通常有8位数据线,由P0口提供; 地址线,地址线的条数决定了程序存储器的容量。低8位地址线由P0口提供,高8位由P2口提供,具体使用多少条地址线视扩展容量而定; 控制线,存储器的读允许信号与单片机的取指信号相连;存储器片选线的接法决定了程序存储器的地址范围,当只采用一片程序存储器芯片时可以直接接地,当采用多片时要使用译码器来选中。这里再简单介绍一些常用的EPROM扩展芯片以及目前市场上出现的一些新型存储器。1. 常用EPROM芯片(1)EPROM2716    2716是2K×8位的紫外线擦除

48、电可编程只读存储器,单一+5V供电,运行时最大功耗为252mW,维持功耗为132mW,读出时间最大为450ns,封装形式为DIP24。2716有地址线11条(A0A10),数据线8条(O0O7),为片选线,低电平有效,为数据输出允许信号,低电平有效,Vpp为编程电源,Vcc为工作电源。(2)EPROM2764    2764是8K×8位的EPROM,单一+5V供电,工作电流为75mA,维持电流为35mA,读出时间最大为250ns,DIP28封装。2764A有13条地址线A0A12,数据输出线O0O7,为片选线,为数据输出允许线,PGM为编程脉冲输入端,V

49、pp为编程电源,Vcc为工作电源。(3)EPROM2712827128是16K×8位的EPROM,单一+5V供电,工作电流为100mA,维持电流为40mA,读出时间最大为250ns,DIP28封装。27128A有14条地址线A0A13,数据输出线O0O7,为片选线,为数据输出允许线,PGM为编程脉冲输入端,Vpp为编程电源,Vcc为工作电源。(4)EPROM27256    27256是32K×8位的EPROM,单一+5V供电,工作电流为100mA,维持电流为40mA,读出时间最大为250ns,DIP28封装。27256有15条地址线A0A14

50、,数据输出线O0O7,为片选线,为数据输出允许线, Vpp为编程电源,Vcc为工作电源。2716、2764、27128和27256的管脚如图6.6所示。图6.6  常用EPROM芯片管脚图2. 单片机扩展EPROM典型电路(1)  扩展一片27128A单片机扩展16K外部程序存储器一般选用27128A EPROM芯片,硬件电路如图6.7所示。    图6.7 单片机扩展27128 EPROM电路(2)用译码法扩展一片2764单片机扩展8K外部程序存储器一般选用2764 EPROM芯片,硬件电路如图6.8所示。图6.8  单片机扩展27

51、64 EPROM电路在图6.8中,2764的片选端没有接地,而是通过74LS138译码器的输出端来提供的,这种方法称为译码法。当同时扩展多片ROM时,常常采用译码法来分别选中芯片。显然,在图6.8中,只有当译码器的输出=0时,才能够选中该片2764,所以这片2764的地址范围确定如下:8031        P2.7   P2.6      P2.5     P2.4    P2.3&#

52、160;     P2.2     P2.1     P2.0     P0.7   P0.6   P0.5    P2.4   P0.3    P0.2   P0.1    P0.0A15   A14   A13  &

53、#160;A12  A11  A10  A9   A8   A7  A6  A5   A4  A3  A2  A1   A02764                      A12  A11  A10 

54、60;A9   A8   A7  A6  A5   A4  A3  A2  A1   A0             0     0    0      0    0    0 &#

55、160;  0    0    0   0   0    0   0    0   0   0                        

56、0;                                                0     0    0      1  

57、;  1     1    1    1    1   1   1    1   1    1   1   1即:0000H1FFFH。本书实训电路中的2764采用的就是图6.8所示接法,因此其地址也是0000H1FFFH。3. 常用EEPROM芯片    除了例6.2中使用的E

58、EPROM 2817A之外,常用的EEPROM芯片还有2816A、2864A等。(1) EEPROM2816A2816A的存储容量为2K×8位,单一+5V供电,不需要专门配置写入电源。2816A能随时写入和读出数据,其读取时间完全能满足一般程序存储器的要求,但写入时间较长,须915ms,写入时间完全由软件控制。2816A的管脚如图6.10所示。(2)  EEPROM2864A2864A是8K×8位EEPROM,单一+5V供电,最大工作电流160mA,最大维持电流60mA,典型读出时间250ns。由于芯片内部设有“页缓冲器”,因而允许对其快速写入。2864A内部可提

59、供编程所需的全部定时,编程结束可以给出查询标志。2864A的封装形式为DIP28,其管脚如图6.9所示。图6.9 常用EEPROM管脚图4. 单片机扩展EEPROM典型电路    用单片机扩展EEPROM 2864A 作为数据存储器的硬件电路如图6.10所示。图6.10 单片机扩展2864A EEPROM作为数据存储器电路    此时,2864A的数据读出和写入与静态RAM完全相同,采用MOVX  A,DPTR和MOVX DPTR,A指令来完成读写操作。在本书的实训电路板上,就采用这种连接方法,将2864作为数据存储器使用,

60、读者可将此电路与书后的实训电路板电路图比较对照。6.2 数据存储器扩展 单片机RAM概述RAM是用来存放各种数据的,MCS-51系列8位单片机内部有128字节RAM存储器,CPU对内部RAM具有丰富的操作指令。但是,当单片机用于实时数据采集或处理大批量数据时,仅靠片内提供的RAM是远远不够的。此时,我们可以利用单片机的扩展功能,扩展外部数据存储器。实训6的参考程序1就是一个扩展RAM的使用实例。    常用的外部数据存储器有静态RAM(Static Random Access MemorySRAM)和动态RAM(Dynamic Random Access Memo

61、ryDRAM)两种。前者相对读写速度高,一般都是8位宽度,易于扩展,且大多数与相同容量的EPROM引脚兼容,有利于印刷板电路设计,使用方便;缺点是集成度低,成本高,功耗大。后者集成度高,成本低,功耗相对较低;缺点是需要增加一个刷新电路,附加另外的成本。    MCS-51单片机扩展片外数据存储器的地址线也是由P0口和P2口提供的,因此最大寻址范围为64K字节(0000HFFFFH)。一般情况下,SRAM用于仅需要小于64KB数据存储器的小系统,DRAM经常用于需要大于64KB的大系统。因此在实训中我们扩展的是SRAM6264,在本节将主要介绍SRAM与单片机的接口

62、设计。 SRAM扩展实例1应用系统中只扩展一片RAM例6.3  在一单片机应用系统中扩展2K字节静态RAM。1)芯片选择单片机扩展数据存储器常用的静态RAM芯片有6116(2K×8位)、6264(8K×8位)、62256(32K×8位)等。    根据题目容量的要求我们选用SRAM 6116,它是一种采用CMOS工艺制成的SRAM,采用单一+5V供电,输入输出电平均于TTL兼容,具有低功耗操作方式。当CPU没有选中该芯片时(CE=1),芯片处于低功耗状态,可以减少80%以上的功耗。    611

63、6的管脚与EPROM 2716管脚兼容,管脚如图6.11所示。图6.11  6116管脚图6116有11条地址线A0A10;8条双向数据线I/O0I/O7;为片选线,低电平有效;写允许线,低电平有效;读允许线,低电平有效。6116的操作方式如表6.2所示。表6.2  6116的操作方式方式I/O0I/O7H××未选中高阻LLH读O0O7LHL写I0 I7LLL写I0 I72)硬件电路单片机与6116的硬件连接如图6.12所示。图6.12 单片机扩展2K RAM电路3)连线说明6116与单片机的连线如下:地址线:A0A10连接单片机地址总线的A0A10,即

64、P0.0P0.7、P2.0、P2.1、P2.2共11根;数据线:I/O0I/O7连接单片机的数据线,即P0.0P0.7;控制线:片选端连接单片机的P2.7,即单片机地址总线的最高位A15;        读允许线连接单片机的读数据存储器控制线;        写允许线连接单片机的写数据存储器控制线.4)片外RAM地址范围的确定及使用按照图6.12的连线,片选端直接与某一地址线P2.7相连,这种扩展方法称为线选法。显然只有P2.7=0,才能够选中该片6116,故其地址范围确定如

65、下:8031         P2.7   P2.6  P2.5  P2.4   P2.3   P2.2  P2.1   P2.0  P1.7  P1.6  P1.5  P1.4  P1.3  P1.2  P1.1  P1.0  A15   A14  A13  A12  A11

66、 A10  A9   A8   A7  A6   A5  A4   A3  A2   A1  A06116                             

67、60;     A10  A9   A8   A7  A6   A5  A4   A3  A2   A1  A0              0    x     x    x  &

68、#160; x    0    0    0    0   0   0    0   0    0   0   0              0    x  &

69、#160;  x    x    x    0    0    0    0   0   0    0   0    0   0   1           &

70、#160;  0    x     x    x    x    0    0    0    0   0   0    0   0    0   1   0  

71、;            0    x     x    x    x    0    0    0    0   0   0    0   0  &

72、#160; 0   1   1                                                     &#

73、160;                      0    x     x    x    x    1    1    1    1   1   1

74、0;   1   1    1   1   1其中的“x”表示跟6116无关的管脚,取0或1都可以。    如果与6116无关的管脚取0,那么6116的地址范围是0000H07FFH;如果与6116无关的管脚取1,那么6116的地址范围是7800H7FFFH。    单片机对RAM的读写除了可以使用在实训6中出现的:    MOVX     

75、60;  DPTR,A          ;64K字节内写入数据MOVX        A,DPTR         ;64K字节内读取数据还可以使用以下对低256字节的读写指令:    MOVX        Ri,A   &#

76、160;       ;低256字节内写入数据MOVX        A,Ri          ;低256字节内读取数据2同时扩展外部RAM与外部I/O在实训6中,我们知道外部RAM与外部I/O口采用相同的读写指令,二者是统一编址的,因此当同时扩展二者时,就必须考虑地址的合理分配,通常采用译码法来实现。下面是一个这样的例题。例6.4扩展8K RAM,地址范围是2000H3FFFH,并且具有唯一性

77、;其余地址均作为外部I/O扩展地址。1)芯片选择 (1)静态RAM芯片62646264是8K×8位的静态RAM,它采用CMOS工艺制造,单一+5V供电,额定功耗200mW,典型读取时间200ns,封装形式为DIP28,管脚如图6.13所示。图 6.13   6264管脚其中A0A12:13条地址线;   I/O0I/O7:8条数据线,双向;:片选线1,低电平有效;CE2:片选线2,高电平有效:读允许信号线,低电平有效;:写信号线,低电平有效(2)3-8译码器74LS138    题目要求扩展RAM的地址范围是唯一的

78、2000H-3FFFH,其余地址用于外部I/O接口(关于I/O口的扩展,会在6.3和6.4节介绍)。由于外部I/O占用外部RAM的地址范围,操作指令都是MOVX指令,因此,I/O和RAM同时扩展时必须进行存储器空间的合理分配。这里采用全译码方式,6264的存储容量是8K×8位,占用了单片机的13条地址线A0A12,剩余的3条地址线A13A15通过74LS138来进行全译码。2)硬件连线用单片机扩展8K SRAM的硬件连线图如图6.14所示。图6.14  单片机与6264 SRAM的连接单片机的高三位地址线A13、A14、A15用来进行3-8译码,译码输出的接6264的片选线

79、;剩余的译码输出用于选通其它的I/O扩展接口;6264的片选线CE2直接接高电平,+5V;6264的输出允许信号接单片机的,写允许信号接单片机的。3)6264的地址范围根据片选线及地址线的连接,6264的地址范围确定如下:8031  A15  A14  A13   A12  A11  A10  A9   A8   A7  A6  A5  A4  A3  A2  A1  A06264  &

80、#160;          A12  A11  A10  A9   A8   A7  A6  A5  A4  A3  A2  A1  A00    0     1    0    0    0 &#

81、160;  0    0    0   0   0   0   0    0   0   00    0     1    0    0    0    0   

82、; 0    0   0   0   0   0    0   0   10    0     1    0    0    0    0    0    0  

83、; 0   0   0   0    0   1   0                                              &

84、#160;     0    0     1    1    1    1    1    1    1   1   1   1   1    1   1   1 

85、60;   因此,6264的地址范围为2000H3FFFH。  新型存储器简介1.集成动态随机RAM与静态RAM相比,动态RAM具有成本低、功耗小的优点,适用于需要大容量数据存储空间的场合。但是动态RAM需要刷新逻辑电路,每隔一定的时间就要将所存的信息刷新一次,以保持数据信息不丢失,所以在单片机的存储器扩展中受到一定限制。近年来出现了一种新型的集成动态RAM(iRAM),它将一个完整的动态RAM系统,包括动态刷新硬件逻辑集成到一个芯片中,从而兼有静态RAM、动态RAM的优点。Intel公司提供的iRAM芯片有2186、2187等,其管脚如图6.15所示。2186/

86、2187片内具有8K×8位集成动态RAM,单一+5V供电,工作电流70mA,维持电流20mA,存取时间250ns,管脚与6264兼容。两者的不同之处在于2186的引脚1是同CPU的握手信号RDY,而2187的引脚1是刷新控制输入端REFEN。图6.15  iRAM2186、2187管脚图2.快擦写型存储器(Flash Memory)快擦写型存储器是一种电可擦除型、非易失性存储器,也称为闪存,其特点是快速在线修改,且掉电后信息不丢失。近年来,Flash Memory大量用来制作存储器卡(也称为闪卡),例如,数码相机中使用的存储器卡就是一种闪卡。Flash Memory以供电电

87、压的不同,大体可以分为两大类:一类是从用紫外线擦除的EPROM发展而来的需要用高压(12V)编程的器件,通常需要双电源(芯片电源、擦除/编程电源)供电,型号序列为28F系列;另一类是从5V编程的以EEPROM为基础的器件,它只需要单一电源供电,其型号序列通常为29系列(有的序列号也不完全统一)。Flash Memory的型号很多,如28F256(32K×8)、28F512(64K×8)、28F010(128K×8)、28F020(256K×8)、29C256(32K×8)、29C512(64K×8)、29C010(128K×

88、8)、29C020(256K×8)等。6.3  并行I/O口扩展 MCS-51内部并行I/O口及其作用51系列单片机内部有4个双向的并行I/O端口P0P3,共占32根引脚。P0口的每一位可以驱动8个TTL负载,P1P3口的负载能力为3个TTL负载。有关4个端口的结构及详细说明,在前面的有关章节中已作介绍,这里不再赘述。在无片外存储器扩展的系统中,这4个端口都可以作为准双向通用I/O口使用。在具有片外扩展存储器的系统中,通过6.1和6.2节的介绍,我们知道,P0口分时地作为低8位地址线和数据线,P2口作为高8位地址线,这时,P0口和部分或全部的P2口无法再作通用I/O口了。P

89、3口具有第二功能,在应用系统中也常被使用。因此在大多数的应用系统中,真正能够提供给用户使用的只有P1和部分P2、P3口。综上所述,MCS-51单片机的I/O端口通常需要扩充,以便和更多的外设(例如显示器、键盘)进行联系。在51单片机中扩展的I/O口采用与片外数据存储器相同的寻址方法,所有扩展的I/O口,以及通过扩展I/O口连接的外设都与片外RAM统一编址,因此对片外I/O口的输入输出指令就是访问片外RAM的指令,即:MOVX  DPTR,AMOVX  Ri,AMOVX  A,DPTRMOVX  A,Ri在实训6中,读者已经初步接触了用8155扩展I/O口的方法,实际中扩展I/O口的方法有三种:简单的I/O口扩展、采用可编程的并行I/O接口芯片扩展以及利用串行口进行I/O口的扩展。下面分别介绍这些方法的原理和实际应用。 简单的I/O口扩展这种方法,通常是采用TTL或CMOS电路锁存器、三态门等作为扩展芯片,通过P0口来实现扩展的一种方案。它具有电路简单、成本低、配置灵活的特点。1  扩展实例下图为采用74LS244作为扩展输入、74LS273作为扩展输出的简单I/O口扩展

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论