微型计算机原理可编程并行接口_第1页
微型计算机原理可编程并行接口_第2页
微型计算机原理可编程并行接口_第3页
微型计算机原理可编程并行接口_第4页
微型计算机原理可编程并行接口_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第十章 可编程并行接口8255A,10.1 可编程并行接口8255A 10.2 8255A的控制字 10.3 方式0基本的输入/输出方式 10.4 方式1选通的输入输出方式 10.5 方式2双向传输方式 10.6 8255A的应用举例,10.1 可编程并行接口8255A,一、8255的引脚,10.1 可编程并行接口8255A,二、8255A的内部结构,10.1 可编程并行接口8255A,8255A是INTER系列的并行接口芯片。它是可编程的,可以通过软件来设置芯片的工作方式。 1数据端口A、B、C 它有三个输入/输出端口:Port A、Port B和Port C。每一个端口都是8位,都可以选择

2、作为输入或输出。 每个端口:输入带缓冲寄存器, 输出带锁存寄存器。 2A组控制和B组控制 这是两组根据CPU的命令字控制8255A工作方式的电路。它们有控制寄存器,接受CPU输出的命令字,然后分别决定两组的工作方式,也可根据CPU的命令字对端口C的每一位实现按位“复位”或“置位”操作。,10.1 可编程并行接口8255A,A组控制电路端口A和端口C的上半部。 B组控制电路端口B和端口C的下半部。 3读/写控制逻辑电路 它与CPU的地址总线中的A1、A0以及有关的控制信号相连,由它控制把CPU的控制命令或输出数据送至相应的端口;也由它控制把外设的状态信息或输入数据通过相应的端口,送至CPU。 4

3、数据总线缓冲器 是一个三态双向8位缓冲器,它是8255A与系统数据总线的接口。,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,选中控制端口;,10.1 可编程并行接口8255A,提问1:,并行接口芯片8255与CPU接口有哪些信号线,每个信号的用途是什么? 8255占用几个端口

4、地址?各个端口分别对应什么? 端口C可以分为两组吗?,10.1 可编程并行接口8255A,10.2 8255A的控制字,控制字:分为两类 端口的方式选择控制字,可使8255A的3个数据端口工作在不同的方式。 C端口按位置1/0控制字,它可使C端口中的任何一位进行置位或复位。 8255A的3种基本工作方式: 方式0:基本的输入/输出方式 方式1:选通的输入/输出方式 方式2:双向的传输方式,10.2 8255A的控制字,1.方式控制字,10.2 8255A的控制字,1,例101:设A端口工作方式0,输出, B端口工作于方式0,输入。,方式选择控制字: 1 0 0 0 1/0 0 1 1/0 =

5、82H,10.2 8255A的控制字,注意:,端口A可以工作在方式0、方式1或方式2;端口B只能工作在方式0或方式1;端口C则常常配合端口A和端口B工作。 归为同一组的两个端口可以分别工作在输入方式和输出方式,并不要求同为输入方式或同为输出方式,而具体工作在那 个端口,由方式控制字来决定。,10.2 8255A的控制字,2. 端口C置1/0控制字,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,端口C置1/0控制字,10.2 825

6、5A的控制字,注意:,C端口置1/0控制字尽管是对端口C进行操作,但此控制字必须写入控制口,而不是写入C端口。 置1/0控制字的D0决定了是置1操作还是置0操作。 置1/0控制字的D3、D2、D1位决定了对C端口的那一位进行操作。,10.2 8255A的控制字,例102:设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

7、置1操作 MOV AL , 06H ;对PC3置0的控制字 OUT DX , AL ;对PC3进行置0的操作,10.2 8255A的控制字,提问2:,8255A的方式选择控制字和置1/置0控制字都是写入控制端口的,那么,它们是由什么来区分的?,10.2 8255A的控制字,10.3 8255A的工作方式0,8255A的3种基本工作方式: 方式0:基本的输入/输出方式 方式1:选通的输入/输出方式 方式2:双向的传输方式,10.3 工作方式,一、方式0-基本输入输出方式功能, 任何一个端口可以作为输入口,也可以作为输出口。 各个端口输入或输出,所以可以适用于多种使用场合。 方式0使用场合 两种:

