第8章 常用可编程接口芯片_第1页
第8章 常用可编程接口芯片_第2页
第8章 常用可编程接口芯片_第3页
第8章 常用可编程接口芯片_第4页
第8章 常用可编程接口芯片_第5页
已阅读5页,还剩127页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第8章常用可编程接口芯片8.1可编程并行接口8255A8.2可编程计数器/定时器82538.3串行通信与串行通信控制器8251A的应用微机原理与接口技术---中南大学出版社

并行通信是把一个字符的各数位用几条线同时进行传输,其数据传输率较高,但由于并行通信需要的电缆较多,故只适合于传输距离较短的场合。实现并行通信的接口就是并行接口,8255A是Intel系列的并行可编程接口芯片,用于CPU和I/O设备之间进行并行数据传输。

8.1可编程并行接口8255A微机原理与接口技术---中南大学出版社8255的内部组成如图所示:8.1.18255的组成与引脚信号微机原理与接口技术---中南大学出版社端口A(PortA)、端口B(PortB)和端口C(PortC)都是8位的端口,都可以选择作为输入或输出。可以将端口C的高4位和低4位分开使用,分别作为输入和输出。端口A和端口B作为选通输入或输出的数据端口时,端口C的指定位与端口A和端口B配合使用,用作控制信号或状态信号。1.端口A、端口B和端口C微机原理与接口技术---中南大学出版社根据CPU的方式命令字控制8255的工作方式。根据CPU的命令对端口C的每一位实现按位复位或置位。A组控制电路控制端口A和端口C的上半部(PC7~PC4)。B组控制电路控制端口B和端口C的下半部(PC3~PC0)。2.A组和B组控制电路微机原理与接口技术---中南大学出版社

这是一个三态双向的8位缓冲器,它是8255与系统数据总线的接口。输入输出的数据以及CPU发出的命令控制字和外设的状态信息,都是通过这个缓冲器传送的。3.数据总线缓冲器微机原理与接口技术---中南大学出版社控制把CPU的控制命令或输出数据送至相应的端口;

控制把外设的状态信息或输入数据通过相应的端口送至CPU。4.读/写控制逻辑微机原理与接口技术---中南大学出版社(1)A1、A0端口选择:用来选择A、B、C3个端口和控制字寄存器。通常,它们与PC微机的地址线A1和A0相连。(2)CS选片信号:低电平有效,由它启动CPU与8255之间的通信。通常,它与PC微机地址线的译码电路的输出线相连,并由该译码电路的输出线来确定8255的端口地址。4.读/写控制逻辑微机原理与接口技术---中南大学出版社(3)RD读信号:低电平有效,它控制8255送出数据或状态信息至系统数据总线。通常,它与PC微机的IOR相连。

(4)WR写信号:低电平有效,它控制把CPU输出到系统数据总线上的数据或命令写到8255。通常,它与PC微机的IOW相连。4.读/写控制逻辑微机原理与接口技术---中南大学出版社(5)RESET复位信号:高电平有效,它清除控制寄存器,并置A、B、C3个端口为输入方式。实验中常用的复位信号产生电路如图所示。4.读/写控制逻辑微机原理与接口技术---中南大学出版社

A1,A0和CS,RD,WR及组合所实现的各种功能如下:A1A0操作01000写端口A01001写端口B01010写端口C01011写控制字寄存器00100读端口A00101读端口B00110读端口C00111无操作微机原理与接口技术---中南大学出版社

8255有3种工作方式,由方式选择控制字来选用:

(1)方式0(Mode0)--基本输入输出。(2)方式1(Mode1)--选通输入输出。(3)方式2(Mode2)--双向传送。8.1.28255的工作方式与控制字微机原理与接口技术---中南大学出版社1.方式选择控制字微机原理与接口技术---中南大学出版社2.按位置位/复位控制字微机原理与接口技术---中南大学出版社2.按位置位/复位控制字端口C的数位通常作为A组和B组的控制位使用,端口C的任一个数位,可以用置0/置1控制字来进行置位和复位,而其他位的状态不变。与方式选择控制字一样,端口C置0/置1控制字也是写入8255A的控制端口,而不是写入C口,两个控制字的区别在于最高位的特征位,为“1”表示方式选择字,为“0”表示C口置0/置1控制字。微机原理与接口技术---中南大学出版社

如:端口C的bit3(PC3)置位的控制字为00000111B(07H),它复位的控制字为00000110B(06H)。

注意:C端口的按位置位/复位控制字须跟在方式选择控制字之后写入控制字寄存器。即使仅使用该功能,也应先选送一方式控制字。微机原理与接口技术---中南大学出版社

例8.1

将8255C端口的8根I/O线接8只发光二极管的正极(八个负极均接地),用按位置位/复位控制字编写使这8只发光二极管依次亮、灭的程序。设8255的端口地址为380H~383H。本程序要使用8255的2个控制字--方式选择字和按位置位/复位字。这2个控制字都写入8255的控制字寄存器,由它们的D7位为1或0来区别写入的字是方式选择字还是置位/复位字。8255的控制字寄存器的端口地址为383H。方式选择字只写入一次,其后写入的都是置位/复位字。微机原理与接口技术---中南大学出版社8255与PC微机的连接及8255C端口与8只发光二极管的连接如图。微机原理与接口技术---中南大学出版社程序框图:微机原理与接口技术---中南大学出版社stack segmentstackstack

dw32dup(0)stack endscode segmentbegin procfar assumess:stack,cs:code pushds subax,ax pushax微机原理与接口技术---中南大学出版社

