收藏 分享(赏)

第8章 输入输出接口技术(续).ppt

上传人:kpmy5893 文档编号:10094086 上传时间:2019-10-09 格式:PPT 页数:108 大小:1.02MB
下载 相关 举报
第8章 输入输出接口技术(续).ppt_第1页
第1页 / 共108页
第8章 输入输出接口技术(续).ppt_第2页
第2页 / 共108页
第8章 输入输出接口技术(续).ppt_第3页
第3页 / 共108页
第8章 输入输出接口技术(续).ppt_第4页
第4页 / 共108页
第8章 输入输出接口技术(续).ppt_第5页
第5页 / 共108页
点击查看更多>>
资源描述

1、1,主要内容:,掌握二种可编程接口芯片的应用(8253、8255),2,8.1 接口电路概述,定义: CPU与外设之间信息交换的通道 作用: 信息缓冲、信息变换、电平转换、联络控制 分类:8086系统中最常用的数字接口电路芯片: 定时/计数器8253(8254)、并行接口8255(8155/8755)、串行接口8250(8251),3,8.2 可编程定时/计数器8253,掌握: 引线功能及计数启动方法 6种工作方式及其输出波形 8253的使用: 芯片与系统的连接 芯片的初始化编程,4,定时/计数器的用途,可以实现定时与计数两个功能,可用于 系统时钟 DRAM刷新定时 定时采样 实时控制 脉冲的

2、计数. . . . . .,定时,计数,5,如何实现定时?,软件方法:用一段程序实现延时 利用程序循环延迟指定的时间 缺点:CPU占用率?延时精度?兼容? 硬件方法:定时/计数器电路 利用脉冲计数在设定的时间输出定时信号, 8253是一种硬件定时/计数器芯片,6,一、外部引线及内部结构,8253概貌 3个16位的定时/计数器(通道) 24引脚双列直插式 最高计数频率2MHz TTL电平兼容 单电源+5V供电,7,外部引线及内部结构,DB,D7-D0,8253,A1,A0,WR,RD,CS,通道2,通道1,通道0,CLK0 GATE0 OUT0,CLK1 GATE1 OUT1,CLK2 GATE

3、2 OUT2,A1 A0,IOW IOR 片选信号,8,外部引线及内部结构,连接微机系统端的主要引线: D7D0 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,8253的内部结构,16位减1,16位减1,16位减1,8位,定时与计数有何区别?,11,编程结构

4、程序员的观点,计数器(3个)包括控制寄存器(1个) 存放控制命令字(8位)(只写) 占用4个地址 3个计数器,1个控制寄存器,16位初值寄存器(只写) 16位计数寄存器(减1计数器),16位锁存寄存器(只读)(当前计数初值),12,定时/计数的工作过程,1. 设置8253的工作方式(6种)2. 设置计数初值到初值寄存器3. 设置GATE门控信号,把门打开,使CLK可通过之送入计数寄存器计数4. 第一个CLK信号使初值寄存器的内容置入计数寄存器5. 以后每来一个CLK信号,计数寄存器减1 6. 减到0时,OUT端输出一特殊波形的信号,注:不同的工作方式,GATE门控信号的开关门的信号可能不同。,

5、13,二、控制字,用于确定各计数器的工作方式。 8253必须先初始化才能正常工作。 每个计数器都必须初始化一次。 CPU通过OUT指令把控制字写入控制寄存器,SC1 SC0 RW1 RW0 M2 M1 M0 BCD,1-计数值为BCD码格式 0-计数值为二进制格式,M2 M1 M0 方式选择0 0 0 方式00 0 1 方式1 1 0 方式2 1 1 方式31 0 0 方式41 0 1 方式5,0 0-对计数器进行锁存 0 1-只读/写低8位字节 1 0-只读/写高8位字节 1 1-先读/写低8位字节,再读/写高8位字节.,0 0-选计数器0 0 1-选计数器1 1 0-选计数器2 1 1-无

