机械社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 7004|回复: 3

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

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

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

) o D0 }, x F; K6 h- P

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

回复

使用道具 举报

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

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

注意8155的控制命令字寄存器只写不读,状态字寄存器只读不写,它们共用一个地址。
& e5 O; C! ]; M7 q" g* o6.        8155的基本用法:
- V' v8 W5 i% ~$ r①        可扩展256字节片外RAM
5 C& w7 a$ ~3 I, aIO/M引脚低电平时,只能用作片外RAM扩充,其低8位地址为00H~FFH,共256字节,对其读写时用MOVX指令。# _7 D# K4 O: }* d# {. I9 r
②        作扩展I/O口使用
9 _# T' J7 H: w9 J! gIO/M引脚高电平时,可根据命令字的规定从A、B、C口输入输出,共有20条输入输出线,0 |' n% e* f# r- c9 @- r$ `
③        扩充一个14位定时器计数器
  f3 y0 J2 {& _; J8 u0 x8155提供一个14位减1计数器,它的功能主要用于计数,从TIMER IN端输入计数脉冲,计数满时由TIMER OUT输出脉冲或方波。
6 W6 |# W: P% d5 [7 p使用步骤:
* i# b; e% y, q! ]6 C4 E- x5 W$ \* G; k写入控制命令字的D7、D6位控制启停。
" [' ^/ D. x, \8 W7 l写入计数长度:端口地址04H的8位为计数器的低8位$ J4 ?7 l, K/ o: z
端口地址05H的低6位为计数器的高6位,共14位。! x; s$ u" |- g9 ]) s: N, D
05H的高2位确定当计数器时减到0时的输出方式。" a- V" U0 w) e. q6 T" I
# s  u( p5 y, z* Y
8155片内带有地址锁存器,可在ALE的下降沿锁存地址,不必在外部另接锁存器。) e$ V% L$ W/ ^6 \9 w  P7 b. ?9 n
由上图得到8155各端口的地址为:* [2 u- X( j( W5 E
P2.7 = 0 ,片选CE有效;P2.0 = 1,则为端口地址+ ^1 Z! K) o* ?& S: L" t; ~8 }5 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
7 \3 I& v: J1 n8 E- ^ $ _; W6 e0 q5 q3 R; n
0   1   1   1   1   1   1    1  0  0  0  0  0  0  0  0 命令状态口7F00H
8 d5 D* s# j- V8 ~7 `" o$ w7 F# `1 B" n2 {, m
0   1   1   1    1   1   1    1  0  0  0  0  0  0  0  1   PA口   7F01H+ C; O" ]" B9 Z( @

* I- v+ w) u* r. q3 A! H8 C& w4 k0   1   1   1    1   1   1    1  0  0  0  0  0  0  1  0   PB口   7F02H
# M3 E; V# `( l9 Y1 s
. J: ?: R( H5 w- z" S0   1   1   1    1   1   1    1  0  0  0  0  0  0  1  1   PC口   7F03H0 {% X# _7 q, N! N' V4 k9 l* t5 f0 c

3 i: d7 L! U7 {3 |0   1   1   1    1   1   1    1  0  0  0  0  0  1  0  0 定时器低位7F04H+ [% ~5 t; ]$ W, T& z6 H

# n. s8 i% T& K0   1   1   1    1   1   1    1  0  0  0  0  0  1  0  1 定时器高位 7F05H* q, M/ B9 I# E* e: t9 x

2 c& S# m1 H0 U5 z+ V, d: g0 ZP2.7 = 0,片选CE = 0,且P2.0 = 0则为8155片内RAM地址:
9 i/ K( N, F5 U: N7E00H~7EFFH    共256字节。
2 Y: K) Q5 n3 j& D( x8155的基本操作软件:$ R& J& V3 L- R
①I/O口及8155RAM的操作软件:
; ^" D8 X0 C% `5 dMOV  DPTR ,  #7F00H     ;选命令状态口, \5 Z: t7 k/ _* W# |- k
MOV  A, #0C2H           ;送命令字 1  1  0  0  0  0  1  0     
# M; v2 l% @! w. CMOVX  @DPTR , A        ;A口输入、B口输出、C口输入: G' E% x, p* @, D
MOV  DPTR , #7F01H      ;选A口
4 o% M6 Z- }6 \3 m+ i7 OMOVX  A , @DPTR        ;从A口输入数据- e9 s) w% \5 s3 f% P& c0 i/ @
MOV  DPTR , #7E30H      ;选8155RAM的30H单元" O2 `( B: y7 W4 d
MOVX  @DPTR , A        ;将A口输入的数据存入30H单元1 y2 M+ ]3 p! W$ \& H* t0 K
MOV  DPTR , #7F02H      ;选B口$ {+ a) H/ \; q! l' y
MOVX  @DPTR , A        ;将A口输入的数据转从B口输出# J2 z* d0 _: J" d$ Y5 |
②计数器的软件:/ a6 Z, M8 a  ~3 O+ U  i& k
MOV  DPTR , #7F04H      ;选计数器低8位
8 d& [  z3 K% b+ |/ ~# T/ nMOV  A , #18H            
( a  L* s, P+ v7 i7 M" b5 ^- lMOVX  @DPTR , A        ;计数常数24装入计数器低8位
; a; f1 }& |& s9 n/ x1NC  DPTR               ;选计数器高位* q2 T! |$ s! B" u; X8 Z; U
MOV  A, #40H1 _* F# `6 B: D- X$ _
MOVX  A ,@DPTR        ; 高2位01选择输出方式为连续方波
/ z, c7 I' l! S                          其低6位为计数器的高6位为00H
' j4 |: A4 _- d5 A2 p* c8 J9 I4 f3 k* {4 c3 w# u& ]' q& d

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

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

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

楼主网友好!2 r4 c! m) Y4 f0 W( s) d

9 N/ e' v5 P0 M: ?你说的:“单片机要扩展40个通道……。”# n/ D6 r, h6 Y6 h, Y) ~
# {/ c+ @, |/ K) E
能否告诉一下,这40个通道端口具体要做什么?
' ^& S( R; t# i' I0 W9 d" Y
+ ^9 M/ l' w* Q也许有好办法帮你解决点实际问题。* T. r% ]& r0 r+ g& j- }( a6 b

" y: I& I* h8 R5 x; Zsyw   060924---04.37+ L1 ~* D0 j% Z) s+ X  Y
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-26 03:25 , Processed in 0.056254 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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