1 / 90

第 8 章 通用可编程接口芯片

第 8 章 通用可编程接口芯片. 本章学习目标 了解可编程接口芯片的基本概念 掌握并行接口芯片 8255A 的编程结构与使用方法 掌握串行接口芯片 8251 的编程结构与使用方法 掌握定时 / 计数器芯片 8253 的编程结构与使用方法. 第 8 章 通用可编程接口芯片. 8.1 并行接口芯片 8255A. 8.2 可编程串行输入 / 输出接口芯片 8251. 8.3 可编程定时器 / 计数器接口芯片 8253. 8.1 并行接口芯片 8255A. 8.1.1 内部结构及引脚. 8.1.2 8255A 的工作模式.

bill
Download Presentation

第 8 章 通用可编程接口芯片

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第8章 通用可编程接口芯片 • 本章学习目标 • 了解可编程接口芯片的基本概念 • 掌握并行接口芯片8255A的编程结构与使用方法 • 掌握串行接口芯片8251的编程结构与使用方法 • 掌握定时/计数器芯片8253的编程结构与使用方法

  2. 第8章 通用可编程接口芯片 8.1 并行接口芯片8255A 8.2 可编程串行输入/输出接口芯片8251 8.3 可编程定时器/计数器接口芯片8253

  3. 8.1 并行接口芯片8255A 8.1.1 内部结构及引脚 8.1.2 8255A的工作模式 8.1.3 8255A的编程及应用

  4. 8.1.1 内部结构及引脚 • 8255A内部结构 • 8255的内部结构如图8-1所示。 • 各部分功能概括如下: • (1)数据输入输出端口 • (2)A组控制器和B组控制器 • (3)数据缓冲器:双向8位缓冲器,用于传送计算机和8255A间的控制字、状态字和数据字。 • (4)读写控制逻辑:接收计算机的读写命令和选择端口地址,用于控制8255A的读写。

  5. 2. 8255A引脚功能 8255A有40条引脚,如图8-2所示。引脚功能如下: D7~D0:数据总线,用于传送计算机和8255A间的数据、命令和状态字。 RESET:复位线,高电平有效。 CS:片选线,低电平有效。 RD:读命令线,低电平有效。 WR:写命令线,低电平有效。 A0、A1:地址线,用于选择A口、B口、C口。 PA7~PA0:A端口输入/输出线,双向I/O总线。 PB7~PB0:B端口输入/输出线,双向I/O总线。 PC7~PC0:C端口输入/输出线,双向I/O总线。

  6. 图8-2 8255引脚图

  7. 8.1.2 8255A的工作模式 • 8255A控制字和状态字 • 8255A通过控制字用来设定8255A有3种工作模式。控制字有两个,一个是工作方式控制字,用于8255A的初始化;另一个是C口位控制字,用于C口的位操作。这两个控制字使用同一口地址,由最高位D7区分,若D7为1,此控制字为8255A的工作方式控制字;若D7为0,此控制字为8255A的C口的位控制字。

  8. (1)方式控制字 8255A的方式控制字用来设定8255A三个端口的工作方式及输入/输出状态。控制字的位定义如下:

  9. D7:控制字标志位。 D7为1,则本控制字为方式控制字;D7为0,则本控制字为C口控制字。 lD6~D3:A组控制位。其中: D5、D6:A组方式选择位,D6D5为00时,A组设定为方式0;D6D5为01,A组设定为方式1;若D6D5=1×,A组设定为方式2。 D4:A口输入/输出控制位,D4为0,则PA7~PA0用于输出数据;D4为1,则PA7~PA0用于输入数据。 D3:C口高四位输入/输出控制位;D3为0,则PC7~PC4为输出数据方式;D3为1,则PC7~PC4为输入方式。

  10. lD2~D0:B组控制位。其中: D2:方式选择位,D2为0,B组设定为方式0;D2为1,B组设定为方式1。 D1:B口输入/输出控制位,D1为0,则PB7~PB0用于输出数据;D1为1,则PB7~PB0用于输入数据。 D0:C口低四位输入/输出控制位,D0为1,则PC3~PC0用于输出数据;D0为1,则PC3~PC0用于输入数据。

  11. (2)C口位控制字 该控制字可以使C口各位单独置位或复位,以实现特殊的控制功能。控制字格式如图8-4所示。

  12. D7:控制字的特征位,0有效。 D3~D0:用于控制PC7~PC0中某一位置位和复位。 D0:置位/复位的控制位。 当D0为0时,控制C口的某位复位;当D0为1时,控制C口的某位置位。

  13. (3)8255A状态字 8255A设定为方式1和方式2时,读C口便可读得相应状态字,可以了解8255A的工作状态。 当8255A的A口、B口工作在方式l,则为输入时的状态字格式如下所示。在这个状态字中,INTEA和INTEB分别为A组和B组的中断允许触发器状态,其余各位为相应引脚上的电平信号。

  14. 当8255A的A口、B口工作在模式l,则为输出时的状态字格式如下所示。当8255A的A口、B口工作在模式l,则为输出时的状态字格式如下所示。

  15. 8255A在方式2下的状态字格式如下所示。在这个状态字中,INTEl、INTE2和INTR为8255A的允许中断触发器状态。其中INTEl和INTE2受C口的置复位控制字决定,其余各位为同名引脚上的电平信号。D2~D0由B组工作方式决定。

  16. 2. 8255A工作方式 (1)方式0 方式0是一种基本的输入/输出工作方式,8255A的A口、B口和C口均可由程序设定为输入/输出口。其中输出可被锁存,输入不能锁存。 【例8.1】设8255A的控制字寄存器地址为置9BH,则令A口和C口高四位工作在方式0输出方式以及B口和C口低四位工作于方式0输入方式,指令序列如下: MOV AL,83H ;方式控制字83H送AL MOV DX,9BH OUT DX,AL ;83H送控制字寄存器

  17. (2)方式1 方式1是选通输入/输出工作方式,A口和B口皆可独立地设置成这种工作方式。在方式1下,既需要数据信号也需要选通联络信号,选通联络信号与输入/输出数据一起传送,其中A组为数据口,可定义为输入或输出方式,以C口的PC5、PC4、PC3为选通联络线;B组为数据口,可定义为输入或输出方式,以C口的PC2、PC1、PC0为选通联络线。当A口工作于方式1输入状态时见图8-3。

  18. 图8-3 8255的A口方式1输入方式下状态

  19. C口的相应联络线定义如下: (PC4、PC2)——选通输入,低电平有效。由外设输入数据,并将数据送到输入锁存器。其中PC4对应A口,PC2对应B口。 IBF(PC5、PC1)——输入缓冲器满,高电平有效。当它为1时,说明CPU还未读取上次输入的数据,通知外设不应送新数据。当它为0时,通知外设可送新数据。其中PC5对应A口,PC1对应B口。 INTR(PC3、PC0)——中断请求,高电平有效。当中断允许位INTR置1时,若输入缓冲器满,则产生一个“高”有效的中断请求1NTR至CPU,对外设送来的新数据以中断方式输入。其中PC3对应A口,PC0对应B口。

  20. 当A口或B口工作在方式1输出状态时见图8-4 图8-4 8255的A口模式1输出方式下状态

  21. C口的各位定义如下: (PC7、PC1)——输出缓冲器满信号,低电平有效。当数据写入该口的数据寄存器时,即启动该信号,以通知外设读取端口数据。其中PC7对应A口,PC1对应B口。 (PC6、PC2)——外部响应输入信号,低电平有效。当外设读取端口数据后,回发—“低”有效信号作为回答。其中PC6对应A口,PC2对应B口。 INTR(PC3、PC0)——中断请求信号,高电平有效。当中断允许位INIR置“1”时,若输出缓冲器空(=1),则产生一个“高”有效的中断请求INTR至CPU,于是可在其中断处理程序中向该口输出新的数据。其中PC3对应A口,PC0对应B口。

  22. (3)方式2 8255A的另一种工作方式为带选通双向总线I/O方式,且只有A口可以工作在这一方式下,A口为输入输出数据端,输入、输出均可锁存,既可以发送数据,也可以接收数据,握手联络信号和A口在方式1下的输入或输出时的握手联络信号分别相对应,输入输出时的中断请求都共用PC3。这是一个“或”逻辑,即PC6置“l”时,输出缓冲器“空”可引起中断,PC4置“l”时输入缓冲器“满”也能引起中断。 当A口工作于方式2时,B口可工作在方式0或者方式1;C口的高5位为A口的握手联络信号,低3位可用于B口在方式1时的握手联络信号。由8255A的控制字选择。 方式2状态如图8-5所示。

  23. 图8-5 8255模式2方式下状态

  24. 其中: INTRA(PC3)——中断请求信号,高电平有效。 (PC7)——输出缓冲器满信号,低电平有效。 (PC6)——外部响应信号,低电平有效。 INTE1:输出缓冲器的中断允许触发器,由PC6置位/复位控制。 (PC4)——选通输入信号,低电平有效。 IBFA(PC5)——输入缓冲器满信号,高电平有效。 INTE2:输入缓冲器的中断允许触发器,由PC4置位/复位控制。

  25. 8.1.3 8255A的编程及应用 8255A是计算机外围接口芯片中典型的一种,主要用于接口扩展、外设扩展应用等。对8255A编程,首先应对8255A进行初始化,即向8255A写入控制字,规定8255A的工作方式,A口、B口、C口的工作方式等。然后,如果需要中断,则用控制字将中断允许标志置位。再以后就可以按相应的要求向8255A送入数据或从8255A读出数据。 【例8.2】要求8255A工作在方式0,A口、B口输入,C口输出。 其硬件电路如图8-6,片选端接译码电路输出(译码端由地址线A7、A6、A5译码输出),按要求8255A的控制字为92H(D7~D0对应的数据为10010010)。

  26. 图8-6 8255基本应用

  27. 其工作程序如下: PORTK EQU 1FH ;8255A控制口地址 PORTA EQU 1CH ;8255A的A口地址 PORTK EQU 1DH ;8255A的B口地址 PORTK EQU 1EH ;8255A的C口地址 ;初始化8255A MOV AL,92H ;控制字方式0,A、B输入,C输出 MOV DX,PORTK ;控制寄存器地址 OUT DX,AL ;控制字送控制寄存器 ;A口、B口、C口读写 MOX DX,PORTA ;A口地址 IN AL,DX ;从A口读数据 MOX DX,PORTB ;B口地址 IN AL,DX ;从B口读数据 MOX DX,PORTC ;C口地址 MOV AL,DATA OUTDX,AL ;向C口输出数据DATA

  28. 【例8.3】要求8255A工作方式1,A口输入,B口输出,PC6、PC7输出,禁止A口中断。【例8.3】要求8255A工作方式1,A口输入,B口输出,PC6、PC7输出,禁止A口中断。 按要求8255A控制字为0B7H,程序如下: PORTK EQU 1FH ;8255A控制口地址 PORTA EQU 1CH ;8255A的A口地址 PORTK EQU 1DH ;8255A的B口地址 PORTK EQU 1EH ;8255A的C口地址 ;初始化8255A MOV AL,0B7H ;控制字方式1,A输入,B输出 MOV DX,PORTK ;控制寄存器地址 OUT DX,AL ;控制字送控制寄存器 MOV AL,09H OUT DX,AL MOV AL,04H OUT DX,AL

  29. 8.2 可编程串行输入/输出接口芯片8251 8.2.1 串行通信的基本概念 8.2.2 可编程串行接口芯片8251结构 8.2.3 8251的初始化和编程应用 8.2.4 PC机串行异步通信接口

  30. 8.2 可编程串行输入/输出接口芯片8251 • 8.2.1 串行通信的基本概念 • 半双工和全双工 • 串行通信是一位接一位地顺序通过一条信号线进行传输的方式。它的通路可以只有一条,此时发送信息和接收信息不能同时进行,只能采用分时使用线路的方法,如果在A发送信息时,B只能接收;而当B发送信息时,则A只能接收。这种串行通信的工作方式称为半双工通信方式;如果在两个通信站之间有两条通路,则发送信息和接收信息就可以同时进行。如当A发送信息,B接收,B同时也能利用另一条通路发送信息而由A接收。这种工作方式称为全双工通信方式。

  31. 2. 数据传输率 数据传输率是指每秒钟传送的二进制位数.通常称为波特率(Band Rate)。国际上规定了标准波特率系列,最常用的标准波特率是:110波特、300波特、600波特、1200波特、l800波特、2400波持、4800波特、9600波特和19200波特。 时钟频率=n×波特率 式中的n叫做波特率系数或波特率因子,它的取值可以为1、16、32或64。

  32. 3. 串行通信的方式 串行通信按通信约定的格式分为两种:异步通信方式和同步通信方式。 (1)同步通信 所谓同步通信是指在约定的数据通信速率下,发送方和接收方的时钟信号频率和相位始终保持一致(同步),这就保证了通信双方在发送数据和接收数据时具有完全一致的定时关系。在有效数据传送之前首先发送一串特殊的字符进行标识或联络,这串字符称为同步字符或标识符。在传送过程中,发送端和接收端的每一位数据均保持同步。

  33. (2)异步通信 异步通信是指通信中两个字符之间的时间间隔是不固定的,而在一个字符内各位的时间间隔是固定的。异步通信规定字符由起始位(start bit)、数据位(data bit)、奇偶校验位(parity)和停止位(stop bit)。起始位表示一个字符的开始,接收方可以用起始位使自已的接收时钟与数据同步。停上位则表示一个字符的结束。这种用起始位开始,停止位结束所构成的一串信息称为一帧(frame)。 异步通信在传送一个字符时,由一位低电平的起始位开始,接着传送数据位,数据位的位数为5~8位。在传送时,按低位在前,高位在后的顺序传送。奇偶校验位用于检验数据传送的正确性,也可以没有,可由程序来指定。最后传送的是高电平的停止位,停止位可以是1位、1.5位或2位,两个字符之间的空闲位要由高电平1来填充。

  34. 8.2.2 可编程串行接口芯片 1. 8251的内部结构和引脚功能 8251的内部结构如图8-12所示 主要包括: (1)数据总线缓冲器 (2)发送器 (3)接收器 (4)读写控制电路 (5)调制解调控制电路

  35. 2. 8251的编程控制 8251是可编程串行接口,在使用前必须由程序对其工作状态进行设置(称为初始化),其中包括:同步方式还是异步方式、传输波特率、字符代码位数、校验方式、停止位位数等。 8251的控制字分为方式控制字和命令控制字。 (1)方式控制字 此控制字决定8251A是工作在同步方式还是异步方式。 控制字格式如下:

  36. 其中: B2、B1:波特率系数控制位 L2、L1:字符位数控制位 PEN:校验位允许位 S2、S1:停止位位数或同步字符个数控制位 (2)操作命令控制字 是使8251处于发送数据或接收数据状态,通知外设准备接收或是发送数据。 格式如下:

  37. 8.2.2 可编程串行接口芯片 1. 8251的内部结构和引脚功能 8251的内部结构如图8-12所示 主要包括: (1)数据总线缓冲器 (2)发送器 (3)接收器 (4)读写控制电路 (5)调制解调控制电路

  38. 8.2.3 8251的初始化和编程应用 • 8251的初始化 • 在传送数据前对8251进行初始化,才能确定发送方与接收方的通信格式。以及通信的时序,从而保证准确无误地传送数据。由于三个控制字没有特征位,且工作方式控制字和操作命令控制字放入同一个端口,因而要求按一定顺序写入控制字,不能颠倒。

  39. 【例8-5】编写一段程序,通过8251采用查询方式接收数据的程序。要求8251A定义为异步传输方式,波特率系数为64,采用偶校验,1位停止位,7位数据位。设8251的数据端口地址为04A0H,控制/状态寄存器端口地址为04A2H。【例8-5】编写一段程序,通过8251采用查询方式接收数据的程序。要求8251A定义为异步传输方式,波特率系数为64,采用偶校验,1位停止位,7位数据位。设8251的数据端口地址为04A0H,控制/状态寄存器端口地址为04A2H。 程序如下: MOV DX,04A2H MOV AL,7BH ;写工作方式字 OUT DX,AL MOV AL,14H OUT DX,AL;写操作命令字 LP: IN AL,DX;读状态控制字 AND AL,02H;检查RxRDY是否为1 JZ LP MOV DX,04A0H IN AL,DX

  40. 2. 8251和CPU的通信方式 (1)查询方式 发送数据的程序在初始化程序之后。 【例8.6】若采用查询方式发送数据,且假定要发送的字节数据放在TABLE开始的数据区中,且要发送的字节数据放在BX中,则发送数据的程序段如下所示。 START:MOV DX,3FDH LEA SI,TABLE WAIT: IN AL,DX TEST AL,20H ;检查THR是否空 JZ WAIT ;若为空,则继续等待 PUSH DX MOV DX,3F8H LODSB OUT DX,AL ;否则发送一个字节 POP DX DEC BX JNZ WAIT 同样,在初始化程序后,可以用查询方式实现接收数据。

  41. 【例8.7】下面是一个接收数据程序,假设接收后的数据送入DATA开始的数据存储区中。【例8.7】下面是一个接收数据程序,假设接收后的数据送入DATA开始的数据存储区中。 RECV: MOV SI,OFFSET DATA MOV DX,3FDH WAIT: IN AL,DX ;读入线路状态寄存器 TEST AL,1EH ;检查是否有任何错误产生 JNZ ERROR ;有,转出错处理 TEST AL,01H ;否则检查数据是否准备好 JZ WAIT ;未准备好,继续等待检测 MOV DX,3F8H IN AL,DX ;否则接收一个字节 AND AL,7FH ;保留低7位 MOV [SI],AL ;送数据缓冲区 INC SI MOV DX,3FDH JMP WAIT

  42. (2)中断方式 利用中断方式可实现8251和CPU的串行通信。现设想系统以查询方式发送数据,以中断方式接收数据。波特率系数为16,1位停止位,7位数据位,奇校验。 程序如下: MOV DX,04A2H MOV AL,01011010B ;写工作方式控制字 OUT DX,AL MOV AL,14H ;写操作命令控制字 OUT DX,AL 当完成对8251A的初始化后,接收端便可进行其他工作,接收到一个字符后,便自动执行中断服务程序。

  43. 【例8.9】中断服务程序如下: RECIVE:PUSH AX PUSH BX PUSH DX PUSH DS MOV DX,3FDH IN AL,DX MOV AH,AL ;保存接收状态 MOV DX,3F8H IN AL,DX ;读入接收到的数据 AND AL,7FH TEST AH,1EH ;检查有无错误产生 JZ SAVAD MOV AL,'?' ;出错的数据用‘?’代替

  44. SAVAD: MOV DX,SEG BUFFER MOV DS,DX MOV BX,OFFSET BUFFER MOV [BX],AL ;存储数据 MOV AL,20H OUT 20H,AL ;将EOI命令发给中断控制器8259 POP DS POP DX POP BX POP AX STI IRET

  45. 8.2.4 PC机串行异步通信接口 • 串行异步通信适配器 • 串行异步适配器结构如下:

  46. 2. EIA RS-232串行通信总线标准 RS-232是一种串行通信总线标准,1969年由美国电子工业协会(EIA)从CCITT远程通信标准中导出的一个标准。9针、25针RS-232标准接口引脚排列如图所示。

  47. 25脚引脚号(9脚) 符号 方向 功能 2(3) TXD 输出 发送数据 3(2) RXD 输入 接收数据 4(7) RTS 输出 请求发送 5(8) CTS 输入 清除发送 6(6) DSR 输入 数据通信设备准备好 7(5) GND 信号地 8(1) DCD 输入 数据载波检测 20(4) DTR 输出 数据终端准备好 22(9) RI 输入 振铃指示

  48. 两台计算机的连接方法如下图所示:

More Related