《《并行接口芯片》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《并行接口芯片》PPT课件.ppt(39页珍藏版)》请在三一办公上搜索。
1、第八章 并行接口芯片,教学重点 8255A的功能 8255A的内部结构、引脚 8255的工作方式和编程 8255的应用,并行数据传输方式,并行传输以计算机的字长为传输单位(通常是8位、16位或32位),一次传送1个字长的数据并行传输微机系统中最基本的信息交换方法例如:系统板上各部件之间,接口电路板上各部件之间适合于外部设备与微机之间进行近距离、大量和快速的信息交换例如:微机与并行接口打印机、磁盘驱动器,第一节 可编程输入输出接口8255A,8255A是INTER系列的并行接口芯片。它是可编程的,可以通过软件来设置芯片的工作方式。一、8255A的结构 1数据端口A、B、C,每个端口8个引脚,共2
2、4个I/O引脚,各端口共有3种输入输出工作方式基本输入/输出(A/B/C口)选通输入或选通输出(A/B口)双向选通(A口),8255A的内部结构和引脚,数据总线缓冲器,内部控制线,内部数据线,D0D7,A组控制,A组端口C上部,B组控制,B组端口B,B组端口C下部,读写控制逻辑,PC0PC3CL口,PB0PB7B口,PC4PC7CH口,PA0PA7A口,RDWRA0A1CSRESET,A组端口A,4.读写控制信号,RESET:复位信号,低电平有效。D7D0:和数据线相连。CS:芯片选择信号,低电平有效。RD:芯片读出信号,低电平有效。WR:芯片写入信号,低电平有效。A1、A0:端口选择信号。A
3、1、A0=00,选中端口A;A1、A0=01,选中端口B;A1、A0=10,选中端口C;A1、A0=11,选中控制端口;,二、8255A的工作方式 P343,方式0:基本输入输出方式(不带联络)适用于无条件传送和查询方式的接口电路方式1:选通输入输出方式(带输入联络或输出联络)适用于查询和中断方式的接口电路方式2:双向选通方式(同时带输入联络和输出联络)适用于可双向传送数据的外设适用于查询和中断方式的接口电路,8255A的控制字,一.控制字:分为两类。芯片各端口的方式选择控制字,它可以使8255A的3个数据端口工作在不同的工作方式。C端口按位置1/0控制字,它可以使C端口中的任何一位进行置位或
4、复位。8255A的3种基本工作方式:方式0:基本的输入/输出方式 方式1:选通的输入/输出方式 方式2:双向的传输方式,1.方式控制字,2.端口C置1/0控制字,0,D7 D6 D5 D4 D3 D2 D1 D0,1=置10=置0,端口C置1/0控制字,0 0 0 PC00 0 1 PC10 1 0 PC20 1 1 PC31 0 0 PC41 0 1 PC51 1 0 PC61 1 1 PC7,端口C置1/0控制字,例1:设A端口工作方式0,输出,B端口工作于方式0,输入。,方式选择控制字:1 0 0 0 1/0 0 1 1/0=10000010=82H,方式选择,A口方式0,A口输出,C口
5、高位不用,B口方式0,B口输入,C口低位不用,注意:端口A可以工作在3种工作方式中的任意一种;端口B只能工作在方式0或方式1;端口C被分为高4位和低4位,可以分别工作在输入方式和输出方式,并不要求同为输入方式或同为输出方式.,例2:设8255A的控制口地址为00EEH,要求对端口C的PC7置1,则控制字00001111B=0FH,要求对端口C的PC3置0,控制字为00000110B=06H。下面的程序可以实现上述要求:MOV AL,0FH;对PC7置1的控制字 MOV DX,00EEH;控制口地址送DX OUT DX,AL;对PC7置1操作 MOV AL,06H;对PC3置0的控制字 OUT
6、DX,AL;对PC3进行置0的操作,三、方式0的功能,1.方式0-基本输入输出方式 任何一个端口可以作为输入口,也可以作为输出口,各端口之间没有规定必须的关系。各个端口输入或输出,可以有16种不同的组合,所以可以适用于多种使用场合。方式0使用场合 两种:一种是同步传送,另一种是查询式传送。,2 方式1选通的输入输出方式,数据输入输出要在选通信号控制下工作.端口A和端口B可以分别作为两个数据口工作于方式1,并且,任何一个端口可以为输入口或输出口。1)方式1输入:A口控制信号的定义:,选同信号输入端,低电平有效,输入缓冲区满信号,低电平有效,它是8255送往CPU的中断请求信号,高电平有效。,中断
7、允许信号,INTE由STB(PC4)置“1”,INTR有效,A口方式1输入有关信号的规定,RD,INTE B,PC2,PC1,PC0,PB7PB0,STBB,IBFB,INTRB,图1:B口方式1输入有关信号的规定,选同信号输入端,低电平有效,输入缓冲区满信号,低电平有效,它是8255送往CPU的中断请求信号,高电平有效。,中断允许信号,INTE由STB(PC2)置“1”,INTR有效,2)方式1输出,图:A口方式1输出有关信号的规定,输出缓冲区满信号,低电平有效,外设响应信号,是外设送给8255A的,中断请求信号,中断允许信号,INTE由PC6(ACKA)置“1”,INTR有效,中断允许信号
8、,INTE由ACKB(PC2)置“1”,INTR有效,输出缓冲区满信号,高电平有效,外设响应信号,是外设送给8255A的,中断请求信号,B口方式1输出有关信号的规定,3)方式1的使用场合 在采用中断方式进行输入/输出的场合,如果外部设备能为8255A提供选通信号或着数据接收应答信号,那么,通常使用8255A的端口工作方式1的情况。,3.方式2双向传输方式 方式2只适用于端口A 端口A工作于方式2时,端口C用5个数位自动配合端口A提供控制。,方式2的控制信号,输出缓冲区满信号,外设收到数据,发响应信号,外设准备好数据,发选通信号,8255A收到数据,向外设发输入缓冲区满信号,8255A使用举例:
9、,例1、用8255A控制三个发光二极管依秩序循环显示。1、硬件设计:,用8255A控制三个发光二极管显示。假设开关闭合时,点亮发光二极管,开管断开时息灭二极管。8255A的端口地址为:A 端口:0040H B 端口:0042H C 端口:0044H 控制口:0046H 试编写8255初始化程序段和控制三个发光二极管显示程序段。,开始,8255A初始化,延时,2号亮,延时,3号亮,1号亮,延时,启动?,Y,返回DOS,N,2、软件设计1)设A口为输出口,方式0。B口输入,方式0,则方式选择控制字为82H。2)A口输出代码:0000 0110 06H,1号发光二极管亮 0000 0101 03H,
10、2号发光二极管亮 0000 0011 04H,3号发光二极管亮3)软件延时(1).1ms的软件延时参考程序:设系统的CPU的频率为8MHZ,则时钟节拍为:0.125微秒。执行PUSHF、POPF、LOOP指令需29个节拍。延迟1毫秒要循环的次数:,DELAY PROC NEAR PUSH CXSTAR20T:MOV CX,275;送循环次数 LP1:PUSHF;PUSHF、POPF、LOOP需29个节拍。POPF LOOP LP1 POP CX RETDELAY ENDP,DATA SEGMENTport3 EQU 046H;8255A控制口地址port1 EQU 040H;8255A的A口地
11、址port2 EQU 042H;8255A的B口地址LED DB 06H,03H,04H;LED显示值DATA ENDPSTACK SEGMENTSTA1 DW 50 DUP(?)TOP1 EQU LENGTH STA1STACK ENDPCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK.MOV DX,port3MOV AL,82H;方式0,OUT DX,AL;A口为输出,B口为输入DON:MOV DX,port2;B口地址 MOV AL,DX;读 B口输入值 AND AL,01H;测PB0=0?启动?JNZ DON;非0,退出;否则,使灯亮 MOV D
12、X,port1;A口地址 MOV BX,OFFSET LED;1号灯代码地址 MOV AL,BX OUT DX,AL;1号灯亮 CALL DELAY;调延时程序 INC BX MOV AL,BX OUT DX,AL;2号灯亮,1号灯灭 CALL DELAY,INC BX MOV AL,BX OUT DX,AL;3号灯亮,2号灯灭 CALL DELAY JMP DONEXIT:MOV AH,4CH INT 21H.DEALY PROC NEAR;软件延时.RET DEALY ENDPCODE ENDS END,例2:8255A工作于方式1,作为用中断方式工作的Centronics 360字符打印
13、机的接口.A端口为数据口,方式1,输出方式,PC7作为输出缓冲器满OBF信号,PC6作为外设响应信号ACK,PC3作为INTR信号。端口地址:A端口:00C0H,B端口:00C2H C端口:00C4H 控制口:00C6H;控制字:1010 0000B=0A0H,1).初始化8255A程序段:MOV AL,0A0H;主程序段 OUT 0C6H,AL;设置8255A的控制字 MOV AL,0CH;置PC6=1控制字 OUT 0C4H,AL;使INTE(PC6)为0,禁止中断2).用查询方式输出10个字符程序段:MOV CX,10 MOV SI,OFFSET BUF;取缓冲区首地址P1:MOV AL
14、,DI;取一个字符 MOV 0C0H,AL;从A口输出P2:MOV AL,0C4;读口C TEST AL,80H;检测OBF(PC7)为1?JZ P2;为0,继续检测 INC DI;为1,数据已输出,准备下次输出 LOOP P1,例题:8255端口A工作于方式0,输出8位数字信息到DAC0832;端口B工作于方式1输入,接收模数转换输入信号.8255方式0输出,控制字:1 0 0 0 0 1 1 0=86H,方式选择,A口方式0,A口输出,C口高4输出,B口方式1,B口输入,C口低位不用,PC2自动作STB信号,PC7作ADC0809的启动转换信号.,1)初始化8255A:MOV DX,825
15、5_CTRL;8255A控制端口地址送DXMOV AL,86H;设8255端口方式0输出,端口B方式1输入OUT DX,AL;C口高4位输出MOV AL,05HMOV DX,AL;置PC2=1,允许中断2)用8255A的PC7启动ADC0808:MOV DX,8255_C;8255A端口C地址送DXMOV AL,80H;PC7输出1OUT DX,ALMOV AL,0OUT DX,AL;PC7输出0,启动ADC0809,;-sound-;DI=freq,bx=delaytimesound proc near push ax push bx push cx push di mov al,0b6h;Timer2,MODE3 out 43h,al mov dx,0020h mov ax,34deh div di out 42h,al mov al,ah out 42h,al in al,61h;read PB mov ah,al or al,3;PB0=1,PB1=1 out 61h,al wait1:mov cx,07fffh delay:loop delay dec bx jnz wait1 mov al,ah out 61h,al pop di pop cx pop bx pop ax ret sound endp,