8、 一种是同步传送, 另一种是查询式传送。,10.3 工作方式0,二、方式0的时序,10.3 工作方式0,10.3 工作方式0,输出设备,输入设备,选通,准备好,准备好,清除,例103:用8255A控制三个发光二极管依秩序循环显示。,10.3 工作方式0,用8255A控制三个发光二极管显示。8255A的端口地址为: A 端口:F0H B 端口:F2H C 端口:F4H 控制口:F6H 试编写8255初始化程序段和控制三个发光二极管显示程序段。,10.3 工作方式0,开始,8255A初始化,延时,BX显示代码地址,CX=0?,Y,N,BX=BX+1 CX=CX-1,CX 3,输出到A口,1、程序框

9、图:,10.3 工作方式0,2、软件设计 1)设A口为输出口,方式0。B口输入,方式0,则方式选择控制字为82H。 2)A口输出代码: 0000 0110 06H ,0号发光二极管亮 0000 0101 05H ,1号发光二极管亮 0000 0011 03H ,2号发光二极管亮 3)软件延时 (1).1ms的软件延时参考程序: 设系统的CPU的频率为8MHZ,则时钟节拍为:0.125微秒。执行PUSHF、POPF、LOOP指令需29个节拍。延迟1毫秒要循环的次数: 计数初值: n= fclk t,10.3 工作方式0,参考程序: DATA SEGMENT COTR EQU F6H ;8255A

10、控制口地址 PB_A EQU F0H ;8255A的A口地址 LED DB 06H,05H,03H;LED显示值 DATA ENDP CODE SEGMENT ASSUME CS:CODE,DS:DATA . MOV DX,COTR MOV AL,82H ;方式0 OUT DX, AL ;A口为输出,B口为输入 MOV DX, PB_A ;A口地址,10.3 工作方式0,LP: MOV CX,3 LEA BX, LED ; 0号灯代码地址 DON: MOV AL, BX OUT DX, AL ;0,1,2循环点亮 CALL DELAY ;调延时程序 INC BX DEC CX JNZ DON

11、JMP LP DEALY PROC NEAR ;软件延时 . DEALY ENDP CODE ENDS END,10.3 工作方式0,思考题:用8255A控制三个发光二极管依秩序循环显示。假设开关闭合时,点亮发光二极管,开管断开时息灭二极管。,10.3 工作方式0,提问3:,8255A的方式0一般使用在什么场合?在方式0时,如要使用应答信号进行联络,应该怎么办?,10.3 工作方式0,例10-4、 8255A作为连接打印的查询式接口,工作于方式0,如图所示。设8255A的端口地址为: A端口:00D0H C端口:00D4H B端口:00D2H 控制口:00D6H 工作过程:当主机要往打印机输出

12、字符时,先查询打印机忙信号,如果打印机正在处理一个字符或在打印一行字符,则忙信号为1,否则为0。 PC2作为打印机忙信号,PC6作为数据选通信号,将数据线上的数据打入打印机缓冲器。,10.3 工作方式0,打印机驱动流程图:,10.3 工作方式0,PP: MOV AL ,81H ;8255工作方式字 OUT D6H , AL ;A口方式0,输出, ;C47输出,C03输入 MOV AL , 0DH ;PC6置1 OUT D6H ,AL MOV S I , 200H ;打印字符内存地址 MOV CX, 0FFH ;打印字符个数 LPST : IN AL , D4H ;读C口 AND AL , 04

13、H ;查PC2=0? JNZ LPST ;忙,等待;不忙,送数 MOV AL,SI ;从内存取数 OUT 0D0H ,AL ;送数到A口,10.3 工作方式0,MOV AL , 00001100B ;将PC6置0(STB为低) OUT 0D6H , AL ;AL 0000 1100 B NOP NOP ; 延时 INC AL ;AL0000 1101 B OUT 0D6H , AL ;再使STB(PC6)为1 INC SI ;内存地址+1 DEC CX ;字符数 - 1 JNZ LPST HLT,10.3 工作方式0,10.4 方式1选通的输入输出方式,数据输入输出要在选通信号控制下工作. 端

