原理第7章.ppt

上传人(卖家):金钥匙文档 文档编号:433276 上传时间:2020-04-04 格式:PPT 页数:56 大小:1.67MB
下载 相关 举报
原理第7章.ppt_第1页
第1页 / 共56页
原理第7章.ppt_第2页
第2页 / 共56页
原理第7章.ppt_第3页
第3页 / 共56页
原理第7章.ppt_第4页
第4页 / 共56页
原理第7章.ppt_第5页
第5页 / 共56页
点击查看更多>>
资源描述

1、微型计算机原理 与接口技术,第七章,1,教学目的,掌握8253定时器控制器的用法 掌握8255并行接口芯片的用法 了解并行通信和串行通信的基本知识,第7章可编程接口芯片,2,3,7.1 可编程定时/计数器8253,掌握: 引线功能及计数启动方法 6种工作方式及其输出波形 8253的使用: 芯片与系统的连接 芯片的初始化编程,4,定时/计数器的用途,可以实现定时与计数两个功能,可用于 -系统时钟 -DRAM刷新定时 -定时采样 -实时控制 -脉冲的计数 。,5,如何实现定时?,软件方法:用一段程序实现延时 利用程序循环延迟指定的时间 缺点:CPU占用率?延时精度?兼容? 硬件方法:定时/计数器电

2、路 利用脉冲计数在设定的时间输出定时信号, 8253是一种硬件定时/计数器芯片,6,7.1.1 8253的功能结构,8253概述 8253芯片含有3个完全独立的16位减法计数器; 每个计数器都可以按照二进制或十进制(BCD码)进行计数; 每个计数器的最大计数频率2MHz; 每个计数器有6种工作方式,可以通过编程设定; 所有的输入、输出电平都与TTL电平兼容。,16位计数初值 寄存器,计数执行单元,输出锁存器,N,GATE门控信号,CLK计数脉冲输入信号,7,1. 8253的引线及功能,DB,通道2,通道1,通道0,A1 A0,IOW IOR 片选信号,8,引线及功能,连接系统端的主要引线: D

3、7D0 CS RD WR A1,A0 用于选择四个编址部件之一,A1 A0 选 择 0 0 计数通道0 0 1 计数通道1 1 0 计数通道2 1 1 控制寄存器,9,引线及功能,计数通道的主要引线(每通道均相同): CLKn 时钟脉冲输入,计数器的计时基准。 GATEn 门控信号输入,控制计数器的启停。 OUTn 计数器输出信号,不同工作方式下 产生不同波形。 (n = 02),10,2.8253的内部结构, 数据总线缓冲器:实现8253与CPU数据总线连接的8位双向三态缓冲器,用以传送控制、数据信息。 读/写控制逻辑:接收CPU发来的地址、控制信号,与片选信号一起对8253的读/写操作进行

4、控制。 控制字寄存器:各个计数器的控制字决定其工作方式,控制字寄存器只能写入不能读出。 计数器0,计数器1,计数器2,11,定时/计数的工作过程,1. 设置8253的工作方式 2. 设置计数初值到初值寄存器 3. 第一个CLK信号使初值寄存器的内容置入 计数寄存器 4. 以后每来一个CLK信号,计数寄存器减1 5. 减到0时,OUT端输出一特殊波形的信号 注:以上计数过程中还受到GATE信号的控制,12,3. 8253的控制字,二进制计数范围: 0000H-FFFFH (0000-65535,0代表65536) BCD码计数范围: 0000H-9999H (0000-9999,0代表10000

5、),13,7.1.2 8253的工作方式,方式0计数结束中断 方式1可重复触发的单稳态触发器 方式2频率发生器 方式3方波发生器 方式4软件触发选通 方式5硬件触发选通 注意,在8253所有的6个工作方式中,都有下列共同点: 控制字写入计数器时,OUT端进入初始状态,不同的工作方式OUT端初始状态不一定相同。 计数初值写入计数器之后,暂存在初值寄存器中,要经过一个时钟周期的上升沿和下降沿,计数初值才进入计数执行单元,开始计数。 通常在每个时钟脉冲的上升沿,采样门控信号GATE。不同的工作方式下,门控信号的作用不同。 在时钟脉冲的下降沿,计数器减1。,14,方式0计数结束中断,图7-4 方式0的

