找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 7275|回复: 3

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

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

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

1 s3 I& o: e, {( w& u& j7 B

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

回复

使用道具 举报

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

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

注意8155的控制命令字寄存器只写不读,状态字寄存器只读不写,它们共用一个地址。% M( J( t! f( U# t. n" D+ ?) `
6.        8155的基本用法:
7 L) {8 \9 E8 w9 A% A( l①        可扩展256字节片外RAM
8 v8 C! N0 ]4 j3 G4 t4 wIO/M引脚低电平时,只能用作片外RAM扩充,其低8位地址为00H~FFH,共256字节,对其读写时用MOVX指令。& \0 ?( U6 L+ i  i- \
②        作扩展I/O口使用
3 L0 [1 k; u% K$ J! d8 H, u( S2 vIO/M引脚高电平时,可根据命令字的规定从A、B、C口输入输出,共有20条输入输出线,
* @5 L' O; ?  \, h0 X- p+ t& J- d③        扩充一个14位定时器计数器) p" W9 L5 m! x( S
8155提供一个14位减1计数器,它的功能主要用于计数,从TIMER IN端输入计数脉冲,计数满时由TIMER OUT输出脉冲或方波。9 P* K4 {' x1 D! B, v
使用步骤:3 W6 F: L: w/ o; W7 U. Y0 t
写入控制命令字的D7、D6位控制启停。8 H$ s6 [8 z2 V) V& n- N
写入计数长度:端口地址04H的8位为计数器的低8位
; D2 ^9 L" |& v+ J端口地址05H的低6位为计数器的高6位,共14位。' F$ v, I( l* L1 v# q
05H的高2位确定当计数器时减到0时的输出方式。+ P1 l# ~6 O0 R
+ m" F$ k1 Z2 ~8 S  x: ]
8155片内带有地址锁存器,可在ALE的下降沿锁存地址,不必在外部另接锁存器。8 {/ `2 K# ^) L! a/ B
由上图得到8155各端口的地址为:( l3 Z/ \+ b& G, o4 q
P2.7 = 0 ,片选CE有效;P2.0 = 1,则为端口地址
& Q, ?2 J1 x( k" fP2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 A7 A6 A5 A4 A3 A2 A1 A0
5 H% s- Z' X9 `2 c) s/ W. H 1 ~8 w7 t1 r" L' i4 D/ w
0   1   1   1   1   1   1    1  0  0  0  0  0  0  0  0 命令状态口7F00H
8 a# M& w( Q' l+ g- y# K9 h! W  v( H- v1 k0 L4 e( B2 G, K! m
0   1   1   1    1   1   1    1  0  0  0  0  0  0  0  1   PA口   7F01H
2 _. N- f1 j& M1 F1 Q: z2 u3 k; |* u9 @; X6 Y) u
0   1   1   1    1   1   1    1  0  0  0  0  0  0  1  0   PB口   7F02H
% B8 K( b$ Z- B1 e( }, @! y
( k. `' Z* F5 Q+ D' d$ p$ q0   1   1   1    1   1   1    1  0  0  0  0  0  0  1  1   PC口   7F03H
1 z/ ^, B: j0 ^. n
+ \. w- m  R5 G; ^% G6 D) x0   1   1   1    1   1   1    1  0  0  0  0  0  1  0  0 定时器低位7F04H6 x: _5 _1 p, O! P0 w
; y2 m( D9 b* ^% C
0   1   1   1    1   1   1    1  0  0  0  0  0  1  0  1 定时器高位 7F05H; y4 t5 E: c0 Y4 E  g! S8 H; E
8 a4 U5 p4 E( D2 d) s1 D0 Q0 o
P2.7 = 0,片选CE = 0,且P2.0 = 0则为8155片内RAM地址:
5 c! ~7 v' n$ v% W, n1 d4 i5 r7E00H~7EFFH    共256字节。+ G( R1 K7 G" L! T" G
8155的基本操作软件:0 L% l2 s! r0 p1 ]2 U5 h% j' q# j$ y
①I/O口及8155RAM的操作软件:; q* t) Y4 w2 O' V
MOV  DPTR ,  #7F00H     ;选命令状态口
* E4 U$ N4 n- P" u+ _MOV  A, #0C2H           ;送命令字 1  1  0  0  0  0  1  0     
+ D6 o) m; b9 zMOVX  @DPTR , A        ;A口输入、B口输出、C口输入( _# j7 i% N& A  S
MOV  DPTR , #7F01H      ;选A口/ t( U. K9 _, h8 K3 {  M5 b
MOVX  A , @DPTR        ;从A口输入数据
. c5 |+ E% a6 x& {! G+ NMOV  DPTR , #7E30H      ;选8155RAM的30H单元
0 G( e3 k# T- IMOVX  @DPTR , A        ;将A口输入的数据存入30H单元4 ]: G6 n$ G$ R/ W% q
MOV  DPTR , #7F02H      ;选B口
' @4 g8 u3 g( s; U! z' }" ?7 y- {5 e  }$ ZMOVX  @DPTR , A        ;将A口输入的数据转从B口输出
: A( J9 @4 b& h( }3 L/ u& o* j②计数器的软件:
' f2 b+ i) L6 xMOV  DPTR , #7F04H      ;选计数器低8位
  f6 {% X" U% W) C2 yMOV  A , #18H            
8 d: f# Z" c/ S$ ^4 q7 w1 g  B/ O' RMOVX  @DPTR , A        ;计数常数24装入计数器低8位
& y/ l0 Z+ p, {/ C1NC  DPTR               ;选计数器高位) p9 r( g) g: `: D( H  e1 W" A
MOV  A, #40H( x" V, x  _3 P  s* q- D
MOVX  A ,@DPTR        ; 高2位01选择输出方式为连续方波
% G$ W& B; n4 u2 s- w                          其低6位为计数器的高6位为00H 8 p! l' Q& q/ D  h( P
6 d$ H* U* |9 P- B! W, F! |

本帖子中包含更多资源

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

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

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

楼主网友好!7 G% M- J- ]" t9 X( q2 n; ^0 f

; \! Q. P/ t) @7 ?0 t: i' x你说的:“单片机要扩展40个通道……。”
$ p, ?8 G. N7 T9 r1 K. |: w0 R7 U- r) N% J& w& k1 P2 N  q" Q* P
能否告诉一下,这40个通道端口具体要做什么?
/ |. A0 G/ Y3 h8 I/ Y* J* y. _7 z. P8 H0 \! P
也许有好办法帮你解决点实际问题。" W5 h: H( H8 l
' J5 J1 ?7 s9 I* A  |
syw   060924---04.37: C7 p: e+ L6 y; z: |9 V) n
发表于 2010-6-19 22:42:18 | 显示全部楼层
给你个链接吧 http://liuyunfeng484.blog.163.com/blog/static/6683171520096219621632/
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

GMT+8, 2025-8-15 03:47 , Processed in 0.063960 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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