8031单片机各种系统扩展.docx

上传人:b****8 文档编号:27757858 上传时间:2023-07-04 格式:DOCX 页数:49 大小:328.90KB
下载 相关 举报
8031单片机各种系统扩展.docx_第1页
第1页 / 共49页
8031单片机各种系统扩展.docx_第2页
第2页 / 共49页
8031单片机各种系统扩展.docx_第3页
第3页 / 共49页
8031单片机各种系统扩展.docx_第4页
第4页 / 共49页
8031单片机各种系统扩展.docx_第5页
第5页 / 共49页
点击查看更多>>
下载资源
资源描述

8031单片机各种系统扩展.docx

《8031单片机各种系统扩展.docx》由会员分享,可在线阅读,更多相关《8031单片机各种系统扩展.docx(49页珍藏版)》请在冰豆网上搜索。

8031单片机各种系统扩展.docx

8031单片机各种系统扩展

单片机系统扩展

 

在由单片机构成的实际测控系统中,最小应用系统往往不能满足要求,因此在系统设计时首先要解决系统扩展问题。

单片机的系统扩展主要有程序存储器(ROM)扩展,数据存储器(RAM)扩展以及I/O口的扩展。

MCS-51单片机有很强的扩展功能,外围扩展电路、扩展芯片和扩展方法都非常典型、规范。

本章首先通过实训初步了解扩展的方法及应用,然后详细讨论各种扩展的常见电路、芯片以及使用方法。

实训6片外RAM对信号灯的控制及可编程I/O口的应用

1.实训目的

(1)掌握扩展片外RAM的方法及使用。

(2)熟悉8155可编程接口芯片的内部组成。

(3)掌握8155初始化的方法及I/O口的使用。

(4)了解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,汇编并调试运行,观察电路板中LED(共阴极)的显示情况。

参考程序1:

对片外RAM写入数据并输出,控制P1口的亮灭状态。

       ORG0000H

       MOVDPTR,#1000H    ;指向片外RAM的首地址

       MOVA,#0FEH        ;设置第一个要送入的数据

       MOVR1,#08H        ;设循环次数

WRITE:

 MOVX@DPTR,A       ;向RAM中写入数据

       INCDPTR           ;片外RAM地址加1

       CLRCY

       RLA               ;更新数据

       DJNZR1,WRITE      ;8次未送完,继续写入,否则顺序执行下一条指令

       MOVR1,#08H        ;再次设置循环次数

START:

 MOVDPTR,#1000H    ;指向第一个数据单元1000H

READ:

  MOVX A,@DPTR      ;读出数据到A累加器

       MOVP1,A           ;送P1口点亮发光二极管

       LCALLDELAY        ;延时一段时间

       INCDPTR           ;更新地址

       DJNZR1,READ       ;连续读出8个数据,送P1口显示

       SJMPSTART         ;8个数据读完,继续从第一个数据单元开始。

延时子程序参见第4章。

参考程序2:

对8155初始化,使I/O口控制LED的显示情况。

       ORG0000H

       MOVDPTR,#4400H   ;指向8155命令寄存器

       MOVA,#03H        

       MOVX @DPTR,A      ;写入控制字。

A口、B口为输出,C口为输入。

       INCDPTR           ;指向8155A口

       MOVA,#00H

       MOVX @DPTR,A     ;向A口写入00H,输出选中所有8个LED。

       INCDPTR           ;指向8155B口

       MOVA,#OFFH       

       MOVX @DPTR,A     ;向B口写入某个字型码,输出点亮8个LED。

       SJMP$

5.实训总结和分析

(1)程序1的功能是,对片外RAM1000H~1008H写入数据,然后再逐一读出送P1口控制发光二极管,使8个发光二极管依次点亮。

片外RAM是当单片机内部RAM不够用时进行扩展的,常用的芯片是静态RAM,例如实训电路板中所使用的6264,片外RAM的地址线是由单片机的P0口和P2口提供的,其具体连接方法以及片外RAM地址的确定方法在6.2节介绍。

实训中,对片外RAM的写操作由MOVX@DPTR,A完成,读操作由MOVXA,@DPTR完成。

(2)程序2的功能是,对实训电路中扩展的8155芯片初始化,分别从8155的A口和B口输出数据,使8个LED同时显示“8”。