6、波形,方式0,软件启动,不自动重复计数。(GATE=1) 装入初值后输出端变低电平, 计数结束输出高电平,方式0特点 计数过程中,GATE端应保持高电平。 每写入一次初值,计数一个周期,然后停止计数。 OUT端输出是一个约(N+1)TCLK宽度的负脉冲。 计数过程中可随时修改初值重新开始计数。,15,硬件启动,不自动重复计数 写入控制字后输出端变高电平 GATE出现由低到高的跳变 计数开始输出低电平,结束后又变高,方式1,2.方式1可重复触发的单脉冲发生器,图7-5 方式1的波形,方式1特点 门控信号GATE端的跳变触发计数,可重复触发。 若下一次GATE上升沿提前到达,则OUT端负脉冲拉宽为

7、两次计数过程之和。 计数过程中写入新初值不影响本次计数。,16,3. 方式2频率发生器,方式2,软、硬件启动,自动重复计数(GATE=1) 装入初值后输出端变高电平 计数到最后一个脉冲时输出低电平,图7-6 方式2的波形,方式2特点 GATE为计数的控制信号:GATE变低计数停止,再变高时的下一个CLK下降沿,从初值开始重新计数。 每个计数周期结束时(减到1时),OUT端输出一个TCLK宽度的负脉冲。 计数过程自动重复进行。 计数过程中修改初值不影响本轮计数过程。,脉冲周期: TOUTN TCLK 脉冲频率: FOUT = FCLK / N,17,【例题7-2】 设8253的端口地址为:40H

8、43H,用计数器2作频率发生器,二进制计数,输入脉冲信号为2MHz,计数初值为800,输出脉冲信号的频率是多少? 编程初始化计数器。 控制字为:10110100B=0B4H 输出脉冲信号的频率为:FOUT=FCLK/N=2X106/800=2500Hz 初始化程序: MOV AL, 0B4H OUT 43H, AL ;控制字送入控制寄存器 MOV AX, 800 OUT 42H, AL ;计数初值低8位送入计数器2 MOV AL, AH OUT 42H, AL ;计数初值高8位送入计数器2,计数器启动。,18,4. 方式3方波发生器,图7-7 方式3的波形,软、硬件启动,自动重复计数(GATE

9、=1) 装入初值后输出端变高电平输出对称方波,方式3,方式3 特点 OUT输出方波,前半周期为高,后半周期为低。 若计数值奇数: OUT在(N1)/2计数期间高电平 在(N1)/2计数期间低电平 计数过程中修改初值不影响本半轮计数过程。 其余的与方式2 类似。,19,【例题7-3】设8253的端口地址为:FCF8HFCFBH,利用计数器1作方波发生器,给定CLK1为2MHz,要求产生频率为1KHz的方波,BCD码计数。编程初始化8253。 计数器1工作在方式3:01110111B 分频系数:NFCLK/ FOUT =2106/1000=2000 程序设计如下: MOV DX, 0FCFBH M

10、OV AL, 01110111B ; OUT DX, AL MOV DX, 0FCF9H MOV AX, 2000H ;BCD码计数初值 OUT DX, AL ;写入计数初值低字节 MOV AL, AH OUT DX, AL ;写入计数初值高字节,计数器启动,20,5. 方式4软件触发选通,图7-8 方式4的波形,方式4,软件启动,不自动重复计数(GATE=1) 写入控制字后输出端变高电平,装入初值开始计数 计数结束输出一个CLK宽度的低电平,方式4特点 计数过程中,GATE端应保持高电平。 每写入一次初值,计数一个周期,然后停止计数。 每个计数周期结束时(减到0时),OUT端输出一个TCLK

11、宽度的负脉冲。 计数过程中修改初值不影响本轮计数过程。,21,6. 方式5硬件触发选通,硬件启动,不自动重复计数 波形与方式4相同,方式5,方式5特点 写入初值时,GATE端应保持低电平。 GATE每出现一次正脉冲,计数一个周期,然后停止计数。 每个计数周期结束时(减到0时),OUT端输出一个TCLK宽度的负脉冲。 计数过程中修改初值不影响本轮计数过程。,图7-9方式5的波形,22,7.1.3 8253的应用 8253的初始化编程,主要设置两方面的内容,一是写入控制字,二是写入计数初值。 控制字写入8253的控制寄存器。控制字中带有计数器的识别码,3个控制字可以连续写入控制寄存器。 写入计数初

