通过软件操作来实现单片机的地址重叠
扫描二维码
随时随地手机看文章
在80C31为控制核心的数据采集系统中,往往需要较大的外部RAM来存放数据。大家知道80C31是8位CPU,地址总线宽度为16位,其外部RAM,ROM可直接寻址范围各为64k字节(0000H——FFFFH)。在80C31的工作过程中,ROM和外部RAM的地址是重叠使用的,但使用不同的控制信号和指令,而扩展I/O口和外部RAM是统一编址的,它占用外部RAM的地址单元,并且使用外部RAM相同的读写控制信号和读/写指令。
在数据采集系统中,往往需要大容量的外部RAM,显示器、A/D转换、打印机等外部设备也必须进行I/O扩展。笔者在设计智能型声级计的过程中,要求80C31扩展外部RAM为64kB字节,扩展I/O口采用82C55芯片,连接字符型LCD、键盘、A/D转换输入和打印机。并采用了软件逻辑开关,实现了64k字节的外部RAM和扩展I/O口的地址重叠使用,充分利用80C31直接寻址的数据存储空间。电路如下图所示。
80C31扩展一片程序存储器(EPROM)27C64。80C31的P0口经地址锁存器74HC373提供低8位地址线,80C31的P2.0—P2.4为高5位地址线,共13根地址线(213=8k)。数据读取由80C31的PSEN控制,使用MOVC指令,由于只扩展一片EPROM,所以27C64的片选端CE接地。
80C31扩展2片数据存储器62256。62256是32kx8位静态随机存储器显片,采用CMOS工艺制作,由单一电源+5V供电,它有15根地址线(215=32k),其中低8位地址由80C31的P0口经地址锁存器74HC373提供。80C31的P2口的P2.0—P2.6地址线供应高7位地址,P2.7线不经反相器和经反相器分别连接到62256(1)和62256(2)的片选端CE1上。当P2.7=0时,62256(1)被选通,地址为0000H—7FFFH,这时P2.7为0,经反相器使62256(2)的片选端CE1为高电平,62256(2)被禁止。当P2.7=1,62256(1)的片选端CE1为高电平,62256(1)被禁止,经74HC04反相,62256(2)的片选CE1为低电平,62256(2)被选通,地址为8000H—FFFFH,80C31扩展外部RAM为64k字节(32KX2)。
为了满足智能声级计的工作要求,还需扩展I/O口来连接A/D转换输入、键盘、显示器和打印机。笔者采用了82C55芯片在可编程并行I/O口,其A口接MC14433双积分A/D转换芯片的并行输出,编程为输入方式,B口接打印机编程为输出方式,C口接键盘P6.0—P6.3编程为输入方式,作键盘输入线。P6.4—P6.7编程为输出方式,作扫描输出线。显示器采用DMC16230字符型LCD,其总线接80C31P0口数据总线,82C55的口地址选通端A0,A1(通过A0、A1的编程可分别选择A口、B口、C口和控制口的寄存器)和LCD的RS端(低电平选择指令寄存,高电平选择数据寄存器)及R/W端(读写选择)分别接到地址总线的低位地址线A0、A1,80C31的P1.0线,地址总线的A2线和62256的OE端(读控制端)、WE端(写控制端),8255的片选端CS及LCD的片选端E接软件逻辑开关。
软件逻辑开关由逻辑元件组成,由软件来控制,其工作原理是这样的,当程序设置80C31的P1.0=1时,接一个或门到82C55的片选端CS。CS=1,82C55被禁止(低电平选通)。P1.0口的信号经两个反相器和一个与非门接LCD的片选端E。使片选端E=0,LCD也被禁止(高电平选通)。P1.0=1的信号经反相器为低电平,再经两个或门接62256的OE、WE端。这样80C31的RD和WR的信号经两个或门就能分别控制62256的OE、WE端,正常地进行读写操作,所以P1.0=1时禁止。82C55,LCD仅对62256进行操作,而P1.0=0时,信号经反相器为高电平,通过两个或门分别使62256的OE、WE电平为高电平,从而禁止了80C31的RD和WE端对62256的读写操作(低位有效),P1.0=0的信号对82C55或LCD的选择还要看地址总线中A2的电平状态。当A2=1时,信号经过反相器为低电平和P1.0时的信号,再经过或门输到82C55的CS 端为低电平,82C55被选通。这时A2=1和P1.0=0的信号经反相器和与非门输到LCD的E端为低电平,LCD被禁止。82C55的口地址为FFFCH—FFFFH。当A2=0时,A2=0和P1.0=0的信号通过反相器和或门输到82C55的CS端为高电平,82C55被禁止,这时,A2=0和P1.0=0的信号经过反相和与非门输到LCD的E端为高电平,LCD被选通,其地址为FFF8H—FFFFBH。通过以上的电路分析(逻辑关系如表1所示)可以清楚地看到,通过软件逻辑开关用软件操作对80C31的P1.0和地址线A2的选择,有效地分别选通62256、82C55、或LCD,实现了它们之间的地址重叠使用,达到了80C31扩展全部外部RAM直接寻址范围的目的。
逻辑关系 | ||||
器件型号 | P1.0=1 | P1.0=0 | 地址 | |
A2=0 | A2=1 | |||
62256 | 选通 | 禁止 | 禁止 | 0000H—FFFFFH |
LCD | 禁止 | 选通 | 禁止 | FFF8H—FFFFBH |
LCD | 禁止 | 禁止 | 选通 | FFFCH—FFFFFH |