6、意义,OUT DX,AL OUT n,AL,?,14,三、计数启动方式,软件启动过程硬件启动过程,GATE端保持为高电平 写入计数初值后的第2个 CLK脉冲的下降沿开始计数,GATE端有一个上升沿 对应CLK脉冲的下降沿开始计数,程序指令启动软件启动 外部电路信号启动硬件启动,15,四、工作方式,方式0计数结束中断 方式1可重复触发的单稳态触发器 方式2频率发生器 方式3方波发生器 方式4软件触发选通 方式5硬件触发选通,OUT输出,Gate门控,CLK输入,Counter,控制字 CW 计数初值 n,16,8253编程:6种工作模式,方式0 软件触发,到0不自动重复(计数输出) 方式4 软件

7、触发, 选通信号(负脉冲) 方式1 硬(GATE)触发单稳,不自动重复启动 方式5 硬件触发, 选通信号(负脉冲) 方式2、3 软硬触发,自动重装(分频/方波),Gate控制,CLK输入,控制字 CW 计数初值,Counter,OUT输出,17,方式0,继续 计数,控制字CW,(1)计数回零时,OUT才变为高电平并保持,直至写入新的控制字或初值。但计数器在到零后仍继续计数;GATE=1计数/=0暂停)。 (2)计数过程中可改变计数值:8位计数:写入新的计数值后,计数器按新值开始计数;16位计数,在写入第一个字节后,计数器停止计数,写入第二个字节后,按新的初值计数。,计数器0 低8位方式,计数结

8、束时输出信号(可申请中断),18,8253方式0举例,减计数未完写入新的初值,Gate控制,19,例: 使1号定时器,工作在方式0,计数初值0FF5h,二进制计数。试写出8253初始化程序段。8253端口地址:40H,41H,42H,43HMOV AL,01000000B ;0号定时器,方式0OUT 43H,ALMOV AX,0FF5H OUT 41H,AL ; 1号数据口 MOV AL,AHOUT 41H,AL,20,可编程单脉冲(可重复触发的单稳态触发器)-硬件上升边沿启动,不自动重复。-可软触发,负脉冲输出,方式1,下一脉冲下降沿,延时了3个脉冲时间,21,8253方式1举例,重复触发脉

9、冲,重置初值(Gate有效),22,频率发生器(n分频器)-可软件设置, 软硬触发,负脉冲输出,方式2,负脉冲输出,3T,3T,23,8253方式2举例,重触发,重置初值,24,方波发生器 (软硬触发)n/2:类似于方式2,唯一不同的是,当计数到初值的一半时,输出变为低,至计数到零,输出又变高,并重新开始计数。自动重装,方式3,每个脉冲计数-2,到0自动重装,25,8253方式3举例,初值=奇数,(n+1)/2高电平 (n-1)/2低电平,Gate=0暂停,26,例: 使2号定时器,工作在方式3,计数初值N=1000,二进制计数.试写出8253初始化程序段.8253端口地址:40H,41H,4

10、2H,43HMOV AL,10000110B ;2号定时器,方式3OUT 43H,ALMOV AX,1000 OUT 40H,AL ; 0号数据口 MOV AL,AHOUT 40H,AL,27,软件触发的选通信号发生器 当写入控制字后,输出为高。写入计数值后立即开始计数(相当于软件启动),当计数到零后,输出变低,经过一个时钟脉冲后,又变为高电平(负脉冲),计数器停止计数。(只计数一次)。GATE=1时,允许计数;计数过程中改变计数初值,则按新计数值重新开始计数,方式4,28,8253方式4举例,重置初值,Gate控制,29,硬件触发的选通信号发生器 写入控制字后,输出为高。写入计数初值后并不立

11、即开始计数,而是由GATE信号的脉冲上升沿触发启动。当计数到零后时,输出一个CLK脉冲宽度的负脉冲,输出变高,停止计数。直至下次GATE脉冲的触发才能计数。,方式5,30,8253方式5举例,Gate控制,重置初值,触发,31,各种工作方式特点,方式0(计数结束中断) 计数过程中,GATE端应保持高电平。 每写入一次初值计数一个周期,然后停止计数。 OUT端输出是一个约(N+1)TCLK宽度的负脉冲。 计数过程中可随时修改初值重新开始计数。 方式1(单稳态触发器) 门控信号GATE端的跳变触发计数,可重复触发。 若下一次GATE上升沿提前到达,则OUT端负脉冲拉宽为两次计数过程之和。 计数过程

