收藏 分享(赏)

第9章8255接口-教程.ppt

上传人:天天快乐 文档编号:1139883 上传时间:2018-06-14 格式:PPT 页数:75 大小:623.50KB
下载 相关 举报
第9章8255接口-教程.ppt_第1页
第1页 / 共75页
第9章8255接口-教程.ppt_第2页
第2页 / 共75页
第9章8255接口-教程.ppt_第3页
第3页 / 共75页
第9章8255接口-教程.ppt_第4页
第4页 / 共75页
第9章8255接口-教程.ppt_第5页
第5页 / 共75页
点击查看更多>>
资源描述

1、第9章 可编程并行接口8255A,9.1 可编程并行接口8255A9.2 8255A的控制字9.3 方式0基本的输入/输出方式9.4 方式1选通的输入输出方式9.5 方式2双向传输方式本章小结本章习题,9.1 可编程并行接口8255A,8255A是INTER系列的并行接口芯片。它是可编程的,可以通过软件来设置芯片的工作方式。一、8255A的内部结构 18位数据端口A、B、C 每个端口:输入带缓冲寄存器, 输出带锁存寄存器。 2A组控制和B组控制 3读/写控制逻辑电路 4数据总线缓冲器,9.1: 8255A的内部结构,9.1: 8255A的内部结构,数据总线,片选信号,读写控制,地址总线,8位端

2、口A,8位端口B,8位端口C,图10-1 8255A的内部结构,5.读写控制信号,RESET:复位信号,低电平有效。D7D0 :和数据线相连。CS :芯片选择信号,低电平有效。RD :芯片读出信号,低电平有效。WR :芯片写入信号,低电平有效。A1、A0:端口选择信号。A1、A0=00,选中端口A;A1、A0=01,选中端口B;A1、A0=10,选中端口C;A1、A0=11,选中控制端口;,9.1:读写控制信号,9.1:8255引脚,二、8255的引脚,8位端口A,8位端口B,8位端口C,图10-2 8255的引脚图,数据总线,读写控制,提问1:,并行接口芯片8255与CPU接口有哪些信号线,

3、每个信号的用途是什么? 8255占用几个端口地址?各个端口分别对应什么?端口C可以分为两组吗?,9.1:提问,9.2 8255A的控制字,控制字:分为两类端口的方式选择控制字,可使8255A的3个数据端口工作在不同的方式。C端口按位置1/0控制字,它可使C端口中的任何一位进行置位或复位。8255A的3种基本工作方式: 方式0:基本的输入/输出方式 方式1:选通的输入/输出方式 方式2:双向的传输方式,9.2:控制字,1.方式控制字,方式选择标志,A组方式:00:方式001 :方式1 10 :方式2,端口A:1:输入0:输出,PC7PC4:1:输入0:输出,B组方式0:方式01 :方式1,端口B

4、:1:输入0:输出,PC3PC0:1:输入0:输出,9.2:方式控制字,例9-1:设A端口工作方式0,输出, B端口工作于方式0,输入。,方式选择控制字: 1 0 0 0 1/0 0 1 1/0 = 82H,9.2:方式控制字例题,注意:,端口A可以工作在方式0、方式1或方式2;端口B只能工作在方式0或方式1;端口C则常常配合端口A和端口B工作。 归为同一组的两个端口可以分别工作在输入方式和输出方式,不要求同为输入方式或同为输出方式,而具体工作在那 个端口,由方式控制字来决定。,9.2:方式控制字注意事项,2. 端口C置1/0控制字,0 0 0 PC00 0 1 PC10 1 0 PC20 1

5、 1 PC31 0 0 PC41 0 1 PC51 1 0 PC61 1 1 PC7,图5、端口C置1/0控制字,9.2:端口C置1/0控制字,注意:,C端口置1/0控制字尽管是对端口C进行操作,但此控制字必须写入控制口,而不是写入C端口。C端口置1/0控制字的D0决定了是置1操作还是置0操作。置1/0控制字的D3、D2、D1位决定了对C端口的那一位进行操作。,9.2:端口C置1/0控制字注意,例9-2:设8255A的控制口地址为0223H,要对端口C的PC7置1,则控制字00001111B=0FH,要对端口C的PC3置0,控制字为00000110B=06H。下面的程序可以实现上述要求:POR

