8255芯片有几个8255a端口地址怎么求?,8255a端口地址怎么求又叫寄存吗?

8255端口地址如何确定_8255怎样计算端口地址
  8255芯片特性
  (1)一个并行输入、输出的LSI芯片,多功能的I/O器件,可作为CPU总线与外围的接口。
  (2)具有24个可编程设置的I/O口,即3组8位的I/O口为PA口,PB口和PC口。它们又可分为两组12位的I/O口,A组包括A口及C口(高4位,PC4~PC7),B组包括B口及C口(低4位,PC0~PC3)。A组可设置为基本的I/O口,闪控(STROBE)的I/O闪控式,双向I/O3种模式;B组只能设置为基本I/O或闪控式I/O两种模式,而这些操作模式完全由控制寄存器的控制字决定。
  8255引脚及功能
  RESET:复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。
  CS:芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进行通讯;/CS=1时,8255无法与CPU做数据传输。
  RD:读信号线,当这个输入引脚为低跳变沿时,即/RD产生一个低脉冲且/CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。
  WR:写入信号,当这个输入引脚为低跳变沿时,即/WR产生一个低脉冲且/CS=0时,允许CPU将数据或控制字写入8255。
  D0~D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。
  8255具有3个相互独立的输入/输出通道端口,用+5V单电源供电,能在以下三种方式下工作。
  方式0&&&&基本输入输出方式;方式1&&&&选通输入/出方式;方式2&&&&双向选通输入/输出方式;
  PA0~PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入锁存器。 工作于三种方式中的任何一种;
  PB0~PB7:端口B输入输出线,一个8位的I/O锁存器, 一个8位的输入输出缓冲器。 不能工作于方式二;
  PC0~PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入缓冲器。端口C可以通过工作方式设定而分成2个4位的端口, 每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。&不能工作于方式一或二。
  A1,A0:地址选择线,用来选择8255的PA口,PB口,PC口和控制寄存器。
  当A1=0,A0=0时,PA口被选择;
  当A1=0,A0=1时,PB口被选择;
  当A1=1,A0=0时,PC口被选择;
  当A1=1.A0=1时,控制寄存器被选择.
  8255应用电路
  所示为8255j端口构戚的&4X8矩阵键盘。8255的PA端口初始化为输出工作方式作为列线使用,PC端口韧始化为输入工作方式作为行线使用,在每一个行线与列线的交叉点处接一个按键,再给每个按键设定一个编号【键值)。可以根据需要,将一部分按键定义为功能键,另一部分按键定义为数字键。
  如何区分8255A端口地址
  可编程接口8255A端口地址是由其引脚决定的
  A1A0=00,代表A端口地址
  A1A0=01,代表B端口地址
  A1A0=10,代表C端口地址
  A1A0=11,代表控制字寄存器端口地址
  8255的端口地址的计算
  资料1:
  图2是采用74HC2244芯片进行输入接口扩展的原理电路,图3是读PO口的时序。由图3可以看出,当P2.7和RD同为低电平时,74HC2244才能将输入端的数据送到单片机的PO口。其中,P2.7决定了74HC244的地址,0000H- 7FFFH(共32K)地址都可以访问这个单元,这就是用线选法所带来的副作用。通常可选择其中的最高地作为这个芯片的地址来写程序,如这个芯片的地址是7FFFH。但这仅仅是一种习惯,并不是规定,当然也完全可以用0000H作为这个芯片的地址。当确定了地址后,其接口的输入操作程序如下:
  资料2:
  由于MCS-51单片机的外部RAM和I/0口是统一编址的,因此,可以把单片机外部64K字节RAM空间的一部分作为扩展外围I / 0口的地址空间。这样,单片机就可以像访问外部RAM存储器单元那样访问外部的PO口接口芯片。所以,8255的扩展端口地址不是唯一的,在0000H^ FFFFH,除了CS,A0,A1这三个位固定外,其他可以任意,如CS占用p2.7,A1占用P0.1,A0占用P0.0,那么可用的端口地址是:
  A口:(cs=P2.7=0, A1A0=P0.1P0. 0=00) 0000H&7FFCH
  B口:(cs=P2.7=0, A1A0=P0.1P0. 0=01 ) 0001H& 7FFDH
  C 口:( cs=P2.7=0, A1A0=P0.1P0.0=10 ) 0002H& 7FFEH
  控制口:(cs=P2.7=0 A1A0=P0.1P0.0=11 )
  0003H&7FFFH,
发布评论请先
本文首先介绍了8255芯片的概念与特性,其次介绍了8255A引脚图及功能,最后介绍了8255a的几种....
本文首先介绍了8255芯片特性与8255引脚及功能,其次介绍了8255内部逻辑结构与8255工作方式....
  8255A是为intel公司的微处理机配套的通用可编程I/O器件。该器件有24条可编程i/o脚,....
