第9章扩展输入输出.ppt

上传人:本田雅阁 文档编号:2912456 上传时间:2019-06-04 格式:PPT 页数:22 大小:514.02KB
返回 下载 相关 举报
第9章扩展输入输出.ppt_第1页
第1页 / 共22页
第9章扩展输入输出.ppt_第2页
第2页 / 共22页
第9章扩展输入输出.ppt_第3页
第3页 / 共22页
第9章扩展输入输出.ppt_第4页
第4页 / 共22页
第9章扩展输入输出.ppt_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《第9章扩展输入输出.ppt》由会员分享,可在线阅读,更多相关《第9章扩展输入输出.ppt(22页珍藏版)》请在三一文库上搜索。

1、1,第9章 MCS-51单片机 的I/O扩展,1,2,2,第9章 目录 9.1 I/O接口扩展概述 9.1.1 扩展的I/O接口功能 9.1.2 I/O端口的编址 9.1.3 I/O数据的传送方式 9.1.4 I/O接口电路 9.2 利用74LSTTL电路扩展并行I/O口 9.3 用MCS-51单片机的串行口扩展并行口 9.3.1 用74LS165扩展并行输入口 9.3.2 用74LS164扩展并行输出口,3,内容概要 MCS-51有4个I/O口P0P3,真正用作I/O口线的只有P1口的8位I/O口线和P3口的某些位线。因此,大多需要外部I/O接口的扩展。 介绍MCS-51与廉价的74LSTT

2、L芯片扩展并行I/O接口以及用MCS-51串行口来扩展并行I/O接口的设计。最后介绍使用I/O口控制的声音报警接口。,4,9.1 I/O接口扩展概述 扩展I/O接口与扩展存储器一样,都属于系统扩展的内容。扩展的I/O接口应该具有哪些功能? 9.1.1 扩展的I/O接口功能 扩展的I/O接口电路主要应满足以下功能要求。 1实现和不同外设的速度匹配 大多数外设的速度很慢,无法和s量级的单片机速度相比。单片机在与外设间进行数据传送时,只有在确认外设已为数据传送做好准备的前提下才能进行数据传送。外设是否准备好,就需要I/O接口电路与外设之间传送状态信息,以实现单片机与外设之间的速度匹配。,4,5,2输

3、出数据锁存 与外设比,单片机的工作速度快,数据在数据总线上保留的时间十分短暂,无法满足慢速外设的数据接收。所以在扩展的I/O接口电路中应有输出数据锁存器,以保证输出数据能为慢速的接收设备所接收。 3输入数据三态缓冲 数据总线上可能“挂”有多个数据源,为使传送数据时不发生冲突,只允许当前时刻正在接收数据的I/O接口使用数据总线,其余的I/O接口应处于隔离状态,为此要求I/O接口电路能为数据输入提供三态缓冲功能。,5,6,9.1.2 I/O端口的编址 介绍I/O端口编址之前,首先要弄清楚I/O接口和I/O端口的概念。 I/O接口是单片机与外设间的连接电路的总称。 I/O端口(简称I/O口)是指I/

4、O接口电路中具有单元地址的寄存器或缓冲器。一个I/O接口芯片可以有多个I/O端口,如数据口,命令口,状态口。当然,并不是所有的外设都一定需要3种端口齐全的I/O接口。 每个I/O接口中的端口都要有地址,以便MCS-51通过读写端口来和外设交换信息。常用的I/O端口编址有两种方式,独立编址方式与统一编址方式。,6,7,1独立编址 I/O端口地址空间和存储器地址空间分开编址。优点是I/O地址空间和存储器地址空间相互独立,界限分明。但需要设置一套专门的读写I/O端口的指令和控制信号。 2统一编址 把I/O端口与数据存储器单元同等对待。I/O端口和外部数据存储器RAM统一编址。因此外部数据存储器空间也

5、包括I/O端口在内。 优点是不需专门的I/O指令。缺点是需要把数据存储器单元地址与I/O端口的地址划分清楚,避免数据冲突。,7,8,9.1.3 I/O数据的传送方式 为了实现和不同外设的速度匹配,必须根据不同外设选择恰当的I/O数据传送方式。I/O数据传送方式有:同步传送、异步传送和中断传送。 1同步传送 同步传送又称无条件传送。当外设速度和单片机的速度相比拟时,常采用同步传送方式,典型的同步传送是单片机和外部数据存储器之间的数据传送。 2查询传送 又称有条件传送(也称异步式传送)。通过查询外设“准备好”后,再进行数据传送。优点是通用性好,硬件连线和查询程序简单,但工作效率不高。,8,9,3中

6、断传送 为了提高单片机对外设的工作效率,通常采用中断传送方式,来实现I/O数据的传送。单片机只有在外设准备好后,才中断主程序的执行,从而进入与外设数据传送的中断服务子程序,进行数据传送。中断服务完成后又返回主程序断点处继续执行。采用中断方式可大大提高工作效率。 。,9,10,9.2 利用74LSTTL电路扩展并行I/O口 在单片机应用中,有些场合需要降低成本、缩小体积,这时采用TTL电路、CMOS电路锁存器或三态门电路也可构成各种类型的简单输入/输出口。 如图9-20所示为一个利用74LS244和74LS273芯片,将P0口扩展成简单的输入/输出口的电路。 74LS244和74LS273的工作