6、T_C DW 223HMOV DX , PORT_C ;控制口地址送DX MOV AL , 0FH ;对PC7置1的控制字OUT DX , AL ;对PC7置1操作 MOV AL , 06H ;对PC3置0的控制字 OUT DX , AL ;对PC3进行置0的操作,9.2:端口C置1/0控制字例题,提问2:,8255A的方式选择控制字和置1/置0控制字都是写入控制端口的,那么,它们是由什么来区分的?,9.2:控制字提问,9.3 8255A的工作方式0,8255A的3种基本工作方式:方式0:基本的输入/输出方式方式1:选通的输入/输出方式方式2:双向的传输方式,9.3:工作方式,一、方式0-基本

7、输入输出方式功能, 任何一个端口可以作为输入口,也可以作为输出口。 各个端口输入或输出,可以有16种不同的组合,所以可以适用于多种使用场合。方式0使用场合 两种: 一种是同步传送, 另一种是查询式传送。,9.3:工作方式0功能,二、方式0的输入时序,9.3:工作方式0时序,图10-3方式0的输入时序,例9-3:用8255A控制三个发光二极管依秩序循环显示。,9.3:工作方式0例题,图10-4 8255方式0的应用,用8255A控制三个发光二极管显示。8255A的端口地址为: A 端口:340H B 端口:341H C 端口:342H 控制口:344H 试编写8255初始化程序段和控制三个发光二

8、极管显示程序段。,9.3:工作方式0例题,开始,8255A初始化,延时,BX显示代码地址,CX=0?,Y,N,BX=BX+1CX=CX-1,CX 3,输出到A口,1、程序框图:,9.3:工作方式0例题,图10-5,2、软件设计1)设A口为输出口,方式0。B口输入,方式0,则方式选择控制字为82H。2)A口输出代码: 0000 0110 06H ,1号发光二极管亮 0000 0101 05H ,2号发光二极管亮 0000 0011 03H ,3号发光二极管亮3)软件延时(1).1ms的软件延时参考程序: 设系统的CPU的频率为8MHZ,则时钟节拍为:0.125微秒。执行PUSHF、POPF、LO

9、OP指令需29个节拍。延迟1毫秒要循环的次数:,9.3:工作方式0例题,参考程序:DATA SEGMENTCOTR EQU 346H ;8255A控制口地址PB_A EQU 340H ;8255A的A口地址LED DB 06H,05H,03H;LED显示值DATA ENDPCODE SEGMENTASSUME CS:CODE,DS:DATA . MOV DX,COTR MOV AL,82H ;方式0 OUT DX, AL ;A口为输出,B口为输入 MOV DX, PB_A ;A口地址,9.3:工作方式0例题,LP: MOV CX,3 LEA BX, LED ; 1号灯代码地址 DON: MOV

10、 AL, BX OUT DX, AL ;1,2,3循环点亮 CALL DELAY ;调延时程序 INC BX DEC CX JNZ DON JMP LPDEALY PROC NEAR ;软件延时 .DEALY ENDPCODE ENDS END,9.3:工作方式0例题,思考题:用8255A控制三个发光二极管依秩序循环显示。假设开关闭合时,点亮发光二极管,开关断开时息灭二极管。,9.3:工作方式0例题,图10-6,提问3:,8255A的方式0一般使用在什么场合?在方式0时,如要使用应答信号进行联络,应该怎么办?,9.3:工作方式0提问,例9-4、 8255A作为连接打印的查询式接口,工作于方式0

11、,如图10-7所示。(1)编写程序,完成8255初始化;(2)将缓冲区BUF开始的10个字符送打印机打印。设8255A的端口地址为: A端口:00D0H C端口: 00D2H B端口:00D1H 控制口:00D3H 工作过程:当主机要往打印机输出字符时,先查询打印机忙信号,如果打印机正在处理一个字符或在打印一行字符,则忙信号为1,否则为0。 PC2作为打印机忙信号,PC6作为数据选通信号,将数据线上的数据装入打印机缓冲器。,9.3:工作方式0例题打印机,打印机驱动流程图:,9.3:工作方式0例题打印机,图 10-7,CONTR-W EQU 0D3HPORT-A EQU 0D0HPORT-C E

12、QU 0D2HBUF DB BCDEFGHIJK PP: MOV AL ,81H ;8255工作方式字 OUT D3H , AL ;A口方式0,输出, PC47输出,PC03输入 MOV AL , 0DH ;PC6置1 OUT D3H ,AL MOV S I , OFFSET BUF ;打印字符内存地址 MOV CX, 10 ;打印字符个数LPST : IN AL , D2H ;读C口 AND AL , 04H ;查PC2=0? JNZ LPST ;忙,等待;不忙,送数,9.3:工作方式0例题打印机,MOV AL,SI ;从内存取数 OUT 0D0H ,AL ;送数到A口 MOV AL , 0