MOVDX,383H;383H为控制字寄存器的端口地址MOVAL,80H;方式选择字OUTDX,ALMOVAL,1;PC0的置位控制字AGAIN:OUTDX,AL;点亮一只发光二极管

LOOP$;延时

LOOP$ANDAL,0FEH;置位字改为复位字

OUTDX,AL;熄灭点亮的发光二极管

ADDAL,3;PCi→PCi+1,复位字改为下一位的置位字

ANDAL,0FH

;保持D7为0微机原理与接口技术---中南大学出版社

PUSHAXMOVAH,11;检查键盘有无输入

INT21H;无0送AL,有-1送ALINCALPOPAXJNZAGAINretbeginendpcode ends endbegin微机原理与接口技术---中南大学出版社这是一种基本的I/O方式。在这种工作方式下,3个端口都可由程序选定作输入或输出。它们的输出是锁存的,输入是不锁存的。在这种工作方式下,可以由CPU用简单的输入或输出指令来进行读或写。因而当方式0用于无条件传送方式的接口电路时是十分简单的,这时不需要状态端口,3个端口都可作为数据端口。1.方式08.1.43种工作方式的功能微机原理与接口技术---中南大学出版社若将例8.1改为C端口方式0输出,则控制程序为:stack segmentstackstack

dw32dup(0)stack endscode segmentbegin procfar assumess:stack,cs:code pushds subax,ax pushaxMOVDX,383HMOVAL,80HOUTDX,AL微机原理与接口技术---中南大学出版社MOVDX,382H;C端口的端口地址送DXMOVAL,1;C端口的输出值AGAIN:OUTDX,ALLOOP$;延时

LOOP$PUSHAXMOVAH,11;11号功能调用:检查键盘有无输入

INT21H;无0送AL,有-1送ALINCAL;有键入,AL=-1,AL增1,AL=0POPAXJZBACKROLAL,1;改变C端口的输出值JMPAGAINBACK:retbegin endpcode ends endbegin微机原理与接口技术---中南大学出版社

方式0也可作为查询式输入或输出的接口电路,此时端口A和B分别可作为一个数据端口,而取端口C的某些位作为这两个数据端口的控制和状态信息。微机原理与接口技术---中南大学出版社这是一种选通的I/O方式。它将3个端口分为A、B两组,端口A和端口C中的PC3~PC5或PC3、PC6、PC73位为A组;端口B和端口C的PC2~PC03位为B组。端口C中余下的两位,仍可作为输入或输出用,由方式控制字中的D3来设定。端口A和B都可以由程序设定为输入或输出。此时端口C的某些位为控制状态信号,用于联络和中断,其各位的功能是固定的,不能用程序改变。2.方式1微机原理与接口技术---中南大学出版社方式1输入的状态控制信号及其时序关系如图。微机原理与接口技术---中南大学出版社

(1)STB(strobe)选通信号,低电平有效。这是由外设发出的输入信号,信号的前沿(下降沿),把输入装置送来的数据送入输入缓冲器;信号的后沿(上升沿)使INTR有效(置1)。

(2)IBF(inputbufferfull)输入缓冲器满信号,高电平有效。这是8255输出给外设的联络信号。外设将数据送至输入缓冲器后,该信号有效;RD信号的上升沿将数据送至数据线后,该信号无效。微机原理与接口技术---中南大学出版社

(3)INTR(interruptrequest)中断请求信号,高电平有效。这是8255的一个输出信号,可用作向CPU申请中断的请求信号,以要求CPU服务。当IBF为高和INTE(中断允许)为高时,由STB的上升沿(后沿)使其置为高电平。由RD信号的下降沿(CPU读取数据前)清除为低电平。

(4)INTE(interruptenable)中断允许信号,端口A中断允许INTEA可由用户通过对PC4的按位置位/复位来控制。而INTEB

由PC2

的置位/复位控制。INTE置位允许中断。INTE复位禁止中断。微机原理与接口技术---中南大学出版社

无论采用查询方式还是中断方式,当CPU从端口读取数据时,有效,经过一段时间后撤销中断请求信号并是IBF=0,从而开始下一个数据的输入。

微机原理与接口技术---中南大学出版社例8.2

用选通输入方式从A端口输入100个8位二进制数。微机原理与接口技术---中南大学出版社stack segmentstackstack

dw32dup(0)stack endsdata segmentBUFDB100DUP(?)data endscode segmentbegin procfar assumess:stack,cs:code,ds:data pushds subax,ax pushax控制程序:微机原理与接口技术---中南大学出版社MOVES,AXmovax,datamov

ds,axMOVDX,38FHMOVAL,0B0HOUTDX,ALMOVAL,9;PC4置1,允许A端口中断OUTDX,ALMOVAX,SEGIS8255;中断程序入口地址送中断向量表MOVES:01C6H,AXMOVAX,OFFSETIS8255MOVES:01C4H,AXMOVCX,100MOVBX,0MOVDX,38CH微机原理与接口技术---中南大学出版社

INAL,0A1H;读屏蔽字ANDAL,0FDH;改变屏蔽字,允许IRQ9中断OUT0A1H,ALROTT:JMP$LOOPROTTINAL,0A1H;恢复屏蔽字,禁止IRQ9中断ORAL,2OUT0A1H,ALretIS8255:INAL,DXMOVBUF[BX],ALINCBXMOVAL,61H;指定中断结束命令微机原理与接口技术---中南大学出版社OUT0A0H,ALMOVAL,62HOUT20H,ALPOPAX;修改返址INCAXINCAXPUSHAXIRETbegin endpcode ends endbegin微机原理与接口技术---中南大学出版社方式1输出的状态控制信号及其时序关系如图。微机原理与接口技术---中南大学出版社

