找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 7336|回复: 3

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

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

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

5 E5 p: A9 X1 n- ^. h$ m5 D! \6 O

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

回复

使用道具 举报

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

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

注意8155的控制命令字寄存器只写不读,状态字寄存器只读不写,它们共用一个地址。
) A, N1 X. D: F# Q6.        8155的基本用法:
) c" h" H( G3 o0 u$ x①        可扩展256字节片外RAM
# k& [9 ~% z/ t7 Z2 S8 _IO/M引脚低电平时,只能用作片外RAM扩充,其低8位地址为00H~FFH,共256字节,对其读写时用MOVX指令。. G# ~+ b& k' R# v0 x
②        作扩展I/O口使用5 s2 \; X% \# L
IO/M引脚高电平时,可根据命令字的规定从A、B、C口输入输出,共有20条输入输出线,
' u' W8 ^7 W/ [& v$ K  R③        扩充一个14位定时器计数器1 d0 O  B! U/ |/ Q! E/ S) d& N$ ?
8155提供一个14位减1计数器,它的功能主要用于计数,从TIMER IN端输入计数脉冲,计数满时由TIMER OUT输出脉冲或方波。& K8 l- R- o" d
使用步骤:
7 i: B4 E- V2 h写入控制命令字的D7、D6位控制启停。
/ ]# R, J+ X4 }5 x' A/ r写入计数长度:端口地址04H的8位为计数器的低8位3 {( _+ s5 ~2 s( ~
端口地址05H的低6位为计数器的高6位,共14位。
1 H/ c! N  n& v) Y7 D  R3 s' i  F7 c$ o- E05H的高2位确定当计数器时减到0时的输出方式。
+ q4 o, M! r$ y0 _- |# B  g) p) X  v/ O! s
8155片内带有地址锁存器,可在ALE的下降沿锁存地址,不必在外部另接锁存器。
, W7 N' G# N7 z5 [4 Q5 |由上图得到8155各端口的地址为:/ b" G! n4 b; U
P2.7 = 0 ,片选CE有效;P2.0 = 1,则为端口地址1 Y4 E8 }/ u; E! 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 6 q! w! {% Z9 P  |: ?( {

7 L& }% [4 f! q1 l% n& V# S0   1   1   1   1   1   1    1  0  0  0  0  0  0  0  0 命令状态口7F00H$ L9 v. ~/ u+ E  `1 u

- Q2 ]" Y7 G, L. @2 K0   1   1   1    1   1   1    1  0  0  0  0  0  0  0  1   PA口   7F01H* u3 u! a3 P' k' T5 |: W

) Y0 k. D3 L; @' P/ J: c0   1   1   1    1   1   1    1  0  0  0  0  0  0  1  0   PB口   7F02H0 X1 F. K/ W$ d! O! L
- z" q/ C. Q" E7 I
0   1   1   1    1   1   1    1  0  0  0  0  0  0  1  1   PC口   7F03H
# K+ k( N: }3 ^
& c# p: g' N% V' o8 Y' [+ ?$ o3 F0   1   1   1    1   1   1    1  0  0  0  0  0  1  0  0 定时器低位7F04H9 `$ m# v* n6 O4 [( J! @$ L
! r, c1 }# L: L% ~5 E; h' _" r
0   1   1   1    1   1   1    1  0  0  0  0  0  1  0  1 定时器高位 7F05H9 A9 E' ]' d( u1 _. l2 R
) @7 a$ R  {) G6 }
P2.7 = 0,片选CE = 0,且P2.0 = 0则为8155片内RAM地址:$ X8 I9 T9 s0 ^. n- T1 b% g7 `
7E00H~7EFFH    共256字节。8 L: C9 d" e+ G' d! J6 p: P0 q
8155的基本操作软件:& [1 C) l9 L3 \$ d5 s( f
①I/O口及8155RAM的操作软件:" f, x2 B& C9 z( w( F) J/ w
MOV  DPTR ,  #7F00H     ;选命令状态口
! n' `" K' ]8 J7 RMOV  A, #0C2H           ;送命令字 1  1  0  0  0  0  1  0     
6 n7 Q  @2 n5 e% \- T. `/ S+ F; Z* {MOVX  @DPTR , A        ;A口输入、B口输出、C口输入* ?. g3 k( @' @2 z
MOV  DPTR , #7F01H      ;选A口6 D* a( }# C" r) u# p9 q( a
MOVX  A , @DPTR        ;从A口输入数据
2 }/ A; t; J) m4 e3 FMOV  DPTR , #7E30H      ;选8155RAM的30H单元
8 U9 U: K* q8 H1 `) ?MOVX  @DPTR , A        ;将A口输入的数据存入30H单元
; b3 h$ o3 Q$ b; L& B- x3 QMOV  DPTR , #7F02H      ;选B口" ~8 l. {8 ~. D  ^7 c* L: B
MOVX  @DPTR , A        ;将A口输入的数据转从B口输出( ~( R: N& W" o1 j2 t4 v% e+ @
②计数器的软件:
9 W8 w4 u4 v6 d) C( w0 eMOV  DPTR , #7F04H      ;选计数器低8位9 Z) ~  c0 R. B/ k
MOV  A , #18H            
4 Y  [/ h: c3 k0 MMOVX  @DPTR , A        ;计数常数24装入计数器低8位! Z: ~. T7 H, }3 I/ y& m, O
1NC  DPTR               ;选计数器高位
9 T8 b* c- [- W2 W0 gMOV  A, #40H( m- v4 N  j- p  G, m& w! Q" o3 p
MOVX  A ,@DPTR        ; 高2位01选择输出方式为连续方波
! X% [7 h# ]) h' R# l/ b                          其低6位为计数器的高6位为00H
! r4 K! {' x; A5 Q1 U  ^% E+ y* Z
0 {1 H( T( ^& F4 ^3 x

本帖子中包含更多资源

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

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

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

楼主网友好!2 m+ T) f5 H/ l5 q
1 D% D1 h( R0 p
你说的:“单片机要扩展40个通道……。”) Y' J( s0 g9 ?9 E# R8 d

3 n; s" H. [  V能否告诉一下,这40个通道端口具体要做什么?+ C' H2 v& u6 I5 G/ `+ C

" ~+ X/ P0 y( c' m6 u# d+ a也许有好办法帮你解决点实际问题。
* ?( t8 `' p- A8 \+ N) j. D5 l: d* A
syw   060924---04.37; j7 X4 Z' w0 R* `5 W+ i! `* z
发表于 2010-6-19 22:42:18 | 显示全部楼层
给你个链接吧 http://liuyunfeng484.blog.163.com/blog/static/6683171520096219621632/
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

GMT+8, 2025-10-22 22:24 , Processed in 0.069927 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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