机械社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 7107|回复: 3

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

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

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

! q2 U7 C3 I9 |" V% ?

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

回复

使用道具 举报

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

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

注意8155的控制命令字寄存器只写不读,状态字寄存器只读不写,它们共用一个地址。9 [: g) ?* ]2 ^- Q
6.        8155的基本用法:. Q; C5 H! X" p8 S6 V* R4 l
①        可扩展256字节片外RAM
) l4 \1 E) h: ?* c' l" AIO/M引脚低电平时,只能用作片外RAM扩充,其低8位地址为00H~FFH,共256字节,对其读写时用MOVX指令。, Z# U9 K9 z, _
②        作扩展I/O口使用! ?4 r; a+ L- u! T6 z  ^2 u
IO/M引脚高电平时,可根据命令字的规定从A、B、C口输入输出,共有20条输入输出线,
9 G" y/ K2 e/ u+ q0 K: {③        扩充一个14位定时器计数器; S: Y- o0 Y) D
8155提供一个14位减1计数器,它的功能主要用于计数,从TIMER IN端输入计数脉冲,计数满时由TIMER OUT输出脉冲或方波。2 v) Z( ?" t  n( X
使用步骤:
9 m/ R: M% r1 H! `4 ?; J+ q& `" i写入控制命令字的D7、D6位控制启停。  D  X1 \- o" ^4 Y
写入计数长度:端口地址04H的8位为计数器的低8位9 g* K( `% h+ w3 h5 m( A
端口地址05H的低6位为计数器的高6位,共14位。( b1 O6 j! _, t& v" j7 R8 c
05H的高2位确定当计数器时减到0时的输出方式。5 O8 L$ x$ \: S% D

6 l# M% t/ g: S) W, ]/ b8 Q" Y8155片内带有地址锁存器,可在ALE的下降沿锁存地址,不必在外部另接锁存器。
! M; M8 V8 u, j( b. h. M/ |由上图得到8155各端口的地址为:
: g8 o7 l# n3 K- t7 B+ x+ _P2.7 = 0 ,片选CE有效;P2.0 = 1,则为端口地址5 p& e4 V) `: |2 u( j( |
P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 A7 A6 A5 A4 A3 A2 A1 A0 # J3 m+ }- F& Z6 }

$ k+ w+ l6 d" B- w* ]" X( J- z" f0   1   1   1   1   1   1    1  0  0  0  0  0  0  0  0 命令状态口7F00H, m5 e0 [1 j2 G+ f# \
2 R. H. `. n) e; m! T) o, m( U
0   1   1   1    1   1   1    1  0  0  0  0  0  0  0  1   PA口   7F01H
, a. X, }$ k9 ]/ h. C) ?2 {$ V4 P, I
0   1   1   1    1   1   1    1  0  0  0  0  0  0  1  0   PB口   7F02H
; T& U. i2 d! K7 I- H; q) }+ q+ P$ i5 j
0   1   1   1    1   1   1    1  0  0  0  0  0  0  1  1   PC口   7F03H& b- O, H1 Q6 G6 f: l% W- c# [

' V" g3 _6 l: m: z; R( `0   1   1   1    1   1   1    1  0  0  0  0  0  1  0  0 定时器低位7F04H
$ |3 N; m5 d1 c4 p" ~( ~! A: ?/ l# N7 p, A2 F2 h
0   1   1   1    1   1   1    1  0  0  0  0  0  1  0  1 定时器高位 7F05H+ ?8 V: U+ v, K: w, q

# R( z& P$ e7 e7 f" u' ^P2.7 = 0,片选CE = 0,且P2.0 = 0则为8155片内RAM地址:
* B) _+ [+ A9 d7 h7 P& F7E00H~7EFFH    共256字节。% ^' d" M2 R, n1 Y4 P- @2 g
8155的基本操作软件:" G. ^1 h7 M( V' [# t" ~5 E
①I/O口及8155RAM的操作软件:
3 m& @( u1 q# H: [MOV  DPTR ,  #7F00H     ;选命令状态口+ k- b& l# S; R
MOV  A, #0C2H           ;送命令字 1  1  0  0  0  0  1  0     2 X+ i& V4 N- K2 X6 d9 T- i+ q
MOVX  @DPTR , A        ;A口输入、B口输出、C口输入" ?: z3 s% R' p& `+ w1 s
MOV  DPTR , #7F01H      ;选A口" N8 c" M( V5 B3 }$ r
MOVX  A , @DPTR        ;从A口输入数据, ?; T: R4 j: h$ v% d2 U6 y
MOV  DPTR , #7E30H      ;选8155RAM的30H单元" c- G6 E" h, J) n% k! z$ C
MOVX  @DPTR , A        ;将A口输入的数据存入30H单元
; t) S/ x. }& _5 v) f! w7 `' FMOV  DPTR , #7F02H      ;选B口
4 o) v2 Q! g8 l" DMOVX  @DPTR , A        ;将A口输入的数据转从B口输出
2 @1 G. [+ b0 q②计数器的软件:3 ^. I4 \. B" T4 D( w
MOV  DPTR , #7F04H      ;选计数器低8位
1 A( M* Q8 k( g5 ]6 G6 YMOV  A , #18H            
8 L/ O( x# p" O/ V! i* W# bMOVX  @DPTR , A        ;计数常数24装入计数器低8位
1 g8 h( p, q1 u1 b( z0 q1NC  DPTR               ;选计数器高位
3 b3 p% j& ]  G' s+ v( HMOV  A, #40H
3 j! L$ A6 K( d: rMOVX  A ,@DPTR        ; 高2位01选择输出方式为连续方波
# b5 F# c& k6 G                          其低6位为计数器的高6位为00H
# m$ a% R8 R+ H7 I  E1 f: F: W' Y/ l

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

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

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

楼主网友好!0 C7 E, x' U( Z0 w

1 p2 M( a/ f2 _  c( o你说的:“单片机要扩展40个通道……。”! u+ k2 u) d( @9 |) q- r* S9 e

# A7 a# |  g3 ]能否告诉一下,这40个通道端口具体要做什么?7 ?: i( U9 }7 {! |
# `3 N5 D# |. j
也许有好办法帮你解决点实际问题。! {" l# h- X/ w0 A6 j) c

2 _' ?& ]- p+ ?/ B, `syw   060924---04.37; w1 v, ]+ T/ n  Z1 t2 ^
回复 支持 反对

使用道具 举报

发表于 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:51 , Processed in 0.077487 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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