(1)OBF输出缓冲器满信号,低电平有效。这是8255输出给外设的一个联络信号。CPU把数据写入指定端口的输出锁存器后,该信号有效,表示外设可以把数据取走。它由ACK的前沿(下降沿)即外设取走数据后,使其恢复为高。

(2)ACK(acknowledge)

低电平有效。这是外设发出的响应信号,该信号的前沿取走数据并使OBF无效后沿使INTR有效。微机原理与接口技术---中南大学出版社(3)INTR中断请求信号,高电平有效。当输出装置已经接受了CPU输出的数据后,它用来向CPU提出中断请求,要求CPU继续输出数据。OBF为“1”(高电平)和INTE为“1”(高电平)时,由ACK的后沿(上升沿),使其置位(高电平),WR信号的前沿(下降沿)使其复位(低电平)。(4)INTEA

由PC6的置位/复位控制。而INTEB由PC2置位/复位控制。INTE置位允许中断。微机原理与接口技术---中南大学出版社微机原理与接口技术---中南大学出版社例8.3用8只发光二极管及时反映8个监控量的状态,设计接口电路和控制程序。用8个开关模拟8个监控量的状态。A端口输入8个监控量的状态,B端口接8只发光二极管。A端口基本输入,B端口选通输出,用单稳电路来产生选通信号ACK。当需要了解8个监控量的状态时发来选通信号ACK,该信号使控制程序进入中断服务程序。在中断服务程序中,从A端口输入8个监控量的状态后立即从B端口输出。微机原理与接口技术---中南大学出版社接口电路设计:微机原理与接口技术---中南大学出版社stack segmentstackstack

dw32dup(0)stackendsdata segmentDA1 DBWAITINTERRUPT,0DH,0AH,$data endscode segmentbegin procfar assumess:stack,cs:code,ds:data pushds subax,ax pushax控制程序:微机原理与接口技术---中南大学出版社MOVES,AXmovax,datamov

ds,axMOVDX,393HMOVAL,94HOUTDX,ALMOVAL,5;PC2置1,允许B端口中断OUTDX,ALMOVAX,SEGIO8255;中断程序入口地址送中断向量表MOVES:01C6H,AXMOVAX,OFFSETIO8255MOVES:01C4H,AXINAL,0A1H;读屏蔽字ANDAL,0FDH;改变屏蔽字,允许IRQ9中断OUTDX,AL微机原理与接口技术---中南大学出版社ROTT:MOCDX,OFFSETDA1MOVAH,9INT21HJMP$MOVAH,11INT21HCMPAL,0JEROTTINAL,0A1H;恢复屏蔽字,禁止IRQ9中断ORAL,2OUT0A1H,ALret微机原理与接口技术---中南大学出版社IO8255:MOVDX,390HINAL,DXINCDXOUTDX,ALMOVAL,61H;指定中断结束命令OUT0A0H,ALMOVAL,62HOUT20H,ALPOPAX;修改返址INCAXINCAXPUSHAXIRETbegin endpcode ends endbegin微机原理与接口技术---中南大学出版社

这种工作方式,使外设可在单一的8位数据总线上,既能发送,又能接收数据(双向总线I/O)。方式2只限于A组使用,它用双向总线端口A和控制端口C中的5位进行操作,此时,端口B可用于方式0或方式1。端口C的其他3位作I/O用或作端口B控制状态信号线用。3.方式2微机原理与接口技术---中南大学出版社方式2状态控制信号:微机原理与接口技术---中南大学出版社INTE1是输出的中断允许信号,由PC6的置位/复位控制INTE2是输入的中断允许信号,由PC4的置位/复位控制其他信号的作用及意义与方式1相同。微机原理与接口技术---中南大学出版社方式2工作时序微机原理与接口技术---中南大学出版社

Intel8253是英特尔公司开发的可编程定时器/计数器芯片,改进型为8254。8253具有3个独立的功能完全相同的16位计数器,每个计数器都有6种工作方式,这6种工作方式都可以由其控制字设定,因而能以6种不同的工作方式满足不同的接口要求。CPU还可以随时更改它们的方式和计数值,并读取它们的计数状态。8.2可编程计数器/定时器8253微机原理与接口技术---中南大学出版社8253的内部结构:8.2.18253的结构与引脚信号微机原理与接口技术---中南大学出版社数据总线缓冲器是三态、双向、8位的缓冲器,用作系统总线和8253的接口,根据CPU的输入或输出指令实现数据传送。数据总线缓冲器具有下面3个基本功能。(1)CPU向8253所写的控制字经数据总线缓冲器和8253的内部数据总线传送给控制字寄存器寄存。(2)CPU向某计数器所写的计数初值经它和内部总线送到指定的计数器。(3)CPU读取某个计数器的现行值时,该现行值经内部总线和缓冲器传送到系统的数据总线上,被CPU读入。1.数据总线缓冲器微机原理与接口技术---中南大学出版社读/写逻辑接收系统总线的5个输入信号,根据这5个信号产生整个器件操作的控制信号。通过片选信号CS来控制读/写逻辑的工作,在没有被系统逻辑选中时,读/写逻辑操作功能不会发生变化。根据A1A0的输入选择3个计数器和控制字寄存器。通过RD或WR完成指定的读或写操作。2.读/写逻辑微机原理与接口技术---中南大学出版社