12、中写入新初值不影响本次计数。,32,各种工作方式特点,方式2(频率发生器)(周期为CLK的N倍) GATE为计数的控制信号:GATE变低计数停止,再变高时的下一个CLK下降沿,从初值开始重新计数。 每个计数周期结束时(减到1时),OUT端输出一个TCLK宽度的负脉冲。 计数过程自动重复进行。 计数过程中修改初值不影响本轮计数过程。 方式3(方波发生器) OUT输出方波,前半周期为高,后半周期为低。 计数过程中修改初值不影响本半轮计数过程。 其余的与方式2 类似。,33,各种工作方式特点,方式4(软件触发选通) 计数过程中,GATE端应保持高电平。 每写入一次初值,计数一个周期,然后停止计数。

13、每个计数周期结束时(减到0时),OUT端输出一个TCLK宽度的负脉冲。 计数过程中修改初值不影响本轮计数过程。 方式5(硬件触发选通) 写入初值时,GATE端应保持低电平。 GATE每出现一次正脉冲,计数一个周期,然后停止计数。 每个计数周期结束时(减到0时),OUT端输出一个TCLK宽度的负脉冲。 计数过程中修改初值不影响本轮计数过程。,34,五、8253的应用,与系统的连接 设置工作方式 置计数初值,编程,35,与系统的连接示意图,CLK1,GATE1,OUT1,D0D7,WR,RD,A1,A0,CS,DB,IOW,IOR,A1,A0,译码器,高位地址 A15-A2,8253,3组,825

14、3占用4个接口地址:计数器0计数器1计数器2控制寄存器,(决定8253的基地址),CLK2,GATE2,OUT2,CLK0,GATE0,OUT0,低位地址 A1-A0,线选法 全译码 部分译码,D0D7,36,初始化程序流程,写控制字,写计数值低8位,写计数值高8位,*,非必须,写入顺序: 可按计数器分别写入控制字和初值。 也可先写所有计数器控制字,再写入它们的初值,37,8253应用举例,采用8253作定时/计数器,其接口地址为0120H0123H(计数器0、1、2及控制寄存器) 输入8253的时钟频率为2MHz -T=1/f=0.5us 计数器0: 每10ms输出1个CLK脉冲宽的负脉冲-

15、方式2计数器1: 产生10KHz的连续方波信号 -方式3 计数器2: 启动计数5ms后OUT输出高电平 -方式0 画线路连接图,并编写初始化程序。,38,8253应用举例(续),确定计数初值CNT0 (口地址0120H) :10ms/0.5us =20000CNT1 (口地址0121H) : 2MHz/10KHz = 200CNT2 (口地址0122H) : 5ms/0.5us =10000 确定控制字(口地址0123H) CNT0:方式2,16位计数值 00 11 010 0 B = 34 HCNT1:方式3,低 8位计数值 01 01 011 0 B = 56 HCNT2:方式0, 16位

16、计数值 10 11 000 0 B = B0 H,SC1 SC0 RW1 RW0 M2 M1 M0 BCD,39,8253应用举例(续),CLK0,GATE0,OUT1,D0D7,WR,RD,A1,A0,CS,DB,IOW,IOR,A1,A0,译码器,8253,CLK2,GATE1,GATE2,+5V,CLK1,2MHz,OUT0,OUT2,线路连接图:,软件启动,40,8253应用举例 初始化程序,MOV DX, 0123H MOV AL, 34H OUT DX, ALMOV DX, 0120H MOV AX, 20000 OUT DX, AL MOV AL, AH OUT DX, AL,C

