常用接口芯片及应用.ppt

上传人:牧羊曲112 文档编号:6469388 上传时间:2023-11-02 格式:PPT 页数:258 大小:2.56MB
返回 下载 相关 举报
常用接口芯片及应用.ppt_第1页
第1页 / 共258页
常用接口芯片及应用.ppt_第2页
第2页 / 共258页
常用接口芯片及应用.ppt_第3页
第3页 / 共258页
常用接口芯片及应用.ppt_第4页
第4页 / 共258页
常用接口芯片及应用.ppt_第5页
第5页 / 共258页
点击查看更多>>
资源描述

《常用接口芯片及应用.ppt》由会员分享,可在线阅读,更多相关《常用接口芯片及应用.ppt(258页珍藏版)》请在三一办公上搜索。

1、2023年11月2日星期四,1,微机原理与接口技术,第6章 常用接口芯片及应用,2,第6章 常用接口芯片及应用,1 可编程接口芯片概述 计算机系统是由软件和硬件组成的,软件的特点是具有极高的灵活性,只要硬件允许,用户就可通过编程构成任意功能的软件。硬件则不灵活,一旦电路设计完成,其功能就确定了,很难更改,降低计算机系统功能发挥。,3,第6章 常用接口芯片及应用,希望硬件接口电路最好具有一定的可变性,即希望存在这么一种芯片,当这个芯片与CPU相连后,尽管电路不能改变,但其功能可通过程序改变。(如设计某具有O/I功能的端口,可根据需要通过指令来选择输入接口或输出接口),大大提高计算机系统灵活性。,

2、第6章 常用接口芯片及应用,这种可被用户通过程序来改变功能的电路芯片,称为可编程芯片,而用程序改变芯片工作方式的过程称为芯片编程或芯片初始化。,第6章 常用接口芯片及应用,如图是一个简单的具有输入功能和输出功能的可编程接口电路,它包括一个输入接口,其组成主要是八位的三态门;一个输出接口,其组成主要是八位的锁存器;另外还有八位的多路转换开关及控制这个开关的寄存器FF。,第6章 常用接口芯片及应用,FF=0,开关接位置“0”I/O线接锁存器,电路作为输出接口。FF=1,开关接位置“1”I/O线接三态门,电路作为输入接口。用户通过指令把寄存器FF写入0或1,就可选取所需接口工作状态。,第6章 常用接

3、口芯片及应用,上述方案就是可编程芯片设计的主要思想。用户对寄存器FF写入的内容称为命令字或方式控制字,而寄存器FF称为命令寄存器相应的端口称为命令端口或控制端口,对可编程芯片初始化过程实际上就是对芯片的控制端口写入各种命令字的操作过程。,8,第6章 常用接口芯片及应用,接口电路已由早期的逻辑电路板(由中、小规模集成电路芯片组成)发展到以大规模集成电路芯片为主的接口芯片,用于微机输入/输出的接口芯片种类极多,功能各异。按功能选择的灵活性来分,可分为可编程接口芯片(8259、8255、8253、8251等)和不可编程接口芯片(如 三态门、CMOS 锁存器、缓冲器电路等);按接口的通用性来分,可分为

4、通用接口芯片(8255、8251等)和专用接口芯片(键盘接口,显示器接口等)。,9,第6章 常用接口芯片及应用,本章将对一些常用的接口芯片8255A(并行I/O接口)、8253(计数/定时器)、8251A(串行I/O接口)、9259A(中断控制器)进行介绍。从接口芯片的外特性着手,介绍接口芯片的应用。,10,第6章 常用接口芯片及应用,2 可编程并行接口芯片8255A(P289),8255A是一种通用的可编程并行IO接口芯片,广泛用于几乎所有系列的微型机系统中,具有3个带锁存或缓冲的数据端口,用户可用程序来选择多种操作方式,各端口内具有中断控制逻辑,在外设与CPU之间可用中断方式进行信息交换,

5、使用条件传输方式时可用“联络”线进行控制。,11,第6章 常用接口芯片及应用,一、8255A的内部结构 8255A的内部结构如图6.1(P291,图6.5)所示。二、8255A的引脚功能 8255A芯片采用NMOS工艺制造,40个引脚的双列直插封装如图6.4所示。40条引脚可分为与CPU连接和与外设连接的引脚。,12,第6章 常用接口芯片及应用,三、8255A的工作方式及编程 1.8255A的工作方式 8255A各端口共有3种基本工作方式:方式0基本输入/输出方式;方式1选通输入/输出方式;方式2双向传送方式。,13,第6章 常用接口芯片及应用,方式0主要工作在无条件的输入/输出方式下,不需要

