机械必威体育网址

找回密码
注册会员

QQ登录

只需一步,快速开始

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

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

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

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

! r6 L2 a& T# k( x

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

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

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

注意8155的控制命令字寄存器只写不读,状态字寄存器只读不写,它们共用一个地址。
1 V8 ?1 o3 D* w% d* R" `6. 8155的基本用法:: G) k8 T0 }1 a4 X4 K1 i
① 可扩展256字节片外RAM
& h4 t! J. B3 \ G( @' H0 yIO/M引脚低电平时,只能用作片外RAM扩充,其低8位地址为00H~FFH,共256字节,对其读写时用MOVX指令。8 _$ T! |7 D5 {4 [
② 作扩展I/O口使用4 c* D1 W" C: W! ]
IO/M引脚高电平时,可根据命令字的规定从A、B、C口输入输出,共有20条输入输出线,
( [" g e9 Q: s+ E7 V% K: q③ 扩充一个14位定时器计数器0 V* @- l5 ^8 _" O2 o( N8 f
8155提供一个14位减1计数器,它的功能主要用于计数,从TIMER IN端输入计数脉冲,计数满时由TIMER OUT输出脉冲或方波。" P# a; P: Y3 ^) F/ o- t
使用步骤:# g' `0 k+ \! P" v
写入控制命令字的D7、D6位控制启停。/ u" j3 e/ z! W% E9 w
写入计数长度:端口地址04H的8位为计数器的低8位& M0 E" w: l* j: T% [" W' V7 y
端口地址05H的低6位为计数器的高6位,共14位。
& ~, _1 Z4 E1 R05H的高2位确定当计数器时减到0时的输出方式。8 k+ M0 B* Q: Q7 `
* g3 |$ @" o! W
8155片内带有地址锁存器,可在ALE的下降沿锁存地址,不必在外部另接锁存器。
' p+ m' v3 b( x7 x由上图得到8155各端口的地址为:
4 _- j) D- J* N& u- KP2.7 = 0 ,片选CE有效;P2.0 = 1,则为端口地址
. H" v3 z3 X, t7 i/ dP2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 A7 A6 A5 A4 A3 A2 A1 A0- b+ h1 e, l) {9 q0 L, }5 ~3 x
9 d) }1 q& j; V! c; v* w
0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 命令状态口7F00H
6 C3 D/ `0 Z/ y
7 }4 w; s$ O) I0 c0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 PA口 7F01H4 u9 i0 b9 t+ _! I# @

$ z! b; v3 T2 C& j A9 P& Y7 t Q0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 0 PB口 7F02H" V6 c* E- |( j5 Z2 y

$ S' {! e" A5 t8 K! }2 r0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 PC口 7F03H
! H- r& L% ~/ f9 j6 _! _& c2 o$ _9 N! u8 m
0 1 1 1 1 1 1 1 0 0 0 0 0 1 0 0 定时器低位7F04H
$ P7 \ u, I: u( n: k& }# Q4 D7 M- ?- k! \0 F$ u. {7 ?4 r3 P* D
0 1 1 1 1 1 1 1 0 0 0 0 0 1 0 1 定时器高位 7F05HG3 _- s; D- J: d4 B! s
2 i2 M& n! {7 x+ {9 k3 {2 }
P2.7 = 0,片选CE = 0,且P2.0 = 0则为8155片内RAM地址:1 p M/ h2 t. f+ `
7E00H~7EFFH 共256字节。- a2 N# p* C- B* D" ^/ f
8155的基本操作软件:& v7 _% {5 _, E% I( S" g, }
①I/O口及8155RAM的操作软件:' Z* N$ W" n2 r9 H! u& b- {9 p
MOV DPTR , #7F00H ;选命令状态口3 ~: w6 E/ y! I* R+ ^& V
MOV A, #0C2H ;送命令字 1 1 0 0 0 0 1 0
7 ~; U7 J0 X5 t9 V8 KMOVX @DPTR , A ;A口输入、B口输出、C口输入
8 k- t1 X- I- U" sMOV DPTR , #7F01H ;选A口
/ u, ^) V9 {1 j: T8 K4 BMOVX A , @DPTR ;从A口输入数据. s* e+ g% V. I, q; Z0 D. @- v) s
MOV DPTR , #7E30H ;选8155RAM的30H单元# X/ P" S) C. i @( ] r. R4 K
MOVX @DPTR , A ;将A口输入的数据存入30H单元
: [/ h( i6 K" K9 K4 d0 H3 }* Y1 N$ lMOV DPTR , #7F02H ;选B口% l0 s; B' ?; o/ K( S
MOVX @DPTR , A ;将A口输入的数据转从B口输出% M9 O! b2 y: ]0 Y! e" x2 T
②计数器的软件:
# l$ S) U+ H" c5 k, UMOV DPTR , #7F04H ;选计数器低8位
9 V2 L+ p3 w) @) d6 v- g2 }" yMOV A , #18H. l: M7 u$ s, ^# p
MOVX @DPTR , A ;计数常数24装入计数器低8位
/ U! d4 i: u. k/ X7 i4 k( r8 l1NC DPTR ;选计数器高位- m' c+ Y0 q" e) E
MOV A, #40H
; n* @, m) i4 IMOVX A ,@DPTR ; 高2位01选择输出方式为连续方波
2 U; D, @1 h$ N/ S! l. u其低6位为计数器的高6位为00H8 J r% F, i8 i# k2 B
% f: X, `4 |+ W, _$ F

本帖子中包含更多资源

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

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

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

楼主网友好!M& O% ^7 _ C7 F9 {' S

& B% {9 u5 T8 i0 |! r你说的:“单片机要扩展40个通道……。”$ G2 F* k" }5 Q6 i3 q: P, l m

0 M3 D$ C& H7 t8 v' r# L3 N0 C能否告诉一下,这40个通道端口具体要做什么?
1 L+ ?6 w" R7 a6 K3 I3 ^! i3 c3 d
也许有好办法帮你解决点实际问题。
S) T; E3 o6 E( I; @3 y4 K4 D F$ I4 v( @/ ]3 e
syw 060924---04.379 O( O2 e* S# `1 }/ R) p
4#
发表于 2010-6-19 22:42:18 | 只看该作者
给你个链接吧 http://liuyunfeng484.blog.163.com/blog/static/6683171520096219621632/
您需要登录后才可以回帖 登录| 注册会员

本版积分规则

小黑屋|手机版|Archiver|机械必威体育网址(京ICP备10217105号-1,京ICP证050210号,浙公网安备33038202004372号)

GMT+8, 2024-5-18 23:29, Processed in 0.056768 second(s), 17 queries , Gzip On.

Powered byDiscuz!X3.4Licensed

? 2001-2017Comsenz Inc.

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