Transcript 工作方式控制字
第五章 并行接口 5.1 5.2 5.3 5.4 简单并行接口8212 可编程并行接口8255A 计数器/定时器8253 IBM PC系统的8255和8253 课题7 教学内容 一、简单并行接口8212 二、内部结构和引脚功能 三、4个端口和端口地址 四、2个控制字和1个状态字 五、工作方式0及应用 六、工作方式1及应用 七、工作方式2及应用 并行通信:把一个字符的各数位用几条线同时 进行传输。 5.1、 简单并行接口8212 一、主要技术性能 (1)芯片采用肖特基工艺,为24个引线端 双列直插式封装。 (2)有8位并行简单输入/输出端口。 (3)有三态输出、控制选择逻辑电路。 (4)有中断请求能力。 (5)采用单相+5V电源。 二、8212芯片结构 1.8212的内部逻辑 (1)、数据锁存器(8个D触发器) (2)、输出缓冲器( 8个三态门) (3)、控制逻辑电路。 2.8212引脚说明 三、8212芯片的应用 1.8212作为输入或输出端口 2.带有中断请求的数据输入/输出接口 3.双向总线驱动 5.2 可编程并行接口芯片8255A 各种I/O接口芯片在使用过程中,都存在一个与CPU之 间的连接问题,端通常接地址译码器的输出,以图5-1为例 说明。它就有两个端口;如果没有地址线,那么该芯片就只 有1个端口。有了端口地址,CPU才能对该I/O接口芯片实施 读/写操作。 6 ¡Ã64 ¡- Y0 ÒëÂëÆ÷Y 25 ¡- A 7¡«A2 Y 63 A1 A0 CS I/O ½Ó¿ÚоƬ A1 A0 图5-1 片选与端口地址 任何一个I/O接口芯片位于CPU与I/O设备之间,它们的引脚 必然会被分为3部分: (1) 与CPU的连线为地址线、数据线和控制线; (2) 与I/O设备的连线为数据线和控制线; (3) 电源、地和时钟信号等。 A B D CS D B D B RD RD RDY WR WR INT R INT B D B M/ IO CPU STB I/O½Ó¿ÚоƬ 图9-2 I/O接口芯片引脚 RDY STB I/OÉ豸 5.2.1 内部结构和引脚功能 1.8255A的基本性能 8255A有如下一些基本性能:8255A是一个有3个数据 口、1个控制/状态口的8位并行输入输出接口芯片;8255A 能为80系列CPU与I/O设备之间提供兼容TTL电平的接口, 能接通键盘、打印机、步进电机、显示器、A/D和D/A转换 器等等;8255A原则上适用于一切需并行输入输出的I/O设 备;8255A设置了方式0、方式1、方式2等3种不同的工作方 式,可用于无条件传送、查询传送、中断传送,采用哪种 传送方式可用控制字设置;8255A有两个控制字供编制初始 化程序使用,使用OUT指令从控制寄存器端口写入,有一 个状态字可供查询,使用IN指令从C端口读出;对8255A的 4个端口读/写操作实质上就是对8255A所接I/O设备的操作。 2.8255A的内部结构 8255A的内部结构和引脚如图9-3所示,内部由三部分组成: (1) 4个8位端口,分别为PA、PB、PC和CWR。PA、PB、 PC是3个8位数据端口,其中,PA口由一个8位数据输入锁存器 和一个8位数据输出锁存/缓冲器组成;PB口由一个8位数据输入 缓冲器和一个8位数据输入/输出锁存/缓冲器组成;PC口由一个8 位数据输入缓冲器和一个8位数据输出锁存/缓冲器组成。 (2) 工作方式控制电路,控制PA口、PB口、PC口的工作方式。 A组有方式0、1、2三种工作方式;B组有方式0、1两种工作方式。 (3) 数据总线缓冲器和读/写逻辑。数据总线缓冲器是一个三 态双向8位缓冲器,用作8255A与CPU数据总线的接口。 ¹¤×÷·½Ê½ ¿ØÖÆ D0¡«D7 RD WR A1 A0 A×é A¿Ú 8 λ PA0¡«PA7 A×é C¿Ú¸ß 4 λ 4 λ PC4¡«PC7 ¿ØÖÆÂß ¼- B×é C¿ÚµÍ4 λ 4 λ PC0¡«PC3 ¿ØÖÆ ¼Ä´æÆ÷ B×é B¿Ú 8 λ PB0¡«PB7 Êý¾Ý×ÜÏß » º³å ¶Á/д CS RESET PA3 PA2 PA1 PA0 RD CS GND A1 A0 PC7 PC6 PC5 PC4 PC0 PC1 PC2 PC3 PB0 PB1 PB2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 (a) 图5-3 8255A的结构框图和引脚图 (a) 内部结构;(b) 引脚 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 (b) PA4 PA5 PA6 PA7 WR RESET D0 D1 D2 D3 D4 D5 D6 D7 VCC PB7 PB6 PB5 PB4 PB3 3.8255A引脚的功能 CS CS:片选信号。输入低电平有效,常接地址译码器输出 或1根地址线。 A1、A0:地址信号,输入。内连8255A的片内寄存器,外接 CPU地址线,和一起决定了8255A的4个端口地址。 D7~D0:双向三态数据线。常接CPU低8位数据总线,用于 传送8位二进制数据、控制命令字和状态字。 RD:读。低电平有效,输入控制命令字,CPU执行IN指令 时起作用,将8255A的3个端口PA、PB、PC的数据或端口PC的状 态信息读至CPU。 WR:写。低电平有效,输入控制命令字,CPU执行OUT指 令时起作用,将AL中的数据送到PA、PB、或PC;将AL中存放 的控制命令字从CWR口写入。 RESET:复位。高电平有效,输入信号线。它能置PA、PB、 PC为输入方式;清除控制寄存器、输出寄存器和状态寄存器; 屏蔽中断申请;使连接外设的24条信号线呈高阻悬浮状态。在 使用工作方式控制字后可结束复位状态,进入用户设置的工作 方式。 PA7~PA0:A口输入输出线,双向口。 PB7~PB0:B口输入输出线,双向口。 PC7~PC0:C口输入输出线。工作于方式0时,C口为双向 数据口;工作于方式1或2时,C口为控制/状态口。 5.1.2 4个端口和端口地址 表5-1 8255A的端口地址 端口 CS 端口性质 A1 A0 TP86A PC/XT 扩展 PA 0 0 0 数据口 FFF8H 60H 300H PB 0 0 1 数据口 FFFAH 61H 301H PC 0 1 0 数据口,控制/状态口 FFFCH 62H 302H CWR 口 0 1 1 控制口 FFFEH 63H 303H 【例5-1】 电路如图5-4所示,计算端口地址。 CPU ÒëÂëÆ÷ Y0 ¡- A 15¡«A3 1 3¡Ã8 1 92 Y8191 8 25 5A & CS A0 A2 A1 A1 A0 图5-4 例5-1图 解 因 CS Y8191 A ,只有当A15~A3=8191=1111 1111 0 1111 1B且A0=0时 1A2A10。 才为0,故端口地址为1111 1111 1111 5.2.3 2个控制字和1个状态字 1.工作方式控制字 该字规定了PA、PB、PC的工作方式,格式为: D7 D7=1 特征位 D6 D5 D4 D3 D2 D1 D0 PA 口方式:00=方式 0 PA 口: PC7~4: PB 口方式: PB 口: PC3~0: 01=方式 1 0=输出 0=输出 0=方式 0 0=输出 0=输出 1×=方式 2 1=输入 1=输入 1=方式 1 1=输入 1=输入 ——————————A 组————————— ———————B 组——————— 【例5-2】 8255A端口地址44H~47H,A口工作于方式0, 外接键盘;B口工作于方式1,外接显示器,C口上半部作输出 控制线用,下半部bit3作输入线用。试编制初始化程序。 解 工作方式控制字为1001 0101=95H。初始化程序为: MOV AL , 95H ;将控制字送入AL内 OUT 47H ,AL ;用OUT指令从CWR口写入 2.PC口按位置位/复位控制字 该字用于将PC口某一位置“0”或置“1”,格式为: D7 D6 D5 D7=0 特征位 无用 D4 D3 D2 位选择: 000=PC0 1=置位 001=PC1 0=复位 111=PC7 D1 D0 【例5-3】 通过8255A的PC3位向外输出一个正脉冲信号,设 端口地址为300H~303H。 解 每送一个控制字,将PC3置位或复位一次,就获得高低 电平交替的正脉冲。 LOP: MOV DX ,0303H ; MOV AL ,0××× 011 1B ;将 PC3 置位 OUT DX ,AL ;送控制字 CALL DEL ;调延时子程序或用 NOP 延时 DEC AL ;将 PC3 复位 OUT DX ,AL ;送控制字 0××× 011 0 B CALL DEL ;延时 JMP LOP 3.8255A的状态字 在8255A工作时,CPU可以通过读PC的内容来了解各端口 的工作状态,这时PC的内容称为状态字。工作方式0没有状态 字,工作方式1和工作方式2的状态字是不同的。 5.2.4 工作方式0及应用 1.工作方式0的特性 工作方式0又叫基本输入/输出方式,其特点如下: (1) 适合于无条件传送和查询传送,无中断功能,不适合 于中断传送。 (2) 输入只有缓冲功能无锁存功能,输出可以锁存。 (3) 1片8255A可以分成4个独立的数据端口使用,这4个端 口是两个8位端口PA、PB,两个4位端口PC7~4、PC3~0。使用 时不分组,组合使用可以有24=16种不同的组合。 (4) 4个端口的每一个都能用I/O指令读/写数据,注意PC口 的高4位是一组,低4位是另一组,不能把4位中的某位作输入 而另一两位作输出。如果某位作输入(出)数据用,则4位都作输 入(出)数据用。 (5) 端口各引线之间无固定时序关系,由用户按数据传送要 求决定I/O操作过程。 (6) 工作方式0无状态字。 2.并行打印机接口用例 1) 打印机接口标准Centronics I/O接口芯片8255A外接打印机,是通过打印机接口标准实 现的。并行接口的点阵式打印机普遍遵守Centronics并行标准, 是国际公认的工业标准8位并行接口,共36芯连线,引脚编号 如表9-2所示。 表5-2 并行接口标准Centronics的信号线电源和编号 引脚号 信 号 方向(对打印机) 信 号 功 能 STB 入 主机对打印机输入数据的选通脉冲 DATA1~8 入 并行数据 0~7 位的信号 10 ACK 出 向主机发出的传送数据的请求脉冲 11 BUSY 出 表示打印机是否可以接收数据的信号 12 PE 出 纸尽 Paper Out or Low 13 SELECT 出 选中信号 14 AUTO FEEDXY 入 自动输纸信号 15 NO 不用 16 0V 逻辑地 17 CHASSIS GND 机架地 18 NO 不用 19~30 GND 对应 1~12 引脚的接地线 31 INIT 入 打印机控制器初始化 32 ERROR 出 出错信号 33 GND 地 34 NO 不用 35 5V SLCTIN 电源 1 2~9 36 入 低电平有效时数据才能进打印机 BUSY ACK 7 5 DATA STB 5 5 5 µ¥Î»£º s 图5-5 Centronics的工作时序 2) 方案选择 A 9¡«A2 A1 A0 RD WR ¡- 8¡Ã256 8255A 0 ÒëÂëÆ÷ ¡- CPU 192 CS 255 Centronics PA7¡«PA0 ×Ö·û´òÓ¡»ú DATA BITE A1 A0 RD M1 WR DB DB PC7 DATASTROBE PC2 BUSY 图5-6 工作方式0连接举例 5.2.5 工作方式1及应用 1.工作方式1的特点 工作方式1又叫选通输入/输出方式,其特点如下: (1) 适合于查询传送和中断传送,不适合无条件传送。 (2) 输入和输出均有缓冲锁存功能。 (3) PA、PB为数据口,PC有两条线为数据口,另 外6条线作控制/状态口。 (4) PC作控制/状态口的6条线是CPU、8255A、I/O设备之间 的联络信号线,各联络线之间时序关系固定,数据传输严格遵 循时序要求。 (5) 有输入和输出两种不同格式的状态字,两种状态字可以 作为程序或中断申请使用,需要使用IN指令从PC口地址读出到 AL中。 (6) PA、PB在作输入和输出使用时的引脚分配和时序都不 相同,下面分别叙述。 2.PA、PB均为输入时的引脚与时序 PA ×÷ÊäÈë PB ×÷ÊäÈë PA7¡«PA 0 INTEA PC4 PC5 PB7¡«PB0 D7¡«D0 STBA IBFA INTEB RD & RD 8 INTRA PC3 PC2 PC1 & D7¡«D0 PC6 PC7 I/O INTRB PC0 图5-7 工作方式1时PA、PB作输入 8 STBB IBFB 1) PA端口作输入 PA7~PA0:输入8位数据用,与之配套使用的有PC口5条线。 STB:从I/O设备来的输入选通信号。当它为低电平时表示 I/O设备告诉8255A有8位数据要送到PA口的输入缓冲锁存器, 高电平时表示无数据送来。 IBF(Input Buffer Full):从8255A送到I/O设备的“输入缓冲 器满”信号。当它为低电平时表示8255A通知I/O设备可以把8位 数据从A口送进来,这时PA的输入缓冲器空;当它为高电平时 通知I/O设备不要送数据,这时PA的输入缓冲器满,数据还占着 输入缓冲器,没有被CPU取走。 INTR:从8255A向CPU提出中断申请的信号。当它为低 电平时无中断申请;为高电平时有中断申请。在端口内有一 个 与 门 电 路 , 中 断 申 请 信 号 INTRA(PC3) = INTEA?IBFA(PC5),与门输入端决定了中断申请在什么情况 下发出,只有当输入缓冲器满,即IBFA=1,且中断允许信 号INTEA=1时,才申请中断。 INTEA(Interrupt Enable Port A):端口中断使能信号,无 外引脚。信号特征与PC4状态一致,不受PC4外接的STB状态 影响,只能通过写入PC口按位置位/复位控制字设置。 2) PB端口作输入 PB7~PB0:输入8位数据用,与之配套使用的有PC口3条线。 3) 工作方式1输入时的工作时序 tst STB IBF INTR RD tsb ti INPUT DATA FROM I/O tps tp 图5-8 工作方式1输入时序 表5-3 8255A工作方式1输入时的时序 参数 解 释 最 小 脉宽 从STB 有效到 IBF 有效的时间 500 ns 数据保持时间 180 ns tst tsb tp ti STB tps 数据出现时间 最 大 300 ns 数据有效直至提出中断时间 300 ns 0s 3.PA、PB均为输出时的引脚与时序 PA ×÷Êä³ö PB ×÷Êä³ö PA7¡«PA 0 INTEA PC6 PC7 PB7¡«PB0 D7¡«D0 ACKA INTEB WR OBFA & WR 8 INTRA PC3 PC2 PC1 & D7¡«D0 PC4 PC5 I/O INTRB PC0 图5-9 工作方式1时PA、PB作输出 8 ACKB OBFB 有几种信号说明如下: OBF:8255A的输出缓冲器满。当它为低电平时表示CPU 来的数据已在输出缓冲器中,8255A通知I/O设备来取数。 ACK:I/O设备的响应信号。当它为低电平时表示I/O设备 已知道8255A把数据准备好了。它是对OBF信号的响应。 INTR:8255A向CPU发出的中断申请,高电平有效。端口 内有一与门电路,INTRA(PC3)=(PC INT7),只有在输出缓冲器空, RA OBFA CPU没有送数据来,OBF=1,且中断允许INTEA=1时,才会 有申请送至CPU。而INTEA和PC6的状态相同,但不受ACK信 号的影响,仅由PC按位置位/复位控制字决定。 TW WR TA OBF INTR ACK TWIT TAK OUTPUT TO I/O TWB 图5-10 工作方式1输出时序 TAIT 表5-4 8255A工作方式1输出时的时序 参数 解 释 最小 最大(ns) TW WR =1 到OBF =0 650 TWIT WR =1 到 INTR=0 850 TA ACK =1 到 OBF=0 350 TAK ACK TAIT ACK TWB 脉冲宽度 =1 到 INTR=1 WR =1 到输出 300 350 350 4.工作方式1的状态字 工作方式1的状态字有输入操作和输出操作两种不同的格式, 如图9-11所示。 D7 D6 ÊäÈë²Ù×÷×Ö I/O I/O D5 D4 D3 D2 D0 IBFA INTEA INTRA INTEB IBFB INTRB A×é Êä³ö ²Ù×÷×Ö OBF A INTEA D1 I/O B×é I/O INTRA INTEB OBF B INTRB 图5-11 工作方式1的状态字 状态字通过IN AL,PORTC读取。指令中PORTC是PC 的端口地址。从PC读出的状态字和PC端口的外部引脚无关。 例如输入操作,引脚PC2和PC4是选通联络信号STB;状态位 PC2和PC4却表示中断允许信号INTEB和INTEA。又如输出操 作,作为引脚使用的PC2和PC6表示响应联络信号ACK;状 态位PC2和PC6却表示中断允许信号INTEB和INTEA。输入操 作和输出操作状态字相同的地方是:高5位表示A组的状态, 低3位表示B组的状态。当8255A处于查询方式工作时,只查 INTR 是 复 位 还 是 置 位 , 或 查 IBF 或 位 OBF 。 状 态 字 中 有 INTR位,表明8255A可提供查询是否申请了中断,但不能提 供中断向量。如果微机系统使用向量中断,则需用中断控制 器,如8259A等。若想INTEA=1,那么在PA口作输入用时 就应置PC4=1,相应程序为: MOV DX,PORT_CWR MOV AL ,0000 1001B OUT DX ,AL ;置PC4=1 在PA作输入用时要想禁止中断,只需用程序将PC4置成“0”。 如果要想使INTEA=1,但PA作输出使用,这时就应置PC7=1, 相应程序为: MOV DX ,PORT_CWR MOV AL ,0000 1111B OUT DX ,AL ;置PC7=1 5.并行打印机接口用例 8 ¡Ã25 6 ÒëÂëÆ÷ CS ¡- A 9¡«A2 8 25 5A 0 ¡- CPU 2 55 A1 A0 PA7¡«PA0 A1 A0 IOR È¥8 25 9AIR2 RD INTR PC3 IOW WR DB DB Cen tro nics ½Å2 ¡«9 OBF PC7 DATA BITE ½Å1 DATA STROBE ACK PC6 ×Ö·û´ò Ó¡»ú ½Å10 ACKNLG 图5-12 工作方式1连接举例 5.2.6 工作方式2及应用 1.工作方式2的特点 工作方式2仅限于PA端口,又称为双向选通输入/输出方 式,它有以下特点:适合于查询传送和中断传送,不适合于 无条件传送。 2.引脚与时序 PA7¡«PA0 D7¡«D0 INTE INTE WR & PC6 ACKA PC7 OBFA PC5 IBFA PC4 STBA ¡Ý1 & RD 8 INTRA PC3 PC2¡«PC0 3 图5-13 工作方式2的引脚 I/O Êý¾Ý´ÓC PUµ½82 55 A WR OBF INTR ACK STB IBF RD I/OÊý¾ÝÏß Êý¾ÝÁ÷Ïò£ ºI/O¡ú8 25 5A 8 25 5A¡úI/O 82 55 A¡ú CPU 图5-14 工作方式2的时序图 3.状态字 工作方式2的状态字由8位二进制数组成,高5位用于A组, 处于工作方式2;低3位用于B组,处于工作方式1。工作方式2 的状态字格式如图5-15所示,图中有输入操作用字和为输出操 作用字,只因B组工作方式1的输入/输出操作不同,使得方式2 的状态字也有两种格式。 D7 D6 D5 D4 D3 D2 D1 D0 ÊäÈë²Ù×÷×Ö OBFA INTE1 IBFA INTE2 INTRA INTEB IBFB INTRB A×é B×é Êä³ö ²Ù×÷×Ö OBF A INTE1 IBFA INTE2 INTRA INTEB OBFB INTRB 图5-15 方式2的状态字 4.并行接口举例 两个微机并行传送100字节的数据,主机8255A工作在方式 2(中断方式);从机8255A工作在方式0(查询方式)。电路设计如 图5-16所示。 INTA IR0 PA7¡«PA0 PA7¡«PA0 ¡- INTA IR2 INT 8 25 9 AIR7 Ö÷» ú ϵͳBUS ¡- PC7 OBF ACK PC6 PC5 IBF PC4 STB PB7¡«PB0 PC2¡«PC0 8 25 5A PC7 PC2¡«PC5 8 25 5A 图5-16 工作方式2连接举例 INTA IR0 PA7¡«PA0 ¡- INTA IR2 INTR INT PC3 ¡- INTR PC3 PB7¡«PB0 PC1 PC6 PC0 PC7 OBF ACK PC6 PA7¡«PA0 PB7¡«PB0 PC1 PC6 ´Ó» ú 小结 一、简单并行接口8212 二、内部结构和引脚功能 三、4个端口和端口地址 四、2个控制字和1个状态字 五、工作方式0及应用 六、工作方式1及应用 七、工作方式2及应用 作业 5.2 5.4 5.6 5.7 第五章 并行接口 5.1 5.2 5.3 5.4 简单并行接口8212 可编程并行接口8255A 计数器/定时器8253 IBM PC系统的8255和8253 课题8 教学内容 一、8253的内部结构和引脚功能 二、 4个端口和1个控制字 三、 6种工作方式 5.3 可编程定时/计数器8253/8254 5.3.1 8253的内部结构和引脚功能 8253-5和8254-2是24脚双列直插芯片,使用单一+5 V供电, 输入输出与TTL电平兼容。它的内部结构和引脚分配如图9-31 所示。 D0¡«D7 Êý¾Ý×ÜÏß» º ³å CS A1 A0 WR ¶Á/д Âß ¼- ÄÚ²¿ ×ÜÏß ¼ÆÊý Æ÷ #0 CLK0 GATE0 OUT0 ¼ÆÊý Æ÷ #1 CLK1 GATE1 OUT1 ¼ÆÊý Æ÷ #2 CLK2 GATE2 OUT2 RD ¿ØÖÆ×Ö ¼Ä´æÆ÷ 图5-31 8253-5/8254-2 D7 1 2 4 VCC D6 2 23 WR D5 3 2 2 RD D4 4 2 1 CS D3 8 25 3- 5 A 1 D2 8 25 4- 2 A 0 D1 CLK2 D0 OUT2 CLK0 9 1 6 GATE2 OUT0 1 0 1 5 CLK1 GATE0 1 1 1 4 GATE1 GND 1 2 1 3 OUT1 1.内部结构 1) 数据总线缓冲器 数据总线缓冲器是一个8位的三态双向缓冲器,作用 是将8253与CPU数据总线相连。 2) 读写控制逻辑 读写控制逻辑接收CPU送来的地址和读写控制信号, 经过逻辑组合,完成对各端口的选择和各部分的控制。 3) 控制字寄存器 用于存放控制字。控制字决定计数器的工作方式,该 寄存器只能写不能读。 4) 3个独立的计数通道 3个计数通道分别命名为计数器#0、计数器#1、计数 器#2。3个通道彼此完全独立,每个通道的内部结构又完 全相同,由1个16位减1计数器、1个16位计数初值寄存器、 1个16位输出锁存器组成,如图9-32所示。每个通道对外引 线除16位数据线和内部总线相连外,还有一条时钟输入线 CLK、一条门控制线GATE、一条输出线OUT。 ¶Á³öµ±Ç°Öµ 1 6λÊä³ö Ëø´æÆ÷ CLK GATE & 1 6λ¼õ1 ¼ÆÊý Æ÷ OUT 1 6λ¼ÆÊý³õ Öµ¼Ä´æ Æ÷ ×°Èë/¶Á³ö ¼ÆÊý³õ Öµ 图5-32 计数通道 2.引脚 CS :片选信号,输入。低电平有效,接地址译码器输 出。 A1 、A0 :端口地址选择信号,输入。接CPU两根地址 线,例如接A1A0。按其取值选择8253/8254的3个计数器端 口和1个控制寄存器端口。 D0~D7:双向三态数据线,与CPU 的D0~D7相连, 用于传送CPU向8253/8254写入的控制字和读写的字节数据。 RD:读信号,输入。低电平有效,由CPU发出的对 8253/8254读命令。 WR:写信号,输入。低电平有效,由CPU发出的对 8253/8254写命令。 CLK:时钟信号,输入。每一个通道都有一个独立的时 钟输入,分别为CLK0、CLK1、CLK2。其功能是作计数脉冲 使用,每输入一个CLK脉冲,计数值减1。 GATE:门控信号,输入。每一个通道都有一个独立的 门控输入端,分别为GATE0 、GATE1 、GATE2 。其功能是禁 止、允许或启动计数过程。8253/8254有6种不同的工作方式, 每种方式下的GATE控制作用不同。 OUT:计数器输出信号。每一个通道都有一个独立 的信号输出端,分别为OUT0、OUT1、OUT2。当计数 值为0时,OUT输出一个负脉冲,表示定时/计数已到。 它可用于外部定时启动I/O设备某些操作或开关启停, 也可表示计数过程完结,还能作中断申请信号使用。 5.3.2 4个端口和1个控制字 8253/8254内部有4个端口:计数器#0、计数器#1、 计数器#2、控制字寄存器(CWR)。前3个为数据口,用 于给16位计数器输入初值和读出16位减1计数器当前值, 如果是字操作,则读写时先低字节后高字节。后1个为 控制口,用于写方式控制字。4个端口有4个地址,从小 到大按计数器#0~#2、CWR口顺序排列。表9-6给出 了4个端口的操作。 表5-6 8253/8254读写操作和端口地址 A1 A0 操 0 0 0 对计数器 0 写入计数初值 1 0 0 1 对计数器 1 写入计数初值 0 1 0 1 0 对计数器 2 写入计数初值 0 1 0 1 1 向控制寄存器写方式控制字 0 0 1 0 0 读计数器 0 当前值 0 0 1 0 1 读计数器 1 当前值 0 0 1 1 0 读计数器 2 当前值 0 0 1 1 1 无操作,三态 0 1 1 × × 无操作,三态 1 × × × × 禁止,三态 CS RD 0 1 0 WR 作 8253/8254只有1个方式控制字,用于规定该芯片处于 哪种工作方式、如何赋予计数初值、是否要读取当前计数 值等等。方式控制字格式如下: D7 D6 D5 D4 D3 D2 D1 D0 SC1 SC0 RW1 RW0 M2 M1 M0 BCD 00 选计数器 0 00 计数器锁存 000 方式 0 0 二进制数 01 选计数器 1 01 只读写低 8 位字节 001 方式 1 1 BCD 数 10 选计数器 2 10 只读写高 8 位字节 ×10 方式 2 11 非法 11 先读写低 8 位 ×11 方式 3 后读写高 8 位 100 方式 4 101 方式 5 【例5-6】 使用CPU的低8位地址线选择I/O端口,地址译码 器与8253连接如图9-33所示。要求对计数器1初始化编程,工作 于工作方式2,计数值二进制数4A70H。 Y0 ¡- A 7¡«A2 6 ¡Ã64 ÒëÂë Y16 ¡- CS Y 63 CPU A1 A0 A1 A0 图5-33 8253与CPU相连 8 25 3 解 8253端口地址为010000A1A0,或计数器0地址为40H, 计数器1为41H,计数器2为42H,CWR口为43H。计数器1的 方式控制字为0111×100,初始化程序段如下: MOV AL ,7CH OUT 43H ,AL MOV AL ,70H OUT 41H ,AL MOV AL ,4AH OUT 41H ,AL ;从 CWR 口写入方式控制字 7CH ;先将低位字节送计数器 1 ;后将高位字节送计数器 1 【例5-7】 要求读出并检查2号计数器当前值是否全为 “1”,假设计数器计数值只有低8位,高8位全为0,端口地 址为304H~307H。程序段为: LOP: MOV AL ,1000 0000B ;锁存 2 号计数器 MOV DX ,0307H OUT DX ,AL ;从 CWR 口写入方式控制字 IN AL ,0306H ;读 2 号计数器当前值 AND AL ,0FFH ;检查 JNE XXX ;非全为“1”,转 XXX 语句 JMP YYY ;全为“1”,转 YYY 语句 5.3.3 6种工作方式 1.方式0——计数结束时中断方式 方式0有3个特点: (1) 写入计数初值后,计数器就开始减1计数,OUT变为 低电平。当计到零时,OUT输出高电平。如果重新写入计 数值,计数器又立即开始减1计数,OUT再次变低。 (2) 门控信号GATE=1时允许计数器工作;GATE=0时 禁止计数器计数,计数值不变。 (3) 计数过程中,若未计到零时又重新写入新的计数值, 则按新值重新计数。 图5-34画出了包含以上3个特点的方式0时序。 CLK WR OUT GATE OUT 图5-34 方式0时序 2.方式1——程序可控单稳方式 方式1有3个特点: (1) 写入计数初值后,计数器不会立即开始计数,必 须要等到GATE=1后的下一个CLK下降沿到来才开始计数。 计数开始,OUT输出低电平;计满到0,OUT输出高电平。 从OUT端输出的单稳负脉冲,其脉冲宽度等于计数器初值 乘以CLK输入时钟脉冲周期。 (2) GATE成为计数器的触发信号,每触发一次,计数 器输出一个负脉冲。如果计数过程中未计满到0,GATE出 现负脉冲,则计数器将重新装入初值进行减1计数。 (3) 在计数过程中,若未计到0时重新写入新的计数值, 则计数器不理睬新写入计数值,仍然按原计数过程进行下 去,直到计满为0。如果没有触发脉冲出现在GATE处,则 计数器仍不理睬新写入的计数值,只有当GATE出现触发信 号,才按新写入计数值减1计数。 CLK WR GATE OUT GATE OUT 图5-35画出了含有3个特点的时序。 3.方式2——分频方式 方式2有3个特点。图5-36画出了包含如下3个特点的 时序:写入计数初值后,下一个CLK时钟脉冲到来可以 计数;计满到1,OUT输出低电平;计满到0,OUT输出 高电平。可见方式2具有装入初值n能实现n分频的功能。 GATE=1允许计数,GATE=0禁止计数。计数期间GATE 由1变为0,停止计数。计满到0,自动装入原计数初值重 新开始计数,计数过程中不接收新装入的计数初值。 CLK WR n £½4 4 3 2 1 0 (4 ) 3 n £½32 1 OUT GATE OUT 图5-36 方式2的时序 0 (3 ) 2 1 4.方式3——发生方波方式 方式3有3个特点。图5-37是包含3个特点的时序:写入 计数初值后,下一个CLK时钟脉冲到来就可以计数。计到 一半时,OUT输出低电平;计满到0,OUT输出高电平。 可见方式3能产生一定频率的方波,方波的频率由计数初 值决定。GATE=1允许计数,GATE=0禁止计数。计数期 间GATE由1变为0,停止计数。计满到0后,自动装入原初 值重新开始计数。计数过程中不接收新装入的计数初值。 下一个输出周期开始时,会接收新的初值进行计数。 T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 T11 T12 T13 T14 CLK OUT 4 3 2 1 0 (4 ) 3 2 1 0 (4 ) 3 4 2 1 0 (4 ) 3 OUT GATE OUT 3 图5-37 方式3的时序 2 1 0 (4 ) 3 5.方式4——软件触发的选通信号方式 方式4有3个特点: (1) 写入计数初值后,过一个时钟周期开始计数。计 数到0时OUT变为低电平,再过一个时钟周期,OUT又恢 复成高电平。这个负脉冲可作为选通信号使用。如果输入 新的计数值,计数器又重新计数。 (2) 当GATE=1时允许计数,GATE=0禁止计数,输 出电平保持不变。只有计数到0,才会产生选通负脉冲输 出。 (3) 计数时写入新的初值,下一个时钟周期到来,将 把此数送入执行单元,开始新的计数过程。如果写入计 数值是两个字节,则当前计数过程不受第一个字节影响。 第二个字节写入后的下一个时钟周期,计数器按新计数 值开始新的计数过程,这一过程称为软件再触发。图538画出了包含以上3条特点的时序。 T1 T2 T3 T4 T5 T6 T7 T8 4 3 2 1 0 4 3 T9 T10 2 1 T11 CLK WR n £½4 OUT WR GATE n £½4 OUT 图5-38 方式4的时序 0 T12 T13 T14 6.方式5——硬件触发选通方式 方式5的3个特点如下: (1) 写入了计数初值后,计数器并不计数,而必须有 门控信号GATE=1在下一个CLK开始计数。计满到0时, OUT输出一个宽度为一个时钟周期的负脉冲,它用于选通 脉冲。 (2) GATE的上升沿用于触发计数。在计数过程中,若 GATE端又出现上升触发,则计数器在下一个时钟周期重 新赋初值计数,直到减为0为止。这就是门控触发,也就 是指硬件触发。 (3) 在计数过程中写入新的初值,如果没有触发脉冲, 那么计数过程不受影响。以后触发将按新的初值开始计数。 如果在计数过程中写入新的计数值,并且计数结束前又受 到GATE触发,则在下一个时钟周期到来后,按新的计数初 值开始计数。含有上述3个特征的时序图如图5-39所示。 T1 T2 T3 T4 T5 T6 T7 4 3 2 1 0 4 3 2 T8 T9 1 0 T10 CLK GATE OUT GATE OUT 图5-39 方式5的时序 T11 T12 T13 T14 7.8253在PC/XT中的使用 PC/XT机中的8253连接图见图5-40。8253在该机作为定 时器使用,4个端口地址分别为40H~43H。时钟信号由8284 时钟发生器提供,频率为2.385 MHz,经过D触发器二分频后, 得到1.19 MHz的时钟信号,送至8253的三个计数器的CLK输 入端。GATE0和GATE1都接在+5 V上,因此计数器0和计数 器1总处于允许计数的状态。 D0¡«D7 IOR RD IOW WR T/ C A1 A0 OUT0 OUT1 OUT2 GATE0 GATE1 GATE2 CLK0 CLK1 CLK2 D0¡«D7 CS A1 A0 IRQ0 CP C T/C2 Q D DRQ3 DACK0 BRD £«5 V PB0 Q C CP PCLK D Q 8253 图5-40 PC/XT中的8253 RESETDRV 小结 一、8253的内部结构和引脚功能 二、 4个端口和1个控制字 三、 6种工作方式 作业 5.9 5.12