14、口A和端口B可以分别作为两个数据口工作于方式1,并且,任何一个端口可以为输入口或输出口。 1)方式1输入:A口控制信号的定义:,10.4 工作方式1,10.4 方式1,图10-8 方式1输入有关信号的规定,PA7PA0,选通信号输入端,低电平有效,输入缓冲区满信号,,它是8255送往CPU的中断请求 信号,高电平有效。,中断允许信号,INTE由PC4置“1”,INTR有效,A口方式1输入有关信号的规定,数据输入口,10.4 方式1,10.4 方式1,图10-9方式1输出有关信号的规定,10.4 方式1,端口B输出,2)方式1输出,10.4 方式1,例106:8255A端口A工作在方式1,A口输

15、入,允许A口中断,编写初始化程序。 MOV DX,PCTR ;控制口地址送DX MOV AL,10110000B ;A口方式1输入 OUT DX,AL MOV AL,00001001B ;置PC4=1,允许中断 OUT DX,AL ;,10.4 方式1,提问5:,8255工作在方式1,输入和输出时中断服务程序各完成什么功能?,10.4 方式1,例107:8255A方式1输入应用:某8位A/D转换器,与8255的连接如下图,PC7做启动AD转化信号,AD转化结束信号EOC接PC4,作为选通信号STB。A/D转换启动为高电平。假设8255作为查询式输入接口,分析工作原理。编写8255初始化与输入一

16、个数据的程序。,10.4 方式1,采用查询式输入:注意到8255方式1输入时,数据准备好后,IBF=1,因此可以通过查询IBF的状态。 主要参考程序代码: MOV DX,PCTR ;控制口地址送DX MOV AL,10110000B ;A口方式1输入,PC7输出 OUT DX,AL MOV AL,00001110B ;置PC7=0,禁止A/D OUT DX,AL MOV AL,00001111B ;置PC7=1,启动A/D OUT DX, AL,10.4 方式1,L:MOV DX,POT_C ;C口地址送DX IN AL,DX TEST AL,00100000B ;查IBF=1,即PC51?

17、JZ L ; 查无输入数据,等待 MOV DX,PCTR MOV AL,00001110B ;置PC7=0,禁止A/D OUT DX,AL MOV DX,POT_A ; 送A口地址 IN AL,DX ; IBF=1,读数据 ; 数据读出后,自动撤销IBF(0) HLT,10.4 方式1,课堂提问6: 如果采用中断方式输入,程序如何设计? 提示: 将8255中断请求端INTRA(PC3)接8259输入端,使中断请求能引入CPU 允许8255端口A中断,设INTEA=1,即设PC4=1 当数据进入8255端口A时,8255的INTRA(PC3)发中断请求申请,CPU相应后即可读数据,10.4 方式

18、1,3)方式1的使用场合 在采用中断方式进行输入/输出的场合,如果外部设备能为8255A提供选通信号或数据接收应答信号,那么,通常使用8255A的端口工作方式1的情况。 思考题: 8255A的三个端口在使用时,有什么差别? 提 示: 通常A端口与B端口可作为独立的输入输出端口,C端口则配合A、B端口工作,提供控制信号、状态信息。,10.4:方式1使用,10.5 方式2双向传输方式 方式2只适用于端口A,双向并行通信 端口A工作于方式2时,端口C用5个数位自动配合端口A提供控制。 注意: 端口A可工作在3种方式中的任意一种; 端口B只能工作在方式0或方式1; 端口C被分为高4位和低4位,可以分别

19、工作在输入方式和输出方式,并不要求同为输入方式或同为输出方式.,10.5 工作方式2,图 10-15 方式2工作的控制信号,10.5 工作方式2,图10-21 画出了一个数据输出过程和一个数据输入的时序.,10.5 工作方式2,例10-8:按键控制灯的亮灭。,10.6 8255A的应用举例,PA,1 1 1,0 0,地址:F0H、F2H、F4H、F6H,0 1,PB,1 0,PC,1 1,控制口,CODE SEGMENT ASSUME CS:CODE,DS:DATA,START: MOV DX,0F6H,MOV AL,10010000B,OUT DX,AL,MOV DX,0F0H,IN AL,

20、DX,MOV DX,0F2H,OUT DX,AL,JMP L,L:,CODE ENDS END START,例10-9:利用8255A对非编码键盘进行管理。 如图所示为使用8255A构成4行4列的非编码矩阵键盘控制。,10.6 8255A的应用举例,判断是否有键按下:,10.6 8255A的应用举例,MOV AL,82H ;初始化8255A,A口方式0输出, B口方式0输出 OUT 83H,AL ;输出方式字,MOV AL,00H OUT 80H,AL ;PA置0,IN AL,81H ;读B口,判断B口是否为低电平 AND AL,0FH CMP AL,0FH JZ LOOA ; B口没有低电平

