《单片机原理及应用 第二版 张毅刚第9章》由会员分享,可在线阅读,更多相关《单片机原理及应用 第二版 张毅刚第9章(91页珍藏版)》请在金锄头文库上搜索。
1、1,第9章 AT89S51单片机 的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 AT89S51扩展I/O接口芯片82C55的设计9.2.1 82C55芯片简介9.2.2 工作方式选择控制字及端口PC置位/复位控制字9.2.3 82C55的3种工作方式9.2.4 AT89S51单片机与82C55的接口设计,3,9.3 AT89S51扩展I/O接口芯片81C55的设计9.3.1 81C55芯片介绍9.3.2 81C55的工作方式9.3.3 AT89S5
2、1单片机与81C55的接口设计及软件编程 9.4 利用74LSTTL电路扩展并行I/O口 9.5 用AT89S51单片机的串行口扩展并行口9.5.1 用74LS165扩展并行输入口9.5.2 用74LS164扩展并行输出口 9.6 用I/O口控制的声音报警接口9.6.1 蜂鸣音报警接口9.6.2 音乐报警接口,4,内容概要 AT89S51有4个I/O口P0P3,真正用作I/O口线的只有P1口的8位I/O口线和P3口的某些位线。因此,大多需要外部I/O接口的扩展。 介绍AT89S51与两种常用的可编程I/O接口芯片82C55和81C55的扩展接口设计。此外还介绍使用廉价的74LSTTL芯片扩展并
3、行I/O接口以及用AT89S51串行口来扩展并行I/O接口的设计。最后介绍使用I/O口控制的声音报警接口。,5,9.1 I/O接口扩展概述 扩展I/O接口与扩展存储器一样,都属于系统扩展的内容。扩展的I/O接口应该具有哪些功能? 9.1.1 扩展的I/O接口功能 扩展的I/O接口电路主要应满足以下功能要求。 1实现和不同外设的速度匹配 大多数外设的速度很慢,无法和s量级的单片机速度相比。单片机在与外设间进行数据传送时,只有在确认外设已为数据传送做好准备的前提下才能进行数据传送。外设是否准备好,就需要I/O接口电路与外设之间传送状态信息,以实现单片机与外设之间的速度匹配。,5,6,2输出数据锁存
4、 与外设比,单片机的工作速度快,数据在数据总线上保留的时间十分短暂,无法满足慢速外设的数据接收。所以在扩展的I/O接口电路中应有输出数据锁存器,以保证输出数据能为慢速的接收设备所接收。 3输入数据三态缓冲 数据总线上可能“挂”有多个数据源,为使传送数据时不发生冲突,只允许当前时刻正在接收数据的I/O接口使用数据总线,其余的I/O接口应处于隔离状态,为此要求I/O接口电路能为数据输入提供三态缓冲功能。,6,7,9.1.2 I/O端口的编址介绍I/O端口编址之前,首先要弄清楚I/O接口和I/O端口的概念。I/O接口是单片机与外设间的连接电路的总称。I/O端口(简称I/O口)是指I/O接口电路中具有
5、单元地址的寄存器或缓冲器。一个I/O接口芯片可以有多个I/O端口,如数据口,命令口,状态口。当然,并不是所有的外设都一定需要3种端口齐全的I/O接口。每个I/O接口中的端口都要有地址,以便AT89S51通过读写端口来和外设交换信息。常用的I/O端口编址有两种方式,独立编址方式与统一编址方式。,7,8,1独立编址 I/O端口地址空间和存储器地址空间分开编址。优点是I/O地址空间和存储器地址空间相互独立,界限分明。但需要设置一套专门的读写I/O端口的指令和控制信号。 2统一编址 把I/O端口与数据存储器单元同等对待。I/O端口和外部数据存储器RAM统一编址。因此外部数据存储器空间也包括I/O端口在
6、内。 优点是不需专门的I/O指令。缺点是需要把数据存储器单元地址与I/O端口的地址划分清楚,避免数据冲突。,8,9,9.1.3 I/O数据的传送方式 为了实现和不同外设的速度匹配,必须根据不同外设选择恰当的I/O数据传送方式。I/O数据传送方式有:同步传送、异步传送和中断传送。 1同步传送 同步传送又称无条件传送。当外设速度和单片机的速度相比拟时,常采用同步传送方式,典型的同步传送是单片机和外部数据存储器之间的数据传送。 2查询传送 又称有条件传送(也称异步式传送)。通过查询外设“准备好”后,再进行数据传送。优点是通用性好,硬件连线和查询程序简单,但工作效率不高。,9,10,3中断传送 为了提
7、高单片机对外设的工作效率,通常采用中断传送方式,来实现I/O数据的传送。单片机只有在外设准备好后,才中断主程序的执行,从而进入与外设数据传送的中断服务子程序,进行数据传送。中断服务完成后又返回主程序断点处继续执行。采用中断方式可大大提高工作效率。 9.1.4 I/O接口电路 常用的外围I/O接口芯片: (1)82C55:可编程通用并行接口(3个8位I/O口)。,10,11,(2)81C55:可编程的IO/RAM扩展接口电路(2个8位I/O口,1个6位I/O口,256RAM单元,1个14位的减法计数器)。 都可以和AT89S51直接连接,接口逻辑简单。 9.2 AT89S51扩展I/O接口芯片8
8、2C55的设计 先介绍可编程并行I/O接口芯片82C55的应用特性,然后介绍AT89S51与82C55的接口电路以及软件设计。 9.2.1 82C55芯片简介 Intel公司的可编程并行I/O接口芯片,3个8位并行I/O口,3种工作方式,单片机与多种外设连接时的中间接口电路。引脚及内部结构如图9-1和图9-2所示。,11,12,12,图9-1 82C55的引脚图 图9-2 82C55的内部结构,13,1引脚说明 共40个引脚,引脚功能如下: D7D0:三态双向数据线,与单片机的P0口连接,用来与单片机之间传送数据信息。:片选信号线,低有效,表示本芯片被选中。:读信号线,低有效,读82C55端口
9、数据的控制信号。:写信号线,低电平有效,用来向82C55写入端口数据的控制信号。 VCC:+5V电源。,13,14,PA7PA0:端口A输入/输出线。 PB7PB0:端口B输入/输出线。 PC7PC0:端口C输入/输出线。 A1、A0:地址线,用来选择82C55内部的4个端口。 RESET:复位引脚,高电平有效。 2内部结构 如图9-2所示,3个并行数据输入/输出端口,两种工作方式的控制电路,一个读/写控制逻辑电路和一个8位数据总线缓冲器。 各部件的功能如下:,14,15,(1)端口PA、PB、PC 3个8位并行口PA、PB和PC,都可以选为输入/输出工作模式,功能和结构上有差异。 PA口:一
10、个8位数据输出锁存器和缓冲器;一个8位数据输入锁存器。 PB口:一个8位数据输出锁存器和缓冲器;一个8位数据输入缓冲器。 PC口:一个8位的输出锁存器;一个8位数据输入缓冲器。 通常PA口、PB口作为输入/输出口,PC口既可作为输入/输出口,也可在软件控制下,分为两个4位的端口,作为端口PA、PB选通方式操作时的状态控制信号。,15,16,(2)A组和B组控制电路 是两组根据AT89S51写入的“命令字”控制82C55工作方式的控制电路。A组控制PA口和PC口的上半部(PC7PC4);B组控制PB口和PC口的下半部(PC3PC0),并可用“命令字”来对端口PC的每一位实现按位置“1”或清“0”
11、。 (3)数据总线缓冲器 数据总线缓冲器是一个三态双向8位缓冲器,作为82C55与系统总线之间的接口,用来传送数据、指令、控制命令以及外部状态信息。,16,17,(4)读/写控制逻辑电路 接收AT89S51单片机发来的控制信号 、 、RESET、地址信号A1、A0等,然后根据控制信号的要求,端口数据被AT89S51单片机读出,或者将AT89S51单片机送来的数据写入端口。 各端口工作状态与控制信号的关系见表9-1。,17,18,18,19,9.2.2 工作方式选择控制字及端口PC置位/复位控制字可向82C55控制寄存器写入两种不同的控制字。 1工作方式选择控制字82C55有3种基本工作方式:(
12、1)方式0基本输入/输出;(2)方式1选通输入/输出;(3)方式2双向传送(仅PA口有此工作方式)。3种工作方式方式控制字来决定。格式如图9-3所示。最高位D7=1,为本方式控制字的标志,以便与另一控制字相区别(最高位D7 = 0)。,19,20,20,图9-3 82C55的方式控制字格式,21,PC口分两部分,随PA口称为A组,随PB口称为B组。其中PA口可工作于方式0、1和2,而PB口只能工作在方式0和1。 【例9-1】 AT89S51向82C55的控制字寄存器写入工作方式控制字95H,根据图9-3,将82C55编程设置为:PA口方式0输入,PB口方式1输出,PC口的上半部分(PC7PC4
13、)输出,PC口的下半部分(PC3PC0)输入。 MOV DPTR,#H ;控制字寄存器端口地址;H送DPTR MOV A,#95H ; 方式控制字83H送A MOVX DPTR,A ; 控制字83H送控制字寄存器,21,22,2PC口按位置位/复位控制字 为另一控制字。即PC口中任何一位,可用一个写入82C55控制口的置位/复位控制字来对PC口按位置“1”或清“0”。用于位控。格式如图9-4所示。 【例9-2】 AT89S51向82C55的控制字寄存器写入工作方式控制字07H,则PC3置1;08H写入控制口,则PC4清0。程序段如下: MOV DPTR,#H ; 控制寄存器端口地址;H送DPT
14、R MOV A,#07H ; 方式控制字83H送A,22,23,图9-4 PC口按位置位/复位控制字格式,24,MOVX DPTR,A; 控制字83H送控制寄存器,把PC3置1 MOV DPTR,#H; 控制字寄存器端口地址送DPTR MOV A,#08H ; 方式控制字08H送A MOVX DPTR,A ; 08H送控制字寄存器,PC4清0,24,25,9.2.3 82C55的3种工作方式 1方式0 是基本输入/输出方式。T89S51可对82C55进行I/O数据的无条件传送。 例如,AT89S51单片机从82C55的某一输入口读入一组开关状态,从82C55输出控制一组指示灯的亮、灭。并不需要
15、任何条件,外设I/O数据可在82C55的各端口得到锁存和缓冲。因此,方式0称为基本输入/输出方式。 方式0下,3个端口都可以由软件设置为输入或输出,不需要应答联络信号。方式0的基本功能如下:,25,26,(1)具有两个8位端口(PA、PB)和两个4位端口(PC的上半部分和下半部分)。 (2)任何端口都可以设定为输入或输出,各端口的输入、输出共有16种组合。 PA口、PB口和PC口均可设定为方式0,并可根据需要,向控制寄存器写入工作方式控制字,规定各端口为输入或输出方式。,27,【例9-3】 假设82C55的控制字寄存器端口地址为FF7FH,令PA口和PC口的高4位为方式0输出,PB口和PC口的
16、低4位为方式0输入,初始化程序: MOV DPTR,#0FF7FH ; 端口地址#0FF7F送DPTR MOV A,#83H ; 方式控制字83H送A MOVX DPTR,A ; 控制字83H送控制字寄存器,27,28,2方式1 是一种采用应答联络的输入/输出工作方式。 PA口、PB口皆可设成这种工作方式。 在方式1下,82C55的PA口和PB口通常用于I/O数据的传送,PC口用作PA口和PB口的应答联络信号线,以实现采用中断方式来传送I/O数据。 PC口的PC7PC0的应答联络线是规定好的,其各位分配如图9-5和图9-7所示,图中,标有I/O的各位仍可用作基本输入/输出,不作应答联络用。 下介绍方式1输入/输出时的应答联络信号与工作原理。,28,