12、值时注意两个问题:一是3个计数初值应写入相应的计数器中,不可混乱,二是要符合控制字的要求。8253计数器的预设值是0000H。若控制字规定计数初值只写低8位,高8位则自动置0;若控制字规定只写高8位,则低8位自动置0。如果控制字设定计数初值的高、低字节都要写入,先写低8位,后写高8位。 读取8253计数器中的计数值。由于计数值是16位的,要分两次读取。因为读取的是瞬时值,所以在读取计数值之前,要用锁存命令将计数值锁存在读出锁存器中,然后分两次读出,先读低字节,后读高字节。锁存计数值读取完成之后,自动解锁。,23,设8253端口地址为F8HFBH,如要读计数器1的16位计数器,编程如下: MOV

13、 AL, 40H; OUT 0FBH, AL ;写入控制字,锁存计数值 IN AL, 0F9H ;取计数值低八位 MOV CL, AL IN AL, 0F9H ;取计数值高八位 MOV CH, AL,24,【例7-4】 8253与计算机系统的连接如图7-10所示,三个计数器使用情况如下: CNT0:对外部事件计数,计满100次向CPU发出中断请求。 CNT1:产生1kHz方波。 CNT2:标准定时,定时时间为1s。,图7-10 8253定时器/计数器与CPU连接,25,根据图7-10可知8253的端口地址为01FC - 01FFH。根据系统要求,计数器0应设置为方式0,完成计数功能。计数器1应

14、设置为方式3,CLK1输入的时钟脉冲频率为2MHz,输出频率为1kHz的方波,周期为1ms;因此,计数器1的计数初值为2000。计数器2设置为方式0,完成定时功能,每秒利用OUT2向CPU发出一次中断请求,其输入时钟频率为1kHz,计数初值应为1000。,由分析可知: 计数器0的控制字:00010000B(10H),时间常数为:100 计数器1的控制字:01110110B(76H),时间常数为:2000 计数器2的控制字:10100001B(A1H),时间常数为:1000H,26,以下是完成上述功能初始化程序: START:MOV DX, 01FFH MOV AL, 10H OUT DX, A

15、L ;计数器0工作在方式0 MOV DX, 01FCH MOV AL, 100 OUT DX, AL ;计数器0置初值 MOV DX, 01FFH MOV AL, 76H OUT DX, AL ;计数器1工作在方式3 MOV DX, 01FDH MOV AX, 2000 OUT DX, AL MOV AL, AH OUT DX, AL ;计数器1置初值 MOV DX, 01FFH MOV AL, 0A1H OUT DX, AL ;计数器2工作在方式0,BCD码计数 MOV DX, 01FEH MOV AL, 10H OUT DX, AL ;计数器2置初值,1000H,27,【例题】如图,采用8

16、253作定时/计数器,其接口地址为0120H0123H。 要求计数器0每10mS输出一个CLK脉冲宽的负脉冲;用计数器1产生10KHz的连续方波信号(用BCD码方式计数),计数器2在定时5mS后产生输出高电平。输入8253的时钟频率为2MHz。编写初始化程序。,CLK0,GATE0,OUT1,D0D7,WR,RD,A1,A0,CS,DB,IOW,IOR,A1,A0,译码器,8253,CLK2,GATE1,GATE2,+5V,CLK1,2MHz,OUT0,OUT2,28,计算计数初值: CNT0:10X10-3s/0.5X10-6s=20000 CNT1:2MHz/10kHz=200 CNT2:

17、 5X10-3s/0.5 X10-6s=10000 确定控制字: CNT0:方式2,16位计数值, 控制字为:00110100B(34H),初值:20000 CNT1:方式3,高8位计数值, 控制字为:01100111B(67H),初值:02H CNT2:方式0, 16位计数值, 控制字为:10110000B(0B0H),初值:10000,29,MOV DX,0123H ;CNT0 MOV AL,34H OUT DX,AL MOV DX,0120H MOV AX,20000 OUT DX,AL MOV AL,AH OUT DX,AL MOV DX,0123H ;CNT1 MOV AL,67H

