170 likes | 330 Views
第九章 MCS – 51 单片机的接口与应用. 本章的主要内容: 9.1 并行接口技术 9.2 按键、键盘及其接口 9.3 显示及显示器接口 9.4 A/D 转换器接口 9.5 D/A 转换器接口. MCS-51 单片机应用系统中 I/O 口扩展用芯片主要有 通用 I/O 口芯片和 TTL 、 CMOS 锁存器、缓冲器电路芯片两大类。. 一、简单并行 I/O 口扩展概述 1 .简单 I/O 口的扩展 方法:输出接锁存器 输入接缓存器 2. 对 I/0 口的操作同 RAM
E N D
本章的主要内容: 9.1 并行接口技术 9.2 按键、键盘及其接口 9.3 显示及显示器接口 9.4 A/D转换器接口 9.5 D/A转换器接口
MCS-51单片机应用系统中I/O口扩展用芯片主要有 通用I/O口芯片和TTL、CMOS锁存器、缓冲器电路芯片两大类。 一、简单并行I/O口扩展概述 1.简单I/O口的扩展 方法:输出接锁存器 输入接缓存器 2.对I/0口的操作同RAM 输出:MOVX @DPTR,A 或MOVX @Ri ,A 输入:MOVX A,@DPTR 或MOVX A,@Ri
二.可编程接口电路的扩展(8255) 通用I/O口芯片选用Intel公司的芯片,其接口最为简捷可靠, 如8255、8155等。
1.芯片引脚及其内部结构 图9.1 8255A芯片的引脚图
(1) 数据总线缓冲器:是一个8位的双向三态驱动器,用于与单片机的数据总线相连。 (2) 读/写控制逻辑:根据单片机的地址信息(A1、A0)与控制信息(RD、WR、RESET),控制片内数据、CPU控制字、外设状态信息的传送。 (3) 控制电路:根据CPU送来的控制字使所管I/O口按一定方式工作。对C口甚至可按位实现"置位"或"复位"。控制电路分为两组:A组控制电路控制A口及C口的高4位(PC7~PC4),B组控制电路控制B口及C口的低4位(PC3~PC0)。 (4) 三个并行I/O端口:A口可编程为8位输入,或8位输出,或双向传送;B口可编程为8位输入,或8位输出,但不能双向传送;C口分为两个4位口,用于输入或输出,也可用作A口、B口的状态控制信号。
2.8255的操作方式 1) 8255的三种工作方式 方式0(基本输入/输出方式):A口、B口及C口的两个4位口中任何一个端口都可以由程序设定为输入或输出。作为输出口时,输出数据被锁存;作为输入口时,输入数据不锁存。 方式1(选通输入/输出方式):在这种工作方式下,A、B、C三个口分为两组。A组包括A口和C口的高4位,A口可由编程设定为输入口或输出口,C口的高4位则用来作为A口输入/输出操作的控制和同步信号;B组包括B口和C口的低4位,B口可由编程设定为输入口或输出口,C口的低4位则用来作为B口输入/输出操作的控制和同步信号。A口和B口的输入数据或输出数据都被锁存。
2) 8255A的编程控制字 (a) 方式选择控制字;(b) C口置位/复位控制字
3.8031与8255的接口方法 图9-3 8255的扩展连接图
连接方法: 1. 地址线 8255的A0、A1 去接锁存器的Q0、Q1 2.片选线 接锁存器的Q7 3.D0~D7 去接单片机的P0 4. 读/RD接单片机/RD 写/WR 接单片机的/WR RESET接单片机的RESET 地址 P0.7 =0 P0.1P0.0 0 0-----------PA (FF7C) 0 1---------- PB (FF7D) 1 0 --------- PC (FF7E) 1 1--------- 控制寄存器(FF7F)
例1 试对图9-3中的8255A编程,使其各口工作于方式0,A口作输入,B口作输出,C口高4位作输出,C口的低4位作输入。 • 由方式选择控制字的格式与 定义可确定出满足要求的方式控制字应为91H(10010001B)。对8255A编写程序将91H写入它的控制寄存器,初始化程序为: • MOV DPTR,#FF7FH ;DPTR作地址指针,指向控制口 • MOV A,91H • MOVX @DPTR,A • 因为图9-3扩展电路未使用高位地址线,所以端口地址也可使用8位。
例2 试按图8.13扩展电路,写出自8255的B口输出单片机中R7内容与,自8255的A口输入数据到单片机R3的程序。 使用8位地址,8255A的A、B、C口及控制口地址分别为7CH、7DH、7EH、7FH。则实现所要求功能的程序为: A口的方式0,输出 B口的方式0,输入
MOV DPTR,#007FH ; DPTR作地址指针,指向控制口 • MOV A,#91H ;均为方式0 ,A输入,B输出, • MOVX @DPTR,A ;方式控制字送控制寄存器 • MOV DPTR,#007DH ; DPTR指向B口 • MOV A,R7 ; • MOVX @DPTR,A ;R7的内容输出到B口 • DEC DPTR ;使DPTR指向A口 • MOVX A,@DPTR ;从A口输入数据到累加器A • MOV R3,A ;把输入数据送存到R3中