|
2#
發(fā)表于 2006-9-23 23:03:56
|
只看該作者
Re: 單片機(jī)與8155 之間的數(shù)據(jù)是怎樣傳送的?---[請(qǐng)教]
注意8155的控制命令字寄存器只寫不讀,狀態(tài)字寄存器只讀不寫,它們共用一個(gè)地址。& K; U# Z( R: W/ ~2 n6 A; K
6. 8155的基本用法:
- w+ _, ] k ^" L① 可擴(kuò)展256字節(jié)片外RAM
: v' V) r1 {$ {IO/M引腳低電平時(shí),只能用作片外RAM擴(kuò)充,其低8位地址為00H~FFH,共256字節(jié),對(duì)其讀寫時(shí)用MOVX指令。
$ p) a! v$ r" u' s2 t: h, Z② 作擴(kuò)展I/O口使用
5 V" @7 y& ` s. AIO/M引腳高電平時(shí),可根據(jù)命令字的規(guī)定從A、B、C口輸入輸出,共有20條輸入輸出線,6 Y g% u+ G: s0 Q2 `- {
③ 擴(kuò)充一個(gè)14位定時(shí)器計(jì)數(shù)器4 Y' h' n) j) `. l V
8155提供一個(gè)14位減1計(jì)數(shù)器,它的功能主要用于計(jì)數(shù),從TIMER IN端輸入計(jì)數(shù)脈沖,計(jì)數(shù)滿時(shí)由TIMER OUT輸出脈沖或方波。
4 _ ]" O9 S3 G& Z. U2 F6 }使用步驟:
) u9 D) i' O: a- b寫入控制命令字的D7、D6位控制啟停。
6 Y- P R$ `* L! G7 C$ t& l) w4 H寫入計(jì)數(shù)長(zhǎng)度:端口地址04H的8位為計(jì)數(shù)器的低8位
/ D0 p! h9 p X3 J0 O端口地址05H的低6位為計(jì)數(shù)器的高6位,共14位。
. R8 K' b7 q5 k' J* [& e$ U+ I05H的高2位確定當(dāng)計(jì)數(shù)器時(shí)減到0時(shí)的輸出方式。
* g) o+ Z( L$ }; P$ L! F
5 F, |- f5 Y* D8155片內(nèi)帶有地址鎖存器,可在ALE的下降沿鎖存地址,不必在外部另接鎖存器。
' h+ C& x) n2 H# d3 X q! _: u# c由上圖得到8155各端口的地址為:
: B2 Z' r L% F+ f+ KP2.7 = 0 ,片選CE有效;P2.0 = 1,則為端口地址
7 S- u# @5 M2 iP2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 A7 A6 A5 A4 A3 A2 A1 A0 ' @1 Q/ P6 o% T4 T! I9 ~
5 g. ~# w1 K" z4 O, ~4 H
0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 命令狀態(tài)口7F00H
+ G( I3 V- q% X2 N9 K3 L! ?( y5 T7 I3 m7 W
0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 PA口 7F01H
B6 ^7 d& |* h& c) C/ r7 p
: z5 r* I4 d3 P" S0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 0 PB口 7F02H
0 T1 f4 E: u+ i4 ]; x! V: ?! O2 z5 Y5 D3 t2 }. t6 O
0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 PC口 7F03H# Z+ b- E8 k: v
- c- W- K" Q- Y; x% X2 s
0 1 1 1 1 1 1 1 0 0 0 0 0 1 0 0 定時(shí)器低位7F04H/ P( W$ l. r* M1 Q9 v% n
, a$ W7 Y$ O% W' N4 E0 1 1 1 1 1 1 1 0 0 0 0 0 1 0 1 定時(shí)器高位 7F05H
, {) }, b' B7 F! m1 M* @5 [( ~. O" d* A" c4 `# d" C! Q/ L S
P2.7 = 0,片選CE = 0,且P2.0 = 0則為8155片內(nèi)RAM地址:
$ u/ J" Z! s! D# h5 }7E00H~7EFFH 共256字節(jié)。
0 i! g. K. y0 B9 P6 S8155的基本操作軟件:
@0 z) b: d/ _( } Y; j# s①I/O口及8155RAM的操作軟件:) l5 E" }$ }+ ^8 W! }
MOV DPTR , #7F00H ;選命令狀態(tài)口, L5 v2 h3 a/ I# X
MOV A, #0C2H ;送命令字 1 1 0 0 0 0 1 0
2 [: V7 i' b# A CMOVX @DPTR , A ;A口輸入、B口輸出、C口輸入
- @% l* M1 i7 }+ yMOV DPTR , #7F01H ;選A口
1 o x: L3 W |0 k' WMOVX A , @DPTR ;從A口輸入數(shù)據(jù)( I, J* R4 [8 }7 G
MOV DPTR , #7E30H ;選8155RAM的30H單元) \' T0 F& X! g9 r
MOVX @DPTR , A ;將A口輸入的數(shù)據(jù)存入30H單元
! G5 Z# ^. g/ }- t. O. u+ \* CMOV DPTR , #7F02H ;選B口
$ C% N P5 b6 G8 z1 }$ sMOVX @DPTR , A ;將A口輸入的數(shù)據(jù)轉(zhuǎn)從B口輸出
G7 }: d* K3 g; R; h& H②計(jì)數(shù)器的軟件:. v6 u# J5 |& ?2 B& {( [
MOV DPTR , #7F04H ;選計(jì)數(shù)器低8位
; ^5 O) i" R# }MOV A , #18H ' S. @! {( i* d+ N" L) y8 p8 M
MOVX @DPTR , A ;計(jì)數(shù)常數(shù)24裝入計(jì)數(shù)器低8位
# U' f2 W3 X8 Z/ G# [, _$ B4 B+ |1NC DPTR ;選計(jì)數(shù)器高位
4 `( {$ M# w* F' m J- RMOV A, #40H+ H3 a, r; R: Z, o
MOVX A ,@DPTR ; 高2位01選擇輸出方式為連續(xù)方波2 Q( n: E0 ]' I* J
其低6位為計(jì)數(shù)器的高6位為00H
& l" r$ T3 e' g9 Z" R# m& O0 U; U9 D! N, H
|
|