《桂林电子科技大学 微机原理课件D8.1.ppt》由会员分享,可在线阅读,更多相关《桂林电子科技大学 微机原理课件D8.1.ppt(56页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、8.1 并行接口芯片并行接口芯片8255A Intel 8255AIntel 8255A是一种通用的可编程并行是一种通用的可编程并行是一种通用的可编程并行是一种通用的可编程并行I IOO接口接口接口接口芯片,是为芯片,是为芯片,是为芯片,是为Intel 8080Intel 808080858085系列微处理器设计的,系列微处理器设计的,系列微处理器设计的,系列微处理器设计的,也广泛用于其他系列的微机系统。也广泛用于其他系列的微机系统。也广泛用于其他系列的微机系统。也广泛用于其他系列的微机系统。第八章第八章 常用接口芯片常用接口芯片8.1.1 8255A的内部结构的内部结构1.三个三个8位位I/
2、O端口端口 端口端口A、B、C可作为可作为8位位I/O端口。端口。端口端口C也可以分为也可以分为2个个4位的位的I/O端口,其中高端口,其中高4位分位分配给配给A口,称为口,称为A组;低组;低4位分配给位分配给B口,称为口,称为B组。组。2.控制寄存器控制寄存器 用于接收用于接收CPU送来的控制命令字,以决定端口的送来的控制命令字,以决定端口的工作方式。工作方式。8.1.2 8255A的引脚说明的引脚说明1.A口外设数据线口外设数据线PA7PA0(双向)(双向)B口外设数据线口外设数据线PB7PB0(双向)(双向)C口外设数据线口外设数据线PC7PC0(双向)(双向)2.片选片选CS及地址线及
3、地址线A1,A0(I)用于芯片及内部端口的寻址。用于芯片及内部端口的寻址。在在IBM-PC/XT机中,用机中,用A9A8A7A6A5=00011选选中中8255A(CS=0),),A4A3A2未用,未用,A1A0接接8255A的的A1A0,其功能及地址为:其功能及地址为:A9A8A7A6A5 A4A3A2 A1A0 选中端口选中端口基本地址基本地址 0 0 A口口 060H 0 0 0 1 1 0 1 B口口 061H 1 0 C口口 062H 1 1 控制寄存器控制寄存器 063H3.数据线数据线D7D0双向、三态,用于双向、三态,用于8255A与与CPU之间的数据传送;之间的数据传送;4.
4、读写控制信号读写控制信号RD,WR(I)5.复位信号复位信号RESET(I)当当RESET=1(有效)时,(有效)时,8255A复位复位(内部寄存器被清除,三个端口自动置为(内部寄存器被清除,三个端口自动置为输入方式)。输入方式)。1.方式方式0基本基本I/O方式方式特点特点:任何一个端口(任何一个端口(A口、口、B口、口、C口上半部、口上半部、C 口下半部)均可设定为独立的口下半部)均可设定为独立的I/O端口。端口。应用应用:用作同步传送的接口电路(用作同步传送的接口电路(A、B、C口均可用口均可用作数据端口)。作数据端口)。用作查询传送的接口电路(用作查询传送的接口电路(A、B口用作数据端
5、口用作数据端口;口;C口分为两部分,用作状态口分为两部分,用作状态/命令端口)。命令端口)。8.1.3 8255A的工作方式的工作方式2.方式方式1选通选通I/O方式方式特点特点:口:口A/B作为数据端口,作为数据端口,C口的某些位作为口的某些位作为 联络联络/控制信号(控制信号(C口的其它位仍可设定口的其它位仍可设定 为为I/O)。)。应用应用:用作中断:用作中断/查询式传送的接口电路。查询式传送的接口电路。(1)方式)方式1的输出的输出A A口口口口B B口口口口 INTR 中断请求中断请求(O)。当外设已从端口取走数据()。当外设已从端口取走数据(ACK 由由01),使),使8255的输
6、出缓冲器有空(的输出缓冲器有空(OBF=1),且端),且端口允许中断(口允许中断(INTE=1)时)时INTR有效。有效。ACK 外设响应外设响应(I)。有效时通知)。有效时通知8255,外设已,外设已将端口的数据取走,并使将端口的数据取走,并使OBF=1。OBF 输出缓冲器满输出缓冲器满(O)。有效时通知外设,)。有效时通知外设,CPU将数据输出到端口,外设可将其取走。将数据输出到端口,外设可将其取走。INTE 中断允许中断允许。INTE=1时,允许端口发时,允许端口发INTR;INTE=0时,不允许。时,不允许。用对用对C口的操作控制字使口的操作控制字使PC6/PC2置置1/0,可控制,可
7、控制A/B口允许口允许/不允许发不允许发INTR。WROBFINTRACK输出输出(2)方式)方式1的输入的输入A A口口口口B B口口口口 STB 选通信号选通信号(I)。当输入设备将数据)。当输入设备将数据准备好,送到端口时,向端口发出准备好,送到端口时,向端口发出STB有效信号。有效信号。IBF 输入缓冲器满输入缓冲器满(O)。有效时表示已有)。有效时表示已有一个新数据锁存在输入缓冲器中,一个新数据锁存在输入缓冲器中,IBF通知外设暂时通知外设暂时不能向端口输入新数据。不能向端口输入新数据。INTE 中断允许中断允许。用对。用对C口的操作命令字使口的操作命令字使PC4/PC2置置1/0,
8、可控制,可控制A/B口允许口允许/不允许不允许INTR。INTR 中断申请中断申请(O)。当外设已将新的)。当外设已将新的数据输入端口(数据输入端口(STB=1,IBF=1),且),且8255允许发允许发中断请求(中断请求(INTE=1)时,)时,INTR输出有效。输出有效。STBIBFINTRRD来自外设来自外设输入数据输入数据3.方式方式2双向双向I/O方式方式特点特点:只用于只用于A口口,既能输入,也能输出;,既能输入,也能输出;C口口 的的5位信号线固定用于联络位信号线固定用于联络(B口只能用口只能用 于方式于方式0/1)。)。应用应用:I/O设备,且设备,且I/O分时操作,用分时操作
9、,用A口作口作I/O端端 口,用中断口,用中断/查询传送。查询传送。PC6/PC4置允许置允许8255口输出口输出/输入时发输入时发INTR。A1 A0 D7 D6 D5 D4 D3 D2 D1 D0 1 1 1 A组方式选择组方式选择 00:方式方式0 01:方式:方式1 C 口低口低 4 位控制位控制 1:方式:方式2 0:输出,:输出,1:输入:输入 B A A口口控制控制 B 口控制口控制 组组 0:输出,:输出,1:输入:输入 0:输出,:输出,1:输入:输入 组组 C 口高口高4位控制位控制 B组方式选择组方式选择 0:输出,:输出,1:输入:输入 0:方式:方式0,1:方式:方式
10、1 8.l.4 8255A的控制字的控制字 1.方式选择控制字方式选择控制字决定三个端口的工作方式决定三个端口的工作方式 例例:8255A的的地地址址为为60H63H。若若规规定定端端口口A工工作作于于方方式式1输输入入,端端口口B工工作作于于方方式式1输输出出,余余下下的的PC7、PC6规规定定为为输输出,则方式选择控制字如右所示。出,则方式选择控制字如右所示。MOV AL,0B4H OUT 63H,AL 2.C口口位操作位操作控制字控制字 设置设置C口各位的值口各位的值 A1 A0 D7 D6 D5 D4 D3 D2 D1 D0 1 1 0 B2 B1 B0 置位控制置位控制 0:置:置0
11、,1:置:置1 位选择位选择 000:选择:选择 PC0 001:选择:选择 PC1 111:选:选择择PC7 例例 置端口置端口C的的D7位为位为1:MOV AL,00001111B;OUT 63H,AL;例例:若若要要从从8255A的的PC7输输出出正正脉脉冲冲,则则可可以以用用以下程序段(设原来的以下程序段(设原来的PC7=0)。)。MOV AL,00001111B;PC7置置1 OUT 63H,AL MOV AL,00001110B ;PC7置置0 OUT 63H,AL0 0 0 0 1 1 1PC7A口方式口方式0下输出;下输出;C口的口的PC6输出选通信号输出选通信号STB;PC2
12、作为输入,接收打印机送来的忙信号作为输入,接收打印机送来的忙信号BUSY。8.1.5 8255A应用举例应用举例例例1.用用8255A作为打印机的接口,工作于方式作为打印机的接口,工作于方式0,CPU用用查询方查询方 式式将将BUFF缓冲区中的缓冲区中的100个字符送打印机打印。个字符送打印机打印。D7D0 ABCPU PA7PA0 8255ACS PC6 PC2A1 A0 打印机打印机STBBUSYDB译译码码驱动驱动判断是否忙判断是否忙判断是否忙判断是否忙初始化初始化初始化初始化程序段:程序段:MOV AL,10000001B ;8255初始化初始化初始化初始化OUT 0A3HOUT 0A
13、3H,AL;MOV AL,00001101B ;置置PC6为为1OUT 0A3H,AL;MOV CX,100;MOV SI,OFFSET BUFF;LOP:IN AL,0A2H ;读打印机状态读打印机状态 TESTAL,04H;JNZLOP ;忙,继续测试忙,继续测试 MOVAL,SI ;闲,输出闲,输出1个字符个字符 OUT0A0H,AL;MOVAL,00001100B;PC6产生选通脉冲产生选通脉冲 OUT0A3H,AL;INCAL;OUT0A3H,AL;INCSI ;修改地址指针修改地址指针 LOOPLOP:例例2,用,用8255A作为作为PC/XT机机和打印机的接口,工作于和打印机的接
14、口,工作于 方式方式1,CPU用用中断方式中断方式将将BUFF缓冲区中的缓冲区中的100 个字符送打印机打印。个字符送打印机打印。D7D0 ABCPU PA7PA0 8255ACS PC4 PC6A1 PC7A0 PC3 打印机打印机STBACKDB译译码码驱动驱动OBFINTR(送送8259A的的IRQ7)A口方式口方式1输出输出;PC口的口的PC4作选通信号作选通信号STB。PC6自动作响应信号自动作响应信号ACK,PC7自动作输出缓冲信号自动作输出缓冲信号OBF,PC3自动作中断信号自动作中断信号INTR (送送8259A的的IRQ7)。初始化初始化初始化初始化82558255CPUCP
15、U自忙自忙自忙自忙打印机打印机打印机打印机自忙自忙自忙自忙设置中断向量设置中断向量设置中断向量设置中断向量SISIBUFFBUFFCX CX 100100设置设置8255中断允许中断允许PC6置置1CPUCPU开中断开中断开中断开中断例例2,用,用8255A作为作为PC/XT机机和和打印机的接口,工作打印机的接口,工作于方式于方式1,CPU用用中断方式中断方式将将BUFF缓冲区中的缓冲区中的100个个字符送打印机打印。字符送打印机打印。D7D0 ABCPU PA7PA0 8255ACS PC4 PC6A1 PC7A0 PC3 打印机打印机STBACKDB译译码码驱动驱动OBFINTR送送825
16、9A的的IRQ7中断发生过程中断发生过程响应中断响应中断响应中断响应中断执行中断执行中断执行中断执行中断服务程序服务程序服务程序服务程序8259INT8259INTINTRINTR主程序主程序设置设置8255A方式方式设置中断向量设置中断向量开放开放IRQ7中断中断 SIBUFF偏偏CX100开开8255A中中断断送送选通信号选通信号开开中中断断 等待等待HLTSISI+1CX-10?关中断关中断END中断子程序中断子程序INTR1送送1个个字符字符送送选通信号选通信号返回返回中断结束中断结束STACKSEGMENTDW256DUP(?);(?);TOPLABEL;STACKENDS;DATA
17、SEGMENTBUFFDB 100 DUP(?);(?);DATAENDS;CODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACK;START:MOV AX,DATA;MOV DS,AX;MOV AX,STACK;MOV SS,AX;MOV SP,OFFSET TOP;MOV AL,10100000B ;8255初始化初始化 MOV DX,063H OUT DX,AL;PUSH DS ;设置中断向量设置中断向量 MOV AX,SEG INTR1;MOV DS,AX;MOV DX,OFFSET INTR1;MOV AX,250FH;INT 21H;POP DS;MOV
18、 DX,021H ;开放开放IRQ7中断中断 IN AL,DX AND AL,7FH OUT DX,AL MOV SI,OFFSET BUFF MOV CX,100 MOV AL,00001101B;PC6=1,8255口口A中断允许中断允许 MOV DX,063H OUT DX,AL;MOV AL,00001001B;PC4产生负脉冲选通打印机产生负脉冲选通打印机 OUT DX,AL;DEC AL OUT DX,AL INC AL OUT DX,AL STI ;CPU开中断开中断LOP:HLT ;等待中断等待中断 INC SI LOOP LOP;MOV AL,00001100B;PC60,关
19、,关A口中断口中断 MOV DX,063H OUT DX,AL;MOV AH,4CH;INT 21H;INTR1 PROC NEAR ;中断服务程序中断服务程序 MOV AL,SI ;送口送口A输出输出 MOV DX,060H OUT DX,AL;MOV AL,00001000B ;选通打印机选通打印机 MOV DX,063HOUT DX,AL;INC AL;OUT DX,AL;MOV DX,020H ;8259中断结束中断结束MOV AL,20H;OUT DX,AL;IRET;INTR1 ENDP CODEENDS;ENDSTART;END例例2,用,用8255A作为打印机的接口,工作于方式
20、作为打印机的接口,工作于方式1,CPU用用中断方式中断方式将将BUFF缓冲区中的缓冲区中的100个字符送打个字符送打印机打印。印机打印。D7D0 ABCPU PA7PA0 8255ACS PC0 PC6A1 PC7A0 PC3 打印机打印机STBACKDB译译码码驱动驱动OBFINTR送送8259A的的IRQ3中断发生过程中断发生过程INTRINTR8255A在在IBM-PC机中的应用机中的应用(一)各端口的用途(一)各端口的用途1.PA口口工作于方式工作于方式0,作为数据输入用,接受,作为数据输入用,接受键盘扫描码。键盘扫描码。2.PB口口工作于方式工作于方式0,作为输出产生控制信号,作为输
21、出产生控制信号PB0:控制扬声器的工作频率,该位为控制扬声器的工作频率,该位为1时允许频时允许频率输出,为率输出,为0关闭频率输出;关闭频率输出;PB1:控制扬声器数据开关,该位为控制扬声器数据开关,该位为1时允许输出,时允许输出,为为0关闭;关闭;PB2:输出键盘测试数据,测试键盘;输出键盘测试数据,测试键盘;PB3:控制读系统配置开关控制读系统配置开关DIP的状态,为的状态,为1则读则读DIP的的高高4位,为位,为0读低读低4位;位;PB4:控制控制RAM奇偶校验位的开启,为奇偶校验位的开启,为0时开启;时开启;PB5:控制控制I/O奇偶校验位的开启,为奇偶校验位的开启,为0时开启;时开启
22、;PB6:控制键盘时钟,为控制键盘时钟,为1时产生键盘时钟;时产生键盘时钟;PB7:控制键盘工作,为控制键盘工作,为1时禁止键盘工作。时禁止键盘工作。3.PC口口工作于方式工作于方式0,作为输入数据用,作为输入数据用PC3PC0:接收系统配置开关接收系统配置开关DIP的高的高4位或位或低低4位;位;PC4:接受已进入扬声器的数据,供接受已进入扬声器的数据,供CPU检测;检测;PC5:接受已进入扬声器的音调,供接受已进入扬声器的音调,供CPU检测;检测;PC6:接受接受I/O通道的校验结果,为高时则产生通道的校验结果,为高时则产生NMI中中断;断;PC7:接受接受RAM的校验结果,为高时则产生的
23、校验结果,为高时则产生NMI中断;中断;(二)(二)8255A在在IBM-PC机中的初始化编程:机中的初始化编程:MOV AL,10011001B;OUT 63H,AL;8.1.1 8255A的内部结构的内部结构(三)三)8255A在在IBM-PC机中的使用:机中的使用:例例1:对:对PB口编程使扬声器发音:口编程使扬声器发音:IN AL,61H;OR AL,03H;使使PB1,PB0=11,其他位不变其他位不变OUT 61H,AL;例例2:允许:允许RAM奇偶校验:奇偶校验:IN AL,61H;AND AL,11101111B;使使PB4=0开启,其余位不变开启,其余位不变OUT 61H,A
24、L;8.1.1 8255A的内部结构的内部结构(1)方式)方式1下的输出方式下的输出方式中断允许中断允许中断允许中断允许输出数据到口输出数据到口输出数据到口输出数据到口A A锁存锁存锁存锁存1 1通知通知通知通知外设外设外设外设取走取走取走取走数据数据数据数据外设外设外设外设取走取走取走取走数据数据数据数据回答回答回答回答1 1输出输出输出输出为为为为1 1表表表表示数示数示数示数据空据空据空据空01(2)方式)方式1下的输入方式下的输入方式外设外设外设外设输入输入输入输入数据数据数据数据并发并发并发并发选通选通选通选通信号信号信号信号数据数据数据数据锁存锁存锁存锁存到口到口到口到口A A中断
25、允许中断允许中断允许中断允许1 1IBFAIBFA变为变为变为变为1 1通通通通知外知外知外知外设满设满设满设满1 10 0118.l.4 8255A的控制字的控制字(必须记住(必须记住!)1.方式选择控制字方式选择控制字用于决定用于决定8255A三个端口的工作方式三个端口的工作方式2.C C口口位操作位操作控制字控制字 设置端口设置端口C各位的值各位的值例如,置端口例如,置端口C的的D7位为位为1:MOV AL,00001111B;OUT 63H,AL;82558086CPU外设外设外设外设1 1外设外设外设外设2 2外设外设外设外设n n第八章第八章 常用接口芯片常用接口芯片并行接口芯片并
26、行接口芯片并行接口芯片并行接口芯片8255A 8255A 定时器定时器定时器定时器/计数器接口芯片计数器接口芯片计数器接口芯片计数器接口芯片82538253串行接口串行接口串行接口串行接口模拟接口模拟接口模拟接口模拟接口1.1.方式方式0 0基本基本I/OI/O方式方式特点:适用于特点:适用于PAPA口、口、PBPB口和口和PCPC口作输入口作输入/输出端口,输出端口,2.2.方式方式1 1选通选通I/O方式方式特点:适用于特点:适用于PAPA口和口和PBPB口作输入口作输入/输出端口,输出端口,PCPC口主口主要作为联络线;要作为联络线;3.3.方式方式2 2双向双向I/OI/O方式方式特点
27、:仅适用于特点:仅适用于PAPA口作双向端口(可输入也可输出),口作双向端口(可输入也可输出),PCPC口主要作为联络线;口主要作为联络线;8.1.3 8255A的工作方式的工作方式主要就是对各端口的主要就是对各端口的主要就是对各端口的主要就是对各端口的工作方式的选择工作方式的选择工作方式的选择工作方式的选择8255编程:编程:1.8255初始化编程:初始化编程:2.8255动态控制过程编程:动态控制过程编程:主要就是对各端口的主要就是对各端口的主要就是对各端口的主要就是对各端口的输入、输出、位控制、输入、输出、位控制、输入、输出、位控制、输入、输出、位控制、中断控制等的具体操作。中断控制等的
28、具体操作。中断控制等的具体操作。中断控制等的具体操作。1.方式方式0基本输入输出方式基本输入输出方式A口、口、B口、口、C口均可以工作在方式口均可以工作在方式0,无需用专用,无需用专用的应答联络信号的应答联络信号;分成彼此独立的分成彼此独立的8位位A口、口、B口及口及4位上位上C口、下口、下C口口四个并行口,由控制字可分别设置成输入或输出口四个并行口,由控制字可分别设置成输入或输出口使用,共有使用,共有 16种不同的使用组态种不同的使用组态(每组只能同时设定每组只能同时设定为输入或输出为输入或输出);与与CPU交换信息不能采用中断的方法,但可用应答交换信息不能采用中断的方法,但可用应答查询方式
29、:通常以查询方式:通常以A口和口和B口作为数据口,而用口作为数据口,而用C口口某些位作为控制与状态信号线使用(某些位作为控制与状态信号线使用(C口中哪条引线口中哪条引线充当何种应答功能,可以由用户来指定);充当何种应答功能,可以由用户来指定);2.方式方式1选通选通I/O方式方式主要是为中断应答式数据传送而设计主要是为中断应答式数据传送而设计;端口端口 A和瑞口和瑞口 B仍作为数据的输出口或输入口,同仍作为数据的输出口或输入口,同时时固定固定C口的某些位作为联络信号口的某些位作为联络信号(C口的其他位仍口的其他位仍可作数据位使用);可作数据位使用);(1)方式)方式1下的输出方式下的输出方式P
30、C7/PC1输出缓冲器满信号输出缓冲器满信号OBFA/OBFB,低电平有效;当低电平有效;当OBF=0时,表示时,表示CPU将新数据写入将新数据写入相应端口的数据缓冲器,外设可依此信号将数据取走,相应端口的数据缓冲器,外设可依此信号将数据取走,同时使同时使OBF=1示空。示空。A A口口口口B B口口口口OUT 60H,ALOUT 60H,ALPC6/PC2响应信号响应信号ACKA/ACKB,低电平低电平有效;外设在有效;外设在OBF=0(缓冲器满缓冲器满)的条件下,用)的条件下,用ACK=0表示将数据取走,同时由表示将数据取走,同时由8255内部逻辑内部逻辑使使OBF=1(示空),在中断允许
31、(示空),在中断允许(INTE=1)时,时,使使INTR=1产生中断请求。产生中断请求。PC3/PC0中断请求信号输出中断请求信号输出INTRA/INTRB说明:说明:PC6/PC2是中断允许位是中断允许位INTEA/INTEB。要开放中断,就要用要开放中断,就要用PC口置口置0/置置1命令使相应位为命令使相应位为1;例如,开放例如,开放INTEA(PC6=1),),操作:操作:MOV AL,00001101B;OUT 63H,AL;(口口C位操作位操作)(2)方式)方式1下的输入方式下的输入方式PC5/PC1输入缓冲器满信号输入缓冲器满信号IBFA/IBFB,高电高电平有效;当平有效;当IB
32、F=1时,表示外设已将数据输入相应端时,表示外设已将数据输入相应端口的数据缓冲器,口的数据缓冲器,CPU可依此信号将数据取走,同可依此信号将数据取走,同时使时使IBF=0示空。示空。A A口口口口B B口口口口3.方式方式2双向选通输入输出方式双向选通输入输出方式可以用中断方式,也可以用查询方式与可以用中断方式,也可以用查询方式与CPU联系联系;方式方式2只有只有8255的的A口才能采用口才能采用;在在A口工作于双向输入输出方式时,固定利用口工作于双向输入输出方式时,固定利用C口的口的5条线作为联络信号线。此时,条线作为联络信号线。此时,B口只能工作在方式口只能工作在方式0或方式或方式1,而,
33、而C口剩下的口剩下的3条线可作为输入输出线使用条线可作为输入输出线使用或用作或用作B口方式口方式1之下的联络线。之下的联络线。PC7输出缓冲器满信号输出缓冲器满信号OBFA;用于用于PC6响应信号响应信号ACKA 输出输出PC5输入缓冲器满信号输入缓冲器满信号IBFA 用于用于PC4选通信号选通信号STBA 输入输入 PC3中断请求信号中断请求信号INTRAINTRAD7D0 ABCPU 8255ACS PC7 PC6A1 PC5A0 PC4 PC3输出设备输出设备OBFAACKADB译译码码A口口输入设备输入设备IBFASTBA说明:说明:PC4/PC2也是中断允许位也是中断允许位INTEA
34、/INTEB,要要开放中断,就要用开放中断,就要用PC口置口置0/置置1命令使相应位为命令使相应位为1;例如,开放;例如,开放INTEA(PC4=1),),操作:操作:MOV AL,00001001B;OUT 63H,AL;(口口C位操作位操作)PC3/PC0中断请求信号输出中断请求信号输出INTRA/INTRBPC4/PC2选通信号选通信号STBA/STBB,低电平有效;低电平有效;外设在外设在IBF=0(缓冲器空)的条件下,用缓冲器空)的条件下,用STB=0将数将数据锁存于数据缓冲器,同时使据锁存于数据缓冲器,同时使IBF=1(示满),在中示满),在中断允许(断允许(INTE=1)时,使时,使INTR=1产生中断请求。产生中断请求。