机械社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 7051|回复: 3

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

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

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

2 r8 G4 N3 B, F* {& L* O- S# l

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

回复

使用道具 举报

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

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

注意8155的控制命令字寄存器只写不读,状态字寄存器只读不写,它们共用一个地址。
  v5 T# E8 ?5 R$ d5 h6.        8155的基本用法:' K5 X! T" M1 r/ m* U
①        可扩展256字节片外RAM* v9 J: _9 m; U6 E/ ~6 V( U* d) e
IO/M引脚低电平时,只能用作片外RAM扩充,其低8位地址为00H~FFH,共256字节,对其读写时用MOVX指令。
$ V9 O7 P% c* O: ^, E. i②        作扩展I/O口使用
. N' m$ c% [9 V7 L: e9 Z6 Y; pIO/M引脚高电平时,可根据命令字的规定从A、B、C口输入输出,共有20条输入输出线,
. \' j9 T" b, q. @③        扩充一个14位定时器计数器
2 s3 j% z( f- W$ ^* R. `  F8155提供一个14位减1计数器,它的功能主要用于计数,从TIMER IN端输入计数脉冲,计数满时由TIMER OUT输出脉冲或方波。
" P! W' E) c& i2 ?使用步骤:
7 j* O. d7 \  k" c) P) v写入控制命令字的D7、D6位控制启停。
* E9 R$ _$ B# X% ?' U$ @9 n写入计数长度:端口地址04H的8位为计数器的低8位
+ ^6 o- H, l; n9 g- H端口地址05H的低6位为计数器的高6位,共14位。8 K8 Z4 u2 b* Q& F1 U6 c- C. e
05H的高2位确定当计数器时减到0时的输出方式。
4 Y) d6 ?' J0 ]9 B
- [. H. A0 k1 O8 M4 y8155片内带有地址锁存器,可在ALE的下降沿锁存地址,不必在外部另接锁存器。
$ \& P/ T0 E  n7 A" k0 _) r; Y由上图得到8155各端口的地址为:
6 H4 q* }. U) cP2.7 = 0 ,片选CE有效;P2.0 = 1,则为端口地址  y$ X6 Z$ P9 q. r7 R2 e
P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 A7 A6 A5 A4 A3 A2 A1 A0 5 ?! |4 o' N6 y$ o+ y; _
( W" U; Y" V5 t/ I
0   1   1   1   1   1   1    1  0  0  0  0  0  0  0  0 命令状态口7F00H% y6 J# h& i1 D  k$ }0 Z5 M" C7 j

, {7 ~% e. F; B0 t( U% X0   1   1   1    1   1   1    1  0  0  0  0  0  0  0  1   PA口   7F01H* A! X, I& H3 T. ]. Z1 ^

, d+ Z  A( D1 F0 y2 S- q& g0   1   1   1    1   1   1    1  0  0  0  0  0  0  1  0   PB口   7F02H
5 N. I) Y$ d& I+ [7 P% d" v0 ?9 `2 Q4 L0 @* A: W
0   1   1   1    1   1   1    1  0  0  0  0  0  0  1  1   PC口   7F03H7 y$ ~( U" T8 o) B
7 F: q) v6 o; B3 |+ k9 p2 t' l$ Y
0   1   1   1    1   1   1    1  0  0  0  0  0  1  0  0 定时器低位7F04H
7 ?' k0 p1 E  g0 h/ |% d+ S2 `% `! ?% ?  R# w
0   1   1   1    1   1   1    1  0  0  0  0  0  1  0  1 定时器高位 7F05H0 \  x/ x7 j# m
! `/ ^, R" w; P  N+ h
P2.7 = 0,片选CE = 0,且P2.0 = 0则为8155片内RAM地址:  F- T5 l/ ]2 _- G: m
7E00H~7EFFH    共256字节。
# B8 E( W, j. ?, y- a8155的基本操作软件:
1 H: H8 b0 L6 r1 x7 C/ K①I/O口及8155RAM的操作软件:
! r+ |. t9 m2 Y; z! C+ DMOV  DPTR ,  #7F00H     ;选命令状态口
0 d5 M3 G% u3 z  L9 ~( M6 qMOV  A, #0C2H           ;送命令字 1  1  0  0  0  0  1  0     ' P! R  ?( V. \) [: O: Z7 k
MOVX  @DPTR , A        ;A口输入、B口输出、C口输入& q- W+ X# ]" y3 v2 W7 I% U& w' S
MOV  DPTR , #7F01H      ;选A口% B- ?8 X& Y" Y# L
MOVX  A , @DPTR        ;从A口输入数据& h  w/ `; `, O7 c
MOV  DPTR , #7E30H      ;选8155RAM的30H单元
; C: ?6 R' i/ e  oMOVX  @DPTR , A        ;将A口输入的数据存入30H单元
  z7 ]; X4 A% a; Y. G) }  q% iMOV  DPTR , #7F02H      ;选B口
8 d" @7 p: ~  a* uMOVX  @DPTR , A        ;将A口输入的数据转从B口输出) `9 O8 T2 n" N( [' J. V
②计数器的软件:
) s( k. i0 |2 \' Y& O! g! F$ GMOV  DPTR , #7F04H      ;选计数器低8位
/ M& u, Q* t0 h( C/ XMOV  A , #18H            8 G1 g& \- B5 `% M, g
MOVX  @DPTR , A        ;计数常数24装入计数器低8位( @9 V; j: U; ~# a3 z6 @( B
1NC  DPTR               ;选计数器高位+ t) j% z* I6 h% L3 k* I- t$ K
MOV  A, #40H$ _* u" u) C( e# I4 T8 L& Z
MOVX  A ,@DPTR        ; 高2位01选择输出方式为连续方波
# J, S, |/ ^: W! U: I) e& X                          其低6位为计数器的高6位为00H
# w: B+ T" r4 {4 q* v+ u3 p7 c7 T! k1 X  m$ M

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

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

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

楼主网友好!, G( h$ h( s! ~4 q( I2 M
1 i" u: _) r$ o- i% \, B
你说的:“单片机要扩展40个通道……。”: I0 {# m; n% Y4 C" T* [8 U3 g( @
# W# n% t# k5 P, V& A
能否告诉一下,这40个通道端口具体要做什么?
0 W! G' Q7 T( n: ^$ m( l! l5 N3 \
& P: l- N% j. i2 g! m也许有好办法帮你解决点实际问题。$ w! c  R( m; i$ O9 z
4 ]7 `, }& ?1 Z* a& x0 D  x/ c9 U# {8 W
syw   060924---04.37" m* X0 s. P; q! ?. y) j) h
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-9 22:10 , Processed in 0.132195 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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