1 / 36

4.3 输入 / 输出接口扩展

4.3 输入 / 输出接口扩展. 问题的提出. MCS-51 系列单片机内部有 4 个双向的 8 位并行 I/O 端口: P0 、 P1 、 P2 和 P3 口。 在实际的应用系统中, P0 、 P2 、 P3 口往往用来代替系统总线使用,数据口仅剩下 P1 口了。另外,单片机内部 I/O 口的功能也过于简单,只有数据锁存和缓冲功能,而没有状态寄存和命令寄存功能,难以满足复杂的 I/O 操作的要求。 鉴于单片机的 I/O 资源比较有限,在实际应用中不得不使用扩展的方法,以增加 I/O 口的数量,强化 I/O 的功能。 常用的 I/O 扩展有以下两种形式:

della
Download Presentation

4.3 输入 / 输出接口扩展

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 4.3 输入/输出接口扩展 问题的提出 • MCS-51系列单片机内部有4个双向的8位并行I/O端口:P0、P1、P2和P3口。 • 在实际的应用系统中,P0、P2、P3口往往用来代替系统总线使用,数据口仅剩下P1口了。另外,单片机内部I/O口的功能也过于简单,只有数据锁存和缓冲功能,而没有状态寄存和命令寄存功能,难以满足复杂的I/O操作的要求。 • 鉴于单片机的I/O资源比较有限,在实际应用中不得不使用扩展的方法,以增加I/O口的数量,强化I/O的功能。 • 常用的I/O扩展有以下两种形式: • 简单I/O接口芯片的扩展 • 可编程I/O接口电路的扩展

  2. 什么样的芯片是简单芯片?复杂芯片又是什么样的?什么样的芯片是简单芯片?复杂芯片又是什么样的? • 简单芯片:是指那些虽具有数据缓冲或锁存功能,但自身仅有数据的输入或输出及选通端或时钟端,却没有地址线和读写控制线,如采用TTL或CMOS数字集成电路构成的三态门、寄存器、三态缓冲寄存器等中小规模的集成电路芯片。 • 可编程逻辑器件: • 那些不仅具有数据的输入或输出、具有选通端或时钟端,而且还具有地址线和读写控制线的芯片,他们一般具有片内的状态字寄存器、命令字寄存器,允许通过软件编程来改变它的接口功能或状态。如:intel 8255、8155 、8279 etc.

  3. 4.3.1简单I/O接口芯片的扩展 • 简单的I/O口扩展通常是采用TTL或CMOS电路锁存器、三态门等作为扩展芯片(74LS244、74LS245、74LS273、74LS373、74LS377等),通过P0口来实现扩展的一种方案。它具有电路简单、成本低、配置灵活的特点。 • 简单的I/O口扩展主要包括: • 缓冲器扩展输入口(三态门: 74LS244、74LS245等) • 输入接口的主要功能:解决数据输入的缓冲问题,如74ls244(具有三态缓冲功能,这样才可以和数据总线相连)。 • 锁存器扩展输出口(锁存器: 74LS273、74LS373、 74LS377等) • 输出接口的主要功能:进行数据的保持(数据锁存)。

  4. 缓冲器扩展输入口 • 利用74LS244进行输入口的扩展 74LS244引脚封装图 MCS-51与74LS244的接口电路图

  5. 74LS244是一种8位的三态缓冲器。当它的控制端1G(2G)74LS244是一种8位的三态缓冲器。当它的控制端1G(2G) • 为低电平时,输出等于输入;当它的控制端1G(2G)为高电平 • 时,输出呈高阻态。 • 在上图的电路中,P2.7与RD相或后作为244的使能信号, • 单片机的P0口与74LS244的8位输出端相连,所以74LS244的 • 地址为:7FFFH(P2.7=0即A15=0,A14..A0为任意,这里取1, • 得到7fffh,当然,0000h~7fffh中任一地址均可)。 • 当单片机从74LS244读取数据时应该为: • MOV DPTR,#7FFFH ;将74LS244的口地址送入DPTR • MOVX A,@DPTR ; 74LS244的端口读取数据到ACC • ;执行时,RD有效,p2.7=0,选通了74ls244。 • 注意: MOVX A,@DPTR; 读操作,产生 RD 低电平信号

  6. 锁存器扩展输出口 • 利用74LS273进行输出口的扩展 74LS273引脚封装图 MCS-51与74LS273的接口电路图

  7. 74LS273是一种8D触发器器。当它的控制端信号有效且触发端信号有效时,输入D1-D8端的数据被锁存到8D触发器中并形成输出Q1-Q8。 • 在上图的电路中,P2.7与WR相或后作为74LS273的锁存信号(clk下降沿有效),单片机的P0口与74LS273的8位输出端相连,所以74LS273的地址为:7FFFH。(仅使P2.7=0,地址可以是0000h~7fffh中的任一个。) • (仅当p2.7=0且WR=0时,clk才为0,数据被打入。) • 所以,当单片机从74LS244输出数据是应该为: MOV DPTR,#7FFFH ;将74LS244的口地址送入DPTR MOVX @DPTR,A ;从ACC 向74LS244的端口写数据 ; P2.7=0&WR=0,数据被打入到2732锁 存器 注意: MOVX @DPTR , A; 写操作,产生 WR 低电平信号

  8. 一、可编程芯片8155的扩展 • Intel 8155是一个具有RAM、I/O和计数器的通用可编程接口芯片。其具有的资源为 • 256B的静态RAM; • 两个可编程的8位并行I/O口PA和PB; • 一个可编程的6位并行I/O口PC; • 一个可编程14位减计数器TC; • 8位地址锁存器。 • 示意图 • 是指芯片功能可由指令来确定,即需要对其编程。

  9. IO/M 256 字节 A PA0~PA7 AD0~AD7 静态 RAM CE PB0~PB7 B ALE RD 14 位 定时 WR PC0~PC7 计数器 C RESET TIMER IN VCC(+5 V) VSS(GND) TIMER OUT 8155的引脚封装图 8155的内部接口图

  10. 1. 8155的内部结构 • 8155各引脚的功能为: • 地址/数据线AD0~AD7(8条):是低8位地址线和数据线的共用输入总 • 线,常和MCS-51单片机的P0口相连,用于分时传送地址和数据; • PA0~PA7、PB0~PB7:为A、B口线,用于和外设之间传递数据; • PC0~PC5为C端口线,既可与外设传送数据,也可以作为A、B口的控制 • 联络线; • CS:片选线,低电平有效。

  11. RESET:复位线,通常与单片机的复位端相连。 • ALE:地址锁存线,高电平有效。 • IO/M:RAM或I/O口的选择线。当为0时,选中8155的256 B RAM;当为1时,选中8155片内3个I/O端口以及命令/状态寄存器和定时/计数器。 • RD和WR:读/写线,控制8155的读、写操作。 • TMRIN(TI):定时/计数器的脉冲输入端。 • TMROUT(TO):定时/计数器的输出信号端。 • VCC:电源端。 • GND:接地端。

  12. 2. 8155的RAM和I/O口地址编码 • 8155当IO/M为0时,单片机对8155的RAM进行操作,共256B,低八位的地址为:00H—0FFH。 • 8155当IO/M为1时,单片机对8155的I/O口进行操作。 8155内部寄存器地址分配表

  13. 3. 8155的命令字和状态字 • 芯片8155 的I/O口和定时器/计数器的工作方式可以通过对8155的命令寄存器写入控制字来实现。 • 8155的命令寄存器和状态寄存器使用同一个地址。 • 8155的命令字命令字主要规定了8155的I/O口和定时器的工作方式。 • 8255的状态字状态字的内容包含8155的I/O口的工作状态标志。

  14. MCS-51单片机与8155的接口 PA口 PB口 PC口

  15. IEB TM2 TM1 IEA PC2 PC1 PB PA PA A 口方式 0:输入 1:输出 B 口方式 方式1:A、B口基本I/O;C口输入 00 方式2:A、B口基本I/O;C口输出 11 方式3:A口选通I/O;B口基本I/O 01 方式4:A、B口选通I/O 10 0:禁止中断 A口 B口 1:允许中断 00:空操作 01:停止计数 计数器 10:计满后停止 方式 11:开始计数 8155的命令字格式

  16. -- TIMER INTEB BFB INTRB INTEA BFA INTRA A口中断请求标志: 0:无; 1:有 A口缓冲器: 0:空; 1:满 A口中断允许: 0:禁止; 1:允许 B口中断请求标志: 0:无; 1:有 1:满 0:空; B口缓冲器: B口中断允许: 0:禁止; 1:允许 定时器中断标志: 1:有定时器溢出中断 0:读状态字后或硬件复位后 8155的状态字格式

  17. 8155的I/O的工作方式 • 基本I/O方式:联络线由程序指定,对计数器输入输出不起控制作用,没有中断能力,输出联络线由软件程序来控制。 • 选通I/O方式:由PC口的低三位作联络线使用,其余位作I/O线;输入联络线可以起选通数据锁存作用;中断时有中断请求信号产生;各个联络线为: • INTRA:中断请求输出标志。 • BFA:PA口缓冲器/空输出信号。 • STBA:数据选通输入信号。

  18. 4. 8155的定时器/计数器 • 8155片内的定时器/计数器是一个14位的减计数器。计数器分为高6 • 位和低8位寄存器,它的计数初值有程序预置。它的格式为: 高字节寄存器(M2和M1是工作方式码) 低字节寄存器(T0—T13为计数器的初值)

  19. M2 M1 方 式 波 形 0 0 0 1 1 0 1 1 单次方波 连续方波 单个脉冲 连续脉冲 8155定时器/计数器四种操作方式和输出波形

  20. 5. 8155的应用 • 1)8155RAM的使用例题:假定在MCS-51单片机的内部RAM中,从30H开始存放一组数据,字节数为50,要求将该组数据存入8155 RAM中,起始地址为7E00H。 • 程序为:………………..RAMWR:MOV R0,#30H • MOV DPTR,#7E00H MOV R2,#50 RAMW:MOV A,@R0 MOVX @DPTR,A INC R0 INC DPTR • DJNZ R2,RAMW ………………… 思考:如果要把8155 RAM中,从地址为7E00H开始的50个数据存入单片机的30H开始的数据存储单元中,应该如何处理?

  21. 2) 8155的I/O口的使用 • 例题:假定8155的PA口接8个乒乓开关,8155的PB口接8个指示灯,要求PB显示PA口的开关状态。命令/状态寄存器地址为7E00H,PA地址为7E01H ,PB地址为7E02H 。8155的命令字为:02H( PA和 PB为基本I/O方式)。 • 程序为: • ORG 0000H MOV DPTR,#7E00H MOV A,#02H MOV @DPTR,ALOOP: • MOV DPTR,#7F01H MOVX A,@DPTR • INC DPTR MOVX @DPTR,A • SJMP LOOP END 写命令字,送入命令/状态寄存器 8155的A口数据送入ACC ACC数据写入8155的B口 循环执行

  22. 二、可编程芯片8255的扩展 • 8255是一个通用可编程接口电路。其具有的资源为: • 三个可编程的8位并行I/O口PA、PB和PC口; • PC口可以按位进行操作。 数据总线 PA口 控制总线 PB口 PC口 8255A的引脚封装图

  23. I/O A A 组 组 控制 A PA7~PA0 端口 (8) A I/O 组 数据 C 端口 总线 PC7~PC4 (4) 上半部 D7~D0 缓冲 B I/O 组 C 端口 PC3~PC0 (4) 下半部 B 组 I/O RD B 组 读/写 B 端口 WR A0 控制 控制 (8) PB7~PB0 A1 逻辑 RESET CS 8255的内部接口图

  24. 1. 8255的内部结构 • 8255各引脚的功能为: • 地址/数据线D0~D7:是低8位地址线和数据线的共用输入总线,常和MCS-51单片机的P0口相连,用于分时传送地址和数据; • PA0~PA7、PB0~PB7:为A、B口线,用于和外设之间传递数据; • PC0~PC7为C端口线,既可与外设传送数据,也可以作为A、B口的控制联络线; • CS:片选线,低电平有效。 • RESET:复位线,通常与单片机的复位端相连。 • A0和A1:I/O口的选择线,通过它可以选择PA口、PB口、PC口和控制寄存器。 • RD和WR:读/写线,控制8255的读、写操作。 • VCC:电源端。 • GND:接地端。

  25. A1 • A0 • RD • WR • CS • 操作 • 0 • 0 • 0 • 1 • 0 • 从PA口输入 • 0 • 1 • 0 • 1 • 0 • 从PB口输入 • 1 • 0 • 0 • 1 • 0 • 从PC口输入 • 0 • 0 • 1 • 0 • 0 • 从PA口输出 • 0 • 1 • 1 • 0 • 0 • 从PB口输出 • 1 • 0 • 1 • 0 • 0 • 从PC口输出 • 1 • 1 • 1 • 0 • 0 • 从命令口输入 • X • X • X • X • 1 • 高阻态 • 1 • 1 • 0 • 1 • 0 • 非法态 • X • x • 1 • 1 • 0 • 高阻态 2. 8255A的端口选择和基本操作

  26. 3. 8255A的控制字 • 8255有两个控制字: • 方式控制字方式控制字用于设定单片机的PA口、PB口和PC口的工作方式。 • 置位/复位控制字置位/复位控制字用于对8255A的PC口按位进行操作。

  27. D7 D6 D5 D4 D3 D2 D1 D0 B 组 C 0: 口 输出 4 低 位 1: 输入 0: 输出 B 口 1: 输入 0: 0 模式 方式 1: 1 模式 选择 A组 0: 输出 C 口 4 高 位 1: 输入 0: 输出 A 口 1: 输入 00: 0 模式 01: 1 方式选择 模式 1*: 2 模式 1: 方式标志 方式控制字

  28. D7 × × × D3 D2 D1 D0 0: 复位 1: 置位 位选择 PC0 000 PC1 001 PC2 010 PC3 011 PC4 100 PC5 101 PC6 110 PC7 111 0: 位操作 置位/复位控制字

  29. 4. 8255A的工作方式 • 8255A有3种工作方式 • 工作方式0基本的输入/输出方式 • 工作方式1选通工作方式 • 工作方式2双向传送方式,只有PA口工作于此方式。

  30. 5. 8255A和MCS-51单片机的接口 显示输出 开关量输入

  31. 6.8255A应用举例: • 例1:在上图所示的8255与单片机的连接电路中, • 8255A的PC口(7FFEH)作为开关量的输入; • 8255A的PA口(7FFCH)作为信号的输出; • 要求8个数码管显示PC口输入的外部信号状态。 • 8255A的工作方式字设定: • 由题意可知8255的工作方式字应该为:89H

  32. 8255初始化 选中8255 的PC口 从8255的PC口 读入数据 选中8255 的PA口 从8255的PA口 输出数据 流程图:

  33. 程序清单: • ORG 0000H • MOV DPTR,#7FFFH • MOV A,#89H • MOVX @DPTR,A • LOOP:MOV DPTR,#7FFEH • MOVX A,@DPTR • MOV DPTR,#7FFCH • MOVX @DPTR,A • SJMP LOOP • END 写命令字,送入命令/状态寄存器 8255的C口数据送入ACC ACC数据写入8255的A口 循环执行

  34. 例2:在8255与单片机的连接电路中,使用置位/复位控制字实现在8255A的PC7输出方波。例2:在8255与单片机的连接电路中,使用置位/复位控制字实现在8255A的PC7输出方波。 • 解:8255A的控制寄存器(7FFEH)的设定D7:恒为0;D6-D4:未使用;D3-D1:PC口的位选择;D0:置位时为1,复位时为0。 • 所以: • 当PC7输出高电平时,控制寄存器应该为:0FH;PC7输出低电平时,控制寄存器应该为:0EH。

  35. 程序清单: • ORG 0000H MOV DPTR,#7FFFHLOOP: MOV A,#0FH MOVX @DPTR,AMOV R2,#80H DJNZ R2,$ MOV R2,#80H MOV A,#0EH MOVX @DPTR,ADJNZ R2,$ SJMP LOOP END 写PC7=1的命令字 延时 写PC7=0的命令字 循环执行

  36. 小 结 • 本章要求: • 掌握MCS-51单片机的三总线形成; • 了解常用的程序存储器、数据存储器,以及它们与单片机如何进行连接,连接好的存储单元如何确定其地址; • 掌握用缓冲器、锁存器等扩展简单I/O接口电路; • 掌握8155可编程接口芯片的基本性能、端口与存储单元的编址方法,以及与单片机的连接电路,口的基本应用; • 了解8155定时器的应用; • 掌握8255A的功能及应用。

More Related