8086引脚功能
+ O: u3 M9 c! q+ z
8086有40个引脚,采用DIP(Dual In—line Package,双列直插)封装,见图2.13。8086有两种组态模式:最小模式和最大模式。在最小模式时,8086本身产生系统所需的全部控制信号,在构成微机系统时只能构成单处理器系统。在最大模式时,部分控制信号需借助于其他芯片(总线控制器8288),在构成微机系统时可构成多处理器系统(一个微机系统中可以有多片8086微处理器)。8086的第24~31脚在两种模式下的引脚功能定义不一样。
5 D( Y$ S$ W5 ]6 ~. f
1.两种模式功用相同的引脚
. Z4 M8 W. n1 W3 N4 q (1)ADl5~ADO(Address/Data) 地址/数据复用,双向,三态
+ E# G5 O F( o
在T1期间作地址线用(输出地址的低16位),在T2~T4作数据线用。这里要对A0
2 j) r- c& L/ v/ Q
5 r8 }4 ?! g/ X1 k! R
* \% Q* E+ v6 P/ x+ P7 `8 l作一些说明。A0是20位地址的最低位,在ALE下降沿时被锁存到地址锁存器中。它除了作为地址的一位,参与地址译码外,还作为低8位数据的传送允许信号,即对于连接到低8位数据总线的存储器或I/O端口来说,在进行数据传送时须用A0选通。
{) |& }& a Q6 B
(2)A19/$6一A:16/S3(Address/Status) 地址/状态复用,输出,三态
3 b, j. I& `7 R4 N% ? 在T1期间作地址线用,对于存储器访问来说,输出地址的最高4位;对于I/O访问来说,由于只使用16位地址,所以在711期间这4根线将保持低电平。在T2~T4,这4根线作状态线用。s6指示8086当前是否使用总线。s5指示中断允许标志位的状态。S4、S3指明现在正在使用的段寄存器,S4、S3的每一种组合对应一个段寄存器,组合“0,0”、“0,1”、“1,0”、“l,l”分别对应ES、SS、CS、DS。
4 L. T; f, @) L (3)
9 x% D: X3 r. U+ `- y; {# P& k
. o! ~% |1 G: ?# k
/S7(Bus High Enable/s7) 控制/状态复用,输出,三态
8 Q/ v2 b& H8 e! X2 k3 [
在T1期间作为高8位数据传送允许信号
3 {0 X0 y& j9 Z$ K; W
8 O, g& E, h2 ]0 a9 U6 I
;在T2~T4期间输出状态信号s7。
# g! T& s! J. H; e) i
5 ]9 i2 e; |5 f$ F
为低,表示在高8位数据总线上可以进行数据传送,即对于连接到高8位数据总线的存储器或I/O端口来说,在进行数据传送时须用
% @3 u6 k+ v! B7 L/ i
: A" i; S' v- g( U7 v! ^& S0 `选通。
" P( |. M2 K+ y/ t" p7 P, D
x7 `2 ]7 i! W7 D+ ` R) R
和A0的组合作用见表2.2。
) A9 J& M4 m5 w; b% d& A# J
- X+ N% g& e: {+ k
/ ]) \4 J+ @, B# a7 q
( L" n" n5 G+ F8 [
(4)
6 ^ g/ F5 J9 {, {
' Z# y# ^4 O {0 Y {(Read) 读控制,输出,三态
' ?, X" e6 ?" j. b" W" \* @
低电平有效。有效时,表示CPU正在从存储器或I/O端口读出数据,究竟是读谁的数据需借助于信号M/
1 L0 b: }' O d7 Y6 x. I0 w
6 r$ _: I9 w% q Q而。
. M3 ^4 l1 a. [7 F5 ]
H* S: ^1 h' v1 q常被用来使能对方的数据输出机构。
- R Q4 L% x0 c! Q% V
(5)READY 准备好,输入
) C, K/ ?+ O+ i6 \- O8 j2 M* O7 V3 a) q 高电平有效。当8086采样该信号时,若发现为高电平,表示不需插入等待时钟Tw,反之则需插入Tw。8086在T3的开始以及插入的Tw的开始采样READY信号。
1 w/ L3 \' L& `# G (6)INTR(Interrupt Request)可屏蔽中断请求,输入
* o; n) { t: Q; h3 o9 ^- H 8086的中断有多种分类方法。从屏蔽角度分,可以分为可屏蔽中断和非屏蔽中断两类。所谓“屏蔽”是指让对应的中断不起作用,即不能提出中断请求或虽有请求但CPIJ不予响应。对于非屏蔽中断,一旦提出请求,CPU必须无条件予以响应,即这类中断是不可屏蔽的。对于可屏蔽中断,每一个中断源(引起中断的设备或事件)都有自己的屏蔽机制,另外还有一个总的屏蔽机制,即前面讲过的中断允许标志位IF。当IF为0时,
% l) s2 U$ O: I+ o" L: T CPU不响应任何可屏蔽中断请求。只有在IF为l时CPU才予以响应。INTR是可屏蔽请求输入端。
% G( {. j, T" z7 s (7)
! t: T! O+ R; r. n) ]
$ ~8 a9 k& s5 ?
测试,输入
, ?; D5 _3 D% v8 L9 _1 A: S4 X
在8086指令系统中有一条等待指令WAIT。执行该指令时,8086处于空闲状态,重复执行空闲时钟周期Ti。在每一个Ti的开始测试
) |: P' m$ v$ Q+ d, _
" O# V4 h' o' g* y% C,若为高电平,则继续插入Ti,若为低电平,则脱离等待状态,去执行WAIT的下一条指令。可以说,等待指令是等待外部提供的
, z, _+ T* c* \* i
% M1 i: [) q! w: ~5 Q1 p/ D2 Q7 u* ]信号变为低电平。因此,将
8 q: I% c* `3 ]2 L5 R: p D
, N. x0 Y* X2 c8 r+ `# G+ [: R2 n( D
和wAIT指令结合起来使用,可提供处理器与外部硬件同步的机制。
& w' y1 {* O+ D+ C1 a7 A( C' L
(8)NMI(Non-Maskable Interrupt) 非屏蔽中断请求,输入
0 _$ Z+ i6 K4 Z) @
(9)RESET 复位,输入
& Z$ W) B" }, E8 f1 L+ x4 ] 高电平有效(保持4个时钟周期以上),使8086复位,即立即结束现行操作,清空指令队列,初始化8086的内部寄存器。CS被置成FFFFH,DS、ES、ss、IP和标志寄存器被清0。随着RESET变为低电平,8086开始再启动过程,首先执行地址FFFFO H中的指令。
2 X0 B. }0 o! J" P7 z% h (10)CLK(Clock) 时钟输入
- q0 }+ L( P A f 该引脚是8086的时钟信号输入端。时钟信号一般由时钟发生器8284提供,8284将外接的石英振荡器的频率3分频后输出。当外接石英振荡器的频率为15 MHz时,8284输出信号的频率为5 MHz,这是8086的标准时钟频率。
* M& D9 ]# C$ o9 x- S. S
(11)VCC 5 V电源输入引脚
/ S* v0 T6 k( b$ V- s- {7 S (12)GND接地输入引脚
2 ]2 m" V8 y2 V' ^. |8 O8 m (13)MN/
1 a/ ~& `6 Z! l7 n5 K2 d( Z3 ^! D
$ B' s0 D; x2 ^% Q(Minimum/Maximum)组态选择,输入
' Q5 w: [. f, i% f7 n该引脚接 5 V时,8086工作在最大模式,接地时,工作在最小模式。
, Z" S6 b C2 S9 S6 Z6 E2.两种组态模式下,功能不同的引脚
7 U1 t3 t+ |) R- S9 @
1)最小模式下有关引脚的功能
9 Z/ N' e$ ^ \ (1)
. u4 D) O% [9 W7 V E7 S
* }) ~6 `2 r# n$ F1 L
(Write) 写控制,输出信号,三态
% c$ B& | v `& j3 i! ?, j* f% }; |
低电平有效。有效时,表示CPU正在向存储器或I/0端口写入数据,究竟是对谁进行写,需借助于M/
4 ?$ f3 p S/ u/ J
" H4 f) v6 [* @& D8 }1 K3 Y
。
$ x4 q$ n& p6 I8 M# I9 F2 _7 i9 ~) N- C
, t& x: ~; \6 f# c) F E常被用来打开对方的数据输入机构。
7 |. y, M* D% C& E* ?; j3 z
(2)M/
8 U2 @" z. H$ x5 I- V, K
5 e) O. y3 S& l0 d4 f- s(Memory/Input and Output) 存储器操作/IO操作,输出信号,三态
; i6 I# L# ?" q. J& ? 该信号指示当前进行的是存储器操作还是I/0操作。若为高电平,当前进行的是存储器操作;若为低电平,当前进行的是I/O操作。
B: `# G" R- l; U8 B( S 在最小模式时,存储器和I/O的读/写控制是通过M/
8 n9 c- a/ M, X! x6 z
: r: T5 K* a) Z% ?、
! v2 {8 Z1 i& ^
0 p* z& d. b$ d4 n7 o ? Z" b
、
6 _) [) |8 f+ |, M
$ S6 k, L7 @5 M4 U1 @, ^三者的配合实现的,见表2.3。
+ v& |9 r3 l5 }+ y& l- V! r
8 o& Z- q% d9 j" H5 [
2 W9 I2 M1 [. f" Z; m& x5 x& {
" d& J {( Y5 Y: e7 W# u. \8 \( {) r/ N( l6 k5 x; R
(3)
. a* x1 X! m3 W3 b$ q+ O$ v$ F
" Q+ N/ l. q7 h; Y
(Interrupt Acknowledge) 中断响应,输出
( q3 k4 P/ ~1 Z. M/ @8 x! v0 I
CPU响应可屏蔽中断请求后,进入中断响应周期,在中断响应周期中发出中断响应信号
% X. j: R' |9 W/ g
; O$ i. G% s1 u( w
。8086的中断响应周期为两个,所以在中断响应过程中会发出两个
+ {" Z6 i, `# L# y0 X0 m- F6 w
" }: c2 l" b1 s1 P1 l* J9 B) P1 t2 O8 q
。
/ b/ n" v9 ^* M) C4 \3 k (4)ALE(Address Latch Enable) 地址锁存允许,输出,三态
2 a3 _ V ^+ a" j) ]6 Z( o
有效时,表示复用地址线正在传送地址信息,其后沿可用来进行地址锁存。
% ^4 R$ U8 E( x" d
(5)DT/
3 c! ]4 R# m1 i# R' H% R' D- @
+ s- \, c2 b: J' }(Data Transmit/Receive) 数据收发控制,输出,三态
8 C* S- [& {5 l0 g( ~9 u
该信号表示当前总线上数据的流向。为高电平,表示数据从CPU流出,即cPu向外输出数据;为低电平,表示数据流向CPU,即CPU接收数据。通常用这个信号作数据收发器的方向控制。
' Y+ x( t7 v& M( q- |2 Q" A
(6)
7 d' M# r( K) M5 ]$ C; ]
$ R6 Z/ c' H: H, @5 u/ t7 p(Data Enable)数据允许,输出,三态
+ w0 Q5 y. G; C( H0 g3 j' L
该信号低电平有效。有效时,表示允许数据传送。通常用这个信号作数据收发器的允许控制。
' X. T X- U) V& F
(7)HOLD总线持有请求(简称总线请求),输入
1 e" M# o" }+ s$ z
该信号高电平有效。有效时,表示有总线控制设备(又叫总线请求设备或总线主控设备)向CPU申请占有总线。
! F" D( V7 A4 t
(8)HLDA(HOLD Acknowledge) 总线持有响应,输出
$ v. d, v7 V: \# M 该信号高电平有效。有效时,表示cPu已响应总线持有请求并将总线释放,此时,cPu 的地址总线、数据总线及三态控制总线将全面呈现高阻,使提请求的总线控制设备可以顺利接管总线。
" x( c+ T9 X( H& k8 m. p: O
2)最大模式下有关引脚的功能
. p* k; k1 K `+ R) [ y
(1)
6 \8 ^/ W/ W: I, ]4 |
# x3 y8 ?9 V+ x B$ S a
、
; K4 z2 \1 W! P3 v6 l' i
/ s8 \# {/ u% r/ o+ H! b
、
: D" B6 K, ~8 n" g# |: v& ^% B
\9 L- {# k9 \(status)状态信号,输出,三态
& y9 v' o$ H$ V+ H, U: c) s' P' J 8086通过它们的编码让外部电路(总线控制器8288)了解8086当前的工作状态,见 表2.4。
* ?) V e: g, w6 g/ P: Z, L/ C
- [6 m! P* a$ Q/ A1 }' A
0 R; u* S+ j) d
, O) l: s2 y+ y/ `4 t8 j1 T }
7 ]) T1 E/ @' f- X" e( w3 `4 ~- i/ \! |
(2)
( w$ O, h6 s3 ]* f
9 \) K/ t0 E9 ?) |0 K. c m总线锁定,输出,三态
8 M6 Q& G) H: Q5 U/ y8 V1 e 该信号一般与指令前缀L0cK配合使用。当CPU执行一条加有LOCK前缀的指令时,该引脚输出有效电平,用来封锁其他总线主控设备,不允许它们此时提出总线请求,直到cPu将该指令执行完为止。另外,在中断响应周期中该信号也一度有效,目的也还是利用该信号来封锁总线主控设备的请求,以确保CPU从数据总线上正确获得中断向量。
0 @+ O, }1 j0 P9 p t, K/ e
(3)QSl、QSO(Queue Status) 指令队列状态,输出
: L* Y) ?" P) f @/ s- |5 | 通过它们的编码让外部电路(如协处理器8087)了解指令队列当前的操作状态(细
, q% H& C5 f; c- t
节略)。
8 c0 ^0 I3 d, ~! F _ (4)
, Q0 c5 s; Z$ w: O: i
. U7 F \+ X- b5 f/
* S9 j8 }0 U3 ~8 K( N7 O! l h
" U! {2 `% x; a; I7 h( ?) C
、
$ s2 Z A4 j1 M
; p3 X: |$ ]6 l: A
/
/ C( a2 H/ \/ ?: H" m( `
* {2 ]& V7 R) P$ G! O
(Request/Grant) 请求/同意,双向,三态
' ]: z: f' \& S2 v7 s 这两个引脚的作用和最小模式下的HOLD、HLDA相类似,也用于总线主控设备请求占用总线和获得CPU的允许,但机制有所不同(细节略)。