18、OUT DX,AL MOV DX,0121H MOV AL,02H OUT DX,AL MOV DX,0123H ;CNT2 MOV AL,0B0H OUT DX,AL MOV DX,0120H MOV AX,10000 OUT DX,AL MOV AL,AH OUT DX,AL,30,【例题7-6】 IBM PC/XT中定时器/计数器芯片8253,其计数器0(CNT0)工作在方式3,GATE0固定为高电平,OUT0作为中断请求信号接至8259A中断控制器的IRQ0,作为定时中断,用于时钟的时间基准。,计数器1工作在方式2,GATE1固定为高电平,OUT1的输出作为定时(约15us)信号,用于

19、刷新动态RAM,在2ms内可以有132次刷新(128次是系统的最低要求)。 计数器2工作在方式3,输出1KHZ的方波,作为扬声器的音频信号源,GATE2由8255的PB0控制,OUT2与8255的PB1相与,这样利用8255的PB0、PB1同时为高电平的时间来控制喇叭发长音还是发短音。 三个计数器的输入时钟频率一样,为F=1.19MHZ,31,8253的端口地址为040H043H,8255的端口地址为60H63H,ROMBIOS对8253的编程如下: 计数器0用于定时中断: MOV AL, 00110110B ; OUT 43H, AL MOV AL, 0 ;计数初值为0000,即为 OUT

20、40H, AL OUT 40H, AL 计数器1用于动态RAM的刷新: MOV AL, 01010100B OUT 43H, AL MOV AL, 18 ;计数初值为18,TCLK=NxTCLK,N=TCLKx FCLK=15X10-6X1.19X10106=17.5518 OUT 41H, AL 计数器2用于产生1KHZ的方波送至扬声器发声,声响子程序为BEEP,入口地址为FFA08H: BEEP PROC NEAR MOV AL, 10110110B OUT 43H, AL MOV AX, 1331 ;计数初值为1331 OUT 42H, AL MOV AL, AH OUT 42H, AL

21、 IN AL, 61H ;读取8255B端口 MOV AH, AL ;存在AH OR AL, 03H OUT 61H, AL ;输出至8255的B端口,使扬声器发声 SUB CX, CX ;设置延时参数 G7: LOOP G7 MOV BH, 0 DEC BX ;BL的值为控制长短声,BL6(长),BL1(短) JNZ G7 MOV AL, AH ;恢复8255B端口值,停止发声 OUT 61H, AL RET BEEP ENDP,32,7.2 可编程并行I/O接口芯片8255A,并行I/O接口是实现并行通信的接口。并行通信就是把一个字符的各位同时传输,传输速度快,信息率高。Intel 825

22、5A是一个通用的可编程并行I/O接口芯片,它有三个并行I/O口,可通过编程设置多种工作方式,价格低廉,使用方便,得到广泛的应用。,33,8255是一种通用的可编程并行接口芯片。它的内部结构框图如图7-12所示,包含数据总线缓冲器,端口A、B、C,A组和B组控制部件以及读/写控制逻辑四个部分。,图7-12 8255A内部结构框图,7.2.1 8255的功能结构 18255的内部结构,34,(1)数据总线缓冲器 这是一个双向三态8位数据缓冲器,是8255与系统数据总线的接口。负责输入输出数据、向8255写入控制字、从8255读出外设状态信息等。 (2)端口A、B、C 三个8位端口:端口A,端口B和

23、端口C,都可以通过编程设定为输入端口或输出端口。 端口A和端口B都有一个8位的输入锁存器和一个8位的输出锁存器,输入输出都具有数据锁存能力。 端口C有一个8位的输入缓冲器和一个8位的输出锁存器,端口C作为输入口时不能锁存数据;作为输出口时具有数据锁存能力。端口C可以按位操作。 (3)A组控制和B组控制 这两组控制逻辑电路接收来自CPU的控制字,控制两组端口的工作方式及读/写操作。A组控制端口A和端口C的高4位,B组控制端口B和端口C的低4位。 (4)读/写控制逻辑 读/写控制逻辑接收片选信号CS、地址信号A1、A0和控制信号RESET、WR和RD,控制8255的数据传送过程。,35,图7-13