6、“联络”信号。A口、B口和C口均可工作在此方式下。在方式0下,C口的输出位可由用户直接独立设置为“0”或“1”。,第6章 常用接口芯片及应用,方式1主要工作在异步或条件传输方式(必须先检查状态,然后才能传输数据)下,此时,仅有A口和B口可工作于方式1。由于条件传输需要联络线,所以在方式1下C口的某些位分别为A口和B口提供3根联络线。,第6章 常用接口芯片及应用,方式2的双向传送方式是指在同一端口内分时进行输入/输出的操作。8255A中只有A口可工作在这种方式下,此时需要5个控制信号进行“联络”,这5个信号由C口提供。故此时B口只能工作在方式0或方式1下,当B口工作在方式1时,又需要3根联络线。

7、,第6章 常用接口芯片及应用,所以当A口工作在方式2下,同时B口又工作在方式1下时,8255A的C口8根线将全部作为联络线使用,C口也就因没有I/O功能而“消失”了。关于C口“联络”信号的定义后面讨论。,第6章 常用接口芯片及应用,2.8255A编程 所谓8255A编程,就是用户在使用8255前,用户可用软件来定义端口的工作方式,选择所需要的功能。掌握8255A的编程时正确使用该芯片的前提。8255A复位时,A、B、C三端口工作在方式0的输入状态。,18,第6章 常用接口芯片及应用,3.方式选择控制字 格式如图所示(P296,图6.12)。通过定义工作方式控制字可将3个端口定义为各种不同方式的

8、组合,19,【例1】设端口A工作在方式1输出,端口C上半部为输出,下半部为输入,端口B工作在方式0输入,则这时的方式选择控制字应为10100011B或A3H。,第6章 常用接口芯片及应用,如果把这个方式选择控制字通过输出指令写入到8255A的控制寄存器中,便完成了对8255A的初始化。显然,对8255A初始化后,8255A就会按照初始化时所设定的方式选择控制字指定的工作方式来完成工作。,20,第6章 常用接口芯片及应用,设8255A的控制端口地址为FFF6H,那么对8255A的初始化程序为MOV DX,0FFF6H;控制端口地址MOV AL,0A3H;写入控制字OUT DX,AL,21,第6章

9、 常用接口芯片及应用,【例2】按下述要求对8255A进行初始化:要求A口设为输入数据,工作于方式1;B口设为输出数据,工作于方式0;C口高四位输出,低四位输入数据。8255A的端口地址为04A0H04A6H。,22,第6章 常用接口芯片及应用,解:初始化程序段如下:MOV DX,04A6H;送控制口地址 MOV AL,10110001H;设置方式选择控制字 OUT DX,AL,23,第6章 常用接口芯片及应用,4.C口按位置位/复位控制字格式如图所示(P296)D7位为置位/复位控制字标志位,必须使D7=0;D3Dl位用于选择对端口C中某一位进行操作;D0位指出对选中位是置1还是清0。D0=1

10、时,使选中位置1;D0=0时,使选中位清0。,24,若D0=0,D3D2D1=101,则C端口的第5位PC5置“0”;若D0=1,D3D2D1=001,则C端口的第1位PC1置“1”。,第6章 常用接口芯片及应用,25,第6章 常用接口芯片及应用,【例1】设一片8255A的端口地址为60H63H,PC5平时为低电平,要求从PC5的引脚输出一个正脉冲。可以用程序先将PC5置1,输出一个高电平,再把PC5清0,输出一个低电平,结果PC5引脚上便输出一个正脉冲。,实现这个功能的程序段如下:MOV AL,000010l1B OUT 63H,AL;置PC5为高电平MOV AL,00001010B OUT

11、 63H,AL;置PC5为低电平,26,第6章 常用接口芯片及应用,【例2】要使端口C的bit3置位的控制字为:00000111B;MOV AL,00000111B OUT 0FBH,AL 而使端口C的bit3复位的控制字为:00000110B;MOV AL,00000110B OUT 0FBH,AL,27,第6章 常用接口芯片及应用,【例3】试编程使8255A的C口PC3位产生一个方波信号。8255A的端口地址为04A0H04A6H。解:可利用C口置/复位控制字,交替使PC3位输出“1”和“0”。程序段如下:,28,第6章 常用接口芯片及应用,MOV DX,04A6H;送控制口地址 LL:M

