第 7章 单片机系统扩展与接口技术
第 7章 单片机系统扩展与接口技术
7.1 外部总线的扩展
7.2 外部存储器的扩展
7.3 输入 /输出接口的扩展
7.4 管理功能部件的扩展
7.5 A/D和 D/A接口功能的扩展
第 7章 单片机系统扩展与接口技术
7.1 外部总线的扩展
一,外部总线的扩展
图 7.1 MCS - 51外部三总线示意图
第 7章 单片机系统扩展与接口技术
图 7.2 地址锁存器的引脚和接口
第 7章 单片机系统扩展与接口技术
二、总线驱动
在单片机应用系统中,扩展的三总线上挂接很多负载,如存
储器, 并行接口, A/D接口, 显示接口等,但总线接口的负载
能力有限,因此常常需要通过连接总线驱动器进行总线驱动 。
总线驱动器对于单片机的 I/O口只相当于增加了一个 TTL
负载,因此驱动器除了对后级电路驱动外,还能对负载的波动变
化起隔离作用 。
在对 TTL 负载驱动时,只需考虑驱动电流的大小 ; 在对 MOS
负载驱动时,MOS负载的输入电流很小,更多地要考虑对分布
电容的电流驱动 。
第 7章 单片机系统扩展与接口技术
1,常用的总线驱动器
系统总线中地址总线和控制总线是单向的,因此驱动器
可以选用单向的,如 74LS244。 74LS244还带有三态控制,能
实现总线缓冲和隔离 。,
系统中的数据总线是双向的,其驱动器也要选用双向的,
如 74LS245 。 74LS245 也是三态的,有一个方向控制端 DIR,
DIR=1时输出 (An→B n),DIR=0时输入 (An←B n)。
第 7章 单片机系统扩展与接口技术
图 7.3
(a) 单向驱动器; (b) 双向驱动器
第 7章 单片机系统扩展与接口技术
2,总线驱动器的接口
图 7.4 8051
(a) P2 口的驱动 ; (b) P0 口的驱动
第 7章 单片机系统扩展与接口技术
7.2 外部存储器的扩展
图 7.5 MCS - 51 单片机程序存储器的扩展原理
7.2.1 外部程序存储器的扩展
1,外部程序存储器的扩展原理及时序
第 7章 单片机系统扩展与接口技术
2,EPROM扩展电路
图 7.6 2716的引脚图
第 7章 单片机系统扩展与接口技术
2716 有五种工作方式,见表 7.1。
表 7.1 2716工作方式选择
第 7章 单片机系统扩展与接口技术
图 7.7 2716与 8031的连接图
第 7章 单片机系统扩展与接口技术
由图 7.7可确定 2716芯片的地址范围 。 方法是 A10~ A0从
全 0开始,然后从最低位开始依次加 1,最后变为全 1,相当于
211=2 048个单元地址依次选通,称为字选 。 即
第 7章 单片机系统扩展与接口技术
3,E2PROM 2864A的扩展
图 7.8 2864A
(a) (b) 原理框图
第 7章 单片机系统扩展与接口技术
表 7.2 2864A 工作方式
( 1) 维持和读出方式, 2864A的维持和读出方式与普通
EPROM完全相同 。
( 2) 写入方式, 2864A提供了两种数据写入操作方式,字节
写入和页面写入 。
( 3) 数据查询方式,
第 7章 单片机系统扩展与接口技术
图
7.
9
28
64A
与
80
31
的
接
口
电
路
第 7章 单片机系统扩展与接口技术
7.2.2 外部数据存储器的扩展
1,外部数据存储器的扩展方法及时序
图 7.10 MCS - 51 数据存储器的扩展示意图
第 7章 单片机系统扩展与接口技术
2,静态 RAM扩展
图 7.11 6264 管脚图
第 7章 单片机系统扩展与接口技术
表 7.3 6264的工作方式
第 7章 单片机系统扩展与接口技术
图
7.
12
扩
展
62
64
静
态RA
M
第 7章 单片机系统扩展与接口技术
6264的 8 KB地址范围不唯一 ( 因为 A14A13可为任意值 ),
6000H~7FFFH是一种地址范围 。 当向该片 6000H单元写一个
数据 DATA时,可用如下指令,
MOV A,# DATA
MOV DPTA,# 6000H
MOVX @DPTR,A
从7 FFFH单元读一个数据时,可用如下指令,
MOV DPTR,# 7FFFH
MOVX A,@DPTR
第 7章 单片机系统扩展与接口技术
7.2.3
1,线选法寻址
图 7.13 用线选法实现片选
第 7章 单片机系统扩展与接口技术
各芯片的地址范围如下,
第 7章 单片机系统扩展与接口技术
2.
译码法寻址就是利用地址译码器对系统的片外高位地址
进行译码,以其译码输出作为存储器芯片的片选信号,将地址
划分为连续的地址空间块,避免了地址的间断 。
译码法仍用低位地址线对每片内的存储单元进行寻址,
而高位地址线经过译码器译码后输出作为各芯片的片选信号 。
常用的地址译码器是 3/8 译码器 74LS138。
译码法又分为完全译码和部分译码两种 。
第 7章 单片机系统扩展与接口技术
例 要求用 2764 芯片扩展 8031 的片外程序存储器空间,分
配的地址范围为 0000H~3FFFH。
本例采用完全译码方法 。
(1) 确定片数 。
因 0000H ~ 3FFFH的存储空间为 16 KB,
所需芯片数 =实际要求的存储容量 /单个芯片的存储容量
= 16 KB/ 8 KB
= 2( 片 )
第 7章 单片机系统扩展与接口技术
(2) 分配地址范围。
第 7章 单片机系统扩展与接口技术
(3) 存储器扩展连接如图 7.14 所示。
图 7.14 采用地址译码器扩展存储器的连接图
第 7章 单片机系统扩展与接口技术
7.3 输入 /输出接口的扩展
7.3.1 8255A可编程并行 I/O
8255A具有 3 个 8 位并行 I/O口,称为 PA口, PB口和 PC口 。
其中 PC口又分为高 4 位和低 4 位,通过控制字设定可以选择三
种工作方式, ① 基本输入 /输出 ; ② 选通输入 /输出 ; ③ PA口为
双向总线 。
1,8255A
8255A内部结构包括三个并行数据输入 /输出端口,两个工
作方式控制电路,一个读 /写控制电路和 8 位总线缓冲器 。
第 7章 单片机系统扩展与接口技术
图 7.15 8255A
( a) 内部结构 ; ( b) 引脚
第 7章 单片机系统扩展与接口技术
( 1) 端口 A,B,C。
A口, 是一个 8位数据输出锁存器 /缓冲器和一个 8位数据
输入锁存器 。
B口, 是一个 8位数据输出锁存器 /缓冲器和一个 8位数据
输入缓冲器 。
C口, 是一个 8位数据输出锁存器 /缓冲器和一个 8位数据
输入缓冲器 。
通常,A口 #,B口作为数据输入 /输出端口,C口作为控制 /
状态信息端口 。 C口内部又分为两个 4 位端口,每个端口有
一个 4 位锁存器,分别与 A口和 B口配合使用,作为控制信号
输出或状态信息输入端口 。
第 7章 单片机系统扩展与接口技术
( 2) 工作方式控制 。
工作方式控制电路有两个,一个是 A组控制电路,另一个
是 B组控制电路 。 这两组控制电路共有一个控制命令寄存器,
用来接收中央处理器发来的控制字 。
A 组 控 制 电 路 用 来 控 制 A 口和 C 口 的 上 半 部 分
( PC7~PC4) 。 B组控制电路用来控制 B口和 C口的下半部分
( PC3~PC0) 。
第 7章 单片机系统扩展与接口技术
( 3) 总线数据缓冲器 。
总线数据缓冲器是一个三态双向 8位缓冲器,作为 8255
与系统总线之间的接口,用来传送数据, 指令, 控制命令以
及外部状态信息 。
( 4) 读 /写控制逻辑电路 。
读 /写控制逻辑电路接收 CPU发来的控制信号 RD,WR、
RESET,地址信号 A1,A0 等,然后根据控制信号的要求,将
端口数据读出,送往 CPU或将 CPU送来的数据写入端口 。
第 7章 单片机系统扩展与接口技术
表 7.4 8255A 接口工作状态选择表
第 7章 单片机系统扩展与接口技术
图 7.16 8255A
(a) 方式 0; (b) 方式 1; (c) 方式
第 7章 单片机系统扩展与接口技术
2,工作方式选择
( 1) 方式 0,基本输入 /输出方式 。
这种方式不需选通信号 。 PA,PB和 PC中任一端口都可以通
过方式控制字设定为输入或输出 。
( 2) 方式 1,选通输入 /输出方式 。 共有 3 个口,被分为两
组 。 A组包括 A口和 PC7~PC4,A口可由编程设定为输入或输出,
PC7~PC4 作为输入 /输出操作的选通信号和应答信号 。 B组包括
B口和 PC3~PC0,这时 C口作为 8255A和外设或 CPU之间传送某
些状态信息及中断请求信号 。
第 7章 单片机系统扩展与接口技术
( 3) 方式 2,双向传送方式 。
只有 A口有方式 2,此时,A口为 8位双向传送数据口,C口的
高 5位 PC7~PC3用来作为指定 A口输入 /输出的控制联络线 。
表 7.5 8255A的 C口联络控制信号线
第 7章 单片机系统扩展与接口技术
3,8255A 的控制字
( 1)
图 7.17 8255A的方式控制字
第 7章 单片机系统扩展与接口技术
( 2) 端口 C置位 /复位控制字
图 7.18 8255A端口 C置位 /复位控制字
第 7章 单片机系统扩展与接口技术
例 1 要求 A口工作在方式 0输入,B口为方式 1输出,C口高
4位 PC7~PC4为输入,C口低 4位 PC3~PC0为输出 。 实现上述要
求的初始化程序为,
MOV R1,# 03H ; 03H为 8255A 控制寄存器地址
MOV A,# 9CH ; 8255A工作方式字为 9CH
MOVX @R1,A ; 方式字送入 8255A 控制口
第 7章 单片机系统扩展与接口技术
4,8255A 和 8031 单片机的硬件接口
图 7.19 8255A与 8031单片机接口
第 7章 单片机系统扩展与接口技术
设 8255A的 A,B,C口和控制寄存器地址依次为 00H、
01H,02H 和 03H。 如果用户需要将 C口的 PC3 置 1,PC5 置
0,可编程如下,
MOV R0,# 03H ; 8255A
MOV A,# 07H ; 将 PC 3 置 1
MOVX @R0,A ; 置 PC 3=1
MOV A,# 0AH ; 将 PC 5 置 0
MOVX @R0,A ; 置 PC 5=0
第 7章 单片机系统扩展与接口技术
例 2 图 7.20 是 8031 扩展 8255A 与打印机接口的电路 。
8255A 的片选线为 P0.7,打印机与 8031 采用查询方式交换数
据 。 打印机的状态信号输入给 PC7,打印机忙时 BUSY=1,打印
机的数据输入采用选通控制,当 STB上出现负跳变时数据被打
入,要求编写向打印机输出 80 个数据的程序 。 设 8255A 的 A、
B,C和控制寄存器的口地址分别为, 7CH,7DH,7EH和 7FH。
第 7章 单片机系统扩展与接口技术
图 7.20 8031扩展打印机接口 8255A
第 7章 单片机系统扩展与接口技术
8255A 的方式 1中 OBF为低电平有效,而打印机 STB要求
下降沿选通 。 所以 8255A采用方式 0,由 PC0 模拟产生 STB信号 。
因 PC7输入,PC0输出,则方式选择命令字为, 10001110B=8EH。
自内部 RAM 20H单元开始向打印机输出 80个数据的程序
如下,
MOV R0,# 7FH ; R0
MOV A,# 8EH ; 方式控制字为 8EH
MOV @R0,A ;
MOV R1,# 20H ; 送内部 RAM数据块首地址至指针 R1
MOV R2,# 50H ;
第 7章 单片机系统扩展与接口技术
LP,MOV R0,# 7EH ; R0指向 C
LP1,MOVX A,@R0 ; 读 PC7连接 BUSY
JB ACC.7,LP1 ;
MOV R0,# 7CH ; 指向 A
MOV A,@R1 ; 取 RAM
MOVX @R0,A ; 数据输出到 8255A
INC R1 ; RAM地址加 1
MOV R0,# 7FH ; R0指向控制口
MOV A,# 00H ; PC0
MOVX @R0,A ; PC0=0,产生 STB
MOV A,# 01H ; PC0
MOVX @R0,A ; PC0=1,产生 STB
DJNZ R2,LP ; 未完,则反复
第 7章 单片机系统扩展与接口技术
7.3.2 8155 可编程并行 I/O接口
1,8155
图 7.21 8155引脚及结构框图
第 7章 单片机系统扩展与接口技术
2,8155 的 RAM和 I/O口的编址
表 7.6 8155 端口地址表
第 7章 单片机系统扩展与接口技术
3,8155 I/O
8155 I/O的工作方式有两种, 基本 I/O和选通 I/O。
1) 基本 I/O
基本 I/O为无条件传送,不需任何联络信号,8155 的 A口,
B口, C口都可以工作于该方式 。
第 7章 单片机系统扩展与接口技术
2) 选通 I/O
选通 I/O为条件传送,传送的方式可用查询方式,也可用中
断方式 。 8155的 A 口, B口均可工作于此方式,这时需由 C口
提供联络控制信号线 。 这些联络控制信号线有,
(1) BF,I/O缓冲器满标志,输出,高电平有效 。
(2) STB,选通信号,输入,低电平有效 。
(3) INTR,中断请求信号,输入,低电平有效 。
以上信号线对 A口和 B口均适用,分别称为 ABF,ASTB,
AINTR 和 BBF,BSTB,BINTR。 它们都由 C口提供,如表
7.7 所示 。
第 7章 单片机系统扩展与接口技术
表 7.7 8155 的 PC口线联络信号
第 7章 单片机系统扩展与接口技术
4,8155的命令 /状态字
8155 有一个命令 /状态字寄存器,实际上这是两个不同
的寄存器,分别存放命令字和状态字 。 由于对命令寄存器只
能进行写操作,对状态寄存器只能进行读操作,因此把它们
统一编址,合称命令 /状态寄存器 。
1)
命令字共 8 位,用于定义 I/O口及定时器的工作方式。
第 7章 单片机系统扩展与接口技术
图 7.22 8155的命令字格式
第 7章 单片机系统扩展与接口技术
对 C口工作方式的说明,
D3D2=00( ALT1), A口, B口为基本 I/O,C口为输入 。
D3D2=11( ALT2), A口, B口为基本 I/O,C口为输出 。
D3D2=01( ALT3), A口为选通 I/O,B口为基本 I/O,C口
低 3 位为联络信号,高 3 位输出 。
D3D2=10( ALT4), A口, B口均为选通 I/O,C口低 3位
作 A口联络信号,高 3 位作 B口联络信号 。
第 7章 单片机系统扩展与接口技术
对定时器运行控制位 ( TM2,TM1) 的说明,
当 TM2TM1=11 时,其操作为, 当计数器未计数时,装入
计数长度后,立即开始计数 ; 当计数器正在计数时,待计数
器溢出后以新装入的计数长度和方式进行计数 。
第 7章 单片机系统扩展与接口技术
2) 状态字
图 7.23 8155的状态字格式
第 7章 单片机系统扩展与接口技术
5,8155 的定时器 /
8155 的定时器 /计数器是一个 14位的减法计数器,由两个
8位寄存器构成,其格式如下,
T7 T6 T5 T4 T3 T2 T1 T0
M2 M1 T13 T12 T11 T10 T9 T8
TL(04H)
TL(05H)
第 7章 单片机系统扩展与接口技术
图 7.24 8155定时器方式及输出波形
第 7章 单片机系统扩展与接口技术
6,8155的接口电路及应用
图 7.25 8155 与 MCS - 51 的接口
第 7章 单片机系统扩展与接口技术
例 3 在图 7.25 所示的接口电路中,设 A口与 C口为输入
口,B口为输出口,均为基本 I/O。 定时器为连续方波工作方
式,对输入脉冲进行 24 分频 。 试编写 8155 的初始化程序 。
命令字可选取为, PA=0,PB=1,PC2PC1=00,IEA=0,
IEB=0,TM2TM1=11。 即命令字为 11000010B=C2H。
初始化程序,
第 7章 单片机系统扩展与接口技术
MOV OPTR,# 0204H ; 指向定时器的低 8
MOV A,# 18H ; 设置定时器的低 8
MOVX @DPTR,A ; 写入定时器低 8
INC DPTR ;
MOV A,# 40H ; 设置定时器的高 6 位及 2 位输出
MOVX @DPTR,A ;
MOV DPTR,# 0200H ;
MOV A,# C2H ; 取 8155
MOVX @DPTR,A ; 写入命令字
第 7章 单片机系统扩展与接口技术
例 4 采用图 7.25 所示的电路,从 8155 的 A口输入数据,
并进行判断, 若不为 0,则将该数据存入 8155 的 RAM中 ( 从
起始单元开始,数据总数不超过 256个 ),同时从 B口输出,并
将 PC0 置, 1”; 若为 0,则停止输入数据,同时将 PC0清, 0”,
试编写程序 。 MOV DPTR,# 0200H ;
MOV A,# 06H ;
MOVX @DPTR,A ;
MOV R0,# 00H ; 指向 8155 的 RAM区首址
MOV R1,# 00H ; 数据总数为 256
LP1,MOV DPTR,# 0201H ; 指向 A
MOVX A,@DPTR ; 从 A
JZ LP3 ; 为 0 则转
第 7章 单片机系统扩展与接口技术
MOVX @R0,A ; 存入 RAM
INC R0 ;
INC DPTR ; 指向 B
MOVX @DPTR,A ; B
INC DPTR ; 指向 C
MOVX A,@DPTR ; C
SETB ACC,0 ; 使 PC 0=1
MOVX @DPTR,A ;
DJNZ R1,LP1 ;
LP2,SJMP $ ;
LP3,MOV DPTR,# 0203H ; 指向 C
MOVX @DPTR,A ;
SJMP LP2
第 7章 单片机系统扩展与接口技术
7.4 管理功能部件的扩展
7.4.1 键盘接口
键盘实际上是由排列成矩阵形式的一系列按键开关组成,
用户通过键盘可以向 CPU输入数据, 地址和命令 。
键盘按其结构形式可分为, 编码式键盘和非编码式键盘
两类 。
单片机系统中普遍使用非编码式键盘,这类键盘主要解
决以下几个问题,
① 键的识别 ;
② 如何消除键的抖动 ;
③ 键的保护。
第 7章 单片机系统扩展与接口技术
1.
非编码式键盘识别按键的方法有两种, 一是行扫描法,二
是线反转法 。
1)
通过行线发出低电平信号,如果该行线所连接的键没有按
下的话,则列线所接的端口得到的是全, 1”信号,如果有键按
下的话,则得到非全, 1”信号 。
为了防止双键或多键同时按下,往往从第 0 行一直扫描到
最后 1 行,若只发现 1 个闭合键,则为有效键,否则全部作废 。
找到闭合键后,读入相应的键值,再转至相应的键处理程序。
第 7章 单片机系统扩展与接口技术
2)
线反转法也是识别闭合键的一种常用方法,该法比行扫
描速度快,但在硬件上要求行线与列线外接上拉电阻 。
先将行线作为输出线,列线作为输入线,行线输出全, 0”
信号,读入列线的值,然后将行线和列线的输入输出关系互换,
并且将刚才读到的列线值从列线所接的端口输出,再读取行
线的输入值 。 那么在闭合键所在的行线上值必为 0。 这样,
当一个键被按下时,必定可读到一对唯一的行列值 。
第 7章 单片机系统扩展与接口技术
2,键盘接口电路
图 7.26 采用 8155的键盘接口电路
第 7章 单片机系统扩展与接口技术
下面的程序是用行扫描法进行键扫描的程序,其中 KS1 为
判键闭合的子程序 。 有键闭合时 ( A) =0。 DIR为数码显示
器扫描显示子程序,执行一遍的时间约 6 ms。 程序执行后,若
键闭合,键值存入 A中,键值的计算公式是, 键值 =行号 × 4+列号 ;
若无键闭合,则 A中存入标志 FFH。
KEY1:LCALL KS1 ; 检查有无闭合键?
JNZ LK1 ; ( A) =0,
LJMP LK8 ; 无闭合键则返回
LK1,LCALL DIR ; 延时 12 ms
LCALL DIR ;
LCALL LS1 ; 再检查有键闭合否?
JNZ LK2 ;
LJMP LK8 ; 无键闭合则返回
第 7章 单片机系统扩展与接口技术
LK2,MOV R3,# 00H ; 行号初值送 R3
MOV R2,# FEH ; 行扫描初值送 R2
LK3,MOV DPTR,# 0101H ; 指向 8155 口 A
MOV A,R2 ; 行扫描值送 A
MOVX @DOTR,A ; 扫描 1
INC DPTR
INC DPTR ; 指向 8155 口 C
MOVX A,@DPTR ;
ANL A,# 0FH ; 保留低 4
MOV R4,A ;
CJNZ A,# 0FH,LK4 ; 列值非全, 1”
MOV A,R2 ; 行扫描值送 A
第 7章 单片机系统扩展与接口技术
JNB ACC.7,LK8 ;
RL A ; 未扫完,
MOV R2,A ; 行值存入 R2
INC R3 ; 行号加 1
SJMP LK3 ;
LK4,MOV A,R3 ; 行号送入 A
ADD A,R3 ; 行号 × 2
MOV R5,A
ADD A,R5 ; 行号 × 4
MOV R5,A ; 存入 R5
MOV A,R4 ; 列值送 A
第 7章 单片机系统扩展与接口技术
LK5,RRC A ;
JNC LK6 ; 该位为 0
INC R5 ; 列号加 1
SJMP LK5 ;
LK6,MOV 20H,R5;
LK7,LCALL DIR ;
LCALL KS1 ;
JNZ LK7 ;
LCALL DIR ;
LCALL DIR ; 延时 12 ms,
MOV A,20H ; 键值存入 A
KND,RET
第 7章 单片机系统扩展与接口技术
LK8,MOV A,# FFH ; 无键标志 FFH存入 A
RET
KS1,MOV DPTR,# 0101H ;
MOV A,# 00H ;
MOVX @DPTR,A ;
INC DPTR
INC DPTR ; 指向 8155口 C
MOVX A,@DPTR ;
ANL A,# 0FH ; 保留低 4
ORL A,# F0H ; 高 4位取, 1”
CPL A ; 取反,无键按下则全, 0”
RET
第 7章 单片机系统扩展与接口技术
7.4.2 LED显示器接口
1,LED显示器结构与原理
图 7.27 7段 LED数码显示器
第 7章 单片机系统扩展与接口技术
各段码位的对应关系如下,
第 7章 单片机系统扩展与接口技术
表 7.8 十六进制数及空白与 P的显示段码
第 7章 单片机系统扩展与接口技术
2,LED
图 7.28 6 位动态显示器接口
第 7章 单片机系统扩展与接口技术
图
7.
29
显
示
子
程
序
流
程
图
第 7章 单片机系统扩展与接口技术
程序清单如下,
DIR,MOV R0,# 79H ; 显示缓冲区首址送 R0
MOV R3,# 01H ;
MOV A,R3
LD0,MOV DPTR,# 0101H ; 扫描值送 PA
MOVX @ DPTR,A
INC DPTR ; 指向 PB
MOV A,@R0 ;
ADD A,# 12H ;
MOVX A,@A+PC ;
MOVX @ DPTR,A ; 送出显示
第 7章 单片机系统扩展与接口技术
ACALL DL1 ;
INC R0 ; 缓冲区地址加 1
MOV A,R3;
JB ACC.5,LD1 ; 扫到第 6
RL A ; 没有,R3 左环移一位,
MOV R3,A
AJMP LD0
LD1,RET
DSEG,DB 3FH,06H,5BH,4FH,66H,6DH ;
DSEG1,DB 7DH,07H,7FH,6FH,77H,7CH
第 7章 单片机系统扩展与接口技术
DSEG2,DB 39H,5EH,79H,71H,73H,3EH
DSEG3,DB 31H,61H,1CH,23H,40H,03H
DSEG4,DB 18H,00H,00H,00H
DL1,MOV R7,# 02H[DW];
DL,MOV R6,# 0FFH
DL6,DJNZ R6,DL6
DJNZ R7,DL
RET
第 7章 单片机系统扩展与接口技术
7.4.3 键盘显示器接口 8279
1,8279
8279 芯片有 40 条引脚,由单一 +5 V电源供电 。 它主要
由以下几部分组成,
( 1) I/O控制和数据缓冲器 ;
( 2) 控制和定时寄存器及定时控制部分 ;
( 3) 扫描计数器 ;
( 4) 回送缓冲器与键盘去抖动控制电路 ;
( 5) FIFO( 先进后出 ) 寄存器和状态电路 ;
( 6) 显示器地址寄存器及显示 RAM。
第 7章 单片机系统扩展与接口技术
图 7.30 8279的引脚图
第 7章 单片机系统扩展与接口技术
2,8279的接口电路与应用
图 7.31 8031与 8279 接口连接框图
第 7章 单片机系统扩展与接口技术
更新显示器和用查询方法读出 16 个键输入数的程序如下,
STRT1,MOV OPTR,# 7FFFH ; 7FFFH为 8279 状态地址
MOV A,# 0D1H ;
MOVX DPTR,A ; 命令字输入
WAITD:MOVX A,@DPTR ;
JB ACC.7,WAITD;
MOV A,# 2AH ; 对时钟编程,设 ALE为 1 MHz,; 10 分频为 100 kHz
MOVX @DPTR,A ;
MOV A,# 08H ; 显示器左边输入外部译码,
MOVX @DPTR,A
第 7章 单片机系统扩展与接口技术
MOV R0,# 30H ; 设 30H~3FH存放显示字形的段数据
MOV R7,# 10H ; 显示 16
MOV A,# 90H ;
MOVX @DPTR,A
MOV DPTR,# 7EFFH ; 7EFFH是 8279
LOOP1:MOV A,@R0
MOVX @DPTR,A ; 段选码送 8279 显示 RAM
INC R0 ;
DJN2 R7,LOOP1 ; 16
MOV R0,# 40H ; 40H
MOV R7,# 10H ; 有 16
LOOP2,MOV DPTR,# 7FFFH ; 读 8279 状态
第 7章 单片机系统扩展与接口技术
LOOP3:MOVX A,@DPTR
ANL A,# 0FH ; 取状态字低 4
JZ LOOP3 ; FIFO中无键值时等待输入
MOV A,# 40H ; 输出读 FIFO的 RAM
MOVX @DPTR,A ;
MOV DPTR,7EFFH ;
MOVX A,@DPTR ;
MOV @R0,A ; 键值存入内存 40H~4FH
INC R0 ;
DJNZ R7,LOOP2 ; 读完 10H个键入数据?
HERE,AJMP HERE ; 键值读完等待
第 7章 单片机系统扩展与接口技术
7.5 A/D和 D/A接口功能的扩展
7.5.1 A/D
1.
A/D转换器用以实现模拟量向数字量的转换 。 按转换原理
可分为 4 种, 计数式, 双积分式, 逐次逼近式以及并行式 A/D
转换器 。
逐次逼近式 A/D转换器是一种速度较快,精度较高的转换
器,其转换时间大约在几微秒到几百微秒之间 。 常用的这种芯
片有,
( 1) ADC0801~ADC0805型 8 位 MOS型 A/D转换器 ;
( 2) ADC0808/0809 型 8 位 MOS型 A/D转换器 ;
( 3) ADC0816/0817 型 8 位 MOS型 A/D转换器 ;
第 7章 单片机系统扩展与接口技术
量化间隔和量化误差是 A/D转换器的主要技术指标之一 。
量化间隔由下式计算,
12 ??? n
满量程输入电压
其中 n为 A/D转换器的位数。
量化误差有两种表示方法, 一种是绝对量化误差 ; 另一种是相
对量化误差。
绝对量化误差
22
??? 量化间隔?
12
1
?? n?
第 7章 单片机系统扩展与接口技术
2,典型 A/D转换器芯片 ADC0809 简介
图 7.32 ADC0809的内部结构
第 7章 单片机系统扩展与接口技术
图 7.33 ADC0809引脚图
第 7章 单片机系统扩展与接口技术
表 7.9 地址码与输入通道的对应关系
第 7章 单片机系统扩展与接口技术
图 7.34 ADC0809时序图
第 7章 单片机系统扩展与接口技术
3,ADC0809与 8031 的接口电路
1) 图 7.
35A
DC
08
09
查
询
方
式
硬
件
接
口
第 7章 单片机系统扩展与接口技术
下面的程序是采用查询方法,分别对 8 路模拟信号轮流采
样一次,并依次把结果转存到数据存储区的采样转换程序 。
MOV R1,# data ;
MOV DPTR,# 7FF8H ; P2.7=0,指向通道 0
MOV R7,# 08H ;
LP1,MOVX @DPTR,A ; 启动 A/D
MOV R6,# 0AH ;
DALY,NOP
NOP
NOP
第 7章 单片机系统扩展与接口技术
NOP
NOP
DJNZ R6,DALY
MOVX A,@DPTR ;
MOV @R1,A ;
INC DPTR ;
INC R1 ;
DJNZ R7,LP1 ; 8 个通道全采样完了吗?
第 7章 单片机系统扩展与接口技术
4,中断方式 图
7.
36A
DC
08
09
中
断
方
式
硬
件
接
口
第 7章 单片机系统扩展与接口技术
这里将 ADC0809 作为一个外部扩展的并行 I/O口,直接
由 8031的 P2.0和 WR脉冲进行启动 。 因而其端口地址为
0FEFFH。 用中断方式读取转换结果的数字量,模拟量输入
通道选择端 ADD A,ADD B,ADD C分别与 8031的 P0.0、
P0.1,P0.2 直接相连,CLK由 8031 的 ALE提供 。 其读取通道
0 转换后的数字量程序段如下,
ORG 1000H
INADC,SETB IT1 ; INT1
SETB EA ; 开中断 INT1
SETB EX1
第 7章 单片机系统扩展与接口技术
MOV DPTR,# 0FEFFH ; 端口地址送 DPTR
MOV A,# 00H ; 选择 0
MOVX @DPTR,A ;
…
ORG 0013H
AJMP PINT1
PINT1,…
MOV DPTR,# 0FEFFH ; 端口地址送 DPTR
MOVX A,@DPTR ; 读取 IN0
MOV 50H,A ; 存入 50H
MOV A,# 00H
MOVX @DPTR,A ; 启动 A/D,IN0 通道输入并转换
RETI ; 返回
第 7章 单片机系统扩展与接口技术
7.5.2 D/A转换器接口
1,D/A转换器的性能指标
( 1) 分辨率 。 分辨率是 D/A转换器对输入量变化敏感程度
的描述,与输入数字量的位数有关 。 如果数字量的位数为 n,则
D/A转换器的分辨率为 2-n。
( 2) 建立时间 。 建立时间是描述 D/A转换速度的一个参
数,具体是指从输入数字量变化到输出达到终值误差 ± 1/2LSB
( 最低有效位 ) 时所需的时间 。 通常以建立时间来表明转换速
度 。
( 3) 接口形式 。 D/A转换器有两类, 一类不带锁存器,另一
类则带锁存器 。 对于不带锁存器的 D/A转换器,为保存单片机
的转换数据,在接口处要加锁存器 。
第 7章 单片机系统扩展与接口技术
2,典型 D/A转换器 DAC0832简介
图 7.37 DAC0832内部结构框图
第 7章 单片机系统扩展与接口技术
图 7.38
第 7章 单片机系统扩展与接口技术
图 7.39 DAC0832的引脚图
第 7章 单片机系统扩展与接口技术
3,DAC0832与 MCS - 51 的接口及应用
1) 单缓冲方式
图 7.40 DAC0832单缓冲方式接口电路
第 7章 单片机系统扩展与接口技术
执行下面的几条指令就能完成一次 D/A转换,
MOV DPTR,# 7FFFH ; 指向 DAC0832
MOV A,# DATA ; 数字量装入 A
MOVX @DPTR,A; 完成一次 D/A输入与转换
第 7章 单片机系统扩展与接口技术
2) 双缓冲方式
图 7.41 DAC0832双缓冲方式接口电路
第 7章 单片机系统扩展与接口技术
MOV DPTR,# 0DFFFH ; 指向 DAC0832(1)
MOV A,# data1 ; data1送入 DAC0832(1)
MOVX @ DPTR,A ;
MOV DPTR,# 0BFFFH ; 指向 DAC0832(2)
MOV A,# data2 ; data2送入 DAC0832(2)
MOVX @DPTR,A
MOV DPTR,# 7FFFH ; 给 0832(1)和 (2)提供 WR
MOVX @DPTR,A ; 同时完成 D/A转换输出
第 7章 单片机系统扩展与接口技术
图 7.42 阶梯波形图
第 7章 单片机系统扩展与接口技术
产生阶梯波的程序如下,
START,MOV A,# 00H ;
MOV DPTR,# 7FFFH ; 0832 的地址送 DPTR
MOV R1,# 0AH ; 台阶数为 10
LP,MOVX @DPTR,A ; 送数据至 0832
CALL DELAY ; 1 ms
DJN2 R1,NEXT ; 不到 10
SJMP STRT ;
NEXT,ADD A,# 10 ;
SJMP LP ;
DELAY,MOV 20H,# 249 ; 1 ms
AGAIN,NOP
NOP
DJNZ 20H,AGAIN
第 7章 单片机系统扩展与接口技术
7.1 外部总线的扩展
7.2 外部存储器的扩展
7.3 输入 /输出接口的扩展
7.4 管理功能部件的扩展
7.5 A/D和 D/A接口功能的扩展
第 7章 单片机系统扩展与接口技术
7.1 外部总线的扩展
一,外部总线的扩展
图 7.1 MCS - 51外部三总线示意图
第 7章 单片机系统扩展与接口技术
图 7.2 地址锁存器的引脚和接口
第 7章 单片机系统扩展与接口技术
二、总线驱动
在单片机应用系统中,扩展的三总线上挂接很多负载,如存
储器, 并行接口, A/D接口, 显示接口等,但总线接口的负载
能力有限,因此常常需要通过连接总线驱动器进行总线驱动 。
总线驱动器对于单片机的 I/O口只相当于增加了一个 TTL
负载,因此驱动器除了对后级电路驱动外,还能对负载的波动变
化起隔离作用 。
在对 TTL 负载驱动时,只需考虑驱动电流的大小 ; 在对 MOS
负载驱动时,MOS负载的输入电流很小,更多地要考虑对分布
电容的电流驱动 。
第 7章 单片机系统扩展与接口技术
1,常用的总线驱动器
系统总线中地址总线和控制总线是单向的,因此驱动器
可以选用单向的,如 74LS244。 74LS244还带有三态控制,能
实现总线缓冲和隔离 。,
系统中的数据总线是双向的,其驱动器也要选用双向的,
如 74LS245 。 74LS245 也是三态的,有一个方向控制端 DIR,
DIR=1时输出 (An→B n),DIR=0时输入 (An←B n)。
第 7章 单片机系统扩展与接口技术
图 7.3
(a) 单向驱动器; (b) 双向驱动器
第 7章 单片机系统扩展与接口技术
2,总线驱动器的接口
图 7.4 8051
(a) P2 口的驱动 ; (b) P0 口的驱动
第 7章 单片机系统扩展与接口技术
7.2 外部存储器的扩展
图 7.5 MCS - 51 单片机程序存储器的扩展原理
7.2.1 外部程序存储器的扩展
1,外部程序存储器的扩展原理及时序
第 7章 单片机系统扩展与接口技术
2,EPROM扩展电路
图 7.6 2716的引脚图
第 7章 单片机系统扩展与接口技术
2716 有五种工作方式,见表 7.1。
表 7.1 2716工作方式选择
第 7章 单片机系统扩展与接口技术
图 7.7 2716与 8031的连接图
第 7章 单片机系统扩展与接口技术
由图 7.7可确定 2716芯片的地址范围 。 方法是 A10~ A0从
全 0开始,然后从最低位开始依次加 1,最后变为全 1,相当于
211=2 048个单元地址依次选通,称为字选 。 即
第 7章 单片机系统扩展与接口技术
3,E2PROM 2864A的扩展
图 7.8 2864A
(a) (b) 原理框图
第 7章 单片机系统扩展与接口技术
表 7.2 2864A 工作方式
( 1) 维持和读出方式, 2864A的维持和读出方式与普通
EPROM完全相同 。
( 2) 写入方式, 2864A提供了两种数据写入操作方式,字节
写入和页面写入 。
( 3) 数据查询方式,
第 7章 单片机系统扩展与接口技术
图
7.
9
28
64A
与
80
31
的
接
口
电
路
第 7章 单片机系统扩展与接口技术
7.2.2 外部数据存储器的扩展
1,外部数据存储器的扩展方法及时序
图 7.10 MCS - 51 数据存储器的扩展示意图
第 7章 单片机系统扩展与接口技术
2,静态 RAM扩展
图 7.11 6264 管脚图
第 7章 单片机系统扩展与接口技术
表 7.3 6264的工作方式
第 7章 单片机系统扩展与接口技术
图
7.
12
扩
展
62
64
静
态RA
M
第 7章 单片机系统扩展与接口技术
6264的 8 KB地址范围不唯一 ( 因为 A14A13可为任意值 ),
6000H~7FFFH是一种地址范围 。 当向该片 6000H单元写一个
数据 DATA时,可用如下指令,
MOV A,# DATA
MOV DPTA,# 6000H
MOVX @DPTR,A
从7 FFFH单元读一个数据时,可用如下指令,
MOV DPTR,# 7FFFH
MOVX A,@DPTR
第 7章 单片机系统扩展与接口技术
7.2.3
1,线选法寻址
图 7.13 用线选法实现片选
第 7章 单片机系统扩展与接口技术
各芯片的地址范围如下,
第 7章 单片机系统扩展与接口技术
2.
译码法寻址就是利用地址译码器对系统的片外高位地址
进行译码,以其译码输出作为存储器芯片的片选信号,将地址
划分为连续的地址空间块,避免了地址的间断 。
译码法仍用低位地址线对每片内的存储单元进行寻址,
而高位地址线经过译码器译码后输出作为各芯片的片选信号 。
常用的地址译码器是 3/8 译码器 74LS138。
译码法又分为完全译码和部分译码两种 。
第 7章 单片机系统扩展与接口技术
例 要求用 2764 芯片扩展 8031 的片外程序存储器空间,分
配的地址范围为 0000H~3FFFH。
本例采用完全译码方法 。
(1) 确定片数 。
因 0000H ~ 3FFFH的存储空间为 16 KB,
所需芯片数 =实际要求的存储容量 /单个芯片的存储容量
= 16 KB/ 8 KB
= 2( 片 )
第 7章 单片机系统扩展与接口技术
(2) 分配地址范围。
第 7章 单片机系统扩展与接口技术
(3) 存储器扩展连接如图 7.14 所示。
图 7.14 采用地址译码器扩展存储器的连接图
第 7章 单片机系统扩展与接口技术
7.3 输入 /输出接口的扩展
7.3.1 8255A可编程并行 I/O
8255A具有 3 个 8 位并行 I/O口,称为 PA口, PB口和 PC口 。
其中 PC口又分为高 4 位和低 4 位,通过控制字设定可以选择三
种工作方式, ① 基本输入 /输出 ; ② 选通输入 /输出 ; ③ PA口为
双向总线 。
1,8255A
8255A内部结构包括三个并行数据输入 /输出端口,两个工
作方式控制电路,一个读 /写控制电路和 8 位总线缓冲器 。
第 7章 单片机系统扩展与接口技术
图 7.15 8255A
( a) 内部结构 ; ( b) 引脚
第 7章 单片机系统扩展与接口技术
( 1) 端口 A,B,C。
A口, 是一个 8位数据输出锁存器 /缓冲器和一个 8位数据
输入锁存器 。
B口, 是一个 8位数据输出锁存器 /缓冲器和一个 8位数据
输入缓冲器 。
C口, 是一个 8位数据输出锁存器 /缓冲器和一个 8位数据
输入缓冲器 。
通常,A口 #,B口作为数据输入 /输出端口,C口作为控制 /
状态信息端口 。 C口内部又分为两个 4 位端口,每个端口有
一个 4 位锁存器,分别与 A口和 B口配合使用,作为控制信号
输出或状态信息输入端口 。
第 7章 单片机系统扩展与接口技术
( 2) 工作方式控制 。
工作方式控制电路有两个,一个是 A组控制电路,另一个
是 B组控制电路 。 这两组控制电路共有一个控制命令寄存器,
用来接收中央处理器发来的控制字 。
A 组 控 制 电 路 用 来 控 制 A 口和 C 口 的 上 半 部 分
( PC7~PC4) 。 B组控制电路用来控制 B口和 C口的下半部分
( PC3~PC0) 。
第 7章 单片机系统扩展与接口技术
( 3) 总线数据缓冲器 。
总线数据缓冲器是一个三态双向 8位缓冲器,作为 8255
与系统总线之间的接口,用来传送数据, 指令, 控制命令以
及外部状态信息 。
( 4) 读 /写控制逻辑电路 。
读 /写控制逻辑电路接收 CPU发来的控制信号 RD,WR、
RESET,地址信号 A1,A0 等,然后根据控制信号的要求,将
端口数据读出,送往 CPU或将 CPU送来的数据写入端口 。
第 7章 单片机系统扩展与接口技术
表 7.4 8255A 接口工作状态选择表
第 7章 单片机系统扩展与接口技术
图 7.16 8255A
(a) 方式 0; (b) 方式 1; (c) 方式
第 7章 单片机系统扩展与接口技术
2,工作方式选择
( 1) 方式 0,基本输入 /输出方式 。
这种方式不需选通信号 。 PA,PB和 PC中任一端口都可以通
过方式控制字设定为输入或输出 。
( 2) 方式 1,选通输入 /输出方式 。 共有 3 个口,被分为两
组 。 A组包括 A口和 PC7~PC4,A口可由编程设定为输入或输出,
PC7~PC4 作为输入 /输出操作的选通信号和应答信号 。 B组包括
B口和 PC3~PC0,这时 C口作为 8255A和外设或 CPU之间传送某
些状态信息及中断请求信号 。
第 7章 单片机系统扩展与接口技术
( 3) 方式 2,双向传送方式 。
只有 A口有方式 2,此时,A口为 8位双向传送数据口,C口的
高 5位 PC7~PC3用来作为指定 A口输入 /输出的控制联络线 。
表 7.5 8255A的 C口联络控制信号线
第 7章 单片机系统扩展与接口技术
3,8255A 的控制字
( 1)
图 7.17 8255A的方式控制字
第 7章 单片机系统扩展与接口技术
( 2) 端口 C置位 /复位控制字
图 7.18 8255A端口 C置位 /复位控制字
第 7章 单片机系统扩展与接口技术
例 1 要求 A口工作在方式 0输入,B口为方式 1输出,C口高
4位 PC7~PC4为输入,C口低 4位 PC3~PC0为输出 。 实现上述要
求的初始化程序为,
MOV R1,# 03H ; 03H为 8255A 控制寄存器地址
MOV A,# 9CH ; 8255A工作方式字为 9CH
MOVX @R1,A ; 方式字送入 8255A 控制口
第 7章 单片机系统扩展与接口技术
4,8255A 和 8031 单片机的硬件接口
图 7.19 8255A与 8031单片机接口
第 7章 单片机系统扩展与接口技术
设 8255A的 A,B,C口和控制寄存器地址依次为 00H、
01H,02H 和 03H。 如果用户需要将 C口的 PC3 置 1,PC5 置
0,可编程如下,
MOV R0,# 03H ; 8255A
MOV A,# 07H ; 将 PC 3 置 1
MOVX @R0,A ; 置 PC 3=1
MOV A,# 0AH ; 将 PC 5 置 0
MOVX @R0,A ; 置 PC 5=0
第 7章 单片机系统扩展与接口技术
例 2 图 7.20 是 8031 扩展 8255A 与打印机接口的电路 。
8255A 的片选线为 P0.7,打印机与 8031 采用查询方式交换数
据 。 打印机的状态信号输入给 PC7,打印机忙时 BUSY=1,打印
机的数据输入采用选通控制,当 STB上出现负跳变时数据被打
入,要求编写向打印机输出 80 个数据的程序 。 设 8255A 的 A、
B,C和控制寄存器的口地址分别为, 7CH,7DH,7EH和 7FH。
第 7章 单片机系统扩展与接口技术
图 7.20 8031扩展打印机接口 8255A
第 7章 单片机系统扩展与接口技术
8255A 的方式 1中 OBF为低电平有效,而打印机 STB要求
下降沿选通 。 所以 8255A采用方式 0,由 PC0 模拟产生 STB信号 。
因 PC7输入,PC0输出,则方式选择命令字为, 10001110B=8EH。
自内部 RAM 20H单元开始向打印机输出 80个数据的程序
如下,
MOV R0,# 7FH ; R0
MOV A,# 8EH ; 方式控制字为 8EH
MOV @R0,A ;
MOV R1,# 20H ; 送内部 RAM数据块首地址至指针 R1
MOV R2,# 50H ;
第 7章 单片机系统扩展与接口技术
LP,MOV R0,# 7EH ; R0指向 C
LP1,MOVX A,@R0 ; 读 PC7连接 BUSY
JB ACC.7,LP1 ;
MOV R0,# 7CH ; 指向 A
MOV A,@R1 ; 取 RAM
MOVX @R0,A ; 数据输出到 8255A
INC R1 ; RAM地址加 1
MOV R0,# 7FH ; R0指向控制口
MOV A,# 00H ; PC0
MOVX @R0,A ; PC0=0,产生 STB
MOV A,# 01H ; PC0
MOVX @R0,A ; PC0=1,产生 STB
DJNZ R2,LP ; 未完,则反复
第 7章 单片机系统扩展与接口技术
7.3.2 8155 可编程并行 I/O接口
1,8155
图 7.21 8155引脚及结构框图
第 7章 单片机系统扩展与接口技术
2,8155 的 RAM和 I/O口的编址
表 7.6 8155 端口地址表
第 7章 单片机系统扩展与接口技术
3,8155 I/O
8155 I/O的工作方式有两种, 基本 I/O和选通 I/O。
1) 基本 I/O
基本 I/O为无条件传送,不需任何联络信号,8155 的 A口,
B口, C口都可以工作于该方式 。
第 7章 单片机系统扩展与接口技术
2) 选通 I/O
选通 I/O为条件传送,传送的方式可用查询方式,也可用中
断方式 。 8155的 A 口, B口均可工作于此方式,这时需由 C口
提供联络控制信号线 。 这些联络控制信号线有,
(1) BF,I/O缓冲器满标志,输出,高电平有效 。
(2) STB,选通信号,输入,低电平有效 。
(3) INTR,中断请求信号,输入,低电平有效 。
以上信号线对 A口和 B口均适用,分别称为 ABF,ASTB,
AINTR 和 BBF,BSTB,BINTR。 它们都由 C口提供,如表
7.7 所示 。
第 7章 单片机系统扩展与接口技术
表 7.7 8155 的 PC口线联络信号
第 7章 单片机系统扩展与接口技术
4,8155的命令 /状态字
8155 有一个命令 /状态字寄存器,实际上这是两个不同
的寄存器,分别存放命令字和状态字 。 由于对命令寄存器只
能进行写操作,对状态寄存器只能进行读操作,因此把它们
统一编址,合称命令 /状态寄存器 。
1)
命令字共 8 位,用于定义 I/O口及定时器的工作方式。
第 7章 单片机系统扩展与接口技术
图 7.22 8155的命令字格式
第 7章 单片机系统扩展与接口技术
对 C口工作方式的说明,
D3D2=00( ALT1), A口, B口为基本 I/O,C口为输入 。
D3D2=11( ALT2), A口, B口为基本 I/O,C口为输出 。
D3D2=01( ALT3), A口为选通 I/O,B口为基本 I/O,C口
低 3 位为联络信号,高 3 位输出 。
D3D2=10( ALT4), A口, B口均为选通 I/O,C口低 3位
作 A口联络信号,高 3 位作 B口联络信号 。
第 7章 单片机系统扩展与接口技术
对定时器运行控制位 ( TM2,TM1) 的说明,
当 TM2TM1=11 时,其操作为, 当计数器未计数时,装入
计数长度后,立即开始计数 ; 当计数器正在计数时,待计数
器溢出后以新装入的计数长度和方式进行计数 。
第 7章 单片机系统扩展与接口技术
2) 状态字
图 7.23 8155的状态字格式
第 7章 单片机系统扩展与接口技术
5,8155 的定时器 /
8155 的定时器 /计数器是一个 14位的减法计数器,由两个
8位寄存器构成,其格式如下,
T7 T6 T5 T4 T3 T2 T1 T0
M2 M1 T13 T12 T11 T10 T9 T8
TL(04H)
TL(05H)
第 7章 单片机系统扩展与接口技术
图 7.24 8155定时器方式及输出波形
第 7章 单片机系统扩展与接口技术
6,8155的接口电路及应用
图 7.25 8155 与 MCS - 51 的接口
第 7章 单片机系统扩展与接口技术
例 3 在图 7.25 所示的接口电路中,设 A口与 C口为输入
口,B口为输出口,均为基本 I/O。 定时器为连续方波工作方
式,对输入脉冲进行 24 分频 。 试编写 8155 的初始化程序 。
命令字可选取为, PA=0,PB=1,PC2PC1=00,IEA=0,
IEB=0,TM2TM1=11。 即命令字为 11000010B=C2H。
初始化程序,
第 7章 单片机系统扩展与接口技术
MOV OPTR,# 0204H ; 指向定时器的低 8
MOV A,# 18H ; 设置定时器的低 8
MOVX @DPTR,A ; 写入定时器低 8
INC DPTR ;
MOV A,# 40H ; 设置定时器的高 6 位及 2 位输出
MOVX @DPTR,A ;
MOV DPTR,# 0200H ;
MOV A,# C2H ; 取 8155
MOVX @DPTR,A ; 写入命令字
第 7章 单片机系统扩展与接口技术
例 4 采用图 7.25 所示的电路,从 8155 的 A口输入数据,
并进行判断, 若不为 0,则将该数据存入 8155 的 RAM中 ( 从
起始单元开始,数据总数不超过 256个 ),同时从 B口输出,并
将 PC0 置, 1”; 若为 0,则停止输入数据,同时将 PC0清, 0”,
试编写程序 。 MOV DPTR,# 0200H ;
MOV A,# 06H ;
MOVX @DPTR,A ;
MOV R0,# 00H ; 指向 8155 的 RAM区首址
MOV R1,# 00H ; 数据总数为 256
LP1,MOV DPTR,# 0201H ; 指向 A
MOVX A,@DPTR ; 从 A
JZ LP3 ; 为 0 则转
第 7章 单片机系统扩展与接口技术
MOVX @R0,A ; 存入 RAM
INC R0 ;
INC DPTR ; 指向 B
MOVX @DPTR,A ; B
INC DPTR ; 指向 C
MOVX A,@DPTR ; C
SETB ACC,0 ; 使 PC 0=1
MOVX @DPTR,A ;
DJNZ R1,LP1 ;
LP2,SJMP $ ;
LP3,MOV DPTR,# 0203H ; 指向 C
MOVX @DPTR,A ;
SJMP LP2
第 7章 单片机系统扩展与接口技术
7.4 管理功能部件的扩展
7.4.1 键盘接口
键盘实际上是由排列成矩阵形式的一系列按键开关组成,
用户通过键盘可以向 CPU输入数据, 地址和命令 。
键盘按其结构形式可分为, 编码式键盘和非编码式键盘
两类 。
单片机系统中普遍使用非编码式键盘,这类键盘主要解
决以下几个问题,
① 键的识别 ;
② 如何消除键的抖动 ;
③ 键的保护。
第 7章 单片机系统扩展与接口技术
1.
非编码式键盘识别按键的方法有两种, 一是行扫描法,二
是线反转法 。
1)
通过行线发出低电平信号,如果该行线所连接的键没有按
下的话,则列线所接的端口得到的是全, 1”信号,如果有键按
下的话,则得到非全, 1”信号 。
为了防止双键或多键同时按下,往往从第 0 行一直扫描到
最后 1 行,若只发现 1 个闭合键,则为有效键,否则全部作废 。
找到闭合键后,读入相应的键值,再转至相应的键处理程序。
第 7章 单片机系统扩展与接口技术
2)
线反转法也是识别闭合键的一种常用方法,该法比行扫
描速度快,但在硬件上要求行线与列线外接上拉电阻 。
先将行线作为输出线,列线作为输入线,行线输出全, 0”
信号,读入列线的值,然后将行线和列线的输入输出关系互换,
并且将刚才读到的列线值从列线所接的端口输出,再读取行
线的输入值 。 那么在闭合键所在的行线上值必为 0。 这样,
当一个键被按下时,必定可读到一对唯一的行列值 。
第 7章 单片机系统扩展与接口技术
2,键盘接口电路
图 7.26 采用 8155的键盘接口电路
第 7章 单片机系统扩展与接口技术
下面的程序是用行扫描法进行键扫描的程序,其中 KS1 为
判键闭合的子程序 。 有键闭合时 ( A) =0。 DIR为数码显示
器扫描显示子程序,执行一遍的时间约 6 ms。 程序执行后,若
键闭合,键值存入 A中,键值的计算公式是, 键值 =行号 × 4+列号 ;
若无键闭合,则 A中存入标志 FFH。
KEY1:LCALL KS1 ; 检查有无闭合键?
JNZ LK1 ; ( A) =0,
LJMP LK8 ; 无闭合键则返回
LK1,LCALL DIR ; 延时 12 ms
LCALL DIR ;
LCALL LS1 ; 再检查有键闭合否?
JNZ LK2 ;
LJMP LK8 ; 无键闭合则返回
第 7章 单片机系统扩展与接口技术
LK2,MOV R3,# 00H ; 行号初值送 R3
MOV R2,# FEH ; 行扫描初值送 R2
LK3,MOV DPTR,# 0101H ; 指向 8155 口 A
MOV A,R2 ; 行扫描值送 A
MOVX @DOTR,A ; 扫描 1
INC DPTR
INC DPTR ; 指向 8155 口 C
MOVX A,@DPTR ;
ANL A,# 0FH ; 保留低 4
MOV R4,A ;
CJNZ A,# 0FH,LK4 ; 列值非全, 1”
MOV A,R2 ; 行扫描值送 A
第 7章 单片机系统扩展与接口技术
JNB ACC.7,LK8 ;
RL A ; 未扫完,
MOV R2,A ; 行值存入 R2
INC R3 ; 行号加 1
SJMP LK3 ;
LK4,MOV A,R3 ; 行号送入 A
ADD A,R3 ; 行号 × 2
MOV R5,A
ADD A,R5 ; 行号 × 4
MOV R5,A ; 存入 R5
MOV A,R4 ; 列值送 A
第 7章 单片机系统扩展与接口技术
LK5,RRC A ;
JNC LK6 ; 该位为 0
INC R5 ; 列号加 1
SJMP LK5 ;
LK6,MOV 20H,R5;
LK7,LCALL DIR ;
LCALL KS1 ;
JNZ LK7 ;
LCALL DIR ;
LCALL DIR ; 延时 12 ms,
MOV A,20H ; 键值存入 A
KND,RET
第 7章 单片机系统扩展与接口技术
LK8,MOV A,# FFH ; 无键标志 FFH存入 A
RET
KS1,MOV DPTR,# 0101H ;
MOV A,# 00H ;
MOVX @DPTR,A ;
INC DPTR
INC DPTR ; 指向 8155口 C
MOVX A,@DPTR ;
ANL A,# 0FH ; 保留低 4
ORL A,# F0H ; 高 4位取, 1”
CPL A ; 取反,无键按下则全, 0”
RET
第 7章 单片机系统扩展与接口技术
7.4.2 LED显示器接口
1,LED显示器结构与原理
图 7.27 7段 LED数码显示器
第 7章 单片机系统扩展与接口技术
各段码位的对应关系如下,
第 7章 单片机系统扩展与接口技术
表 7.8 十六进制数及空白与 P的显示段码
第 7章 单片机系统扩展与接口技术
2,LED
图 7.28 6 位动态显示器接口
第 7章 单片机系统扩展与接口技术
图
7.
29
显
示
子
程
序
流
程
图
第 7章 单片机系统扩展与接口技术
程序清单如下,
DIR,MOV R0,# 79H ; 显示缓冲区首址送 R0
MOV R3,# 01H ;
MOV A,R3
LD0,MOV DPTR,# 0101H ; 扫描值送 PA
MOVX @ DPTR,A
INC DPTR ; 指向 PB
MOV A,@R0 ;
ADD A,# 12H ;
MOVX A,@A+PC ;
MOVX @ DPTR,A ; 送出显示
第 7章 单片机系统扩展与接口技术
ACALL DL1 ;
INC R0 ; 缓冲区地址加 1
MOV A,R3;
JB ACC.5,LD1 ; 扫到第 6
RL A ; 没有,R3 左环移一位,
MOV R3,A
AJMP LD0
LD1,RET
DSEG,DB 3FH,06H,5BH,4FH,66H,6DH ;
DSEG1,DB 7DH,07H,7FH,6FH,77H,7CH
第 7章 单片机系统扩展与接口技术
DSEG2,DB 39H,5EH,79H,71H,73H,3EH
DSEG3,DB 31H,61H,1CH,23H,40H,03H
DSEG4,DB 18H,00H,00H,00H
DL1,MOV R7,# 02H[DW];
DL,MOV R6,# 0FFH
DL6,DJNZ R6,DL6
DJNZ R7,DL
RET
第 7章 单片机系统扩展与接口技术
7.4.3 键盘显示器接口 8279
1,8279
8279 芯片有 40 条引脚,由单一 +5 V电源供电 。 它主要
由以下几部分组成,
( 1) I/O控制和数据缓冲器 ;
( 2) 控制和定时寄存器及定时控制部分 ;
( 3) 扫描计数器 ;
( 4) 回送缓冲器与键盘去抖动控制电路 ;
( 5) FIFO( 先进后出 ) 寄存器和状态电路 ;
( 6) 显示器地址寄存器及显示 RAM。
第 7章 单片机系统扩展与接口技术
图 7.30 8279的引脚图
第 7章 单片机系统扩展与接口技术
2,8279的接口电路与应用
图 7.31 8031与 8279 接口连接框图
第 7章 单片机系统扩展与接口技术
更新显示器和用查询方法读出 16 个键输入数的程序如下,
STRT1,MOV OPTR,# 7FFFH ; 7FFFH为 8279 状态地址
MOV A,# 0D1H ;
MOVX DPTR,A ; 命令字输入
WAITD:MOVX A,@DPTR ;
JB ACC.7,WAITD;
MOV A,# 2AH ; 对时钟编程,设 ALE为 1 MHz,; 10 分频为 100 kHz
MOVX @DPTR,A ;
MOV A,# 08H ; 显示器左边输入外部译码,
MOVX @DPTR,A
第 7章 单片机系统扩展与接口技术
MOV R0,# 30H ; 设 30H~3FH存放显示字形的段数据
MOV R7,# 10H ; 显示 16
MOV A,# 90H ;
MOVX @DPTR,A
MOV DPTR,# 7EFFH ; 7EFFH是 8279
LOOP1:MOV A,@R0
MOVX @DPTR,A ; 段选码送 8279 显示 RAM
INC R0 ;
DJN2 R7,LOOP1 ; 16
MOV R0,# 40H ; 40H
MOV R7,# 10H ; 有 16
LOOP2,MOV DPTR,# 7FFFH ; 读 8279 状态
第 7章 单片机系统扩展与接口技术
LOOP3:MOVX A,@DPTR
ANL A,# 0FH ; 取状态字低 4
JZ LOOP3 ; FIFO中无键值时等待输入
MOV A,# 40H ; 输出读 FIFO的 RAM
MOVX @DPTR,A ;
MOV DPTR,7EFFH ;
MOVX A,@DPTR ;
MOV @R0,A ; 键值存入内存 40H~4FH
INC R0 ;
DJNZ R7,LOOP2 ; 读完 10H个键入数据?
HERE,AJMP HERE ; 键值读完等待
第 7章 单片机系统扩展与接口技术
7.5 A/D和 D/A接口功能的扩展
7.5.1 A/D
1.
A/D转换器用以实现模拟量向数字量的转换 。 按转换原理
可分为 4 种, 计数式, 双积分式, 逐次逼近式以及并行式 A/D
转换器 。
逐次逼近式 A/D转换器是一种速度较快,精度较高的转换
器,其转换时间大约在几微秒到几百微秒之间 。 常用的这种芯
片有,
( 1) ADC0801~ADC0805型 8 位 MOS型 A/D转换器 ;
( 2) ADC0808/0809 型 8 位 MOS型 A/D转换器 ;
( 3) ADC0816/0817 型 8 位 MOS型 A/D转换器 ;
第 7章 单片机系统扩展与接口技术
量化间隔和量化误差是 A/D转换器的主要技术指标之一 。
量化间隔由下式计算,
12 ??? n
满量程输入电压
其中 n为 A/D转换器的位数。
量化误差有两种表示方法, 一种是绝对量化误差 ; 另一种是相
对量化误差。
绝对量化误差
22
??? 量化间隔?
12
1
?? n?
第 7章 单片机系统扩展与接口技术
2,典型 A/D转换器芯片 ADC0809 简介
图 7.32 ADC0809的内部结构
第 7章 单片机系统扩展与接口技术
图 7.33 ADC0809引脚图
第 7章 单片机系统扩展与接口技术
表 7.9 地址码与输入通道的对应关系
第 7章 单片机系统扩展与接口技术
图 7.34 ADC0809时序图
第 7章 单片机系统扩展与接口技术
3,ADC0809与 8031 的接口电路
1) 图 7.
35A
DC
08
09
查
询
方
式
硬
件
接
口
第 7章 单片机系统扩展与接口技术
下面的程序是采用查询方法,分别对 8 路模拟信号轮流采
样一次,并依次把结果转存到数据存储区的采样转换程序 。
MOV R1,# data ;
MOV DPTR,# 7FF8H ; P2.7=0,指向通道 0
MOV R7,# 08H ;
LP1,MOVX @DPTR,A ; 启动 A/D
MOV R6,# 0AH ;
DALY,NOP
NOP
NOP
第 7章 单片机系统扩展与接口技术
NOP
NOP
DJNZ R6,DALY
MOVX A,@DPTR ;
MOV @R1,A ;
INC DPTR ;
INC R1 ;
DJNZ R7,LP1 ; 8 个通道全采样完了吗?
第 7章 单片机系统扩展与接口技术
4,中断方式 图
7.
36A
DC
08
09
中
断
方
式
硬
件
接
口
第 7章 单片机系统扩展与接口技术
这里将 ADC0809 作为一个外部扩展的并行 I/O口,直接
由 8031的 P2.0和 WR脉冲进行启动 。 因而其端口地址为
0FEFFH。 用中断方式读取转换结果的数字量,模拟量输入
通道选择端 ADD A,ADD B,ADD C分别与 8031的 P0.0、
P0.1,P0.2 直接相连,CLK由 8031 的 ALE提供 。 其读取通道
0 转换后的数字量程序段如下,
ORG 1000H
INADC,SETB IT1 ; INT1
SETB EA ; 开中断 INT1
SETB EX1
第 7章 单片机系统扩展与接口技术
MOV DPTR,# 0FEFFH ; 端口地址送 DPTR
MOV A,# 00H ; 选择 0
MOVX @DPTR,A ;
…
ORG 0013H
AJMP PINT1
PINT1,…
MOV DPTR,# 0FEFFH ; 端口地址送 DPTR
MOVX A,@DPTR ; 读取 IN0
MOV 50H,A ; 存入 50H
MOV A,# 00H
MOVX @DPTR,A ; 启动 A/D,IN0 通道输入并转换
RETI ; 返回
第 7章 单片机系统扩展与接口技术
7.5.2 D/A转换器接口
1,D/A转换器的性能指标
( 1) 分辨率 。 分辨率是 D/A转换器对输入量变化敏感程度
的描述,与输入数字量的位数有关 。 如果数字量的位数为 n,则
D/A转换器的分辨率为 2-n。
( 2) 建立时间 。 建立时间是描述 D/A转换速度的一个参
数,具体是指从输入数字量变化到输出达到终值误差 ± 1/2LSB
( 最低有效位 ) 时所需的时间 。 通常以建立时间来表明转换速
度 。
( 3) 接口形式 。 D/A转换器有两类, 一类不带锁存器,另一
类则带锁存器 。 对于不带锁存器的 D/A转换器,为保存单片机
的转换数据,在接口处要加锁存器 。
第 7章 单片机系统扩展与接口技术
2,典型 D/A转换器 DAC0832简介
图 7.37 DAC0832内部结构框图
第 7章 单片机系统扩展与接口技术
图 7.38
第 7章 单片机系统扩展与接口技术
图 7.39 DAC0832的引脚图
第 7章 单片机系统扩展与接口技术
3,DAC0832与 MCS - 51 的接口及应用
1) 单缓冲方式
图 7.40 DAC0832单缓冲方式接口电路
第 7章 单片机系统扩展与接口技术
执行下面的几条指令就能完成一次 D/A转换,
MOV DPTR,# 7FFFH ; 指向 DAC0832
MOV A,# DATA ; 数字量装入 A
MOVX @DPTR,A; 完成一次 D/A输入与转换
第 7章 单片机系统扩展与接口技术
2) 双缓冲方式
图 7.41 DAC0832双缓冲方式接口电路
第 7章 单片机系统扩展与接口技术
MOV DPTR,# 0DFFFH ; 指向 DAC0832(1)
MOV A,# data1 ; data1送入 DAC0832(1)
MOVX @ DPTR,A ;
MOV DPTR,# 0BFFFH ; 指向 DAC0832(2)
MOV A,# data2 ; data2送入 DAC0832(2)
MOVX @DPTR,A
MOV DPTR,# 7FFFH ; 给 0832(1)和 (2)提供 WR
MOVX @DPTR,A ; 同时完成 D/A转换输出
第 7章 单片机系统扩展与接口技术
图 7.42 阶梯波形图
第 7章 单片机系统扩展与接口技术
产生阶梯波的程序如下,
START,MOV A,# 00H ;
MOV DPTR,# 7FFFH ; 0832 的地址送 DPTR
MOV R1,# 0AH ; 台阶数为 10
LP,MOVX @DPTR,A ; 送数据至 0832
CALL DELAY ; 1 ms
DJN2 R1,NEXT ; 不到 10
SJMP STRT ;
NEXT,ADD A,# 10 ;
SJMP LP ;
DELAY,MOV 20H,# 249 ; 1 ms
AGAIN,NOP
NOP
DJNZ 20H,AGAIN