第 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