历史上的今天
今天是:2025年03月21日(星期五)
2018年03月21日 | 在8031单片机上扩展4KB EPROM程序存储器
2018-03-21 来源:eefocus
扩展程序存储器常用的芯片是EPROM(Erasable Programmable Read Only Memory)型(紫外线可擦除型), 如2716(2K×8)、2732(4K×8)、2764(8K×8)、27128(16K×8)、27256(32K×8)、27512(64K×8)等。另外,还有+5 V电可擦除EEPROM,如2816(2K×8)、2864(8K×8)等等。
紫外线擦除电可编程只读存储器EPROM是国内用得较多的程序存储器。EPROM芯片上有一个玻璃窗口,在紫外线照射下,存储器中的各位信息均变1,即处于擦除状态。擦除干净的EPROM可以通过编程器将应用程序固化到芯片中。
如果程序总量不超过4 KB,一般选用具有内部ROM的单片机。8051内部ROM只能由厂家将程序一次性固化,不适合小批量用户和程序调试时使用,因此选用8751、8951的用户较多。如果程序超过4 KB,用户一般不会选用8751、8951,而是直接选用8031,利用外部扩展存储器来存放程序。
实例:在8031单片机上扩展4 KB EPROM程序存储器。
选择芯片
本例要求选用8031单片机,内部无ROM区,无论程序长短都必须扩展程序存储器(目前较少这样使用,但扩展方法比较典型、实用)。
在选择程序存储器芯片时,首先必须满足程序容量,其次在价格合理情况下尽量选用容量大的芯片。这样做的话,使用的芯片少,从而接线简单,芯片存储容量大,程序调整余量也大。如估计程序总长3 KB左右,最好是扩展一片4 KB的EPROM 2732,而不是选用2片2716(2 KB)。在单片机应用系统硬件设计中应注意,尽量减少芯片使用个数,使得电路结构简单,提高可靠性,这也是8951比8031使用更加广泛的原因之一。
硬件电路图
8031单片机扩展一片2732程序存储器电路如图所示。

芯片说明

①74LS373。74LS373是带三态缓冲输出的8D锁存器,由于片机的三总线结构中,数据线与地址线的低8位共用P0口,因此必须用地址锁存器将地址信号和数据信号区分开。74LS373的锁存控制端G直接与单片机的锁存控制信号ALE相连,在ALE的下降沿锁存低8位地址。
②EPROM 2732。EPROM 2732的容量为4 K×8位。4 K表示有4×1024(22×210=212)个存储单元,8位表示每个单元存储数据的宽度是8位。前者确定了地址线的位数是12位(A0~A11),后者确定了数据线的位数是8位(O0~O7)。目前,除了串行存储器之外,一般情况下,我们使用的都是8位数据存储器。2732采用单一+5 V供电,最大静态工作电流为100 mA,维持电流为35 mA,读出时间最大为250 ns。2732的封装形式为DIP24,管脚如图所示。
其中,A0~A11为地址线;O0~O7为数据线; 为片选线;OE/VPP为输出允许/编程高压。 除了12条地址线和8条数据线之外,CE为片选线,低电平有效。也就是说,只有当CE为低电平时,2732才被选中,否则,2732不工作。OE/VPP为双功能管脚,当2732用作程序存储器时,其功能是允许读数据出来;当对EPROM编程(也称为固化程序)时,该管脚用于高电压输入,不同生产厂家的芯片编程电压也有所不同。当我们把它作为程序存储器使用时,不必关心其编程电压。
连线说明:
① 地址线。单片机扩展片外存储器时,地址是由P0和P2口提供的。图6.2中,2732的12条地址线(A0~A11)中,低8位A0~A7通过锁存器74LS373与P0口连接,高4位A8~A11直接与P2口的P2.0~P2.3连接,P2口本身有锁存功能。注意,锁存器的锁存使能端G必须和单片机的ALE管脚相连。
② 数据线。2732的8位数据线直接与单片机的P0口相连。因此,P0口是一个分时复用的地址/数据线。
③ 控制线。CPU执行2732中存放的程序指令时,取指阶段就是对2732进行读操作。注意,CPU对EPROM只能进行读操作,不能进行写操作。CPU对2732的读操作控制都是通过控制线实现的。2732控制线的连接有以下几条:
CE :直接接地。由于系统中只扩展了一个程序存储器芯片,因此,2732的片选端直接接地,表示2732一直被选中。若同时扩展多片,需通过译码器来完成片选工作。
OE :接8031的读选通信号端。在访问片外程序存储器时,只要端出现负脉冲,即可从2732中读出程序。
扩展程序存储器地址范围的确定
单片机扩展存储器的关键是搞清楚扩展芯片的地址范围,8031最大可以扩展64 KB(0000H~FFFFH)。决定存储器芯片地址范围的因素有两个:一个是片选端的连接方法,一个是存储器芯片的地址线与单片机地址线的连接。在确定地址范围时,必须保证片选端为低电平。
本例中,2732的地址范围为0000H~0FFFH:
EPROM的使用
存储器扩展电路是单片机应用系统的功能扩展部分,只有当应用系统的软件设计完成了,才能把程序通过特定的编程工具(一般称为编程器或EPROM固化器)固化到2732中,然后再将2732插到用户板的插座上(扩展程序存储器一定要焊插座)。
史海拾趣
|
大家继电器一定要并二极管啊,前几天我用单片机电路驱动数码管,数码管封装在一个小壳子里作为一个显示表装在我们台体上,台体上当然还有其他的一些按钮指示灯之类的,我就发现每当我按下其中的那么几个按钮时,数码管的显示总是会出现错乱,不能正 ...… 查看全部问答> |
|
通过单片机上某个引脚端口配置无线芯片的寄存器,一般都是通过什么手段?觉得C语言来做好像有点困难,无法位寻址,位段? 一般是不是这部分都是用汇编嵌入来实现的?有过类似经验的朋友请指教… 查看全部问答> |
|
承接嵌入式linux,ce,wm下的WIFI驱动,BSP开发相关工作 拥有各种硬件平台(S3C2410,S3C2440,S3C6410,EP9315,BF536,BF533,AU1200,MX21,MX31,PXA270,PXA310,Omap750,Omap850等)的linux,wince,windows mobile6的bsp移植经验,及各种外设驱动(wifi marvell8686,8688,蓝牙,gps 快速定位,agps,gprs mc75 ...… 查看全部问答> |
|
我用C#做一个简单的Web service,service单独测试已正常, 然后在ppc上调试的,调用时候提示未能建立连接, 这是什么问题呢? [WebMethod]   ...… 查看全部问答> |
|
各位大哥大姐请问一个问题. 用VS2003写的一个程序如下: private void datebind() {   ...… 查看全部问答> |
|
嘿嘿,ST是否要准备推出基于Cortex-M3的STM32Fxxx系列了? 在keil ARM最新的Version 3.10 (PRC)版本中,已经在ST一栏的器件中加入了STM32Fxxx系列的器件了,其描述如下:STM32F101C6:ARM 32-bit Cortex-M3 Microcontroller, 36MHz, 32kB Flash, 6k ...… 查看全部问答> |




