找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 7250|回复: 3

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

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

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

4 \3 [$ e4 b7 B9 @" F: B8 ~3 Z3 \, ?

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

回复

使用道具 举报

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

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

注意8155的控制命令字寄存器只写不读,状态字寄存器只读不写,它们共用一个地址。
' m! Q' M( D# K! ~9 D4 E/ Q$ Y6.        8155的基本用法:( u3 Q7 j7 j) b& {& Q$ J
①        可扩展256字节片外RAM
, ]/ X7 _; v5 g; kIO/M引脚低电平时,只能用作片外RAM扩充,其低8位地址为00H~FFH,共256字节,对其读写时用MOVX指令。8 |7 U, {5 A7 D4 u
②        作扩展I/O口使用
' W+ z/ L1 B& r( LIO/M引脚高电平时,可根据命令字的规定从A、B、C口输入输出,共有20条输入输出线,: A. l/ [5 U" m, `& n( l
③        扩充一个14位定时器计数器
$ V9 \0 W6 `! |. X% h8155提供一个14位减1计数器,它的功能主要用于计数,从TIMER IN端输入计数脉冲,计数满时由TIMER OUT输出脉冲或方波。
$ E0 `7 S2 U" `8 H; l# p+ T使用步骤:' C# U1 Y' M6 W2 k$ ?
写入控制命令字的D7、D6位控制启停。
& o( Z. Z0 ]8 l, l# e写入计数长度:端口地址04H的8位为计数器的低8位
& q( L/ g6 R) D) N8 Z+ a端口地址05H的低6位为计数器的高6位,共14位。
( l# H; \# E$ w) w05H的高2位确定当计数器时减到0时的输出方式。
( v3 g7 F, h0 Z% m# {. ^
# a0 s- D8 |+ `6 x8155片内带有地址锁存器,可在ALE的下降沿锁存地址,不必在外部另接锁存器。
  T8 I2 _( \  J由上图得到8155各端口的地址为:
6 }# O' A! C9 L5 s3 N9 hP2.7 = 0 ,片选CE有效;P2.0 = 1,则为端口地址
# E( E5 @. T# w8 \5 G9 H  ?1 c- CP2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 A7 A6 A5 A4 A3 A2 A1 A0 " M. j' U' `5 A! f

/ q, E4 J8 l5 J6 B  ^" s' ~0   1   1   1   1   1   1    1  0  0  0  0  0  0  0  0 命令状态口7F00H& W" h$ D/ v6 V) K$ s, M, e

9 V5 t4 r! e6 J3 y4 I2 o0   1   1   1    1   1   1    1  0  0  0  0  0  0  0  1   PA口   7F01H" e. w0 g- J8 j9 v
2 h4 R9 y, b2 f& `9 _2 H9 Q- A
0   1   1   1    1   1   1    1  0  0  0  0  0  0  1  0   PB口   7F02H
9 f- ^- ^# X3 m* n
4 T  @' ^1 X/ Y+ s' X" t0 @" r0   1   1   1    1   1   1    1  0  0  0  0  0  0  1  1   PC口   7F03H
" T% ?9 j9 i, v1 Q: B, E( c3 u0 L8 }9 x& W4 X7 |0 s
0   1   1   1    1   1   1    1  0  0  0  0  0  1  0  0 定时器低位7F04H
* z( n. y" m5 g& M3 f4 M
# L% L: z" J% P3 b) `' U! s0   1   1   1    1   1   1    1  0  0  0  0  0  1  0  1 定时器高位 7F05H
* q4 |3 P* B9 k3 b* X
# R  I8 f7 N5 H; P8 I1 Y# ]8 OP2.7 = 0,片选CE = 0,且P2.0 = 0则为8155片内RAM地址:
% d+ f2 ^5 ^+ J1 n' U; U7E00H~7EFFH    共256字节。# v7 p' s0 H- B& O
8155的基本操作软件:3 J4 X  j2 v) p
①I/O口及8155RAM的操作软件:7 ]! m! x. l; _+ H- t  d6 H) P
MOV  DPTR ,  #7F00H     ;选命令状态口4 u) m& X0 p' ~. s7 h) }; j: L
MOV  A, #0C2H           ;送命令字 1  1  0  0  0  0  1  0     
" D. G& u9 w! A1 hMOVX  @DPTR , A        ;A口输入、B口输出、C口输入" c, }4 C  K" I  ~2 n0 h
MOV  DPTR , #7F01H      ;选A口
. l) |4 b( M" e+ r; r$ P0 Q+ OMOVX  A , @DPTR        ;从A口输入数据
0 }: u, x. u& B' w. T; z4 IMOV  DPTR , #7E30H      ;选8155RAM的30H单元( V% q% C( m- ], F/ o4 ^
MOVX  @DPTR , A        ;将A口输入的数据存入30H单元0 G, D+ p7 K: R1 v5 `' M
MOV  DPTR , #7F02H      ;选B口, g: k, g" ^: t# j1 ?7 ?, c2 v
MOVX  @DPTR , A        ;将A口输入的数据转从B口输出
& P# @6 d8 m" l% f! t②计数器的软件:
+ V6 k) y8 u0 X# Z! K4 bMOV  DPTR , #7F04H      ;选计数器低8位
( J1 h% ~, Z. \. W) A- tMOV  A , #18H            
' d! O9 T+ C0 X! k& uMOVX  @DPTR , A        ;计数常数24装入计数器低8位
* v- @+ `; e( U9 ~, @7 F1NC  DPTR               ;选计数器高位
# E) Z& J$ u1 H  IMOV  A, #40H
" T0 q& R+ ~& Z! n8 i% v2 aMOVX  A ,@DPTR        ; 高2位01选择输出方式为连续方波% _( s) S! p7 O  N! k
                          其低6位为计数器的高6位为00H 0 {$ f/ s9 X6 d( K+ o  P$ ]

; [1 Z: f6 K* e0 U

本帖子中包含更多资源

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

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

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

楼主网友好!, M5 ^; \! s- T0 T

9 c  G0 [$ N; z: k你说的:“单片机要扩展40个通道……。”$ ]! h8 p& b& e- ?" a: X; `
: a; }% g" x! P
能否告诉一下,这40个通道端口具体要做什么?
9 f5 D% l( {- c
: k# M8 `4 V) X8 c也许有好办法帮你解决点实际问题。- ~2 G( x7 b2 U# w) g6 V

8 O, Z# |3 u! u; \- Ssyw   060924---04.377 e# m: i. Z% d* Q) Z
发表于 2010-6-19 22:42:18 | 显示全部楼层
给你个链接吧 http://liuyunfeng484.blog.163.com/blog/static/6683171520096219621632/
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

GMT+8, 2025-7-12 15:49 , Processed in 0.065584 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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