520 likes | 745 Vues
第7章 单片机系统扩展及接口技术. 通过地址总线、数据总线和控制总线实现 ROM、RAM 或其它接口电路的扩展( MOVX 指令的运用)。. 7.1 扩展三总线的产生. 1 地址总线 ----用于传送单片机送出的地址信号 P0 口为 低8位地址 总线,使用一个8位的数据锁存器来锁定低8位地址信号; P2 口为 高8位地址 总线。 2 数据总线 -----用于单片机与存储器之间或单片机和 I/O 之间数据传送 P0 口做为 低8位地址 和 数据 复用总线。. 片外三总线结构. 3 控制总线
E N D
第7章 单片机系统扩展及接口技术 通过地址总线、数据总线和控制总线实现ROM、RAM或其它接口电路的扩展( MOVX指令的运用)。
1 地址总线 ----用于传送单片机送出的地址信号 P0口为低8位地址总线,使用一个8位的数据锁存器来锁定低8位地址信号; P2口为高8位地址总线。 2 数据总线 -----用于单片机与存储器之间或单片机和I/O之间数据传送 P0口做为低8位地址和数据复用总线。 片外三总线结构
3 控制总线 -----单片机发出的用于控制片外RAM,ROM和I/O口读/写操作的一组控制线。 (1)使用ALE作地址锁存的选通信号,以实现低8位地址锁存。 (2)以PSEN信号作为扩展程序存储器的读选通信号。 (3)以EA信号作为内外存储器的选择信号。 (4)以RD和WR作为扩展RAM和I/O的读写选通信号。
/L:三态控制。 低电平:允许数据输出,三态门通; 高电平:三态门关闭,输出高阻。 G:数据锁存控制。 高电平时,输出随输入变化; 低电平时,Q端将被锁存(低电平锁存)。 D7 Q7 74LS373 D0 Q0 G /L 数据 输出端 数据 输入端 具有三态功能的8D锁存器
7.2.1 访问片外程序存储器的操作时序 1、 访问片外程序存储器的控制信号 (1)使用ALE作地址锁存的选通信号,以实现低8位地址锁存 (2)以PSEN信号作为扩展程序存储器的读选通信号,接OE端 (3)以EA信号作为内外存储器的选择信号 2 、操作时序 7.2 扩展程序存储器
S1 S2 S3 S4 S5 S6 MOVC A,@A+DPTR 74LS373地址锁存信号 ALE 存储器数据输出控制 /Psen 地址总线(高8位) P2口 A15-A8(PC) A15-A8 (DPTR+A) 地址数据总线(低8位)P0 口 A7-A0 OP A7-A0 常数 A B 访问外部程序存储器ROM的时序:
P0、P2口作地址和数据总线。其中P0口作为地址和数据复用总线,前半部(A段)作地址总线,后半部(B段)作为数据总线。P0、P2口作地址和数据总线。其中P0口作为地址和数据复用总线,前半部(A段)作地址总线,后半部(B段)作为数据总线。 外部程序存储器ROM的操作步骤如下: 1、必须为ROM提供完整的(16位)地址信息; 2、ROM芯片的/CE 端=0,选中该芯片; 3、在满足上述条件的基础上,当ROM的/OE=0时(B时间段),存储器输出数据的三态门打开,并将与输入地址相对应的存储单元中的指令(数据)向外输出,单片机通过P0口将指令送至CPU 内部。 74LS373锁存器:将A时间段P0口输出的低位地址进行保存,使ROM在B时间段仍然可以得到完整的地址信号。 片外ROM访问时序说明 转时序图
2764A 7.2.2 扩展EPROM 常用芯片介绍
27128 16K ROM 地址信号 MCS-51 P2.7 P2.6 : : P2.0 P0.7 : : : P0.0 ALE /EA /Psen CE A13 : A8 A7 O7 : : : : : : A0 O0 OE /CE = P2.6(A14) 三态输出的数据口由/OE控制 : D7 Q7 74LS373 D0 Q0 G /L MCS-51与1片16K ROM的连接
使用两片32K的ROM芯片扩展为64K的存储阵列。 /CE1 A14 A8 A7 A0 /OE1 O0~O7 A15 P2口 MCS - 51 P0口 ALE /EA Psen /CE2 A14 A8 A7 A0 /OE2 O0~O7 74LS373 MCS-51与2片32K ROM的连接
A、B、C:选择输入。作为与输出对应的二进制编码输入;A、B、C:选择输入。作为与输出对应的二进制编码输入; G1、/G2A、G2B:使能输入,作为片选控制输入; y7~y0:译码器输出,低电平有效。 74LS138 G1 /G2A /G2B C B A y0y1y2y3y4y5y6y7 74LS138 3-8线译码器
若需要对2片以上的芯片扩展,可以通过译码电路实现。若需要对2片以上的芯片扩展,可以通过译码电路实现。 74LS138 MCS–51 /CE0 A12 A8 A7 8K×8 A0 /OE1 O0~O7 /CE7 A12 A8 A7 8K×8 A0 /OE1 O0~O7 /CE1 A12 A8 A7 8K×8 A0 /OE1 O0~O7 C y7 B A y 0 P2.7 P2.6 P2.5 P2.4 P2.0 P0口 ALE Psen 74LS373 MCS-51与多个ROM的连接(地址线全译码)
与程序存储器扩展相同,使用P0、P2口作为地址、数据总线。与程序存储器扩展相同,使用P0、P2口作为地址、数据总线。 1、当使用 MOVX @Ri ,A指令时,系统仅使用P0口输出地址信号(P2口不用)。 2、当使用 MOVX @DPTR,A 指令时,P0口输出DPTR提供的低八位地址信号,P2口输出DPTR提供的高八位地址信号。 3、不论哪种情况,P0口都是地址/数据复用总线,因此仍要使用74LS373来锁存P0口的地位地址信号。 7.3 扩展数据存储器
与ROM扩展不同: 使用访问外部RAM指令MOVX时,在时序中将产生/RD或/WR信号,因此须将这些控制信号与外RAM的读(/RD) 、写(/WR)控制端相连接,实现系统对外RAM的读写控制。
7.3.1 常用的数据存储器芯片 1.静态RAM(SRAM):6116,6264,62128等 2.EEPROM:2816,2864等
6264 6116 Vcc 1 28 NC Vcc A8 A9 WE OE A10 CE D7 D6 D5 D4 D3 A7 A6 A5 A4 A3 A2 A1 A0 D0 D1 D2 GND 1 24 2 23 3 22 4 21 5 20 6 19 7 18 8 17 9 16 10 15 11 14 12 13 WE 2 27 A12 CS2 3 26 A7 A8 4 25 A6 A9 5 24 A5 A11 6 23 A4 INTEL 6116 OE 7 22 A3 A10 8 21 A2 CS1 9 20 A1 D7 10 19 A0 D6 11 18 D0 D5 12 17 D1 D4 13 16 D2 D3 14 15 GND 6116芯片容量=2K8位/片 6264芯片容量=8K8位/片
执行外部指令:movx a, @dptr ;将外RAM的x送A S1 S5 S6 S2 S3 S4 S5 S6 S1 S2 S3 S4 ALE Psen 选中外部RAM RD A15-A8(PC) A15-A8(DPH) P2口 P0口 A7-A0 指令 A7- A0 数据 7.3.2 访问片外RAM的操作时序
6264 8K RAM MCS-51 P2.5 P2.4 : : P2.0 P0.7 : : : P0.0 ALE /RD /WR CE A12: : A8 A7 O7 : : : : : : A0O0 /OE /WE /CE = P2.5(A12) 三态输出的数据口由/OE控制 D7 Q7 D0 Q0 CP MCS-51与8K RAM的连接
7.4 简单并行I/O扩展7.4.1 I/O口的直接输入/输出
LOOP: MOV A,#0FH MOV P1,A MOV A,P1 SWAP A MOV P1,A AJMP LOOP
编程:按下任意键,对应的LED发光。 LOOP:MOV DPTR,#0FEFFH MOVX A,@DPTR MOVX @DPTR,A SJMP LOOP
8255A 可编程通用并行接口 8155 带RAM和定时器/计数器的可编程并行接口 8279 可编程键盘/显示接口 8253 可编程通用定时器 7.5 可编程I/O接口扩展
8155、8255等芯片都是美国Intel公司开发出的系列通用可编程I/O接口芯片。40脚DIP封装。8155、8255等芯片都是美国Intel公司开发出的系列通用可编程I/O接口芯片。40脚DIP封装。 8155不仅可以提供三个并行的I/O端口,在其内部还集成有256个字节的RAM存储空间、一个14位的定时/计数器,因此非常适合与MCS-51单片机连接实现系统功能的扩展。 7.5.1 扩展8155可编程外围并行接口芯片
双向 数据 缓冲器 256 字节 RAM AD7-AD0 地址 锁存器 /CE IO/M ALE /RD /WR REST 地址译码 I/O 寄存器 A口 读/写 控制器 I/O 寄存器 B口 状态 命令 寄存器 定时 计数器 (14位) I/O 寄存器 C口 T / IN T / OUT 8155的内部结构简图
AD7-AD0:数据/地址总线。与MCS-51的P0口连接,分 时传送地址和数据信息,是连接两者的通道。 I/O口线:PA7-0、PB7-0和PC5-0为8155的A、B和C口。 REST、/CE和IO/M :复位、片选和I/O端口/RAM选择线。 /RD、/WR: 读写控制线。 ALE:8155的地址锁存信号。ALE=1时,信号进入地址锁 存器,ALE=0时,锁存器锁存地址。 T/IN、T/OUT: 计数器的脉冲输入线和输出线,输出波形 与工作方式有关。 8155引脚说明
8155的A、B和C口的数据传送是由CPU发出的命令字控制的。 (1)8155内部的7个寄存器地址 7.5.2 8155寄存器
PB 、PA:A、B口工作方式:0 输入;1 输出。 PC2、 PC1: C口工作方式:00 ALT1(输入) 01 ALT2(输出) 10 ALT3(选通方式) 11 ALT4(选通方式) IEB、IEA:A、B口中断允许位:0 禁止中断;1 允许中断。 TM2 、TM1:计数器工作方式:00 无操作;01 停止计数; 10 计满后停止;11 开始计数。 (2)8155的命令字
INTRA: A中断请求标志。 0 无中断;1 有中断。 ABF: A口缓冲器状态。 0 空; 1 满。 INTEA: A口中断允许位。 0 禁止; 1 允许。 INTRA: B中断请求标志。 0 无中断;1 有中断。 BBF: B口缓冲器状态。 0 空; 1 满。 INTEB: B口中断允许位。 0 禁止; 1 允许。 TIMER: 定时器中断。0 读状态字后或硬件复位后。 1 有定时器中断时。 (3)8155的状态字─表征8155的状态 状态字存在于8155的状态寄存器中,其地址与命令口地址一样可以用 MOVX A, @ DPTR指令来读取8155的状态。状态字寄存器与命令寄存器是靠输入、输出来自动区分的。
(1)存储方式:若IO/M=0、CE=0时,8155处于存储器(1)存储方式:若IO/M=0、CE=0时,8155处于存储器 模式,此时单片机通过AD7-AD0与8155 的RAM单元进行读写数据。 (2)I/O方式:若IO/M=1,CE=0时,8155处于I/O状态。 a: 通用I/O方式:A,B,C都是通用的数据端口; b: 选通I/O方式:A,B为选通I/O方式,C口作 为A,B口的联络控制线。 选通方式是一种较为特殊的数据传输方式,它不同于一般并行口的I/O操作。它主要用于高速CPU与低速外设之间的数据交换。 8155的工作方式
当外设准备好数据并送PA口时,发出低电平的选通信号ASTB;当外设准备好数据并送PA口时,发出低电平的选通信号ASTB; 8155接收到ASTB后: 1,将PA上的数据装入A口寄存器 2,使A口数据满ABF置位以通知外设数据已收到。 8155在ASTB的上升沿使PC0的A INTR标志置位,以通知单片机数据已收到。 CPU响应中断执行服务程序,当执行到从A口读取输入的数据(MOVX)时,/RD的上升沿将PC0的INTEA清零并使PC1的ABF变低,通知外设输入下一个数据。 MCS-51 8155 外设 P0 INT0 PA PD0-7 /RD PC1 PC2 PC0 D7- 0 ABF ASTB A INTR 选通I/O数据输入操作 C口为ALT3模式 PC0:A口中断A INTR标志输出,送单片机; PC1:A口缓冲器满ABF标志输出,送外设。 PC2:A口选通输入ASTB,
CPU执行MOVX指令将数据送PA口,8155收到数据后ABF变高通知外设数据已到达PA口。CPU执行MOVX指令将数据送PA口,8155收到数据后ABF变高通知外设数据已到达PA口。 外设接收到ABF的高电平后: 1,从D7-0上接收数据; 2,使ASTB变低,通知8155外 设已接收到数据。 当8155监测到ASTB回到高电平时,使PC0D的A INTR变为高电平,向单片机申请中断。 单片机在中断服务程序中巴下一个数据送到A口,进行下一个数据的输出。 MCS-51 8155 外设 P0 INT0 PA PD0-7 PC1 PC2 PC0 D7- 0 ABF ASTB A INTR 选通I/O数据输出操作 C口为ALT3模式,控制字:00011001B PC0:A口中断A INTR标志输出,送单片机; PC1:A口缓冲器满ABF标志输出,送外设。 PC2:A口选通输入ASTB.
严格的讲,8155的定时器应当称为计数器,因为定时器的计数脉冲来自外部的T/IN引脚的输入脉冲,所以8155的定时器非常适合做1/n的分频器(如图)。严格的讲,8155的定时器应当称为计数器,因为定时器的计数脉冲来自外部的T/IN引脚的输入脉冲,所以8155的定时器非常适合做1/n的分频器(如图)。 定时器共有4种工作方式,由计数器高8位中的最高两位M2、M1来确定。不同的工作方式对应着不同的T/OUT波形。 MCS-51 8155 T/IN T/OUT 由8155作1/5分频器 8155内部定时器的使用
1,M2M1=00时:当计数器“减1”到 “全0”时,在T/OUT线上输出单个方波,如果计数初值为奇数,则高电平持续时间比低电平多一个计数脉冲; 2, M2M1=01时:同上一方式,差别为当计数器“减1”到 “全0”时,自动装入计数初值,所以在T/OUT上为连续方波; 3, M2M1=10时:当计数器“减1”到 “全0”时,在T/OUT线上输出一个单脉冲; 4, M2M1=11时:当计数器“减1”到 “全0”时,在T/OUT线上输出一个单脉冲,且自动重装计数初值,所以在T/OUT线上输出连续的脉冲。 8155内部定时器的4种工作方式
充分利用8155的内部资源可以简化单片机系统的设计。充分利用8155的内部资源可以简化单片机系统的设计。 1 、 作片外256B RAM 2 、作扩展I/O口使用 3 、 定时器扩展用 8155与MCS-51连接时按外部RAM地址统一编址。 8155的I/O工作方式我们常选择“通用I/O方式” 。 7.5.3 8155应用与编程举例
P2.7 P2.0 P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 ALE /RD /WR /CE IO/M PA AD7 AD6 AD5 PB AD4 AD3 AD2 AD1 PC AD0 ALE T/OUT /RD /WR T/IN MCS-51 8155 8155与MCS-51的连接 8155内部各寄存器的地址分配
例7-1 向8155RAM中的5FH单元送入立即数32H。 MOV A,#32H MOV DPTR,#7E5FH MOVX @DPTR,A 基本操作软件