8255A的C口具有位控功能,即允许CPU用输出指令单独对C口的某一位写“1”或“0”,C口的位控字....
利用单片机的端口地址实现对液晶显示器的控制
以前寫論文收集的一些資料,學習單片機、C語言、Proteus的好資料!!!!
以前寫論文收集的一些資料,學習單片機、C語言、Proteus的好資料!!!!
基础的电子类资料,电子工程师必备文档,快来下载学习吧
系列的可编程外设接口电路(Programmable Peripher....
本内容提供了8255数码管显示电路图,希望对大家学习有所帮助
在许多使用单片机控制的场合,为改善人机界面,经常要使用液晶显示器显示控制机构的工作状态及各种参数信息....
实验九 8255扫描键盘、显示实验
一.实验要求
利用8255可编程并行口做一个扫描键盘实验,把....
8255A控制步进电机
&实验目的&了解步进电机的的基本控制原理,掌握控制步进电机的转....
The Intersil 82C55 is a high performance CMOS vers....
并行接口电路:微处理器与I/O设备进行数据传输时均需经过接口电路实现系统与设备互连的匹配。并行接口电....
8255 并口扩展实验
一、实验目的熟悉并口扩展芯片8255 的内部结构,学会使用
供应链服务
版权所有 (C) 深圳华强聚丰电子科技有限公司
电信与信息服务业务经营许可证:粤B2-第6章 接口芯片与接口技术第6章 接口芯片与接口技术6.1 可编程并行I/O接口8255A6.2 可编程RAM/IO/CTC接口81556.3 键盘显示器接口82796.4 LED数码显示器接口 6.5 键盘接口 6.6 A/D转换器接口 6.7 D/A转换器接口 第6章 接口芯片与接口技术6.1 可编程并行I/O接口8255A8255A可编程并行输入/输出接口芯片是Intel公司 生产的标准外围接口电路。它采用NMOS工艺制造,用 单一+5V电源供电,具有40条引脚,采用双列直插式封装。 它有A、B、C3个端口共24条I/O线,可以通过编程的 方法来设定端口的各种I/O功能。由于它功能强,又能方 便地与各种微机系统相接,而且在连接外部设备时,通常 不需要再附加外部电路,所以得到了广泛的应用。 第6章 接口芯片与接口技术6.1.1 8255A的内部结构与引脚 1. 8255A的内部结构 8255A的内部结构如图6―1所示,由以下几部分组成。 1)数据端口A、B、C8255A有3个8位数据端口,即 端口A、端口B和端口C。编程人员可以通过软件将它们分别作为输入端口或输出端口,不过这3个端口在不同的工作方式下有不同的功能及特点,如表6―1所示。 第6章 接口芯片与接口技术图6―1 8255A的内部结构图 第6章 接口芯片与接口技术2) A组和B组控制电路 这是两组根据CPU的命令字控制8255A工作方式的 电路。它们的控制寄存器先接受CPU送出的命令字,然 后根据命令字分别决定两组的工作方式,也可根据CPU 的命令字对端口C的每1位实现按位“复位”或“置位”。A组控制电路控制端口A和端口C的上半部(PC7~PC4)。 B组控制电路控制端口B和端口C的下半部(PC3~PC0)。 第6章 接口芯片与接口技术表6―1 8255A端口功能表 第6章 接口芯片与接口技术2. 8255A的芯片引脚8255A是一种有40个引脚的双列直插式标准芯片, 其引脚排列如图6―2所示。除电源(+5V)和地址以外, 其它信号可以分为两组: (1)与外设相连接的有: PA7~PA0:A口数据线 PB7~PB0:B口数据线 PC7~PC0:C口数据线 第6章 接口芯片与接口技术图6―2 8255A的芯片引脚图 第6章 接口芯片与接口技术(2)与CPU相连接的有:D7~D0:8255A的数据线,和系统数据总线相连。 RESET:复位信号,高电平有效。当RESET有效时,所 有内部寄存器都被清除,同时,3个数据端口被自动设为 输入方式。CS:片选信号,低电平有效。只有当:读信号,低电平有效。当CS有效时,芯片才被选中,允许8255A与CPU交换信息。RD RD有效时,CPU可以从8255A中读取输入数据。http://www.lccdgg.cn 第6章 接口芯片与接口技术WR:写信号,低电平有效。当 W R 有效时,CPU可以往8255A中写入控制字或数据。 A1、A0:端口选择信号。8255A内部有3个数据端 口和1个控制端口,当A1A0=00时选中端口A;A1A0=01时 选中端口B;A1A0=10时选中端口C;A1A0=11时选中控 制口。 、 W R 及 C S 组合所实现的各种功能 如表6-2所示。http://www.lccdgg.cn A1、A0和RD 第6章 接口芯片与接口技术表6―2 8255A端口选择表 第6章 接口芯片与接口技术6.1.2 8255A的工作方式8255A有3种工作方式,即方式0、方式1和方式2,这 些工作方式可用软件编程来指定。3种工作方式的传送 示意图如图6―3所示。 第6章 接口芯片与接口技术图6―3 8255A的3种工作方式? (a)方式0; (b)方式1; (c)方式2 第6章 接口芯片与接口技术1.方式0(基本输入/输出方式)这种工作方式不需要任何选通信号,A口、B口及C 口的高4位和低4位都可以设定为输入或输出。作为输 出口时,输出的数据均被锁存;作为输入口时,A口的数据 能锁存,B口与C口的数据不能锁存。 第6章 接口芯片与接口技术2.方式1(选通输入/输出方式) 在这种工作方式下,A口可由编程设定为输入口或 输出口,C口的3位用来作为输入/输出操作的控制和同步 信号;B口同样可由编程设定为输入口或输出口,C口的 另3位用来作为输入/输出操作的控制和同步信号。在方式1下A口和B口的输入数据或输出数据都能被锁存。1)方式1下A口、B口均为输入 在方式1下,A口和B口均工作在输入状态时,需利用 C口的6条线作为控制和状态信号线,其定义如图6―4(a) 所示。 第6章 接口芯片与接口技术图6―4 方式1下的信号定义?(a)A口、B口均为输入时;(b)A口、B口均为输出时 第6章 接口芯片与接口技术C口所提供的用于输入的联络信号有:①STB(Strobe):选通脉冲信号(输入),低电平有效。当外设送来S T B 信号时,输入的数据被装入8255A的输入 锁存器中。 ②IBF(InputBufferFull):输入缓冲器满信号(输出), 高电平有效。此信号有效时,表示已有一个有效的外设 数据锁存于8255A的口锁存器中,尚未被CPU取走,暂不 能向接口输入数据,它是一个状态信号。 第6章 接口芯片与接口技术③INTR(InterruptRequest):中断请求信号(输出),高电平有效。当IBF为高、 T B 信号由低变高(后沿)时,该信 S 号有效,向CPU发出中断请求。方式1 数据输入过程如下:当外设的数据准备好后,发出STB信号,输入的数据被装入锁存器中,然后IBF信号有效(变为高电平)。 数据输入操作的时序关系如图6―5所示。 第6章 接口芯片与接口技术图6―5 方式1下的输入时序 第6章 接口芯片与接口技术2) 方式1下A口、B口均为输出与输入时一样,要利用C口的6根信号线,其定义如图 6―4(b)所示。用于输出的联络信号有: (1) A C K (Acknowledge):外设响应信号(输入),低电 平有效。(2) O B F (OutputBuffeFull):输出缓冲器满信号(输出),低电平有效。 (3)INTR:中断请求信号(输出),高电平有效。 第6章 接口芯片与接口技术方式1下数据输出过程如下:当外设接收并处理完1组数据后,发回A C K 响应信 号。 数据输出操作的时序关系如图6―6所示。 应当指出,当8255A的A口与B口同时为方式1的输入或输出时,需使用C口的6条线,C口剩下的2条线还可以用程序来指定数据的传送方向是输入还是输出,而且也 可以对它们实现置位或复位操作。当一个口工作在方式1时,则C口剩下的5条线也可按照上述情况工作。 第6章 接口芯片与接口技术图6―6 方式1下的输出时序 第6章 接口芯片与接口技术3. 方式28255A只有A口具有这种双向输入输出工作方式, 实际上是在方式1下A口输入输出的结合。在这种方式 下,A口为8位双向传输口,C口的PC7~PC3用来作为输入/ 输出的同步控制信号。在这种情况下,B口和PC2~PC0 只能编程为方式0或方式1工作,而C口剩下的3条线可作 为输入或输出线使用或用作B口方式1之下的控制线。 第6章 接口芯片与接口技术图6―7 方式2下的信号定义 第6章 接口芯片与接口技术在方式2时,其输入输出的操作时序如图6―8所示。1) 输入操作 当外设向8255A送数据时,选通信号STBA[TX-]也同 时送到,选通信号将数据锁存到8255A的输入锁存器中, 从而使输入缓冲器满信号IBFA成为高电平(有效),告诉外设,A口已收到数据。选通信号结束时,使中断请求信号为高,向CPU请求中断。 2)输出操作CPU响应中断,当用输出指令向8255A的A端口中写入一个数据时,会发出写脉冲信号 W R 。 第6章 接口芯片与接口技术图6―8 方式2下的时序图 第6章 接口芯片与接口技术6.1.3 8255A的控制字及初始化1.8255A的控制字 8255A为可编程接口芯片,以控制字形式对其工作 方式和C口各位的状态进行设置。它有两种控制字:工 作方式控制字和C口置位/复位控制字。1) 工作方式控制字工作方式控制字用于确定各口的工作方式及数据 传送方向,其格式如图6―9所示。 第6章 接口芯片与接口技术对工作方式控制字作如下说明:(1) A口有3种工作方式,而B口只有2种工作方式。 (2)A组包括A口与C口的高4位,B组包括B口与C口 的低4位。 (3)在方式1或方式2下,对C口的定义(输入或输出)不影响作为联络线使用的C口各位的功能。(4)最高位(D7位)为标志位,D7=1为方式控制字。 第6章 接口芯片与接口技术2) C口置位/复位控制字利用C口置位/复位控制字可以很方便地使C口8位 中的任一位清0或置1,该控制字的格式如图6―9(b)所示。 D7位为该控制字的标志位,D7=0为C口置位/复位控制字。 在使用中,该控制字每次只能对C口中的一位进行置位或复位。应注意的是,作为联络线使用的C口各位是不能采用置位/复位操作来使其置位或复位的。其数值 应视现场的具体情况而定。http://www.lccdgg.cn 第6章 接口芯片与接口技术2. 8255A的初始化编程8255A初始化的内容就是向控制寄存器写入工作方 式控制字或C口置位/复位控制字。这两个控制字可按 同一地址写入且不受先后顺序限制。由于两个控制字 因标志位的状态不同,因此8255A能加以区分。 第6章 接口芯片与接口技术图6―9 8255A控制字格式(a)工作方式控制字; (b)C口置位/复位控制字 第6章 接口芯片与接口技术例如对8255A各口作如下设置:A口方式0输入,B口 方式0输出,C口高位部分为输出、低位部分为输入。设 控制寄存器的地址为03FFH,则其工作方式控制字可设 置为:D0=1:C口低半部输入; D1=0:B口输出;D2=0:B口方式0;D3=0:C口高半部输出; D4=1:A口输入; D6D5=00:A口方式0; D7=1:工作方式字标志。 第6章 接口芯片与接口技术因此工作方式控制字为B即91H。初始化程序段为: MOV MOV MOVX DPTR,#03FFH A,#91H @DPTR,A若要使端口C的D3位置位的控制字为B(即07H),而使D3位复位的控制字为 B(即06H)。 第6章 接口芯片与接口技术6.1.4 8255A与系统的连接由于8255A是Intel公司专为其主机配套设计制造的 标准化外围接口芯片,因此它与MCS-51单片机的连接是 比较简单方便的。 一般来说,MCS-51单片机扩展的I/O接口均与片外 RAM统一编址。由于单片机系统片外RAM的实际容量 一般均不太大,远远达不到64KB的范围,因此I/O接口芯 片大多采用部分译码的方法,而用得比较多的则是直接利用地址线的线选法。这种方法虽然要浪费大量的地址号,但译码电路比较简单。图6―10就是一种较常用的 连接实例。 第6章 接口芯片与接口技术图6―10 8255A与8031的连接 第6章 接口芯片与接口技术图6―10中,P0口为地址/数据复用口。数据通过P0口直接传送,地址的低8位是需通过锁存器74LS373得到 的,而地址的高8位则由P2口传送。 现采用线选法,利用高8位地址线的P2.7作为线选信 号,直接与8255A的片选端 C S 相连,而A1、A0则与地 址的最末2位相连。由图6―10所示接法,可得到8255A 各个端口的地址,如表6―3所示。 第6章 接口芯片与接口技术表6―3 8255A各端口的地址? 第6章 接口芯片与接口技术6.1.5 8255A应用举例8255A在微机和单片机控制系统中得到了广泛应用, 现举两例加以说明。 例1:要求通过8255A的PC5端向外输出1个正脉冲 信号,已知8255A的C口和控制口的地址分别为0002H和 0003H。 解:若要从PC5端输出1个正脉冲信号,可通过对 PC5位的置位和复位控制来实现。由于每送1个控制字,只能对1位作1次置位或复位操作,故产生1个正脉冲要对PC5位先送置位控制字,经过一定的延时后(延时时间视 脉宽而定),再送复位控制字即能实现。程序编制如下: 第6章 接口芯片与接口技术MOV MOV MOVDPTR,#0003H A,#OBH X @DPTR,A;指向8255A的控制口 ;对PC5置1LCALL DELAY DEC MOV A;延时(调用延时子程序) ;对PC5置0X @DPTR,Ahttp://www.lccdgg.cn 第6章 接口芯片与接口技术例2:8255A作为连接打印机的接口。图6―11是通过8255A连接打印机的接口电路,数据 传送采用查询方式。8255A的地址译码采用线选法,将 P0.7直接与8255A的C S 端相连(通过地址锁存器),其口地 址A口为7CH,B口为7DH,C口为7EH,命令口为7FH。 第6章 接口芯片与接口技术图6―11 8255A连接打印机的接口电路 第6章 接口芯片与接口技术现要求编制打印50个字符的程序,该数据存于片内RAM从20H开始的50个连续单元中。 程序如下: MOV MOV R0,#7FH A,#88H X @R0,A R1,#20H R2,#32H R0,#7EH ;指向8255A的命令口 ;取方式字:A口输出,C口低出高 ;送入方式字 ;R1指向数据区首址 ;送数据块长度 ;指向C口入MOV MOV MOV LP:MOV 第6章 接口芯片与接口技术LOOP1:MOVXJB MOVA,@R0A.7,LOOP1 R0,#7CH;读入C口信息;若BUSY=1,继续查询 ;指向A口MOVMOV INCA,@R1X @R0,A R1;取RAM数据;数据输出到A口 ;数据指针加1MOVMOV MOVR0,#7FHA,#00H X @R0,A;指向命令口;C口置位/复位命令字(PC0=0) ;产生STB[TX-]的下降沿MOVMOV DJNZA,#01HX @R0,A R2,LP;改变C口置位/复位命令字(PC0=1);产生STB[TX-]的上升沿 ;未完,则反复 第6章 接口芯片与接口技术6.2 可编程RAM/IO/CTC接口81556.2.1 8155的结构与引脚1. 8155的内部结构 8155的内部结构如图6―12(b)所示。它含有1个256字 节的RAM、1个14位定时/计数器以及3个并行I/O口,其中 A口、B口均为8位,C口为6位。A口、B口既可作为基本I/O口,也可作为选通I/O口;C口除可作为基本I/O口外,还可用作A口、B口的应答控制联络信号线。此外,8155内部 还有一个控制寄存器组,用来存放控制命令字。 第6章 接口芯片与接口技术图6―12 8155引脚排列及结构框图(a)引脚排列; (b)内部结构框图 第6章 接口芯片与接口技术图6―12 8155引脚排列及结构框图(a)引脚排列;(b)内部结构框图 第6章 接口芯片与接口技术2.8 155的引脚8155为40引脚双列直插式封装芯片,其引脚排列如 图6―12(a)所示。现将其各引脚的功能简介如下:AD0~AD7:地址/数据复用线。 它与8031单片机的P0口直接相连。8155和CPU之间的地址、数据、命令 及状态信号都通过这组信号线传送。C E :片选信号,输入,低电平有效。IO / M:RAM和I/O口选择线。当IO / M=1时,选中I/O口;当IO / M=0时,选中RAM。 第6章 接口芯片与接口技术ALE:地址锁存信号。R D :读选通信号,输入,低电平有效。E R :写选通信号,输入,低电平有效。TIMERIN:定时器输入。它是8155片内定时器的脉 冲信号输入端。TIMEROUT:定时器输出。通过它可以输出矩形波 或脉冲波。 PA0~PA7:A口通用的输入/输出线。由编程来决定是 输入还是输出。 PB0~PB7:B口通用的输入/输出线。由编程来决定 是输入还是输出。http://www.lccdgg.cnPC0~PC5:C口的输入/输出或控制信号线。 第6章 接口芯片与接口技术6.2.2 8155的RAM和I/O口的编址与其它接口芯片一样,8155芯片中的RAM和I/O口均 占用单片机系统片外RAM的地址,其中高8位地址由CE和IO/[AKM-]信号决定。当 C E=0,且IO/ M =0时,低8位的00H~FFH为RAM的有效地址;当 C E =0,且IO/ M =1时,由低8位地址中的末3位(A2A1A0)来决定各个口的地址,如表6―4所示。 第6章 接口芯片与接口技术表6―4 8155端口地址表 第6章 接口芯片与接口技术对于多数单片机应用系统来说,由于片外RAM区的容量较大(最大为64KB),因此通常采用线选法对接口芯 片进行编址。对8155来说,常用高8位地址中的两位来选择IO/CEM和IO/M。例如将P2.7接至CE,将P2.0接至,那么8155的RMA和I/O口的编址为: 第6章 接口芯片与接口技术RAM:P2.7=0,P2.0=0,其地址范围为:010 B, 即:7E00H~7EFFH。 I/O口:P2.7=0,P2.0=1,口地址范围为: 011 B,即7F00H~7F05H。 第6章 接口芯片与接口技术具体分配如下:命令口:7F00H A口:7F01H B口:7F02H C口:7F03H定时器低8位:7F04H定时器高8位:7F05H 第6章 接口芯片与接口技术6.2.3 8155I/O口的工作方式8155有3个I/O口,即A口、B口和C口,其中C口只有6 位。A口和B口均可工作于基本I/O方式或选通I/O方式。 C口既可作为I/O口线,工作于基本I/O方式,也可作为A 口、B口选通工作时的状态联络控制信号线。 1.基本I/O基本I/O为无条件传送,这是最简单的I/O操作,不需 要任何联络信号,随时可以进行。2.选通I/O 选通I/O为条件传送,传送的方式可用查询方式,也可 用中断方式。 第6章 接口芯片与接口技术(1)BF:I/O缓冲器满空标志,输出,高电平有效。(2) S T B :选通信号,输入,低电平有效。 (3)INTR:中断请求信号,输出,高电平有效。 以上这些信号线对A口与B口均适用,分别称之为 ABF、 S T B 、AINTR与BBF、 B S T B 、BINTR。它们都 是由C口提供的,如表6―5所示。 第6章 接口芯片与接口技术表6―5 8155的PC口线联络信号定义 第6章 接口芯片与接口技术6.2.4 8155的命令/状态字8155有1个命令/状态寄存器,实际上这是两个不同的 寄存器,分别存放命令字和状态字。由于对命令寄存器只 能进行写操作,而对状态寄存器只能进行读操作,因此把 它们编为同一个地址,合在一起称之为命令/状态寄存器。 1.命令字 命令字共8位,用于定义I/O端口及定时器的工作方式。 对命令寄存器只能写入不能读出(读出的将是状态寄存器的内容)。命令字的格式如图6―13所示。 第6章 接口芯片与接口技术图6―13 8155的命令字格式 第6章 接口芯片与接口技术对C口工作方式的说明:D3D2=00(ALT1):A口、B口为基本I/O,C口为输入。 D3D2=01(ALT2):A口、B口为基本I/O,C口为输出。 D3D2=10(ALT3):A口选通I/O,B口基本I/O,C口低3 位为联络信号,高3位输出(参阅表6―5)。D3D2=11(ALT4):A口、B口均为选通I/O,C口低3位作为A口联络信号,高3位作为B口联络信号(参阅表 6―5)。 第6章 接口芯片与接口技术关于定时器运行控制位(TM2、TM1)补充说明如下:当TM2、TM1=11时,其操作为:当计数器未计数时, 装入计数长度和方式后立即开始计数;当计数器正在计 数时,待计数器溢出后以新装入的计数长度和方式进行 计数。 2.状态字 8155的状态寄存器与命令寄存器共用1个地址,当使 用读操作时,读入的便是状态寄存器中的内容。其格式如图6―14所示。 第6章 接口芯片与接口技术图6―14 8155的状态字格式 第6章 接口芯片与接口技术6.2.5 8155的定时/计数器8155的定时/计数器是1个14位的减法计数器,由两 个8位寄存器构成,其格式如下:D7 T7 T6 T5 T4 T3 T2 T1 D0 T0M2M1T13T12T11T10T9T8 第6章 接口芯片与接口技术其中低14位组成计数器,剩下的两个高位(M2M1) 用于定义计数器输出的信号形式,如图6―15所示。8155的定时/计数器与MCS-51单片机芯片内部的定 时/计数器在功能上是相同的,都有定时和计数两种功能。 但是在使用上却有很多不同之处。具体表现在: (1)8155的定时/计数器为减法计数,而MCS-51单片机 内部的定时/计数器却是加法计数。 (2)MCS-51单片机内部的定时/计数器有多种工作方 式,而8155的定时/计数器却只有一种固定的工作方式, 即14位计数,通过软件方法进行计数值的加载。 第6章 接口芯片与接口技术(3)MCS-51单片机内部的定时/计数器有两种计数脉冲:当定时工作时,由芯片内部按机器周期提供固定频率 的计数脉冲;当计数工作时,从芯片外部引入计数脉冲。 (4)MCS-51单片机内部的定时/计数器,在计数溢出时 自动置位TCON寄存器中的计数溢出标志位TF,供用户以 查询或中断方式使用;而8155的定时/计数器,在计数溢出 时却是通过TIMEROUT引脚向外部发出1个脉冲信号。 第6章 接口芯片与接口技术图6―15 定时/计数器输出方式 第6章 接口芯片与接口技术另外,8155的定时器在计数过程中,计数器的值并不直接表示外部输入的脉冲。若作为外部事件计数,那么 由计数器的现行计数值求输入脉冲数的方法为: (1) 停止计数器计数。 (2) 分别读出计数器的两个字节内容。(3) 取其低14位数作为现行计数值。(4) 算出现行计数值与初始计数值之差即可。 第6章 接口芯片与接口技术6.2.6 8155和MCS-51单片机的接口电路8155可以和MCS-51单片机直接相连,而不需外加 逻辑电路。图6―16所示为8155和MSC-51相连的一种 基本连接方法。 按图6―16所示接法,8155的RAM和各端口地址如下: RAM的地址:0000H~00FFH命令口:0200HA口:0201H B口:0202H C口:0203H 定时器低位:0204H定时器高位:0205H 第6章 接口芯片与接口技术图6―16 8155与MCS-51的连接方法 第6章 接口芯片与接口技术6.2.7 8155的初始化编程及应用举例8155初始化编程的主要内容为写入8155的命令字和 定时/计数器的初值以及输出方式。现举例说明如下。 例1:采用如图6―16所示的接口电路,设A口与C口 为输入口,B口为输出口,均为基本I/O。定时器为连续方 波工作方式,对输入脉冲进行24分频。试编写8155的初 始化程序。 第6章 接口芯片与接口技术解:命令字可选取为 PA=0:A口输入 PB=1:B口输出 PC2、PC1=00:A口、B口基本I/O,C口输入 IEA=0,IEB=0:A口、B口均禁止中断 TM2、TM1=11:立即启动计数器 所以命令字为B=C2H。 第6章 接口芯片与接口技术计数初值的选取方法为:由于计数值为24,所以定时器的低8位为18H,高6位为000000B。 定时器的输出方式要求为连续方波,选M2M1=01, 那么定时器的高8位为H。 RAM及端口地址与前面的相同。 第6章 接口芯片与接口技术初始化程序:MOV MOV MOVX INC DPTR,#0204H A,#18H @DPTR,A DPTR ;指向定时器的低8位 ;取定时器低8位的值 ;写入定时器低8位 ;指向定时器高8位MOVMOVX MOV MOV MOVXA,#40H@DPTR,A DPTR,#0200H A,#C2H @DPTR,A;取定时器高8位的值;写入定时器高8位 ;指向命令口 ;取8155的命令字 ;写入命令字 第6章 接口芯片与接口技术例2:仍采用图6―16所示的接口电路,从8155的A口输入数据并进行判断:若不为0,则将该数据存入8155的 RAM中(从起始单元开始存放,数据的总数不超过256个),同时从B口输出,并将PC0置“1”;若为0,则停止输入输出,同时将PC0清“0”。试编写能完成上述任务的初始 化及应用程序。 解:初始化及应用程序如下: MOV DPTR,#0200H ;指向命令口MOVMOVA,#BX @DPTR,A;取命令字;写入命令字 第6章 接口芯片与接口技术MOVMOVR0,#00HR1,#00H;指向8155的RAM区首址;数据总数为256个LOOP1:MOV DPTR,#0201H ;指向A口 MOV JZ X A,@DPTR LOOP3 ;从A口输入数据 ;为0则转MOVINC INC MOV INCX @R0,AR0 DPTR X @DPTR,A DPTR;不为0,则存入RAM中;指向下一单元 ;指向B口 ;从B口输出 ;指向C口 第6章 接口芯片与接口技术MOVSETB MOV DJNZ LOOP2:SJMPX A,@DPTRACC,0 X @DPTR,A R1,LOOP1 $;取C口数据;使PC0置1 ;回送 ;未完则反复 ;暂停LOOP3:MOVMOVX SJMPDPTR,#0203H@DPTR,A LOOP2;指向C口;回送 第6章 接口芯片与接口技术6.3 键盘显示器接口82796.3.1 8279的组成及引脚 8279芯片有40条引脚,由单一+5V电源供电。它主 要由以下几部分组成:(1) I/O控制和数据缓冲器;(2) 控制和定时寄存器及定时控制部分; (3) 扫描计数器; (4)回送缓冲器与键盘去抖动控制电路; (5)FIFO(先进先出)寄存器和状态电路;(6)显示器地址寄存器及显示RAM。 第6章 接口芯片与接口技术8279的引脚如图6―17所示,下面对引脚名称作 简要说明。DB0~DB7:双向数据总线。A0:命令状态或数据选择线。A0=1,表示从 DB0~DB7线上传送的是命令或状态字;A0=0表示为 数据。RD、W R :读、写信号线。IRQ:中断请求线。 SL0~SL3:扫描线。可进行译码扫描(4选1),也可 进行编码扫描(16选1),但要使用4-16译码器。若用38译码器的话,则扫描线为8选1。http://www.lccdgg.cn 第6章 接口芯片与接口技术图6―17 8279引脚图 第6章 接口芯片与接口技术RL0~RL7:回送线。内部有上拉电阻,从此线上得到键盘的回扫信号。 OUTA0~OUTA3、OUTB0~OUTB3:显示器刷新寄 存器输出,与扫描线同步。 第6章 接口芯片与接口技术6.3.2 8279的接口电路与应用举例图6―18给出了用8279芯片管理24个键的键盘和6 个LED数码显示器的实际应用接口电路,以及它与 8031单片机的接口方法。 作 为 一 个 外 设 接 口 芯 片 , 8 2 7 9 的 片C S 信 号 选 由8031的P25、P26、P27这3条地址线经地址译码器译 码后得到的(P27、P26、P25=011)。其片内寻址线A0与 8031系统的地址线A0相连,此时8279数据口的地址号为6000H,命令/状态口的地址号为6001H。 第6章 接口芯片与接口技术图6―18 8279应用实例 第6章 接口芯片与接口技术该接口电路的工作过程简述如下:每当按下一个键,8279会自动识别键号,产生相 应的键编码自动送入先进先出寄存器FIFO中,同时产 生中断请求信号IRQ,向CPU请求中断。当CPU响应中 断,执行中断服务程序,并从FIFO中读取编码数据之 后,则IRQ信号将自动撤消。 第6章 接口芯片与接口技术6.4 LED数码显示器接口6.4.1 LED数码显示器的结构与显示段码 1. LED数码显示器的结构 LED数码显示器是1种由LED发光二极管组合显示 字符的显示器件。它使用了8个LED发光二极管,其中7 个用于显示字符,1个用于显示小数点,故通常称之为7段(也有称作8段)发光二极管数码显示器。其内部结构如图6―19所示。 第6章 接口芯片与接口技术图6―19 7段LED数码显示器 第6章 接口芯片与接口技术LED数码显示器有两种连接方法:(1)共阳极接法。 把发光二极管的阳极连在一起构成公共阳极,使用 时公共阳极接+5V,每个发光二极管的阴极通过电阻与 输入端相连。 (2)共阴极接法。 把发光二极管的阴极连在一起构成公共阴极,使用 时公共阴极接地。每个发光二极管的阳极通过电阻与输入端相连。 第6章 接口芯片与接口技术2. LED数码显示器的显示段码为了显示字符,要为LED显示器提供显示段码(或称 字形代码),组成一个“8”字形字符的7段,再加上1个 小数点位,共计8段,因此提供给LED显示器的显示段码 为1个字节。各段码位的对应关系如下:段码位 显示段D7 dpD6 gD5 fD4 eD3 dD2 cD1 bD0 a 第6章 接口芯片与接口技术表6―6 十六进制数及空白字符与P的显示段码 第6章 接口芯片与接口技术6.4.2 LED数码显示器的接口方法与接口电路1.LED数码显示器的接口方法 单片机与LED数码显示器有以硬件为主和以软件为 主的两种接口方法。 1)以硬件为主的接口方法这种接口方法的电路如图6―20所示。 第6章 接口芯片与接口技术图6―20 以硬件为主的LED显示器接口电路 第6章 接口芯片与接口技术2)以软件为主的接口方法这种接口方法的电路如图6―21所示,它是以软件 查表代替硬件译码,不但省去了译码器,而且还能显示更 多的字符。但是驱动器是必不可少的,因为仅靠接口提 供不了较大的电流供LED显示器使用。 第6章 接口芯片与接口技术图6―21 以软件为主的LED显示器接口电路 第6章 接口芯片与接口技术2. LED数码显示器的接口电路实际使用的LED数码显示器位数较多,为了简化线 路、降低成本,大多采用以软件为主的接口方法。对于 多位LED数码显示器,通常采用动态扫描显示方法,即逐 个地循环地点亮各位显示器。这样虽然在任一时刻只 有1位显示器被点亮,但是由于人眼具有视觉残留效应, 看起来与全部显示器持续点亮的效果基本一样(在亮度 上要有差别)。http://www.lccdgg.cn 第6章 接口芯片与接口技术图6―22 8155作6位LED显示器接口的电路 第6章 接口芯片与接口技术6.4.3 LED数码显示器的显示方法对于多位数码显示器来说,为了简化线路、降低成本, 往往采用以软件为主的接口方法,即不使用专门的硬件译 码器,而采用软件程序进行译码。如前所述,由于各位数码 管的显示段码是互相并联的,因此在同一时刻只能显示同 一种字符。对于这种接口电路来说,其显示方法有静态显 示和动态显示两种。 1.静态显示 所谓静态显示,就是在同一时刻只显示1种字符,或者说 被显示的字符在同一时刻是稳定不变的。其显示方法比 较简单,只要将显示段码送至段码口,并把位控字送至位控 口即可。所用指令为: 第6章 接口芯片与接口技术MOV MOV MOV MOV MOV MOVDPTR,#SEGPORT A,#SEG X @DPTR,A DPTR,#BITPORT A,#BIT X @DPTR,A;指向段码口 ;取显示段码 ;输出段码 ;指向位控口 ;取位控字 ;输出位控字 第6章 接口芯片与接口技术2.动态显示如果要在同一时刻显示不同的字符,从电路上看,这 是办不到的。因此只能利用人眼对视觉的残留效应,采 用动态扫描显示的方法,逐个地循环点亮各位数码管,每 位显示1ms左右,使人看起来就好象在同时显示不同的 字符一样。 在进行动态扫描显示时,往往事先并不知道应显示 什么内容,这样也就无从选择被显示字符的显示段码。为此,一般采用查表的方法,由待显示的字符通过查表得到其对应的显示段码。 第6章 接口芯片与接口技术下面介绍一种动态扫描显示子程序:DIR: MOV MOV MOV MOV R0,#7AH R3,#01H A,#00H R1,#BITPORT ;指向显示缓冲区首址 ;从右边第1位开始显示 ;取全不亮位控字 ;指向位控口MOVLD1: MOV MOV MOV MOVX @R1,AA,@R0 DPTR,#DSEG C A,@A+DPTR R1,#SEGPORT;瞬时关显示;取出显示数据 ;指向显示段码表首址 ;查显示段码表 ;指向段码口 第6章 接口芯片与接口技术MOVMOV MOV MOV LCALLX @R1,AR1,#BITPORT A,R3 X @R1,A DELY;输出显示段码;指向位控口 ;取位控字 ;输出位控字 ;延时1msINCJB RL MOV SJMPR0A.5,LD2 A R3,A LD1;指向下一个缓冲单元;已到最高位则转返回 ;不到,向显示器高位移位 ;保存位控字 ;循环 第6章 接口芯片与接口技术LD2: RETDSEG:DBC0H,F9H,A4H,B0H,99H,92H,82H ;显示段码表 DB F8H,80H,90H,88H,83H,C6H,A1H DB 86H,84H,FFH 第6章 接口芯片与接口技术程序说明:(1)本例接口电路是以软件为主的接口电路,显示数 据有6位,每位数码管对应1位有效显示数据。 (2)由程序可知,由于数码显示器的低位(最右边的位) 显示的是显示缓冲区中的低地址单元中的数,因此数 在显示缓冲区中存放的次序为低地址单元存低位,高地 址单元存高位。 (3)在动态扫描显示过程中,每位数码管的显示时间约1ms,这由调用延时1ms子程序DELY来实现。 第6章 接口芯片与接口技术(4)本程序是利用查表方法来得到显示段码的,这是一种既简便又快速的方法。由于MCS-51单片机具有查 表指令(MOVC指令),因此用来编制查表程序是非常方 便的。 (5)由于在显示段码表中,将“空白”字符排在字母 “F”的后边,因此在使用查表指令时,若要查“空白” 字符的显示段码,那么在累加器A中应放入数据“10H”。 (6)在实际的单片机应用系统中,一般将显示程序作为1个子程序供监控程序调用。 第6章 接口芯片与接口技术6.4.4 LED数码显示器应用举例1.静态显示举例 例1:在数码显示器的最左边1位上显示1个“P”字。 数码显示器的接口电路如图6―22所示,设8155的端口地 址为7F00H~7F05H,数码管为共阳极。试编写相应的显 示程序。 解:本例要显示的字符已知,且在同一时刻只显 示1种字符,故可采用静态显示的方法。由图6―22可知,当采用共阳极数码管时,应按共阳极规律控制。在程序的开始,应对8155进行初始化编程,设A、B口 均为输出。 第6章 接口芯片与接口技术程序如下:MOV MOV A,#03H DPTR,#7F00H ;8155命令字(A、B口均为输出) ;指向命令口MOVMOV INCX @DPTR,AA,#8CH DPTR;输出命令字;取“P”字符的显示段码 ;指向A口MOVINC INCX @DPTR,ADPTR DPTR;输出显示段码;指向C口MOVMOV SJMPA,#20HX @DPTR,A $;取位控字(最左边一位上显示);输出位控字 ;暂停 第6章 接口芯片与接口技术例2:开始时在数码显示器的最右边一位上显示1个“0”字,以后每隔0.5秒将“0”字左移1位,直到最左 边一位后则停止显示。接口电路与端口地址同上,设有20ms延时子程序D20MS可供调用。试编写相应的程序。解:本例仍可采用静态显示的方法。 程序如下: MOV MOV A,#03H ;8155命令字(A、B口均为输出) ;指向命令口DPTR,#7F00HMOVMOVX @DPTR,AA,#C0H;输出命令字;取“0”字的显示段码 第6章 接口芯片与接口技术INCMOV INCDPTRX @DPTR,A DPTR;指向A口;输出显示段码INCMOV LOOP1:MOV MOV LOOP2:LCALLDPTRA,#01H R0,#19H D20MS X @DPTR,A;指向C口;取位控字(最右边一位上显示) ;输出位控字 ;延时0.5秒DJNZJB RL AR0,LOOP2A.5,LOOP3 ;若已到最左边一位,则转 ;未到,则将位控字左移1位 第6章 接口芯片与接口技术SJMPLOOP3:MOV MOV SJMPLOOP1A,#00H X @DPTR,A $;继续;停止显示;暂停2.动态显示举例例3:编一动态显示程序,使数码显示器同时显示“ABCDEF”6个字符。设显示缓冲区的首地址为7AH, 可调用动态扫描显示子程序DIR(参见643小节)。 第6章 接口芯片与接口技术解: MOVMOV MOV LOOP:MOV INCA,#0FHR0,#7AH R1,#06H @R0,A R0;取最右边1位字符;指向显缓区首址(最低位) ;共送入6个字符 ;将字符送入显缓区 ;指向下一显示单元DECDJNZ MM: LCALL SJMPAR1,LOOP DIR MM;取下一个显示字符;6个数未送完,则重复 ;扫描显示一遍 ;重复扫描 第6章 接口芯片与接口技术例4:在一串单字节无符号数中找出最大值,并在数码显示器的最右边两位上显示。设数据串的长度为20, 存放在片内RAM从30H单元开始的一段区域中。解:根据题意,LED数码显示器必须采用动态扫描显示的方法。 本例要显示的是两位数,而数码显示器有6位。在不 显示数字的位上数码管应该不亮,而动态扫描显示子程 序每次对6位数码管全扫描一遍。 第6章 接口芯片与接口技术程序按如下思路编写:(1)先求出最大值。 (2)将最大值拆字节后存入显示缓冲区,应注意数的 存放次序。根据题意,低位数应存入显示缓冲区的低地 址单元。 (3)将“空白”字符的查表值10H送入不显示位所对 应的显示缓冲区中。 (4)反复调用动态扫描显示子程序。 第6章 接口芯片与接口技术程序如下:MOV MOV MOV M1: INC R0,#30H R1,#13H A,@R0 R0 ;R0指向数据区首地址 ;比较次数送R1 ;取第1个数 ;指向下一个数MOVCJNE M2: DJNZ SJMP M3: JNC70H,@R0A,70H,M3 R1,M1 M4 M2;下一个数送入70H单元中;若前后两个数不相等则转 ;若相等,则判比较完否? ;若已完,则转至显示处理 ;前一个数大,转至判结束否? 第6章 接口芯片与接口技术MOVSJMP M4: MOV ANL MOVA,70HM2 R2,A A,#0FH 7AH,A;前一个数小,将大数换入A中;转至判结束处 ;暂存最大值 ;保留低位数 ;将低位数存入显示缓冲区中MOVANL SWAP MOVA,R2A,#F0H;恢复最大值;保留高位数 ;将高位换入低位中7BH,A;存入高位数 第6章 接口芯片与接口技术MOVMOV MOV MOV MOVA,#10H;取“空白”字符查表值7CH,A ;放入显示缓冲区不显示位的单元中 7DH,A 7EH,A 7FH,A ;高4位不显示MM:LCALLSJMPDIRMM;扫描显示一遍;重复扫描,显示最大值 第6章 接口芯片与接口技术6.5 键盘接口键盘实际上是由排列成矩阵形式的一系列按键开关组成的,它是单片机系统中最常用的人机联系的一 种输入设备。用户通过键盘可以向CPU输入数据、地址和命令。键盘按其结构形式可分为编码式键盘和非编码式键 盘两大类。 编码式键盘是由其内部硬件逻辑电路自动产生被按 键的编码。这种键盘使用方便,但价格较贵。 第6章 接口芯片与接口技术单片机系统中普遍使用非编码式键盘。这类键盘应主要解决以下几个问题: (1)键的识别; (2)如何消除键的抖动; (3)键的保护。在以上几个问题中,最主要的是键的识别。 第6章 接口芯片与接口技术6.5.1 非编码式键盘的结构与工作原理1.非编码式键盘的结构 非编码式键盘一般采用行列式结构并按矩阵形式排 列,如图6―23所示。 图6―23示出4×4行列式键盘的基本结构示意图。4×4表示有4根行线和4根列线,在每根行线和列线的交叉点上均分布1个单触点按键,共有16个按键。 第6章 接口芯片与接口技术2.非编码式键盘的工作原理非编码式键盘识别闭合键通常有两种方法:一种称 为行扫描法,另一种称为线反转法。 1)行扫描法 所谓行扫描法,就是通过行线发出低电平信号,如果该行线所连接的键没有按下的话,则列线所连接的输出端口得到的是全“1”信号;如果有键按下的话,则得到 的是非全“1”信号。 第6章 接口芯片与接口技术图6―23 非编码式键盘行扫描法的工作原理? (a)无键按下;(b)有键按下;(c)扫描第0行;?(d)扫描第1行;(e)扫描第2行;(f)扫描第3行 第6章 接口芯片与接口技术图6―23 非编码式键盘行扫描法的工作原理? (a)无键按下;(b)有键按下;(c)扫描第0行;?(d)扫描第1行;(e)扫描第2行;(f)扫描第3行 第6章 接口芯片与接口技术图6―23 非编码式键盘行扫描法的工作原理? (a)无键按下;(b)有键按下;(c)扫描第0行;?(d)扫描第1行;(e)扫描第2行;(f)扫描第3行 第6章 接口芯片与接口技术具体过程如下:首先,为了提高效率,一般先快速检查整个键盘中是 否有键按下;然后,再确定按下的是哪一个键。 其次,再用逐行扫描的方法来确定闭合键的具体位 置。方法是:先扫描第0行,即输出1110(第0行为“0”, 其余3行为“1”),然后读入列信号,判断是否为全“1”。 第6章 接口芯片与接口技术2) 线反转法线反转法也是识别闭合键的一种常用方法。该方 法比行扫描法速度要快,但在硬件电路上要求行线与列线均需有上拉电阻,故比行扫描法稍复杂些。3.如何消除键的抖动 由于按键为机械开关结构,因此机械触点的弹性及 电压突跳等原因,往往在触点闭合或断开的瞬间会出现 电压抖动,如图6―24所示。 http://www.lccdgg.cn 第6章 接口芯片与接口技术图6―24 键闭合和断开时的电压抖动 第6章 接口芯片与接口技术4.键的保护键的保护问题指的是当有双键或多键同时按下时会 出现什么问题以及如何加以解决。 以图6―23所示为例,若在同一行上有两个键同时按 下,从硬件上来说,不会出现什么问题;从软件上来说,由 于这时读入的列代码中出现了两个0,由此代码与行值组 合成的键特征值就超出了原设定键的范围,因此也就查 不出有效的键值来。一旦出现这样情况,一般作为废键处理。 第6章 接口芯片与接口技术6.5.2 键盘接口电路对于8031型单片机来说,如果P1口不作其它用途的 话, 则 可 与 4 × 4 的键 盘相连接 , 如 图6 ―25 所 示,其 中 P1.0~P1.3作为输出口,P1.4~P1.7作为输入口。 对于型单片机来说,如果不再外扩程序 存储器的话,则可以利用P0~P2口中的任意两个口构成 多达8×8的键盘,其中1个作为输出口,1个作为输入口, 既可以采用行扫描法,也可以采用线反转法。 第6章 接口芯片与接口技术图6―25 键盘的接口电路(行扫描法) 第6章 接口芯片与接口技术如果单片机本身的口线已被占用的话,则可以通过外扩I/O接口芯片来构成键盘接口电路,较常用的是 A等接口芯片。图6―26是采用8155接口芯片构成8×4键盘的接口电路,其中A口为输出,作为行线;C口为输入,作为列线(只用了PC0~PC3四根口线)。 第6章 接口芯片与接口技术图6―26 采用8155的键盘接口电路 第6章 接口芯片与接口技术6.5.3 键盘扫描程序现以图6―26所示接口电路为例,说明键盘扫描程序 的编制方法。 1.采用行扫描法 采用行扫描法识别闭合键的程序流程图见图6―27。 第6章 接口芯片与接口技术图6―27 键分析程序流程图 第6章 接口芯片与接口技术首先调用全扫描子程序,检查有无闭合键。若无键 闭合,则对数码显示器扫描显示1遍;若有键闭合,则先消 抖。这里采用调用两次数码显示器扫描循环显示子程 序的方法,每次6ms共12ms。然后再次检查有无键闭合, 若无键闭合,则返回主程序;若有键闭合,则进行逐行扫 描,以判别闭合键的具体位置。 本例介绍的是第1种方法,采用的计算公式为键值=行号×4+列号 (6―1) 对于8×4的键盘来说,其具体键值由式(6―1)可计算 出,见表6―7。 第6章 接口芯片与接口技术表6―7 8×4键盘键值计算法 第6章 接口芯片与接口技术计算出闭合键的键值后,再判断键释放否?若键未释放,则等待;若键已释放,则再延时消抖,然后判断是 命令键还是数字键。若是命令键,则转入命令键处理程 序,完成命令键的功能;若是数字键,则转入数字键处理 程序,进行数字的存储和显示等。 第6章 接口芯片与接口技术键盘扫描程序:KEY1: LCALL JNZ LJMP LK1: LCALL KS1 LK1 LK8 DIR ;检查有闭合键否? ;A非0,有键闭合则转 ;无键闭合转返回 ;有键闭合,则延时12msLCALLLCALL JNZ LJMP LK2: MOVDIRKS1 LK2 LK8 R3,#00H;消抖;再次检查有键闭合否? ;有键闭合则转 ;无键闭合转返回 ;行号初值送R3 第6章 接口芯片与接口技术MOVLK3: MOV MOVR2,#FEHDPTR,#0101H A,R2;行扫描初值送R2;指向8155口A ;行扫描值送AMOVINC INC MOV ANLX @DPTR,ADPTR DPTR X A,@DPTR A,#0FH;扫描1行;指向8155口C ;读入列值 ;保留低4位MOVCJNE MOVR4,AA,#0FH,LK4 A,R2;暂存列值;列值非全“1”则转 ;行扫描值送A 第6章 接口芯片与接口技术JNBRL MOVA.7,LK8A R2,A;已扫到最后1行则转;未扫完,则移至下1行 ;行值存入R2中INCSJMP LK4: MOV ADD MOVR3LK3 A,R3 A,R3 R5,A;行号加1;转至扫描下1行 ;行号送入A ;行号×2 ;暂存ADDMOV MOVA,R5R5,A A,R4;行号×4;存入R5中 ;列值送入A 第6章 接口芯片与接口技术LK5:RRCJNC INCALK6 R5;右移1位;该位为0则转 ;列号加1SJMPLK6: PUSH LK7: LCALL LCALL JNZLK5R5 DIR KS1 LK7;列号未判完继续;保护键值 ;扫描1遍显示器 ;发全扫描信号 ;键未释放则等待LCALLLCALL POPDIRDIR A;键已释放;延时12ms,消抖 ;键值存入A中 第6章 接口芯片与接口技术KND: RETLK8: MOV RET KS1: MOV MOV A,#FFH;返主;无闭合键标志FFH存入A中 ;返主 DPTR,#0101H A,#00H ;有无闭合键判断子程序 ;取全扫描信号MOVINC INC MOV ANLX @DPTR,ADPTR DPTR X A,@DPTR A,#0FH;发全扫描信号;指向8155口C ;读入列值 ;保留低4位 第6章 接口芯片与接口技术ORLCPL RETA,#F0HA ;返主;高4位取“1”;取反,无键按下则全0DIR数码显示器扫描显示子程序可参阅LED数码 显示器接口一节。2.采用线反转法本例程序采用线反转法来识别闭合键。为简单起见, 采用4×4的键盘,其接口电路如图6―28所示。 第6章 接口芯片与接口技术图6―28 键盘接口电路(线反转法) 第6章 接口芯片与接口技术与上例不同的是,本例先求出闭合键的特征值,然后采用查表的方法求出键值,因此预先要建立1个键值表。 如果采用一般的查表方法,由于键的特征值不是依次排 列的数值,因此键值表的长度将会很长。例如对于4×4 的键盘来说,有效键值只有16个,键的特征值也是16个。 但这16个特征值却不是依次排列的,而是从77H到EEH 共占用了半页左右的范围(即占用了100多个地址单元)。 如果键的数目增加的话,那么占用的范围还要增加。实 际上这是对有效地址单元的一种浪费。 第6章 接口芯片与接口技术程序中有一点需要说明的是,8031的P1口是准双向口,在输入之前先要输出高电平。由于本例采用4×4的 键盘,P1口的低4位作为输出,高4位作为输入。在先输出 低4位全扫描信号的同时,将高4位输出全“1”信号,所 以就不需要再专门输出高4位的全“1”信号了。 与上例程序一样,本例程序也应作为子程序,执行一 遍后,若(A)=FFH,则无闭合键;若(A)≠FFH,则有闭合键,A 中存放的即为该闭合键的键值。 第6章 接口芯片与接口技术线反转法程序如下:KEYZ: LCALL JNZ LJMP MK1: LCALL KS2 MK1 MK7 DIR ;检查有闭合键否? ;A非0,有键闭合则转 ;无键闭合转返回 ;有键闭合,则延时12msLCALLLCALL JNZ LJMP MK2:MOVDIRKS2 MK2 MK7 P1,#F0H;消抖;再次检查有键闭合吗? ;若有键闭合则转 ;若无键闭合则转返回 ;发行线全扫描信号,列线全“1” 第6章 接口芯片与接口技术MOVANL CJNE LJMPA,P1A,#F0H A,#F0H,MK3 MK7;读入列状态;保留高4位 ;有键按下则转 ;无闭合键转返回MK3:MOV R2,A ;保存列值ORLMOV MOV ANLA,#0FHP1,A A,P1 A,#0FH;列线信号保留,行线全“1”;从列线输出 ;读入P1口状态 ;保留行线值ADD A,R2 ;将行线值和列线值合并得到键特征值 第6章 接口芯片与接口技术MOVMOV MOV MOV MK4:CLR A MOV MOV MOVR2,AR3,#00H DPTR,#TRBE R4,#10H C A,@A+DPTR 70H,A A,R2;暂存于R2中;R3存键值(先送初始值0) ;指向键值表首址 ;查找次数送R4 ;表中值送入A ;暂存于70H单元中 ;键特征值送入ACJNEMK5:LCALL LCALLA,70H,MK6DIR KS2;未查到则转;扫描1遍显示器 ;还有键闭合否? 第6章 接口芯片与接口技术JNZLCALL LCALL MOV RETMK5DIR DIR A,R3;若键未释放,则等待;若键已释放,则延时12消抖 ;将键值存入A中 ;返主MK6: INCINC DJNE MK7: MOV RETR3DPTR R4,MK4 A,#FFH;键值加1;表地址加1 ;未查到,反复查找 ;无闭合键标志存入A中 ;返主 第6章 接口芯片与接口技术KS2: MOVMOV ANL CPL RETP1,#F0HA,P1 A,#F0H A;闭合键判断子程序;发全扫描信号,读入列线值 ;保留列线值 ;取反,无键按下为全0 ;返主TRBE: DB 7EH,BEH,DEH,EEH,7DH,BDH,DDH,EDHDB 7BH,BBH,DBH,EBH,77H,B7H,D7H,E7H 第6章 接口芯片与接口技术6.6 A/D转换器接口6.6.1 A/D转换器概述 A/D转换器用以实现模拟量向数字量的转换。按转换原 理可分为4种:计数式、双积分式、逐次逼近式及并行式A/D转换器。目前最常用的是双积分式和逐次逼近式。双积分式 A/D转换器的主要优点为转换精度高、抗干扰性能好、价格便宜;缺点为转换速度较慢。因此这种转换器主要用于速度要求不高的场合。常用的产品有 ICL7106/ICL7107/ICL7126系列、MC1443以及ICL7135等。 第6章 接口芯片与接口技术另一种常用的A/D转换器是逐次逼近式。逐次逼近式A/D转换器是一种速度较快、精度较高的转换器,其转换时 间大约在几微秒到几百微秒之间。常用的这类芯片有:(1)ADC0801~ADC0805型8位MOS型A/D转换器;(2)ADC型8位MOS型A/D转换器; (3)ADC型8位MOS型A/D转换器。 量化间隔和量化误差是A/D转换器的主要技术指标之 一。量化间隔可由下式求得:? ?满量程输入电压2 ?1n?满量程电压2n(6―2) 第6章 接口芯片与接口技术其中n为A/D转换器的位数。量化误差有两种表示方法:一种是绝对量化误差; 另一种是相对量化误差。可分别由下式求得: 绝对量化误差? ?相对量化误差量化间隔?? 2(6―3)2? ?21n ?1(6―4) 第6章 接口芯片与接口技术例如,当满量程电压为5V,采用10位A/D转换器的量化间隔、绝对量化误差、相对量化误差分别为: 量化间隔:? ? 1 2 ? 210? 4 .8 8 m V绝对量化误差:? ?? 4 .8 8 m V 2 ? 2044m V相对量化误差:? ? 1 211? 0 .0 0 0 4 9 ? 0 .0 4 9 % 第6章 接口芯片与接口技术6.6.2 典型A/D转换器芯片ADC0809简介ADC0809是典型的8位8通道逐次逼近式A/D转换器, 采用CMOS工艺制造。 1.ADC0809的内部逻辑结构 ADC0809的内部逻辑结构如图6―29所示。 第6章 接口芯片与接口技术图6―29 ADC0809的内部逻辑结构图 第6章 接口芯片与接口技术 表6―8 ADC0809通道选择表? 第6章 接口芯片与接口技术图6―30 ADC0809的引脚图 第6章 接口芯片与接口技术2.ADC0809的引脚ADC0809芯片为28引脚双列直插式封装,其引脚排 列见图6―30。 (1)IN7~IN0:模拟量输入通道。 (2)ADDA、ADDB、ADDC:模拟通道地址线。(3)ALE:地址锁存信号。(4)START:转换启动信号。 (5)D7~D0:数据输出线。 (6)OE:输出允许信号。 (7)CLK:时钟信号。 第6章 接口芯片与接口技术(8) EOC:转换结束状态信号。(9)VCC:+5V电源。 (10)Vref:参考电压。 第6章 接口芯片与接口技术6.6.3 MCS-51单片机与ADC0809的接口ADC0809与MCS-51单片机的一种常用连接方法如 图6―31所示。 电路连接主要涉及两个问题,一个是8路模拟信号的 通道选择,另一个是A/D转换完成后转换数据的传送。 1. 8路模拟通道选择 ADDA、ADDB、ADDC分别接系统地址锁存器提 供的末3位地址,只要把3位地址写入0809中的地址锁存器,就实现了模拟通道选择。 第6章 接口芯片与接口技术图6―31 ADC的连接图 第6章 接口芯片与接口技术启动A/D转换只需使用1条MOVX指令。在此之前,要将P2.0清0并将末3位与所选择的通道号相对应的口 地址送入数据指针DPTR中。例如要选择IN0通道时,可 采用如下两条指令,即可启动A/D转换: MOV MOV DPTR,#FE00H X @DPTR,A ;送入0809的口地址 ;启动A/D转换(IN0)注意:此处的A与A/D转换无关,可为任意值。 第6章 接口芯片与接口技术图6―32 ADC0809信号的时间配合 第6章 接口芯片与接口技术2.转换数据的传送A/D转换后得到的数据为数字量,这些数据应传送给 单片机进行处理。数据传送的关键问题是如何确认A/D 转换的完成,因为只有确认数据转换完成后,才能进行 传送。通常可采用下述3种方式。 1)定时传送方式 对于一种A/D转换器来说,转换时间作为一项技术 指标是已知的和固定的。 2)查询方式 A/D转换芯片有表示转换结束的状态信号,例如 ADC0809的EOC端。 第6章 接口芯片与接口技术3)中断方式如果把表示转换结束的状态信号(EOC)作为中断请 求信号,那么,便可以中断方式进行数据传送。 不管使用上述哪种方式,只要一旦确认转换结束,便 可通过指令进行数据传送。所用的指令为MOVX读指 令,仍以图6―31所示为例,则有 MOV MOVX DPTR,#FE00H A,@DPTR 第6章 接口芯片与接口技术例如与D0~D2相连。这时启动A/D转换的指令与上述类似,只不过A的内容不能为任意数,而必须和所选输 入通道号IN0~IN7相一致。例如当ADDA、ADDB、 ADDC分别与D0、D1、D2相连时,启动IN7的A/D转换 指令如下: MOV MOV MOV DPTR,#FE00H A,#07H ;送入0809的口地址;D2D1D0=111,选择IN7通道X @DPRT,A ;启动A/D转换 第6章 接口芯片与接口技术6.6.4 A/D转换应用举例设有一个8路模拟量输入的巡迥检测系统,使用中断 方式采样数据,并依次存放在外部RAM的A0H~A7H单 元中。采集完一遍以后即停止采集。其数据采样的初 始化程序和中断服务程序如下: 初始化程序:http://www.lccdgg.cn MOV MOV R0,#A0H R2,#08H ;设立数据存储区指针 ;8路计数值SETBSETBIT1EA;边沿触发方式;CPU开中断 第6章 接口芯片与接口技术SETBMOV LOOP:MOV HERE:SJMP 中断服务程序:EX1;允许外部中断1中断DPTR,#FEF0H ;送入口地址并指向IN0 X @DPTR,A HERE ;启动A/D转换 ;等待中断MOVMOV INCX A,@DPTRX @R0,A DPTR;采样数据;存数 ;指向下一个模拟通道 第6章 接口芯片与接口技术INCDJNZ CLR CLR RER0R2,INT1 EA EX1 TI;指向数据存储区下一个单元;8路未转换完,则继续 ;已转换完,则关中断 ;禁止外部中断1中断 ;从中断返回INT1:MOVREX @DPTR,ATI;再次启动A/D转换;从中断返回 第6章 接口芯片与接口技术6.7 D/A转换器接口6.7.1 D/A转换器接口的技术性能指标 D/A转换器的输入为数字量,经转换后输出为模拟量。 有关D/A转换器的技术性能指标很多,例如绝对精度、 相对精度、线性度、输出电压范围、温度系数、输入 数字代码种类(二进制或BCD码)等等。对这些技术性能指标,这里不作全面详细说明,仅对几个与接口有关的技术性能指标作一介绍。 第6章 接口芯片与接口技术(1)分辨率。分辨率是D/A转换器对输入量变化敏感程度的描述, 与输入数字量的位数有关。如果数字量的位数为n,则 D/A转换器的分辨率为2-n。这就意味着D/A转换器能对 满刻度的2-n输入量作出反应。 (2)建立时间。 建立时间是描述D/A转换速度快慢的一个参数,指 从输入数字量变化到输出达到终值误差±1/2LSB(最低有效位)时所需的时间,通常以建立时间来表明转换速度。 第6章 接口芯片与接口技术(3)接口形式。D/A转换器与单片机的接口方便与否,主要决定于 转换器本身是否带数据锁存器。 6.7.2 典型D/A转换器芯片DAC0832简介 DAC0832为一个8位D/A转换器,单电源供电,在+5~+15V范围内均可正常工作。基准电压的范围为±10V,电流建立时间为1μs,CMOS工艺,低功耗20mW。 DAC0832的内部结构框图如图6―33所示。 第6章 接口芯片与接口技术图6―33 DAC0832内部结构框图 第6章 接口芯片与接口技术图6―34 0832运算放大器接法 第6章 接口芯片与接口技术图6―35 DAC0832引脚图 第6章 接口芯片与接口技术各引脚的功能如下:(1)D7~D0:转换数据输入端。 (2) C S :片选信号,输入,低电平有效。 (3)ILE:数据锁存允许信号,输入,高电平有效。 (4) W R 1 :写信号1,输入,低电平有效。(5) W R 2 :写信号2,输入,低电平有效。(6) X F E R :数据传送控制信号,输入,低电平有效。 (7)IOUT1:电流输出1,当DAC寄存器中各位为全“1”时,电 流最大;为全“0”时,电流为0。 第6章 接口芯片与接口技术(8)IOUT2:电流输出2,电路中保证IOUT1+IOUT2=常数。 (9)Rfb:反馈电阻端,片内集成的电阻为15kΩ。 (10)Vref:参考电压,可正可负,范围为-10~+10V。 (11)DGND:数字量地。 (12)AGND:模拟量地。 第6章 接口芯片与接口技术6.7.3 MCS-51单片机与DAC0832的接口MCS-51单片机与DAC0832的接口有3种连接方式, 即直通方式、单缓冲方式及双缓冲方式。直通方式不 能直接与系统的数据总线相连,需另加锁存器,故较少应 用。下面介绍单缓冲与双缓冲两种连接方式。 1.单缓冲方式 所谓单缓冲方式就是使DAC0832的两个输入寄存器 中有一个处于直通方式,而另一个处于受控的锁存方式,当然也可使两个寄存器同时选通及锁存。 第6章 接口芯片与接口技术2.双缓冲方式所谓双缓冲方式,就是把DAC0832的两个锁存器都 接成受控锁存方式。 由于两个锁存器分别占据两个地址,因此在程序中 需要使用两条传送指令,才能完成一个数字量的模拟转换。假设输入寄存器地址为FEFFH,DAC寄存器地址为FDFFH,则完成一次D/A转换的程序段应为: 第6章 接口芯片与接口技术MOVMOV MOV MOV MOVA,#DATADPTR,#FEFFH X @DPTR,A DPTR,#FDFFH X @DPTR,A;转换数据送入A;指向输入寄存器 ;转换数据送输入寄存器 ;指向DAC寄存器 ;数据进入DAC寄存器并进行D/A转换 第6章 接口芯片与接口技术图6―36 DAC0832的3种单缓冲连接方式? (a)DAC寄存器直通方式;(b)输入寄存器直通方式;(c)两个寄存器同时选通及锁存方式 第6章 接口芯片与接口技术图6―36 DAC0832的3种单缓冲连接方式? (a)DAC寄存器直通方式;(b)输入寄存器直通方式;(c)两个寄存器同时选通及锁存方式 第6章 接口芯片与接口技术图6―36 DAC0832的3种单缓冲连接方式? (a)DAC寄存器直通方式;(b)输入寄存器直通方式;(c)两个寄存器同时选通及锁存方式 第6章 接口芯片与接口技术图6―37 DAC0832的双缓冲连接方式图 第6章 接口芯片与接口技术6.7.4 D/A转换应用举例D/A转换器是计算机控制系统中常用的接口器件, 它可以直接控制被控对象,例如控制伺服电动机或其它 执行机构。它也可以很方便地产生各种输出波形,如矩 形波、三角波、阶梯波、锯齿波、梯形波、正弦波及 余弦波等。 第6章 接口芯片与接口技术图6―38 DAC0832的双极性输出接口 第6章 接口芯片与接口技术在图6―38中,运算放大器A2的作用是把运算放大器A1的单极性输出变为双极性输出。例如,当Vref=+5V 时,A1的电压输出范围为0~-5V。当VOUT1=0V 时,VOUT2=-5V;当VOUT1=-2.5V时,VOUT2=0V;当VOUT1=-5V 时,VOUT2=+5V。VOUT2的输出范围为-5V~+5V。VOUT2与 参考电压Vref的关系为:VOUT 2 ?数字码 ? 1 2 8128? V ref(6―2) 第6章 接口芯片与接口技术几点说明:(1)以上程序产生的是矩形波,其低电平的宽度由延 时子程序DMS1所延时的时间来决定,高电平的宽度则 由子程序DMS2所延时的时间来决定。 (2)改变延时子程序DMS1和DMS2的延时时间,就 可改变矩形波上下沿的宽度。若DMS1=DMS2(两者延 时一样),则输出的是方波。 (3)改变上限值或下限值便可改变矩形波的幅值:单 极 性 输 出 时 为0 ~ - 5 V 或 0 ~ + 5 V ; 双 极 性 输 出 时 为5~+5V。 第6章 接口芯片与接口技术2.产生锯齿波利用DAC0832产生锯齿波的参考程序如下: MOV MOV MM:MOV A,#00H ;取下限值DPTR,#FEFFH ;指向0832口地址 X @DPTR,A ;输出INCNOP NOP NOP SJMPA;转换值增量;延时MM;反复 第6章 接口芯片与接口技术几点说明:(1)程序每循环1次,A加1,可见锯齿波的上升沿是由 256个小阶梯构成的。 (2)可通过循环程序段的机器周期数,计算出锯齿波 的周期,并可根据需要通过延时的办法来改变波形周期。(3)通过A加1,可得到正向的锯齿波;如要得到负向的锯齿波,只要将A加1改为A减1指令即可实现。 (4)程序中A的变化范围为0~255,所得到的锯齿波为 满幅度。 第6章 接口芯片与接口技术3.产生三角波利用DAC0832产生三角波的参考程序如下: MOV MOV SS1:MOV A,#00H DPTR,#FEFFH X @DPTR,A ;取下限值 ;指向0832口地址 ;输出NOPNOP NOP;延时 第6章 接口芯片与接口技术SS2: INCJNZ SS3: DEC MOV NOPASS1 A;转换值增量;未到峰值,则继续 ;已到峰值,则取后沿X @DPTR,A ;输出 ;延时NOPNOP JNZ SJMP SS3 SS2 ;未到谷值,则继续 ;已到谷值,则反复 第6章 接口芯片与接口技术几点说明:(1)本程序所产生的三角波谷值为0,峰值为+5V(或5V)。若改变下限值和上限值,那么三角波的谷值和峰 值也随之改变。 (2)改变延时时间可改变三角波的斜率。(3)若在谷值和峰值处延时较长时间的话,则输出梯形波,延时时间的长短取决于梯形波上下边的宽度。}

我要回帖

更多关于 8255a有几个端口地址 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信