版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
14一月20251微机原理与接口技术第6章常用接口芯片及应用2第6章常用接口芯片及应用
§1可编程接口芯片概述
计算机系统是由软件和硬件组成的,软件的特点是具有极高的灵活性,只要硬件允许,用户就可通过编程构成任意功能的软件。硬件则不灵活,一旦电路设计完成,其功能就确定了,很难更改,降低计算机系统功能发挥。3第6章常用接口芯片及应用
希望硬件接口电路最好具有一定的可变性,即希望存在这么一种芯片,当这个芯片与CPU相连后,尽管电路不能改变,但其功能可通过程序改变。(如设计某具有O/I功能的端口,可根据需要通过指令来选择输入接口或输出接口),大大提高计算机系统灵活性。第6章常用接口芯片及应用
这种可被用户通过程序来改变功能的电路芯片,称为可编程芯片,而用程序改变芯片工作方式的过程称为芯片编程或芯片初始化。第6章常用接口芯片及应用
FF=0,开关接位置“0”I/O线接锁存器,电路作为输出接口。FF=1,开关接位置“1”I/O线接三态门,电路作为输入接口。用户通过指令把寄存器FF写入0或1,就可选取所需接口工作状态。第6章常用接口芯片及应用
上述方案就是可编程芯片设计的主要思想。用户对寄存器FF写入的内容称为命令字或方式控制字,而寄存器FF称为命令寄存器相应的端口称为命令端口或控制端口,对可编程芯片初始化过程实际上就是对芯片的控制端口写入各种命令字的操作过程。
8第6章常用接口芯片及应用
接口电路已由早期的逻辑电路板(由中、小规模集成电路芯片组成)发展到以大规模集成电路芯片为主的接口芯片,用于微机输入/输出的接口芯片种类极多,功能各异。按功能选择的灵活性来分,可分为可编程接口芯片(8259、8255、8253、8251等)和不可编程接口芯片(如三态门、CMOS锁存器、缓冲器电路等);按接口的通用性来分,可分为通用接口芯片(8255、8251等)和专用接口芯片(键盘接口,显示器接口等)。9第6章常用接口芯片及应用
本章将对一些常用的接口芯片8255A(并行I/O接口)、8253(计数/定时器)、8251A(串行I/O接口)、9259A(中断控制器)进行介绍。从接口芯片的外特性着手,介绍接口芯片的应用。10第6章常用接口芯片及应用§2可编程并行接口芯片8255A(P289)8255A是一种通用的可编程并行I/O接口芯片,广泛用于几乎所有系列的微型机系统中,具有3个带锁存或缓冲的数据端口,用户可用程序来选择多种操作方式,各端口内具有中断控制逻辑,在外设与CPU之间可用中断方式进行信息交换,使用条件传输方式时可用“联络”线进行控制。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主要工作在无条件的输入/输出方式下,不需要“联络”信号。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根联络线。第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个端口定义为各种不同方式的组合
19【例1】
设端口A工作在方式1输出,端口C上半部为输出,下半部为输入,端口B工作在方式0输入,则这时的方式选择控制字应为10100011B或A3H。第6章常用接口芯片及应用如果把这个方式选择控制字通过输出指令写入到8255A的控制寄存器中,便完成了对8255A的初始化。显然,对8255A初始化后,8255A就会按照初始化时所设定的方式选择控制字指定的工作方式来完成工作。20第6章常用接口芯片及应用设8255A的控制端口地址为FFF6H,那么对8255A的初始化程序为
MOVDX,0FFF6H;控制端口地址
MOVAL,0A3H;写入控制字
OUT DX,AL21第6章常用接口芯片及应用
【例2】按下述要求对8255A进行初始化:要求A口设为输入数据,工作于方式1;B口设为输出数据,工作于方式0;C口高四位输出,低四位输入数据。8255A的端口地址为04A0H~04A6H。22第6章常用接口芯片及应用解:初始化程序段如下:
MOVDX,04A6H;送控制口地址
MOVAL,10110001H;设置方式选择控制字
OUTDX,AL23第6章常用接口芯片及应用
4.C口按位置位/复位控制字格式如图所示(P296)
D7位为置位/复位控制字标志位,必须使D7=0;D3~Dl位用于选择对端口C中某一位进行操作;D0位指出对选中位是置1还是清0。D0=1时,使选中位置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的端口地址为60H~63H,PC5平时为低电平,要求从PC5的引脚输出一个正脉冲。可以用程序先将PC5置1,输出一个高电平,再把PC5清0,输出一个低电平,结果PC5引脚上便输出一个正脉冲。实现这个功能的程序段如下:
MOVAL,000010l1B
OUT63H,AL ;置PC5为高电平
MOVAL,00001010B
OUT63H,AL ;置PC5为低电平26第6章常用接口芯片及应用
【例2】要使端口C的bit3置位的控制字为:00000111B;
MOVAL,00000111BOUT0FBH,AL
而使端口C的bit3复位的控制字为:00000110B;
MOVAL,00000110BOUT0FBH,AL27第6章常用接口芯片及应用
【例3】试编程使8255A的C口PC3位产生一个方波信号。8255A的端口地址为04A0H~04A6H。解:可利用C口置/复位控制字,交替使PC3位输出“1”和“0”。程序段如下:28第6章常用接口芯片及应用
MOVDX,04A6H;送控制口地址
LL:MOVAL,00000111B;对PC3位置1OUTDX,ALCALLDELAY;延时
MOVAL,00000110B;对PC3位置0OUTDX,ALJMPLL;循环,产生周期信号29第6章常用接口芯片及应用【例4】
要把端口C的PC7置成1。则控制字应为00001111B或0FH。把该控制字的内容写入8255A的控制寄存器中,就实现了对端口C的PC7位置1的操作。其程序如下:
MOVDX,0FFF6H ;8255A控制端口地址
MOVAL,0FH ;PC7置1的控制字
OUTDX,AL
;写入控制端口
若要使端口C的PC3置0,则控制字应为00000110B或06H。30其程序段如下:
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状态字
输入状态字的格式如下:各位含义见P297其中,D7~D3位为A组状态字,D2~D0位为B组状态字。
输出状态字的格式如下:各位含义见P297其中,D7~D3位为A组状态字,D2~D0位为B组状态字。33第6章常用接口芯片及应用②.方式2状态字
方式2状态字的格式如下:其中,D7~D3位为A组状态字,D2~D0位为B组所用,当B口工作于方式1时,这几位作B口的状态字,当B口工作于方式0时,这几位不是状态位,而是用做输入/输出。34第6章常用接口芯片及应用四.
8255A的工作方式的功能及应用
8255A共有三种工作方式可选择,每个端口可选择的工作方式都有所差别。8255A端口A可以在方式0、方式1和方式2三种方式下工作,而端口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章常用接口芯片及应用
由控制字中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各端口地址为40H~43H,可用下列指令来设置这种工作方式:
MOVAL,91H;方式控制字0010001B→AL
OUT43H,AL;方式控制字送控制寄存器第6章常用接口芯片及应用
例2.8255A的A口和B口工作在方式0,A口为输入端口,接有四个开关。B口为输出端,接有一个七段发光二极管,连接电路如图所示。试编一程序要求七段发光二班管显示开关所拨通的数字。
第6章常用接口芯片及应用第6章常用接口芯片及应用
例中,8255的端口地址由两部分组成,由CPUA15—A3通过74LS138产生CS,A2—A1组合成4个端口地址,A0与译码器Y4通过逻辑组合,保证8255的4个端口地址为偶地址。8020H、8022H、8024H、8026H。七段发光二极管为共阳极LED器件。a段亮从PB0输出1,熄灭输出0。第6章常用接口芯片及应用
8255A的口接有开关,4位开关的组合可为0H—FH。为此,可将在LED上显示0H—FH各字符的断码列于图表中。方式控制字:10010000B(90H或99H)参考程序如下:第6章常用接口芯片及应用A_PORTEQU8020HB_PORTEQU8022H;定义端口的符号地址C_PORTEQU8024HCTRL_PORTEQU8026HDATASEGMENTTAB1DB3FH,06H,…,31HDATAENDS第6章常用接口芯片及应用CODESEGMENTASSUMEDS:DATA,CS:CODEMOVAX,DATAMOVDS,AXMOVAL,90HMOVDX,CTRL_PORTOUTDX,AL;设置8255方式字ADD1:MOVDX,A_PORT第6章常用接口芯片及应用
INAL,DX;取键盘信息
ANDAL,0FH;屏蔽高4位
MOVBX,OFFSETTAB1XLATMOVDX,B_PORTOUTDX,AL;输出显示
MOVCX,0600HADD2:LOOPADD2JMPADD1CODEENDSEND第6章常用接口芯片及应用
②方式1—选通输入/输出方式P292在这种方式下,数据输入/输出操作要在选通信号控制下完成,因此适合条件传送,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位被规定为配合工作在方式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)。常见的8255A的输入接口(中断I/O)的连接图如图6-7所示第6章常用接口芯片及应用
例:8255的A口和B口分别工作在方式1和方式0,A口为输入端口,接有8个开关。B口为输出端,接有8个发光二极管,连接电路如图所示。现要求用方式1把改变后的键信息输入到CPU并通过B口显示。
第6章常用接口芯片及应用
这个系统的工作过程如下:
1、用户通过改变K0~K7,产生新的键信息;
2、按下开关K,产生选通信号,数据进入A口的缓冲器,
此步骤实际上告诉CPU,8255的A口来了一个新数据;第6章常用接口芯片及应用3、IBFA有效使LED点亮。这里含有两个信息,一个是8255A通知CPU其A口来了一个新数据,另一个是告诉用户CPU尚未取走这个这个数据,用户不得再送其他数据;
4、CPU取走这个数据,LED熄灭;
5、转步骤1。
第6章常用接口芯片及应用
设8255的I/O地址分布为88H—8EH,相应的程序段如下
moval,10111001b ;设置A口为方式1的输入,loop1:inal,8ch ;取C口的状态线
testal,00100000b ;测试IBFA信息
jzloop1 ;等待用户设定新的键值
inal,80h ;取数。LED灯灭(相对于步骤4)
out82h,al ;更新B口的显示
jmploop1 ;重复
56第6章常用接口芯片及应用
方式1输出有关信号的规定当A口作为方式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口发送给发光二极管以二进制的形式供用户抄录。第6章常用接口芯片及应用
这个系统的工作过程如下:CPU把内存中的一个数据写入A口;LED灯亮,告诉用户LED显示的是新数据.用户抄录数据;用户按下开关K,发ACK信号,告诉CPU数据已取走;转第一步。第6章常用接口芯片及应用DATASEGMENTXXDBX0,X1,…,X9DATAENDSCODESEGMENTASSUMEDS:DATA,CS:CODEMOVAX,DATAMOVDS,AX第6章常用接口芯片及应用
movcx,10 ;送10个数
movbx,offsetxx ;数组指针送bx loop1: moval,[bx] ;取数
out88h,al ;送数到A口
loop2: inal,8ch ;取C口状态线
anlal,80h ;测试IBOA jnzloop2
;用户尚未抄录数据,检测;等待, ;此时;LED灯亮(对应步骤2)
calldelay
;用户已抄录数据,LED灯灭(对 ;应步骤4)
incbx ;准备送下一个数
looploop1 ;循环10次
……;返回系统62第6章常用接口芯片及应用
③、方式2-双向总线方式(仅适用于A口)P294工作特点:该方式只适用于A口(因其有输入、输出两个锁存器)。在该方式下,可使外设利用A口的8位数据线与CPU之间分时进行双向数据传送,即在单一的8位数据线PA7-PA0上,既可输出数据给外设,也可以从外设输入数据(当然不能同时进行)。输入或输出数据均锁存。63第6章常用接口芯片及应用
A口工作在方式2时,C口的PC7~PC3被规定为控制信号,配合A口使用。如图6.13所示(P294,T6.10)。图中控制信号的含义与方式1中完全相同。64第6章常用接口芯片及应用
当A口工作在方式2时,B口可工作在方式0或方式1。在方式1情况下,可用PC2~PC0作为控制信号。方式控制字格式如图6.14-1所示。系统连接图如图6-13-1所示。65通过以上对8255A的三种基本工作方式的分析可以得出这样的结论:端口A可以工作在这三种工作方式中的任何一种,端口B只能工作在方式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口并输出。利用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之间是用查询方式还是用中断方式交换信息,并以此来组织C口置位/复位控制字,写入8255A控制口,使相应的中断允许标志(INTE)置0或置1,从而达到禁止或开放中断的目的。完成了初始化编程之后,CPU就可以用IN和OUT指令通过8255A与外设交换数据了。70第6章常用接口芯片及应用
§3、8255A的应用一、简单开关接口电路例1:在工业控制等实际应用中,经常需要检测某些开关量的状态。如图所示,在某系统中,采用8255A不断检测8个开关K7~K0的通断状态,并随时在8个发光二极管LED7~LED0上显示出来。要求开关闭合时,相应的LED亮;开关断开时,相应的LED灭。8255A的端口地址为60H~63H。
71第6章常用接口芯片及应用72第6章常用接口芯片及应用
解:由电路原理可知,A口为方式0输入,B口为方式0输出,则8255A的方式选择控制字为10010000B,即90H。且开关闭合,则A口输入低电平;当B口输出低电平时,相应的LED点亮。程序段如下:73第6章常用接口芯片及应用
MOVDX,63HMOVAL,90H;设置方式选择控制字OUTDX,ALTES:MOVDX,60H;读A口(开关状态)
INAL,DXMOVDX,61H;送B口显示
OUT61H,ALJMPTES;循环检测74第6章常用接口芯片及应用
二、8255A与LED数码管接口(P335)1.七段数码显示器一般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个发光段的不同组合,可以显示0~9和A~F共16个字母数字或其它异形字符。
76第6章常用接口芯片及应用
LED数码管有共阳极、共阴极两种结构,如图6.46(b)和(c)所示。如为共阳极结构,则共用的阳极应接高电平,各段则输入低电平,方为有效。如为共阴极结构,共用的阴极必须接低电平,而各段处于高电平时便发光。表6.2表示了共阴极与共阳极结构字符0~F的编码表。编码的低位为a,高位为g。77
由此可见,无论是共阴极还是共阳极,要使LED按照要求显示数字或字母,必须输入各段发光的代码,该代码称为七段码。显示代码之间的对应关系如表6.2所示。例如,要显示数字5,只要将a、f、g、c、d段接低电平,其余段接高电平即可。对于共阴极结构的LED显示器,阴极连在一起后接地,各阳极段接到器件的引脚上,要想点亮某一段,只要将相应引脚接高电平即可。第6章常用接口芯片及应用78第6章常用接口芯片及应用
由于发光二极管发光时,通过的平均电流为10mA~20mA,而通常的输出锁存器不能提供这么大的电流,所以LED各段必须接驱动电路,如图所示。79第6章常用接口芯片及应用
例1:8255A作为开关K0~K3及七段LED显示器接口。要求开关设置的二进制信息,由PC0~PC3输入,经程序转换为对应的七段LED显示器的字形代码后,由PA口输出显示。80第6章常用接口芯片及应用81第6章常用接口芯片及应用解:8255A各端口地址确定:各端口地址为:E8H~EEH82第6章常用接口芯片及应用
LED显示器的字形代码表存放在TABLE单元开始的内存中.
TABLEDB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8HDB80H,98H,88H,83H,0C6H,0A1H,86H,8EH83第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 ;输出字形码显示
HLT84第6章常用接口芯片及应用
三、8255与并行打印机接口(P332)例1:并行打印机接口电路P332利用8255A的A口方式0与微型打印机相连,将内存缓冲区BUFF中的字符打印输出。试完成相应的软硬件设计。(CPU为8088)首先分析打印机。微型打印机和主机之间的接口采用并行接口。85第6章常用接口芯片及应用1.打印机接口信号(如表)P332BUSY:输出,表示打印机是否可接受数据的信号。忙信号,有效时不能接受数据。:输出,向主机发出的传送数据的请求脉冲。响应信号,有效时接收数据。:输入,主机向打印机输入数据的选通脉冲。数据选通,有效时接收数据。86第6章常用接口芯片及应用
2.工作流程工作流程是:数据传输时序如图所示主机将要打印的数据送上数据线,然后发选通信号。打印机将数据读入,同时使BUSY线为高,通知主机停止送数。这时,打印机内部对读入的数据进行处理。处理完以后使ACK有效,同时使BUSY失效,通知主机可以发下一个数据87第6章常用接口芯片及应用
3.硬件连线PC0充当打印机的选通信号,通过对PC0的置位/复位产生选通。PC7接收打印机发出的“BUSY”信号。8255A的控制字为:10001000即88HA口方式0,输出;C口高位方式0输入,低位方式0输出PC0置位:00000001即01HPC0复位:00000000即00H8255A的4个口地址为:00H,01H,02H,03H。88第6章常用接口芯片及应用89第6章常用接口芯片及应用4.编制程序DADASEGMENTBUFFDB'Thisisaprintprogram!','$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA90第6章常用接口芯片及应用START:MOVAX,DATAMOVDS,AXMOVSI,OFFSETBUFFMOVAL,88H;8255A初始化,A口方式0,输出
OUT03H,AL;C口高位方式0输入,低位方式0输出
MOVAL,01H;
OUT03H,AL;使PC0置位,即使选通无效91第6章常用接口芯片及应用WAIT:INAL,02HTESTAL,80H;检测PC7是否为1即是否忙
JNZWAIT;为忙则等待
MOVAL,[SI]
CMPAL,'$';是否结束符
JZDONE;是则输出回车
OUT00H,AL;不是结束符,则从A口输出
MOVAL,00HOUT03H,AL;产生选通信号
INCSI;修改指针,指向下一个字符
JMPWAIT92第6章常用接口芯片及应用DONE:MOVAL,0DHOUT00H,AL;输出回车符
MOVAL,00HOUT03H,AL;产生选通MOVAH,4CHINT
21HCODEENDSENDSTART93第6章常用接口芯片及应用
§4可编程定时/计数器8253及其应用在微机应用系统中,经常会提出这样的要求:一种是要求一些外部实时时钟,以实现延时控制或定时;另一种是要求能对外部事件计数的计数器。实现上述要求可采用三种方法。94第6章常用接口芯片及应用(1)设计数字逻辑电路来实现计数或定时要求。即由硬件电路实现的计数器/定时器,这种电路,若要改变计数/定时的要求,必须改变电路参数。通用性、灵活性差;95第6章常用接口芯片及应用(2)编制一段程序,用软件来实现计数和定时的要求。这种方法通用性和灵活性都好,但是要占用CPU的时间;(3)采用可编程定时器/计数器,其定时与计数功能可由程序灵活地设定,设定后与CPU并行工作,不占用CPU的时间。
96第6章常用接口芯片及应用本节介绍的8253就是一种可编程定时器/计数器芯片,又称为“可编程间隔定时器”。一、8253的引线功能及内部结构1.8253的内部结构(P301,T6.20)如图所示97第6章常用接口芯片及应用
2.8253的引线①.与CPU的接口信号数据线(D7~D0):三态双向数据线。与CPU数据总线相连,用于传递CPU与8253之间的数据信息、控制信息和状态信息。计数器的计数值亦通过此数据总线进行读写。98第6章常用接口芯片及应用
控制线(CS,RD,WR):完成片选和读写操作。8253的读/写操作逻辑如表所示。片选及地址线CS,A1,A0——用于芯片及内部寄存器、计数器的寻址。即3个计数器和一个控制字寄存器。一般与CPU低位的地址线相连。99第6章常用接口芯片及应用A9A8A7A6A5=00010选中(CS=0),A4A3A2未用,A1A0接8253的A1A0。100第6章常用接口芯片及应用②.与外部设备的接口信号CLK0(CLK1,CLK2)——时钟脉冲输入端,用于输入定时脉冲或计数脉冲信号。CLK可以是系统时钟脉冲,也可以是由其他脉冲源提供。如果输入是周期精确的时钟,则8253一般工作在定时方式,如果输入是周期不定的脉冲,或关心的只是脉冲的数量而不是脉冲的时间间隔,则此时8253一般作为计数器使用。8253规定加在CLK引脚的输入时钟周期不得小于380ns。8253:0~2.6MHz;8254-2:0~10MHz。101第6章常用接口芯片及应用GATE0(GATE1,GATE2)——门控输入端,用于外部控制计数器的启动或停止计数的操作。当GATE为高电平时,允许计数器工作,当GATE为低电平时,禁止计数器工作。两个或两个以上计数器连用时,可用此信号来同步,也可用于与外部信号的同步。OUT0(OUT1,OUT2)——计数输出端。在不同工作方式中,当计数器计数到0时,OUT引脚上必输出相应的信号。102第6章常用接口芯片及应用
二、8253的工作方式8253内部3个相同16位计数器都能够以6种方式工作。第6章常用接口芯片及应用
从上述工作方式看出,8253的6种工作方式可以归为两类,一类是充当频率发生器(方式2、方式3),一类是主要作为计数器(方式0、方式1、方式4、方式5)来使用。104第6章常用接口芯片及应用三、8253的控制字与初始化编程1.控制字格式P2008253的控制字有4个主要功能*选择计数器;*确定计数器数据的读写格式;*确定计数器的工作方式;*确定计数器计数的数制。105第6章常用接口芯片及应用最大0FFFFH最大9999106第6章常用接口芯片及应用
2.8253的初始化编程刚接通电源时,诸如8253之类的可编程外围接口芯片通道都处于未定义状态,在使用之前,必须用程序把它们初始化为所需的特定模式,这个过程称为初始化编程。对8253芯片进行初始化编程时,需按下列步骤进行:107第6章常用接口芯片及应用
(1)写入控制字用输出指令向控制字寄存器写入一个控制字,以选定计数器通道,规定该计数器的工作方式和计数格式。写入控制字还起到复位作用,使输出端OUT变为规定的初始状态,并使计数器清0。108第6章常用接口芯片及应用
(2)写入计数初值用输出指令向选中的计数器端口地址中写入一个计数初值,初值设置时要符合控制字中有关格式的规定。初值可以是8位数据,也可以是16位数据。若是8位数,只要用一条输出指令就可完成初值的设置。如果是16位数,则必须用两条输出指令来完成,而且规定先送低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。因此,若不锁存的话,在前后两次执行输入指令的过程中,计数值可能已经变化了。锁存当前计数值的方法:111第6章常用接口芯片及应用向8253写入一个方式控制字,令8253通道的锁存器锁存。8253的每个通道都有一个16位锁存器,平时它的值随着通道计数器的值变化。当向通道写入锁存的控制字时,它把计数器的当前值锁存(计数器可继续计数),于是CPU读取的就是锁存器的值。当对计数器重新编程,或读取计数值后,自动解除锁存状态,它的值又随计数器变化。112第6章常用接口芯片及应用
例1:在某微机系统中,8253的3个计数器的端口地址分别为3F0H、3F2H和3F4H,控制字寄存器的端口地址为3F6H,要求8253的通道0工作于方式3,BCD计数,并已知对它写入的计数初值n=1234(十进制数),则初始化程序为:113MOVAL,00110111;控制字:选择通道0,先读/写低字节,后高字节,方式3,BCD计数MOVDX,3F6H;指向控制口OUTDX,AL;送控制字MOVAL,34H;计数值低字节,代表00110100BCDMOVDX,3F0H;指向计数器0端口OUTDX,AL;先写入低字节MOVAL,12H;计数值高字节,代表00010010BCDOUTDX,AL;后写入高字节114第6章常用接口芯片及应用
四、8253应用举例1.8253定时功能的应用在计算机应用中,经常会遇到隔一定时间重复某一个动作的应用。
【例1】设某应用系统中,系统提供一个频率为10kHz的时钟信号,要求每隔100ms采集一次数据。115第6章常用接口芯片及应用
解:在系统中,采用8253定时器的通道0来实现这一要求。将8253芯片的CLK0接到系统的10kHz时钟上,OUT0输出接到CPU的中断请求线上,8253的端口地址为10H~13H,如图所示。116第6章常用接口芯片及应用
(1)选择工作方式由于系统每隔100ms定时中断一次,则采样频率为10Hz,可选用方式2来实现。当8253定时器工作在方式2时,在写入控制字与计数初值后,定时器就启动工作,每到100ms时间,即计数器减到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章常用接口芯片及应用MOVAL,34H;通道0,16位计数,方式2,二进制计数OUT13H,AL;写入方式控制字到控制字寄存器MOVAL,0E8H;计数初值低8位OUT10H,AL;写入计数初值低8位到通道0MOVAL,03H;计数初值高8位OUT10H,AL;写入计数初值高8位到通道0119第6章常用接口芯片及应用
2.8253计数功能的应用
【例2】通过PC机系统总线在外部扩展一个8253,利用其通道0记录外部事件的发生次数,每输入一个高脉冲表示事件发生1次。当事件发生100次后就向CPU提出中断请求(边沿触发),假设8253片选信号的I/O地址范围为200H~203H,如图所示。120第6章常用接口芯片及应用
根据要求,可以选择方式0来实现,计数初值N=100。8253初始化程序段如下:MOVDX,203H;设置方式控制字地址MOVAL,10H;设定通道0为工作方式0,二进制计数,只写入低字节计数值OUTDX,ALMOVDX,200H;设置计数器通道0的地址MOVAL,64H;计数初值为100OUTDX,AL
121第6章常用接口芯片及应用
3.8253计数通道的级联使用
【例3】已知某8253占用I/O空间地址为320H~323H,如图所示,输入其CKL1端的脉冲频率为1MHz,要求用8253连续产生10秒的定时信号。122第6章常用接口芯片及应用
解:分析:8253的一个通道的最大计数范围为65536,本例中要求输出10秒定时信号,则计数初值N=10/10-6=107,超过了8253一个通道的最大计数值,此时可以使用2个8253通道级连方式来实现。
123第6章常用接口芯片及应用
若级连前2个通道的初值为N1和N2,则级连后作为一个整体的计数值为N=N1×N2。设计数器初值N1=500=1F4H,N2=20000=4E20H,使用方式2,二进制计数,则通道1、2的初始化程序如下:124第6章常用接口芯片及应用MOVDX,323HMOVAL,74H;01110100B,通道1,写入16位初值,方式2,二进制计数OUTDX,AL;写入通道1方式字MOVDX,321HMOVAL,0F4HOUTDX,AL;写入初值500的低8位入通道1MOVAL,01HOUTDX,AL;写入初值500的高8位入通道1125第6章常用接口芯片及应用MOVDX,323HMOVAL,0B4H;10110100B,通道2,写入16位初值,方式2,二进制计数OUTDX,AL;写入通道2方式字MOVDX,322HMOVAL,20HOUTDX,AL;写入通道2初值20000的低8位MOVAL,4EHOUTDX,AL;写入通道2初值20000的高8位126第6章常用接口芯片及应用
4.综合举例
【例4】如图是用8253监视一个生产流水线示意图,每通过50个工件扬声器响5秒钟,频率为2000Hz。127第6章常用接口芯片及应用
电路工作过程说明:图中工件从光源与光敏电阻之间通过时,在晶体管的发射极上产生一个脉冲,此脉冲作为8253通道0计数器的计数输入CLK0,当通道0计数满50后,有OUT0输出负脉冲,经反相后作为8259的一个中断请求信号,在中断服务程序中,启动8253通道1计数器工作,由OUT1连续2000Hz的方波。持续5秒后停止输出。试编程。128第6章常用接口芯片及应用
解:分析
1.通道0计数器工作于方式2,通道1计数器工作于方式3,通道1的门控信号GATE1由8255A的PC0控制,输出方波信号经驱动、滤波后送扬声器。
129第6章常用接口芯片及应用
2.控制字设计:通道0计数器工作于方式2,采用BCD计数,因计数初值为50,采用RL0、RL1=01(读/写计数器低8位),则工作方式扩展字为:00010101B(15H);通道1计数器工作于工作于方式3,CLK1接2.5MHz时钟,要求产生2000Hz的方波,则计数初值为:2.5*106/2000=1250,采用RL1、RL2=11(先读/写低8位,后读/写高8位),BCD计数,则工作方式字为:01110111(77H)H。130第6章常用接口芯片及应用
3.设通道0的地址为40H,通道1的地址为41H,控制口地址为43H,8255的口地址为80H。131第6章常用接口芯片及应用
主程序:
MOVAL,15H;通道初始化
OUT43H,ALMOVAL,50H;计数初值
OUT40H,ALSTI;开中断
LOP:HLT;等待中断
JMPLOP132第6章常用接口芯片及应用中断服务程序:
MOVAL,01H;通道1的GATE1置1,启动计数
OUT80H,ALMOVAL,77H;通道1初始化
OUT43H,ALMOVAL,50H;计数初值
OUT41H,ALMOVAL,12HOUT41H,ALCALLDLY5S;延时5秒
MOVAL,00H;通道1的GATE1置0,停止计数
OUT80H,ALIRET133【例5】设端口地址为F8H~FEH,使计数器0工作在方式1,按二进制计数,计数值为3025H。进行初始化编成。其初始化程序为
MOV AL,00110010B
OUT 0FEH,AL;写方式控制字
MOV AL,25H
OUT 0F8H,AL;向计数器0写入低8位计数值
MOV AL,30H
OUT 0F8H,AL;向计数器0再写入高8位计数值第6章常用接口芯片及应用134第6章常用接口芯片及应用若要读出当前计数值,可利用锁存命令和读出命令来实现
MOVAL,00H
OUT0FEH,AL;计数器0的锁存命令写入控制口,锁存当前计数值
INAL,0FEH
MOVAH,AL;读计数器0的低8位计数值,暂存于AH
INAL,0FEH;读计数器0的高8位计数值
XCHGAL,AH;AX中为计数器0的当前计数值。结束136§5数/模(D/A)和模/数(A/D)变换接口第6章常用接口芯片及应用教学重点
DAC0832及其与主机的连接
ADC0809及其与主机的连接137问题的提出:当计算机用于数据采集和过程控制的时候,采集对象往往是连续变化的物理量(如温度、压力、声波等),但计算机处理的是离散的数字量,因此需要对连接变化的物理量(模拟量)进行采样、保持,再把模拟量转换为数字量交给计算机处理、保存等。计算机输出的数字量有时需要转换为模拟量去控制某些执行元件(如声卡播放音乐等)。A/D转换器完成模拟量→数定量的转换,D/A转换器完成数字量→模拟量的转换。
14一月2025138
D/A和A/D在控制系统中的地位数字信号模拟信号现场信号1现场信号2现场信号n微型计算机放大器放大器放大器多路开关低通滤波传感器低通滤波传感器低通滤波传感器A/D转换器采样保持器数字信号受控对象控制信号模拟信号D/A转换器放大驱动电路…传感器将各种现场的物理量测量出来并转换成电信号(模拟电压或电流)
放大器把传感器输出的信号放大到ADC所需的量程范围低通滤波器用于降低噪声、滤去高频干扰,以增加信噪比多路开关把多个现场信号分时地接通到A/D转换器采样保持器周期性地采样连续信号,并在A/D转换期间保持不变计算机对测量信号进行处理,并将计算结果送出输出控制部分利用D/A变换器将数字量转换成模拟信号,经放大及驱动加到执行机构上,对被控对象实施控制。从上面的描述中可以看到,D/A和A/D变换器在微型计算机系统中具有重要的作用。14一月2025139一、D/A变换器的接口
在计算机控制系统中,数/模(D/A)转换用于前向通道。其作用是将计算机发出的数字量的控制命令转换成为执行机构可以接受的模拟量信号。14一月20251401、D/A变换器原理典型的D/A变换器通常由模拟开关、权电阻网络、缓冲电路等组成,框图如P246图5.58所示。通常利用锁存器将要变换的数字信号加到模拟开关上,控制模拟开关将不同的权电阻接通或断开,经缓冲电路输出相应的模拟电压。14一月2025141。I1I2I3Ifd1d2d3d4R2R4R8RS1S2S4S3IoΣ-+VoVR=5VI4Rf=R/2若d1d2d3d4=100014一月20251422、D/A变换器的主要技术指标P246①分辨率②精度③变换时间④动态范围14一月20251433、典型D/A变换器芯片举例DAC0832是典型的8位电流输出型通用DAC芯片14一月2025144①芯片介绍主要技术指标:分辨率:8位转换时间:1S满量程误差:±1LSB参考电压:±10V单电源:+5V~+15V
可双缓冲、单缓冲或直接数字输入;13141516456781211932010IEDI7DI6DI5DI4DI3DI2DI1DI0ILECSWR1WR2XFER19118217VREFIOUT2IOUT1R1bR1bVccDGND8位D/A转换器8位DAC寄存器8位输入寄存器DAC0832的内部结构图AGNDIE14一月2025145②DAC0832的数字接口8位数字输入端DI0~DI7(DI0为最低位)输入寄存器(第1级锁存)的控制端ILE、CS*、WR1*DAC寄存器(第2级锁存)的控制端XFER*、WR2*14一月2025146直通锁存器的工作方式两级缓冲寄存器都是直通锁存器LE=1,直通(输出等于输入)LE=0,锁存(输出保持不变)LE2LE1DAC0832输入寄存器DI0~DI7D/A转换器DAC寄存器Iout114一月2025147DAC0832的工作方式:直通方式LE1=LE2=1输入的数字数据直接进入D/A转换器LE2LE1DAC0832输入寄存器DI0~DI7D/A转换器DAC寄存器Iout114一月2025148DAC0832的工作方式:单缓冲方式LE1=1,或者LE2=1两个寄存器之一始终处于直通状态另一个寄存器处于受控状态(缓冲状态)LE2LE1DAC0832输入寄存器DI0~DI7D/A转换器DAC寄存器Iout114一月2025149DAC0832的工作方式:双缓冲方式两个寄存器都处于受控(缓冲)状态能够对一个数据进行D/A转换的同时;输入另一个数据LE2LE1DAC0832输入寄存器DI0~DI7D/A转换器DAC寄存器Iout114一月2025150③DAC0832的模拟输出Iout1、Iout2——电流输出端Rfb——反馈电阻引出端(电阻在芯片内)VREF——参考电压输入端+10V~-10VAGND——模拟信号地VCC——电源电压输入端+5V~+15VDGND——数字信号地14一月2025151④芯片的输出电路P2500832-+R数字量输入iVOUTVOUT=-iR0832-+R数字量输入iVOUTR1R2VOUT=iR(1+R2/R1)0832-+R1数字量输入-+R4VOUTVREFR2R3IOUT1IOUT2双极性输出反相输出同相输出14一月2025152⑤输出精度的调整RfbIout2Iout1Vout+_AGND调零电位器调满刻度电位器电源
5VADI10K1M1KVREF14一月2025153⑥地线的连接DGNDAGND模拟电路数字电路ADCDAC模拟电路数字电路模拟地数字地公共接地点14一月2025154⑦DAC0832与CPU接口方式①直通方式:ILE接高电平;CS、WR1、WR2、XFER直接接地。D/A转换器的输出随着总线数据的变化而变化。②单缓冲方式:ILE接高电平;CS、WR1、WR2、XFER接控制输出端(连接方式有多种形式);当对DAC0832进行写操作时(执行OUT指令),数字量直接被转换成模拟量。DAC0832WR2WR1CSXFERVcc+5VD7-D0Vo-+AIOUT2IOUT1AGNDDGNDVREFILE+5V地址总线DAC0832与8位数据总线微机的连接图地址译码WRIO/M14一月2025155例:输出一个连续的锯齿波14一月2025156③双缓冲方式:第一种应用情况:在前一个数据转换的同时,CPU将下一个数据先输入至输入寄存器,然后再在某个时刻启动D/A转换。14一月2025157第二种应用情况:在多路DAC系统中,需要同步D/A转换时,采用双缓冲方式。在不同的时刻将要转换的数据分别打入各DAC的输入寄存器,然后由一个转换命令同时启动,各个DAC转换。-+CS
XFER
WR2ILEWR1DAC1-+
XFER
WR2ILEWR1DAC2-+CS
XFER
WR2ILEWR1DAC3译码器ABCS1CS2CS3XFERIO/MWRVO1VO2VO314一月2025158二、A/D变换器接口1、逐次逼近式模/数(A/D)转换器原理
实现A/D转换的方法有多种,而逐次逼近式A/D转换具有速度快,分辨率高等优点获得了广泛的应用。这种A/D转换器的比较过程与天平的称重的过程相似。若一台天平具有32克、16克、8克、4克、2克和1克等6种砝码,需要称量的物体重量为27.4克。称量从最重的砝码试起,过程如下表所示。按A/D转换芯片的变换原理分类,常见的有逐次比较式、双积分式、计数式和并行式A/D转换器。14一月2025159M=D5*32+D4*16+D3*8+D2*4+D1*2+D0*1=27(克)14一月20251602、逐次逼近式A/D转换器基本组成控制逻辑(SAR):移位寄存器、数据寄存器、时序电路及去留
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 美食家常菜课程设计
- 2025年读书的演讲稿范文(2篇)
- 二零二五年度农业技术出口许可协议3篇
- 医务人员职业安全保护制度范文(2篇)
- 2025年度线上线下销售合同规范化管理实施细则(2025版)
- 融合课程设计案例
- 单臂吊的安全技术操作规程(2篇)
- 二零二五年度智能家居系统智能语音交互服务合同3篇
- 牛肉拉面课程设计理念
- 2025年沪教版四年级语文下册阶段测试试卷含答案
- 湖北省襄樊市襄阳古城旅游区总体重点规划
- 消火栓月检查表
- 项目财务核算业务蓝图
- 8.台球助教速成培训手册0.9万字
- 无缝钢管焊接作业指导书(1)
- 零缺陷与质量成本
- 网吧企业章程范本
- 安徽省书法家协会会员登记表
- 五格数理解释及吉凶对照
- 婚姻状况声明书
- 新课程理念下的班主任工作艺术
评论
0/150
提交评论