7、受MCS-51的P2.0、 、 3条控制线控制。74LS244作为扩展输入口,8个输入端分别接8个按钮开关。74LS273是8D锁存器扩展输出口,接8个LED发光二极管,以显示8个按钮开关状态。,10,11,图9-20 74LSTTL I/O扩展举例,12,当某条输入口线的按钮开关按下时,该输入口线为低电平,读入单片机后,其相应位为“0”,然后再将口线的状态经74LS273输出,某位低电平时二极管发光,从而显示出按下的按钮开关的位置。 该电路的工作原理如下。 当P2.0=0, =0( =1)时,选中74LS244芯片,此时若无按钮开关按下,输入全为高电平。当某开关按下时则对应位输入为“0”,7

8、4LS244的输入端不全为“1”,其输入状态通过P0口数据线被读入MCS-51片内。,12,13,当P2.0 = 0, =1 ( = 0)时,选中74LS273芯片,CPU通过P0口输出数据锁存到74LS273,74LS273的输出端低电平位对应的LED发光二极管点亮。 总之,在图9-20中只要保证P2.0为“0”,其他地址位或“0”或“1”即可。如地址用FEFFH(无效位全为“1”),或用0000H(无效位全为“0”)都可。,13,14,输入程序段: MOV DPTR,#0FEFFH ;I/O地址DPTR MOVX A,DPTR ; 为低,74LS244数据被读入A中 输出程序段: MOV

9、A,#data ;数据#dataA MOV DPTR,#0FEFFH ;I/O地址#0FEFFHDPTR MOVX DPTR,A ; 为低,数据经74LS273口输出,14,15,【例9-9】 编写程序把按钮开关状态通过图9-20的发光二极管显示出来。程序如下: DDIS: MOV DPTR,#0FEFFH ;输入口地址DPTR LP: MOVX A,DPTR ;按钮开关状态读入A中 MOVX DPTR,A ;A中数据送显示输出口 SJMP LP ;反复连续执行 由程序可看出,对于扩展接口的输入/输出就像从外部RAM读/写数据一样方便。图9-20仅仅扩展了两片,如果仍不够用,还可扩展多片74L

10、S244、74LS273之类的芯片。但作为输入口时,一定要求有三态功能,否则将影响总线的正常工作。,15,16,9.3 用MCS-51单片机的串行口扩展并行口 串口的方式0用于I/O扩展。方式0为同步移位寄存器工作方式,波特率为fosc/12。数据由RXD端(P3.0)输入,同步移位时钟由TXD端(P3.1)输出。 9.3.1 用74LS165扩展并行输入口 图9-21串口扩展两个8位并行输入口。74LS165是8位并行输入串行输出的寄存器。当74LS165的S/ 端由高到低跳变,并行输入端的数据被置入寄存器;当S/ = 1,且时钟禁止端(15脚)为低时,允许TXD(P3.1)移位时钟输入,在

11、该脉冲作用下,数据由右向左方向移动。,16,17,TXD与所有74LS165的CP相连;RXD与74LS165的串行输出端QH相连;P1.0与 S/ 相连,控制74LS165的串行移位或并行输入;15脚接地,允许时钟输入。当扩展多个8位输入口时,相邻两芯片的首尾(QH与SIN)相连。 图9-21 利用74LS165扩展并行输入口,17,18,【例9-10】从16位扩展口读入5组数据(每组2B),把它们转存到内部RAM 20H开始的单元。 MOV R7,#05H ;设置读入组数 MOV R0,#20H ;设置内部RAM数据区首址 START: CLR P1.0 ;并行置入数据,S/ =0 SET

12、B P1.0 ;允许串行移位,S/ =1 MOV R2,#02H;设每组字节数, 即74LS165的个数 RXDATA:MOV SCON,#00010000H;设置串口方式0,允许 ;接收,启动接收过程,18,19,WAIT: JNB RI,WAIT ;未接收完一帧,循环等待 CLR RI ;RI标志清“0”,准备下次接收 MOV A,SBUF ;读入数据 MOV R0,A ;送至RAM缓冲区 INC R0 ;指向下一个地址 DJNZ R2,RXDATA ;未读完一组数据, 继续 DJNZ R7,START ;5组数据未读完重新并行置入 ;对数据进行处理,19,20,串行接收过程采用查询等待的

13、方式,如必要,可改中断方式。 9.3.2 用74LS164扩展并行输出口 图9-22为串口外接两片74LS164(8位串入并出移位寄存器)扩展两个8位并行输出口的接口电路。 图9-22 利用74LS164扩展并行输出口,20,21,当串口工作在方式0的发送,串行数据由P3.0(RXD)送出,移位时钟由P3.1(TXD)送出。注意,由于74LS164无并行输出控制端,在串行输入中,其输出端的状态会不断变化,故某些场合,在74LS164输出端应加接输出三态门控制,以便保证串行输入结束后再输出数据。 【例9-11】 将内部RAM单元30H、31H的内容经串行口由74LS164并行输出的子程序。 START:MOV R7,#02H ;设置要发送的字节个数 MOV R0,#30H ;设置地址指针 MOV SCON,#00H ;设置串行口为方式0,21,22,SEND: MOV A,R0 MOV SBUF,A ;启动串行口发送过程 WAIT: JNB TI,WAIT ;一帧未发完,等待 CLR TI INC R0 ;取下一个数 DJNZ R7,SEND ;未发完,继续,从子程序返回 RET,22,

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1