机械社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 7106|回复: 3

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

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

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

2 O+ T) N4 i! H1 R9 h3 g0 J: d

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

回复

使用道具 举报

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

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

注意8155的控制命令字寄存器只写不读,状态字寄存器只读不写,它们共用一个地址。
+ o. M1 z- C# V  w6.        8155的基本用法:4 q  Z. m2 T. ?4 ]& \
①        可扩展256字节片外RAM9 v& n- o" K( c5 x
IO/M引脚低电平时,只能用作片外RAM扩充,其低8位地址为00H~FFH,共256字节,对其读写时用MOVX指令。
  \0 r. W7 f0 M, @( x# T) I②        作扩展I/O口使用
1 G6 ~& \3 w& I& J+ S0 E" yIO/M引脚高电平时,可根据命令字的规定从A、B、C口输入输出,共有20条输入输出线,  A  z! t* i) A
③        扩充一个14位定时器计数器3 s+ C  K; P% R, u  C& z' y
8155提供一个14位减1计数器,它的功能主要用于计数,从TIMER IN端输入计数脉冲,计数满时由TIMER OUT输出脉冲或方波。
6 c8 B7 p+ i+ h/ X/ j: L使用步骤:% J! r/ K# x0 u& o' {
写入控制命令字的D7、D6位控制启停。+ ]: ~* Z7 t: I# G2 s' j* V/ b
写入计数长度:端口地址04H的8位为计数器的低8位3 T& A2 H3 L6 [3 `% s3 G% t
端口地址05H的低6位为计数器的高6位,共14位。
$ Z# x& J' D6 b# Y# g" V* p* J3 V: W05H的高2位确定当计数器时减到0时的输出方式。. o" f, V- w: Z1 K
" t' S* w. Y3 J5 O* ?& H
8155片内带有地址锁存器,可在ALE的下降沿锁存地址,不必在外部另接锁存器。, A  N. O3 Q9 Z
由上图得到8155各端口的地址为:
) b; z5 w/ @$ _) j; xP2.7 = 0 ,片选CE有效;P2.0 = 1,则为端口地址; x$ O' k; N; M) M
P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 A7 A6 A5 A4 A3 A2 A1 A0
% j- s2 ?# O. t1 L: n+ t* n* f* y
% Q+ |! j" Q+ V' ~2 H3 N5 C0   1   1   1   1   1   1    1  0  0  0  0  0  0  0  0 命令状态口7F00H
' \( Z: G  M( O/ U* q" v" F/ h; {/ t( @6 R: @
0   1   1   1    1   1   1    1  0  0  0  0  0  0  0  1   PA口   7F01H! i: z) ~7 N! m  P* k) i
- c9 T% R) f1 b0 t
0   1   1   1    1   1   1    1  0  0  0  0  0  0  1  0   PB口   7F02H+ e# e9 |" r* W& L8 M5 ?* n# ?
" ?4 w/ d' P4 [: h6 K! X2 f
0   1   1   1    1   1   1    1  0  0  0  0  0  0  1  1   PC口   7F03H3 O: Q# ?# k9 ?4 E
$ H* `6 h& w5 R" Q, C% T
0   1   1   1    1   1   1    1  0  0  0  0  0  1  0  0 定时器低位7F04H
; D6 m3 y% H0 Z) c! V" r  J2 @' I" [
0   1   1   1    1   1   1    1  0  0  0  0  0  1  0  1 定时器高位 7F05H
* n8 ^$ {7 }: n% e! A5 T2 k
, |% B. p4 U3 a/ s4 M7 k! kP2.7 = 0,片选CE = 0,且P2.0 = 0则为8155片内RAM地址:
* N% f+ R/ a' t7E00H~7EFFH    共256字节。
5 W2 V$ ~8 |. k8155的基本操作软件:
7 D* H# s; l7 Z/ m% `: |. S- f9 d①I/O口及8155RAM的操作软件:
  W) l. A4 q* [* r' x9 Q- G2 XMOV  DPTR ,  #7F00H     ;选命令状态口
# o6 Y5 H8 e+ W- C- t* y% h7 T' ]MOV  A, #0C2H           ;送命令字 1  1  0  0  0  0  1  0     . Z( u0 {$ A4 H* {
MOVX  @DPTR , A        ;A口输入、B口输出、C口输入& j  v/ W5 C$ o
MOV  DPTR , #7F01H      ;选A口" f. D& ^% O; Y' j1 P: y/ t
MOVX  A , @DPTR        ;从A口输入数据
% |& ~4 [5 k$ ?, ~7 lMOV  DPTR , #7E30H      ;选8155RAM的30H单元
8 @; a7 u* B8 u, QMOVX  @DPTR , A        ;将A口输入的数据存入30H单元
, x. Y) y) v* b/ Q% V- b; GMOV  DPTR , #7F02H      ;选B口3 U/ e! y; d( Z. m; _. y- _
MOVX  @DPTR , A        ;将A口输入的数据转从B口输出
# \6 w( y* m" f% k- O②计数器的软件:9 ]& _0 B+ i! q- z( B
MOV  DPTR , #7F04H      ;选计数器低8位) y$ _5 P# ]. M0 t$ I/ ?- P
MOV  A , #18H            
- I; a. `1 [1 O% aMOVX  @DPTR , A        ;计数常数24装入计数器低8位! W! J# `  y4 S& [
1NC  DPTR               ;选计数器高位& v& U2 M6 ?; K1 g
MOV  A, #40H7 p* _0 x& H( N# D, T8 I% U1 N+ c
MOVX  A ,@DPTR        ; 高2位01选择输出方式为连续方波5 O) m7 |% w% P
                          其低6位为计数器的高6位为00H + t1 i6 U, F  Q
5 I9 B) |" I) J, M& M' o! P. t

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

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

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

楼主网友好!0 D9 C. r1 B) S/ r5 u4 T
% D* H$ |( z. Q
你说的:“单片机要扩展40个通道……。”9 S1 r, s+ e+ N( ?  |' m) V

/ i- y3 u9 {5 k/ i, v9 P能否告诉一下,这40个通道端口具体要做什么?. F' w5 N3 p6 L- \; T+ g
, |6 H/ M. _% X! u' d# C2 I
也许有好办法帮你解决点实际问题。
! \2 g! A9 F+ p' x/ l  K5 F: T  R* ?7 L7 C: {1 N9 Y
syw   060924---04.37
+ r. V: ]* T$ `$ Y% Q0 A
回复 支持 反对

使用道具 举报

发表于 2010-6-19 22:42:18 | 显示全部楼层
给你个链接吧 http://liuyunfeng484.blog.163.com/blog/static/6683171520096219621632/
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

GMT+8, 2025-2-19 06:27 , Processed in 0.089927 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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