17、NT1: CNT2:,请同学们写出其它程序!,CNT0:,41,*如何读出当前计数值?,第1种方法在计数过程中读计数值 先锁存当前计数值,再用两条输入IN指令将16位计数值读出。(飞读,不影响正常计数) 第2种方法先停止计数器再读 用GATE信号使计数器停止,再规定RL1和RL0的读写格式(低、高8位顺序),然后用IN指令读出。,为什么?,设当前值为FF 00 H,则计数减1后变为FE FF H。 但若不锁存或停止,则先读低8位后读高8位,读出的值为FE 00 H,这是错误的数字。,-1,42,8253小结,包含3个16位计数器通道 4个编址部件:CNT0/1/2和控制寄存器 每个计数器通道工

18、作前必须初始化: - 控制字CW和计数初值n 6种工作方式- 每种工作方式:启动方式、输出波形、是否可重复计数等各不相同,43,8.3 并行接口8255,特点: 含3个独立的8位并行输入/输出端口,各端口均具有数据的控制和锁存/缓冲能力 可通过编程设置各端口的工作方式和数据传送方向(入/出/双向)。,44,并行接口与外设连接示意图,并行接口,D0-7,A0-15,IOR,IOW,INTR,READY,RESET,CPU,RD,WR,D0-7,RESET,READY,INT,STB,IBF,OBF,ACK,D0-7,D0-7,45,一、引线,共40个引脚。它为双列直插式封装。除电源和地线外,其它

19、外部引脚信号可分为两组:一组是面向CPU的信号;另一组是面向外设的信号。,46,引线(续),连接CPU系统端的主要引线: D0D7 CS RD WR A0,A1 RESET复位信号, 接系统总线的RESET,A1 A0 选择 0 0 端口A 0 1 端口B 1 0 端口C 1 1 控制寄存器,47,引线(续),连接外设端的引脚: PA0PA7 PB0PB7 PC0PC7,分别对应A、B、C三个8位输入/输出端口,三个端口可通过编程分别指定为输入或输出口。其中,C口即可用作独立的输入/输出口,也可用作A、B口的握手联络信号(控制信号输出或状态信号输入)。,48,8255A的读/写操作控制,49,

20、二、内部结构,A组B组,端口PA 端口PC的高4位,端口PB 端口PC的低4位,8255内部分为A、B两组分别进行控制管理。,PA口和PB口的输入/输出都具有数据锁存能力; 但 PC口输出有锁存能力, 而输入没有锁存能力(仅缓冲能力)。,50,8255A的内部结构,51,8255与系统的连接示意图,D0D7,WR,RD,A1,A0,CS,DB,IOW,IOR,A1,A0,译码器,8255,PA口,PB口,PC口,D0D7,外 设,A2A15,系统总线,52,8255内部结构与外部接线图,片内译码电路A0A1=,数据端口A、B、C 每个端口8位,通过编程设定其为 输入口或输出口和外设传送信息 0

21、0 A口;01 B口; 10 C口;11 控制口,53,三、8255工作方式,基本I/O方式(方式0) (PA、PB、PC)-不需握手联络线的简单输入/输出单向方式 选通I/O方式(方式1) (PA、PB)- 需握手联络线的复杂输入/输出单向方式 双向方式(方式2) (仅PA)- 需握手联络线的复杂输入/输出双向方式,某端口工作于哪一种方式,可通过软件编程来指定。即向8255写入方式控制字来决定其工作方式,见下页。,I/O 接口,输入 设备,I/O 接口,输出 设备,I/O 接口,输入 设备,I/O 接口,输出 设备,I/O 接口,存储 设备,54,3种工作方式适合场合,方式0:基本输入输出方

22、式 适用于与简单外设传送数据(如开关/发光二极管等)和查询方式的接口电路(一般PA或PB数据口,而PC做成状态口 ),PA或PB或PCI/O接口,输入 设备,PA或PB或PCI/O接口,输出 设备,I/O接口,输入 设备,8,4,4,1,1,PA或PB,PC,I/O接口,输出 设备,8,4,4,1,1,PA或PB,PC,8,8,55,方式1:选通输入输出方式适用于与单向传送数据的外设(如键盘/打印机等)适用于查询和中断方式的接口电路方式2:双向选通传送方式适用于与双向传送数据的外设(如硬盘/软盘/光盘等)适用于查询和中断方式的接口电路,PA或PBI/O接口,输入 设备,PA或PBI/O接口,输

