为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

第8章常见外设接口及应用-1

2013-01-07 50页 ppt 7MB 15阅读

用户头像

is_743199

暂无简介

举报
第8章常见外设接口及应用-1null8.1 可编程并行通信接口芯片8255A8.1 可编程并行通信接口芯片8255A 8255A是Intel生产的一种典型的可编程并行通信接口芯片,其功能与通用性都较强,使用也很灵活。8.1 可编程并行通信接口芯片8255A8.1 可编程并行通信接口芯片8255A8.1.1 8255A芯片引脚定义与功能 8.1.2 8255A寻址方式 8.1.3 8255A的控制字 8.1.4 8255A的工作方式 8.1.5 时序关系 8.1.6 8255A的应用举例 8.1.1 8255A芯片引脚定义与功能8.1...
第8章常见外设接口及应用-1
null8.1 可编程并行通信接口芯片8255A8.1 可编程并行通信接口芯片8255A 8255A是Intel生产的一种典型的可编程并行通信接口芯片,其功能与通用性都较强,使用也很灵活。8.1 可编程并行通信接口芯片8255A8.1 可编程并行通信接口芯片8255A8.1.1 8255A芯片引脚定义与功能 8.1.2 8255A寻址方式 8.1.3 8255A的控制字 8.1.4 8255A的工作方式 8.1.5 时序关系 8.1.6 8255A的应用举例 8.1.1 8255A芯片引脚定义与功能8.1.1 8255A芯片引脚定义与功能 8255A是一个40脚封装双列直插式芯片。 8.1.1 8255A芯片引脚定义与功能8.1.1 8255A芯片引脚定义与功能D7-D0:8位双向数据线,连接CPU与8255A片内的三态双向数据总线缓冲器。 A1-A0:2位地址线,用于选择3个I/O端口和一个控制端口。 RD#:读控制线,低电平有效。 WR# :写控制线,低电平有效。 CS#:片选端,低电平有效。 RESET:复位信号,高电平有效。 它清除控制寄存器并将8255A的A、B、C三个端口均置为输入方式;输出寄存器和状态寄存器被复位,并且屏蔽中断请求;24条面向外设的信号线呈现高阻悬浮状态。这种势态一直维持,直到用方式命令才能改变,使其进入用户所需的工作方式。8.1.1 8255A芯片引脚定义与功能8.1.1 8255A芯片引脚定义与功能 8255A芯片内部包含3个8位端口,其中: 端口A:包含一个8位数据输出锁存/缓冲存储器和一个8位数据输入锁存器 端口B:包含一个8位数据输入/输出、锁存/缓冲存储器和一个8位数据输入缓冲存储器; 端口C:包含一个8位输出锁存/缓冲存储器和一个输入缓冲存储器(输入无锁存)。 实际使用时,可以把A口、B口、C口分成两个控制组:A组和B组。 A组控制电路控制端口A和端口C的高4位(PC7~PC4)。 B组控制电路控制端口B和端口C的低4位(PC3~PC0)。 8.1.1 8255A芯片引脚定义与功能8.1.1 8255A芯片引脚定义与功能 8255A的内部结构分为3部分: CPU接口、内部逻辑、外设接口 8.1.1 8255A芯片引脚定义与功能8.1.1 8255A芯片引脚定义与功能8.1.1 8255A芯片引脚定义与功能8.1.1 8255A芯片引脚定义与功能 1、数据端口A、B、C 8255A的3个8位I/O端口A、B、C是和外设一边相连的输入/输出接口。 在实际使用中,A口和B口通常只作为独立的输入或输出数据端口使用。 C口的功能和使用比较特殊。它除了可以作数据口使用外,还可以用来配合A口和B口工作,作为专用联络信号线,可以实现按位控制。 8.1.1 8255A芯片引脚定义与功能8.1.1 8255A芯片引脚定义与功能 2、A组控制和B组控制部件 这两组控制部件是8255A的内部控制逻辑,其内部有控制寄存器与状态寄存器,它们完成两个功能: 一是接收来自CPU通过内部数据总线送来的控制字,以选择两组端口的工作方式; 二是接收来自读/写控制逻辑电路的读/写命令,以决定两组端口的读/写操作。 8.1.1 8255A芯片引脚定义与功能8.1.1 8255A芯片引脚定义与功能 3、读/写控制逻辑电路 读/写控制逻辑电路是和CPU一边相连的控制电路,负责管理8255A的数据传输过程。 它接收片选信号CS#与来自地址总线的地址信号A1、A0以及控制总线的信号RESET、WR#、RD#,将它们组合后,得到对A组控制部件和B组控制部件的控制命令,并将命令送给这两个部件,再由它们完成对数据信息、状态信息和控制信息的传输。 8.1.1 8255A芯片引脚定义与功能8.1.1 8255A芯片引脚定义与功能4、数据总线缓冲器 数据总线缓冲器是连通CPU数据总线的一个双向三态8位数据缓冲器,8255A正是通过它来输入/输出数据的; 此外,CPU发给8255A的控制字以及由外设输入CPU的状态信息等,也都是通过该部件传递的。 8.1.1 8255A芯片引脚定义与功能8.1.2 8255A寻址方式8.1.2 8255A寻址方式 8255A有3个I/O端口和一个控制端口,它们通过地址线A1、A0,读写控制线RD#、WR#以及片选线CS#进行寻址并实现相应的操作。 8.1.2 8255A寻址方式8.1.2 8255A寻址方式8.1.2 8255A寻址方式8.1.3 8255A的控制字8.1.3 8255A的控制字 8255A在初始化编程时,是利用OUT指令由CPU输出一个控制字到控制端口的控制寄存器来控制其工作的。 两种类型的控制字: 1、方式选择控制字 2、端口C置位/复位控制字 8.1.3 8255A的控制字8.1.3 8255A的控制字8.1.3 8255A的控制字8.1.3 8255A的控制字8.1.3 8255A的控制字8.1.3 8255A的控制字 例1、将8255A设定为: 1、A组为方式0,组B为方式1。 2、A口输入,B口输出,PC7~PC4输出,PC3~PC0输入。 3、设8255A的4个端口地址范围为0060H~0063H。 则初始化编程时的程序段为: MOV DX,0063H ; 8255A控制口地址 MOV AL,10010101B ;设定初始化方式选择控制字 OUT DX,AL ;送控制字到控制口8.1.3 8255A的控制字8.1.3 8255A的控制字 例2、设8255A端口地址范围为300H~303H,若要置8255A PC5的状态为1,则设置端口C置位/复位控制字的程序段为: MOV DX,0303H ; 8255A控制口地址 MOV AL,00001011B;由C口置位/复位控制字设定PC5=1  OUT DX,AL ;送控制字到控制口8.1.3 8255A的控制字8.1.3 8255A的控制字 例3、设8255A控制端口地址为037FH,若要使8255A的PC7产生一个负脉冲,用作打印机接口的选通信号,则设置端口C置位/复位控制字的程序段为: MOV DX,037FH ;8255A控制口地址 MOV AL,00001110B ;由C口置位/复位控制字设定PC7=0 OUT DX,AL ;送控制字到控制口 NOP ;延长负脉冲宽度 NOP MOV AL,00001111B ;由C口置位/复位控制字设定PC7=1 OUT DX,AL8.1.3 8255A的控制字8.1.4 8255A的工作方式 8.1.4 8255A的工作方式 8255A有3种工作方式: 方式0(基本输入/输出方式); 方式1(选通输入/输出); 方式2(双向选通输入/输出,仅适合于A口)。 这些工作方式由初始化编程时设置方式选择控制字来选择。 8.1.4 8255A的工作方式 8.1.4 8255A的工作方式 A口可选择方式0、方式1和方式2; B口可选择方式0和方式1; C口只能以方式0工作。 当A口方式1/方式2或B口选择方式1时,C口某些位配合A口或B口工作,作为A口/B口与外设联络用的输出控制信号或输入状态信号,而C口的其余各位仍用方式0工作。8.1.4 8255A的工作方式 8.1.4 8255A的工作方式 方式0 方式 0 :基本的输入/输出工作方式,只能完成简单的并行输入/输出操作。 方式 0 的特点: (1)没有固定的联络信号,一般采用无条件传送或查询方式传送与CPU交换数据。 (2)有4个独立的并口,16种不同的输入/输出组态。 (3)所有端口都是单向传输端口。8.1.4 8255A的工作方式 8.1.4 8255A的工作方式 8.1.4 8255A的工作方式 8.1.4 8255A的工作方式 方式1 方式 1 :选通输入/输出方式或应答方式。 它在使用端口A和端口B进行输入/输出时,一定要利用端口C所提供的选通信号和应答信号来配合输入/输出操作。 8.1.4 8255A的工作方式 8.1.4 8255A的工作方式 方式1的特点: (1)需要固定的联络线(联络信号)配合A口和B口使用。 (2)如果A口和B口都工作在方式1,则C口中就有6位(分为两组3位)联络线来联络与控制操作,各联络信号线之间有着固定的时序关系。C口的其余2位,仍可作为输入或输出线。 (3)联络信号可供CPU查询或向CPU申请中断。 (4)所有端口都是单向传输端口。8.1.4 8255A的工作方式 8.1.4 8255A的工作方式 STB#:选通输入信号 IBF:输入缓冲器满信号 INTR:中断请求信号 INTE:中断允许信号中断方式 查询方式PC4查询8.1.4 8255A的工作方式 8.1.4 8255A的工作方式 PC28.1.4 8255A的工作方式 8.1.4 8255A的工作方式 8.1.4 8255A的工作方式 8.1.4 8255A的工作方式 端口A和端口B为输入方式 STB#:选通输入信号,低电平有效。 外设送给8255A的选通信号,当它有效时,就把来自外设的一个8位输入数据送到8255A的端口A或端口B的输入缓冲器中。8.1.4 8255A的工作方式 8.1.4 8255A的工作方式 IBF:输入缓冲器满信号,输出信号,高电平有效。 IBF是8255A输出的状态信号,当它有效时,示当前已有一个新的数据进入端口A或端口B的输入缓冲器中,即缓冲器已满,8255A此刻不能再接收别的数据。 IBF信号是对STB#的响应信号,由STB#信号置位。 它可以由CPU通过查询C口的PC5或PC1位获得。当CPU查得PC5(或PC1)=1时,表示输入缓冲器数据已满,CPU可以从A口(或B口)读入输入数据。 IBF将由RD#信号的上升沿复位(变为低电平)。8.1.4 8255A的工作方式 8.1.4 8255A的工作方式 INTR:8255送往CPU的中断请求信号,高电平有效。 当STB#结束(回到高电平时)和IBF为高电平,且有相应的中断允许信号(即INTE为高电平)时,则8255A就把INTR变为有效,以向CPU发中断请求。 由RD#信号的下降沿使INTR复位(变为低电平)。 INTR通常和8259A的一个中断请求输入端IR相连,通过8259A的输出端INT向CPU发中断请求。 8.1.4 8255A的工作方式 8.1.4 8255A的工作方式 INTE:中断允许信号。它是在8255A内部的一个控制中断允许或禁止的控制信号。 INTE没有外部引出端,即没有对片外输入或输出的功能,它只能由软件通过对C口某位的置位或复位来实现对中断请求的允许或禁止。 端口A的中断请求INTRA可以通过对PC4的置位或复位加以控制,PC4置1,允许INTRA工作; PC4置0,则屏蔽INTRA 。 端口B的中断请求INTEB可以通过对PC2的置位或复位加以控制。8.1.4 8255A的工作方式 8.1.4 8255A的工作方式 OBF#:输出缓冲器满信号 ACK#:外设应答信号 INTR:中断请求信号 INTE:中断允许信号PC6查询8.1.4 8255A的工作方式 8.1.4 8255A的工作方式 8.1.4 8255A的工作方式 8.1.4 8255A的工作方式 端口A与B为输出方式 OBF#:输出缓冲器满信号,输出信号,低电平有效。 当它有效时,表示CPU已把数据写入端口A或B的输出缓冲器等待输出。当CPU执行OUT指令WR#有效时,表示将数据锁存到输出缓冲器。 由WR#的上升沿把OBF#信号置成低电平。 由ACK#的下降沿把OBF#信号复位为高电平。 ACK#:外设应答信号,低电平有效。 当ACK#有效时,表示8255A中的数据已被外设取走。 8.1.4 8255A的工作方式 8.1.4 8255A的工作方式 INTR:中断请求信号,高电平有效。 ACK#信号结束(回到高电平),8255A便向CPU发中断请求信号INTR。 写信号WR#上升沿使INTR复位,变为低电平。 INTE:中断允许信号。 端口A的输出中断请求INTRA可以通过对PC6的置位或复位来加以允许或禁止。 端口B的输出中断请求INTRB可以通过对PC2的置位或复位来加以允许或禁止。 8.1.4 8255A的工作方式 8.1.4 8255A的工作方式 8.1.4 8255A的工作方式 8.1.4 8255A的工作方式 8.1.4 8255A的工作方式 8.1.4 8255A的工作方式 例1:设8255A为工作方式1,A口为输出。设置中断允许信号(端口的地址范围为300H~303H)。 MOV DX, 303H ;置8255A控制口 MOV AL, 00001101B ;置C口按位控制字,使PC6=1, ;允许发中断请求  OUT DX, AL MOV AL, 00001100B ;置PC6=0,禁止发中断请求 OUT DX,AL 8.1.4 8255A的工作方式 8.1.4 8255A的工作方式 方式2 方式2为选通双向传输,仅适用于端口A。 方式2控制字及含义: INTRA:中断请求信号,高电平有效。端口A完成一次输入或输出数据操作后,可通过INTRA向CPU发中断请求。 STBA#:输入选通信号,低电平有效。当STBA有效时,把外设输入的数据信号锁存入端口A。 IBFA:输入缓冲器满,高电平有效。当IBFA有效时,表示已有一个数据送入端口A,等待CPU读走。此信号可供CPU作输入查询用。8.1.4 8255A的工作方式 8.1.4 8255A的工作方式 OBFA#:输出缓冲器满,低电平有效。当OBFA有效时,表示CPU已将一个数据写入端口A,通知外设,可以将其取走。 ACKA#:外设应答信号,低电平有效。当ACKA有效时,表示端口A输出的数据已送到外设。 INTE1:A口输出中断允许信号(在片内)。可以由软件通过对PC6的置位或复位来加以允许或禁止。 INTE2:A口输入中断允许信号(在片内)。可以由软件对PC4的置位或复位来加以允许或禁止。 8.1.4 8255A的工作方式 8.1.4 8255A的工作方式 8.1.4 8255A的工作方式8.1.5 时序关系8.1.5 时序关系8.1.5 时序关系8.1.5 时序关系8.1.5 时序关系8.1.5 时序关系8.1.5 时序关系8.1.5 时序关系工作过程 (1)当数据端口作为输入工作时,在STB#有效时,由外设把输入数据送入端口,并发出IBF有效信号。 当CPU执行IN指令对该数据口进行读入操作后,由RD#的上升沿使IBF复位,为下一次输入数据作好准备。 如果该数据端口的中断允许INTE被置位,则在STB#信号回复到高电平时,8255A通过INTR向CPU发中断请求。 若CPU响应该中断请求,读取该数据端口的输入数据,则RD#由下降沿使INTR复位,为下一次数据输入请求中断作好准备。8.1.5 时序关系8.1.5 时序关系工作过程 (2)当数据端口作为输出口时,在CPU把数据写入端口后,由WR#的上升沿使OBF#有效并使INTR复位。 OBF#由8255A输出到外设,并通知外设可以取走端口的输出数据。当外设取走一个数据时,应向8255A发回应答信号ACK#。 ACK#的有效低电平可以使OBF#复位,为下一次输出作好准备。 (3)当数据端口既作输入又作输出选通双向传送时,其时序图上所表示的工作过程将是以上输入时序与输出时序的综合。 8.1.5 时序关系 8.1 可编程并行通信接口芯片8255A课堂练习 课堂练习 1、利用8255A(方式0)作为打印机的连接接口,采用查询方式,CPU通过8255A的A口将存放在从BUF单元开始的内存缓冲区中的256个字符(ASCII码)输出给打印机去打印。完成初始化编程和打印一组字符的程序段。(8255A的端口地址范围为0FBD0H~0FBD3H)数据选通信号打印机忙信号课堂练习 课堂练习 2、8255A工作于方式0,利用8255A将外设开关的二进制状态从端口A输入,经程序转换为对应的LED段选码(字形码) 后,再从端口B输出到LED显示器。具体连线图如图(a)所示。LED显示器如图(b)所示。完成初始化及输入、输出控制程序(设8255A的端口地址为: 端口A:D0H,端口B:D1H,端口C:D2H,控制口:D3H)。课堂练习 课堂练习 地址译码地址CPU(8088)RDWRA0A1____D7~D08255ARDWRA0A1____PA0PA1PA2PA3PB0PB1PB2PB3PB4PB5PB6PB7+5V2K×4K0K1K2K3abcdefgh+5V74LS04LED(a) 连线图地址译码地址CPU(8088)RDWRA0A1____D7~D08255ARDWRA0A1____PA0PA1PA2PA3PB0PB1PB2PB3PB4PB5PB6PB7+5V2K×4K0K1K2K3课堂练习 课堂练习 3、8255A的端口A(方式1)与打印机相连。利用中断方式向打印机输出一组(字符串长度为256字节)字符。8255的端口地址为300H~303H,8259的端口地址为020H与021H)。完成中断打印输出字符的程序(由主程序MAIN和中断服务子程序SUBP两部分组成)。课堂练习 课堂练习 4、(选做)设甲、乙两机之间进行并行通信,共传送1KB数据。 甲机一方的8255A的PA口采用方式2并用中断方式传送数据。 乙机一方8255A的PA口与PB口采用方式0输出与输入,按查询方式传送数据。 接口电路的连接如图所示。甲机一侧的8255A的A口作双向传送,既作输出又作输入,它的中断请求线由PC3接到8259A的IR2上。乙机一侧的8255A的A口和B口是单向传送,分别作输出与输入。 完成甲机8255A的初始化程序和中断服务程序。课堂练习课堂练习课堂练习1 课堂练习1 8255A与打印机接口的初始化程序段 MOV DX,0FBD3H ;8255A的控制寄存器端口地址 MOV AL,10000001B ;方式选择控制字(A组方式0:A口输出, ;PC7~PC4输出。B组方式0:B口输出, ;PC3~PC0输入) OUT DX,AL ;控制字送控制口寄存器 MOV AL,00001111B ;C口置位/复位控制字,使PC7置1 OUT DX, AL ;C口置位/复位控制字送控制寄存器课堂练习1 课堂练习1 打印一组字符的程序段 MOV SI,OFFSET BUF ;取字符串的内存首地址 MOV CX,100H ;将打印字符长度作为循环次数 PL:MOV DX,0FBD2H ;C口地址 IN AL,DX ;从C口查询打印机的状态信息 ; BUSY=0? (即PC1=0?) AND AL,00000010B  JNZ PL ;若BUSY=1,则循环等待; ;BUSY=0,则向A口送出数据课堂练习1 课堂练习1 打印一组字符的程序段(续) MOV AL,[SI] ;从内存中取一个字符准备输出 MOV DX,0FBD0H ;A口地址送DX OUT DX,AL ;将内存中的一个字符输出到A口 MOV DX,0FBD3H ;控制口地址 MOV AL,00001110H ;设定C口按位操作控制字, ;置为低( PC7 =0) OUT DX,AL NOP ;使负脉冲宽度延时 NOP MOV AL,00001111B ;置为高电平 (PC7=1), ;在PC7上生成1个负脉冲 OUT DX, AL课堂练习1 课堂练习1 打印一组字符的程序段(续) INC SI ;指向内存中下一个字符 LOOP PL ;字符数减1,若输出字符未完,则继续 HLT ;若输出字符已完,则暂停课堂练习2 课堂练习2 初始化及输入、输出控制程序如下: DATA SEGMENT SSEGCODE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,67H,77H,7CH,39H,5EH,79H,71H DATA ENDS CODE SEGMENT ASSUME CS: CODE,DS: DATA START:MOV AX, DATA MOV DS, AX MOV AL,90H ;设置方式选择控制字,A口工作于方式0输入, ;B 口工作于方式0输出 OUT 0D3H, AL RDPORTA : IN AL,0D0H ; 读A口 AND AL,0FH ; 取A口低4位 MOV BX,OFFSET SSEGCODE ; 取LED段选码表首地址 XLAT ;查表,AL←(BX+AL)课堂练习2 课堂练习2 OUT 0D1H,AL ;从B口输出LED段选码,显示相应字形符号 MOV AX,XXXXH ;延时 DELAY: DEC AX JNZ DELAY MOV AH,1 ;判断是否有键按下 INT 16H JZ RDPORTA ;若无,则继续读端口A MOV AH,4CH ; 否则返回DOS INT 21H CODE ENDS END START 课堂练习3课堂练习3主程序MAIN ;设置中断向量 MAIN:CLI ;关中断 PUSH DS ;保存原DS MOV AX,SEG SUBP ;为打印驱动子程序入口SUBP ;设置新的中断向量DS:DX MOV DS,AX ;SUBP的段地址送DS MOV DX,OFFSET SUBP ;SUBP的偏移地址送DX MOV AH,25H ;设置中断向量的功能号AH MOV AL,0AH ;为8259的IR2建立0AH号中断向量 ;表项 INT 21H  POP DS ;恢复原DS课堂练习3课堂练习3 ;8255初始化 MOV DX,303H ;设定8255控制端口地址 MOV AL,0A0H ;8255初始化,设置方式选择控制字 OUT DX,AL ;控制字送端口  MOV AL,00001101B ;设定C口置位/复位控制字 OUT DX,AL ;置PC6=1,使INTEA=1,允许8255A产生 ;中断课堂练习3课堂练习3 ;设置数据地址和字符数 MOV AX,OFFSET DATA MOV STR_PTR,AX ;设置打印字符串的偏移地址 MOV AX,SEG DATA MOV STR_PTR+2,AX ;设置打印字符串的段地址 MOV STR_NUM,100H ;设置打印字符串的字符数 ;引发第一次中断请求 STI ;CPU开中断 INT 0AH ┆课堂练习3课堂练习3中断服务子程序SUBP ;保护现场 SUBP:PUSH SI PUSH DS PUSH AX PUSH DX ;字符串处理并输出 CLD LDS SI,DWORD PTR STR_PTR ;设置打印字符串地址的指针DS:SI LODSB ;从SI寻址的字符串中取一个8位字符送AL课堂练习3课堂练习3 MOV STR_PTR,SI ;保存新的字符串指针 MOV DX,300H ;8255的A口地址 OUT DX,AL ;将AL的一个打印字符输出到A口 DEC STR_NUM JNZ NEXT ;字符送完否?未完,转NEXT MOV AL,00001100B ;已送完,重设C口置位/复位控制字 MOV DX,303H ;8255A控制端口地址 OUT DX,AL ;置PC6=0,使INTEA=0,禁止8255A产生中断课堂练习3课堂练习3NEXT:MOV AL,20H ;设置8259A的OCW2命令 OUT 20H,AL ; 送中断结束命令给8259A的端口 POP DX POP AX POP DS POP SI IRET ; 中断返回 课堂练习4课堂练习4甲机的程序 ┆ ;8255A初始化 MOV DX,303H ;8255A控制口 MOV AL,11000000B ;方式选择字:A口为 ;方式2;B口未用 OUT DX,AL MOV AL,00001001B ;置位PC4,设置INTE2=1, ;A口输入中断允许 OUT DX,AL MOV AL,00001101B ;置位PC6,设置INTE1=1, ;A口输出中断允许 OUT DX,AL MOV SI,300H ;发送数据块内存首地址 MOV DI,410H ;接收数据块内存首地址 MOV CX,3FFH ;置发送与接收字节数  ┆ 课堂练习4课堂练习4AGAIN: STI ;CPU开中断 HLT ;等待中断 DEC CX ;字节数减1 JNZ AGAIN ;未完,继续 MOV AX,4C00H ;已完,退出 INT 21H ;返回DOS ;中断服务程序 ROUT PROC FAR ;中断服务程序入口 ASSUME CS:CODE,DS:DATA,SS:STACK PUSH AX PUSH DX PUSH DI PUSH SI MOV DX,303H ;8255A控制口 MOV AL,08H ;复位PC4,使INTE2=0, ;禁止输入中断 OUT DX,AL 课堂练习4课堂练习4 MOV AL,0CH ;复位PC6,使INTE1=0, ;禁止输入中断 OUT DX,AL CLI ;关中断 MOV DX,302H ;8255A状态口 IN AL,DX ;查中断源,读状态字 MOV AH,AL ;保存状态字 AND AL,20H ;查状态位IBF=1?即判是输入? JZ OUTP ;不是,则跳转至输出程序OUTP INP: MOV DX,300H ;是,则由A口读取数据 IN AL,DX MOV[DI],AL ;将输入数据存入内存区 INC DI ;接收数据块内存地址加1 JMP RETURN ;跳转RETURN OUTP:MOV DX,300H ;8255A 数据口A MOV AL,[SI];从发送数据块内存取数 OUT DX,AL ;由A口输出 INC SI ;发送数据块内存地址加1 课堂练习4课堂练习4RETURN: MOV DX,303H ;8255A控制口 MOV AL,00001101B ;置位PC6,设置INTE1=1, ;允许A口输出中断 OUT DX,AL MOV AL,00001001B ;置位PC4,设置INTE2=1, ;允许A口输入中断 OUT DX,AL MOV AL,62H ;设置OCW2为特殊EOI中断 ;结束方式,清除ISR2  OUT 20H,AL POP SI POP DI POP DX POP AX IRET ;中断返回 ROUT ENDP
/
本文档为【第8章常见外设接口及应用-1】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索