CS、RD、WR、A1和A0组合起来所产生的选择与操作功能:微机原理与接口技术---中南大学出版社控制字寄存器寄存数据缓冲器传送来的控制字。控制字寄存器有3个,都是8位的寄存器,分别对应于3个计数器。写入的控制字由该控制字的最高2位确定送入哪个计数器的控制字寄存器寄存。各自的控制字寄存器决定各自计数器的工作方式和所执行的操作。控制字寄存器只能写入,其值不能读出。3.控制字寄存器微机原理与接口技术---中南大学出版社计数器0、计数器1和计数器2是3个独立的计数器,它们的内部结构相同。4.计数器0、计数器1和计数器2微机原理与接口技术---中南大学出版社

写入计数器的初始值保存在计数初值寄存器中,由CLK脉冲的一个上升沿和一个下降沿将其装入减1计数器。减1计数器在CLK脉冲(GATE允许)作用下进行递减计数,直至计数值为0,输出OUT信号。输出寄存器的值跟随减1计数器变化,仅当写入锁存控制字时,它锁存减1计数器的当前计数值(减1计数器可继续计数),CPU读取后,它自动解除锁存状态,又跟随减1计数器变化。所以在计数过程中,CPU随时可以用指令读取任一计数器的当前计数值,这一操作对计数没有影响。计数初值寄存器,减1计数器和输出寄存器都可看作是8位的寄存器对。微机原理与接口技术---中南大学出版社

每个计数器都是对输入的CLK脉冲按二进制或十进制的预置值开始递减计数。若输入的CLK是频率精确的时钟脉冲,则计数器可作为定时器。在计数过程中,计数器受门控信号GATE的控制。计数器的输入CLK与输出OUT以及门控信号GATE之间的关系,取决于计数器的工作方式。微机原理与接口技术---中南大学出版社8253的计数器有6种工作方式:(1)方式0--计数结束中断(2)方式1--硬件触发单拍脉冲(3)方式2--频率发生器(4)方式3--方波发生器(5)方式4--软件触发选通(6)方式5--硬件触发选通8.2.2计数器的工作方式与操作时序微机原理与接口技术---中南大学出版社1.计数器的输出 OUT6种工作方式的输出信号微机原理与接口技术---中南大学出版社

6种工作方式中,只有方式0在写入控制字后输出为低,其他5种方式,都是在写入控制字后输出为高。方式2、4、5的输出波形是相同的,都是宽度为一个CLK周期的负脉冲。但方式2是连续工作,方式4由软件(设置计数值)触发启动,而方式5由门控脉冲触发启动。方式5与方式1的工作方式基本相同,但输出波形不同,方式1的输出为宽度是N个CLK脉冲的低电平脉冲(计数过程中输出为低),而方式5的输出为宽度是1个CLK脉冲的负脉冲(计数过程中输出为高)。微机原理与接口技术---中南大学出版社

方式3和方式2的输出都是周期性的,它们的主要区别是,方式2在计数过程中输出始终为高,直至计数器减到1时,输出一个CLK负脉冲后又恢复为高;方式3在计数过程中输出有一半时间为高,另一半时间为低。所以,若计数值为N,则方式3的输出为周期是N个CLK脉冲的方波。如果计数值N是奇数,则输出(N+1)/2个CLK脉冲周期为高,(N-1)/2个脉冲周期为低,即OUT为高,将比其为低多一个CLK周期时间。微机原理与接口技术---中南大学出版社

方式0之所以称之为计数结束中断,是因为方式0是专为8253工作在中断方式而设计的,它的输出OUT一经确定方式以后就马上变低,直到计数到0才变高,而其他方式的输出就不是这种情况。8253用于中断方式并不仅限于方式0,其他方式也是可以用于中断方式的。8253内部没有中断控制电路,也没有专用的中断请求引线,所以若要用于中断,则可用OUT信号作为外部中断请求信号。微机原理与接口技术---中南大学出版社任一种方式,只有写入计数值后才能开始计数,方式0、2、3和4都是在写入计数值后,计数过程就开始了,而方式1和5需要外部触发启动,才开始计数。6种方式中,只有方式2和3是连续计数,其他4种方式都是一次计数,要继续工作需要重新启动,方式0、4由写入计数值(软件)启动,方式1、5要由外部信号(硬件)启动。2.计数器的工作与启动微机原理与接口技术---中南大学出版社在方式0和方式4中,GATE是电平起作用。计数过程受GATE信号的控制,GATE为高电平计数,低电平停止计数。在方式1和方式5中,GATE是上升沿起作用。在计数过程中,只要GATE出现由低到高的跳变,计数的初值就被装入减1计数器,并从初值起继续计数。在方式2和方式3中,GATE信号的上升沿和电平均起作用。高电平计数,低电平停止计数。上升沿则重新装入计数初值,继续计数。3.门控信号GATE的作用微机原理与接口技术---中南大学出版社8253可以在计数过程中写入计数值,但它的作用在不同方式时有所不同。方式0和方式4是立即有效(即新的计数值写入减1计数器),方式1和方式5是外部触发后有效,方式2和方式3是本次计数结束后有效。4.在计数过程中改变计数值微机原理与接口技术---中南大学出版社8253的控制字8.2.38253的控制字和初始化编程微机原理与接口技术---中南大学出版社

(1)计数器选择(D7、D6)。控制字的最高两位决定这个控制字是哪一个计数器的控制字。由于三个计数器的工作是完全独立的,所以每个计数器都有一个控制字。而三个控制字都由同一地址(控制字寄存器地址)写入,因而由控制字的D7、D6两位来指定该控制字是哪个计数器的控制字。在控制字中的计数器选择与计数器的地址是两回事,不能混淆。计数器的地址用作CPU向计数器写初值,或从计数器读取计数器的当前值。微机原理与接口技术---中南大学出版社