24、 8255A的引脚图,2外部引脚 8255采用40脚双列直插封装,单一+5V电源。它的引脚功能如图7-13所示。,A1A0 0 0 端口A 0 1 端口B 1 0 端口C 1 1 控制端口 PA7PA0,端口A的8条输入输出线。 PB7PB0,端口B的8条输入输出线。 PC7PC0,端口C的8条输入输出线。,RESET:复位信号,高电平有效。当RESET信号有效时,所有内部寄存器都被清零,同时3个数据端口被自动设置为输入口。 D7D0:8位双向数据线。 WR:写信号,低电平有效。 RD:读信号,低电平有效。 CS:片选信号,低电平有效。 A1、A0:端口地址信号。,36,7.2.2 8255的

25、工作方式 8255有方式0、方式1和方式2三种工作方式,由方式控制字选择。 1方式0 方式0也叫做基本输入/输出方式。 3个端口都可以工作在方式0,都可以作为一个8位的输入口或输出口,C口还可以作为两个4位的输入输出口。这样,在实际的应用中,8255可以按照4个端口使用,可构成16种不同的输入/输出组合方式。 在方式0下,C口可以按位进行置位或复位。 方式0是一种简单的输入/输出方式,没有规定固定的应答联络信号,最适合无条件数据输入输出方式。8255工作在方式0下时,外设应该是简单外设。 方式0也可以用于查询工作方式,这时常将C口的高4位(或低4位)定义为输入口,输入外设状态;C口的低4位(或

26、高4位)定义为输出,输出控制信号。A口和B口作为数据输入输出口和外设相连。,37,2方式1-选通式输入输出方式,在这种工作方式下,端口A和端口B为数据传输口,可通过工作方式控制字设定为数据输入或数据输出。端口C某些位作为控制位,配合A口和B口进行数据的输入和输出。方式1通常用于查询方式或中断方式传送数据。 C口某些位作为控制位时,根据输入和输出工作状态不同,各位所代表的意义不同,现分为输入和输出两种情况进行介绍。,38,(1)方式1输入 当端口A和端口B工作在方式1下作为数据输入口时,选通控制信号的定义如图所示。 STBA、STBB:选通输入信号,低电平有效。它是由外设送给8255的输入信号,

27、8255利用它接收外设送来的一个8位数据。 IBFA、IBFB:“输入缓冲器满”信号,高电平有效,是8255送给外设的信号。当IBF为高电平时,表示外设的数据已进入8255A的输入缓冲器,但还未被CPU取走,8255不能接受新数据;当IBF为低电平时,说明CPU已取走数据,输入缓冲器为空,才允许外设送新数据。IBF信号是在STB有效期间变为高电平,在读信号IOR的上升沿变为低电平。 INTRA、INTRB:中断请求信号,高电平有效。8255用它向CPU发出中断请求。当STB信号为1、IBF为1且INTE(中断允许)也为1时,INTR信号被置成高电平。也就是说,当选通信号结束,输入缓冲器满,并且

28、端口处于中断允许状态(INTE=1)时,8255的INTR端被置为高电平,向CPU发出中断请求信号。当CPU响应中断取走数据后,读信号RD的下降沿将INTR置为低电平。,39,INTEA:端口A中断允许信号。INTEA没有外部引出端,由PC4的置位/复位来控制,PC4=1时,端口A处于中断允许状态;PC4=0时,端口A处于禁止中断状态。 INTEB:端口B中断允许信号。INTEB没有外部引出端,由PC2的置位/复位来控制,PC2=1时,端口B处于中断允许状态;PC2=0时,端口B处于中断禁止状态。 以端口A为例,在允许中断情况下,方式1的输入数据的工作过程为: CPU通过执行OUT指令写“方式

29、选择控制字”到8255,设定端口A为“方式1输入”,然后设置PC4=1,于是INTEA=1,允许端口A处于中断允许状态。 当外设的选通信号STBA有效时,外设的数据装入8255的端口A的输入数据缓冲器,IBFA =1。 这时INTEA=1、IBFA=1、STBA =1,所以INTRA由0变1,端口A向CPU发出中断请求信号INTRA。 CPU响应中断,进入中断服务程序,通过执行IN指令从A口输入数据,并在RD的下降沿使INTRA=0,撤销中断请求,由RD的上升沿使IBFA=0,此时8255的A口又可以接收外设送来的新数据。,40,图7-14 方式1输入时选通控制信号定义,41,(2)方式1输出

