
接口扩展设计及应.ppt
98页8.1 I/O扩展概述扩展概述 8.2 MCS-51单片机与可编程并行单片机与可编程并行I/OI/O芯片芯片8255A8255A的接口的接口8.3 MCS-51与可编程芯片与可编程芯片8155的接口的接口8.4 TTL芯片扩展简单的芯片扩展简单的I/O接口接口8.5 键盘键盘/显示器接口芯片显示器接口芯片8279教学目的和要求教学目的和要求• 本章主要介绍本章主要介绍MCS-51MCS-51系列单片机接系列单片机接口电路、简单接口和可编程接口口电路、简单接口和可编程接口82558255、、81558155、、82798279的结构原理及应用要求重的结构原理及应用要求重点掌握点掌握MCS-51MCS-51系统单片机接口电路、简系统单片机接口电路、简单电路和可编程接口单电路和可编程接口82558255、、81558155内部结内部结构及应用方法构及应用方法I/O扩扩展展概概述述 vI/O扩展概述扩展概述v在多数应用系统中,在多数应用系统中,MCS-51单片机都需要外扩输入输出单片机都需要外扩输入输出(I/O)接口芯片接口芯片vMCS-51单片机的外部数据存储器单片机的外部数据存储器RAM和和I/O是统一编址的,是统一编址的,用户可以把外部用户可以把外部64K字节的数据存储器字节的数据存储器RAM空间的一部分空间的一部分作为扩展作为扩展I/O接口的地址空间,每一个接口芯片中的一个功接口的地址空间,每一个接口芯片中的一个功能寄存器口地址就相当于一个能寄存器口地址就相当于一个RAM存储单元,存储单元,CPU可以向可以向访问外部存储器访问外部存储器RAM那样访问外部接口芯片,对其功能寄那样访问外部接口芯片,对其功能寄存器进行读、写操作。
存器进行读、写操作 I/O扩扩展展概概述述vIntel公司常用的外围接口芯片有:公司常用的外围接口芯片有:v8255:可编程的通用并行接口电路:可编程的通用并行接口电路(3个个8位位I/O口口)v8155:可编程的:可编程的RAM/IO扩展接口电路扩展接口电路(256个个RAM字节单字节单元,元,2个个8位位I/O口,口,1个个6位位I/O口,口,1个个14位的减法定时器/位的减法定时器/计数器计数器)v8279:可编程键盘、显示接口可编程键盘、显示接口v它们都可以和它们都可以和MCS-51单片机直接相接,且接口逻辑十分简单片机直接相接,且接口逻辑十分简单另外74LS系列的系列的LSTTL电路也可以作为电路也可以作为MCS-51的扩的扩展展I/O口,如口,如74LS373、、74LS377等 I/O扩扩展展概概述述v常用的常用的I/O编址有两种方式:独立编址方式和统编址有两种方式:独立编址方式和统一编址方式一编址方式v所谓独立编址,就是把所谓独立编址,就是把I/O和存储器分开进行编址,亦即各编各和存储器分开进行编址,亦即各编各的地址这样在计算机系统中就形成了两个独立的地址空间:存的地址。
这样在计算机系统中就形成了两个独立的地址空间:存储器地址空间和储器地址空间和I/O地址空间地址空间 因此在使用独立编址方式的计算机指令系统中,除存储器读写指因此在使用独立编址方式的计算机指令系统中,除存储器读写指令外,还有专门的令外,还有专门的I/O指令以进行数据输入输出操作指令以进行数据输入输出操作v统一编址就是把系统中的统一编址就是把系统中的I/O和存储器统一进行编址在这种编和存储器统一进行编址在这种编址方式中,把址方式中,把I/O接口中的寄存器(端口)与存储器中的存储单接口中的寄存器(端口)与存储器中的存储单元同等对待元同等对待 采用这种编址方式的计算机只有一个统一的地址空间,该地址空采用这种编址方式的计算机只有一个统一的地址空间,该地址空间既供存储器编址使用,也供间既供存储器编址使用,也供I/O编址使用编址使用I/O扩扩展展概概述述vMCS-51单片机使用统一编址方式单片机使用统一编址方式因此在接口因此在接口电路中的电路中的I/O编址也采用编址也采用16位地址,同存储单元位地址,同存储单元地址长度一样对片外地址长度一样对片外I/O的输入输出指令就是的输入输出指令就是访问访问RAM的指令。
的指令vMCS-51单片机进行扩展单片机进行扩展I//O接口设计时,要注意以下几接口设计时,要注意以下几个问题:个问题: (1)熟悉熟悉MCS-51本身的本身的PO~P3口特性及指令功能口特性及指令功能 (2)分析清楚要扩展的接口芯片的功能、结构及能力分析清楚要扩展的接口芯片的功能、结构及能力 (3)在进行硬件设计时要注意接口电平及驱动能力在进行硬件设计时要注意接口电平及驱动能力 (4)设计驱动程序要注意,防止总线上的数据冲突应根设计驱动程序要注意,防止总线上的数据冲突应根据据 实际情况采用不同的数据传送控制方式实际情况采用不同的数据传送控制方式 8255A芯芯片片介介绍绍v8255A芯片介绍芯片介绍v8255A8255A是是IntelIntel公司生产的可编程输入输出接口芯公司生产的可编程输入输出接口芯片,它具有片,它具有3 3个个8 8位的并行位的并行I/OI/O口,分别为口,分别为PAPA口、口、PBPB口和口和PCPC口,其中口,其中PCPC口又分为高口又分为高4 4位口(位口(PC7PC7— PC4PC4))和低和低4 4位口(位口(PC3 PC3 — PC0 PC0),),它们都可以通它们都可以通过软件编程来改变过软件编程来改变I/OI/O口的工作方式。
口的工作方式8255A8255A可以可以与与MCS-51MCS-51单片机直接接口单片机直接接口8255A芯芯片片介介绍绍v8255A的引脚如图的引脚如图8-1所示8255A的结构框图如的结构框图如图图8-2所示 它由以下几个部分组成:它由以下几个部分组成:(1)数据端口数据端口A、、B、、C①①PA口:一个口:一个8位数据输出锁存器位数据输出锁存器和缓冲器;一个和缓冲器;一个8位数据输入锁存器位数据输入锁存器②②PB口:一个口:一个8位数据输出锁存器位数据输出锁存器和缓冲器;一个和缓冲器;一个8位数据输入缓冲器位数据输入缓冲器③③PC口:一个口:一个8位的输出锁存器;位的输出锁存器;一个一个8位数据输人缓冲器位数据输人缓冲器8255A芯芯片片介介绍绍v8255A的结构框图的结构框图8255A芯芯片片介介绍绍 ((2))A组和组和B组控制电路组控制电路这是两组根据这是两组根据CPU写入的写入的“命令字命令字”控制控制8255A工作方式工作方式的控制电路的控制电路A组控制组控制PA口和口和PC口的上半部(口的上半部(PC7-PC4););B组控制组控制PB口和口和PC口的下半部(口的下半部(PC3-PC0)。
3)双向三态数据缓冲器双向三态数据缓冲器 这是这是8255A和和CPU数据总线的接口,数据总线的接口,CPU和和8255A之间的之间的命令、数据和状态的传递都通过双向三态总线缓冲器传送命令、数据和状态的传递都通过双向三态总线缓冲器传送的,的,D7-D0接接CPU的数据总线的数据总线8255A芯芯片片介介绍绍(4)读写和控制逻辑读写和控制逻辑A0、、A1、、 CS 为为8255A的端口选择信号和片选信号,的端口选择信号和片选信号, RD 、、WR 为为8255A的读写控制信号,这些信号线分别和的读写控制信号,这些信号线分别和MCS-51的地址线和的地址线和读写信号线相连接,实现读写信号线相连接,实现CPU对对8255A的口选择和数据传送的口选择和数据传送CPU对对8255A的的A口、口、B口、口、C口和控制口的寻址如表口和控制口的寻址如表8-1所示 (5)复位控制复位控制引脚引脚RESET为复位信号输入脚,高电平有效复位有效时,它把为复位信号输入脚,高电平有效复位有效时,它把控制寄存器清零和控制寄存器清零和 置所有端口置所有端口(A、、B、、C)为输入方式为输入方式 8255A芯芯片片介介绍绍v表表8-1 8255A端口选择表端口选择表操作操作CSA1A0RDWR功能功能输入输入00001A口口→数据总线数据总线(读端口读端口A)输入输入00101B口口→数据总线数据总线(读端口读端口B)输入输入01001C口口→数据总线数据总线(读端口读端口C)输入输入01101状态寄存器状态寄存器→数据总线数据总线输出输出00010数据总线数据总线→A口口(写端口写端口A)输出输出00110数据总线数据总线→B口口(写端口写端口B)输出输出01010数据总线数据总线→C口口(写端口写端口C)输出输出01110数据总线数据总线→控制寄存器控制寄存器禁止禁止1××××数据总线为高阻态数据总线为高阻态3种种工工作作方方式式及及选选择择v8255A的的3种工作方式及选择种工作方式及选择v8255A有三种基本工作方式:有三种基本工作方式: 方式方式0一基本输入输出;一基本输入输出; 方式方式1一选通输入输出;一选通输入输出; 方式方式2一双向传送一双向传送(仅仅PA口口)。
v工作方式的选择由工作方式的选择由CPU输出的控制字决定输出的控制字决定 1..“方式方式”选择控制字选择控制字8255A的工作方式,它可由的工作方式,它可由CPU送出一个控制字到送出一个控制字到8255A的控制的控制字寄存器来选择字寄存器来选择 这个控制字的格式如图这个控制字的格式如图8-3所示,可以分别选择端口所示,可以分别选择端口A和端口和端口B的工作方式,的工作方式,端口端口C分成两部分,上半部分随端口分成两部分,上半部分随端口A,,下半部随端口下半部随端口B端口端口A有方式有方式0、、1和和2三种,而端口三种,而端口B只能工作于方式只能工作于方式0和和1最高位D7是是该控制字的标志位,其状态固定为该控制字的标志位,其状态固定为1,用于表明本字节是方式控制字用于表明本字节是方式控制字3种种工工作作方方式式及及选选择择8255A8255A的的控控制制字字3种种工工作作方方式式及及选选择择v例例8-1:: 若对若对8255A作如下设置:作如下设置:A口方式口方式0输入,输入,B口方式口方式1输出,输出,C口高位部分输出低位部分为输口高位部分输出低位部分为输入。
设控制寄存器地址为入设控制寄存器地址为0FFFBH按各口的设置要求,工作方式控制字为按各口的设置要求,工作方式控制字为10010101B,即,即95H则初始化程序段为:则初始化程序段为:MOV DPTR,,#0FFFBHMOV A,,#95HMOVX @DPTR,,A3种种工工作作方方式式及及选选择择2..C口按位置位口按位置位/复位功能复位功能端口端口C的的8位中的任一位,可用一个写入位中的任一位,可用一个写入8255A的控制口的置位复的控制口的置位复位控制字来置位或复位这个功能主要用于控制控制字的格式位控制字来置位或复位这个功能主要用于控制控制字的格式如图如图8-4所示D7是该控制字的标志,其状态固定为是该控制字的标志,其状态固定为0v例例8-2:如果想把:如果想把8255A的的C口的口的PC1置置1,,PC7复位,该如复位,该如何对何对8255A编程将03H写入控制口,置写入控制口,置“1”PC1;;0EH写写入控制口,清入控制口,清“0”PC7设控制寄存器地址为设控制寄存器地址为0FFFBH程序如下:程序如下:MOV DPTR,,#0FFFBHMOV A,,#03HMOVX @DPTR,,AMOV A,,#0EH MOVX @DPTR,,A3种种工工作作方方式式及及选选择择3种种工工作作方方式式及及选选择择3.方式.方式0的功能的功能①①两个两个8位端口位端口(A和和B)和两个和两个4位端口位端口(口口C)。
②②任一个端口都可以作为输入或输出任一个端口都可以作为输入或输出③③输出是锁存的输出是锁存的④④输入是不锁存的输入是不锁存的⑤⑤在方式在方式0时,各个端口的输入、输出可有时,各个端口的输入、输出可有16种种不同的组合不同的组合 在这种工作方式下,由于是无条件的传送,所以不需要状在这种工作方式下,由于是无条件的传送,所以不需要状态端口,三个端口都可作为数据端口在态端口,三个端口都可作为数据端口在MCS-51系统中,系统中,只要执行只要执行MOVX类指令,便可完成输入输出操作类指令,便可完成输入输出操作3种种工工作作方方式式及及选选择择4、方式、方式1的功能的功能v(1)方式方式1的基本功能的基本功能①①用作一个或两个选通端口用作一个或两个选通端口②②每一个端口包含有:每一个端口包含有:8位数据端口;三条控制线位数据端口;三条控制线(是固定是固定指定的,不能用程序改变指定的,不能用程序改变);提供中断逻辑提供中断逻辑③③任何一个端口都可以作为输入或输出任何一个端口都可以作为输入或输出④④若只有一个端口工作于方式若只有一个端口工作于方式1,余下的,余下的13位,可以工作在位,可以工作在方式方式0(由控制字决定由控制字决定)。
⑤⑤若两个端口都工作于方式若两个端口都工作于方式1,端口,端口C还留下两位,这两位还留下两位,这两位可以由程序指定作为输入或输出,也具有置位/复位功能可以由程序指定作为输入或输出,也具有置位/复位功能3种种工工作作方方式式及及选选择择v(2)方式方式1输入输入当任一端口工作于方式当任一端口工作于方式1输入时,其逻辑组态如图输入时,其逻辑组态如图8—5所示其各个控制信号的意义为:其各个控制信号的意义为: ①①STB(Strobe)::选通脉冲(输入),低电平有效选通脉冲(输入),低电平有效②②IBF((Input Buffer Full))输入缓冲器满信号(输出),输入缓冲器满信号(输出),高电平有效这是一个高电平有效这是一个8255A输出的状态信号输出的状态信号③③INTR(Interrupt Request)::中断请求信号(输出),高中断请求信号(输出),高电平有效这是电平有效这是8255A的的—个输出信号,可用于作为向个输出信号,可用于作为向CPU的中断请求信号,以要求的中断请求信号,以要求CPU服务 ④④INTEA和和INTEB为中断使能信号;为中断使能信号;3种种工工作作方方式式及及选选择择方方式式1 1输输入入组组态态3种种工工作作方方式式及及选选择择v(3)方式方式1输出输出方式方式1输出时,其逻辑组态如图输出时,其逻辑组态如图8-6所示,主要的控制信号所示,主要的控制信号如下:如下:①①OBF(Output Buffer Full)::输出缓冲器满信号,低电平输出缓冲器满信号,低电平有效,这是有效,这是8255A输出给外设的一个控制信号。
输出给外设的一个控制信号②②ACK(Achowledge)::低电平有效这是一个外设的响应低电平有效这是一个外设的响应信号,指示信号,指示CPU输出给输出给8255A的数据已经由外设接受的数据已经由外设接受③③INTR::中断请求信号,高电平有效中断请求信号,高电平有效④④INTEA:由:由PC6的置位/复位控制的置位/复位控制⑤⑤INTEB: 由由PC2的置位/复位控制的置位/复位控制 3种种工工作作方方式式及及选选择择方方式式1输输出出组组态态3种种工工作作方方式式及及选选择择5.方式.方式2的功能的功能该工作方式的主要功能该工作方式的主要功能:①①方式方式2只用于端口只用于端口A,,端口端口B无此种工作方式无此种工作方式 ②②一个一个8位的双向总线端口位的双向总线端口(端口端口A)和一个和一个5位控制端口位控制端口(端端 口口C)③③输入和输出是锁存的输入和输出是锁存的④④5位控制端口用作端口位控制端口用作端口A的控制和状态信息的控制和状态信息 3种种工工作作方方式式及及选选择择v8255A工作在方式工作在方式2时,其逻辑组态如图时,其逻辑组态如图8—7所示各个信所示各个信号的意义为:号的意义为:①①INTR(中断请求中断请求):高电平有效。
在输入和输出方式时,:高电平有效在输入和输出方式时,都可用来作为向都可用来作为向CPU的中断请求信号的中断请求信号②②OBF(输出缓冲器满输出缓冲器满):低电平有效它是对外设的一种:低电平有效它是对外设的一种选通信号,表示选通信号,表示CPU已把数据输出至端口已把数据输出至端口A ③③ACK(响应信号响应信号):低电平有效它启动端口:低电平有效它启动端口A的三态输的三态输出缓冲器,送出数据;否则,输出缓冲器处在高阻状态出缓冲器,送出数据;否则,输出缓冲器处在高阻状态3种种工工作作方方式式及及选选择择④④INTEl(与输出缓冲器相关的中断屏蔽触发器与输出缓冲器相关的中断屏蔽触发器):由:由PC6的的置位/复位控制置位/复位控制⑤⑤STB(选通输入选通输入):低电平有效这是外设供给:低电平有效这是外设供给8255A的选的选通信号,它把输人数据选通至通信号,它把输人数据选通至8255A的输人锁存器的输人锁存器⑥⑥IBF(输入缓冲器满输入缓冲器满):高电平有效它是一个状态信息,:高电平有效它是一个状态信息,指示数据已进入输入锁存器指示数据已进入输入锁存器⑦⑦INTE2(与输入缓冲器相关的中断屏蔽触发器与输入缓冲器相关的中断屏蔽触发器):由:由PG4的置位/复位控制。
的置位/复位控制3种种工工作作方方式式及及选选择择v接口应用举例接口应用举例v例例8-3:在:在8051单片机上扩展一片单片机上扩展一片8255A芯片,设端口芯片,设端口A为为方式方式0输入,端口输入,端口B方式方式0输出,端口输出,端口C((上半部)上半部)PC7--PC4输入,端口输入,端口C((下半部)下半部)PC3--PC0输出要求从输出要求从A口口读入的数据从读入的数据从B口输出试设计扩展接口电路,并给出初口输出试设计扩展接口电路,并给出初始化程序始化程序完成上述功能的接口电路如图完成上述功能的接口电路如图8-8所示3种种工工作作方方式式及及选选择择v8255A的扩展接口图的扩展接口图3种种工工作作方方式式及及选选择择v根据题目要求,根据题目要求,8255A的控制字为的控制字为10011000B=98H(控制字的格式见图控制字的格式见图8-3)初始化程序清单如下:初始化程序清单如下:MOV A,,#98HMOV DPTR,,#7FFFHMOVX @DPTR, A MOV DPTR, #7FFCHMOVX A, @DPTRINC DPTRMOVX @DPTR,A8155芯芯片片介介绍绍vMCS--51与可编程芯片与可编程芯片8155的接口的接口vIntel 8155/8156芯片内包含有芯片内包含有256个字节的个字节的RAM存储器存储器(静静态态)、两个可编程的、两个可编程的8位并行口位并行口PA和和PB、、一个可编程的一个可编程的6位位并行口并行口PC、、以及一个以及一个14位定时器/计数器。
位定时器/计数器PA口和口和PB口口可工作于基本输入输出方式可工作于基本输入输出方式(同同8255A的方式的方式0)或选通输入或选通输入输出方式输出方式(同同8255A的方式的方式1) v8155芯片介绍芯片介绍 1..8155的结构与引脚的结构与引脚8155芯片为芯片为40引脚双列直插封装,单一的引脚双列直插封装,单一的+5V电源,其引电源,其引脚排列如图脚排列如图8-9所示其逻辑结构如图所示其逻辑结构如图8-10所示8155芯芯片片介介绍绍v8155A引脚图与引脚图与8155A逻辑结构图逻辑结构图8155芯芯片片介介绍绍v各引脚的功能说明如下:各引脚的功能说明如下:vRESET::8155内部复位信号输入端高电平有效内部复位信号输入端高电平有效8155被被初始复位后初始复位后I/O口变为输入方式口变为输入方式vAD0~AD7::三态的地址/数据线地址可以是三态的地址/数据线地址可以是8155的的RAM单元地址或单元地址或I/O口地址vCE::片选信号线,低电平有效片选信号线,低电平有效vIO//M::8155的的RAM存储器和存储器和I/O口选择线,口选择线,IO//M=0,,AD0~AD7的地址为的地址为8155RAM单元的地址,对单元的地址,对RAM进行读进行读写。
写IO/M=1,,AD0~AD7的地址为的地址为8155 I/O口的地址,对口的地址,对I/O口进行读写口进行读写 8155芯芯片片介介绍绍vRD::读选通信号,低电平有效读选通信号,低电平有效vWR::写选通信号,低电平有效写选通信号,低电平有效vALE::地址锁存允许端,高电平有效地址锁存允许端,高电平有效vPA0~PA7::端口端口A的通用的通用I/O线,由程序控制的命令寄存器线,由程序控制的命令寄存器选择输入/输出方向选择输入/输出方向vPB0~PB7::端口端口B的通用的的通用的I/O线,由程序控制的命令寄存线,由程序控制的命令寄存器选择输入器选择输入/输出方向输出方向vPC0~PC5::端口端口C的的I/O线或作为线或作为PA口和口和PB口的控制信号口的控制信号通过命令寄存器实现程序控制通过命令寄存器实现程序控制 8155芯芯片片介介绍绍v当当PC0~PC5用作控制信号时,作用如下:用作控制信号时,作用如下:PC0一一AINTR(口口A的中断请求的中断请求)PC1一一ABF(口口A缓冲器满缓冲器满)PC2一一ASTB(口口A选通脉冲选通脉冲)PC3一一BINTR(口口B的中断请求的中断请求)PC4一一BBF(口口B的缓冲器满的缓冲器满)PC5一一BSTB(口口B选通脉冲选通脉冲)vTIMERIN::定时器/计数器输入端。
定时器/计数器输入端vTIMEROUT::定时器/计数器输出端定时器/计数器输出端vVcc::+5VvVss::地地8155芯芯片片介介绍绍2..CPU对对8155的的RAM单元和单元和I//O的寻址的寻址IO/M=0时,时,CPU对对8155的的256个字节的个字节的RAM寻址IO/M=1时,时,CPU对对8155的的I//O寻址,寻址,8155的的I/O口编址如口编址如表表8-3所示表表8-3 8155I/O口编址口编址A7A7A6A6A5A5A4A4A3A3A2A2A1A1 A0A0选选中中I/OI/O口及寄存器口及寄存器╳╳╳╳╳╳╳╳╳╳0 00 00 0命令及状命令及状态态口口╳╳╳╳╳╳╳╳╳╳0 00 01 1PAPA口口╳╳╳╳╳╳╳╳╳╳0 01 10 0PBPB口口╳╳╳╳╳╳╳╳╳╳0 01 11 1PCPC口口╳╳╳╳╳╳╳╳╳╳1 10 00 0TLTL定定时时器低器低8 8位位╳╳╳╳╳╳╳╳╳╳1 10 01 1THTH定定时时器高器高6 6位位8155芯芯片片介介绍绍3..8155的命令字和状态字以及的命令字和状态字以及I//O的工作方式的工作方式v8155内部的命令寄存器和状态寄存器使用同一个端口地址内部的命令寄存器和状态寄存器使用同一个端口地址(见表见表8-3)。
命令寄存器只能写入不能读出,状态寄存器只命令寄存器只能写入不能读出,状态寄存器只能读出不能写入能读出不能写入v8155I/O口的工作方式由口的工作方式由CPU写入命令寄存器的控制字确定写入命令寄存器的控制字确定v8位命令寄存器的低位命令寄存器的低4位定义位定义A口、口、B口和口和C口的操作方式,口的操作方式,D4、、D5位确定位确定A口、口、B口以选通输入输出方式工作时是否口以选通输入输出方式工作时是否允许申请中断,允许申请中断,D6、、D7位为定时器位为定时器/计数器运行控制位计数器运行控制位命令字的格式如图命令字的格式如图8-11所示8155芯芯片片介介绍绍8155A工工作作方方式式控控制制字字格格式式8155芯芯片片介介绍绍(1)I/O的工作方式的工作方式 ①①基本基本I/O当当8155编程为基本输入输出方式时,可用于无条件编程为基本输入输出方式时,可用于无条件I/O操作类似与类似与8255的工作方式的工作方式0②②选通选通I/O 当当8155的的PA口编程为选通口编程为选通I/O工作方式时,工作方式时,PC口低口低3位作位作PA口联络线,口联络线,PC口其余位作口其余位作I/O线,线,B口定义为基本口定义为基本I/O;;当当PA口和口和PB口均定义为选通口均定义为选通I/O方式时,方式时,PC口作口作PA口、口、PB口联络线。
其逻辑组态如图口联络线其逻辑组态如图8-12所示8155芯芯片片介介绍绍v8155选通选通I/O逻辑结构图逻辑结构图8155芯芯片片介介绍绍vINTR::中断请求输出线,作为中断请求输出线,作为CPU的中断源,的中断源,高电平有效高电平有效vBF::I/O口缓冲器状态标志输出线缓冲器存有口缓冲器状态标志输出线缓冲器存有数据(满)时,数据(满)时,BF为高电平,否则为低电平为高电平,否则为低电平vSTB::设备选通信号输入线,低电平有效设备选通信号输入线,低电平有效A口、口、B口选通口选通I/O口方式时波形如图口方式时波形如图8-13所示8155芯芯片片介介绍绍(2)状态字状态字8155有一个状态寄存器,锁存有一个状态寄存器,锁存8155I/O口和定时器口和定时器/计数器计数器的当前状态,供的当前状态,供CPU查询状态寄存器只能读出,不能写查询状态寄存器只能读出,不能写入,而且和命令寄存器共用一个口地址入,而且和命令寄存器共用一个口地址CPU对该地址写对该地址写入的是命令字,对该地址读出的是入的是命令字,对该地址读出的是8155的状态状态寄存的状态状态寄存器的格式如图器的格式如图8-14所示。
所示8155芯芯片片介介绍绍v8155状态寄存器格式状态寄存器格式8155芯芯片片介介绍绍4..8155内部定时器内部定时器81558155的定时器为的定时器为1414位的减法计数器,对输入脉冲进行减法位的减法计数器,对输入脉冲进行减法计数,外部有两个定时器引脚端计数,外部有两个定时器引脚端TIMERINTIMERIN、、TIMEROUTTIMEROUTTIMERINTIMERIN为定时器时钟输入端,可接系统时钟脉冲,作定时为定时器时钟输入端,可接系统时钟脉冲,作定时方式;也可接外部输入脉冲,作记数方式方式;也可接外部输入脉冲,作记数方式TIMEROUTTIMEROUT为定时器输出,输出各种脉冲信号波形为定时器输出,输出各种脉冲信号波形1414位定位定时器由时器由04H04H(低(低8 8位)和位)和05H05H(高(高6 6位)两个字节组成,其格位)两个字节组成,其格式如图式如图8-158-15所示8155芯芯片片介介绍绍v T7 T6 T5 T4 T3 T2 T1 T0T7T6T5T4T3T2T1T0计数长度低位计数长度低位 T7 T6 T5 T4 T3 T2 T1 T0M2M1T13T12T11T10T9T8定时器方式定时器方式计数长度高位计数长度高位图图8 8--1515 81558155定时器格式定时器格式8155芯芯片片介介绍绍v定时器有四种输出方式,由定时器有四种输出方式,由M2、、M1两位定义,每一种方两位定义,每一种方式的输出波形如图式的输出波形如图8-16所示。
所示8155芯芯片片介介绍绍v定时器编程定时器编程v首先把计数长度和定时器输出方式装入定时器的两个相应首先把计数长度和定时器输出方式装入定时器的两个相应单元单元04H和和05H计数长度为计数长度为0002H--3FFFH之间的任意之间的任意值计数器的启动和停止由值计数器的启动和停止由8155命令寄存器的最高两位命令寄存器的最高两位(D6,,D7)控制,见图控制,见图8-11 v如果定时器正在计数,那么,只有在写入启动命令之后,如果定时器正在计数,那么,只有在写入启动命令之后,定时器才接收新的计数长度并按新的工作方式计数定时器才接收新的计数长度并按新的工作方式计数v若写入定时器的初值为奇数,若写入定时器的初值为奇数,方波输出是不对称的,例如初方波输出是不对称的,例如初值为值为9时,定时器输出的时,定时器输出的5个脉个脉冲周期内为高电平,冲周期内为高电平,4个脉冲周个脉冲周期内为低电平,如图期内为低电平,如图8-17所示8155芯芯片片介介绍绍v8155复位后并不预置定时器的方式和长度,但是停止计数复位后并不预置定时器的方式和长度,但是停止计数器计数另外,器计数另外,8155的定时器在计数过程中,计数器的值的定时器在计数过程中,计数器的值并不直接表示外部输入的脉冲,计数器的终值为并不直接表示外部输入的脉冲,计数器的终值为2,初值为,初值为2—3FFFH之间。
之间v若作为外部事件计数,由计数器的状态求输入脉冲的方法若作为外部事件计数,由计数器的状态求输入脉冲的方法如下:如下:(1)停止计数器计数;停止计数器计数;(2)分别读出计数器的两个字节;分别读出计数器的两个字节;(3)取低取低14位的计数值;位的计数值;(4)若为偶数,右移一位即得输入脉冲数;若为奇数,则右若为偶数,右移一位即得输入脉冲数;若为奇数,则右移一位加上计数初值的二分之一的整数部分移一位加上计数初值的二分之一的整数部分单单片片机机与与8155的的接接口口及及应应用用v8051单片机与单片机与8155的接口及应用的接口及应用 v8051和和8155接口的一种接口方法如图接口的一种接口方法如图8-18所示8155RAM地址为地址为7E00H~7EFFH,,I//O口的地址为口的地址为7F00H~7F05H若若A口定义为基本输入方式,口定义为基本输入方式,B口定义为基本输出方式,定口定义为基本输出方式,定时器作为方波发生器,对输入脉冲进行时器作为方波发生器,对输入脉冲进行24分频分频(需注意需注意8155的最高计数频率约的最高计数频率约4MHz),读,读PA口数据送口数据送PB口输出。
则口输出则8155的的I/O口初始化程序如下:口初始化程序如下:单单片片机机与与8155的的接接口口及及应应用用单单片片机机与与8155的的接接口口及及应应用用例例8-4:图:图8-18的初始化程序的初始化程序INITI::MOV DPTR,,#7F04H ;;指向定时器低指向定时器低8位位MOV A,,#18H ;;记数常数送累加器记数常数送累加器AMOVX @DPTR,,A ;;送记数常数送记数常数 INC DPTR ;;指向定时器高指向定时器高8位位MOV A,,#40H ;;设定时器输出连续方波设定时器输出连续方波MOVX @DPTR,,A ;;送定时器高送定时器高8位位MOV DPTR,,#7F00H ;;指向命令口指向命令口MOV A,,#0C2H ;;命令字设为命令字设为A口、口、C口输口输入,入,B口输出口输出MOVX @DPTR,,A ;;启动定时器启动定时器MOV DPTR,,#7F01HMOVX A,,@DPTRINC DPTRMOVX @DPTR , ATTL芯芯片片扩扩展展简简单单的的I/O接接口口vTTL芯片扩展简单的芯片扩展简单的I/O接口接口v简单输入接口扩展简单输入接口扩展v简单输入扩展实际上就是扩展数据缓冲器。
其作用是当输简单输入扩展实际上就是扩展数据缓冲器其作用是当输入设备被选通时,使数据源能与数据总线直接沟通;而当入设备被选通时,使数据源能与数据总线直接沟通;而当输入设备处于非选通状态时,把数据源与数据总线隔离,输入设备处于非选通状态时,把数据源与数据总线隔离,既缓冲器输出高阻抗状态常用的扩展输入口的既缓冲器输出高阻抗状态常用的扩展输入口的TTL芯片芯片有有74LS244、、74LS373等v74LS244是一个三态输出八缓冲器及总线驱动器,以是一个三态输出八缓冲器及总线驱动器,以CE作作选通信号其负载能力强,可直接驱动小于选通信号其负载能力强,可直接驱动小于130Ω的负载它可以作为它可以作为8051外部的一个扩展输入口,接口电路如图外部的一个扩展输入口,接口电路如图8-19所示 TTL芯芯片片扩扩展展简简单单的的I/O接接口口v8051和和74LS244的接口图的接口图TTL芯芯片片扩扩展展简简单单的的I/O接接口口v8位并行输入口位并行输入口74LS244,由,由P2.6和和RD相相“或或”控制,地址控制,地址为为0BFFFH,,当管脚当管脚P2.6=0时,执行时,执行MOVX A,,@DPTR类类指令可产生信号,将数据读入单片机。
指令可产生信号,将数据读入单片机读入程序为:读入程序为:MOV DPTR,,#0BFFFH ;;指向指向244输入口输入口MOVX A,,@DPTR ;;输入数据输入数据v74LS373为一个带三态门的为一个带三态门的8D锁存器,它可以作锁存器,它可以作为为8051外部的一个扩展输入口,接口逻辑如图外部的一个扩展输入口,接口逻辑如图8-20所示TTL芯芯片片扩扩展展简简单单的的I/O接接口口TTL芯芯片片扩扩展展简简单单的的I/O接接口口v外部设备向单片机传送数据时,产生一个选通信号外部设备向单片机传送数据时,产生一个选通信号XT连接连接到到373的打入端的打入端G上,在选通信号的下降沿将数据锁存,同上,在选通信号的下降沿将数据锁存,同时向单片机发中断请求此时单片机响应中断通过时向单片机发中断请求此时单片机响应中断通过P0口口在在373锁存器中读取数据锁存器中读取数据74LS373的输出由的输出由P2.7和和 相相“或或”控制373的口地址为的口地址为7FFFH(即即P2.7为为0)v373和和244作输入口的区别是作输入口的区别是244只有三态缓冲的功能,而只有三态缓冲的功能,而373还有一个接数控制端。
因此,当外设的数据是暂态数据还有一个接数控制端因此,当外设的数据是暂态数据时,采用时,采用373做输入扩展更方便做输入扩展更方便 TTL芯芯片片扩扩展展简简单单的的I/O接接口口v简单输出接口扩展简单输出接口扩展v输出接口的主要功能是进行数据保持,或者说是数据锁存输出接口的主要功能是进行数据保持,或者说是数据锁存所以简单输出接口扩展的电路是锁存器简单输出接口扩所以简单输出接口扩展的电路是锁存器简单输出接口扩展通常使用展通常使用74LS377、、74LS373等 v74LS377为带有允许输出端的为带有允许输出端的8D锁存器,有锁存器,有8个个D输入端,输入端,8个个Q输出端,一个时钟输入端输出端,一个时钟输入端CLK,,一个锁存允许信号一个锁存允许信号E当当E=0时,时,CLK端信号的上升沿,把端信号的上升沿,把8D输入端的数据打入输入端的数据打入8位锁存器位锁存器 TTL芯芯片片扩扩展展简简单单的的I/O接接口口v通过通过8051的的P0口扩展一片口扩展一片74LS377锁存器作输出口,该锁锁存器作输出口,该锁存器被视为存器被视为8051的一个外部的一个外部RAM单元使用单元使用MOVX @DPTR,,A类指令访问之,输出控制信号为类指令访问之,输出控制信号为WR,,接口逻接口逻辑如图辑如图8-21所示。
图中所示图中377的口地址为的口地址为7FFFH(即即P2.7=0),,其输出操作程序如下:其输出操作程序如下: MOV DPTR,,#7FFFH ;;指向指向377口地址口地址MOV A,,#DATA ;;取数取数MOVX @DPTR, A ; 送送377锁存器锁存器TTL芯芯片片扩扩展展简简单单的的I/O接接口口LED显显示示器器工工作作原原理理v键盘/显示器接口芯片键盘/显示器接口芯片8279vLED显示器工作原理显示器工作原理 vLED显示器是单片机应用系统中常用的输出器件,也称为显示器是单片机应用系统中常用的输出器件,也称为数码管它是由若干个发光二极管组成的,当发光二极管数码管它是由若干个发光二极管组成的,当发光二极管导通时,相应的一个点或一个笔画发亮控制不同组合的导通时,相应的一个点或一个笔画发亮控制不同组合的二极管导通,就能显示二极管导通,就能显示0~9、、A~F等各种字符等各种字符v常用的常用的LED显示器有显示器有7段和段和“米米”字段之分字段之分v这种显示器有共阳极和共阴极两种,如图这种显示器有共阳极和共阴极两种,如图8-22所示。
所示共阴极共阴极LED显示器的发光二极管的阴极连接在一起作为公显示器的发光二极管的阴极连接在一起作为公共端共阳极共端共阳极LED显示器的发光二极管的阳极连接在一起显示器的发光二极管的阳极连接在一起作为公共端作为公共端LED显显示示器器工工作作原原理理v点亮显示器有静态和动态两种方法点亮显示器有静态和动态两种方法 LED显显示示器器工工作作原原理理v所谓静态显示,就是当显示器显示某一个字符时,相应的所谓静态显示,就是当显示器显示某一个字符时,相应的发光二极管恒定的导通或截止发光二极管恒定的导通或截止v这种显示方式每一位都需要有一个这种显示方式每一位都需要有一个8位输出口控制,亮度大,位输出口控制,亮度大,耗电也大耗电也大3位静态显示器的接口逻辑,如图位静态显示器的接口逻辑,如图8-23所示图中采用共阴所示图中采用共阴极显示器极显示器 v所谓动态显示就是一位一位地轮流点亮显示器各个位所谓动态显示就是一位一位地轮流点亮显示器各个位(扫描扫描),对于显示器的每一位来说,每隔,对于显示器的每一位来说,每隔—段时间点亮一次段时间点亮一次v动态显示时将多个显示器的段码同名端连在一起,用一个动态显示时将多个显示器的段码同名端连在一起,用一个I/O端口驱动(称段码口);位码用另一个端口驱动(称段码口);位码用另一个I//0端口分别控端口分别控制(称位扫描口)。
显示器的亮度既与导通电流有关,也制(称位扫描口)显示器的亮度既与导通电流有关,也与点亮时间和间隔时间的比例有关与点亮时间和间隔时间的比例有关 v6位共阴极显示器和位共阴极显示器和8155的接口逻辑如图的接口逻辑如图8-24所示LED显显示示器器工工作作原原理理v3位静态位静态LED显示接口图显示接口图LED显显示示器器工工作作原原理理v动态显示接口图动态显示接口图键键盘盘接接口口原原理理v键盘接口原理键盘接口原理v键盘是由若干个按键组成的开关矩阵,它是最简单的单片键盘是由若干个按键组成的开关矩阵,它是最简单的单片机输入设备,通过键盘输人数据或命令,实现简单的人机机输入设备,通过键盘输人数据或命令,实现简单的人机对话v键盘上闭合键的识别是由专用硬件实现的,称为编码键盘,键盘上闭合键的识别是由专用硬件实现的,称为编码键盘,靠软件实现的称为非编码键盘靠软件实现的称为非编码键盘v键盘的结构有独立式按键和行列式键盘由于独立式按键键盘的结构有独立式按键和行列式键盘由于独立式按键电路每一个按键开关占一根电路每一个按键开关占一根I/O口线,当按键数多时,通常口线,当按键数多时,通常采用行列式(也称矩阵式)键盘电路。
采用行列式(也称矩阵式)键盘电路v行列式键盘的结构及接口电路如图行列式键盘的结构及接口电路如图8-25所示 键键盘盘接接口口原原理理键键盘盘接接口口原原理理v行列式键盘的工作原理行列式键盘的工作原理v首先要判断是否有键闭合,设定首先要判断是否有键闭合,设定8155的的PA口为输出方式,口为输出方式,PC口为输入方式口为输入方式 v键盘中究竟哪一个键被按下,是由列线逐列置低电平后,键盘中究竟哪一个键被按下,是由列线逐列置低电平后,检查行输入状态的方法来确定检查行输入状态的方法来确定 v键扫描子程序流程图如图键扫描子程序流程图如图8-26所示 v单片机对键盘的控制不外乎有以下三种方式:程序控制扫单片机对键盘的控制不外乎有以下三种方式:程序控制扫描方式、定时扫描方式和中断扫描方式描方式、定时扫描方式和中断扫描方式1.程序控制扫描方式.程序控制扫描方式这种方式就是只有当单片机空闲时,才调用键盘扫描子程这种方式就是只有当单片机空闲时,才调用键盘扫描子程序,响应键盘的输入请求序,响应键盘的输入请求键键盘盘接接口口原原理理2.定时扫描方式.定时扫描方式单片机对键盘的扫描也可采用定时扫描方式,即每隔一定单片机对键盘的扫描也可采用定时扫描方式,即每隔一定的时间对键盘扫描一次。
的时间对键盘扫描一次3.中断扫描方式.中断扫描方式当键盘上有键闭合时产生中断请求,当键盘上有键闭合时产生中断请求,CPU响应中断,执行响应中断,执行中断服务程序,判别键盘上闭合键的键号,并作相应的处中断服务程序,判别键盘上闭合键的键号,并作相应的处理8279的的内内部部结结构构原原理理v可编程键盘可编程键盘/显示接口显示接口8279v8279内部结构原理内部结构原理图图8-27为为8279的内部结构框图的内部结构框图下面分别介绍各部分电路的作用和原理下面分别介绍各部分电路的作用和原理1)I//O控制和数据缓冲器控制和数据缓冲器双向的三态数据缓冲器将内部总线和外部总线双向的三态数据缓冲器将内部总线和外部总线DB0~DB7连接,用于传送连接,用于传送CPU和和8279之间的命令、数据和状态之间的命令、数据和状态I/O控制线是控制线是CPU对对8279进行控制的引线进行控制的引线CS是是8279的片选信号,当其为的片选信号,当其为0时,时,8279才被允许读出或才被允许读出或写入信息写入信息WR、、 RD为来自为来自CPU的读、写控制信号的读、写控制信号A0为控制命令为控制命令/状态与数据选择信号。
状态与数据选择信号8279的的内内部部结结构构原原理理8279的的内内部部结结构构原原理理(2)控制逻辑控制逻辑控制与定时寄存器用来存储键盘及显示器的工作方式、命控制与定时寄存器用来存储键盘及显示器的工作方式、命令字和其他状态信息令字和其他状态信息 (3)扫描计数器扫描计数器扫描计数器有两种输出方式扫描计数器有两种输出方式一种为外部译码方式一种为外部译码方式(也称编码方式也称编码方式),计数器以二进制方,计数器以二进制方式计数,式计数,4位计数状态从扫描线位计数状态从扫描线SL0~SL3输出,经外部译码输出,经外部译码器译出器译出16位扫描线;位扫描线;另一种为内部译码方式另一种为内部译码方式(也称译码方式也称译码方式),即扫描计数器的,即扫描计数器的低二位经内部译码器后从低二位经内部译码器后从SL0~SL3输出4)键盘输入控制键盘输入控制包括回复缓冲器、键盘去抖及控制包括回复缓冲器、键盘去抖及控制8279的的内内部部结结构构原原理理(5)FIFO /传感器传感器RAM及其状态寄存器及其状态寄存器8279具有容量为具有容量为8×8的先进先出的先进先出(FIFO)的输入缓冲的输入缓冲RAM单单元。
在键盘选通方式时,它存储键盘数据在键盘选通方式时,它存储键盘数据此时,此时,FIFO状态寄存器用来存放状态寄存器用来存放FIFO的工作状态的工作状态在传感器矩阵方式工作时,在传感器矩阵方式工作时,FIFO中存放传感器矩阵中的每中存放传感器矩阵中的每一个传感器状态一个传感器状态⑹⑹显示缓冲显示缓冲RAM和显示地址寄存器和显示地址寄存器显示显示RAM用来存储显示数据容量为用来存储显示数据容量为16×8位 8279将段将段码写入显示缓冲码写入显示缓冲RAM,,8279自动对显示器扫描,将其内部自动对显示器扫描,将其内部显示缓冲显示缓冲RAM中的数据送到显示器上显示出来中的数据送到显示器上显示出来显示地址寄存器用来寄存由显示地址寄存器用来寄存由CPU进行读进行读/写显示写显示RAM的地的地址,它可由命令设定,也可以设置成每次读出或写入后自址,它可由命令设定,也可以设置成每次读出或写入后自动递增管管脚脚及及引引线线功功能能v8279的管脚及引线功能的管脚及引线功能v8279的管脚配置及功能如图的管脚配置及功能如图8-28所示各管脚的功能说明所示各管脚的功能说明如下:如下:vD0~D7::双向、三态数据总线。
用于双向、三态数据总线用于CPU和和8279之间数之间数据、命令和状态的传送据、命令和状态的传送vCLR::时钟输入线,用于产生内部定时时钟输入线,用于产生内部定时vRESET::复位输入线,该引脚输入一个高电平将复位复位输入线,该引脚输入一个高电平将复位8279其复位状态为:其复位状态为:16个字符显示左边输入;编码个字符显示左边输入;编码扫描键盘扫描键盘—双键锁定;时钟系数为双键锁定;时钟系数为31vRD::读有效输入线,低电平有效读有效时将数据读读有效输入线,低电平有效读有效时将数据读出,送外部数据总线出,送外部数据总线管管脚脚及及引引线线功功能能管管脚脚及及引引线线功功能能管管脚脚及及引引线线功功能能vWR::写有效输入线,低电平有效写有效时接收外部写有效输入线,低电平有效写有效时接收外部数据总线上的数据数据总线上的数据vA0::缓冲器地址输入线当缓冲器地址输入线当A0=1时时CPU写入写入8279的数的数据为命令字,据为命令字,CPU从从8279读出的数据为状态字;当读出的数据为状态字;当A0=0时,时,CPU读、写的信息均为数据读、写的信息均为数据vCS::为片选信号当为低电平时,为片选信号。
当为低电平时,CPU才选中才选中8279进进行读写vIRQ::中断请求输出线,高电平有效中断请求输出线,高电平有效 vSHIFT::换挡输入线,高电平有效在传感器方式和换挡输入线,高电平有效在传感器方式和选通方式中,选通方式中,SHIFT无效管管脚脚及及引引线线功功能能vCNTL//STB::控制控制/选通输入线,高电平有效选通输入线,高电平有效vRL0~RL7::输入线,它们是键盘矩阵或传感器矩阵的列输入线,它们是键盘矩阵或传感器矩阵的列(或行)信号输入线或行)信号输入线vSL0~SL3::扫描输出线,用于对键盘显示器扫描扫描输出线,用于对键盘显示器扫描vOUTA0~OUTA3::为显示段数据输出线为显示段数据输出线vOUTB0~OUTB3::为显示段数据输出线为显示段数据输出线OUTB0~OUTB3和和OUTA0~OUTA3可分别作为两个半字可分别作为两个半字节输出,也可作为节输出,也可作为8位段数据输出口,此时位段数据输出口,此时OUTB0为最为最低位,低位,OUTA3为最高位为最高位vBD::显示消隐输出线,低电平有效当显示器切换时显示消隐输出线,低电平有效当显示器切换时或使用显示消隐命令时,将显示消隐(熄灭)。
或使用显示消隐命令时,将显示消隐(熄灭) 操操作作命命令令字字v8279共有八条控制命令,控制字总结见表共有八条控制命令,控制字总结见表8-4表表8--4 8279控制命令控制命令SUMMARYD7 D6 D5D7 D6 D5功功 能能目目 的的0 0 00 0 0方式设置方式设置选择显示位数、左或右送入和键盘选择显示位数、左或右送入和键盘扫描方式扫描方式0 0 10 0 1时钟编程时钟编程编程内部时钟,设置扫描时间编程内部时钟,设置扫描时间0 1 00 1 0读读FIFOFIFO选择读选择读FIFOFIFO的方式和读的地址的方式和读的地址0 1 10 1 1读显示读显示RAMRAM选择读显示选择读显示RAMRAM的方式和读的地址的方式和读的地址1 0 01 0 0写显示写显示选择写的方式和写显示选择写的方式和写显示RAMRAM的地址的地址1 0 11 0 1显示写禁止显示写禁止允许屏蔽半字节允许屏蔽半字节1 1 01 1 0清除命令清除命令清显示或清显示或FIFOFIFO1 1 11 1 1中断结束中断结束清除给清除给CPUCPU的的IRQIRQ信号信号操操作作命命令令字字((1)键盘/显示器方式设置命令字)键盘/显示器方式设置命令字000ddkkk 高三位高三位000是该命令的特征位,后五位是参数。
是该命令的特征位,后五位是参数DD用来设定显示方式:用来设定显示方式:0 0 8个字符显示,左端送入个字符显示,左端送入0 1 16个字符显示,左端送入个字符显示,左端送入1 0 8个字符显示,右端送入个字符显示,右端送入1 1 16个字符显示,右端送入个字符显示,右端送入操操作作命命令令字字KKK用来设定键盘工作方式:用来设定键盘工作方式:0 0 0 编码(外译码)扫描键盘双键互锁编码(外译码)扫描键盘双键互锁0 0 1 译码(内译码)扫描键盘双键互锁译码(内译码)扫描键盘双键互锁0 1 0 编码(外译码)扫描键盘编码(外译码)扫描键盘N键巡回键巡回0 1 1 译码(内译码)扫描键盘译码(内译码)扫描键盘N键巡回键巡回1 0 0 编码(外译码)扫描传感器阵列编码(外译码)扫描传感器阵列1 0 1 译码(内译码)扫描传感器阵列译码(内译码)扫描传感器阵列1 1 0 选通输入,编码显示扫描选通输入,编码显示扫描1 1 1 选通输入,译码显示扫描选通输入,译码显示扫描操操作作命命令令字字((2)时钟编码命令字)时钟编码命令字001PPPPP 8279的内部定时信号由外部的输入时钟经过分的内部定时信号由外部的输入时钟经过分频后产生,分频系数由时钟编码命令字确定,频后产生,分频系数由时钟编码命令字确定,时钟命令字格式如下:高时钟命令字格式如下:高3位位=001为时钟编码命令字的特为时钟编码命令字的特征位。
征位D4—D0为分频系数,可在为分频系数,可在2—31次分频中进行选择,次分频中进行选择,将进入将进入8279的时钟频率进行的时钟频率进行N次分频后,可获得次分频后,可获得8279内部内部所需的所需的100KHz的时钟内部时钟频率的高低控制着扫描时间和键盘去抖动时间的内部时钟频率的高低控制着扫描时间和键盘去抖动时间的长短,在长短,在8279内部时钟为内部时钟为100KHz时,则扫描时间为时,则扫描时间为5..1ms,,去抖动时间为去抖动时间为10..3ms操操作作命命令令字字((3))FIFO RAM命令字命令字010AI×AAA 高高3位位010为特征位,为特征位,D2~D0(AAA)为起始地址,为起始地址,D4(AI)为多为多次读时的地址自动增量标志次读时的地址自动增量标志在键扫描方式中,在键扫描方式中,AI、、AAA均被忽略,均被忽略,CPU读键输入数据读键输入数据时,总是按先进先出的规律读出,直至输入键全部读出为时,总是按先进先出的规律读出,直至输入键全部读出为止在传感器矩阵扫描中,若在传感器矩阵扫描中,若AI==1,,CPU则从起始地址开始则从起始地址开始依次读出,每次读出后地址自动加依次读出,每次读出后地址自动加1;;Al==0时,时,CPU仅读仅读出一个单元的内容。
出一个单元的内容操操作作命命令令字字((4)读显示缓冲)读显示缓冲RAM命令字命令字011AIAAAA 在在CPU读显示数据读显示数据(检查检查)之前必须先输出读缓冲之前必须先输出读缓冲RAM的命令D7D6D5=011是该命令字的特征位四位二进制代码是该命令字的特征位四位二进制代码AAAA用来寻用来寻址显示缓冲址显示缓冲RAM的一个缓冲单元的一个缓冲单元A1为自动增量标志,若为自动增量标志,若Al=1,则,则CPU每次读出后,地址自动加每次读出后,地址自动加15)写显示缓冲)写显示缓冲RAM命令字命令字100AIAAAA 高高3位位100为该命令字的特征位,该命令给出为该命令字的特征位,该命令给出了显示缓冲了显示缓冲RAM的地址信息,当的地址信息,当CPU执行写显示缓冲执行写显示缓冲RAM时,首先用该命令字给出要写入的显示缓冲时,首先用该命令字给出要写入的显示缓冲RAM地地址,址,四位二进制代码四位二进制代码AAAA可用来寻址显示缓冲可用来寻址显示缓冲RAM的的16个存个存储单元若储单元若AI=1,则,则CPU在第一次写入时须给出地址外,在第一次写入时须给出地址外,以后每次写入,地址自动加以后每次写入,地址自动加1,直至所有显示缓冲,直至所有显示缓冲RAM全全部写毕。
部写毕操操作作命命令令字字((6)显示屏蔽消隐命令字)显示屏蔽消隐命令字101×IWA IWB BLA BLB 高高3位位101为该命令字的特征位为该命令字的特征位IWA和和IWB分别用以屏蔽分别用以屏蔽A组和组和B组缓冲组缓冲RAM在双在双4位显位显示器使用时,即示器使用时,即OUTA0—OUTAl和和OUTB0—OUTB3独立地独立地作为两个半字节输出时,可改写显示缓冲作为两个半字节输出时,可改写显示缓冲RAM中的低半字中的低半字节而不影响高半字节的状态节而不影响高半字节的状态(D3==1),,反之反之D2==1时可改写时可改写高半字节而不影响低半字节高半字节而不影响低半字节BL位是消隐特征位,要消隐两组显示输出,必须使位是消隐特征位,要消隐两组显示输出,必须使D0、、D1同时为同时为1,,BL=0时则恢复显示时则恢复显示 操操作作命命令令字字((7)清除命令字)清除命令字110CD2 CD1 CD0 CF CA 该命令字用来清除该命令字用来清除FIFORAM和和显示缓冲显示缓冲RAM其中其中D4D3D2(CD)三位用来设定消除显示缓冲三位用来设定消除显示缓冲RAM的方式,的方式,其定义如下:其定义如下:CF(D1)位用来置定位用来置定FIFORAM. CA(D0)是总清的特征位,它兼有是总清的特征位,它兼有CD和和CF的联合效用。
的联合效用 CD2 CD1 CD0 1 0 × 将显示将显示RAM全部清零全部清零 1 1 0 将显示将显示RAM置为置为20H 1 1 1 将显示将显示RAM全部置全部置1 0 × × 不清除显示不清除显示RAM((若若 CA=1),则),则CD0 CD1仍然有效仍然有效操操作作命命令令字字((8)中断结束)中断结束/出错方式设置命令出错方式设置命令111E×××× 高三位高三位111为该命令的特征位为该命令的特征位在传感器方式中,该命令清在传感器方式中,该命令清IRQ引脚到低电平,允许再次引脚到低电平,允许再次对对RAM写入在在N键巡回方式中,若键巡回方式中,若E=1,,8279可工作在特殊出错方式可工作在特殊出错方式状状态态字字v状态字状态字当当A0=1,,RD=0时,从总线上读入的是时,从总线上读入的是8279的状态,状态的状态,状态字的格式如下:字的格式如下: vNNN:表示:表示FIFORAM中字符的个数(闭合键次数)。
中字符的个数(闭合键次数)FIFO中无字符(无键闭合)时,该三位为中无字符(无键闭合)时,该三位为000vF::FIFO满标志 当当F==1时,表示时,表示FIFORAM已满已满(存存有有8个键入数据个键入数据)状状态态字字vU::读空标志当读空标志当FIFORAM中没有输入字符时,中没有输入字符时,CPU对对FIFORAM读,该位置读,该位置1vO::FIFORAM溢出标记当溢出标记当FIFO已满,又输入一个字符已满,又输入一个字符时发生溢出,该位置时发生溢出,该位置“1”vS/E:: S/E用于传感器矩阵输入方式,几个传感器同时闭合用于传感器矩阵输入方式,几个传感器同时闭合时置时置“1”vDU::显示无效特征位在清除命令执行期间该位为显示无效特征位在清除命令执行期间该位为“1”,,DU为为1时对显示时对显示RAM进行写操作无效进行写操作无效状状态态字字v例例8-5:如果用查询法判断键盘,则判断是否有:如果用查询法判断键盘,则判断是否有键按下的程序如下:键按下的程序如下:MOV DPTR,,#S8279 MOVX A,,@DPTRANL A,,#07HJZ READ …… ;;有键按下有键按下READ::RET 输输入入数数据据格格式式v输入数据格式输入数据格式((1)在键扫描方式中,键输入数据格式如下:)在键扫描方式中,键输入数据格式如下:vD2—D0指出输入键所在的列号指出输入键所在的列号(RL0—RL7状态确定状态确定)。
vD5—D3指出输入键所在的行号指出输入键所在的行号(扫描计数值扫描计数值)vD6、、D7控制键控制键SHIFT和控制键和控制键CNTL的状态 输输入入数数据据格格式式v例例8-6:如已知有键按下,则读入键值的程序段如下::如已知有键按下,则读入键值的程序段如下:MOV DPTR,,#S8279 ;;S8279为命令口地址为命令口地址MOV A,,#40HMOVX @DPTR, A ;送读送读FIFO命令命令MOV DPTR, #D8279 ;;D8279为数据口地址为数据口地址MOVX A , @DPTR ;从;从FIFO中读入中读入((2)传感器方式或选通方式中,输入数据格式为:)传感器方式或选通方式中,输入数据格式为:D7 D6 D5 D4 D3 D2 D1 D0 RL7 RL6 RL5 RL4 RL3 RL2 RL1 RL0 在传感器扫描方式或选通输入方式中,输入数据即为在传感器扫描方式或选通输入方式中,输入数据即为RL0--RL7的输入状态。
的输入状态8279与与键键盘盘显显示示器器的的接接口口v8279与键盘与键盘/显示器的接口显示器的接口v图图8-28为为8位显示器、位显示器、8×2键盘和键盘和8279的接口电路的接口电路v图中键盘的行线接图中键盘的行线接8279的的RL0~RL7,,v8279选用外部译码方式,选用外部译码方式,SL0~SL3经经74LSl38译码输出后接译码输出后接键盘的列线,同时通过驱动器接显示器键盘的列线,同时通过驱动器接显示器v输出线输出线OUTB0--OUTB3、、OUTA0--OUTA3作为作为8位段数据位段数据输出口v当键盘上出现有效时间闭合键时,键输入数据自动的进入当键盘上出现有效时间闭合键时,键输入数据自动的进入8279的的FIFORAM存储器,并向存储器,并向8051请求中断,请求中断,8051响应响应中断读取中断读取FIFORAM中的输入键值中的输入键值v若要更新显示器输出,仅需改变若要更新显示器输出,仅需改变8279中显示缓冲中显示缓冲RAM中的中的内容8279与与键键盘盘显显示示器器的的接接口口键键盘盘显显示示器器和和8 82 27 79 9的的接接口口8279与与键键盘盘显显示示器器的的接接口口v下面根据此电路说明下面根据此电路说明8279的编程应用方法。
的编程应用方法在图在图8-28中,中,8279的命令/状态口地址为的命令/状态口地址为7FFFH,,数据口数据口地址为地址为7FFEH对8279初始化编程应注意清除命令的执行初始化编程应注意清除命令的执行需要一定的时间,如不进行判断等待有时会出错需要一定的时间,如不进行判断等待有时会出错v初始化程序:初始化程序: Z8279EQU0FF82H ;;8279状态口地址状态口地址D8279EQU0FF80H ;;8279数据口地址数据口地址 ............INII8279::MOV DPTR,,#Z8279 ;;指向命令指向命令/状态状态口地址口地址 MOV A,,#0DlH ;;送清除命令送清除命令 MOVX @DPTR,,A8279与与键键盘盘显显示示器器的的接接口口WAIT::MOVX A,,@ DPTR ;;读入读入8279状态字状态字 JB ACC..7,,WAIT ;;等待清除命令等待清除命令完成完成 MOV A,,#00H ;;送方式命令送方式命令 MOVX @DPTR,,A MOV A,#,#2AH ;;置分频命令字置分频命令字 MOVX @DPTR,,A SETB EA ............v读取键盘子程序:读取键盘子程序:入口参数:无;出口参数:入口参数:无;出口参数:B中为读到的键值,中为读到的键值,A中为按键的中为按键的标志标志 PINTl::PUSH PSW PUSH DPH PUSH DPL PUSH A8279与与键键盘盘显显示示器器的的接接口口MOV DPTR,,#Z8279MOVX A,,@DPTR ;读;读8279状态状态ANL A,,#07HJNZ GETVAL ;;判是否有键输入判是否有键输入MOV A,,#00H ;;置无键输入标志置无键输入标志SJMP NKBHIT GETVAL::MOV A,,#40H ;;输出读输出读FIFO命令命令 MOVX @DPTR,,AMOV DPTR,,#D8279 ;;读键输入值读键输入值 MOVX A,,@DPTRANL A,,#3FHH ;;屏蔽屏蔽SHIFT和和CTRL键键 MOV DPTR,,#KEYCODE ;;键码表起始地键码表起始地址址 MOVC A,,@A+DPTR ;;查表查表8279与与键键盘盘显显示示器器的的接接口口MOV B,,A ;;置返回键值置返回键值MOV A,,#0FFH ;;置有键输入标志置有键输入标志 PRI1::POP A POP DPL POP DPH POP PSW RETv显示字符子程序:显示字符子程序: 入口参数:在调用该子程序前把要显示的入口参数:在调用该子程序前把要显示的8个数的值存放个数的值存放到到70H开始的单元中开始的单元中8279与与键键盘盘显显示示器器的的接接口口DISLED:: PUSH DPH PUSH DPL PUSH A MOV DPTR,,#Z8279H;;输出写显示输出写显示RAM命令命令 MOV A,,#90H MOVX @DPTR,,A MOV R0,,#70H MOV R7,#,#08H MOV DPTR,#,#D8279H8279与与键键盘盘显显示示器器的的接接口口DL0:: MOV A,,@R0 ADD A,,#05H MOVC A,,@A+PC;;转换为段数据转换为段数据 MOVX @DPTR,,A;;写入显示写入显示RAM INC R0 DJNZ R7,,DL0 RET LEDSEG::DB 3FH, 06H, 5BH, 4FH, 66H, 6DH DB 7DH, 07H, 7FH, 6FH, 77H, 7CH DB 39H, 5EH, 79H, 71H。