21、时转,LOOA:,CALL D20ms ; B口有低电平时延时,IN AL,81H ; 再读B口 AND AL,0FH ;如仍有一位低电平,说明确有按键按下 CMP AL,0FH ;按下,如果延时后B口低电平不再存在 JZ LOOA ;说明是干扰或抖动,LOP1:,START:,10.6 8255A的应用举例,;判断哪一个键按下:,MOV BL,4 ;行数送BL MOV BH,4 ;列数送BH,MOV AL,0FEH ; 准备扫描0行 MOV CL,0FH ;键盘屏蔽码送CL MOV CH,0FFH ;CH中存放起始键号,OUT 80H,AL ;A行输出,扫描一行 ROL AL,1 ;修改扫描

22、码,准备扫描下一行 MOV AH,AL ; 暂时保存,IN AL,81H ; 读B口,以便确定所按键的列值 AND AL,CL CMP AL,CL JNZ LOP2 ;有列线为0,转LOP2,找列值,ADD CH,BH ;无键按下,修改键号,以便下一行找键号,MOV AL,AH ;恢复扫描码 DEC BL ;行数减1 JNZ LOP1 ;行未扫描完转LOP1,JMP START ;重新扫描,LOP2:,10.6 8255A的应用举例,INC CH ;键号加1,ROR AL,1 ;右移一位,JC LOP2 ; 无键按下,查下一列线,MOV AL,CH ;已找到,键号送,CMP AL,0 JZ K

23、EY0 ;是0号键按下,转KEY0,CMP AL,1 JZ KEY1 ;是1号键按下,转KEY1,. . . CMP AL,0EH JZ KEY14 ;是14号键按下,转KEY14 JMP KEY15 ;是15号键按下,转KEY15,例10-10:在甲乙两台微机之间并行传送1K字节数据。甲机发送,乙机接收。甲机一侧的8255A采用方式1工作,乙机一侧的8255A采用方式0工作。两机的CPU与接口之间都采用查询方式交换数据。,10.6 8255A的应用举例,甲机发送程序: MOV DX,303H ;8255A命令口 MOV AL,10100000B ;端口A,方式1,端口B没用方式字 OUT D

24、X,AL ;输出方式字 MOV AL,0DH ; 置发送中断允许INTEA=1 OUT DX,AL ;PC6置1 MOV AX,0300H ;发送数据的段地址 MOV ES,AX MOV BX,0000H MOV CX,3FFH ; 置发送字节数 MOV DX,300H ; 置8255A数据字地址 MOV AL,ES:BX ; 置第一个发送数据 OUT DX,AL ;写第一个数,产生第一个OBF信号 INC BX ;指向下一个数 DEC CX ;字节数减1,10.6 8255A的应用举例,L: MOV DX,302H ; 8255A状态口 IN AL,DX ;输入状态 AND AL,08H ;

25、检查有无INTRA JZ L ; 若无中断请求则等待 MOV DX,300H ; 置数据口地址 MOV AL,ES:BX ; 取数据 OUT DX,AL ; 输出 INC BX DEC CX JNZ L MOV AX,4C00H INT 21H,10.6 8255A的应用举例,乙机接收程序: MOV DX,303H ;8255A命令口 MOV AL,10011000B ;端口A,方式1,端口B没用方式字 OUT DX,AL ;输出方式字 MOV AL,00000001H ;PC0置1 OUT DX,AL MOV AX,0400H ;接收区的首地址 MOV ES,AX MOV BX,0000H MOV CX,3FFH ; 置发送字节数 L1: MOV DX,302H ; 8255APC口地址 IN AL,DX ; 查甲机的PC40? AND AL,10H JNZ L1 ; 无数据,等待,10.6 8255A的应用举例,MOV DX,300H ;置8255A数据口地址 IN AL,DX ;输入数据 MOV ES:BX,AL ;存入内存 MOV DX,303H MOV AL,00000000B ; 产生ACK信号 NOP NOP MOV AL,0000001B ;PC0=1 OUT DX,AL ; ACK

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论