单片机系统扩展总线.docx

上传人:b****6 文档编号:13826596 上传时间:2023-06-17 格式:DOCX 页数:13 大小:376.01KB
下载 相关 举报
单片机系统扩展总线.docx_第1页
第1页 / 共13页
单片机系统扩展总线.docx_第2页
第2页 / 共13页
单片机系统扩展总线.docx_第3页
第3页 / 共13页
单片机系统扩展总线.docx_第4页
第4页 / 共13页
单片机系统扩展总线.docx_第5页
第5页 / 共13页
单片机系统扩展总线.docx_第6页
第6页 / 共13页
单片机系统扩展总线.docx_第7页
第7页 / 共13页
单片机系统扩展总线.docx_第8页
第8页 / 共13页
单片机系统扩展总线.docx_第9页
第9页 / 共13页
单片机系统扩展总线.docx_第10页
第10页 / 共13页
单片机系统扩展总线.docx_第11页
第11页 / 共13页
单片机系统扩展总线.docx_第12页
第12页 / 共13页
单片机系统扩展总线.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

单片机系统扩展总线.docx

《单片机系统扩展总线.docx》由会员分享,可在线阅读,更多相关《单片机系统扩展总线.docx(13页珍藏版)》请在冰点文库上搜索。

单片机系统扩展总线.docx

单片机系统扩展总线

6.4单片机系统扩展总线

1.MCS-51单片机扩展结构特点

扩展都是通过接口来扩展,需要注意I/O口的结构特点。

⑴I/O口的复用和多用

①I/O口的复用:

由于受到引脚数限制,P0口复用,既作低8位地址线,又作数据线,但分时使用,用ALE信号锁存切换。

②I/O口的多用:

P3口可作通用I/O口,在扩展时,具有“第二功能”。

P3.0RXDP3.2INT0P3.4T0P3.6WR

P3.1TXDP3.3INT1P3.5T1P3.7RD

⑵产生接口控制信号的指令

MCS-51无I/O专用指令,把I/O寄存器看成存储器的一部分,所以对I/O寄存器的操作都用数据传输指令。

①输入指令

MOVA,P1

MOV@Ri,P1MOVRn,P1MOVdirect,P1

MOVXA,@Ri

MOVXA,@DPTR

②输出指令

MOVP1,A

MOVP1,@RiMOVP1,RnMOVP1,direct

MOVX@Ri,A

MOVX@DPTR,A

2.扩展总线

由于数据线与低8位地址线复用P0口,为了把它们分离与片外芯片相连,通常要加锁存器才能构成总线结构。

6.5存储器扩展

1.EPROM扩展

(1)程序存储器有独立的地址空间(0000H~FFFFH),可寻址范围64kB。

程序存储器与数据存储器共用地址总线和数据总线

(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地址空间重叠(0000H~FFFFH),寻址范围都为64kB,但由于使用不同的控制信号和指令,RAM使用RD/WR控制线读/写,而EPROM用PSEN作为读操作控制线,故共用地址总线和数据总线不会发生冲突。

(2)I/O及外围接口与RAM实行统一编址,即任何扩展的I/O口及外设均占用RAM地址空间。

(3)访问内部RAM和外部RAM,应选用不同的指令。

①当访问内部RAM时,使用MOV指令,可用寄存器间接寻址或直接寻址

MOVA,@Ri/direct

MOV@Ri/direct,A(i=0,1)

②当访问外部RAM时,只能使用MOVX指令和寄存器间接寻址。

两种情况

·若访问外部RAM的首页,即前256字节,可用下述两条指令:

MOVXA,@Ri

MOVX@Ri,A(i=0,1)

·若访问整个64k外部RAM,则应用下述两条指令:

MOVXA,@DPTR

MOVX@DPTR,A

若当前DPTR数据指针另有它用,又需访问整个64k外部RAM,这时低8位地址仍用Ri(i=0或1)寄存器间接寻址,而高8位可采用预先通过P2口输出地址码的方法。

例如:

MOVP2,#02H;P2口预置高位字节地址02H

MOVR1,#25H;低8位地址25H送R1

MOVXA,@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)地址范围:

C000H~DFFFH

2764A

(2)地址范围:

A000H~BFFFH

2764A(3)地址范围:

6000H~7FFFH

由此可见,该扩展系统的3片2764A,占用了全部16根地址总线,但寻址的范围之和却只有24KB,且地址范围不连续。

实际上浪费了较大的地址空间。

因此线选法适用于系统中存储器和接口资源较少的情况。

⑵译码法

所谓译码法是指由低位地址线进行片内寻址,高位地址线经过译码器译码产生不同芯片的片选信号。

译码法又分为全译码和部分译码两种方式。

全译码方式是将所余的高位地址线全部参与译码,即作为译码器的输入线,译码器的输出作为片选线。

在全译码片选方式下,每个芯片的地址范围是唯一的,不存在地址重叠问题。

部分译码方式是取所余高位地址线中的部分线参与译码,译码器的输出作片选线。

这种方式下,由于未参与译码的高位地址线状态是不确定的,使得各芯片的地址不唯一,存在着地址重叠。

在译码法中,常用译码器有74LSL38和74LS139等。

74LS138是“3-8”译码器,有3个选择输入端,对应8种输入状态。

输出端有8个,每个输出端分别对应8种输入状态中的1种,低电平有效,即对应某一种输入状态,仅允许1个输出端为低电平,其余全为l。

另外还有3个片选控制引脚G1、G2A和G2B,只有当同时满足G1=1、G2A=0和G2B=0时,才能选通译码器,否则译码器无输出有效。