8155是可编程的I/O芯片,当单片机提供的并行I/O口P0~P3不够用户使用时,常常需要扩展I/O口,8155是扩展时使用较多的I/O芯片。

在本书的实训电路中,用扩展的8155连接了8个LED数码管和16个按键。

通过扩展8155可以提供3个并行I/O口:

A口、B口和C口,3个I/O口的工作方式(例如是输入还是输出)是由用户的编程来确定的,这个过程称作对8155的初始化。

初始化编程是通过8155的命令寄存器写入控制字来实现的,例如参考程序2中的前3条指令。

控制字的规定、8155和单片机的接口方法以及8155相关地址的确定在6.3.4节介绍。

(3)分析参考程序2,我们注意到,对扩展I/O口芯片8155的写操作也是MOVX@DPTR,A,与片外RAM的使用方法相同,读操作也是一样,因此这就要求片外RAM和扩展I/O口的地址不能冲突,在扩展连接时,二者要统一考虑,统一编址。

(4)请读者学习本章知识后,思考以下问题:

实训中扩展的6264的地址范围是什么?

为什么8155命令寄存器、A口、B口的地址是程序2中所使用的4400H、4401H、4402H?

(5)在实际应用中,不仅要扩展RAM和I/O口,当单片机内部用于存放程序、表格的程序存储器容量不够时,也需要扩展。

对这三者的扩展方法、常用芯片和使用方法是本章重点讨论的内容。

6.1程序存储器扩展

在进行单片机应用系统设计时,首先考虑的就是存储器的扩展,包括程序存储器和数据存储器。

其次是I/O口的扩展,用来连接一定的输入设备和输出设备。

在本书附录的参考实训电路板原理图中,除了实训6中我们初步认识和使用的RAM和I/O口8155芯片,读者会注意到还扩展了两片存储器芯片2764和2864,这是在程序存储器扩展中要介绍的内容。

单片机的程序存储器空间和数据存储器空间是相互独立的。

程序存储器的寻址空间是64K字节(0000H~FFFFH)。

6.1.1单片机程序存储器概述

单片机应用系统由硬件和软件组成,软件的载体就是硬件中的程序存储器。

对于MCS-51系列8位单片机,片内程序存储器的类型及容量如表6.1所示。

表6.1  MCS-51系列单片机片内程序存储器一览表

单片机

 型号

      片内程序存储器

   类型

 容量(字节)

 8031

    无

 ——

 8051

   ROM

4K

 8751

   EPROM

 4K

 8951

   Flash

 4K

 

对于没有内部ROM的单片机或者程序较长、片内ROM容量不够时,用户必须在单片机外部扩展程序存储器。

MCS-51单片机片外有16条地址线,即P0口和P2口,因此最大寻址范围为64K字节(0000H—FFFFH)。

这里要注意的是,MCS-51单片机有一个管脚

跟程序存储器的扩展有关。

如果

接高电平,那么片内存储器地址范围是0000H—0FFFH(4K字节),片外程序存储器地址范围是1000H—FFFFH(60K字节)。

如果

接低电平,不使用片内程序存储器,片外程序存储器地址范围为0000H—FFFFH(64K字节)。

8031单片机没有片内程序存储器,因此

管脚总是接低电平。

   扩展程序存储器常用芯片有EPROM(ErasableProgrammableReadOnlyMemory)型(紫外线可擦除型),如2716(2K×8)、2732(4K×8)、2764(8K×8)、27128(16K×8)、27256(32K×8)、27512(64K×8)等,另外还有+5V电可擦除EEPROM,如2816(2K×8)、2864(8K×8)等等。

如果程序总量不超过4KB,一般选用具有内部ROM的单片机。

8051内部ROM只能由厂家将程序一次性固化,不适合小批量用户和程序调试时使用。

因此选用8751、8951的用户较多。

如果程序超过4K字节,一般不会选用8751、8951,直接选用8031,利用外部扩展存储器来存放程序。

6.1.2 EPROM程序存储器扩展实例

   紫外线擦除电可编程只读存储器EPROM是国内用得较多的程序存储器。

EPROM芯片上均有一个玻璃窗口,在紫外线照射下,存储器中的各位信息均变1,即处于擦除状态。