23、出 设备,PAI/O接口,存储 设备,PC,PC,PC,INT,INT,INT,56,方式控制字及位控字,方式控制字: 可以利用软件编程确定8255的3个端口工作于何种方式下;位控字: 8255的PC端口可以按位操作。当其工作于方式0下且作为输出口时,对于那些作为输出的位需要设置初始状态(1/0)。,57,方式控制字(方式字)-确定3个端口的工作方式,A组,B组,端口PA (基本/选通/双向) 端口PC的高4位(基本/联络/联络),端口PB (基本/选通) 端口PC的低4位(基本/联络),A组,B组,1,1,58,例:设A端口工作于方式0,输出, B端口工作于方式0,输入。,方式选择控制字:1

24、 0 0 0 1/0 0 1 1/0 = 82H,59,位控字 确定C口某1位的输出值(A、B方式0时) 或用于设置INTE位 (A、B方式1,2时),1=置1(置位) 0=置0(复位),端口C置1/0控制字,0 0 0 PC0 0 0 1 PC1 0 1 0 PC2 0 1 1 PC3 1 0 0 PC4 1 0 1 PC5 1 1 0 PC6 1 1 1 PC7,特征标志位,60,例:设8255A的控制口地址为00EEH,要求对端口C的PC7置1,则控制字00001111B=0FH,要求对端口C的 PC3置0,控制字为00000110B=06H。下面的程序可以实现上述要求:MOV AL ,

25、 0FH ;对PC7置1的控制字MOV DX , 00EEH ;控制口地址送DXOUT DX , AL ;对PC7置1操作MOV AL , 06H ;对PC3置0的控制字OUT DX , AL ;对PC3进行置0的操作,61,方式0:基本的输入/输出方式 (基本I/O)方式1:选通的输入/输出方式 (选通I/O)方式2:双向的传输方式 (双向I/O),8255A的3种基本工作方式介绍,62,方式0-基本输入输出方式功能, 任何一个端口可以作为输入口,也可以作为输出口。 各个端口输入或输出,可以有16种不同的组合,所以 可以适用于多种使用场合。方式0使用场合一种是 同步传送(无条件传送/简单传送

26、),另一种是 查询式传送。,两种:,63,例: 用8255A控制三个发光二极管依秩序循环 显示。,端口地址 340H-343H,A2-A15,发光二极管,IOR,RD,WR,IOW,64,用8255A控制三个发光二极管显示。8255A的端口地址为:A 端口:340HB 端口:341H C 端口:342H控制口:343H试编写8255初始化程序段和控制三个发光二极管显示程序段。,65,开始,8255A初始化,延时,BX显示代码地址,CX=0?,Y,N,BX=BX+1 CX=CX-1,CX 3,输出到PA口,1、程序框图:,66,1)设A口为输出口,方式0。B口输入,方式0,则方式选择控制字为10

27、000010 B = 82 H。 2)A口输出代码:0000 0110 06H ,1号发光二极管亮0000 0101 05H ,2号发光二极管亮0000 0011 03H ,3号发光二极管亮 3)软件延时 (1)1ms的软件延时参考程序:设系统的CPU的频率为8MHZ,则时钟节拍为:0.125微秒。执行PUSHF、POPF、LOOP指令需43个节拍。延迟1毫秒要循环的次数: 1ms/(43*0.125us)=186,2、软件设计,67,参考程序: DATA SEGMENT COTR EQU 343H ;8255A控制口地址 PB_A EQU 340H ;8255A的A口地址 LED DB 06

28、H,05H,03H;LED显示值 DATA ENDPCODE SEGMENT ASSUME CS:CODE,DS:DATA.MOV DX,COTR ;控制口地址MOV AL,82H OUT DX, AL ;A口为方式0输出,B口为输入MOV DX, PB_A ;A口地址,68,LP: MOV CX,3 LEA BX, LED ; 1号灯代码地址DON: MOV AL, BX OUT DX, AL ;1,2,3循环点亮CALL DELAY ;调延时1ms程序INC BXDEC CXJNZ DONJMP LPDEALY PROC NEAR ;软件延时1msPUSH CX MOV CX, 186L:

29、 PUSHFPOPFLOOP LPOP CX RET DEALY ENDP CODE ENDSEND,69,例 8255A作为连接打印的查询式接口,工作于方式0,如图所示。设8255A的端口地址为:A端口:00D0H C端口: 00D4HB端口:00D2H 控制口:00D6H工作过程:当主机要往打印机输出字符时,先查询打印机忙信号,如果打印机正在处理一个字符或在打印一行字符,则忙信号为1,否则为0。PC2作为打印机忙信号,PC6作为数据选通信号,将数据线上的数据打入打印机缓冲器。,70,打印机驱动流程图,工作方式0例子打印机,Y,71,PP: MOV AL ,81H ;8255工作方式字OUT

30、 D6H , AL ;A口方式0,输出,; C口方式0, C47输出,C03输入MOV AL , 0DH ;PC6置1OUT D6H ,ALMOV S I , 200H ;打印字符内存地址MOV CX, 0FFH ;打印字符个数 LPST : IN AL , D4H ;读C口AND AL , 04H ;查PC2=0?JNZ LPST ;忙,等待;不忙,送数MOV AL, SI ;从内存取数OUT D0H , AL ;送数到PA口,72,MOV AL , 00001100B ;将PC6置0(STB为低)OUT D6H , AL ;AL 0000 1100 BNOP NOP ; 延时INC AL

31、;AL0000 1101 BOUT 0D6H , AL ;再使STB(PC6)为1INC SI ;内存地址+1DEC CX ;字符数 - 1JNZ LPSTHLT,73,方式0的应用总结,用于连接简单外设。 适用于: 无条件输入输出方式。 查询输入输出方式:把A、B口作为8位数据的输入或输出口,C口的高/低4位分别定义为A、B口的控制位和状态位。,74,工作方式0(基本I/O方式),8255相当于三个独立的8位简单接口。各端口既可设置为输入口,也可设置为输出口,但不能同时实现输入及输出。C端口即可以是一个8位的简单接口,也可以分为两个独立的4位端口。设置为输出口时有锁存能力,设置为输入口时无锁

32、存能力。,75,方式1选通的输入输出方式,数据输入输出要在选通信号控制下工作. 端口A和端口B可以分别作为两个数据口工作于方式1,并且,任何一个端口可以为输入口或输出口。 1)方式1输入: A口控制信号的定义:,76,方式1输入有关信号的规定,方式1输入有关信号的规定,端口B输入,77,1选通信号输入端,低电平有效,2输入缓冲区满信号,,3它是8255送往CPU的中断请求 信号,高电平有效。,中断允许信号,INTE由PC4置“1”,INTR有效,A口方式1输入有关信号的规定,数据输入口,方式1 A口输入有关信号的规定,PC0-7,PA、PB口都为方式1输入时的状态字,78,方式1输入联络信号定

33、义,STB选通信号,低电平有效由外设提供的输入信号,当其有效时,将输入设备送来的数据锁存至8255A的输入锁存器 IBF输入缓冲器满信号,高电平有效8255A输出的联络信号。当其有效时,表示数据已锁存在输入锁存器 INTR中断请求信号,高电平有效8255A输出的信号,可用于向CPU提出中断请求,要求CPU读取外设数据 INTE 中断允许信号,高电平有效用于控制中断允许或中断屏蔽,79,方式1 输入时序,80,方式1输入时序,STB和IBF是外设和8255A间 的一对应答联络信号, 为的是可靠地输入数据,8255,输入 设备,STB,IBF,INTR,RD,DB,A0,A1,CS,AB,81,方