12、OV AL,00000111B;对PC3位置1 OUT DX,AL CALL DELAY;延时 MOV AL,00000110B;对PC3位置0 OUT DX,AL JMP LL;循环,产生周期信号,29,第6章 常用接口芯片及应用,【例4】要把端口C的PC7置成1。则控制字应为00001111B或0FH。把该控制字的内容写入8255A的控制寄存器中,就实现了对端口C的PC7位置1的操作。,其程序如下:MOV DX,0FFF6H;8255A控制端口地址MOV AL,0FH;PC7置1的控制字OUT DX,AL;写入控制端口若要使端口C的PC3置0,则控制字应为00000110B或06H。,30

13、,其程序段如下:MOV DX,0FFF6H;控制端口地址MOV AL,06H;PC3置0的控制字OUT DX,AL;写入控制端口端口C置1/置0控制字虽然是对端口C进行操作,但它是一种控制字,因此,必须写入控制端口而不能写入端口C的地址中。,第6章 常用接口芯片及应用,31,第6章 常用接口芯片及应用,5 读入C端口状态字前面指出,当8255A工作于方式1和方式2时,C端口产生或接收与外设间的联络信号,这时,读取C端口的内容可使编程人员测试或检查外设的状态,用输入指令对C端口进行读操作就可读取C端口的状态。C端口的状态字有以下几种格式。,32,第6章 常用接口芯片及应用,方式1状态字输入状态字

14、的格式如下:各位含义见P297,其中,D7D3位为A组状态字,D2D0位为B组状态字。输出状态字的格式如下:各位含义见P297,其中,D7D3位为A组状态字,D2D0位为B组状态字。,33,第6章 常用接口芯片及应用,方式2状态字方式2状态字的格式如下:,其中,D7D3位为A组状态字,D2D0位为B组所用,当B口工作于方式1时,这几位作B口的状态字,当B口工作于方式0时,这几位不是状态位,而是用做输入/输出。,34,第6章 常用接口芯片及应用,四.8255A的工作方式的功能及应用,8255A共有三种工作方式可选择,每个端口可选择的工作方式都有所差别。8255A端口A可以在方式0、方式1和方式2

15、三种方式下工作,而端口B只能在方式0和方式1两种方式下工作。8255A工作在什么方式下是由控制寄存器的内容决定的。8255A的各个I/O端口在不同工作方式下的功能如表6-3所示。下面介绍这三种工作方式的特点、功能、时序及使用场合等。,35,第6章 常用接口芯片及应用,、方式 0基本输入输出方式(P291)8255A的3个端口均可工作在这种方式下,特别是C口只能工作在方式0。在这种方式下,CPU与端口之间交换数据可以执行IN或OUT指令完成,不需检测状态线,8255A的3个端口可分别定义为输入或输出端口,因此3个端口可有表2所示的16种输入/输出组合。,36,第6章 常用接口芯片及应用,由控制字

16、中D4D3D1D0 等4位的不同取值可定义方式0的16种工作方式的组合,如表2所示。,37,第6章 常用接口芯片及应用,这意味着当8255A与CPU相连后,该接口部件可以提供用户16种不同功能的输入/输出端口。采用可编程芯片作为接口电路可以大大提高计算机硬件系统灵活性。方式0中,数据输出有锁存,输入无锁存。方式0的输入/输出时序如图6.6所示。,38,第6章 常用接口芯片及应用,39,第6章 常用接口芯片及应用,例1:要求8255A的A口和B口均工作于方式0,A口和下C口作输入口,B口和上C口作输出口,设8255A各端口地址为40H43H,可用下列指令来设置这种工作方式:MOV AL,91H;

17、方式控制字0010001BAL OUT 43H,AL;方式控制字送控制寄存器,第6章 常用接口芯片及应用,例2.8255A的A口和B口工作在方式0,A口为输入端口,接有四个开关。B口为输出端,接有一个七段发光二极管,连接电路如图所示。试编一程序要求七段发光二班管显示开关所拨通的数字。,第6章 常用接口芯片及应用,第6章 常用接口芯片及应用,例中,8255的端口地址由两部分组成,由CPUA15 A3通过74LS138产生CS,A2A1组合成4个端口地址,A0与译码器Y4通过逻辑组合,保证8255的4个端口地址为偶地址。8020H、8022H、8024H、8026H。七段发光二极管为共阳极LED器

18、件。a段亮从PB0输出1,熄灭输出0。,第6章 常用接口芯片及应用,8255A的口接有开关,4位开关的组合可为0HFH。为此,可将在LED上显示0HFH各字符的断码列于图表中。方式控制字:10010000B(90H或99H)参考程序如下:,第6章 常用接口芯片及应用,A_PORT EQU 8020H B_PORT EQU 8022H;定义端口的符号地址C_PORT EQU 8024HCTRL_PORT EQU 8026HDATA SEGMENT TAB1 DB 3FH,06H,31HDATA ENDS,第6章 常用接口芯片及应用,CODE SEGMENT ASSUME DS:DATA,CS:C

