机械必威体育网址

找回密码
注册会员

QQ登录

只需一步,快速开始

搜索
查看: 7073 | 回复: 3
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
1#
发表于 2006-9-23 21:48:16 | 只看该作者 回帖奖励 | 倒序浏览 | 阅读模式

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

3 Z9 N3 W! a3 F: C4 i/ O# ?0 w% g

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

2#
发表于 2006-9-23 23:03:56 | 只看该作者

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

注意8155的控制命令字寄存器只写不读,状态字寄存器只读不写,它们共用一个地址。
0 |8 A- w9 b+ ^6. 8155的基本用法:5 ~& d8 K, Z* E% e
① 可扩展256字节片外RAM
; J' L. `3 q9 n0 u# t2 G, mIO/M引脚低电平时,只能用作片外RAM扩充,其低8位地址为00H~FFH,共256字节,对其读写时用MOVX指令。6 K. V: [# z3 g* o) a( I
② 作扩展I/O口使用+ K8 ?6 ~/ K6 \5 b; t q
IO/M引脚高电平时,可根据命令字的规定从A、B、C口输入输出,共有20条输入输出线,
1 W6 B8 p/ h9 |+ w+ J③ 扩充一个14位定时器计数器# I! a" `' X8 H2 O! R- q. p& P
8155提供一个14位减1计数器,它的功能主要用于计数,从TIMER IN端输入计数脉冲,计数满时由TIMER OUT输出脉冲或方波。: X" R' H3 Q+ V i' [
使用步骤:$ R" X* v8 @5 Q2 V
写入控制命令字的D7、D6位控制启停。
+ ? T9 B& T, h9 r* a/ ]( W5 q写入计数长度:端口地址04H的8位为计数器的低8位7 }( [: @1 x. w+ }6 K
端口地址05H的低6位为计数器的高6位,共14位。* W9 T% U9 s6 L
05H的高2位确定当计数器时减到0时的输出方式。
$ N* ?4 N4 o2 R. J
) u) x% D! g4 w" ^4 ?8155片内带有地址锁存器,可在ALE的下降沿锁存地址,不必在外部另接锁存器。
- A. a1 i4 h; a5 t- W由上图得到8155各端口的地址为:0 x' K- j( ]' R7 x3 j) i; E
P2.7 = 0 ,片选CE有效;P2.0 = 1,则为端口地址
6 Y, b* W* C1 V. ^P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 A7 A6 A5 A4 A3 A2 A1 A0
, M5 i) V2 |4 u. k; K$ N5 b
5 n3 q" {: f$ t& O0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 命令状态口7F00H
2 e+ M# V1 V" s+ L& b3 e* H! D! c0 p( S# W
0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 PA口 7F01H- \ F/ J" o$ b7 f& R

6 p* g! L y/ w t6 K) N- x9 K$ e0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 0 PB口 7F02H
1 y9 ~' L$ v5 j8 h. X, g+ ZS0 H' S5 q% j7 h. F, k
0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 PC口 7F03H
% N$ W# h$ X. g' Z. w: Q# B( p" A
0 1 1 1 1 1 1 1 0 0 0 0 0 1 0 0 定时器低位7F04H
- d6 K- B( x$ a9 c f8 S2 y7 H& N% S7 {6 a# n/ P0 x% R
0 1 1 1 1 1 1 1 0 0 0 0 0 1 0 1 定时器高位 7F05H7 m2 I( D+ m& c( X

7 p: j+ s7 F" q. O ^$ vP2.7 = 0,片选CE = 0,且P2.0 = 0则为8155片内RAM地址:* z# K' W, A, X
7E00H~7EFFH 共256字节。) |5 Z, m4 I7 t* R" B. o& R/ N1 r, K p
8155的基本操作软件:, @) W+ k+ y0 c$ ]/ v, D
①I/O口及8155RAM的操作软件:
/ W' R4 B" R4 i3 @. ^; k: T GMOV DPTR , #7F00H ;选命令状态口5 ~- j/ H5 Y' c8 ?# u, H% i
MOV A, #0C2H ;送命令字 1 1 0 0 0 0 1 0
/ p! Q8 o6 Q# [MOVX @DPTR , A ;A口输入、B口输出、C口输入
* C7 f0 O, E/ }, _MOV DPTR , #7F01H ;选A口3 S. }% M& P P- U! `# l4 |
MOVX A , @DPTR ;从A口输入数据: D* F0 c' l/ z* R/ z% |' Y) _) M
MOV DPTR , #7E30H ;选8155RAM的30H单元z) |0 X; g& }; O2 ?! t) C4 A
MOVX @DPTR , A ;将A口输入的数据存入30H单元" D$ M {/ W# d: X: Z. a
MOV DPTR , #7F02H ;选B口b. ?! |3 Z) C* H. v0 \
MOVX @DPTR , A ;将A口输入的数据转从B口输出2 S" K! h0 o) i/ B& F7 B
②计数器的软件:7 U# m& d( n$ s+ [; {! M8 I
MOV DPTR , #7F04H ;选计数器低8位7 P1 ^' L& T7 m6 J
MOV A , #18H
2 ~6 C1 C6 }& O; ^( X$ C K- n9 SMOVX @DPTR , A ;计数常数24装入计数器低8位
7 |) J. Y) T+ U# H3 M1NC DPTR ;选计数器高位
! @8 P# t2 g" K$ i) \MOV A, #40H* L' {% P8 V i: a
MOVX A ,@DPTR ; 高2位01选择输出方式为连续方波]- e: T! Y( G; e8 ` Y
其低6位为计数器的高6位为00H( T2 r0 @) r7 n, T$ Y
) O; x* V! v; o9 F5 G4 F9 i

本帖子中包含更多资源

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

x
3#
发表于 2006-9-24 04:37:58 | 只看该作者

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

楼主网友好!
, m/ x! h W* E# z9 M$ d$ s9 K" \# O( |- a) N4 {: Q L" j# ]
你说的:“单片机要扩展40个通道……。”
* I5 |- x8 l) K O6 n. F
& ]! j: a# e) D0 ?' P# T% P能否告诉一下,这40个通道端口具体要做什么?1 L S8 m8 R& n! u' I* o& w9 n9 d2 D5 a

2 _4 ^& m; f* D也许有好办法帮你解决点实际问题。; m$ d- z$ y0 G
* ~9 ^1 Q4 F8 G
syw 060924---04.373 r# j( B) {1 u/ q s# y6 f' V
4#
发表于 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-25 17:01, Processed in 0.063535 second(s), 16 queries , Gzip On.

Powered byDiscuz!X3.4Licensed

? 2001-2017Comsenz Inc.

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