34、式1输出有关信号的规定,方式1输出有关信号的规定,3 中断请求,1通知外设取走数据,2外设响应信号,端口B输出,82,方式1输出联络信号,OBF输出缓冲器满信号,低有效 8255A输出给外设的一个控制信号,当其有效时,表示CPU已把数据输出给指定的端口,外设可以取走 ACK响应信号,低有效 外设的响应信号,指示8255A的端口数据已由外设接受 INTR中断请求信号,高有效 当输出设备已接受数据后,8255A输出此信号向CPU提出中断请求,要求CPU继续提供数据,PC0-7,PA、PB口都为方式1输出时的状态字,83,方式1输出时序,84,方式1输出时序,OBF和ACK是外设和8255A间 的一

35、对应答联络信号, 为的是可靠地输出数据,8255,输出 设备,OBF,ACK,INTR,WR,DB,A0,A1,CS,AB,85,例: 8255A端口A工作在方式1,A口输入,允许A口 中断,编写初始化程序。MOV DX,PCTR ;控制口地址送DX MOV AL,10110000B ;A口方式1输入 OUT DX,ALMOV AL,00001001B ;置PC4=1,允许中断 OUT DX,AL ;,86,例:8255A方式1输入应用:某8位A/D转换器,与8255的连接如下图,PC7做启动AD转化信号,AD转化结束信号EOC接PC4,作为选通信号STB。A/D转换启动为高电平。假设8255

36、作为查询式输入接口,分析工作原理。编写8255初始化与输入一个数据的程序。,方式1例子A/D转换接口,IBF,PC5,INTR,87,注意到8255方式1输入时,数据准备好后,IBF=1,因此可以通过查询IBF的状态。主要参考程序代码: MOV DX,PCTR ;控制口地址送DX MOV AL,10110000B ;A口方式1输入,PC7输出 OUT DX,ALMOV AL,00001110B ;置PC7=0,禁止A/D OUT DX,ALMOV AL,00001111B ;置PC7=1,启动A/D OUT DX,AL,采用查询式输入,88,L: MOV DX,POT_C ;C口地址送DXIN

37、 AL,DXTEST AL,00100000B ;查IBF=1,即PC51?JZ L ; 查无输入数据,等待 MOV DX,PCTRMOV AL,00001110B ;置PC7=0,禁止A/DOUT DX,ALMOV DX,POT_A ; 送A口地址IN AL,DX ; IBF=1,读数据; 数据读出后,自动撤销IBF(=0)HLT,89,工作方式1(选通I/O方式)总结,利用一组选通控制信号控制A端口和B端口的数据输入输出。A、B口作输入或输出口,C口的部分位固定用作A、B口的选通控制信号。A口、B口在作为输入和输出时的选通信号不同。,输入,输出,90,C口的信号功能(A、B方式1输入),S

38、TB选通信号。它将外设数据送入8255的输入锁存器。IBF输入锁存器满。通知外设不能送下一个数据。此信号由STB的前沿产生。CPU用IN指令取走数据后,此信号被清除。INTR中断请求。STB的后沿产生,用于中断CPU,让CPU读走输入锁存器中的数据。INTE中断允许位,是否允许发出INTR请求。INTE =1和IBF为高电平时,允许发出INTR请求。,91,C口的信号功能( A、B方式1输出),OBF通知外设取走数据。输出缓冲器满。ACK外设响应信号,表示已从数据端口取走数据。此信号使OBF变高。INTR中断请求。ACK上升沿产生,通知CPU输出下一个数据(通常接到8259)。INTE中断允许

39、位,INTE=1和OBF为高电平时,允许产生INTR信号。,92,注意:,INTE的状态可利用C口的位控方式来设置: 输入: A口的INTE:写入PC4 B口的INTE:写入PC2 输出: A口的INTE:写入PC6 B口的INTE:写入PC2 例如:方式1输入允许A口中断,则应按如下方法设置INTEA。MOV DX,控制寄存器地址MOV AL,0xxx1001B ;1=允许中断,0=禁止中断OUT DX,AL,93,方式1的应用,主要用于中断控制方式下的输入输出。PC口除部分位用作选通信号外,其余位可工作在方式0下,作为输入或输出线。特别是PA、PB均为方式1时仅使用PC口的6条线,余下二条