(2)数据读/写格式(D5、D4)。CPU向计数器写入初值和读取它们的当前状态时,有几种不同的格式。读/写数据时,是读/写8位数据还是16位数据;若是8位数据,可以令D5D4=01,只读/写低8位,则高8位自动置0;若是16位数据,而低8位为0,则可令D5D4=10,只读/写高8位,低8位就自动为0;若令D5D4=11时,就先读/写低8位,后读/写高8位。在读取16位计数值时,可令D5D4=00,则把写控制字时的计数值锁存,以后再读取。

微机原理与接口技术---中南大学出版社

(3)工作方式(D3、D2、D1)。8253的每个计数器的6种不同的工作方式,由这3位决定。(4)数制选择(D0)。8253的每个计数器有两种计数制:二进制和十进制,由这位决定。在二进制计数时,写入的初值的范围为0000H~FFFFH,其中0000H是最大值,代表65536。在十进制计数时,写入的初值的范围为0000H~9999H,其中0000H是最大值,代表10000。微机原理与接口技术---中南大学出版社

要使用8253必须首先进行初始化编程,初始化编程的步骤为先写入计数器的控制字,然后写入计数器的计数初值。控制字和计数初值,是通过两个不同的端口地址写入的。任一计数器的控制字都是写入控制字寄存器的端口地址,由控制字中的D7、D6来确定是哪一个计数器的控制字;而计数初值是由各个计数器的端口地址写入的。一片8253具有4个端口地址,由8253的A1和A0两根引线来区别:A1、A0为11是控制字寄存器的端口地址,00、01和10则分别是计数器0、计数器1和计数器2的端口地址。微机原理与接口技术---中南大学出版社

例如:用计数器0,工作在方式1,按十进制计数,计数值为5080。若该片8253的端口地址为388H~38BH,则初始化程序段为:

MOVDX,38BHMOVAL,33HOUTDX,ALMOVDX,388HMOVAL,80HOUTDX,ALMOVAL,50HOUTDX,AL微机原理与接口技术---中南大学出版社

8253任一计数器的计数值,CPU可用指令读取。CPU读到的是执行读取指令瞬间计数器的现行值。但8253的计数器是16位的,所以要分两次读至CPU,因此,若不设法锁存的话,则在读数过程中,计数值可能已变化了。要锁存有两种办法:(1)利用GATE信号使计数过程暂停。(2)向8253输送一个控制字,令8253的计数值在出寄存器锁存。微机原理与接口技术---中南大学出版社

MOVDX,38BHMOVAL,40H;计数器1的锁存命令

OUTDX,ALMOVDX,389HINAL,DXMOVCL,ALINAL,DXMOVCH,AL例如:读取计数器1的16位计数值,存入CX中,其程序段为:微机原理与接口技术---中南大学出版社

例8.48253在IBMPCXT中的应用。IBMPCXT微型计算机中8253的部分线路

8.2.48253的应用微机原理与接口技术---中南大学出版社由译码电路可知计数器和控制字寄存器的端口地址为40H~5FH,BIOS取为计数器0∶40H,计数器1∶41H,计数器2∶42H,控制字寄存器∶43H。

3个计数器的输入时钟频率均为1.19MHz。

微机原理与接口技术---中南大学出版社计数器0输出作为18.2Hz方波发生器。用来输出方波作为中断控制器8259的第0号中断信号线(IRQ0)的输入。每秒产生18.206次中断请求,或说每隔55ms(54.925493ms)申请一次中断DOS系统利用计数器0的这个特点,通过08号中断服务程序实现了日时钟计时功能计数器0的计数值为:

1.19M/18.2=65384=216即送16位的0,故其控制字为36H。

微机原理与接口技术---中南大学出版社对计数器0初始化的程序段如下:MOVAL,36HOUT43H,ALMOVAL,0OUT40H,ALOUT40H,AL微机原理与接口技术---中南大学出版社

计数器1输出间隔为15μS的负脉冲。该脉冲的上升沿触发D触发器。使它对DMA控制器8237的第0号DMA请求信号线DRQ0发出DMA请求信号,8237则依据这个请求信号对动态RAM进行刷新。计数器1的计数值为:1.19×106/(1/15)×10-6=18故其控制字为54H。对计数器1的初始化程序段如下:MOVAL,54HOUT43H,ALMOVAL,18OUT41H,AL微机原理与接口技术---中南大学出版社

计数器2输出不同频率的方波,经电流驱动器75477放大,推动扬声器发出不同频率的声响。计数器2的计数值为可变值。随蜂鸣器声响频率的高低而变,程序设计中让它的取值范围由1到65535,即16位二进制数,故其控制字为B6H。

微机原理与接口技术---中南大学出版社entryparameters:DH=NumberoflongtonestobeepDL=Numberofshorttonestobeeperr-beepprocPUSHF;保存所有的标志位CLI;关中断PUSHDSMOVAX,DATA;DS指向数据段MOVDS,AXORDH,DH;是否要鸣长音JZG3

