- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第8章 51单片机IO扩展
第8章 单片机的I/O扩展;本章内容;8.1 单片机的系统扩展概述;8.1 单片机I/O扩展概述;常用编址方法有:独立编址和统一编址。
MCS-51单片机采用与外部RAM统一编址方法,即每一个扩展的I/O口相当于一个扩展的RAM单元;
访问外部I/O口的指令同访问外部数据存储器指令。 ;(1)无条件传送方式
无条件传送也称为同步程序传送。
只有那些能一直为数据I/O传送作好准备的设备,才能使用无条件传送方式。因为在进行I/O操作时,不测试设备的状态,可以根据需要随时进行数据传送操作。
该方式适用于两类设备的数据输入/输出:
具有常驻的数据信号
变化缓慢的数据信号的设备。
无条件传送接口逻辑示于图8-1;图8-1 无条件传送的接口逻辑;在I/O操作之前,要先检浏设备的状态,以了解设备是否已为数据I/O作好了准备;
只有在确认设备已“准备好”的情况下,单片机才能执行数据I/O操作。操作流程见图8-2
为了实现查询方式的数据传送,需要由接口电路提供设备状态,并以软件方法进行状态测试。这是一种软硬件方法结合的数据传送方式。
程序查询方式,电路简单,查询软件也不复杂,而且通用性强。 ;中断方式又称程序中断方式、它与查询方式的主要区别在于知何知道设备是否为数据传送作好了准备,查询方式是单片机的主动形式,而中断方式则是单片机等待通知(中断请求)的被动形式。
采用中断方式进行数据传送时,当设备为数据传送作好准备之后,就向单片机发出中断请求;
单片机接收到中断请求之后,即作出响应,暂停正在执行的原程序,而转去为设备的数据输入/输出服务
待服务完成之后,程序返回,单片机再继续执行被中断的原程序。中断传送逻辑见图8-3。;图8-3 中断方式数据传送逻辑;I/O扩展的分类;8.2 简单I/O口扩展;8位数据/地址锁存器74LS273/373;表8-2 74LS273真值表;图8-5 74LS273封装图;
;图8-6 74LS373内部结构图;图8-7 74LS373引脚功能图;(3)74LS244;(3)74LS244(续);(4)74LS245;(4)74LS245(续);8.2.2 简单I/O口扩展;简单输出口扩展;简单并行口扩展应用举例 ;【例8-1】 如图8-12所示为一个利用74LS244和74LS273芯片,将P0口扩展成简单的输入/输出口的电路。
74LS244和74LS273的工作受AT89S51的P2.0、RD#、WR# 3条控制线控制。
74LS244作为扩展输入口,8个输入端分别接8个按钮开关。
74LS273是8D锁存器扩展输出口,接8个LED发光二极管,以显示8个按钮开关状态。
当某条输入口线的按钮开关按下时,该输入口线为低电平,读入单片机后,其相应位为“0”,然后再将口线的状态经74LS273输出,某位低电平时二极管发光,从而显示出按下的按钮开关的位置。;该电路的工作原理如下
当P2.0=0,RD#=0(WR#=1)时,选中74LS244芯片,此时若无按钮开关按下,输入全为高电平。当某开关按下时则对应位输入为“0”,74LS244的输入端不全为“1”,其输入状态通过P0口数据线被读入AT89S51片内。
当P2.0=0,WR#=0(RD#=1)时,选中74LS273芯片,CPU通过P0口输出数据锁存到74LS273,74LS273的输出端低电平位对应的LED发光二极管点亮。
总之,在图8-12中只要保证P2.0为“0”,其他地址位或“0”或“1”即可。如地址用FEFFH(无效位全为“1”),或用0000H(无效位全为“0”)都可。
;输入程序段:
MOV DPTR,#0FEFFH ;I/O地址→DPTR
MOVX A,@DPTR ;RD#为低,74LS244数据被读入A中
输出程序段:
MOV A,#data ;数据#data→A
MOV DPTR,#0FEFFH ;I/O地址#0FEFFH→DPTR
MOVX @DPTR,A ;WR#为低,数据经74LS273口输出;程序如下:
DDIS: MOV DPTR,#0FEFFH ;输入口地址→DPTR
LP: MOVX A,@DPTR ;按钮开关状态读入A中
MOVX @DPTR,A ;A中数据送显示输出口
SJMP LP ;反复连续执行
由程序可看出,对于扩展接口的输入/输出就像从外部RAM读/写数据一样方便。图8-12仅仅扩展了两片,如果仍不够用,还可扩展多片74LS244、74LS273之类的芯片。但作为输入口时,一定要求有三态功能,否则将影响总线的正常工作。;8.3 用51单片机的串行口扩展并行口;用74LS165扩展并行输入口;【例8-2】从16位扩展口读入5组数据
文档评论(0)