30、,当端口A和B工作于方式1输出时,联络信号定义如图7-15所示。 OBFA、OBFB:“输出缓冲器满”信号,低电平有效。表示8255的输出口有数据,通知外设取数据。它由WR信号的上升沿置成低电平,而由ACK信号的低电平使其恢复为高电平。 ACKA、ACKB:外设响应信号,低电平有效。当其有效时,表明外设已经把数据取走。它是OBF信号的应答。 INTRA、INTRB:中断请求信号,高电平有效。INTR是当ACK、OBF、INTE都为“1”时才被置成高电平,由IOW的上升沿使其变为低电平。 INTEA:端口A中断允许信号,由PC6的置位/复位来控制,当PC6=1时,端口A处于中断允许状态;当PC6

31、=0时,端口A处于中断禁止状态。 INTEB:端口B中断允许信号,由PC2的置位/复位来控制,当PC2=1时,端口B处于中断允许状态;当PC2=0时,端口B处于中断禁止状态。,42,以端口A为例,在允许中断情况下方式1输出的工作过程为: 设定端口A的工作方式为“方式1输出”,然后使PC6=1,于是INTEA=1,端口A处于中断允许状态。由于此时CPU还未向端口A写入数据,因此OBFA=1且外设响应信号ACKA=1。在此种条件下之下,INTRA输出端由0变1,端口A向CPU发出中断请求信号。 CPU响应端口A的中断请求,通过执行OUT指令将数据写入端口A。在写信号的上升沿作用下,INTRA信号变

32、成低电平,同时OBFA=0,表明CPU已经把数据送至指定端口,外设可以取走数据。外设取走数据后,发出应答信号ACKA=0。 在ACKA有效信号结束后,一方面使OBFA=1,又一方面使INTRA输出端由0变1,端口A再次向CPU发出中断请求,要求CPU输出新的数据,从而又开始一次新的数据输出过程。,43,图7-15 方式1输出时选通控制信号定义,44,3方式2 方式2也叫做双向传输方式,三个端口中只有端口A才能工作于方式2。当端口A工作于方式2时,联络信号的定义如图所示。在方式2下,外设通过8位数据线可以向CPU发送数据,也可以接收CPU的数据。当端口A工作在方式2时,端口C的PC7PC3用于提

33、供相应的联络信号,配合端口A工作。此时端口B可以工作于方式0或方式1,如果端口B工作于方式0,端口C的PC2PC0可用作基本的输入/输出;如果端口B工作方式1,端口C的PC2PC0用作端口B的联络信号。 与方式2输出有关的联络信号 OBFA:端口A输出缓冲器满信号,低电平有效,表示CPU已经将一个数据写入8255的端口A,通知外设取走数据。 ACKA:外设对OBFA信号的应答,低电平有效,表示外设已经收到端口A的数据。 INTE1:输出中断允许信号。当INTE1为1时,允许8255通过INTRA向CPU发出中断请求信号;当INTE1为0时,则屏蔽了该中断请求信号。INTE1的状态由PC6通过位

34、操作控制字设定。 与方式2输入有关的联络信号 STBA:端口A选通输入信号,低电平有效。当它有效时,端口A接收外设送来的一个8位数据。 IBFA:端口A输入缓冲器满信号,高电平有效。当IBFA=1时,表明外设的数据已进入输入缓冲器,在CPU未取走数据前,此信号始终为高电平,阻止输入设备送来新的数据;当IBFA=0时,外设可以将一个新的数据送入端口A。 INTE2:输入中断允许信号。当INTE2为1时,若有输入中断请求发生,允许8255通过INTRA向CPU发出中断请求信号;当INTE2为0时,则屏蔽了该中断请求信号。INTE2的状态由PC4通过位操作控制字设定。,45,方式2是一种双向传输工作

