为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

单片机系统扩展总线

2017-10-31 15页 doc 235KB 21阅读

用户头像

is_650122

暂无简介

举报
单片机系统扩展总线单片机系统扩展总线 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...
单片机系统扩展总线
单片机系统扩展总线 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口,为了把它们分离与片外芯片相连,通 常要加锁存器才能构成总线结构。 1. EPROM扩展 (1) 程序存储器有独立的地址空间(0000H~FFFFH),可寻址范围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地址空间重叠(0000H~FFFFH),寻址范围都为64 kB,但由于使用不同的控制信号和指令,RAM使用RD/WR控制线读/写,而 EPROM用PSEN作为读操作控制线,故共用地址 总线和数据总线不会发生冲突。 (2) I/O及外围接口与RAM实行统一编址,即任何扩展的I/O口及外设均占用RAM地址空间。 (3) 访问内部RAM和外部RAM,应选用不同的指令。 ? 当访问内部RAM时,使用MOV指令,可用寄存器间接寻址 或直接寻址 MOV A,@Ri/direct MOV @Ri/direct,A ( i=0,1) ? 当访问外部RAM时,只能使用MOVX指令和寄存器间接寻 址。两种情况 ?若访问外部RAM的首页,即前256字节,可用下述两条指令: MOVX A,@Ri MOVX @Ri,A ( i=0,1) ?若访问整个64 k外部RAM ,则应用下述两条指令: MOVX A,@DPTR MOVX @DPTR,A 若当前DPTR数据指针另有它用,又需访问整个64 k外部RAM,这时低8位地址仍用Ri ( i=0或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)地址范围:C000H~DFFFH 2764A(2)地址范围:A000H~BFFFH 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,只有当同时满足G1=1、G2A=0和 G2B=0时,才能选通译码器,否则译码器 无输出有效。 74LS139是双“2-4”译码器,每个译码器仅有1个片选端1/2G ,低电平选通;有2个选择输入(A、B),4个译码输出(Y0~Y3 ),输出低电平有效。 这是采用74LS139译码器扩展3片2764A的电路原理图。 在应用系统中,通常需要使用较多的键盘和LED数码管显示器,就需要扩展I/O口来实现 。 MCS-51单片机有32根I/O线,如果P0~P2口已用于扩展,用户只能用P1和部分P3口作为I/O线,不够用就需要扩展I/O口。 按 MCS-51 的结构,扩展的 I/O 口采取与外部 RAM统一编址方法,即两者合用64 k地址空间。因此,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位定时器/计数器 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的写操作。 PA 7~PA0:8位通用I/O口,其输入输出的流向可由程序控制。 PB7~PB0:8位通用I/O口,功能同A口。 PC5~PC0:既可作6位通用I/O口,也可作为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位,只能写入 用 MOV DPTR, #XXXXXXXXXXXXX000B MOV A, #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口工作方式定义如下: 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, PC3~PC5为输出。 1 0 ALT4: A口、B口为选通输入/输出。 PC0为AINTR,PC1为ABF,PC2为ASTB, PC3为BINTR,PC4为BBF,PC5为BSTB。 ? 状态寄存器:7位,只能读出 8155内的状态寄存器,用于锁存输入/输出口和定时/计数器的当前状态,供CPU查询用。状态寄存器端口地址与命令寄存器相同, 低8位也是00H,状态寄存器的内容只能读出不能写入。 用MOV DPTR,#XXXXXXXXXXXXX000B MOVX A,@DPTR 状态寄存器的格式如下图所示。 ? 8155的定时器/计数器 8155内部的定时器/计数器是一个14位减法计数器,它对TIMER IN端输入脉冲进行减1计数,当计数结束 (即减1计数“回0”) 时,由TIMER OUT端输出方波或脉冲。 当TIMER IN接外部脉冲时,为计数方式;接系统时钟时,可作 为定时方式。 定时器控制分两层: ? 由写入命令寄存器的控制字高两位TM2和TM1决定启动、停止或装入常数。 ? 由写入计数器的两个寄存器内容决定计数长度和输出方式。 初值范围为0002H~3FFFH。 定时器/计数器由两个8位寄存器构成,其中的低14位组成计数器,剩下的两个高位(M2,M1)用于定义输出方式。其格式如下: 地址:05H 地址:04H 8155定时器有4种输出方式和波形可供选择 注意: 任何时候都可设置定时器的长度和工作方式,即使计数器已经计 数,也允许装入新的长度和输出方式,当写入启动命令后即可改变定 时器的工作方式。硬件复位后只能停止计数,应注意重新发启动命令。 若写入定时器的计数值为奇数,方波输出是不对称的。例如计数 值为 9,定时器输出的方波在前5个脉冲周期内为高电平,后4个脉冲周期内为低电平。 ? 8031与8155的接口 ? 8031与8155连接方法 8 0 3 1 单片机可以直接与8155连接使用,不需附加其它逻辑电 路,即可使系统增加 256 字节的 RAM、22 位I/O口线及一个定时 器/计数器,连接方法如图所示。 ? RAM字节地址 (P2.3=0,P2.7=0): 7700H~77FFH ? 输入/输出口地址 (P2.3=1, P2.7=0) 命令/状态口: 7F00H A口: 7F0lH B口: 7F02H C口: 7F03H 定时器低8位: 7F04H 定时器高6位: 7F05H 3. 编程举例 [例1] 读8155RAM中40H单元的内容。 MOV DPTR,#7740H ;指向8155 RAM 40H单元 MOVX A,@DPTR ;读出数送A中 [例2] 把立即数12H送人8155 RAM的F0H单元中。 MOV A,#12H ;12H立即数送入A MOV DPTR,#77F0H ;指向8155RAM F0H单元 MOVX @DPTR,A ;送入81 55 RAM的F0H [例2] 程序又可编成: MOV A,#12H ;数12H送人A MOV R0,#0F0H :指向8155RAM F0H单元 ANL P2,#77H ;P2.7、P2.3置零,片选和选中RAM MOVX @R0,A ;A中内容送入F0H单元 [例3] 使用8155作I/O口和定时器,设A口、C口定义为基本输入 方式,B口定义为基本输出方式,定时器作为方波发生器,对输入脉 冲进行12分频。则相应的初始化程序如下: MOV DPTR,#7F04H ;指向定时器低8位 MOV A,#0CH ;计数长度0CH=12 MOVX @DPTR,A ;计数长度低8位装入 INC DPTR ;指向定时器高8位 MOV A,#40H ;定时器的输出方式为连续方波 MOVX @DPTR,A ;定时器高8位装入 MOV DPTR,#7F00H ;指向命令寄存器 MOV A,#0C2H ;设定A口、C口为基本输入, MOVX @DPTR,A ; B口为基本输出,启动定时器
/
本文档为【单片机系统扩展总线】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索