;不鸣长音,去鸣短音下面是IBMPCXT机BIOS中的开机诊断子程序。该子程序让蜂鸣器鸣一声长音(3秒)和一声短音(0.5秒),以指出系统板或RAM模块或者CRT显示器有错。微机原理与接口技术---中南大学出版社G1:MOVBL,6;蜂鸣常数,一次鸣响延续时0.5×BLCALLBEEP;调用鸣响子程序G2:LOOPG2;鸣响间隔,等待500mSDECDHJNZG1;长音没鸣响完,继续CMPMFG-TST,1;为制造测试模式?JNZG3;为制造测试模式,继续鸣响短音MOVAL,0DH;停止LED闪OUTPORT-B,AL;PORT-B=61H,即8255B端口JMPG1微机原理与接口技术---中南大学出版社G3:MOVBL,1;短音鸣响时间为0.5×1=0.5SCALLBEEPG4:LOOPG4DECDLJNZG3;短音没鸣响完,继续G5:LOOPG5;短音鸣响完,延迟1S返回G6:LOOPG6POPDSPOPFRETerr-beependp微机原理与接口技术---中南大学出版社鸣响子程序:beepprocMOVAL,0B6H;计数器2的控制字OUT43H,ALMOVAX,533H;1000Hz分频值,分高低字节两次送入OUT42H,ALMOVAL,AHOUT42H,ALINAL,61H;读取8255B端口的状态MOVAH,ALORAL,3微机原理与接口技术---中南大学出版社

OUT61H,AL;打开蜂鸣器SUBCX,CX;设置等待500ms的常数值G7:LOOPG7DECBL;等0.5s×BLJNZG7MOVAL,AH;恢复8255B端口的原来值,关蜂鸣器OUT61H,ALRETbeependp微机原理与接口技术---中南大学出版社例8-2.

对8253编程使扬声器发出600Hz的声响,按任意键停止。【分析】1)对计数器2重新写入计数初值,改变计数初值:计数初值=1.19MHz/600Hz=19882)控制8255A的PB0使GATE2为高电平,计数器2开始计数,并且使8255A的PB1为高电平打开扬声器。发声结束后通过PB0和PB1输出低电平结束计数和关闭扬声器。8255A的B口地址为61H。微机原理与接口技术---中南大学出版社【程序设计】CODE SEGMENT ASSUME CS:CODESTART: IN AL,61H OR AL,03H OUT 61H,AL ;打开扬声器

MOV AX,1998 ;计数初值为1988 OUT 42H,AL MOV AL,AH OUT 42H,AL ;先写低8位,后写高8位

MOV AH,1 INT 21H ;等待键入

IN AL,61H微机原理与接口技术---中南大学出版社

AND AL,0FCH OUT 61H,AL ;关闭扬声器

MOV AH,4CH ;返回DOS INT 21HCODE ENDS END START微机原理与接口技术---中南大学出版社

例8.3

对外部事件计数10次。

计数电路如图所示,由图可知,使用的是计数器0。微机原理与接口技术---中南大学出版社stacksegmentstackstack

dw32dup(0)stackendsdatasegmentDA1DBWAITLOAD,0AH,0DH,$DA2DBPLEASEINPUT,0AH,0DH,$DA3DBPROGRAMTERMINATEDNORMALLY,0AH,0DH,$dataendscodesegmentbeginprocfarassumess:stack,cs:code,ds:datapushds微机原理与接口技术---中南大学出版社 sub ax,axpush ax

mov ax,data

mov

ds,axMOV DX,383H;8253计数器的方式0,BCD计数MOV AL,11HOUT DX,ALMOV DX,380HMOV AL,10HOUT DX,ALMOV DX,OFFSETDA1MOV AH,9INT 21HMOV DX,380H微机原理与接口技术---中南大学出版社LOAD:IN AL,DXCMP AL,10H;等待单稳输入脉冲,装入计数初值JNE LOADMOV DX,OFFSETDA2MOV AH,9INT 21HMOV DX,380HCONTIN:IN AL,DXCMP AL,0;等待单稳输入10个脉冲JNZ CONTINMOV DX,OFFSETDA3MOV AH,9INT 21Hretbeginendpcodeendsendbegin微机原理与接口技术---中南大学出版社将OUT0接至80x86微机的IRQ9,使用中断编程的程序如下:stacksegmentstackstack

dw32dup(0)stackendsdatasegmentDA1DBWAITLOAD,0AH,0DH,$DA2DBPLEASEINPUT,0AH,0DH,$DA3DBPROGRAMTERMINATEDNORMALLY,0AH,0DH,$dataends微机原理与接口技术---中南大学出版社codesegmentbeginproc farassume ss:stack,cs:code,ds:datapush dssub ax,axpush axMOV ES,AX

mov ax,data

mov

ds,axMOV DX,383H;8253计数器的方式0,BCD计数MOV AL,11HOUT DX,AL微机原理与接口技术---中南大学出版社

MOV DX,380HMOV AL,10HOUT DX,ALMOV DX,OFFSETDA1MOV AH,9INT 21HMOV DX,380HLOAD:IN AL,DXCMP AL,10H;等待单稳输入脉冲,装入计数初值JNE LOADMOV AX,SEGIS8253;填写中断向量表MOV ES:01C6H,AX微机原理与接口技术---中南大学出版社

MOVAX,OFFSETIS8253MOV ES:01C4H,AXIN AL,0A1H;改变屏蔽字,允许IRQ9中断AND AL,0FDHOUT 0A1H,ALMOV DX,OFFSETDA2MOV AH,9INT 21HJMP $;等待单稳输入10个脉冲MOV DX,OFFSETDA3MOV AH,9INT 21Hret微机原理与接口技术---中南大学出版社IS8253:MOV AL,61H;指定中断结束命令OUT 0A0H,ALMOV AL,62HOUT 20H,ALIN AL,0A1H;关屏蔽,禁止IRQ9中断OR AL,2OUT 0A1H,ALPOP AX;修改返址INC AXINC AXPUSH AXIRETbeginendpcodeendsendbegin微机原理与接口技术---中南大学出版社

