8031单片机各种系统扩展

  • 格式:doc
  • 大小:325.50 KB
  • 文档页数:51

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

单片机的系统扩展主要有程序存储器(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口的亮灭状态。

ORG 0000HMOV DPTR,#1000H ;指向片外RAM的首地址MOV A,#0FEH ;设置第一个要送入的数据MOV R1,#08H ;设循环次数WRITE: MOVX @DPTR,A ;向RAM中写入数据INC DPTR ;片外RAM地址加1CLR CYRL A ;更新数据DJNZ R1,WRITE ;8次未送完,继续写入,否则顺序执行下一条指令MOV R1,#08H ;再次设置循环次数START: MOV DPTR,#1000H ;指向第一个数据单元1000HREAD: MOVX A,@DPTR ;读出数据到A累加器MOV P1,A ;送P1口点亮发光二极管LCALL DELAY ;延时一段时间INC DPTR ;更新地址DJNZ R1,READ ;连续读出8个数据,送P1口显示SJMP START ;8个数据读完,继续从第一个数据单元开始。

延时子程序参见第4章。

参考程序2:对8155初始化,使I/O口控制LED的显示情况。

ORG 0000HMOV DPTR,#4400H ;指向8155命令寄存器MOV A,#03HMOVX @DPTR,A ;写入控制字。

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

INC DPTR ;指向8155A口MOV A,#00HMOVX @DPTR,A ;向A口写入00H,输出选中所有8个LED。

INC DPTR ;指向8155B口MOV A,#OFFHMOVX @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完成,读操作由MOVX A,@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系列单片机片内程序存储器一览表对于没有内部ROM的单片机或者程序较长、片内ROM容量不够时,用户必须在单片机外部扩展程序存储器。

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

这里要注意的是,MCS-51单片机有一个管脚EA跟程序存储器的扩展有关。

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

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

8031单片机没有片内程序存储器,因此EA管脚总是接低电平。

扩展程序存储器常用芯片有EPROM(Erasable Programmable Read Only Memory)型(紫外线可擦除型),如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的EPROM 2732,而不选用2片2716(2KB)。

在单片机应用系统硬件设计中应注意,尽量减少芯片使用个数,使得电路结构简单,提高可靠性,这也是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 2732的容量为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 EPROM 2732管脚及说明其中 A0~A11:地址线O0~O7:数据线CE:片选线OE/V:输出允许/编程高压PP除了12条地址线和8条数据线之外,CE为片选线,低电平有效,也就为双是说,只有当CE为低电平时,2732才被选中,否则,2732不工作。

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

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

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

5. 连线说明(1)地址线单片机扩展片外存储器时,地址线是由P0和P2口提供的。