擦除干净的EPROM可以通过编程器将应用程序固化到芯片中。

例6.1 在8031单片机上扩展4KEPROM程序存储器

1.选择芯片

本例要求选用8031单片机,内部无ROM区,无论程序长短都必须扩展程序存储器(目前较少这样使用,但扩展方法比较典型、实用)。

在选择程序存储器芯片时,首先必须满足程序容量,其次在价格合理情况下尽量选用容量大的芯片。

芯片少,接线简单,芯片存储容量大,程序调整余量大。

如估计程序总长3KB左右,最好扩展一片4KB的EPROM2732,而不选用2片2716(2KB)。

在单片机应用系统硬件设计中应注意,尽量减少芯片使用个数,使得电路结构简单,提高可靠性,这也是8951比8031使用更加广泛的原因之一。

2.硬件电路图

8031单片机扩展一片2732程序存储器电路如图6.2所示。

图6.2单片机扩展2732EPROM电路

   

3.芯片说明

(1) 74LS373

74LS373是带三态缓冲输出的8D锁存器,由于单片机的三总线结构中,数据线与地址线的低8位共用P0口,因此必须用地址锁存器将地址信号和数据信号区分开。

74LS373的锁存控制端G直接与单片机的锁存控制信号ALE相连,在ALE的下降沿锁存低8位地址

(2)EPROM2732

EPROM2732的容量为4K×8位。

4K表示有4×1024(22×210=212)个存储单元,8位表示每个单元存储数据的宽度是8位。

前者确定了地址线的位数是12位(A0~A11),后者确定了数据线的位数是8位(O0~O7),目前除了串行存储器之外,一般情况下我们使用的都是8位数据存储器)。

2732单一+5V供电,最大静态工作电流为100mA,维持电流为35mA,读出时间最大为250ns。

2732的封装形式为DIP24,管脚如图6.3所示。

                 

 

            图6.3 EPROM2732管脚及说明

   其中 A0~A11:

地址线

        O0~O7:

 数据线

         

   片选线

/VPP:

 输出允许/编程高压

   除了12条地址线和8条数据线之外,

为片选线,低电平有效,也就是说,只有当

为低电平时,2732才被选中,否则,2732不工作。

/VPP为双功能管脚,当2732用作程序存储器时,其功能是允许读数据出来;当对EPROM编程(也称为固化程序)时,该管脚用于高电压输入,不同生产厂家的芯片编程电压也有不同。

当我们把它作为程序存储器使用时,不必关心其编程电压。

4.扩展总线的产生

   一般的CPU,象INTEL8086/8088、Z80等,都有单独的地址总线、数据总线和控制总线,而MCS-51系列单片机由于受管脚的限制,数据线与地址线是复用的,为了将它们分离开来,必须在单片机外部增加地址锁存器,构成与一般CPU相类似的三总线结构。

   5.连线说明

(1)地址线

单片机扩展片外存储器时,地址线是由P0和P2口提供的。

图6.2中,2732的12条地址线(A0~A11)中,低8位A0~A7通过锁存器74LS373与P0口连接,高4位A8~A11直接与P2口的P2.0~P2.3连接,P2口本身有锁存功能。

注意,锁存器的锁存使能端G必须和单片机的ALE管脚相连。

(2)数据线

2732的8位数据线直接与单片机的P0口相连。

因此P0口是一个分时复用的地址/数据线。

(3)控制线

CPU执行2732中存放的程序指令时,取指阶段就是对2732进行读操作。

注意,CPU对EPROM只能进行读操作,不能进行写操作。

CPU对2732的读操作控制都是通过控制线实现的。

2732控制线的连接有以下几条:

直接接地。

由于系统中只扩展了一个程序存储器芯片,因此2732的片选端

直接接地,表示2732一直被选中。

若同时扩展多片,需通过译码器来完成片选工作;

接8031的读选通信号

端。

在访问片外程序存储器时,只要

端出现负脉冲,即可从2732中读出程序。

6.扩展程序存储器地址范围的确定

   单片机扩展存储器的关键是搞清楚扩展芯片的地址范围,8031最大可以扩展64K字节(0000H—FFFFH)。

决定存储器芯片地址范围的因素有两个:

一个是片选端

必须为低电平,另一个是芯片本身的地址线与单片机地址线的连接,单片机本身地址线的编码确定了芯片的容量。

   本例中,2732的片选端

