|
2#
發(fā)表于 2006-9-23 23:03:56
|
只看該作者
Re: 單片機(jī)與8155 之間的數(shù)據(jù)是怎樣傳送的?---[請(qǐng)教]
注意8155的控制命令字寄存器只寫(xiě)不讀,狀態(tài)字寄存器只讀不寫(xiě),它們共用一個(gè)地址。" Y0 ]5 i# V$ e1 `
6. 8155的基本用法:
( j! B/ K% r' M" D6 t* E* M① 可擴(kuò)展256字節(jié)片外RAM
7 {) P/ f4 n9 j$ O" uIO/M引腳低電平時(shí),只能用作片外RAM擴(kuò)充,其低8位地址為00H~FFH,共256字節(jié),對(duì)其讀寫(xiě)時(shí)用MOVX指令。
: \& }# p9 B& l, E$ Z* @* b② 作擴(kuò)展I/O口使用
. D2 G& D: c& l, }7 cIO/M引腳高電平時(shí),可根據(jù)命令字的規(guī)定從A、B、C口輸入輸出,共有20條輸入輸出線,8 f& K$ }# m, X( ]4 Z+ r
③ 擴(kuò)充一個(gè)14位定時(shí)器計(jì)數(shù)器& m, K8 O2 N; L5 T$ O! x
8155提供一個(gè)14位減1計(jì)數(shù)器,它的功能主要用于計(jì)數(shù),從TIMER IN端輸入計(jì)數(shù)脈沖,計(jì)數(shù)滿時(shí)由TIMER OUT輸出脈沖或方波。6 Q" c7 p3 I. i+ p
使用步驟:
: }* ] X& d8 J* a7 b寫(xiě)入控制命令字的D7、D6位控制啟停。
$ {2 w7 D: O8 Z. H2 o寫(xiě)入計(jì)數(shù)長(zhǎng)度:端口地址04H的8位為計(jì)數(shù)器的低8位1 B8 n" ]4 t E1 n& n5 z1 M$ a+ `
端口地址05H的低6位為計(jì)數(shù)器的高6位,共14位。+ f! v$ q$ s& i, s6 m
05H的高2位確定當(dāng)計(jì)數(shù)器時(shí)減到0時(shí)的輸出方式。
6 c# r9 E' U. b$ `$ Y# @2 d% l G& S. X- Z1 n/ ]
8155片內(nèi)帶有地址鎖存器,可在ALE的下降沿鎖存地址,不必在外部另接鎖存器。
/ c, q( I; M. ?' J: K由上圖得到8155各端口的地址為:
- e4 i1 G5 s& c9 d. H, @: }P2.7 = 0 ,片選CE有效;P2.0 = 1,則為端口地址3 f7 l7 S- Q; @
P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 A7 A6 A5 A4 A3 A2 A1 A0
' [/ @. A! _* Q; t* A3 R8 B* C $ ~- O2 g) f" \* K5 p# F
0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 命令狀態(tài)口7F00H9 N* P# r1 h; `( A2 ^( L
7 F T) B: T) X. E$ J, P" x0 u+ e0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 PA口 7F01H* {8 p7 t" G: v) y6 M
4 p$ B$ O+ G2 w0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 0 PB口 7F02H7 v" B, c( Z4 h1 G
" Y i, E& {+ b9 n, J4 n; U
0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 PC口 7F03H- X. g- F8 q8 m- U4 f9 B1 j$ k
" w( ^5 J3 \$ B' G
0 1 1 1 1 1 1 1 0 0 0 0 0 1 0 0 定時(shí)器低位7F04H
. |' P$ b; R# Y y: @- M
) K- T4 A0 q4 b0 1 1 1 1 1 1 1 0 0 0 0 0 1 0 1 定時(shí)器高位 7F05H( ]2 z) z; Z& R9 \3 w) T! _: l
8 E% s6 H8 A/ `
P2.7 = 0,片選CE = 0,且P2.0 = 0則為8155片內(nèi)RAM地址:
2 k1 u/ H% s- { U$ i, E) G7E00H~7EFFH 共256字節(jié)。, t7 O/ j$ C# b5 O8 O5 N+ {4 A
8155的基本操作軟件:
* V3 O2 ]1 u$ M①I(mǎi)/O口及8155RAM的操作軟件:0 `/ m7 i W s; ~/ F
MOV DPTR , #7F00H ;選命令狀態(tài)口9 B$ c8 l' M! F' J8 j
MOV A, #0C2H ;送命令字 1 1 0 0 0 0 1 0
d3 _+ Z( Z" E- O: c" A: dMOVX @DPTR , A ;A口輸入、B口輸出、C口輸入# i7 l$ J$ F: |- H* v8 q
MOV DPTR , #7F01H ;選A口
8 S3 K8 P. C5 w) x3 ?+ u/ M5 V1 UMOVX A , @DPTR ;從A口輸入數(shù)據(jù); a8 q7 A) t- a# o
MOV DPTR , #7E30H ;選8155RAM的30H單元) H6 R$ c% |4 r
MOVX @DPTR , A ;將A口輸入的數(shù)據(jù)存入30H單元
# x0 \* D$ {; }7 {3 uMOV DPTR , #7F02H ;選B口
8 _$ i# n* l7 t! U. H, E3 u5 _6 BMOVX @DPTR , A ;將A口輸入的數(shù)據(jù)轉(zhuǎn)從B口輸出 U; l6 i, s' n% I& w
②計(jì)數(shù)器的軟件:
7 R7 S# I4 h# D) sMOV DPTR , #7F04H ;選計(jì)數(shù)器低8位
% s* Q3 n/ B. q. s& P2 QMOV A , #18H
9 \: @: P' b1 t5 jMOVX @DPTR , A ;計(jì)數(shù)常數(shù)24裝入計(jì)數(shù)器低8位1 n2 J4 o3 P* X& H8 b" s8 n) ~
1NC DPTR ;選計(jì)數(shù)器高位 I- K6 T7 {9 p
MOV A, #40H& J$ \4 @; a/ b8 ^4 h5 @
MOVX A ,@DPTR ; 高2位01選擇輸出方式為連續(xù)方波
6 e/ F8 V% `5 V1 w+ d 其低6位為計(jì)數(shù)器的高6位為00H
" L( ]- U# ?' p J
8 x$ l7 }- x( }' N8 Q y# B |
|