19、ODE MOV AX,DATA MOV DS,AX MOV AL,90H MOV DX,CTRL_PORT OUT DX,AL;设置8255方式字ADD1:MOV DX,A_PORT,第6章 常用接口芯片及应用,IN AL,DX;取键盘信息 AND AL,0FH;屏蔽高4位 MOV BX,OFFSET TAB1 XLAT MOV DX,B_PORT OUT DX,AL;输出显示 MOV CX,0600HADD2:LOOP ADD2 JMP ADD1 CODE ENDS END,第6章 常用接口芯片及应用,方式1选通输入/输出方式P292 在这种方式下,数据输入/输出操作要在选通信号控制下完成,

20、因此适合条件传送,A口和B口可工作在此方式下,这时C口的某些位就用来作“联络线”。A口和B口可以作为输入接口,也可作为输出接口,由于输入和输出接口所需的选通控制不同,相应“联络线”的定义功能也就不同。,48,第6章 常用接口芯片及应用,当8255A的端口A和端口B都工作在方式1时,任何一个端口都可作为输入端口或输出端口,这时端口C中有6位将被规定为配合方式1的联络信号,其中3位作为端口A的联络信号,另外3位作为端口B的联络信号。端口C剩下的2位可由程序设定为输入或输出,也具有置位/复位功能。,49,如果8255A的端口A和端口B中只有一个工作在方式1,则此时端口C中的3位被规定为配合工作在方式

21、1的联络信号。另外一个端口(端口A或端口B)可以工作在方式0,端口C中的其他位也可以工作在方式0,作为输入或输出。,第6章 常用接口芯片及应用,50,第6章 常用接口芯片及应用,方式1输入情况下有关信号的规定 当A口作为方式1输入时,C口的PC3、PC4、PC5作为控制信号,PC6、PC7则可作为I/O口利用。当B口作为方式1输入时,C口的PC0、PC1、PC2作为控制信号。如图6.7所示(P293,图6.8)。,51,第6章 常用接口芯片及应用,8255A中的端口A和端口B均工作于方式1输入模式,其工作方式控制字格式如图6.8-1所示 方式1的输入时序如图6.9所示(P294,T6.9)。常

22、见的8255A的输入接口(中断I/O)的连接图如图6-7所示,第6章 常用接口芯片及应用,例:8255的A口和B口分别工作在方式1和方式0,A口为输入端口,接有8个开关。B口为输出端,接有8个发光二极管,连接电路如图所示。现要求用方式1把改变后的键信息输入到CPU并通过B口显示。,第6章 常用接口芯片及应用,这个系统的工作过程如下:1、用户通过改变K0K7,产生新的键信息;2、按下开关K,产生选通信号,数据进入A口的缓冲器,此步骤实际上告诉CPU,8255的A口来了一个新数据;,第6章 常用接口芯片及应用,3、IBFA有效使LED点亮。这里含有两个信息,一个是8255A 通知CPU其A口来了一

23、个新数据,另一个是告诉用户CPU尚未取走这个这个数据,用户不得再送其他数据;,4、CPU取走这个数据,LED熄灭;5、转步骤1。,第6章 常用接口芯片及应用,设8255的I/O地址分布为88H8EH,相应的程序段如下 mov al,10111001b;设置A口为方式1的输入,loop1:in al,8ch;取C口的状态线 test al,00100000b;测试IBFA信息 jz loop1;等待用户设定新的键值 in al,80h;取数。LED灯灭(相对于步骤4)out 82h,al;更新B口的显示 jmp loop1;重复,56,第6章 常用接口芯片及应用,方式1输出有关信号的规定 当A口

24、作为方式1输出时,C口的PC7、PC6、PC3作为控制信号,PC4、PC5则作为I/O口使用。当B口作为方式1输出时,C口的PC0、PC1、PC2作为控制信号,PC4、PC5则作为I/O口使用。如图6.10所示(P292,图6.6)。,57,第6章 常用接口芯片及应用,8255A中的端口A和端口B为工作方式1输出模式,那么工作方式控制字的具体格式如图6.11所示,方式1的输出时序如图6.12所示(P293,T6.7),输出接口(中断I/O),其一般连接如图6-10-1所示,第6章 常用接口芯片及应用,例:8255A的A口工作在方式1的输出,接有8个发光二极管,现要求把内存中的10个数,通过A口

