单片机系统扩展总线.doc_第1页
单片机系统扩展总线.doc_第2页
单片机系统扩展总线.doc_第3页
单片机系统扩展总线.doc_第4页
单片机系统扩展总线.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

6.4 单片机系统扩展总线 1. MCS-51单片机扩展结构特点 扩展都是通过接口来扩展,需要注意I/O口的结构特点。 I/O口的复用和多用 I/O口的复用:由于受到引脚数限制,P0口复用,既作低8位地址线,又作数据线,但分时使用,用ALE信号锁存切换。 I/O口的多用:P3口可作通用I/O口,在扩展时,具有“第二功能”。 P3.0 RXD P3.2 INT0 P3.4 T0 P3.6 WR P3.1 TXD P3.3 INT1 P3.5 T1 P3.7 RD 产生接口控制信号的指令 MCS-51无I/O专用指令,把I/O寄存器看成存储器的一部分,所以对I/O寄存器的操作都用数据传输指令。 输入指令 MOV A,P1 MOV Ri,P1 MOV Rn,P1 MOV direct,P1 MOVX A,Ri MOVX A,DPTR 输出指令 MOV P1,A MOV P1,Ri MOV P1,Rn MOV P1,direct MOVX Ri,A MOVX DPTR,A 2. 扩展总线 由于数据线与低8位地址线复用P0口,为了把它们分离与片外芯片相连,通常要加锁存器才能构成总线结构。 6.5 存储器扩展 1. EPROM扩展 (1) 程序存储器有独立的地址空间(0000HFFFFH),可寻址范围64 kB。程序存储器与数据存储器共用地址总线和数据总线 (2) 对片内有 ROM/EPROM 的单片机,片内 ROM 与片外ROM采用相同的操作指令,片内与片外程序存储器的选择靠硬件结构实现,即由EA的高低电平来选择。 (3) 虽然程序存储器与数据存储器地址重叠,但不会发生冲突。因为程序存储器使用单独的控制信号和指令,用PSEN作为读操作信号,读取数据用MOVC查表指令。而读取数据存储器用RD信号和MOVX指令, (4) 随着大规模集成电路的发展,单片程序存储器的容量越来越大,构成系统时所使用的EPROM芯片数量越来越少,因此地址选择大多采用线选法,而不用地址译码法。 2. RAM扩展 MCS-51 系列单片机的片内RAM只有 128字节(51型)或256字节 (52型) ,如果还不能满足应用要求,就需要进行RAM扩展,扩展时要注意以下几点: (1) RAM与EPROM地址空间重叠(0000HFFFFH),寻址范围都为64 kB,但由于使用不同的控制信号和指令,RAM使用RD/WR控制线读/写,而 EPROM用PSEN作为读操作控制线,故共用地址总线和数据总线不会发生冲突。 (2) IO及外围接口与RAM实行统一编址,即任何扩展的IO口及外设均占用RAM地址空间。 (3) 访问内部RAM和外部RAM,应选用不同的指令。 当访问内部RAM时,使用MOV指令,可用寄存器间接寻址或直接寻址 MOV A,Ri/direct MOV Ri/direct,A ( i0,1) 当访问外部RAM时,只能使用MOVX指令和寄存器间接寻址。两种情况 若访问外部RAM的首页,即前256字节,可用下述两条指令: MOVX A,Ri MOVX Ri,A ( i0,1) 若访问整个64 k外部RAM ,则应用下述两条指令: MOVX A,DPTR MOVX DPTR,A 若当前DPTR数据指针另有它用,又需访问整个64 k外部RAM,这时低8位地址仍用Ri ( i0或1)寄存器间接寻址,而高8位可采用预先通过P2口输出地址码的方法。例如: MOV P2,#02H ;P2口预置高位字节地址02H MOV R1,#25H ;低8位地址25H送R1 MOVX A,R1 ;将0255H内容送A或 MOVX R1,A ;将A内容送0255H单元 3. 片选方法及其地址空间 在一个较复杂的应用系统中,有时需扩展多片存储器。多片扩展时,各片的数据线、地址线和控制线都并行挂接在系统三总线上,但每片的片选信号CE要分别处理。 产生片选控制信号的方法有两种,即线选法和译码法。 (1) 线选法 所谓线选法,即用所需的低位地址线进行片内存储单元寻址,余下的高位地址线可分别作不同芯片的片选信号,当某芯片对应的片选地址线输出有效电平时,该芯片被选中,作选通操作。 下图为采用线选法扩展3片 2764A 的电路原理图。 从图可知,扩展3片2764A除CE片选信号外,其余完全同8031扩展一片2764A的电路设计。图中三片2764A的三个片选端CE分别与8031的高位地址线P2.5、P2.6和P2.7相连。当A13、Al4、A15分别为低电平时,选中对应的2764A芯片。因此三片存储器各片的地址范围是: 2764A(1)地址范围:C000HDFFFH 2764A(2)地址范围:A000HBFFFH 2764A(3)地址范围:6000H 7FFFH 由此可见,该扩展系统的3片2764A,占用了全部16根地址总线,但寻址的范围之和却只有24 KB,且地址范围不连续。实际上浪费了较大的地址空间。因此线选法适用于系统中存储器和接口资源较少的情况。 译码法 所谓译码法是指由低位地址线进行片内寻址,高位地址线经过译码器译码产生不同芯片的片选信号。译码法又分为全译码和部分译码两种方式。 全译码方式是将所余的高位地址线全部参与译码,即作为译码器的输入线,译码器的输出作为片选线。在全译码片选方式下,每个芯片的地址范围是唯一的,不存在地址重叠问题。 部分译码方式是取所余高位地址线中的部分线参与译码,译码器的输出作片选线。这种方式下,由于未参与译码的高位地址线状态是不确定的,使得各芯片的地址不唯一,存在着地址重叠。 在译码法中,常用译码器有74LSL38和74LS139等 。 74LS138是“3-8”译码器,有3个选择输入端,对应8种输入状态。输出端有8个,每个输出端分别对应8种输入状态中的1种,低电平有效,即对应某一种输入状态,仅允许1个输出端为低电平,其余全为 l 。另外还有3个片选控制引脚 G1、G2A 和 G2B,只有当同时满足G11、G2A0和 G2B0时,才能选通译码器,否则译码器无输出有效。 74LS139是双“2-4”译码器,每个译码器仅有1个片选端1/2G ,低电平选通;有2个选择输入(A、B),4个译码输出(Y0Y3 ),输出低电平有效。 这是采用74LS139译码器扩展3片2764A的电路原理图。 6.6 并行接口扩展 在应用系统中,通常需要使用较多的键盘和LED数码管显示器,就需要扩展IO口来实现 。 MCS-51单片机有32根I/O线,如果P0P2口已用于扩展,用户只能用P1和部分P3口作为I/O线,不够用就需要扩展I/O口。 按 MCS-51 的结构,扩展的 IO 口采取与外部 RAM统一编址方法,即两者合用64 k地址空间。因此,CPU可以像访问外部RAM那样访问外部IO口,对IO口进行输入输出操作。 IO口扩展芯片主要有通用可编程并行接口芯片和TTL、CMOS锁存器、缓冲器电路芯片两大类。 常用的可编程并行接口芯片有 8255 可编程并行接口: 含三个8位并行接口PA、PB和PC口。 8155/56 (CE/CE) 可编程多功能接口: 含三个并行接口PA(8)、PB(8)和PC(6)口 256个字节SRAM和1个14位定时器/计数器 8155可编程并行IO接口的扩展 18155的引脚及内部结构 8155芯片为40引脚双列直插封装,单一的+5V电源,其引脚及内部结构如图所示。 AD7AD0:三态地址/数复用总线。与单片机的低8位地址/数据总线(P0口)相连。 IOM:IO口或RAM选择信号。当IOM1时,选择8155的IO口,AD7AD0上的地址为IO口地址。当IOM0时,则选择8155的片内RAM,AD7AD0上的地址为8155中RAM单元地址 (00HFFH)。 CE:片选信号,低电平有效。 ALE:地址锁存信号。8155内部设有地址锁存器,在ALE的下降沿将单片机P0口输出的低8位地址信息及CE,IOM的状态都锁存到8155内部锁存器。因此P0口输出的低8位地址信号不需要外接锁存器。 RD:读选通信号,控制对8155的读操作。 WR:写选通信号,控制对8155的写操作。 PA 7PA0:8位通用IO口,其输入输出的流向可由程序控制。 PB7PB0:8位通用IO口,功能同A口。 PC5PC0:既可作6位通用IO口,也可作为A口和B口的控制信号线,这些可通过程序控制。 RESET:复位信号。该端施加大于640 n s的正脉冲时,将8155复位,复位后A口、B口、C口均置为输入方式。 TIMER IN:定时计数器脉冲输入端。 TIMER OUT:定时计数器输出端。 2. 8155的地址编码及工作方式 8155内部有7个寄存器,6个寄存器地址。 当CE=0、IO/M=1时,CPU对I/O口进行读写,访问那个寄存器决定于低3位地址A2 A1 A0。 A2 A1 A0 选中的寄存器 地址 0 0 0 命令(写入)/状态(读出)寄存器 00H 0 0 1 PA口 01H 0 1 0 PB口 02H 0 1 1 PC口 03H 1 0 0 定时器低8位 04H 1 0 1 定时器高8位 05H 命令寄存器与状态寄存器共用一个地址,命令寄存器只能写入,状态寄存器只能读出。 命令寄存器:8位,只能写入 用 MOVDPTR, #XXXXXXXXXXXXX000B MOVA, #XXH MOVXDPTR,A D3D0 规定工作方式 D5、D4 分别规定PB口和PA口的中断 D7、D6 用于控制计数器 8155的A口、B口可工作于基本IO方式或选通IO方式。C口可工作于基本IO方式,也可以作为A口、B口在选通工作方式时的状态控制信号线。当C口作为状态控制信号时,其各位的作用如下: PC0:AINTR (A口中断请求线) PC1:ABF (A口缓冲器满信号) PC2:ASTB (A口选通信号) PC3:BINTR (B口中断请求线) PC4:BBF (B口缓冲器满信号) PC5:BSTB (B口选通信号) 在不同方式下,A口、B口及C口工作方式定义如下:PC2 PC1 工作方式 0 0 ALT1:C口为输入,A口,B口为基本输入/输出。 1 1 ALT2:C口为输出,A口,B口为基本输入/输出。 0 1 ALT3:A口为选通输入/输出, B口为基本输入/输出。 PC0为AINTR,PC1为ABF,PC2为ASTB, PC3PC5为输出。 1 0 ALT4: A口、B口为选通输入/输出。 PC0为AINTR,PC1为ABF,PC2为ASTB, PC3为BINTR,PC4为BBF,PC5为BSTB。 状态寄存器:7位,只能读出 8155内的状态寄存器,用于锁存输入/输出口和定时/计数器的当前状态,供CPU查询用。状态寄存器端口地址与命令寄存器相同,低8位也是00H,状态寄存器的内容只能读出不能写入。 用MOVDPTR,#XXXXXXXXXXXXX000B MOVXA,DPTR 状态寄存器的格式如下图所示。 8155的定时器/计数器 8155内部的定时器/计数器是一个14位减法计数器,它对TIMER IN端输入脉冲进行减1计数,当计数结束 (即减1计数“回0”) 时,由TIMER OUT端输出方波或脉冲。 当TIMER IN接外部脉冲时,为计数方式;接系统时钟时,可作为定时方式。 定时器控制分两层: 由写入命令寄存器的控制字高两位TM2和TM1决定启动、停止或装入常数。 由写入计数器的两个寄存器内容决定计数长度和输出方式。初值范围为0002H3FFFH。 定时器/计数器

温馨提示

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

评论

0/150

提交评论