找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 7226|回复: 3

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

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

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

; T( @3 |# c; X8 J

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

回复

使用道具 举报

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

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

注意8155的控制命令字寄存器只写不读,状态字寄存器只读不写,它们共用一个地址。
2 S! t9 f3 J* z3 Y. O/ G+ n6.        8155的基本用法:  B4 G9 P! x) N6 m* ?' _1 {3 a
①        可扩展256字节片外RAM( M5 W& C4 q& d2 z
IO/M引脚低电平时,只能用作片外RAM扩充,其低8位地址为00H~FFH,共256字节,对其读写时用MOVX指令。
2 c# A; B, E1 S" B②        作扩展I/O口使用
5 Y1 l9 v+ A! R) FIO/M引脚高电平时,可根据命令字的规定从A、B、C口输入输出,共有20条输入输出线,) o" T8 c, j% w# h* p$ f
③        扩充一个14位定时器计数器
: l' ]! z- |1 }7 B$ T+ R& v8155提供一个14位减1计数器,它的功能主要用于计数,从TIMER IN端输入计数脉冲,计数满时由TIMER OUT输出脉冲或方波。
$ w0 N: f- e% D; d" W使用步骤:8 i, ~% ?( K& b2 X; F0 X7 N
写入控制命令字的D7、D6位控制启停。: L- g$ k5 t  E: q
写入计数长度:端口地址04H的8位为计数器的低8位
1 g1 _. O% w/ q# e; R端口地址05H的低6位为计数器的高6位,共14位。
, ^1 s6 C( O1 K1 U$ T05H的高2位确定当计数器时减到0时的输出方式。
$ y1 B% W' D# p# c# R, l" ]6 s
7 Q" ]; |. p; q( p9 _" t8155片内带有地址锁存器,可在ALE的下降沿锁存地址,不必在外部另接锁存器。
4 U# A$ F( Q) z由上图得到8155各端口的地址为:2 T2 i" Q% f  T' ~) ?
P2.7 = 0 ,片选CE有效;P2.0 = 1,则为端口地址# L6 {2 u0 _. J$ }$ w
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 |9 Z, A1 W6 o# r. v# h! D
) s/ Y, i& }2 T& d
0   1   1   1   1   1   1    1  0  0  0  0  0  0  0  0 命令状态口7F00H: B1 J0 ?; V& ~: p" m) F7 ?

- B3 L& y8 l0 z0 [5 W% F0   1   1   1    1   1   1    1  0  0  0  0  0  0  0  1   PA口   7F01H
" S/ s+ L2 P) Y! @& R0 q! A3 ]7 c2 {5 I
0   1   1   1    1   1   1    1  0  0  0  0  0  0  1  0   PB口   7F02H
. [0 _9 h* q* B9 Z1 x5 ]
: ^3 Z/ l7 i8 B- m6 w$ w0   1   1   1    1   1   1    1  0  0  0  0  0  0  1  1   PC口   7F03H& a7 K6 Z: Q1 O- D$ H' E" I
4 _; E+ y7 c2 p2 F- [% G
0   1   1   1    1   1   1    1  0  0  0  0  0  1  0  0 定时器低位7F04H' q  y- `0 P9 t% S8 s5 x' q) `* w

9 i  U7 i8 k! Y$ k. q7 K0   1   1   1    1   1   1    1  0  0  0  0  0  1  0  1 定时器高位 7F05H
* h! C3 Y+ H. i0 i, l/ a% ?6 h' p
9 u6 _6 W2 B  t6 a2 `! oP2.7 = 0,片选CE = 0,且P2.0 = 0则为8155片内RAM地址:
- H7 m0 f1 \" m+ d9 `7E00H~7EFFH    共256字节。: g7 @, w0 o/ ^$ g4 j7 Q0 Y
8155的基本操作软件:4 P& m6 Y, v3 x- s3 a5 }4 C, E
①I/O口及8155RAM的操作软件:
9 `. A$ V8 e7 ^" e" R# N& iMOV  DPTR ,  #7F00H     ;选命令状态口
+ Y& u$ d7 q  Y  EMOV  A, #0C2H           ;送命令字 1  1  0  0  0  0  1  0     2 T: {/ L; M8 p$ ]/ Z* [
MOVX  @DPTR , A        ;A口输入、B口输出、C口输入
! h1 p# H6 J- p0 mMOV  DPTR , #7F01H      ;选A口# W6 K! U/ J$ f0 J4 Z( _
MOVX  A , @DPTR        ;从A口输入数据
$ }: g$ ?# C# S# y, I2 k( _" EMOV  DPTR , #7E30H      ;选8155RAM的30H单元
1 M1 {8 M6 [: R6 @1 NMOVX  @DPTR , A        ;将A口输入的数据存入30H单元2 W9 d- H& n5 v) {# r+ X
MOV  DPTR , #7F02H      ;选B口
6 Z) _0 F7 G  R8 LMOVX  @DPTR , A        ;将A口输入的数据转从B口输出% \7 n& T( V2 b' Q/ |
②计数器的软件:
# A- }% h3 q/ i9 wMOV  DPTR , #7F04H      ;选计数器低8位5 X& l2 A' W% ^% M
MOV  A , #18H            - j1 A$ y% w! x, z$ l
MOVX  @DPTR , A        ;计数常数24装入计数器低8位
: C  i6 ]6 a: j+ o1NC  DPTR               ;选计数器高位- ^- h9 g% v2 L8 e( ]1 \( j
MOV  A, #40H
1 o: i1 k$ c: s8 m: [3 f  JMOVX  A ,@DPTR        ; 高2位01选择输出方式为连续方波8 G/ U9 ]- q/ y: N' F" z
                          其低6位为计数器的高6位为00H
2 L6 B. g, E7 e- E6 |5 }  [- t  P5 o& X5 G7 G9 k

本帖子中包含更多资源

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

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

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

楼主网友好!
" l9 [' r* z1 |$ R, }# R" a
7 M" f! [8 s( r' |- x) P7 m( j7 H你说的:“单片机要扩展40个通道……。”, l% [: v- h# |9 ~
& }) p; S) b- {* R/ R
能否告诉一下,这40个通道端口具体要做什么?! V1 ]. p  t; O: g! y. p
' m# n) t0 T0 y% L5 `
也许有好办法帮你解决点实际问题。
# O: o+ m6 U& X6 D* C, c. G. F! C( k# ^& L& j4 C0 }# ^
syw   060924---04.37
1 [) B2 J0 S7 b& \* p
发表于 2010-6-19 22:42:18 | 显示全部楼层
给你个链接吧 http://liuyunfeng484.blog.163.com/blog/static/6683171520096219621632/
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

GMT+8, 2025-6-21 00:46 , Processed in 0.065338 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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