25、发送给发光二极管以二进制的形式供用户抄录。,第6章 常用接口芯片及应用,这个系统的工作过程如下:CPU把内存中的一个数据 写入A口;LED灯亮,告诉用户LED显示的是新数据.用户抄录数据;用户按下开关K,发ACK信号,告诉CPU数据已取走;转第一步。,第6章 常用接口芯片及应用,DATA SEGMENT XX DB X0,X1,X9DATA ENDSCODE SEGMENT ASSUME DS:DATA,CS:CODE MOV AX,DATA MOV DS,AX,第6章 常用接口芯片及应用,mov cx,10;送10个数mov bx,offset xx;数组指针送bxloop1:mov al,

26、bx;取数out 88h,al;送数到A口loop2:in al,8ch;取C口状态线anl al,80h;测试IBOAjnz loop2;用户尚未抄录数据,检测;等待,;此时;LED灯亮(对应步骤2)call delay;用户已抄录数据,LED灯灭(对;应步 骤4)inc bx;准备送下一个数 loop loop1;循环10次;返回系统,62,第6章 常用接口芯片及应用,、方式2双向总线方式(仅适用于A口)P294 工作特点:该方式只适用于A口(因其有输入、输出两个锁存器)。在该方式下,可使外设利用A口的8位数据线与CPU之间分时进行双向数据传送,即在单一的8位数据线PA7-PA0上,既可输

27、出数据给外设,也可以从外设输入数据(当然不能同时进行)。输入或输出数据均锁存。,63,第6章 常用接口芯片及应用,A口工作在方式2时,C口的PC7PC3被规定为控制信号,配合A口使用。如图6.13所示(P294,T6.10)。图中控制信号的含义与方式1中完全相同。,64,第6章 常用接口芯片及应用,当A口工作在方式2时,B口可工作在方式0或方式1。在方式1情况下,可用PC2PC0作为控制信号。方式控制字格式如图6.14-1所示。系统连接图如图6-13-1所示。,65,通过以上对8255A的三种基本工作方式的分析可以得出这样的结论:端口A可以工作在这三种工作方式中的任何一种,端口B只能工作在方式

28、0或方式1,端口C则通常配合端口A和端口B工作,为端口A和端口B提供其输入/输出过程中所需的联络信号,方式2只有端口A使用。同一组的两个端口(A组或B组)可以分别工作在输出方式或输入方式,并不要求一定要同为输入方式或同为输出方式,各端口具体工作在什么工作方式下,作为输入端口还是输出端口,这些都是通过写入方式选择控制字来决定的。,第6章 常用接口芯片及应用,66,第6章 常用接口芯片及应用,四、8255A与CPU的连接使用 8255A占外设的4个地址,即A口、B口、C口和控制寄存器各占一个外设接口地址。对同一个地址分别进行读写工作。例如:读A口可将A口的数据读出;写A口可将CPU的数据写入A口并

29、输出。利用8255A的片选信号、A0、A1,以及读写信号,既可方便的对8255A进行寻址。这些信号的功能如表所示。(P298,表6.1),67,第6章 常用接口芯片及应用,68,第6章 常用接口芯片及应用,图6.17(P298)为8255A与8086总线连接,8255A右边的信号线与系统总线连接,左边的3个口分别与外设的数据输入输出线、状态信息连接。,69,第6章 常用接口芯片及应用,五、8255A初始化 8255A初始化编程可以分两步进行:首先把方式选择控制字写入控制口,确定所用端口的工作方式,如果端口选择为工作方式1或方式2,还要确定CPU和8255A之间是用查询方式还是用中断方式交换信息

30、,并以此来组织C口置位/复位控制字,写入8255A控制口,使相应的中断允许标志(INTE)置0或置1,从而达到禁止或开放中断的目的。完成了初始化编程之后,CPU就可以用IN和OUT指令通过8255A与外设交换数据了。,70,第6章 常用接口芯片及应用,3、8255A的应用 一、简单开关接口电路 例1:在工业控制等实际应用中,经常需要检测某些开关量的状态。如图所示,在某系统中,采用8255A不断检测8个开关K7K0的通断状态,并随时在8个发光二极管LED7LED0上显示出来。要求开关闭合时,相应的LED亮;开关断开时,相应的LED灭。8255A的端口地址为60H63H。,71,第6章 常用接口芯

31、片及应用,72,第6章 常用接口芯片及应用,解:由电路原理可知,A口为方式0输入,B口为方式0输出,则8255A的方式选择控制字为10010000B,即90H。且开关闭合,则A口输入低电平;当B口输出低电平时,相应的LED点亮。程序段如下:,73,第6章 常用接口芯片及应用,MOV DX,63H MOV AL,90H;设置方式选择控制字 OUT DX,ALTES:MOV DX,60H;读A口(开关状态)IN AL,DX MOV DX,61H;送B口显示 OUT 61H,AL JMP TES;循环检测,74,第6章 常用接口芯片及应用,二、8255A与LED数码管接口(P335)1七段数码显示器

