机械社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 7005|回复: 3

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

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

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

; H a, x7 t; G. a

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

回复

使用道具 举报

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

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

注意8155的控制命令字寄存器只写不读,状态字寄存器只读不写,它们共用一个地址。, g7 f! w' i% C' g
6.        8155的基本用法:" y2 Y& j! `! q& X0 z
①        可扩展256字节片外RAM7 g5 W+ }. L) t' A; t! H  ?
IO/M引脚低电平时,只能用作片外RAM扩充,其低8位地址为00H~FFH,共256字节,对其读写时用MOVX指令。5 u! w7 t$ s1 _7 V3 l! m- j4 W
②        作扩展I/O口使用! G( F; P$ y% {
IO/M引脚高电平时,可根据命令字的规定从A、B、C口输入输出,共有20条输入输出线,
$ f9 o7 O- c2 ?/ P6 Y1 t# z# f③        扩充一个14位定时器计数器& A1 t* Z& |7 J
8155提供一个14位减1计数器,它的功能主要用于计数,从TIMER IN端输入计数脉冲,计数满时由TIMER OUT输出脉冲或方波。
8 o) `6 d2 J4 [* [5 I( }使用步骤:+ A$ [3 {  ?* d6 }8 H
写入控制命令字的D7、D6位控制启停。
* {3 l4 ]7 _( |1 D, Q4 j( x写入计数长度:端口地址04H的8位为计数器的低8位  L! V& o+ A/ R& }
端口地址05H的低6位为计数器的高6位,共14位。
9 g) \* M( c) @, F+ F$ z: }05H的高2位确定当计数器时减到0时的输出方式。4 t2 c9 z8 Y0 V+ s+ r9 ]- Y

1 B3 s& q; Q$ ^% W8155片内带有地址锁存器,可在ALE的下降沿锁存地址,不必在外部另接锁存器。
; _  f/ @- L+ R( p1 S( A由上图得到8155各端口的地址为:
" v' W: P& D7 ~0 M% W% YP2.7 = 0 ,片选CE有效;P2.0 = 1,则为端口地址5 |3 _' h5 {% w9 i, A  |
P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 A7 A6 A5 A4 A3 A2 A1 A0
2 f( [" E$ m2 w. p / g5 i# v" d! G! ?. r5 w9 R) A  t" `
0   1   1   1   1   1   1    1  0  0  0  0  0  0  0  0 命令状态口7F00H( |8 j' P) O4 ^4 `# C
' q# k2 }7 V- G1 H( s1 m
0   1   1   1    1   1   1    1  0  0  0  0  0  0  0  1   PA口   7F01H
9 _# ~. t! ]5 o6 c7 p  Q
* M! ~. o5 r1 Q5 f2 O7 O0   1   1   1    1   1   1    1  0  0  0  0  0  0  1  0   PB口   7F02H, W) J7 k. X1 ~
) Z9 w( P" ^" z
0   1   1   1    1   1   1    1  0  0  0  0  0  0  1  1   PC口   7F03H
  v$ P) R4 R7 W# q: ^
9 U+ a& ~7 h: v) d2 _4 \0   1   1   1    1   1   1    1  0  0  0  0  0  1  0  0 定时器低位7F04H0 [5 I# ^2 k% J7 [5 a  B( \0 q
0 r/ i8 Y& ^( [- l8 m  S- E
0   1   1   1    1   1   1    1  0  0  0  0  0  1  0  1 定时器高位 7F05H
% O; Z, T- g+ b6 l, i( q8 u, M
1 G1 ]' E# a! z  S: H* ?5 d0 PP2.7 = 0,片选CE = 0,且P2.0 = 0则为8155片内RAM地址:
6 x1 m; H* x- X; U+ t5 D0 B' s7E00H~7EFFH    共256字节。( d1 u3 @& R' T5 F' O8 y# K: U& m
8155的基本操作软件:
0 E! n$ a% W, V' Q. h①I/O口及8155RAM的操作软件:
. q( ?1 \( p2 H- |3 c4 p& Y" RMOV  DPTR ,  #7F00H     ;选命令状态口/ \! B2 j) x' [( T  Q
MOV  A, #0C2H           ;送命令字 1  1  0  0  0  0  1  0     $ V! \- D9 S+ m+ f' p9 {
MOVX  @DPTR , A        ;A口输入、B口输出、C口输入7 ^1 G# v3 @* Y& X0 r
MOV  DPTR , #7F01H      ;选A口
6 i$ r2 c/ B. T' ]3 JMOVX  A , @DPTR        ;从A口输入数据
5 u3 R' X* @9 p& O$ cMOV  DPTR , #7E30H      ;选8155RAM的30H单元8 ~+ Z0 B1 Z) n" O4 n
MOVX  @DPTR , A        ;将A口输入的数据存入30H单元9 v. E9 J& t9 l+ J
MOV  DPTR , #7F02H      ;选B口
# }2 F; k& u8 k0 `  w4 UMOVX  @DPTR , A        ;将A口输入的数据转从B口输出. _/ b, Z0 D1 e) {
②计数器的软件:/ u! I* G. p4 o4 S+ i0 w" J: {# t
MOV  DPTR , #7F04H      ;选计数器低8位
) s1 R1 b7 m( a- H  z6 sMOV  A , #18H            
8 g0 d6 v: z9 {& L: w8 r9 ]3 WMOVX  @DPTR , A        ;计数常数24装入计数器低8位8 M6 ^/ F6 Q* P
1NC  DPTR               ;选计数器高位& I9 |: g  O% V. a* L7 r
MOV  A, #40H
! ]( n; y5 @/ ^, S* MMOVX  A ,@DPTR        ; 高2位01选择输出方式为连续方波4 \2 N) p% O9 {
                          其低6位为计数器的高6位为00H 3 t6 \/ W2 ]  F: y6 E
; k! k& Z: H  r% v. t6 C

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

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

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

楼主网友好!( [* H/ b/ r  L, i5 b! {  M

8 _; s) ^+ j  I& ~8 W9 o你说的:“单片机要扩展40个通道……。”
! H0 m% G$ l5 l* L+ Q1 J7 G3 ^8 b  ~! `5 t% z3 e
能否告诉一下,这40个通道端口具体要做什么?2 g2 ?  t7 v6 t: }- [7 h) J) \9 i
  i( s2 T/ g) ^. w: ?) b
也许有好办法帮你解决点实际问题。
' c) F  `6 P) b5 `$ s6 a8 f0 B" T1 E& t9 u; L
syw   060924---04.37) v7 I; w1 b0 s$ |# e$ K
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-29 17:34 , Processed in 0.050523 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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