总是接地,因此第一个条件总是满足的,另外,2732有12条地址线,与8031的低12位地址相连,编码结果如下:

8031       P2.7  P2.6     P2.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   P0.0

A15  A14  A13  A12 A11 A10 A9  A8  A7 A6 A5  A4 A3 A2 A1  A0

2732   

                       A11 A10 A9  A8  A7 A6 A5  A4 A3 A2 A1  A0

       0   x    x   x   x   0   0   0   0   0  0  0   0  0   0  0  0

       0   x    x   x   x   0   0   0   0   0  0  0   0  0   0  0  1

       0   x    x   x   x   0   0   0   0   0  0  0   0  0   0  1  0

       0   x    x   x   x   0   0   0   0   0  0  0   0  0   0  1  1

       ┆                      ┆  ┆  ┆  ┆  ┆ ┆ ┆  ┆ ┆  ┆ ┆ ┆

       0   x    x   x   x   1   1   1   1   1  1  1   1  1   1  1  1

其中的“x”表示跟2732无关的管脚,取0或1都可以,通常取0。

   由此可见,本例中扩展的2732的地址范围是0000H~0FFFH(无关的管脚取0,地址范围不是唯一的),共4K字节容量。

   实训电路中,系统扩展了一片EPROM2764,请读者对照上述6点理清连接方法,从而确定实训板中2764的地址范围。

7.EPROM的使用

   存储器扩展电路是单片机应用系统的功能扩展部分,只有当应用系统的软件设计完成了,才能把程序通过特定的编程工具(一般称为编程器或EPROM固化器)固化到2732中,然后再将2732插到用户板的插座上(扩展程序存储器一定要焊插座)。

当上电复位时,PC=0000H,自动从2732的0000H单元取指令,然后开始执行指令。

   如果程序需要反复调试,可以用紫外线擦除器先将2732中的内容擦除,然后再固化修改后的程序进行调试。

   如果要从EPROM中读出程序中定义的表格,使用查表指令:

       MOVC  A,@A+DPTR

       MOVC  A,@A+PC

6.1.3 EEPROM扩展实例

   电擦除可编程只读存储器EEPROM是一种可用电气方法在线擦除和再编程的只读存储器,它既有RAM可读可改写的特性,又具有非易失性存储器ROM在掉电后仍能保持所存储数据的优点。

因此EEPROM在单片机存储器扩展中,可以用作程序存储器,也可以用作数据存储器,至于具体做什么使用,由硬件电路确定。

   EEPROM作为程序存储器使用时,CPU读取EEPROM数据同读取一般EPROM操作相同;但EEPROM的写入时间较长,必须用软件或硬件来检测写入周期。

例6.2 在8031单片机上扩展2KBEEPROM。

1.选择芯片

   2816A和2817A均属于5V电擦除可编程只读存储器,其容量都是2K×8位。

2816A与2817A的不同之处在于:

2816A的写入时间为9—15ms,完全由软件延时控制,与硬件电路无关;2817A利用硬件引脚

来检测写操作是否完成。

在此我们选用2817A芯片来完成扩展2KBEEPROM,2817A的封装是DIP28,采用单一+5V供电,最大工作电流为150mA,维持电流为55mA,读出时间最大为250ns。

片内设有编程所需的高压脉冲产生电路,无需外加编程电源和写入脉冲即可工作。

2817A在写入一个字节的指令码或数据之前,自动地对所要写入的单元进行擦除,因而无需进行专门的字节/芯片擦除操作。

2817A的管脚如图6.4所示。

图6.42817A的管脚

其中A0—A10:

地址线;  I/O0—I/O7:

读写数据线;   

片选线

读允许线,低电平有效;

写允许线,低电平有效

   

低电平表示2817A正在写操作,处于忙状态,高电平表示写操作完毕。

   Vcc:

+5V电源; GND:

接地端

2817A的读操作与普通EPROM的读出相同,所不同的只是可以在线进行字节的写入。

2817A的写入过程如下:

CPU向2817A发出字节写入命令后,2817A便锁存地址、数据及控制信号,从而启动一次写操作。