13、0001100B ;将PC6置0(STB为低) OUT 0D3H ,AL ;AL 0000 1100 B NOP NOP ; 延时 INC AL ;AL0000 1101 B OUT 0D3H , AL ;再使STB(PC6)为1 INC SI ;内存地址+1 DEC CX ;字符数 - 1 JNZ LPST HLT,9.3:工作方式0例题打印机,例9-5:扬声器接口:计数器2输出896HZ方波,送扬声器。工作于模式3.8255A控制8253的门控信号与扬声器的开启。,8255端口地址:PA端口:60HPB端口: 61HPC端口: 62H控制口:63H,8253端口地址:定时器通道0:40H定

14、时器通道1: 41H定时器通道2: 42H控 制 端 口: 43H,9.3:工作方式0例题扬声器接口,图10-7,定时计数器8253工作在方式3下,预置初值为 533H(1331D),输出频率为:1.1931816 MHZ / 1331 = 896 HZ,由系统并行接口芯片8255的PB口的最低两位: PB0(TIM2GATESPK):控制8253定时器 PB1(SPKRDATA) : 控制喇叭发声,9.3:工作方式0例题扬声器接口,提问4:,系统中,喇叭只产生 896HZ 的音调。如果想改变这个音调,使喇叭产生任意频率的音调,该怎么做?,控制发声频率 改变计数初值 计数初值 = 1.1931

15、816 MHZ / 给定频率 控制声音长短 延时 改变 8253 计数器0 的计数初值,使其可以以任意时间申请中断; 延时子程序 ; 因此,可得使喇叭发声的频率和时间,可以控制喇叭发声了。,9.3:工作方式0例题扬声器接口,主要参考程序代码: ; 8253初始化程序:MOV AL,10110110B ;计数器2,模式3,初值16位,二进制OUT 43H, ALMOV AX, 1983 ;计数初值=1.19MHZ600HZ=1983OUT 42H,AL ;送计数初值低位字节MOV AL,AHOUT 42H,AL次 ;送计数初值高位字节 ; 8255控制程序: IN AL,61H ;读8255的P

16、B口原输出 MOV AH,AL ;保留到AH OR AL,03H ;使PB0PB1均为1 OUT 61H,AL ;打开GATE2门,输出方波到扬声器 HLT,9.3:工作方式0例题扬声器接口,将扬声器程序写成子程序,便于调用:SSP PROC NEAR;8253初始化:MOV AL,10110110B ;计数器2,模式3,初值16位,二进制OUT 43H, ALMOV AX, 1983 ;计数初值=1.19MHZ600HZ=1983OUT 42H,AL ;送计数初值低位字节MOV AL,AHOUT 42H,AL次 ;送计数初值高位字节,9.3:工作方式0例题扬声器接口,;8255控制程序: I

17、N AL,61H ;读8255的PB口原输出值 MOV AH,AL ;保留到AH OR AL,03H ;使PB0PB1均为1 OUT 61H,AL ;打开GATE2门,输出方波到扬声器 SUB CX, CX ;CX为循环次数,最大为216L: LOOP L ;延时 DEC BL ;BL为子程序入口条件 JNZ L ;BL=6,发长声(3S),BL=1发短声(0.5S) MOV AL,AH ;取回8255的PB口原输出值 OUT 61H, AL ; 恢复8255PB口,停止发声 RETSSP ENDP,9.3:工作方式0例题扬声器接口,9.4 方式1选通的输入输出方式,数据输入输出要在选通信号控

18、制下工作.端口A和端口B可以分别作为两个数据口工作于方式1端口A和端口B任何一个端口可以为输入口或输出口。,9.4:工作方式1,1)方式1输入:A口控制信号的定义:,方式1输出,C端口提供联络信号:,9.4:工作方式1,图10-8 方式1输入有关信号的规定,9.4:方式1输入有关信号的规定,选通信号输入端,低电平有效,输入缓冲区满信号,,它是8255送往CPU的中断请求信号,高电平有效。,中断允许信号,INTE由PC4置“1”,INTR有效,A口方式1输入有关信号的规定,数据输入口,9.4:方式1 A口输入有关信号的规定,9.4:方式1 输入时序,图10-9,方式1输出,C端口提供联络信号:,

