单片机_第9章IO接口扩展概述_第1页
单片机_第9章IO接口扩展概述_第2页
单片机_第9章IO接口扩展概述_第3页
单片机_第9章IO接口扩展概述_第4页
单片机_第9章IO接口扩展概述_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、,AT89S51有4个I/O口P0P3,真正用作I/O口线的只有P1口的8位I/O口线和P3口的某些位线。因此,外部I/O接口的扩展。 9.1 I/O接口扩展概述 9.1.1 扩展的I/O接口功能 1、实现和不同外设的速度匹配 大多数外设的速度很慢,无法和s量级的单片机速度相比。单片机在与外设间进行数据传送时,只有在确认外设已为数据传送做好准备的前提下才能进行数据传送。外设是否准备好,就需要I/O接口电路与外设之间传送状态信息,以实现单片机与外设之间的速度匹配。,2、输出数据锁存 由于单片机工作速度快,数据在数据总线上保留的时间十分短暂,无法满足慢速外设的数据接收。I/O电路应具有数据锁存器,

2、以保证接收设备接收。 3、输入数据三态缓冲 输入设备向单片机输入数据时,但数据总线上面可能“挂”有多个数据源,为不发生冲突,只允许当前正在进行数据传送的数据源使用数据总线,其余的应处于隔离状态。, 9.1.2 I/O端口的编址 一、I/O接口(Interface)和I/O端口(Port)的概念。 I/O端口:简称I/O口,指具有端口地址的寄存器或缓冲器。 I/O接口:是指单片机与外设间的I/O接口芯片。 一个I/O接口芯片可以有多个I/O端口,如并行扩展芯片8255的数据口、命令口、状态口等。 二、I/O端口编址 有两种方式:独立编址与统一编址。 1、独立编址方式 I/O寄存器地址空间和存储器

3、地址空间分开编址,但需专门读写I/O的指令和控制信号。 2、统一编址方式 I/O寄存器与数据存储器单元同等对待,统一编址,不需要专门的I/O指令。, 9.1.3 I/O数据的传送方式 为实现和不同的外设的速度匹配,I/O接口必须根据不同外设选择恰当的I/O数据传送方式。 1、同步传送方式(无条件传送) 当外设速度和单片机的速度相比拟时,常采用同步传送方式,如单片机和外部数据存储器之间的数据传送。 2、查询传送方式(条件传送,异步式传送) 查询外设“准备好”后,再进行数据传送。优点:通用性好,硬件连线和查询程序十分简单;缺点:效率不高。 3、中断传送方式 外设准备好后,发中断请求,单片机进入与外

4、设数据传送的中断服务程序,进行数据的传送。中断服务完成后又返回主程序继续执行。工作效率高。, 9.2 可编程并行I/O接口芯片82C55 9.2.1 82C55 芯片介绍 82C55是Intel生产的可编程并行I/O接口芯片,具有3个8位的并行I/O口,3种工作方式,可通过编程改变其功能,因而使用灵活方便,通用性强。 8255是IBM PC的标准元件之一,从80年代中期到90年代中期停产,在日本、台湾都大量生产过,加上Intel自己的产品,8255是产量最大的标准PC外围IC,所以市场上有大量拆板翻新货。,一、工作状态选择表,二、可向82C55控制寄存器写入两种不同的控制字 1、工作方式选择控

5、制字,2、PC口按位置位/复位控制字 PC口操作除了可访问PC口寄存器外;还可通过控制寄存器,对PC口中任何一位,进行置位或复位。,【例9-2】 AT89S51向82C55的控制字寄存器写入什么控制字, 使PC3置1、PC4清0。 程序段如下: MOVDPTR,#H ; 控制寄存器端口地址 ;H送DPTR MOV A,#07H MOVX DPTR,A;控制字07H送控制字寄存器 ;把PC3置1 MOVDPTR,#H ; 控制字寄存器端口地址 ;H送DPTR MOV A,#08H MOVXDPTR,A;控制字08H送控制字寄存器;把PC4清0, 9.2.4 AT89S51单片机与82C55的接口

