第8章常用可编程接口芯片.docx
- 文档编号:13951769
- 上传时间:2023-06-19
- 格式:DOCX
- 页数:67
- 大小:320.29KB
第8章常用可编程接口芯片.docx
《第8章常用可编程接口芯片.docx》由会员分享,可在线阅读,更多相关《第8章常用可编程接口芯片.docx(67页珍藏版)》请在冰点文库上搜索。
第8章常用可编程接口芯片
第8章 常用可编程接口芯片
回顾:
接口与系统的连接,
本讲重点:
接口与系统的连接,并行通信与接口,8255A的编程结构。
讲授内容:
8.1可编程并行接口芯片8255A
一.并行通信与接口
并行通信就是把一个字符的各位同时用几根线进行传输。
传输速度快,信息率高。
电缆要多,随着传输距离的增加,电缆的开销会成为突出的问题,所以,并行通信用在传输速率要求较高,而传输距离较短的场合。
Intel8255A是一个通用的可编程的并行接口芯片,它有三个并行I/O口,又可通过编程设置多种工作方式,价格低廉,使用方便,可以直接与Intel系列的芯片连接使用,在中小系统中有着广泛的应用。
二.8255A的编程结构
8255A由以下几部分组成:
见图8-1
1.三个数据端口A,B,C
这三个端口均可看作是I/O口,但它们的结构和功能也稍有不同。
·A口:
是一个独立的8位I/O口,它的内部有对数据输入/输出的锁存功能。
·B口:
也是一个独立的8位I/O口,仅对输出数据的锁存功能。
·C口:
可以看作是一个独立的8位I/O口;也可以看作是两个独立的4位I/O口。
也是仅对输出数据进行锁存。
2.A组和B组的控制电路
这是两组根据CPU命令控制8255A工作方式的电路,这些控制电路内部设有控制寄存器,可以根据CPU送来的编程命令来控制8255A的工作方式,也可以根据编程命令来对C口的指定位进行置/复位的操作。
A组控制电路用来控制A口及C口的高4位;
B组控制电路用来控制B口及C口的低4位。
图8-18255A的编程结构
2.A组和B组的控制电路
这是两组根据CPU命令控制8255A工作方式的电路,这些控制电路内部设有控制寄存器,可以根据CPU送来的编程命令来控制8255A的工作方式,也可以根据编程命令来对C口的指定位进行置/复位的操作。
A组控制电路用来控制A口及C口的高4位;
B组控制电路用来控制B口及C口的低4位。
3.数据总线缓冲器
8位的双向的三态缓冲器。
作为8255A与系统总线连接的界面,输入/输出的数据,CPU的编程命令以及外设通过8255A传送的工作状态等信息,都是通过它来传输的。
4.读/写控制逻辑
读/写控制逻辑电路负责管理8255A的数据传输过程。
它接收片选信号
及系统读信号
、写信号
、复位信号RESET,还有来自系统地址总线的口地址选择信号A0和A1。
习题与思考:
1.接口电路的主要作用是什么?
它的基本结构如何?
2.说明接口电路中控制寄存器与状态寄存器的功能,通常它们可共用一个端口地址码,为什么?
3.CPU寻址外设端口的方式通常有哪两种?
试说明它们的优缺点。
4.在CPU与外部设备接口电路的连接中,通过数据总线可传输哪几种信息?
在这里地址译码器起什么作用?
8.1可编程并行接口芯片8255A
回顾:
接口与系统的连接,并行通信与接口,8255A的编程结构。
本讲重点:
8255A的工作方式,8255A的编程及应用。
讲授内容:
三.8255A的引脚功能
引脚信号可以分为两组:
一组是面向CPU的信号,一组是面向外设的信号。
1.面向CPU的引脚信号及功能
·D0-D7:
8位,双向,三态数据线,用来与系统数据总线相连;
·RESET:
复位信号,高电平有效,输入,用来清除8255A的内部寄存器,并置A口,B口,C口均为输入方式;
·
:
片选,输入,用来决定芯片是否被选中;
·
:
读信号,输入,控制8255A将数据或状态信息送给CPU;
·
:
写信号,输入,控制CPU将数据或控制信息送到8255A;
·A1,AO:
内部口地址的选择,输入。
这两个引脚上的信号组合决定对8255A内部的哪一个口或寄存器进行操作。
8255A内部共有4个端口:
A口,B口,C口和控制口,两个引脚的信号组合选中端口见下表。
,
,
,A1,A0这几个信号的组合决定了8255A的所有具体操作,
表8-18255A的操作功能表
A1A0
操作
数据传送方式
00100
读A口
A口数据→数据总线
00101
读B口
B口数据→数据总线
00110
读C口
C口数据→数据总线
01000
写A口
数据总线数据→A口
01001
写B口
数据总线数据→B口
01010
写C口
数据总线数据→C口
01011
写控制口
数据总线数据→控制口
2.面向外设的引脚信号及功能
•PA0~PA7:
A组数据信号,用来连接外设;
•PB0~PB7:
B组数据信号,用来连接外设;
•PC0~PC7:
C组数据信号,用来连接外设或者作为控制信号。
四.8255A的工作方式
8255A有三种工作方式,用户可以通过编程来设置。
方式0――简单输入/输出――查询方式;A,B,C三个端口均可。
方式1――选通输入/输出――中断方式;A,B,两个端口均可。
方式2――双向输入/输出――中断方式。
只有A端口才有。
工作方式的选择可通过向控制端口写入控制字来实现。
在不同的工作方式下,8255A三个输入/输出端口的排列示意图如图8-2所示。
1.方式0:
为一种简单的输入/输出方式,没有规定固定的应答联络信号,可用A,B,C三个口的任一位充当查询信号,其余I/O口仍可作为独立的端口和外设相连。
方式0的应用场合有两种:
一种是同步传送;一种是查询传送。
2.方式1
方式1是一种选通I/O方式,A口和B口仍作为两个独立的8位I/O数据通道,可单独连接外设,通过编程分别设置它们为输入或输出。
而C口则要有6位(分成两个3位)分别作为A口和B口的应答联络线,其余2位仍可工作在方式0,可通过编程设置为输入或输出。
(1)方式1的输入组态和应答信号的功能
图8-3给出了8255A的A口和B口方式1的输入组态。
图8-3方式1输入组态
C口的PC3-PC5用作A口的应答联络线,
PC0-PC2则作用B口的应答联络线,
余下的PC6~PC7则可作为方式0使用。
应答联络线的功能如下:
·
:
选通输入。
用来将外设输入的数据打入8255A的输入缓冲器。
·IBF:
输入缓冲器满。
作为STB的回答信号,。
·INTR:
中断请求信号。
INTR置位的条件是STB为高且IBF为高且INTE为高。
·INTE:
中断允许。
对A口来讲,是由PC4置位来实现,对B口来讲,则是由PC0置位来实现。
事先将其置位。
A口 B口
:
PC4PC2
IBF:
PC5PC1
INTR:
PC3PC0
INTE:
PC4置1PC2置1
(2)方式1的输出组态和应答信号功能
图8-4方式1的输出组态
C口的PC3、PC6、PC7用作A口的应答联络线,
PC0-PC2则作用B口的应答联络线,
余下的PC4~PC5则可作为方式0使用。
应答联络线的功能如下:
·
:
输出缓冲器满。
当CPU已将要输出的数据送入8255A时有效,用来通知外设可以从8255A取数。
·
:
响应信号。
作为对
的响应信号,表示外设已将数据从8255A的输出缓冲器中取走。
· INTR:
中断请求信号。
INTR置位的条件是ACK为高且OBF为高且INTE为高。
· INTE:
中断允许。
对A口来讲,由PC6的置位来实现,对B口仍是由PC2的置位来实现。
A口B口
:
PC6PC2
:
PC7PC1
INTR:
PC3PC0
INTE:
PC6置1PC2置1
3.方式2
方式2为双向选通I/O方式,只有A口才有此方式。
这时,C口有5根线用作A口的应答联络信号,其余3根线可用作方式0,也可用作B口方式1的应答联络线。
方式2:
就是方式1的输入与输出方式的组合,各应答信号的功能也相同。
而C口余下的PC0~PC2正好可以充当B口方式1的应答线,若B口不用或工作于方式0,则这三条线也可工作于方式0。
(1)方式2的组态
:
PC4
IBF:
PC5
:
PC6
:
PC7
INTR:
PC3
(2)方式2的应用场合
方式2是一种双向工作方式,如果一个并行外部设备既可以作为输入设备,又可以作为输出设备,并且输入输出动作不会同时进行。
(3)方式2和其它方式的组合
①方式2和方式0输入的组合:
控制字:
11XXX01T
②方式2和方式0输出的组合:
控制字:
11XXX00T
③方式2和方式1输入的组合:
控制字:
11XXX11X
④方式2和方式1输出的组合:
控制字:
11XXX10X
其中X表示与其取值无关,而T表示视情况可取1或0。
五.8255A的编程及应用
1.8255A的编程
对8255A的编程涉及到两个内容:
⑴写控制字设置工作方式等信息,
⑵使C口的指定位置位/复位的功能。
注:
均写入控制端口
(1)控制字格式
控制字要写入8255A的控制口,写入控制字之后,8255A才能按指定的工作方式工作。
8255A的控制字格式与各位的功能如图8-5所示。
D7
D6
D5
D4
D3
D2
D1
D0
=1控制字标志C口低4位
A组工作方式1--输入
00--方式0A口控制0--输出
01--方式11--输入B口控制
1x--方式20--输出1--输入
C口高4位控制B组工作方式0--输出
1--输入0--方式0
0--输出1--方式1
图8-58255A的控制字格式
例1某系统要求使用8255A的A口方式0输入,B口方式0输出,C口高4位方式0输出,C口低4位方式0输入。
则控制字为:
10010001即91H
初始化程序为:
MOVAL,91H
OUTCTRL_PORT,AL
(2)C口的置位/复位功能
只有C口才有,它是通过向控制口写入按指定位置位/复位的控制字来实现的。
C口的这个功能可用于设置方式1的中断允许,可以设置外设的启/停等。
按位置位/复位的控制字格式如图8-6所示。
D7
D6
D5
D4
D3
D2
D1
D0
=0控制字标志1--置位
无意义置位/复位引脚编码0--复位
000--PC0
001--PC1
...
111--PC7
图8-6位置位/复位控制字格式
例如在书中例2,A口方式2要求发两个中断允许,即PC4和PC6均需置位。
B口方式1要求使PC2置位来开放中断。
初始化程序可补充完整如下。
MOVAL,0C4H
OUTCTRL_PORT,AL ;设置工作方式
MOVAL,09H
OUTCTRL_PORT,AL ;PC4置位,A口输入允许中断
MOVAL,ODH
OUTCTRL_PORT,AL ;PC6置位,A口输出允许中断
MOVAL,05H
OUTCTRL_PORT,AL ;PC2置位;B口输出允许中断
2.接口应用举例
例3利用8255A的A口方式0与微型打印机相连,将内存缓冲区BUFF中的字符打印输出。
试完成相应的软硬件设计。
(CPU为8088)
首先我们分析一下打印机的工作。
微型打印机和主机之间的接口采用并行接口。
图8-7打印机数据传输时序
表8-2Centronics标准引脚信号
引脚
名称
方向
功能
1
STROBE
入
数据选通,有效时接收数据
2-9
DATA1-DATA8
入
数据线
10
ACKNLG
出
响应信号,有效时准备接收数据
11
BUSY
出
忙信号,有效时不能接收数据
12
PE
出
纸用完
13
SLCT
出
选择联机,指出打印机不能工作
14
AUTOLF
入
自动换行
31
INIT
入
打印机复位
32
ERROR
出
出错
36
SLCTIN
入
有效时打印机不能工作
它的工作流程是:
主机将要打印的数据送上数据线,然后发选通信号。
打印机将数据读入,同时使BUSY线为高,通知主机停止送数。
这时,打印机内部对读入的数据进行处理。
处理完以后使ACK有效,同时使BUSY失效,通知主机可以发下一个数据。
硬件连线如下图:
说明:
由PC0充当打印机的选通信号,通过对PC0的置位/复位来产生选通。
同时,由PC7来接收打印机发出的“BUSY”信号作为能否输出的查询。
8255A的控制字为:
10001000即88H
A口方式0,输出;C口高位方式0输入,低位方式0输出
PC0置位:
00000001即01H
PC0复位:
00000000即00H
8255A的4个口地址分别为:
00H,01H,02H,03H。
编制程序如下:
DADASEGMENT
BUFFDB'Thisisaprintprogram!
','$'
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVSI,OFFSETBUFF
MOVAL,88H;8255A初始化,A口方式0,输出
OUT03H,AL;C口高位方式0输入,低位方式0输出
MOVAL,01H;
OUT03H,AL;使PC0置位,即使选通无效
WAIT:
INAL,02H
TESTAL,80H;检测PC7是否为1即是否忙
JNZWAIT;为忙则等待
MOVAL,[SI]
CMPAL,'$';是否结束符
JZDONE;是则输出回车
OUT00H,AL;不是结束符,则从A口输出
MOVAL,00H
OUT03H,AL
MOVAL,01H
OUT03H,AL;产生选通信号
INCSI;修改指针,指向下一个字符
JMPWAIT
DONE:
MOVAL,0DH
OUT00H,AL;输出回车符
MOVAL,00H
OUT03H,AL
MOVAL,01H
OUT03H,AL;产生选通
WAIT1:
INAL,02H
TESTAL,80H;检测PC7是否为1即是否忙
JNZWAIT1;为忙则等待
MOVAL,0AH
OUT00H,AL;输出换行符
MOVAL,00H
OUT03H,AL
MOVAL,01H
OUT03H,AL;产生选通
MOVAH,4CH
INT 21H
CODEENDS
ENDSTART
例4将上例中8255A的工作方式改为方式1,采用中断方式将BUFF开始的缓冲区中的100个字符从打印机输出。
(假设打印机接口仍采用Centronics标准)
分析:
仍用PC0作为打印机的选通,打印机的
作为8255A的A口,
8255A的中断请求信号(PC3)接至系统中断控制器8259A的IR3,其它硬件连线同上例,如图8-8所示。
图8-8中断方式硬件连线
8255A的控制字为:
1010XXX0
PC0置位:
00000001即01H
PC0复位:
00000000即00H
PC6置位:
00001101即0DH,允许8255A的A口输出中断
由硬件连线可以分析出,8255A的4个口地址分别为:
00H,01H,02H,03H。
假设8259A初始化时送ICW2为08H,则8255AA口的中断类型码是0BH,此中断类型码对应的中断向量应放到中断向量表从2CH开始的4个单元中。
主程序:
MAIN:
MOVAL,0A0H
OUT03H,AL;设置8255A的控制字
MOVAL,01H;使选通无效
OUT03H,AL
XORAX,AX
MOVDS,AX
MOVAX,OFFSETROUTINTR
MOVWORDPTR[002CH],AX
MOVAX,SEGROUTINTR
MOVWORDPTR[002EH],AX;送中断向量
MOVAL,0DH
OUT03H,AL;使8255AA口输出允许中断
MOVDI,OFFSETBUFF;设置地址指针
MOVCX,99;设置计数器初值
MOVAL,[DI]
OUT00H,AL;输出一个字符
INCDI
MOVAL,00H
OUT03H,AL;产生选通
INCAL
OUT03H,AL;撤消选通
STI;开中断
NEXT:
HLT;等待中断
LOOPNEXT;修改计数器的值,指向下一个要输出的字符
HLT
中断服务子程序如下:
ROUTINTR:
MOVAL,[DI]
OUT00H,AL:
从A口输出一个字符
MOVAL,00H
OUT03H,AL:
产生选通
INCAL
MOV03H,AL;撤消选通
INCDI:
修改地址指针
IRET:
中断返回
思考:
是否可以采用A口的
作为打印机的选通信号?
如可以的话,软件该如何修改?
是否可用打印机的BUSY作为8255的A口
?
习题与思考:
1.试分析8255A方式0、方式1和方式2的主要区别,并分别说明它们适合于什么应用场合。
2.当8255A的A口工作在方式2时,其端口B适合于什么样的功能?
写出此时各种不同组合情况的控制字。
3.若8255A的端口A定义为方式0,输入;端口B定义为方式1,输出;端口C的上半部定义为方式0,输出。
试编写初始化程序。
(口地址为80H~83H)
4.假设一片8255A的使用情况如下:
A口为方式0输入,B口为方式0输出。
此时连接的CPU为8086,地址线的A1、A2分别接至8255A的A0、A1,而芯片的
来自A3A4A5A6A7=00101,试完成8255A的端口地址和初始化程序。
8.2可编程计数器/定时器l8253
回顾:
可编程芯片的概念,端口的概念。
本讲重点:
定时与计数的基本概念及其意义,定时/计数器芯片Intel8253的性能概述,内、外部结构及其与CPU的连接。
讲授内容:
8.2可编程计数器/定时器l8253
1.定时与计数
在微机系统或智能化仪器仪表的工作过程中,经常需要使系统处于定时工
作状态,或者对外部过程进行计数。
定时或计数的工作实质均体现为对脉冲信
号的计数,如果计数的对象是标准的内部时钟信号,由于其周期恒定,故计数
值就恒定地对应于一定的时间,这一过程即为定时,如果计数的对象是与外部
过程相对应的脉冲信号(周期可以不相等),则此时即为计数。
2.定时与计数的实现方法
(1).硬件法
专门设计一套电路用以实现定时与计数,特点是需要花费一定硬设备,而
且当电路制成之后,定时值及计数范围不能改变。
(2).软件法
利用一段延时子程序来实现定时操作,特点,无需太多的硬设备,控制比
较方便,但在定时期间,CPU不能从事其它工作,降低了机器的利用率。
(3).软、硬件结合法
即设计一种专门的具有可编程特性的芯片,来控制定时和计数的操作,而
这些芯片,具有中断控制能力,定时、计数到时能产生中断请求信号,因而定
时期间不影响CPU的正常工作。
8.3定时/计数器芯片Intel8253
Intel8253是8086/8088微机系统常用的定时/计数器芯片,它具有定时与计
数两大功能,同类型的定时/计数器芯片还有Intel8254等。
一、8253的一般性能概述
1.每个8253芯片有3个独立的16位计数器通道
2.每个计数器通道都可以按照二进制或二—十进制计数
3.每个计数器的计数速率可以高达2MHz
4.每个通道有6种工作方式,可以由程序设定和改变
5.所有的输入、输出电平都与TTL兼容
§8.2.18253内部结构
8253的内部结构如图8-19所示,它主要包括以下几个主要部分:
图8-98253的内部结构
1.数据总线缓冲器
8253内部实现与CPU数据总线连接的8位双向三态缓冲器,用以传送
CPU向8253的控制信息、数据信息以及CPU从8253读取的状态信息,
包括某一方面时刻的实时计数值。
2.读/写控制逻辑
控制8253的片选及对内部相关寄存器的读/写操作,它接收CPU发来
的地址信号以实现片选、内部通道选择以及对读/写操作进行控制。
3.控制字寄存器
在8253的初始化编程时,由CPU写入控制字,以决定通道的工作方式,
此寄存器只能写入,不能读出。
4.计数通道0#、1#、2#:
这是三个独立的,结构相同的计数器/定时器通道,每一个通道包含一
个16位的计数寄存器,用以存放计数初始值,和一个16位的减法计数器
和一个16位的锁存器,锁存器在计数器工作的过程中,跟随计数值的变化,
在接收到CPU发来的读计数值命令时,用以锁存计数值,供CPU读取,
读取完毕之后,输出锁存器又跟随减1计数器变化。
另外,计数器的值为0的状态,还反映在状态锁存器中,可供读取。
二、8253的外部引脚
8253芯片是具有24个引脚的双列直插式集成电路芯片,其引脚分布如图
8-10所示。
8253芯片的24个引脚分为两组,一组面向CPU,另一组面向外部设备,
各个引脚及其所传送信号的情况,介绍如下:
1.D7~D0:
双向、三态数据线引脚,用以与系统的数据线连接,传送控制、数据及状态信息。
、、、
2.
:
来自于CPU的读控制信号输入引脚,低电平有效。
3.
:
来自于CPU的写控制信号输入引脚,低电平有效。
4.
:
芯片选择信号输入引脚,低电平有效。
图8-108253的引脚
5.A1、A0:
地址信号输入引脚,一般接CPU地址总线的A1、A0位,用以选
择8253芯片的通道及控制字寄存器。
、
的状态与8253端口地址的对应
关系如表8-3所示(P161)
表8-3。
0
0
0#通道
0
1
1#通道
1
0
2#通道
1
1
控制端口
6.VCC及GND:
+5V电源及接地引脚
7.CLKi:
i=0,1,2,第i个通道的计数脉冲输入引脚,8253规定,加在CLK引脚的输入时钟信号的频率不得高于2.6MHZ,即时钟周期不能小于380ns。
8.GATEi:
i=0,1,2,第i个通道的门控信号输入引脚,门控信号的作用与通道
的工作方式有关。
9.OUTi:
i=0,1,2,第i个通道的定时/计数到信号输出引脚,输出信号的形式
由通道的工作
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 常用 可编程 接口 芯片