串行通信是指利用一条传输线将数据一位位地顺序传送,在传输过程中,每一位数据都占据一个固定的时间长度。串行通信的特点是通信线路简单,利用电话或电报线路就可实现通信,降低了硬件开销成本,适用于远距离通信,但传输速度较慢。8.3串行通信与可编程串行通信接口8251A微机原理与接口技术---中南大学出版社

1)同步通信以帧为单位传输信息。将要传输的字符一个一个地组成一个数据块,数据块头部有1~2个同步字符,数据块尾部是校验字符,这样构成一个信息帧。收发双方在同一个时钟信号的控制下发送和接收信息帧,帧与帧之间不允许有间隔,若有,必须用同步字符填充。同步通信传输效率高,但对收发双方的同步要求严格,硬件电路比较复杂。

1.串行同步通信和串行异步通信8.3.1串行通信概述微机原理与接口技术---中南大学出版社

2)异步通信以字符为单位传输信息。每个字符的前后都要附加起始位和停止位作为分隔位,因此通信中两个字符间的传输间隔是任意的,不需要收发双方的时钟信号的严格同步,硬件电路比较简单。但由于其附加信息量多,异步通信的传输效率比较低。

图8-26是异步通信时的标准数据格式微机原理与接口技术---中南大学出版社2、数据传送方式全双工:双根传输线,能够同时发送和接收半双工:单根传输线,不能同时发送和接收单工:单根传输线只用作发送或只用作接收微机原理与接口技术---中南大学出版社

3.数据传输率数据传输率即波特率,是衡量数据传送速率的指标。表示每秒钟传送的二进制位数。例如数据传送速率为120字符/秒,而每一个字符为10位,则其传送的波特率为10×120=1200位/秒=1200波特。微机原理与接口技术---中南大学出版社

8251A是可编程的串行通信接口芯片,概括起来具有以下基本特征:1)通过编程可以选择同步方式或异步方式。同步方式下,波特率为0~64Kbps,异步方式下,波特率为0~19.2Kbps。2)同步方式下,每个字符可以用5、6、7或8位来表示,并且内部能自动检测同步字符,从而实现同步。除此之外,8251A也允许同步方式下增加奇/偶校验位进行校验。3)异步方式下,每个字符也可以用5、6、7或8位来表示,时钟频率为传输波特率的1、16或64倍,用1位作为奇/偶校验。1个启动位。并能根据编程为每个数据增加1个、1.5个或2个停止位。可以检查假启动位,自动检测和处理终止字符。

8.3.2异步通信控制器8251A微机原理与接口技术---中南大学出版社1.8251A的组成与接口信号8251A主要由7部分组成:数据总线缓冲器;选择和读写控制逻辑;接收控制电路;发送控制电路;接受缓冲器;发送缓冲器;调制解调器控制电路;微机原理与接口技术---中南大学出版社2.8251A引脚信号微机原理与接口技术---中南大学出版社

(2)数据总线缓冲器数据总线缓冲器是8位的双向、三态缓冲器,它是CPU与8251A之间的数据接口。CPU通过数据总线缓冲器发送和接收数据,此外,CPU发出的控制命令和外设的状态信息也是通过它来传送的。

(2)读/写控制电路

读/写控制电路用来接收片选信号、读写信号和控制信号,通过数据总线缓冲器对8251A进行读写操作。微机原理与接口技术---中南大学出版社(3)接收器

接收器由接收缓冲器和接收控制电路两部分组成。接收移位寄存器从RXD引腿上接收串行数据转换成并行数据后存入接收缓冲器。

(4)发送器

发送器由发送缓冲器和发送控制电路两部分组成。发送缓冲器把来自CPU的并行数据加上相应的控制信息,然后转换成串行数据从TXD引脚发送出去。

微机原理与接口技术---中南大学出版社(5)调制解调器控制电路调制解调器控制电路由控制寄存器、状态寄存器和控制逻辑组成,用于控制调制解调器的工作。如果8251A与MODEM相连,则其控制信号由调制解调控制电路产生。微机原理与接口技术---中南大学出版社

3.8251A的外部引脚微机原理与接口技术---中南大学出版社

(1)8251A和CPU之间的连接信号8251A和CPU之间的连接信号可以分为四类:1):片选信号,它由CPU发出端口的地址信号译码产生,低电平有效。2)D0-D7:8位,三态,双向数据线,与系统的数据总线相连3)读/写控制信号:读信号,低电平有效,表示CPU当前正在从8251A读取数据或者状态信息。:写信号,低电乎有效,表示CPU当前正在往8251A写入数据或者控制信息。

c/:控制/数据信号,用来区分当前读/写的是数据还是控制信息或状态信息。该信号也可看作是8251A数据端口与控制端口的选择信号。

微机原理与接口技术---中南大学出版社

,,c/

这3个信号的组合,决定了CPU对8251A的具体操作,它们的关系如表7-3所示:

表8-38251A引脚信号与端口读写操作的关系C/

操作001CPU从8251A输入数据010CPU向8251A输出数据101CPU读取8251A的状态110CPU往8251A写入控制字注意,8251A只有两个连续的端口地址,数据输入端口和数据输出端口合用同一个偶地址,而状态端口和控制端口合用同一个奇地址。在8086/8088系统中,利用A1来区分奇地址和偶地址。

微机原理与接口技术---中南大学出版社4)收发联络信号

TXRDY:发送器准备好信号,用来通知CPU,8251A已准备好发送一个字符。

TXE:发送器空信号,TXE为高电平时有效,用来表示此时8251A发送器中并行到串行转换器空,说明一个发送动作已完成。

