找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 7274|回复: 3

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

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

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

7 O. K) F! E& L! R

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

回复

使用道具 举报

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

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

注意8155的控制命令字寄存器只写不读,状态字寄存器只读不写,它们共用一个地址。" e! D& s7 Y8 l' K6 U: A8 d
6.        8155的基本用法:
2 H) l1 R  p9 P8 u( o①        可扩展256字节片外RAM; F" U+ e9 }' P9 q
IO/M引脚低电平时,只能用作片外RAM扩充,其低8位地址为00H~FFH,共256字节,对其读写时用MOVX指令。% p, }, q5 H* k. |( |8 M
②        作扩展I/O口使用
  U! Y- c; P( w. FIO/M引脚高电平时,可根据命令字的规定从A、B、C口输入输出,共有20条输入输出线,
* s* N* Q+ {/ ^* j& ]③        扩充一个14位定时器计数器
9 x! n3 Q* t3 A$ M8155提供一个14位减1计数器,它的功能主要用于计数,从TIMER IN端输入计数脉冲,计数满时由TIMER OUT输出脉冲或方波。9 H' h# M, E  {8 r( y) O" c- P+ A3 C# ~
使用步骤:
/ y; `. `* d  v9 |" {" E% ~写入控制命令字的D7、D6位控制启停。1 T& l$ Z4 u8 L3 R+ M2 {" h
写入计数长度:端口地址04H的8位为计数器的低8位
1 {+ X- B. F7 n/ e6 {5 I端口地址05H的低6位为计数器的高6位,共14位。
/ f) K  @  T7 y1 ]; n0 T: a& K4 ]05H的高2位确定当计数器时减到0时的输出方式。
0 u. C2 g4 Q6 G* d( t8 J7 n; n" X% ^7 u3 g
8155片内带有地址锁存器,可在ALE的下降沿锁存地址,不必在外部另接锁存器。1 |9 U5 j) ~4 M
由上图得到8155各端口的地址为:
5 u* R" B" d0 U/ |- H, g0 |P2.7 = 0 ,片选CE有效;P2.0 = 1,则为端口地址
3 b  |% }( }" e2 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 / _! ?8 w: U  d# p

0 y  f6 b6 v6 Y$ N7 m0   1   1   1   1   1   1    1  0  0  0  0  0  0  0  0 命令状态口7F00H& h( B. N' @; c4 K' U

! @. f+ R$ C2 }6 i0   1   1   1    1   1   1    1  0  0  0  0  0  0  0  1   PA口   7F01H) S! N4 f! B* t
- X1 m( E' k# K3 s; c& L. X2 K7 V
0   1   1   1    1   1   1    1  0  0  0  0  0  0  1  0   PB口   7F02H
' d/ r9 L! h, p/ J. k1 W9 h# S/ o  B3 |2 h) m1 m
0   1   1   1    1   1   1    1  0  0  0  0  0  0  1  1   PC口   7F03H
1 Q/ L/ {3 z& O2 X# _
3 s5 }& I9 W$ ?! [0   1   1   1    1   1   1    1  0  0  0  0  0  1  0  0 定时器低位7F04H! d* r' ^; q* D- s( B. a2 ?9 k) Y
: r& I% M1 ?  r
0   1   1   1    1   1   1    1  0  0  0  0  0  1  0  1 定时器高位 7F05H7 O8 j4 c6 F# R

1 S* k* G- r: m  t0 NP2.7 = 0,片选CE = 0,且P2.0 = 0则为8155片内RAM地址:! w' R3 n2 C% t' s! W0 s
7E00H~7EFFH    共256字节。8 X' }" Y( J( P; P% ^; p* i
8155的基本操作软件:
0 M8 }0 d' J$ W" N+ e①I/O口及8155RAM的操作软件:$ V! U4 L7 v( r6 i. H9 J, Z" \# X7 L
MOV  DPTR ,  #7F00H     ;选命令状态口% e. t  J0 B6 G6 G
MOV  A, #0C2H           ;送命令字 1  1  0  0  0  0  1  0     ' U, K/ g9 d$ r& B
MOVX  @DPTR , A        ;A口输入、B口输出、C口输入
9 \& p! e* d( \4 A  ZMOV  DPTR , #7F01H      ;选A口, u1 i1 r- ^! S6 E, r
MOVX  A , @DPTR        ;从A口输入数据7 v6 r, n9 K5 m( S$ r( ]+ ?
MOV  DPTR , #7E30H      ;选8155RAM的30H单元& s. Q  u4 N  J: N! K
MOVX  @DPTR , A        ;将A口输入的数据存入30H单元
% J: |$ H( G4 Y8 E4 SMOV  DPTR , #7F02H      ;选B口
5 U( K3 b- V1 @MOVX  @DPTR , A        ;将A口输入的数据转从B口输出
2 G) W1 _3 x2 p- x4 H②计数器的软件:5 R0 R, h1 C7 Y) ?' {2 Y
MOV  DPTR , #7F04H      ;选计数器低8位1 S7 B) s- B( |. o! f
MOV  A , #18H            8 d4 a2 |, A; D7 F* s
MOVX  @DPTR , A        ;计数常数24装入计数器低8位
6 k9 I+ E0 l' h1NC  DPTR               ;选计数器高位$ Z3 ^# `8 ~- x( Q/ M( |5 w) B# {& W
MOV  A, #40H- x% Y. D, p+ h' }" k* R
MOVX  A ,@DPTR        ; 高2位01选择输出方式为连续方波0 q1 F% e8 F1 v; E
                          其低6位为计数器的高6位为00H 1 R& X. D2 B( m' r

: l, H0 {4 d4 G0 d" {& z

本帖子中包含更多资源

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

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

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

楼主网友好!( w: a5 b- `' F4 [8 [/ {! \
, t, k% [; K* a$ s# Q
你说的:“单片机要扩展40个通道……。”
/ ]& o0 U, S' h# g& v1 f- `0 g+ j: `2 \. q; |! N/ l
能否告诉一下,这40个通道端口具体要做什么?% }+ U$ A  X" E  N7 G
" M9 U" F; ~  T; t* F
也许有好办法帮你解决点实际问题。
; B4 q9 P, I: O8 i
# k  J+ ~8 q1 \: qsyw   060924---04.37
* h  f% n1 e7 b
发表于 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:43 , Processed in 0.070683 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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