机械必威体育网址

找回密码
注册会员

QQ登录

只需一步,快速开始

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

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

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

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

5 X( G2 L R+ |6 @

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

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

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

注意8155的控制命令字寄存器只写不读,状态字寄存器只读不写,它们共用一个地址。$ F, j) `3 f3 _
6. 8155的基本用法:
4 C' ?0 B( i" Q' C+ u0 z1 r① 可扩展256字节片外RAM
! u N% g' H. l. v7 dIO/M引脚低电平时,只能用作片外RAM扩充,其低8位地址为00H~FFH,共256字节,对其读写时用MOVX指令。. x, R+ y( {5 {# ^/ N& @
② 作扩展I/O口使用
) E3 p1 `, F) |' Z0 J1 F+ t! |IO/M引脚高电平时,可根据命令字的规定从A、B、C口输入输出,共有20条输入输出线,
8 b. l( H: Q( ~③ 扩充一个14位定时器计数器3 d+ Q. `7 N- l5 ^5 b
8155提供一个14位减1计数器,它的功能主要用于计数,从TIMER IN端输入计数脉冲,计数满时由TIMER OUT输出脉冲或方波。4 q1 S. q" M5 G8 z. y7 R9 F* ?) V* [9 A
使用步骤:0 ~% J6 |5 L J/ E& J# M, y$ z
写入控制命令字的D7、D6位控制启停。' ~; v {3 _ N$ k# L
写入计数长度:端口地址04H的8位为计数器的低8位6 j7 M7 h- l) t n% K
端口地址05H的低6位为计数器的高6位,共14位。* _ `8 H2 @' r! X7 ^
05H的高2位确定当计数器时减到0时的输出方式。3 q8 i2 V J0 F* [! R

3 O) s* ]" r/ @' @( V" J" k8155片内带有地址锁存器,可在ALE的下降沿锁存地址,不必在外部另接锁存器。
4 v8 s* F8 V" c2 c2 Q/ V; ~5 r由上图得到8155各端口的地址为:
( w( ^' F# H% q; f# iP2.7 = 0 ,片选CE有效;P2.0 = 1,则为端口地址
* n1 a! Z6 T4 E, ]3 ?6 OP2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 A7 A6 A5 A4 A3 A2 A1 A04 @/ J9 ~: j# Q
) x4 T! d$ }$ B1 j: k( @0 K
0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 命令状态口7F00H
* [" A+ f' \# ?9 S% ~5 u" `* i7 S+ c; N" `: P! s6 g4 y
0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 PA口 7F01H
% l# `6 S4 C S9 }& M
4 ~8 }0 u4 i: C# b5 J `8 v0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 0 PB口 7F02H
4 S, d h% `' C" A& F4 [3 T: z/ c. r+ m+ c
0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 PC口 7F03H
8 e8 X# C3 w3 j
. ]5 N' w( S0 { D0 1 1 1 1 1 1 1 0 0 0 0 0 1 0 0 定时器低位7F04H8 F& T& M! n5 s0 X
" H7 e2 S1 m! h! {, W6 A, z
0 1 1 1 1 1 1 1 0 0 0 0 0 1 0 1 定时器高位 7F05H# ?0 ]3 w' n6 I p! X
) j# L* r' b8 v ^5 E2 Z! r
P2.7 = 0,片选CE = 0,且P2.0 = 0则为8155片内RAM地址:2 E3 c- l: ?: F' T; j* R- o( H2 x
7E00H~7EFFH 共256字节。
, {2 d @# ^$ B+ T7 ]% i8155的基本操作软件:
! C) K& n/ Q0 \ j2 r c0 D H0 V①I/O口及8155RAM的操作软件:
& ~/ S8 {8 A2 W4 R7 CMOV DPTR , #7F00H ;选命令状态口
* V8 Y# [' y; u+ y8 ]! R# V0 NMOV A, #0C2H ;送命令字 1 1 0 0 0 0 1 0
, j5 `( L+ ?* N& o( e" ^MOVX @DPTR , A ;A口输入、B口输出、C口输入
/ i' s; h" Q1 [7 y$ TMOV DPTR , #7F01H ;选A口4 ?2 z K# A+ d/ o
MOVX A , @DPTR ;从A口输入数据* g1 t3 T+ ^! U0 f6 l
MOV DPTR , #7E30H ;选8155RAM的30H单元( W" l( f3 V; F& D* e5 X/ L
MOVX @DPTR , A ;将A口输入的数据存入30H单元
3 N* o$ p: j: n' N5 n; ?8 I. fMOV DPTR , #7F02H ;选B口& [% t+ H1 U5 |0 C$ g
MOVX @DPTR , A ;将A口输入的数据转从B口输出
* K/ a' g& L7 q g0 `" {: z* q+ L( f②计数器的软件:
: {0 ~: Y% e, D+ A: k2 f7 LMOV DPTR , #7F04H ;选计数器低8位
/ g2 _; D, V! r; X3 }, `5 V/ v, zMOV A , #18H
" p2 L5 ?* d! RMOVX @DPTR , A ;计数常数24装入计数器低8位- l; E5 F6 G+ l8 {# h. d" i
1NC DPTR ;选计数器高位( ]9 r- w" T. N, ^; d
MOV A, #40H. H; A+ n8 f* u' c8 d
MOVX A ,@DPTR ; 高2位01选择输出方式为连续方波/ D2 v- R* m+ ]$ l1 v1 c) q
其低6位为计数器的高6位为00H
3 e' S1 T. E- V2 l/ r4 H6 r5 l* H( J
$ p, q! w- Y0 H; k) H

本帖子中包含更多资源

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

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

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

楼主网友好!% ^" G0 {1 U7 X/ X) n9 Z( ?1 \. B
- H& R _5 s3 H9 V) V* L7 k
你说的:“单片机要扩展40个通道……。”
5 N; Y& @, a4 }! J3 ~7 o: D, P. z( c! G: c" _
能否告诉一下,这40个通道端口具体要做什么?
0 b2 s6 j! ~1 |+ g# E2 g4 ?/ o6 {! E2 |0 J$ J+ S8 Y1 V
也许有好办法帮你解决点实际问题。
& T l7 u) w& A3 M+ Y" |' q* U3 _
* w! @$ i9 w* q6 |$ t* j: ssyw 060924---04.374 x( a" m; \8 o5 }! K0 A ^! S4 p" r. [
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 23:03, Processed in 0.069349 second(s), 16 queries , Gzip On.

Powered byDiscuz!X3.4Licensed

? 2001-2017Comsenz Inc.

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