32、 一般7段LED显示器的内部结构和外部引脚如图6.46(a)所示。其内部各发光二极管之间的连接方法有共阴极和共阳极两种,如图6.46(b)和6.46(c)所示。,75,第6章 常用接口芯片及应用,LED数码管的主要部分是七段发光二极管,如图6.46(a)所示。这七段发光二极管分别称为a、b、c、d、e、f、g,有的产品还附带有一个小数点h,通过7个发光段的不同组合,可以显示09和AF共16个字母数字或其它异形字符。,76,第6章 常用接口芯片及应用,LED数码管有共阳极、共阴极两种结构,如图6.46(b)和(c)所示。如为共阳极结构,则共用的阳极应接高电平,各段则输入低电平,方为有效。如为共阴

33、极结构,共用的阴极必须接低电平,而各段处于高电平时便发光。表6.2表示了共阴极与共阳极结构字符0F的编码表。编码的低位为a,高位为g。,77,由此可见,无论是共阴极还是共阳极,要使LED按照要求显示数字或字母,必须输入各段发光的代码,该代码称为七段码。显示代码之间的对应关系如表6.2所示。例如,要显示数字5,只要将a、f、g、c、d段接低电平,其余段接高电平即可。对于共阴极结构的LED显示器,阴极连在一起后接地,各阳极段接到器件的引脚上,要想点亮某一段,只要将相应引脚接高电平即可。,第6章 常用接口芯片及应用,78,第6章 常用接口芯片及应用,由于发光二极管发光时,通过的平均电流为10mA20

34、mA,而通常的输出锁存器不能提供这么大的电流,所以LED各段必须接驱动电路,如图所示。,79,第6章 常用接口芯片及应用,例1:8255A作为开关K0K3及七段LED显示器接口。要求开关设置的二进制信息,由PC0PC3输入,经程序转换为对应的七段LED显示器的字形代码后,由PA口输出显示。,80,第6章 常用接口芯片及应用,81,第6章 常用接口芯片及应用,解:8255A各端口地址确定:,各端口地址为:E8HEEH,82,第6章 常用接口芯片及应用,LED显示器的字形代码表存放在TABLE单元开始的内存中.TABLE DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8

35、H DB 80H,98H,88H,83H,0C6H,0A1H,86H,8EH,83,第6章 常用接口芯片及应用,实现操作的具体程序如下:MOV DX,0EEH;设置8255A工作方式 MOV AL,81H OUT DX,ALMOV DX,0ECH;指向端口C,读开关状态 IN AL,DX AND AL,0FHLEA BX,TABLE;显示代码表首地址送BX XLAT;查表,取出相应的字形码送ALMOV DX,0E8H;指向端口A OUT DX,AL;输出字形码显示 HLT,84,第6章 常用接口芯片及应用,三、8255与并行打印机接口(P332)例1:并行打印机接口电路P332 利用8255A

36、的A口方式0与微型打印机相连,将内存缓冲区BUFF中的字符打印输出。试完成相应的软硬件设计。(CPU为8088)首先分析打印机。微型打印机和主机之间的接口采用并行接口。,85,第6章 常用接口芯片及应用,1打印机接口信号(如表)P332BUSY:输出,表示打印机是否可接受数据的信号。忙信号,有效时不能接受数据。:输出,向主机发出的传送数据的请求脉冲。响应信号,有效时接收数据。:输入,主机向打印机输入数据的选通脉冲。数据选通,有效时接收数据。,86,第6章 常用接口芯片及应用,2工作流程 工作流程是:数据传输时序如图所示 主机将要打印的数据送上数据线,然后发选通信号。打印机将数据读入,同时使BU

37、SY线为高,通知主机停止送数。这时,打印机内部对读入的数据进行处理。处理完以后使ACK有效,同时使BUSY失效,通知主机可以发下一个数据,87,第6章 常用接口芯片及应用,3硬件连线 PC0充当打印机的选通信号,通过对PC0的置位/复位产生选通。PC7接收打印机发出的“BUSY”信号。8255A的控制字为:10001000 即88H A口方式0,输出;C口高位方式0输入,低位方式0输出 PC0置位:00000001 即 01HPC0复位:00000000 即 00H8255A的4个口地址为:00H,01H,02H,03H。,88,第6章 常用接口芯片及应用,89,第6章 常用接口芯片及应用,4

