找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 7304|回复: 3

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

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

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

1 Q$ E. X( M! x

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

回复

使用道具 举报

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

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

注意8155的控制命令字寄存器只写不读,状态字寄存器只读不写,它们共用一个地址。$ D& r: l* A/ x  g1 w2 f, r4 T
6.        8155的基本用法:
4 q2 f" q) T: l) |, i  @①        可扩展256字节片外RAM5 W4 Q2 E% I, L6 S0 _
IO/M引脚低电平时,只能用作片外RAM扩充,其低8位地址为00H~FFH,共256字节,对其读写时用MOVX指令。8 d3 i8 I# a- `; H, @
②        作扩展I/O口使用) ~) S8 v: u4 Q, K) U6 S6 O
IO/M引脚高电平时,可根据命令字的规定从A、B、C口输入输出,共有20条输入输出线,. j+ ?8 b% {! ]
③        扩充一个14位定时器计数器
6 L9 l- `, [6 h8155提供一个14位减1计数器,它的功能主要用于计数,从TIMER IN端输入计数脉冲,计数满时由TIMER OUT输出脉冲或方波。
  ^- H; n# ?1 F$ J2 g使用步骤:. z0 x  i4 p* y/ s
写入控制命令字的D7、D6位控制启停。4 V. D0 P% s- U2 d
写入计数长度:端口地址04H的8位为计数器的低8位' R+ ^$ W' t$ ]1 O3 ]
端口地址05H的低6位为计数器的高6位,共14位。
2 t0 X/ f* T# z. N5 U. M. m05H的高2位确定当计数器时减到0时的输出方式。
0 o2 D/ b2 N* r3 D( f2 ?' g! f' b4 k: ?6 {9 C: P7 d$ E1 l3 v
8155片内带有地址锁存器,可在ALE的下降沿锁存地址,不必在外部另接锁存器。9 c# Z+ l: u6 b6 j( X( h
由上图得到8155各端口的地址为:& o2 c- T/ F* Z$ b$ j& ^# p8 u1 `
P2.7 = 0 ,片选CE有效;P2.0 = 1,则为端口地址
3 m! m4 N0 o1 J7 p1 r' ~P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 A7 A6 A5 A4 A3 A2 A1 A0
! W) f. `3 u! Y! Y1 [% m% |& s+ k
3 j! V4 F0 o8 v  d0   1   1   1   1   1   1    1  0  0  0  0  0  0  0  0 命令状态口7F00H
0 N3 j; F/ E  u: Z' n. l4 u( N5 Y7 G6 T( A% K6 h: I& @
0   1   1   1    1   1   1    1  0  0  0  0  0  0  0  1   PA口   7F01H
1 p7 {5 w8 O5 K* h7 W% W
  Z$ W  i4 y! D: i4 x0   1   1   1    1   1   1    1  0  0  0  0  0  0  1  0   PB口   7F02H
. n8 e' G; |" ^. x% g: S( k+ H7 d$ Y
1 z6 L" O4 U8 O" m0   1   1   1    1   1   1    1  0  0  0  0  0  0  1  1   PC口   7F03H
  k: l2 V8 u! d+ t
" u- h5 F3 Y) q. A! q( |0   1   1   1    1   1   1    1  0  0  0  0  0  1  0  0 定时器低位7F04H- a( R9 E$ b( q; Y
! E& V/ \% C+ b, H' p3 e4 a
0   1   1   1    1   1   1    1  0  0  0  0  0  1  0  1 定时器高位 7F05H( Q7 c+ z& f4 n* i  p
5 h: k" l6 E) A3 |; X
P2.7 = 0,片选CE = 0,且P2.0 = 0则为8155片内RAM地址:/ h+ J! V0 i6 g9 ~& O; @
7E00H~7EFFH    共256字节。! }- M7 @% c" j0 G+ x$ k9 q8 S
8155的基本操作软件:6 E- e# D, b9 Z) {
①I/O口及8155RAM的操作软件:
% R9 z% r% h& `1 I, ^MOV  DPTR ,  #7F00H     ;选命令状态口* P1 C+ g/ B+ j: I5 \1 I
MOV  A, #0C2H           ;送命令字 1  1  0  0  0  0  1  0     
% Y, L" |+ Q+ jMOVX  @DPTR , A        ;A口输入、B口输出、C口输入" ]- y& I7 d. M8 Y7 y' o5 i" D3 ~
MOV  DPTR , #7F01H      ;选A口
1 r: M+ V0 F" I; H8 bMOVX  A , @DPTR        ;从A口输入数据
7 c7 L& E* c8 Z4 FMOV  DPTR , #7E30H      ;选8155RAM的30H单元
: P0 M6 \6 E. x( yMOVX  @DPTR , A        ;将A口输入的数据存入30H单元7 n- c# H& D0 R* v: d
MOV  DPTR , #7F02H      ;选B口1 B; w2 R+ K% g; o6 @
MOVX  @DPTR , A        ;将A口输入的数据转从B口输出* x, Y  E* H$ Z" `7 p  _0 K
②计数器的软件:- R6 p3 i2 @$ h# P
MOV  DPTR , #7F04H      ;选计数器低8位" {" j+ a# q, k9 p- v3 N. o
MOV  A , #18H            
+ _7 `! v. ^4 X( C0 l1 Y% A) w* CMOVX  @DPTR , A        ;计数常数24装入计数器低8位) _+ t/ i9 J6 ]( o3 s5 X
1NC  DPTR               ;选计数器高位
8 y5 h9 A$ V* I9 q% m! dMOV  A, #40H
5 @7 O0 H. v# D6 W0 }" G3 IMOVX  A ,@DPTR        ; 高2位01选择输出方式为连续方波
, i  [2 o' p7 E9 q                          其低6位为计数器的高6位为00H 4 e0 p$ ]" B0 O9 J2 J
  ?' N( W7 j- i2 f" ]

本帖子中包含更多资源

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

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

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

楼主网友好!9 U+ g+ }. Q$ @* Q2 Z
; C9 q$ q: y8 i! W* K& e
你说的:“单片机要扩展40个通道……。”; l+ V. j0 j/ C# _

; ~9 o" c* N0 e, d. G8 L8 y能否告诉一下,这40个通道端口具体要做什么?
- ]1 ?9 F. y% ?7 v
0 c9 L6 n0 \! X0 U+ p4 d( U也许有好办法帮你解决点实际问题。. \# r$ _$ T" c  h, w

- a& l3 Z/ m  A; nsyw   060924---04.37
& J, [8 l7 j- ~0 `
发表于 2010-6-19 22:42:18 | 显示全部楼层
给你个链接吧 http://liuyunfeng484.blog.163.com/blog/static/6683171520096219621632/
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

GMT+8, 2025-9-19 23:58 , Processed in 0.154622 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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