74LS139是双“2-4”译码器,每个译码器仅有1个片选端1/2G,低电平选通;有2个选择输入(A、B),4个译码输出(Y0~Y3),输出低电平有效。

这是采用74LS139译码器扩展3片2764A的电路原理图。

6.6并行接口扩展

在应用系统中,通常需要使用较多的键盘和LED数码管显示器,就需要扩展I/O口来实现。

MCS-51单片机有32根I/O线,如果P0~P2口已用于扩展,用户只能用P1和部分P3口作为I/O线,不够用就需要扩展I/O口。

按MCS-51的结构,扩展的I/O口采取与外部RAM统一编址方法,即两者合用64k地址空间。

因此,CPU可以像访问外部RAM那样访问外部I/O口,对I/O口进行输入/输出操作。

I/O口扩展芯片主要有通用可编程并行接口芯片和TTL、CMOS锁存器、缓冲器电路芯片两大类。

常用的可编程并行接口芯片有

①8255可编程并行接口:

含三个8位并行接口PA、PB和PC口。

②8155/56(CE/CE)可编程多功能接口:

含三个并行接口PA(8)、PB(8)和PC(6)口

256个字节SRAM和1个14位定时器/计数器

8155可编程并行I/O接口的扩展

1.8155的引脚及内部结构

8155芯片为40引脚双列直插封装,单一的+5V电源,其引脚及内部结构如图所示。

AD7~AD0:

三态地址/数复用总线。

与单片机的低8位地址/数据总线(P0口)相连。

IO/M:

I/O口或RAM选择信号。

当IO/M=1时,选择8155的I/O口,AD7~AD0上的地址为I/O口地址。

当IO/M=0时,则选择8155的片内RAM,AD7~AD0上的地址为8155中RAM单元地址(00H~FFH)。

CE:

片选信号,低电平有效。

ALE:

地址锁存信号。

8155内部设有地址锁存器,在ALE的下降沿将单片机P0口输出的低8位地址信息及CE,IO/M的状态都锁存到8155内部锁存器。

因此P0口输出的低8位地址信号不需要外接锁存器。

RD:

读选通信号,控制对8155的读操作。

WR:

写选通信号,控制对8155的写操作。

PA7~PA0:

8位通用I/O口,其输入输出的流向可由程序控制。

PB7~PB0:

8位通用I/O口,功能同A口。

PC5~PC0:

既可作6位通用I/O口,也可作为A口和B口的控制信号线,这些可通过程序控制。

RESET:

复位信号。

该端施加大于640ns的正脉冲时,将8155复位,复位后A口、B口、C口均置为输入方式。

TIMERIN:

定时/计数器脉冲输入端。

TIMEROUT:

定时/计数器输出端。

2.8155的地址编码及工作方式

8155内部有7个寄存器,6个寄存器地址。

当CE=0、IO/M=1时,CPU对I/O口进行读写,访问那个寄存器决定于低3位地址A2A1A0。

A2A1A0选中的寄存器地址

000命令(写入)/状态(读出)寄存器00H

001PA口01H

010PB口02H

011PC口03H

100定时器低8位04H

101定时器高8位05H

命令寄存器与状态寄存器共用一个地址,命令寄存器只能写入,状态寄存器只能读出。

⑴命令寄存器:

8位,只能写入

用MOVDPTR,#XXXXXXXXXXXXX000B

MOVA,#XXH

MOVX@DPTR,A

D3~D0规定工作方式

D5、D4分别规定PB口和PA口的中断

D7、D6用于控制计数器

8155的A口、B口可工作于基本I/O方式或选通I/O方式。

C口可工作于基本I/O方式,也可以作为A口、B口在选通工作方式时的状态控制信号线。

当C口作为状态控制信号时,其各位的作用如下:

 

PC0:

AINTR(A口中断请求线)

PC1:

ABF(A口缓冲器满信号)

PC2:

ASTB(A口选通信号)

PC3:

BINTR(B口中断请求线)

PC4:

BBF(B口缓冲器满信号)

PC5:

BSTB(B口选通信号)

在不同方式下,A口、B口及C口工作方式定义如下:

PC2PC1工作方式

00ALT1:

C口为输入,A口,B口为基本输入/输出。

11ALT2:

C口为输出,A口,B口为基本输入/输出。

01ALT3:

A口为选通输入/输出,

B口为基本输入/输出。

PC0为AINTR,PC1为ABF,PC2为ASTB,

PC3~PC5为输出。

10ALT4:

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位减法计数器,它对TIMERIN端输入脉冲进行减1计数,当计数结束(即减1计数“回0”)时,由TIMEROUT端输出方波或脉冲。

当TIMERIN接外部脉冲时,为计数方式;接系统时钟时,可作为定时方式。

定时器控制分两层:

①由写入命令寄存器的控制字高两位TM2和TM1决定启动、停止或装入常数。

②由写入计数器的两个寄存器内容决定计数长度和输出方式。

初值范围为0002H~3FFFH。

定时器/计数器由两个8位寄存器构成,其中的低14位组成计数器,剩下的两个高位(M2,M1)用于定义输出方式。

其格式如下:

地址:

05H地址:

04H

 

8155定时器有4种输出方式和波形可供选择

 

注意:

任何时候都可设置定时器的长度和工作方式,即使计数器已经计数,也允许装入新的长度和输出方式,当写入启动命令后即可改变定时器的工作方式。

硬件复位后只能停止计数,应注意重新发启动命令。

若写入定时器的计数值为奇数,方波输出是不对称的。

例如计数值为9,定时器输出的方波在前5个脉冲周期内为高电平,后4个脉冲周期内为低电平。

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

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2