第三章 mcs-51单片机接口技术_第1页
第三章 mcs-51单片机接口技术_第2页
第三章 mcs-51单片机接口技术_第3页
第三章 mcs-51单片机接口技术_第4页
第三章 mcs-51单片机接口技术_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

第三章 MCS-51单片机接口技术 n MCS-51单片机具有四个 8位并行 I/O口 ,只有对于 单片机8051/8751在不使用外扩展时 ,才能允许四个 I/O口作为用户I/O口使用。n 但是 ,对于在多数使用 8031以及使用 8051/8751需外部扩展时 ,MCS-51单片机可提供给用户使用的 I/O口只有 P1口和P3口的部分口线 ,作为用户使用的 I/O口线 ,可用为简单的I/O口应用。n 在大多数应用系统中 ,MCS-51单片机本身的 I/O口线不能满足要求 ,必须进行 I/O口的扩展 13.1 MCS-51单片机接口技术概述 一、计算机为什么需要 I/O接口电路? (1) 外部设备的工作速度快慢差异很大慢速设备如开关、继电器、机械传感器等。每秒钟提供不了一个数据 ;而高速设备如磁盘、 CRT显示器等 ,每秒可传送几千位数据。面对速度差异如此之大的各类外部设备 ,CPU无法按固定的时序与他们以同步方式协调工作。 (2) 外部设备种类繁多既有机械式的 ,又有机电式的。不同种类的外部设备之间性能各异对数据传送的要求也各有不同 ,无法按统一格式进行。 2(3) 外部设备的数据信号多种多样 既有电压信号 ,也有电流信号 ,既有数字形式 ,还有模拟形式 (4) 外设和数据传送距离有远近不同有的使用并行数据传送 ,而有的则需要使用串行传送方式 。 正是由于上述原因 ,使数据的 I/O操作变得十分复杂。无法实现外部设备与 CPU进行直接的同步数据传送 ,而必须在CPU和外设之间设置一个接口电路 ,通过接口电路对 CPU与外设之间的数据传送 进行协调 。因此接口电路就成了数据 I/O操作的核心内容 。 3二、接口电路主要有如下几项功能 (1) 速度协调 由于速度上的差异 ,使得数据的 I/O传送难以异步方式进行 ,即只能在确认外设已为数据传送作好准备的前提下才能进行 I/O操作。而要知道外设是否准备好 ,就需要 通过接口或产生或传送外设的状态信息 ,以此进行 CPU与外设之间的速度协调。 (2) 数据锁存 数据输出都是通过系统的公用数据通道 (即数据总线 )进行的。但是由于 CPU的工作速度快 ,数据在数据总线上保留的时间十分短暂 ,无法满足慢速输出设备的需要。为此在接口电路中需设置数据锁存器。以 保存输出数据直至为输出设备所接收 。因此数据锁存就成为接口电路的一项重要功能。 4(3)三态缓冲数据输入时 ,输入设备向 CPU传送的数据也要通过数据总线 ,但数据总线是系统的公用数据通道 ,上面可能 “ 挂 ” 着许多数据源 ,工作十分繁忙。为了维护数据总线上数据传送的 秩序 ” ,因此只允许当前时刻正在进行数据传送的数据源作用数据总线 ,其余数据源都必须与数据总线处于隔离状态。为此要求接口电路能为数据输入提供三态缓冲功能。(4)数据转换CPU只能输入和输出并行的电压数字信号 ,但是有些外部设备所提供或所需要的并不是这种信号形式。为此需要使用接口电路进行数据信号的转换。其中包括 :模 数转换、数 模转换、串 并转换和并 串转换等。5三、 MCS-51单片机 I/O扩展性能单片机应用系统中的 I/O扩展方法与单片机的 I/O口扩展性能有关。 1.在 MCS-51单片机应用系统中 ,扩展的 I/O口采取与数据存储器相同的寻址方法。所有扩展 I/O口或相当于 I/O口外设以及通过扩展 I/O连接的外围设备均 与片外数据存储器统一编址 ,任何一个扩展 I/O口根据地址线的选择方式不同 ,占用一个片外 RAM区域。而与外部程序存储器无关。 2.利用 MCS-51串行口的移位寄存器工作方式 (方式 0)也可以扩展 I/O口 ,这时所扩展的 I/O口不占用片外 RAM地址。 63. MCS-51单片机的 I/O口扩展主要是通过总线 (P0)口扩展 ,利用 P0口扩展时必须分时使用 ,要求 P2口提供较多的片选线 (供数据锁存和缓冲 )及读 /写线 ,必须注意 P0、 P2、 P3的负载问题。 4. 扩展 I/O口的 硬件相依性 。在单片机应用系统中 ,I/O的扩展不是目的 ,而是为外部通道及设备提供一个输入、输出通道。因此 ,I/O的扩展总是为实现某测、控及管理功能而进行的。例如联接键盘、显示器、驱动开关控制、开关量监测等。这样 ,在 I/O扩展时必须考虑与之相连的外设硬件电路特性 ,如驱动功率、电平、干扰抑制及隔离等。 75.扩展 I/O口的软件相依性根据选用不同的 I/O口扩展芯片或外部设备时 ,扩展 I/O口的操作方式不同 ,因而应用程序应有不同 ,如入口地址、初始化状态设置、工作方法选择等。例如 ,使用 8255扩展的 I/O口和使用 8155扩展的 I/O口 ,其状态设置及地址选择方式完全不同 ,必须按芯片规定的方式设置相应的操作指令。 8四、 I/O扩展方法 1.总线扩展方法 扩展的并行口 I/O芯片 ,其并行数据输入线取自 MCS-51单片机接口。这种扩展方法只分时占 P0口 ,不影响 P0口与其它扩展芯片的连接操作 ,不会造成单片机硬件的额外开支。因此 ,在 MCS-51单片机应用系统的 I/O扩展芯片是 TTL/MOS锁存器 ,三态门电路芯片。2.串行口扩展方法 这是 MCS-51单片机串行口在方式 0工作状态下所提供的 I/O的扩展功能。 因此接上 74LC164时 ,可以扩展并行输出口 ,而接上 74LC165时 ,则可扩展并行输入。这种扩展方法只占串行口 ,而且通过移位寄存器的级联方法可以扩展多数量的并行 I/O。 对于不使用串行口的应用系统 ,可使用这种方法。但是由于数据的输入输出采用串行移位方法 ,传输速度较慢。 93.通过单片机内 I/O的扩展方法 这种方法的特征是扩展芯片输出输出的数据线不通过 P0口而通过其他片内 I/O口。这种方法在 MCS-48单片机应用系统中使用较多,而在 MCS-51单片机应用系统中使用较少。这是因为在 MCS-51单片机应用系统中采取上述两种方法十分方便 ,而在片内 I/O扩展 I/O芯片时还要占用MCS-51单片机有限的片内 I/O口资源。 MCS-51单片机在扩展 8243时 ,为了模拟 8243的操作时序 ,不得不使用这种扩展方法。10五、数据总线隔离技术 1、为什么需要数据总线隔离技术?站在总线的角度上看 ,数据总线上连接着多个数据源设备 (输入数据 )和多个数据负载设备 (输出数据 )。但是在任一时刻、只能进行一个源和一个负载之间的数据传送 ,当一对源和负载的数据传送正在进行时 ,要求所有其它不参与的设备在电性能上必须同数据总线隔开。2、 数据总线隔离方法对于输出设备的接口电路 ,要提供锁存器 ,当允许接收输出数据时闩锁打开 ,当不允许接收输出数据时闩锁关闭。而对于输入设备的接口电路 ,要使用三态缓冲电路或集电极开路电路。 113、三态缓冲电路三态缓冲电路就是具有三态输出的门电路 ,因此也称之为三态门 (TSL)。 所谓 三态 ,是指低电平状态 ,高电平状态和高阻抗三种状态。当三态缓冲器的输出为高或低电平时 ,就是对数据总线的驱动状态 ;当三态缓冲器的输出为高阻抗时 ,就是对总线的隔离状 (也称浮动状态 )。在隔离状态下 ,缓冲器对数据总线不产生影响 ,犹如缓冲器与总线隔开一般。为此 ,三态缓冲器的工作状态应是可控制的 , 其逻辑符号如图所示。 124、对三态缓冲电路的主要性能要求 :n 速度快 ,信号延迟时间短 。例如典型三态缓冲器的延迟时间只有 8 12(NS);n 较高的驱动能力 ; n 高阻抗时对数据总线不呈现负载 ,最多只能拉走不大于 0.04MA的电流。13六、 I/O数据传送的控制方式 在计算机中 ,为了实现数据的输入输出传送 ,共有四种控制方式 :1、无条件送方式无条件传送也称为同步程序传送。只有那些一直为数据 I/O传送作好准备的外部设备 ,才能使用无条件传送方式。因为在进行 I/O操作时 ,不需要测试外部设备的状态 ,可以根据需要随时进行数据传送操作。无条件传送适用于以下两类外部设备的数据输入输出 :(1)具有常驻的或变化缓慢的数据信号的外部设备 。 例如 :机械开关、指示灯、发光二极管、数码管等。可以认为它们随时为输入输出数据处于 “ 准备好 ” 状态。(2) 工作速度非常快 ,足以和 CPU同步工作的外部设备 。 例如数 /模转换器 DAC,由于 DAC是并行工和的 ,速度很快 ,因此 CPU可以随时向其传送数据 ,进行数 /模转换。 142、程序查询方式n 查询方式又称之为有条件传送方式 ,即数据的传送是有条件的。在 I/O操作之前 ,要先检测外设的状态 ,以了解外设是否已为数据输入输出作好了准备 ,只有在确认外设已 “ 准备好 ” 的情况下 ,CPU才能执行数据输入输出操作。通常把以程序方法对外设状态的检测称之为 “ 查询 ” ,所以就把这种有条件的传送方式称之为程序查询方式 。n 为了实现查询方式的数据输入输出传送 ,需要接口电路提供外设状态 ,并以软件方法进行状态测试。因此这是一种软、硬件方法结合的数据传送方式。n 程序查询方式 ,电路简单 ,查询软件也不复杂 ,而且通用性强 ,因此适用于各种外部的设备的数据输入输出传送。但是查询过程对 CPU来说毕竟是一个无用的开销 ,因此 查询方式只能适用于单项作业、规模比较小的计算机系统。 153程序中断方式 n 程序中断方式与查询方式的主要区别 在于如何知道外设是否为数据传送作好了准备。查询方式是 CPU的主动形式 ,而中断方式则是 CPU等待通知 (中断请求 )的被动形式。n 采用中断方式进行数据传送 时 ,当外设为数据传送作好准备之后 ,就向CPU发出中断请求 (相当于通过 CPU)。 CPU接收到中断请求后 ,即作出响应 ,暂停正在执行的原程序。而转去为外设的数据输入输出服务。待服务完成之后 ,程序返回 ,CPU再继续执行被中断的原程序。 n 程序中断方式 ,大大提高了系统的效率 ,不但速度快而且可以实现多道程序方式。所以在计算机中被广泛采用。n 但中断请求是一种随机事件。为实现程序中断 ,对计算机的硬件和软件都有较高的要求。此外 ,由于 中断处理常需现场保护和现场恢复。因此,对 CPU来说仍有较大的无用开销。16 3.2 MCS-51单片机接口及其应用 一、 MCS-51单片机的并行接口 MCS-51单片机的四个 I/O都是 8位双向口 ,这些口在结构和特性上是基本相同的 ,但又各具特点。n P0口 数据 /地址总线n P2口 地址总线n P3口 双功能口n P1口 用户 I/O口n 用于计算机三总线扩展和少量 I/O口应用场合。17五、 MCS-51 单片机 I/O口的应用 一、数据的无条件传送 例 1保险柜的模拟控制n 要求 :如图所示 ,BCD码拨盘设置编码 ,若编码小于密码时 ,则二极管发光 ,以提醒操作者编码有误 ,可继续调节 ,直至编码与密码相符时 ,保险柜开启 ,若编码大于密码时 ,则报警,此时 ,调整编码无效。图中 ,开关 K设在隐蔽处 ,只有 K闭合 ,编码才能输入 ,从而增强了隐蔽性。18 说明 入口: P1.0 P1.7 编码输入、 30H 密码 X出口: P3.0 开启保险柜、 P3.1 状态指示、 P3.2 报警 程序: ORGHSTART: MOV SP, #60HMOV P1, #0FFHMOV P3, #0FFHNEXT: MOV A, P1CJNE A, 30H, NOTEQCLR P3.0ACALL DLYSJMP LOOP3NOTEQ: JC LOOP2LOOP1: CPL P3.2ACALL DLYSJMP LOOP1LOOP2: CLR P3.1SJMP NEXTLOOP3: SJMP LOOP3192、中断方式的数据传送 例 2 彩灯控制n 功能 :采用外部中断方式 (TNT0),每扳动一次开关 ,就产生一个外部中断请求 ,由左至右依次点亮各灯 ,点亮时间为 5秒 。n 硬件电路20n 如上图所示 ,P1.0 P1.1作为输出 ,经驱动电路 ,控制彩灯 ,74LS00开关 K构成外部中断请求信号电路 ,扳动一次 K产生一个负脉冲 ,用于边沿触发方式 ,P3.7作为输出 ,产生周期为 0.2秒的方波 ,作为计数器 T0的计数脉冲 ,T0计数 5次 ,完成 1秒的定时 。n 参考程序 ORG 0000Hn RESET: AJMP AMINn ORG 0003Hn AJMP INT0n ORG 0100H n MAIN: MOV SP, #60Hn MOV TMOD, #61Hn MOV TH1, #0FBHn MOV TL1, #0FBHn SETB IT0n SETB EX0n SETB EAn HERE: SJMP HERE21INT0: MOV A, #01HMOV R7, #08HSETB TR1LOOP1: MOV P1, ALOOP2: MOV TH0, #3CHMOV TL0, #0B0HSETB TR0LOOP3: JBC TF0, LOOP4SJMP LOOP3LOOP4: CPL P3.0JBC TF1, LOOP5SJMP LOOP2LOOP5: SETB CRLC ADJNZ R7, LOOP1CLR TR0CLR TR1RETI 22例 3 交通灯 控制n 东西方向 南北方向 n P1.0 红灯 P1.3 红灯n P1.1 黄 灯 P1.4 黄灯 n P1.2 绿灯 P1.5 绿灯P1.5 P1.4 P1.3 P1.2 P1.1 P1.021H 1 0 0 0 0 1 南北通行11H 0 1 0 0 0 1 双向 暂 停0CH 0 0 1 1 0 0 东 西通行0AH 0 0 1 0 1 0 双向 暂 停23 3.3 用 TTL芯片扩展简单的 I/O接口 一、用 74LS377扩展 8位并行输出口图 中 ,8031的 P0口与 74LS377的 D端相 联 ,与 CP相 连 ,P2.7作 为 74LS377的片 选 信号 ,当 P2.7低 电 平有效 时 ,在 WR的上升 边 沿 P0输 出的数据将被 74LS377锁 存起来 ,并在 Q端输 出。74LS377的口地址 为 7FFFH,若将一个字 节 数据由 74LS377输 出 ,则执 行下面程序 :MOV DPTR, #7FFFH ; 地址指 针 指向 74LS377MOV A, #DATA ;待 输 出数据 AMOVX DPTR, A ;输出数据 24二、用三态门扩展 8位并行输入口对于常态数据的输入 ,只需采用 8位三态门控制电路芯片即可。右图是用74LS244通过 P0口扩展的 8位并行输入口 ,图中 ,三态门由 P2.6和相或控制 ,其数据输入使用以下几条指令即可 :MOV DPTR,#0BFFFH; 指向 74LS244口地址MOVX A, DPTR ; 读入数据25三、应用举例 在这个例子中 ,扩展了一片 273作 8位并行数据的输出口 ,还扩展了一片 244作 8位并行数据的输入口。它们直接挂在数据总线上。扩展输出口 (74LS273)的口址是 FEFEH(实际只要保证 P2.0=0即可 ),扩展输入口 (74LS244)的口地址是 FDFFH(必须保证 P2.1=0)。26【 实验 】 简单接口的扩展n 将 74LS244的输入端接 8个开关用来设置数据 ,将 74LS273的输出端接 8个 LED用来显示数据 ,执行下面的程序 ,从 244读取数据 ,然后送到 273输出 ,驱动相应 LED发光 ,执

温馨提示

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

评论

0/150

提交评论