2817A的写入时间大约为16ms左右,在此期间,2817A的RDY/BUSY脚呈低电平,表示2817A正在进行写操作,此时它的数据总线呈高阻状态,因而允许CPU在此期间执行其它的任务。

当一次字节写入操作完毕,2817A便将RDY/BUSY线置高,由此来通知CPU。

2.硬件电路图

   单片机扩展2817A的硬件电路图如图6.5所示。

图6.5单片机扩展2817AEEPROM电路

3.连线说明

(1)地址线

图6.5中,2817A的11条地址线(A0—A10,容量为2K×8位,211=2×1024=2K),低8位A0—A7通过锁存器74LS373与P0口连接,高3位A8—A10直接与P2口的P2.0—P2.2连接。

(2)数据线

2817A的8位数据线直接与单片机的P0口相连。

(3)控制线

单片机与2817A的控制线连接方法采用了将外部数据存储器空间和程序存储器空间合并的方法,使得2817A既可以作为程序存储器使用,又可以作为数据存储器使用。

单片机中用于控制存储器的管脚有以下3个:

——控制程序存储器的读操作,执行指令的取指阶段和执行MOVC A,@A+DPTR指令时有效;

——控制数据存储器的读操作,执行MOVX @DPTR,A和MOVX @Ri,A时有效;

——控制数据存储器的写操作,执行MOVX A,@DPTR和MOVX A,@Ri时有效。

在图6.5中,2817A控制线的连线方法如下:

直接接地。

由于系统中只扩展了一个程序存储器芯片,因此片选端

直接接地,表示2817A一直被选中。

8031的程序存储器读选通信号

和数据存储器读信号

经过“与”操作后与2817A的读允许信号相连。

这样,只要

中有一个有效,就可以对2817A进行读操作了。

也就是说,对2817A既可以看作程序存储器取指令,也可以看作数据存储器读出数据。

与8031的数据存储器写信号

相连,只要执行数据存储器写操作指令时,就可以往2817A中写入数据。

与8031的P1.0相连,采用查询方法对2817A的写操作进行管理。

在擦、写操作期间,

脚为低电平,当字节擦写完毕时,

为高电平。

其实,检测2817A写操作是否完成也可以用中断方式实现,方法是将2817A的

反相后与8031的中断输入脚

 /

相连。

当2817A每擦、写完一个字节便向单片机提出中断请求。

   图6.5中2817A的地址范围是0000H~07FFH(无关的管脚取0,该地址范围不是唯一的)。

4.2817A的使用

   按照图6.5连接好后,如果只是把2817A作为程序存储器使用,使用方法同EPROM相同。

EEPROM也可以通过编程器将程序固化进去。

   如果将2817A作为数据存储器,读操作同使用静态RAM一样,直接从给定的地址单元中读取数据即可。

向2817A中写数据采用MOVX @DPTR,A指令。

   6.1.4常用程序存储器芯片

   从上面两个实例,我们可以体会到扩展程序存储器的一般方法。

程序存储器与单片机的连线分为三类:

①数据线,通常有8位数据线,由P0口提供;②地址线,地址线的条数决定了程序存储器的容量。

低8位地址线由P0口提供,高8位由P2口提供,具体使用多少条地址线视扩展容量而定;③控制线,存储器的读允许信号

与单片机的取指信号

相连;存储器片选线

的接法决定了程序存储器的地址范围,当只采用一片程序存储器芯片时

可以直接接地,当采用多片时要使用译码器来选中

这里再简单介绍一些常用的EPROM扩展芯片以及目前市场上出现的一些新型存储器。

1.常用EPROM芯片

(1)EPROM2716

   2716是2K×8位的紫外线擦除电可编程只读存储器,单一+5V供电,运行时最大功耗为252mW,维持功耗为132mW,读出时间最大为450ns,封装形式为DIP24。

2716有地址线11条(A0~A10),数据线8条(O0~O7),

为片选线,低电平有效,

为数据输出允许信号,低电平有效,Vpp为编程电源,Vcc为工作电源。

(2)EPROM2764

   2764是8K×8位的EPROM,单一+5V供电,工作电流为75mA,维持电流为35mA,读出时间最大为250ns,DIP28封装。

2764A有13条地址线A0~A12,数据输出线O0~O7,

为片选线,

为数据输出允许线,PGM为编程脉冲输入端,Vpp为编程

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1