找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 7343|回复: 3

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

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

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

+ Q* |" C {) {( k7 J

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

回复

使用道具 举报

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

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

注意8155的控制命令字寄存器只写不读,状态字寄存器只读不写,它们共用一个地址。
4 B2 ]" i3 ~: Z$ [- r* o6.        8155的基本用法:
3 l4 T: }3 E1 T% R  c* K% H①        可扩展256字节片外RAM9 w; o; \* x6 m
IO/M引脚低电平时,只能用作片外RAM扩充,其低8位地址为00H~FFH,共256字节,对其读写时用MOVX指令。
3 F& {' _9 l$ H" x% u②        作扩展I/O口使用
( Q7 ?- F( U' v) m. X' |IO/M引脚高电平时,可根据命令字的规定从A、B、C口输入输出,共有20条输入输出线,
6 [  Q! y9 ]" u; U) H+ G' c% k③        扩充一个14位定时器计数器1 b. J/ Q$ w% N$ A9 }# G$ m
8155提供一个14位减1计数器,它的功能主要用于计数,从TIMER IN端输入计数脉冲,计数满时由TIMER OUT输出脉冲或方波。; P7 Z9 m7 C; r% k. ~
使用步骤:- c9 F; o5 p3 ^% f
写入控制命令字的D7、D6位控制启停。
' a0 K2 n6 H0 j% V. k- S写入计数长度:端口地址04H的8位为计数器的低8位
* ^) z, J  ^/ s1 g8 j端口地址05H的低6位为计数器的高6位,共14位。
$ f7 [2 ]2 O, o, O1 y0 Z$ T05H的高2位确定当计数器时减到0时的输出方式。' L' t' F! p8 G3 y; R* n

8 c. h) z, |' F% b1 t- ]0 R( E8155片内带有地址锁存器,可在ALE的下降沿锁存地址,不必在外部另接锁存器。
% ~9 Y. o% |% H+ O7 }6 ^2 t由上图得到8155各端口的地址为:
, [9 d0 a" x3 ^- t* vP2.7 = 0 ,片选CE有效;P2.0 = 1,则为端口地址" W' p1 }& M: M% x9 D6 L" K
P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 A7 A6 A5 A4 A3 A2 A1 A0
$ i, A  u2 Y* D8 Z, x8 E% U
( y0 h4 A9 h- [0 o) P  `, _  Q0   1   1   1   1   1   1    1  0  0  0  0  0  0  0  0 命令状态口7F00H) [  h/ f) M5 C7 _3 B

6 w* Z3 b( H& s: u2 B- y0   1   1   1    1   1   1    1  0  0  0  0  0  0  0  1   PA口   7F01H
* Q8 H- J) f' _& @3 @9 Y
0 P6 A! r/ P# Z0   1   1   1    1   1   1    1  0  0  0  0  0  0  1  0   PB口   7F02H
4 U. k  w5 x$ a- z. ]+ B, ?9 {) Y, [, d& M% a% q
0   1   1   1    1   1   1    1  0  0  0  0  0  0  1  1   PC口   7F03H: A0 q9 N* f/ O0 _3 K  Z1 [. s
5 _, Q9 c) h  y% b- v
0   1   1   1    1   1   1    1  0  0  0  0  0  1  0  0 定时器低位7F04H
! V& E9 M1 W" c! l) @8 E: M; H" l  u, r: \
0   1   1   1    1   1   1    1  0  0  0  0  0  1  0  1 定时器高位 7F05H
9 L( G: V) ]. \5 o+ u
2 ~, |2 z9 Z7 [( l% c4 G, R9 p9 i* N$ nP2.7 = 0,片选CE = 0,且P2.0 = 0则为8155片内RAM地址:, Y/ V$ L/ q# e! k3 ]( R; c' X
7E00H~7EFFH    共256字节。! n* l$ {  _0 y: d% _
8155的基本操作软件:# o" u$ H. @7 `" J
①I/O口及8155RAM的操作软件:
5 {- @. e6 ~2 j  R1 l. CMOV  DPTR ,  #7F00H     ;选命令状态口4 ]) b5 J5 l; Q( l
MOV  A, #0C2H           ;送命令字 1  1  0  0  0  0  1  0     . C2 s; S+ U! a* w: J4 v
MOVX  @DPTR , A        ;A口输入、B口输出、C口输入
# Q! _5 \+ J( e  h% I6 V  y1 e8 {MOV  DPTR , #7F01H      ;选A口; h$ w- A# `9 N7 J$ a
MOVX  A , @DPTR        ;从A口输入数据. W' y" c: ^  \: u) m* _& q
MOV  DPTR , #7E30H      ;选8155RAM的30H单元: w7 n% D0 o/ S5 S8 a
MOVX  @DPTR , A        ;将A口输入的数据存入30H单元
# {  T6 b- d$ C& O) K" {) fMOV  DPTR , #7F02H      ;选B口6 m9 \( q- t. p3 f" I1 j* B
MOVX  @DPTR , A        ;将A口输入的数据转从B口输出: e% K2 E8 {) Q  Q7 T' r: v- [
②计数器的软件:
* J5 ?; Q3 L& K, H: ]0 NMOV  DPTR , #7F04H      ;选计数器低8位
$ U0 j8 M  z7 gMOV  A , #18H            + u# a5 U9 v/ ]/ ^7 h9 N% y  l
MOVX  @DPTR , A        ;计数常数24装入计数器低8位5 u- B' l4 C$ y+ u. K2 F! R; P. _5 X% ^
1NC  DPTR               ;选计数器高位% ]0 `4 d& g' }: D; n5 z
MOV  A, #40H
4 V% X/ B- I+ DMOVX  A ,@DPTR        ; 高2位01选择输出方式为连续方波/ ?7 G; e! A9 ?
                          其低6位为计数器的高6位为00H 5 V; Z4 u: T, J  s7 B: m7 {

& C" T2 r4 |+ N1 X0 r

本帖子中包含更多资源

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

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

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

楼主网友好!3 ~8 M7 H2 i  \; t7 `

  d, }2 ]# g% ^4 ~; g9 R  ^你说的:“单片机要扩展40个通道……。”1 P' c8 O3 Z( y

# e0 S& F; _# Q7 E# c& u: B能否告诉一下,这40个通道端口具体要做什么?
3 C5 m, m7 J" H! l5 ?
0 m) a' k$ c: ~, N2 _也许有好办法帮你解决点实际问题。/ K* y/ J7 O( O6 b+ u# g2 ]- f
9 B& ?( |; X" M! J& Z. v
syw   060924---04.37/ w1 |  w; u) B  Q: S- `6 ?6 M
发表于 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-29 02:34 , Processed in 0.065390 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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