19、2)方式1, A口输出, 方式控制字:,9.4:方式1输出,图10-10方式1输出有关信号的规定,9.4:方式1输出有关信号的规定,中断允许信号,INTE由PC6置“1”,INTR有效,数据输出口,9.4:方式1输出时序,图10-11,例106:8255A端口A工作在方式1,A口输入,允许A口中断,编写初始化程序。 MOV DX,PCTR ;控制口地址送DXMOV AL,10110000B ;A口方式1输入 OUT DX,ALMOV AL,00001001B ;置PC4=1,允许中断OUT DX,AL ;,9.4:方式1例题,提问5:,8255工作在方式1,输入和输出时中断服务程序各完成什么功

20、能?,9.4:方式1提问,例9-7:8255A工作于方式1,作为用中断方式工作的Centronics 360字符打印机的接口.A端口为数据口,方式1,输出方式,PC7作为输出缓冲器满OBF信号,PC6作为外设响应信号ACK,PC3作为INTR信号。端口地址: A端口:00C0H,B端口:00C2H C端口:00C4H 控制口:00C6H; 控制字:1010 0000B=0A0H,1).初始化8255A程序段: MOV AL,10100000B ;设置8255A的控制字 OUT 0C6H,AL ;A口方式1输出2) 设中断向量:(假设IR3类型码为0AH) 0AH428H CLIPUSH DSX

21、OR AX,AX MOV DS,AXMOV AX,OFFSET INT-3MOV WORD PTR 0028H,AXMOV AX,SEG INT-3MOV WORD PTR 002AH,AXPOP DSSTI ;CPU开中断 MOV AL,0CH ;置PC6=1控制字 OUT 0C4H,AL ;使INTE(PC6)为1, 8255开中断,MOV CX,10 MOV SI,OFFSET BUF ;取缓冲区首地址DON1: JCXZ DO JMP DON1 ;等待中断DON2: HLT3).用中断方式输出10个字符程序段:INT-3 PROC NEAR MOV AL,DI ;取一个字符 MOV 0

22、C0H,AL ;从A口输出 INC SI DEC CX IRETINT-3 ENDP,查询式方式输出数据: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,DI ;取一个字符 MOV 0C0H,AL ;从A口输出P2: MOV AL,0C4 ;读口C TEST AL,80H ;检测OBF(P

23、C7)为1? JZ P2 ;为0,继续检测 INC DI ;为1,数据已输出, 准备下次输出 LOOP P1,例98:8255A方式1输入应用:某8位A/D转换器,与8255的连接如下图,PC7做启动AD转化信号,AD转化结束信号EOC接PC4,作为选通信号STB。A/D转换启动为高电平。假设8255作为查询式输入接口,分析工作原理。编写8255初始化与输入一个数据的程序。,9.4:方式1例题A/D转换接口,图10-12,采用查询式输入:注意到8255方式1输入时,数据准备好后,IBF=1,因此可以通过查询IBF的状态。主要参考程序代码:MOV DX,PCTR ;控制口地址送DXMOV AL,

24、10110000B ;A口方式1输入,PC7输出 OUT DX,ALMOV AL,00001110B ;置PC7=0,禁止A/DOUT DX,ALMOV AL,00001111B ;置PC7=1,启动A/DOUT DX,AL,9.4:方式1例题A/D转换接口,L:MOV DX,POT_C ;C口地址送DX IN AL,DX TEST 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,

25、读数据 ; 数据读出后,自动撤销IBF(0)HLT,9.4:方式1例题A/D转换接口,提问6: 如果采用中断方式输入,程序如何设计?提示:将8255中断请求端INTRA(PC3)接8259输入端,使中断请求能引入CPU允许8255端口A中断,设INTEA=1,即设PC4=1当数据进入8255端口A时,8255的INTRA(PC3)发中断请求申请,CPU响应后即可读数据,9.4:方式1提问,3)方式1的使用场合 在采用中断方式进行输入/输出的场合,如果外部设备能为8255A提供选通信号或数据接收应答信号,那么,通常使用8255A的端口工作方式1的情况。,9.4:方式1使用,思考题: 8255A的