RXRDY:接收器准备好信号,用来表示当前8251A已经从外部设备或调制解调器接收到一个字符,等待CPU来取走。因此,在中断方式时,RXRDY可用来作为中断请求信号;在查询方式时,RXRDY可用来作为查询信号。

SYNDET:同步检测信号,只用于同步方式。微机原理与接口技术---中南大学出版社

(2)8251A与外部设备之间的连接信号

8251A与外部设备之间的连接信号分为两类:1)收发联络信号

:数据终端准备好信号,由8251A发送给外部设备,表示当前CPU已经准备就绪。:数据设备准备好信号,由外设送往8251A,表示当前外设已经准备好。:请求发送信号,由8251A发送给外部设备,表示CPU已经准备好发送。:允许发送信号,是对RTS的响应,由外设送往8251A,表示当前允许8251A执行发送操作。实际使用时,这4个信号中通常只有必须为低电平,其它3个信号可以悬空起来不用。微机原理与接口技术---中南大学出版社2)数据信号TXD:发送器数据输出信号。当CPU送往8251A的并行数据被转变为串行数据后,通过TXD送往外设。RXD:接收器数据输入信号。用来接收外设送来的串行数据,数据进入8251A后被转变为并行方式。(3)时钟、电源和地8251A除了与CPU及外设的连接信号外,还有电源端、地端和3个时钟端。CLK:时钟输入,用来产生8251A器件的内部时序。同步方式下,大于接收数据或发送数据的波特率的30倍,异步方式下,则要大于数据波特率的4.5倍。TXC:发送器时钟输入,用来控制发送字符的速度。同步方式下,TXC的频率等于字符传输的波特率,异步方式下,TXC的频率可以为字符传输波特率的1倍、16倍或者64倍。RXC:接收器时钟输入,用来控制接收字符的速度,和TXC一样。在实际使用时,RXC和TXC往往连在一起,由同一个外部时钟来提供,CLK则由另一个频率较高的外部时钟来提供。微机原理与接口技术---中南大学出版社8251A有两个控制字和一个状态字。两个控制字即方式选择控制字和操作命令控制字,它们没有特征位,必须按先后顺序写入控制端口。状态字从状态端口读取,状态端口与控制端口使用一个端口地址。8.3.48251A的编程微机原理与接口技术---中南大学出版社对8251A进行初始化时,由方式选择控制字的设置决定8251A的工作模式,方式选择控制字的格式如图8-34所示。当方式选择控制字的最低两位D1D0=00时,8251A工作在同步方式,此时最高两位D7D6决定了是内同步还是外同步,以及同步字符的个数;若当方式选择控制字的最低两位D1D0不全为0,则8251A进入异步方式。1.方式选择控制字(模式字)微机原理与接口技术---中南大学出版社8-30方式选择控制字微机原理与接口技术---中南大学出版社2.操作命令控制字(控制字)

图8-318251A的操作命令字的格式

微机原理与接口技术---中南大学出版社3.8251状态字微机原理与接口技术---中南大学出版社状态寄存器的D1、D2、D6位分别与8251A引脚RXRDY、TXE、SYNDET上的信号相同;D0位TXRDY为1表示发送准备好,当前数据输出缓冲器为空置D0为1。但8251A引脚TXRDY信号的置1条件与状态字D0位不同,引脚TXRDY信号的置1的条件为:

数据输出缓冲器为空AND输入引脚为低电平AND操作控制字的TXEN位为1。状态字的RXRDY和TXRDY可以在程序中用来作为输入和输出的测试状态位。而引脚RXRDY和TXRDY两个信号则常常作为外设对CPU的中断请求信号。状态寄存器的D3、D4、D5分别作为奇偶校验出错、溢出错和帧格式出错指示。

微机原理与接口技术---中南大学出版社4.8251A的初始化编程8251A的初始化编程必须遵守以下约定:

1)首先要对8251A作软件复位操作,使8251A内部处于初始状态。按照8251A的规定,向8251A控制口顺序写入3个0和1个40H将引起8251A复位,这叫软件复位。2)芯片复位后,第一次用奇地址写入的值作为模式字送控制寄存器。3)若模式字中规定了825lA工作在同步模式,那么,CPU接着往奇地址端口输出的字节为同步字符,同步字符被写入同步字符寄存器。如果有两个同步字符,则会按先后分别写入第一个同步字符寄存器和第二个同步字符寄存器。4)此后,除复位命令,不管同步方式还是异步方式,CPU往奇地址写入的值将作为操作字送到控制寄存器,往偶地址端口写入的值作为数据送到数据输出寄存器。

微机原理与接口技术---中南大学出版社8251A的初始化流程图微机原理与接口技术---中南大学出版社1.8251A初始化编程举例1)异步模式设8251A工作在异步模式,波特率因子为16,7个数据位/字符,偶校验,2个停止位,发送、接收允许,设端口地址为00E2H。完成初始化程序。

【分析】根据题目要求,可以确定模式字为11111010B即FAH,而控制字为00110111B即37H,则初始化程序如下:MOVAL,0FAH;设置模式字,MOVDX,00E2H;异步方式,7位/字符,偶校验,2停止位,OUTDX,AL;波特率因子为16。MOVAL,37H;设置控制字,发送、接收允许,清出错标志OUTDX,AL;使,有效.8.3.58251A的应用举例微机原理与接口技术---中南大学出版社2)同步模式设端口地址为0E2H,采用内同步方式,2个同步字符(设同步字符为16H),偶校验,7位数据位/字符。【分析】根据题目要求,可以确定模式字为:001110

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论