找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 7335|回复: 3

单片机与8155 之间的数据是怎样传送的?---[请教]

[复制链接]
发表于 2006-9-23 21:48:16 | 显示全部楼层 |阅读模式

有谁知道单片机与8155 之间的数据是怎样传送的吗?8155做为单片机的I/O口数据扩展

5 i! K, C4 K3 u1 T

,如果单片机要扩展40个通道请问数据是怎样传送的

回复

使用道具 举报

发表于 2006-9-23 23:03:56 | 显示全部楼层

Re: 单片机与8155 之间的数据是怎样传送的?---[请教]

注意8155的控制命令字寄存器只写不读,状态字寄存器只读不写,它们共用一个地址。
$ w" N+ j0 D# I; g6.        8155的基本用法:
4 z9 ]/ u7 X! [  V, o9 }①        可扩展256字节片外RAM( z! L, k: X- _4 m$ W' U
IO/M引脚低电平时,只能用作片外RAM扩充,其低8位地址为00H~FFH,共256字节,对其读写时用MOVX指令。8 F) I* s8 B  ]. S: i1 F
②        作扩展I/O口使用
; g& ?8 x) D( i4 |4 r$ LIO/M引脚高电平时,可根据命令字的规定从A、B、C口输入输出,共有20条输入输出线,
% U& B0 d  y& `6 \; l3 Y0 ?& Z3 _6 ^③        扩充一个14位定时器计数器% V" ~4 v/ |$ F" b7 x  B
8155提供一个14位减1计数器,它的功能主要用于计数,从TIMER IN端输入计数脉冲,计数满时由TIMER OUT输出脉冲或方波。4 _# G- m- C/ z! p
使用步骤:) a5 [# w5 C1 E7 y- C9 Z
写入控制命令字的D7、D6位控制启停。1 Z4 }( w; f. Y- O% S: w
写入计数长度:端口地址04H的8位为计数器的低8位
6 R- d" n; X8 Q" L- L端口地址05H的低6位为计数器的高6位,共14位。
* q/ v8 M2 X- x  `3 |! U, q7 n05H的高2位确定当计数器时减到0时的输出方式。8 B* t6 J5 z: B

1 `: U3 P) }. d) S9 S, L9 z8155片内带有地址锁存器,可在ALE的下降沿锁存地址,不必在外部另接锁存器。% T: m3 `2 D# H! ]7 _
由上图得到8155各端口的地址为:
1 e' p6 ?' k) `* e2 yP2.7 = 0 ,片选CE有效;P2.0 = 1,则为端口地址
5 n3 ]& P$ h6 W. \) N' nP2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 A7 A6 A5 A4 A3 A2 A1 A0
+ S6 S  C5 h. L4 ^ 8 N5 s; K' R& A3 a2 }# u. K
0   1   1   1   1   1   1    1  0  0  0  0  0  0  0  0 命令状态口7F00H7 Q; c9 {' B3 z+ }' X9 W  O
& U3 o$ a8 v# K) ^
0   1   1   1    1   1   1    1  0  0  0  0  0  0  0  1   PA口   7F01H7 h! g+ k4 O9 a% |
" H# I. |) T# p
0   1   1   1    1   1   1    1  0  0  0  0  0  0  1  0   PB口   7F02H
, x4 F$ h6 V8 Y  F' H0 u
# K- v# P+ E* S0   1   1   1    1   1   1    1  0  0  0  0  0  0  1  1   PC口   7F03H
7 T9 d' k( t/ @( ?0 U" `7 v
8 t) C/ J; |: Y5 d4 ~8 N" |0   1   1   1    1   1   1    1  0  0  0  0  0  1  0  0 定时器低位7F04H
8 w  `# S0 b1 n  B& T' o3 o0 p
9 M; f" y" @. X9 ?$ `9 a* J0   1   1   1    1   1   1    1  0  0  0  0  0  1  0  1 定时器高位 7F05H
) T' t; E% w; x! \
. ^  J1 u, L! a6 C& }P2.7 = 0,片选CE = 0,且P2.0 = 0则为8155片内RAM地址:
6 e  K8 D, y) q- @$ }  J! T) c7E00H~7EFFH    共256字节。$ D# }0 }# W; `$ W
8155的基本操作软件:' o) w4 t0 E. R; f) C- y
①I/O口及8155RAM的操作软件:
, m/ \7 |2 h3 P3 R& N( q* ?5 H6 `MOV  DPTR ,  #7F00H     ;选命令状态口9 B) F5 C$ M5 q3 d+ \
MOV  A, #0C2H           ;送命令字 1  1  0  0  0  0  1  0     
2 }, f/ a2 E$ h1 z, c! g; j4 sMOVX  @DPTR , A        ;A口输入、B口输出、C口输入
" E5 T* a. d# u$ x) t& m5 Q3 c9 K' TMOV  DPTR , #7F01H      ;选A口
- {' l" |" _' F5 zMOVX  A , @DPTR        ;从A口输入数据
  R% s$ ]# E- }/ R! f" A* LMOV  DPTR , #7E30H      ;选8155RAM的30H单元
! b. i5 F, t, @* e5 E: V: p) C1 k3 WMOVX  @DPTR , A        ;将A口输入的数据存入30H单元
, E$ H( }/ i0 }; _. G& g8 P4 PMOV  DPTR , #7F02H      ;选B口
# z8 E& m) B2 c% N3 IMOVX  @DPTR , A        ;将A口输入的数据转从B口输出
' b: W' F' M" _0 h) X②计数器的软件:4 Z0 L7 z; ?) e( D
MOV  DPTR , #7F04H      ;选计数器低8位" ?( I' |: G% h5 F0 G
MOV  A , #18H            
+ d% M# l! Y1 w" a2 H: sMOVX  @DPTR , A        ;计数常数24装入计数器低8位- O  b8 z: v! y4 @3 W) r
1NC  DPTR               ;选计数器高位- a0 `$ g) o2 Q1 Y: p, G  P, j% b
MOV  A, #40H
. B, e8 V9 L1 h) o( B; XMOVX  A ,@DPTR        ; 高2位01选择输出方式为连续方波4 K, x6 b- ~6 U  |! v; h1 y: w3 d4 T
                          其低6位为计数器的高6位为00H
3 J5 \) i' r2 G+ `) W! E0 s8 ~
' q" C( z: _4 y- B1 D

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
发表于 2006-9-24 04:37:58 | 显示全部楼层

Re: 单片机与8155 之间的数据是怎样传送的?---[请教]

楼主网友好!
5 ^4 ^* e- ~$ n( q( s! ^8 g7 Q
你说的:“单片机要扩展40个通道……。”
' |. c( Z0 o& t* w: C0 o- u# Y
8 j# b: f: h1 @4 ^) X  ^# B7 K- O! \能否告诉一下,这40个通道端口具体要做什么?4 r+ H: y/ V7 ?

  ]) j9 `$ W" |. x2 a1 f也许有好办法帮你解决点实际问题。4 [- I  V1 Q, y9 A+ t

3 w0 Q4 w- F7 P5 G/ [* \syw   060924---04.37
5 B/ w# t! ^/ _9 N7 m5 i* J3 t
发表于 2010-6-19 22:42:18 | 显示全部楼层
给你个链接吧 http://liuyunfeng484.blog.163.com/blog/static/6683171520096219621632/
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Archiver|手机版|小黑屋|机械社区 ( 京ICP备10217105号-1,京ICP证050210号,浙公网安备33038202004372号 )

GMT+8, 2025-10-21 15:28 , Processed in 0.093129 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表