26、三个端口在使用时,有什么差别?提 示:通常A端口与B端口可作为独立的输入输出端口,C端口则配合A、B端口工作,提供控制信号、状态信息。,9.5 方式2双向传输方式 方式2只适用于端口A,双向并行通信 端口A工作于方式2时,端口C用5个数位自动配合端口A提供控制。注意:端口A可工作在3种方式中的任意一种;端口B只能工作在方式0或方式1; 端口C被分为高4位和低4位,可以分别工作在输入方式和输出方式,并不要求同为输入方式或同为输出方式.,9.5:工作方式2,方式2,C端口提供的联络信号:,9.5:工作方式2,图 10-13 方式2工作的控制信号,9.5:工作方式2,图10-21 画出了一个数据输出

27、过程和一个数据输入的时序.,9.5:工作方式2时序,图10-14,例题,本章小结,8255功能结构8255与CPU的连接8255的端口地址8255的工作方式重点掌握方式的应用,习题91.总结8255A端口C的使用特点。2.设定8255A的口A为方式1输入,口B为方式1输出,则读取口C的数据的各位是什么含义?3.对8255A的控制寄存器写入BOH,则其端口C的PC0引脚是什么作用的信号线? 4.设一工业控制系统,有四个控制点,分别由四个对应的输入端控制,现用8255A的C口实现该系统的控制,如图1。开关K0K3打开则对应发光二极管L0L3亮,表示系统该控制点运行正常;开关闭合则对应发光二极管不亮

28、,说明该控制点出现故障。编写8255A的初始化程序和这段控制程序。,图10-1,;8255方式设置,C口低半部分为输入,C口高半部分为输出MOVAL, 10000001BOUT63H, ALL1:IN AL, 62H;查询开关状态MOV CL, 4ROL AL, CL ;AL中高4位与低4位交换 OUT 62H, AL JMPL1;循环查询开关状态,5.编一初始化程序,使8255A的PC5端输出一个负跳变。如果要求PC5端输出一个负脉冲则初始化程序又是什么情况? 初始化程序: MOV AL,0000 1011 H ;PC5置“1”控制字AL MOV DX,343H ;控制口地址DX OUT D

29、X,AL ;置“1”控制字控制寄存器 MOV AL,00001010B ;PC5置“0”控制字AL OUT DX , AL ;置“0”控制字控制寄存器 如果要求PC5输入一个负脉冲则再加两条指令: MOV A L ,00001011 OUT DX,AL,习题课:并行接口8255A,并行接口芯片8255与CPU接口有哪些信号线,每个信号的用途是什么? 8255占用几个端口地址?各个端口分别对应什么?端口C可以分为两组吗?,1.方式控制字,2. 端口C置1/0控制字,1=置10=置0,端口C置1/0控制字标志,0 0 0 PC00 0 1 PC10 1 0 PC20 1 1 PC31 0 0 PC

30、41 0 1 PC51 1 0 PC61 1 1 PC7,图、端口C置1/0控制字,8255A的3种基本工作方式方式0:基本的输入/输出方式方式1:选通的输入/输出方式方式2:双向的传输方式,例题9.1: 试编写一程序,使 IBM PC机系统板上的发声电路发出200Hz至900Hz频率连续变化的报警声. PC/XT微机系统中用作定时及计数的8253芯片的端口地址为40H43H, CLK2输入频率为1.19MHz。每次以不同频率发声,调用软件延时DELAY完成延时?,; 8255初始化程序:MOV AL,10000000B ;8255端口B方式0输出OUT 63H, AL; 8255控制程序:M

31、OV AL ,00000011B ;使PB0PB1均为1OUT 61H,AL ;打开GATE2门,输出方波到扬声器; 8253初始化程序:MOV AL,10110110B ;计数器2模式3,初值16位,二进制OUT 43H, AL,; 8253送计数初值,启动计数MOV CX,5950MOV AX, CX ;计数初值5950,频率200HZ开始OUT 42H,AL ;送计数初值低位字节MOV AL,AHOUT 42H,AL次 ;送计数初值高位字节L : JMP L ;等待中断,INT-SERV: DEC CX CMP CX,1321 JZ STOP ;已经到900HZ,停止 MOV AX, CX ;重装计数初值,频率200HZ开始到900HZOUT 42H,AL ;送计数初值低位字节MOV AL,AHOUT 42H,AL次 ;送计数初值高位字节STOP:IRET,计数初值Nmax1.19MHZ/200HZ=5950Nmin=1.19MHZ/900HZ=1322,

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

当前位置:首页 > 实用文档 > 简明教程

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


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

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

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