6、设计,1、硬件接口电路 2、端口地址 地址选择线 A1/A0接P0.1/P0.0 CS接P0.7,未用到的线全为1, 所以: PA口:FF7CH PB口:FF7DH PC口:FF7EH 控制口:FF7FH,【例9-4】要求82C55工作在方式0,且PA口作为输入,PB口、PC口作为输出,程序如下: MOVA,#90H ;控制字送A MOVDPTR,#0FF7FH;控制寄存器地址FF7FHDPTR MOVXDPTR,A;方式控制字控制寄存器 MOVDPTR,#0FF7CH;PA口地址FF7CHDPTR MOVXA,DPTR;从PA口读入数据A MOVDPTR,#0FF7DH;PB口地址FF7DH

7、DPTR MOVA,#data1;要输出的数据#data1A MOVXDPTR,A;将#data1送PB口输出 MOVDPTR,#0FF7EH;PC口地址DPTR MOVA,# data 2;数据#data 2A MOVXDPTR,A;将数据#data 2送PC口输出, 9.4 利用74LSTTL电路扩展并行I/O口 在单片机应用中,有些场合需要降低成本、缩小体积,这时采用TTL电路、CMOS电路锁存器或三态门电路也可构成各种类型的简单输入/输出口。 如图9-20所示为一个利用74LS244和74LS273芯片,将P0口扩展成简单的输入/输出口的电路。 74LS244和74LS273的工作受A

8、T89S51的P2.0、WR、RD三条控制线控制。 74LS244是单向八总线缓冲器(三态同相输出),作为扩展输入口,8个输入端分别接8个按钮开关。 74LS273是8D锁存器,扩展输出口,接8个LED发光二极管,以显示8个按钮开关状态。,输入口(74LS244)、输出口(74LS273)地址均为FEFFH/0000H。,9.5 用AT89S51单片机的串行口扩展并行口 串行口的方式0为同步移位寄存器工作方式,用于I/O扩展,波特率为fosc/12。数据由RXD端(P3.0)输入,同步移位时钟由TXD端(P3.1)输出。 9.5.1 用74LS165扩展并行输入口 74LS165是8位并行输入

9、串行输出的移位寄存器。 当74LS165的S/L端为低时,并行输入端的数据被置入寄存器;当S/L =1,且时钟禁止端(15脚)为低时,允许TXD(P3.1)移位时钟输入,在该脉冲作用下,数据由右向左方向(朝H方向)移动。,TXD与所有74LS165的CP相连;RXD与74LS165的串行输出端QH相连;P1.0与 S/L相连,控制74LS165的串行移位或并行输入;当扩展多个8位输入口时,相邻两芯片的首尾(QH与SIN)相连,即级联。,【例9-10】从16位扩展口读入5组数据(每组2B),把它们转存到内部RAM 20H开始的单元。 MOVR7,#05H;设置读入组数 MOV R0,#20H;设

10、置内部RAM数据区首址 START:CLR P1.0;并行置入数据,S/L =0 SETB P1.0;允许串行移位,S/L =1 MOV R2,#02H ;设每组字节数, 即74LS165的个数 RXDATA:MOV SCON,#10H ;设置串口方式0,允许接收 WAIT: JNB RI,WAIT;未接收完一帧,循环等待 CLR RI;RI标志清“0”,准备下次接收 MOV A,SBUF;读入数据 MOV R0,A;送至RAM缓冲区 INC R0;指向下一个地址 DJNZ R2,RXDATA;未读完一组数据, 继续 DJNZ R7,START ;5组数据未读完重新并行置入 ;对数据进行处理,9.5.2 用74LS164扩展并行输出口 74LS164是串入并出移位寄存器。 在CP端的上升沿,数据由左向右方向(朝QH方向)移动,A/B端数据移到QA端。CLR=0时将所有输出清0。,【例9-11】将内部RAM单元30H、31H的内容经串行口由74LS164并行输出的子程序。 START: MOVR7,#02H;设置要

温馨提示

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

评论

0/150

提交评论