38、编制程序 DADA SEGMENTBUFF DB This is a print program!,$DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,90,第6章 常用接口芯片及应用,START:MOV AX,DATA MOV DS,AX MOV SI,OFFSET BUFF MOV AL,88H;8255A初始化,A口方式0,输出 OUT 03H,AL;C口高位方式0输入,低位方式0输出 MOV AL,01H;OUT 03H,AL;使PC0置位,即使选通无效,91,第6章 常用接口芯片及应用,WAIT:IN AL,02H TEST AL,80H;检

39、测PC7是否为1即是否忙 JNZ WAIT;为忙则等待 MOV AL,SI CMP AL,$;是否结束符 JZ DONE;是则输出回车 OUT 00H,AL;不是结束符,则从A口输出 MOV AL,00H OUT 03H,AL;产生选通信号 INC SI;修改指针,指向下一个字符 JMP WAIT,92,第6章 常用接口芯片及应用,DONE:MOV AL,0DH OUT 00H,AL;输出回车符 MOV AL,00H OUT 03H,AL;产生选通 MOV AH,4CH INT 21H CODE ENDSEND START,93,第6章 常用接口芯片及应用,4 可编程定时/计数器8253及其应

40、用 在微机应用系统中,经常会提出这样的要求:一种是要求一些外部实时时钟,以实现延时控制或定时;另一种是要求能对外部事件计数的计数器。实现上述要求可采用三种方法。,94,第6章 常用接口芯片及应用,(1)设计数字逻辑电路来实现计数或定时要求。即由硬件电路实现的计数器/定时器,这种电路,若要改变计数/定时的要求,必须改变电路参数。通用性、灵活性差;,95,第6章 常用接口芯片及应用,(2)编制一段程序,用软件来实现计数和定时的要求。这种方法通用性和灵活性都好,但是要占用CPU的时间;(3)采用可编程定时器/计数器,其定时与计数功能可由程序灵活地设定,设定后与CPU并行工作,不占用CPU的时间。,9

41、6,第6章 常用接口芯片及应用,本节介绍的8253就是一种可编程定时器/计数器芯片,又称为“可编程间隔定时器”。一、8253的引线功能及内部结构18253的内部结构(P301,T6.20)如图所示,97,第6章 常用接口芯片及应用,28253 的引线 与CPU的接口信号 数据线(D7D0):三态双向数据线。与CPU数据总线相连,用于传递CPU与8253之间的数据信息、控制信息和状态信息。计数器的计数值亦通过此数据总线进行读写。,98,第6章 常用接口芯片及应用,控制线(CS,RD,WR):完成片选和读写操作。8253的读/写操作逻辑如表所示。片选及地址线CS,A1,A0用于芯片及内部寄存器、计

42、数器的寻址。即3个计数器和一个控制字寄存器。一般与CPU低位的地址线相连。,99,第6章 常用接口芯片及应用,A9A8A7A6A5=00010选中(CS=0),A4A3A2未用,A1A0接8253的 A1A0。,100,第6章 常用接口芯片及应用,.与外部设备的接口信号CLK0(CLK1,CLK2)时钟脉冲输入端,用于输入定时脉冲或计数脉冲信号。CLK可以是系统时钟脉冲,也可以是由其他脉冲源提供。如果输入是周期精确的时钟,则8253一般工作在定时方式,如果输入是周期不定的脉冲,或关心的只是脉冲的数量而不是脉冲的时间间隔,则此时8253一般作为计数器使用。8253规定加在CLK引脚的输入时钟周期

43、不得小于380ns。8253:02.6MHz;8254-2:010MHz。,101,第6章 常用接口芯片及应用,GATE0(GATE1,GATE2)门控输入端,用于外部控制计数器的启动或停止计数的操作。当GATE为高电平时,允许计数器工作,当GATE为低电平时,禁止计数器工作。两个或两个以上计数器连用时,可用此信号来同步,也可用于与外部信号的同步。OUT0(OUT1,OUT2)计数输出端。在不同工作方式中,当计数器计数到0时,OUT引脚上必输出相应的信号。,102,第6章 常用接口芯片及应用,二、8253的工作方式 8253内部3个相同16位计数器都能够以6种方式工作。,第6章 常用接口芯片及

44、应用,从上述工作方式看出,8253的6种工作方式可以归为两类,一类是充当频率发生器(方式2、方式3),一类是主要作为计数器(方式0、方式1、方式4、方式5)来使用。,104,第6章 常用接口芯片及应用,三、8253的控制字与初始化编程1控制字格式P2008253的控制字有4个主要功能*选择计数器;*确定计数器数据的读写格式;*确定计数器的工作方式;*确定计数器计数的数制。,105,第6章 常用接口芯片及应用,最大0FFFFH,最大9999,106,第6章 常用接口芯片及应用,28253的初始化编程 刚接通电源时,诸如8253之类的可编程外围接口芯片通道都处于未定义状态,在使用之前,必须用程序把