40、线可作为单独的输入输出线,用程序指定其数据传送方向。,94,方式2只适用于端口PA,双向并行通信端口A工作于方式2时,端口PC用5个数位自动配合端口PA提供控制。 注意: 端口PA可工作在3种方式中的任意一种; 端口PB只能工作在方式0或方式1; 端口PC被分为高4位和低4位,可以分别工作在输入方式和输出方式,并不要求同为输入方式或同为输出方式.,方式2双向传输方式,95,方式2工作的控制信号,方式2有关信号的规定,96,工作方式2,双向方式既是输入口,又是输出口。利用PC口的5条线提供传输联络信号。类似于PA口方式1下输入和输出的组合。只有PA口可工作在方式2下。INTE1为PC6,INTE

41、2为PC4。,PC0-7,PA方式2时的状态字,PB口方式决定,97,方式2的应用:,可用于中断控制输入输出方式。当PA口工作于方式2时,PB口可工作于方式1(此时PC口的剩余位都用作PB口选通控制线);PB口也可工作于方式0(此时PC口的剩余位也只能用作方式0下的输入输出线)。,98,读写端口C的归纳,读取的C端口数据有两种情况 (1)未被A和B端口征用的引脚将从定义为输入I的端口读到引脚输入信息;将从定义为输出O的端口读到输出锁存器中的信息 (2)被A和B端口征用作为联络线的引脚将读到反映8255A状态的状态字,99,端口C的状态字,100,四、8255芯片的应用,芯片与系统的连接 芯片的

42、初始化 相应的控制程序,101,8255A的应用,作为通用的并行接口电路芯片,8255A具有广泛的应用。应用在IBM PC/XT微机上 应用于打印机接口电路 连接简易键盘 驱动LED数码管 ,102,8255应用举例,利用8255实现开关检测(简单输入设备)和继电器控制(简单输出设备)电路;(1) 当开关闭合时,使继电器通电动作;开关断开时,继电器不动作;(2) 系统每隔100ms检测一次开关状态,实现相应的继电器控制;(3) 初始状态下继电器不动作。,例1 (方式0应用),103,CS,A0,A1,WR,RD,DB,PA0,PA7,PB0,PB7,+5V,+12V,K,继电器,384H387

43、H,388H38BH,CS,A0,A1,OUT1,CLK1,2MHz,CLK0,OUT0,8259A PIC,WR,RD,DB,8253,8255,中断请求信号,INTR,Q1,R1,R2,D1,104,题目分析:,使8255的A端口和B端口均工作于方式0; 8253计数器0和计数器1均工作于方式3(方波),利用OUT0的输出作为计数器1的时钟信号,其输出频率为2KHz, OUT1输出频率为10Hz(周期100ms); OUT1作为中断信号,每100ms产生一次中断; CPU响应中断后检测开关状态,控制继电器的动作; 8253两个计数器的计数初值分别为: 2MHz/10Hz=200000=10

44、00*200CNT0:2MHz/2KHz =1000 (16位)CNT1:100ms/0.5ms=200 (8位),105,8255的初始化,MOV DX,387H MOV AL,82H ;1 00 0 0 0 1 0 OUT DX,AL XOR AL,AL ;A口输出全0 MOV DX,384H OUT DX,AL,106,8253的初始化,设置工作方式: MOV DX,38BH;控制口 MOV AL,36H OUT DX,AL MOV AL,56H OUT DX,AL36H = 00 11 011 0CNT0 16位 方式3 56H = 01 01 011 0CNT1 8位 方式3,置计数初值: MOV DX,388H; 计数器0 MOV AX,1000 OUT DX,AL MOV AL,AH OUT DX,AL MOV DX,389H ; 计数器1 MOV AL,200 OUT DX,AL,107,8255的控制程序(中断处理),(中断初始化程序略)-主要为:8259初始化及CPU中断打 开等 8253中断服务程序中的8255控制程序段如下:MOV DX,385H ;PB口地址(开关) IN AL,DX ;读PB0状态NOT AL ;变反 MOV DX,384H ;PA口地址(继电器)OUT DX,AL ;输出到继电器,

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报