35、方式。如果一个并行外设既可以作为输入设备,又可以作为输出设备,并且输入/输出动作不会同时进行,这个外设和8255端口A相连,A口工作在方式2很合适。如:软盘系统就是这样一种外设,主机可以往软盘控制器输出数据,也可以从软盘控制器输入数据,但数据输出与输入过程不会同时进行。因此,可以把软盘控制器的数据线与8255A的PA7PA0相连,把8255A的PC7PC3与软盘控制器的控制线和状态线相连。,46,7.2.3 8255的控制字 1方式选择控制字 方式选择控制字设定8255的工作方式。方式选择控制字由8位二进制数构成,每位的定义如图7-17所示。D7位规定为1,D6D3用于控制A组的工作方式和输入

36、/输出方向,而低3位D2D0用于控制B组工作方式和输入/输出方向。,47,【例题7-7】 设8255的端口地址为FBC0FBC3H,A口设置方式0输入,B口方式0输出,C口高4位方式0输出,C口低4位方式0输入。 控制字为:10010001B 8255初始化程序为: MOV DX, 0FBC3H MOV AL, 91H OUT DX, AL,48,2. 位操作控制字 位操作控制字端口C的指定位进行置位/复位操作。位操作控制字定义如图7-18所示。,图7-18 位操作控制字定义,49,【例题7-8】设8255的端口地址为FBC0FBC3H,A口设置方式0输出,B口方式0输入,C口高4位方式0输出

37、,C口低4位方式0输入,利用C口PC5产生连续的方波信号,信号的高、低电平宽度可调用延时子程序DELAY实现。 控制字为:10000011B 8255初始化程序为: MOV DX, 0FBC3H MOV AL, 83H OUT DX, AL FB : MOV AL, 0BH OUT DX, AL ;PC5置位 CALL DELAY ;维持高电平 MOV AL, 0AH OUT DX, AL ;PC5=0 CALL DELAY ;维持低电平 JMP FB ;连续输出方波信号,50,3状态字,8255的状态字为查询方式提供了状态标志位,如输入缓冲器满IBF信号,输出缓冲器满OBF信号等。当端口A工

38、作于方式2时,若有中断请求发生,CPU还要通过查询状态字来确定具体的中断源,如IBFA位为1表示端口A有输入中断请求;OBFA位为1表示端口A有输出中断请求。当8255的端口A、端口B工作在方式1或端口A工作在方式2下,通过读取端口C的内容,可以检查端口A和端口B的状态。 当8255的端口A和端口B均工作在方式1输入时,从端口C读入8位数据,每位的含义如图7-20(a)所示;当8255的端口A和端口B均工作在方式1输出时,从端口C读入8位数据,每位的含义如图7-20(b)所示;当8255的端口A工作在方式2时,从端口C读入8位数据,每位的含义如图7-19(c)所示。,51,(a)A、B口为方式

39、1输入时的状态字,(b)A、B口为方式1输出时的状态字,(c)A口为方式2时的状态字,52,52,【例7.9】设8255A端口A工作在方式0下,通过A口输出数据控制8个指示灯轮流点亮。电路连接如图7.6所示,电路连接图(地址为3A0H3A3H),53,MOV DX,3A3H ;控制口地址送DX MOV AL,80H ;写工作方式控制字 OUT DX,AL MOV DX,3A0H ;A端口地址送DX MOV AL,0FEH ;低电平灯亮 AA1 OUT DX,AL ;输出数据 CALL DELAY ;延时 ROL AL,1 ;轮流点亮(循环左移) JMP AA1 执行此段程序时要注意延时子程序的延时时间,若延时时间不够,指示灯会全亮或全灭。,54,【例7.10】假定8255A的端口A、B都工作在方式0下,端口A作为输入口,采集一组开关的状态,端口B作为输出口,把开关的状态通过指示灯显示出来。电路连接如图7.7所示。,55,(地址为3A0H3A3H) MOV DX,3A3H ;控制口地址送DX MOV AL,90H ;写工作方式控制字 OUT DX,AL MOV DX,3A0H ;A端口地址送DX IN AL,DX ;采集开关值 MOV DX,3A1H ;B端口地址送DX OUT DX,AL;,56,作业 P199 1-10题,

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

当前位置:首页 > 大学
版权提示 | 免责声明

1,本文(原理第7章.ppt)为本站会员(金钥匙文档)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|