45、它们初始化为所需的特定模式,这个过程称为初始化编程。对8253芯片进行初始化编程时,需按下列步骤进行:,107,第6章 常用接口芯片及应用,(1)写入控制字 用输出指令向控制字寄存器写入一个控制字,以选定计数器通道,规定该计数器的工作方式和计数格式。写入控制字还起到复位作用,使输出端OUT变为规定的初始状态,并使计数器清0。,108,第6章 常用接口芯片及应用,(2)写入计数初值 用输出指令向选中的计数器端口地址中写入一个计数初值,初值设置时要符合控制字中有关格式的规定。初值可以是8位数据,也可以是16位数据。若是8位数,只要用一条输出指令就可完成初值的设置。如果是16位数,则必须用两条输出指

46、令来完成,而且规定先送低8位数据,后送高8位数据。注意,计数初值为0时,若为16位计数,也要分成两次写入。,109,计数初值的计算假设已知8253相应通道的CLK端接入的时钟频率为fCLK,周期记为TCLK=1/fCLK,要求产生的周期性信号频率为f(周期为T)或定时时间为T(f=1/T),则所需计数初值n为,在计算时应注意时间和频率的单位要一致。,第6章 常用接口芯片及应用,110,第6章 常用接口芯片及应用,8253工作过程中,CPU可用输入指令读取任一通道的计数值。CPU读到的是执行输入指令瞬间计数器的当前值。但8253的计数器是16位,所以要分2次读至CPU。因此,若不锁存的话,在前后

47、两次执行输入指令的过程中,计数值可能已经变化了。锁存当前计数值的方法:,111,第6章 常用接口芯片及应用,向8253写入一个方式控制字,令8253通道的锁存器锁存。8253的每个通道都有一个16位锁存器,平时它的值随着通道计数器的值变化。当向通道写入锁存的控制字时,它把计数器的当前值锁存(计数器可继续计数),于是CPU读取的就是锁存器的值。当对计数器重新编程,或读取计数值后,自动解除锁存状态,它的值又随计数器变化。,112,第6章 常用接口芯片及应用,例1:在某微机系统中,8253的3个计数器的端口地址分别为3F0H、3F2H和3F4H,控制字寄存器的端口地址为3F6H,要求8253的通道0

48、工作于方式3,BCD计数,并已知对它写入的计数初值n=1234(十进制数),则初始化程序为:,113,MOV AL,00110111;控制字:选择通道0,先读/写低字节,后高字节,方式3,BCD计数 MOV DX,3F6H;指向控制口 OUT DX,AL;送控制字 MOV AL,34H;计数值低字节,代表0011 0100 BCD MOV DX,3F0H;指向计数器0端口 OUT DX,AL;先写入低字节 MOV AL,12H;计数值高字节,代表0001 0010 BCDOUT DX,AL;后写入高字节,114,第6章 常用接口芯片及应用,四、8253应用举例 18253定时功能的应用 在计算

49、机应用中,经常会遇到隔一定时 间重复某一个动作的应用。【例1】设某应用系统中,系统提供一个频率为10kHz的时钟信号,要求每隔100ms采集一次数据。,115,第6章 常用接口芯片及应用,解:在系统中,采用8253定时器的通道0来实现这一要求。将8253芯片的CLK0接到系统的10kHz时钟上,OUT0输出接到CPU的中断请求线上,8253的端口地址为10H13H,如图所示。,116,第6章 常用接口芯片及应用,(1)选择工作方式 由于系统每隔100ms定时中断一次,则采样频率为10Hz,可选用方式2来实现。当8253定时器工作在方式2时,在写入控制字与计数初值后,定时器就启动工作,每到100

50、ms时间,即计数器减到1时,输出端OUT0输出一个CLK周期的低电平,向CPU申请中断,CPU在中断服务程序中完成数据采集,同时按原设定值重新开始计数,实现了计数值的自动重装。,117,第6章 常用接口芯片及应用,(2)确定计数初值已知fCLK0=10kHz,则TCLK0=0.1ms,所以,计数初值N=TOUT0/TCLK0=100ms/0.1ms=1000=03E8H(3)初始化编程根据以上要求,可确定8253通道0的方式控制字为00110100B,即34H。初始化程序段如下:,118,第6章 常用接口芯片及应用,MOV AL,34H;通道0,16位计数,方式2,二进制计数 OUT 13H,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号