第 5章 MCS–51单片机的接口与应用第 5章 MCS–51单片机的接口与应用
5.1 按键、键盘及其接口
5.2 显示及显示器接口
5.3 A/D转换器接口
5.4 D/A转换器接口
5.5 行程开关、晶闸管、
继电器与单片机的接口第 5章 MCS–51单片机的接口与应用5.1 按键、键盘及其接口
5.1.1 键输入过程与软件结构图 5.1 MCS–51单片机键输入过程第 5章 MCS–51单片机的接口与应用
5.1.2 键盘接口和键输入软件中应解决的几个问题
1.消除键抖动键稳定键按下前沿抖动前沿抖动图 5.2 键合断时的电压抖动第 5章 MCS–51单片机的接口与应用图 5.3 消除键抖动电路第 5章 MCS–51单片机的接口与应用
2.键编码及键值
(1) 用键盘连接的 I/O线的二进制组合表示键码。例如用 4行、
4列线构成的 16个键的键盘,可使用一个 8位 I/O口线的高、低 4
位口线的二进制数的组合表示 16个键的编码,如图 5.4(a)所示。
各键相应的键值为 88H,84H,82H,81H,48H,44H,42H、
41H,28H,24H,22H,21H,18H,14H,12H,11H。这种键值编码软件较为简单直观,但离散性大,不便安排散转程序的入口地址。
第 5章 MCS–51单片机的接口与应用
(2) 顺序排列键编码。如图 5.4(b)所示。这种方法,键值的形成要根据 I/O线的状态作相应处理。键码可按下式形成:
键码 =行首键码 +列号第 5章 MCS–51单片机的接口与应用图 5.4 行列式键盘的编码与键值
(a) 二进制组合编码; (b) 顺序排列编码第 5章 MCS–51单片机的接口与应用
3.键盘的监测方法对于计算机应用系统,键盘扫描只是 CPU工作的一部分,
键盘处理只是在有键按下时才有意义。对是否有键按下的信息输入方式有中断方式与查询方式两种。
第 5章 MCS–51单片机的接口与应用5.1.3 独立式按键
1.独立式按键接口结构图 5.5 独立式按键的接口电路示意图
(a) 中断方式; (b) 查询方式第 5章 MCS–51单片机的接口与应用
2.独立式按键的软件结构下面是查询方式的键盘程序。 K0~K7为功能程序入口地址标号,其地址间隔应能容纳 JMP指令字节,PROM0~PROM7分别为每个按键的功能程序。设 I/O为 P1口。
START,MOV A,#0FFH ;
MOV P1,A ;置 P1口为输入状态
MOV A,P1 ;键状态输入
JNB ACC.0,K0 ;检测 0号键是否按下,按下转
JNB ACC.1,K1 ;检测 1号键是否按下,按下转第 5章 MCS–51单片机的接口与应用
JNB ACC.2,K2 ;检测 2号键是否按下,按下转
JNB ACC.3,K3 ;检测 3号键是否按下,按下转
JNB ACC.4,K4 ;检测 4号键是否按下,按下转
JNB ACC.5,K5 ;检测 5号键是否按下,按下转
JNB ACC.6,K6 ;检测 6号键是否按下,按下转
JNB ACC.7,K7 ;检测 7号键是否按下,按下转
JMP START ;无键按下返回,再顺次检测
K0,AJMP PROM0
K1,AJMP PROM1
K7,AJIMP PROM7;入口地址表…
第 5章 MCS–51单片机的接口与应用
PROM0,……………………… ; 0号键功能程序
………………………
JMP START ; 0号键功能程序执行完返回
PROM1,……………………… ; 0号键功能程序
………………………
JMP START ; 1号键功能程序执行完返回
……………………… ; 7号键功能程序
PROM7,………………………
JMP START ; 7号键功能程序执行完返回

第 5章 MCS–51单片机的接口与应用
5.1.4 行列式键盘行列式键盘又叫矩阵式键盘。用 I/O口线组成行、列结构,
按键设置在行列的交点上。例如 4× 4的行列结构可组成 16个键的键盘。因此,在按键数量较多时,可以节省 I/O口线。
1.行列式键盘的接口行列式键盘的接口方法有许多,例如直接接口于单片机的
I/O口上;利用扩展的并行 I/O接口;用串行口扩展并行 I/O口接口;利用一种可编程的键盘、显示接口芯片 8279进行接口等。
其中,利用扩展的并行 I/O接口方法方便灵活,在单片机应用系统中比较常用。
第 5章 MCS–51单片机的接口与应用图 5.6 8155扩展 I/O口组成的行列式键盘第 5章 MCS–51单片机的接口与应用
2.键盘工作原理按键设置在行、列线的交点上,行、列线分别连接到按键开关的两端。行线通过上拉电阻接 +5 V,被箝位在高电平状态。
对键盘的工作过程可分两步:第一步是 CPU首先检测键盘上是否有键按下;第二步是再识别是哪一个键按下。
检测键盘上有无键按下可采用查询工作方式、定时扫描工作方式和中断工作方式。
第 5章 MCS–51单片机的接口与应用
1) 查询工作方式键盘中有无键按下是由列线送入全扫描字,读入行线状态来判别的。其方法是,PA口输出 00H,即所有列线置成低电平,然后将行线电平状态读入累加器 A中。如果有键按下,总会有一根行线电平被拉至低电平,从而使行输入状态不全为 "1"。
键盘中哪一个键按下是由列线逐列置低电平后,检查行输入状态,称为逐列扫描。其方法是:从 PA0开始,依次输出 "0",置对应的列线为低电平,然后从 PC口读入行线状态,如果全为 "1",
则所按下之键不在此列;如果不全为 "1",则所按下的键必在此列,
而且是与 0电平行线相交的交点上的那个键。
为求取键码,在逐列扫描时,可用计数器记录下当前扫描列的列号,然后用行线值为 "0"的行首键码加列号的办法计算。
第 5章 MCS–51单片机的接口与应用有键按下否调用 6 ms延时子程序开 始调用 12 ms延时子程序有键按下否判断闭合键,键码入栈保 存闭合键释放否键码 → A
返 回
Y
Y
Y
N
N
N
图 5.7 键盘扫描子程序流程框图第 5章 MCS–51单片机的接口与应用键盘扫描子程序如下:
KEY1,ACALL KS1 ;调用判断有无键按下子程序
JNZ LK1 ;有键按下时,(A)≠ 0转消抖延时
AJMP KEY1 ;无键按下返回
LK1,ACALL TM12S ;调 12 ms延时子程序
ACALL KS1 ;查有无键按下,若有则真有键按下
JNZ LK2 ;键 (A)≠ 0逐列扫描
AJMP KEY1 ;不是真有键按下,返回
LK2; MOV R2,#0FEH ;初始列扫描字 (0列 )送入 R2
MOV R4,#00H ;初始列 (0列 )号送入 R4
第 5章 MCS–51单片机的接口与应用
LK4,MOV DPTR,#7F01H ; DPTR指向 8155PA口
MOV A,R2 ;列扫描字送至 8155PA口
MOVX @DPTR,A
INC DPTR ; DPTR指向 8155PC口
INC DPTR
MOVX A,@DPTR ;从 8155 PC口读入行状态
JB ACC.0,LONE ;查第 0行无键按下,转查第 1行
MOV A,#00H ;第 0行有键按下,行首键码 #00H→A
AJMP LKP ;转求键码
LONE,JB ACC.1,LTWO ;查第 1行无键按下,转查第 2行
MOV A,#08H ;第 1行有键按下,行首键码 #08H→A
AJMP LKP ;转求键码第 5章 MCS–51单片机的接口与应用
LTWO,JB ACC.2,LTHR ;查第 2行无键按下,转查第 3行
MOV A,#10H ;第 2行有键按下,行首键码 #10H→A
AJMP LKP ;转求键码
LTHR,JB ACC.3,NEXT ;查第 3行无键按下,转该查下一列
MOV A,#18H ;第 3行有键按下,行首键码 #18H→A
LKP,ADD A,R4 ;求键码,键码 =行首键码 +列号
PUSH ACC ;键码进栈保护
LK3,ACALL KS1 ;等待键释放
JNZ LK3 ;键未释放,等待
POP ACC ;键释放,键码 → A
RET ;键扫描结束,出口状态 (A)=键码第 5章 MCS–51单片机的接口与应用
NEXT,INC R4 ;准备扫描下一列,列号加 1
MOV A,R2 ;取列号送累加器 A
JNB ACC.7,KEND ;判断 8列扫描否?扫描完返回
RL A ;扫描字左移一位,变为下一列扫描字
MOV R2,A ;扫描字送入 R2
AJMP LK4 ;转下一列扫描
KEND,AJMP KEY1
KS1,MOV DPTR,#7F01H ; DPTR指向 8155PA口
MOV A,#00H ;全扫描字 → A
MOVX @DPTR,A ;全扫描字送往 8155PA口第 5章 MCS–51单片机的接口与应用
INC DPTR ; DPTR指向 8155PC口
INC DPTR
MOVX A,@DPTR ;读入 PC口行状态
CPL A ;变正逻辑,以高电平表示有键按下
ANL A,#0FH ;屏蔽高 4位,只保留低 4位行线值
RET ;出口状态,(A)≠0时有键按下
TM12ms,MOV R7,#18H ;延时 12 ms子程序
TM,MOV R6,#0FFH
TM6,DJNZ R6,TM6
DJNZ R7,TM
RET
第 5章 MCS–51单片机的接口与应用
2) 定时扫描工作方式键盘上有键闭合否开 始
KM=1
KP=1
返 回
1 → KM
0 → KM
0 → KP
图 5.8 定时扫描方式程序框图查询键码
1 → KP
N
N
N
Y
Y
Y
第 5章 MCS–51单片机的接口与应用
3) 中断工作方式计算机应用系统工作时,并不经常需要键输入。但无论是查询工作方式还是定时扫描工作方式,CPU经常处于空扫描状态。为了提高 CPU的效率,可采用中断工作方式。这种工作方式是当键盘上有键按下时,向 CPU发一个中断请求信号,CPU
响应中断后,在中断服务程序中扫描键盘,执行键功能程序。
中断请求信号的接口电路可参考图 5.5(a)。中断服务程序中应完成键识别、消除抖动、排除多次执行键功能操作等功能,可参考查询工作方式键盘程序。
第 5章 MCS–51单片机的接口与应用
5.2 显示及显示器接口
5.2.1 LED显示器结构与原理
图 5.9 七段显示块管脚与结构图第 5章 MCS–51单片机的接口与应用表 5.1 七段 LED的段选码
显示字符 共阴极段选码 共阳极段选码 显示字符 共阴极段选码 共阳极段选码
0 3FH C0H C 39H C6H
1 06H F9H D 5EH A1H
2 5BH A4H E 79H 86H
3 4FH B0H F 71H 8EH
4 66H 99H P 73H 8CH
5 6DH 92H U 3EH C1H
6 7DH 82H Γ 31H CEH
7 07H F8H y 6EH 91H
8 7FH 80H 8,FFH 00H
9 6FH 90H,灭” 00H FFH
A 77H 88H
B 7CH 83H
第 5章 MCS–51单片机的接口与应用
5.2.2 LED显示器与显示方式图 5.10 N位 LED显示器第 5章 MCS–51单片机的接口与应用
1,LED静态显示方式
LED工作在静态显示方式下,共阴极接地或共阳极接 +5 V;
每一位的段选线 (a~g,dp)与一个 8位并行 I/O口相连,如图 5.10
所示。该图表示了一个 4位静态 LED显示器电路,显示器的每一位可独立显示,只要在该位的段选线上保持段选码电平,该位就能保持相应的显示字符。由于每一位由一个 8位输出口控制段选码,故在同一时刻各位可以显示不同的字符。
N位静态显示器要求有 N× 8根 I/O口线,占用 I/O口线较多。
故在位数较多时往往采用动态显示方式。
第 5章 MCS–51单片机的接口与应用
2,LED动态显示方式图 5.11 8位 LED动态显示器电路第 5章 MCS–51单片机的接口与应用
5.2.3 LED显示器接口
1.硬件译码显示器接口地址译码和字段
R
O
M
阵列 b
c
d
e
f
g
h + i
a
V C R
2 9 0 Ω × 9
8
4
3
4
锁存器
5
A
6
B
9
C
10
D
7
LE
12
11
13
14
15
1
2
16
V
DD
V
SS
1
1
1
1
1
1
1
1
1
1
1
1
1
1
图 5.12 MC14495内部逻辑与引脚图第 5章 MCS–51单片机的接口与应用图 5.13 使用 MC14495的多位 LED静态显示接口第 5章 MCS–51单片机的接口与应用
2.软件译码显示器接口图 5.14 通过扩展 8155 I/O口控制的 8位 LED动态显示接口第 5章 MCS–51单片机的接口与应用
3.动态显示程序设计
DISPLAY,MOV A,#00000011B ; 8155初始化
MOV DPTR,#7F00H ;使 DPTR指向 8155控制寄存器端口
MOVX @DPTR,A
MOV R0,#78H ;动态显示初始化,使 R0指向缓冲区首址
MOV R3,#7FH ;首位位选字送 R3
MOV A,R3 ;
LD0,MOV DPTR,#7F01H ;使 DPTR指向 PA口
MOVX @DPTR,A ;选通显示器低位 (最右端一位 )
INC DPTR ;使 DPTR指向 PB口第 5章 MCS–51单片机的接口与应用
MOV A,@R0 ;读要显示数
ADD A,#0DH ;调整距段选码表首的偏移量
MOVC A,@A+PC ;查表取得段选码
MOVX @DPTR,A ;段选码从 PB口输出
ACALL DL1 ;调用 1 ms延时子程序
INC R0 ;指向缓冲区下一单元
MOV A,R3 ;位选码送累加器 A
JNB ACC.0,LD1 ;判断 8位是否显示完毕,显示完返回
RR A ;未显示完,把位选字变为下一位选字
MOV R3,A ;修改后的位选字送 R3
AJMP LD0 ;循环实现按位序依次显示第 5章 MCS–51单片机的接口与应用
LD1,RET
DSEG,DB 3FH,06H,5BH; 4FH,66H,6DH,7DH ;段码表
DB 07H,7FH,6FH,77H,7CH,39H,5EH,79H
DL1,MOV R7,#02H ;延时子程序
DL,MOV R6,#0FFH
DL0,DJNZ R6,DL6
DJNZ R7,DL
RET
第 5章 MCS–51单片机的接口与应用
5.2.4 键盘、显示器组合接口
1.键盘、显示器组合接口电路图 5.15是一个采用 8155并行扩展口构成的键盘、显示器组合接口电路。图中设置了 32个键。如果多使用 PC口线,可以增加按键,最多可达 8× 8=64个键。可根据需要进行设置。
LED显示器采用共阴极。段选码由 8155 PB口提供,位选码由 PA口提供。键盘的列输入由 PA口提供,与显示器的位选输入公用,行输入由 PC0~PC3提供。显然,因为键盘与显示器公用了 PA口,比单独接口节省了一个 I/O口。
第 5章 MCS–51单片机的接口与应用图 5.15 8155扩展 I/O口的键盘、显示器组合接口第 5章 MCS–51单片机的接口与应用
2.软件设计
LED采用动态显示、软件译码,键盘采用逐列扫描查询工作方式。由于键盘与显示做成一个接口电路,因此在软件中合并考虑键盘查询与动态显示,键盘消抖的延时子程序可用显示子程序替代。
相应的程序如下:
KD1,MOV A,#03H ;初始化 8155PA,PB口为基本输出,PC口为输入
MOV DPTR,#7F00H
MOVX @DPTR,A
第 5章 MCS–51单片机的接口与应用
KEY1,ACALL KS1
JNZ LK1
ACALL DISPLAY ;调用显示子程序实现延时,防止抖动引起按键拒认
AJMP KEY1 ;延时后再检测键盘
LK1,ACALL DISPLAY ;调用两次显示实现延时,防止抖动引起误处理
ACALL DISPLAY
ACALL KS1
JNZ LK2
ACALL DISPLAY
AJMP KEY1
第 5章 MCS–51单片机的接口与应用
LK2,MOV R2,#0FEH
MOV R4,#00H
LK4,MOV DPTR,#7F01H
MOV A,R2
MOVX @DPTR,A
INC DPTR
INC DPTR
MOVX A,@DPTR
JB ACC.0,LONE
MOV A,#00H
AJMP LKP
第 5章 MCS–51单片机的接口与应用
LONE,JB ACC.1,LTWO
MOV A,#08H
AJMP LKP
LTWO,JB ACC.2,LTHR
MOV A,#10H
AJMP LKP
LHR,JB ACC.3,NEXT
MOV A,#18H
LKP,ADD A,R4
PUSH ACC
第 5章 MCS–51单片机的接口与应用
LK3,ACALL DISPLAY
ACALL KS1
JNZ LK3
POP ACC
RET
NEXT,INC R4
MOV A,R2
JNB ACC.7,KEND
RL A
MOV R2,A
AJMP LK4
KEND,AJMP KEY1
第 5章 MCS–51单片机的接口与应用
KS1,MOV DPTR,#7F01H
MOV A,#00H
MOVX @DPTR,A
INC DPTR
INC DPTR
MOVX A,@DPTR
CPL A
ANL A,#0FH
RET
DISPLAY:见 5.2.3节 8155扩展动态扫描子程序。
第 5章 MCS–51单片机的接口与应用
5.3 A/D转换器接口
5.3.1 A/D转换器概述在设计 A/D转换器与单片机接口之前,往往要根据 A/D转换器的技术指标选择 A/D转换器。为此,先介绍一下 A/D转换器的主要技术指标。
量化间隔和量化误差是 A/D转换器的主要技术指标之一。量化间隔可用下式表示。
其中 n为 A/D转换器的位数。
nn 212
满量程输入电压满量程输入电压?

第 5章 MCS–51单片机的接口与应用量化误差有两种表示方法:一种是绝对误差,另一种是相对误差。
22
量化间隔绝对误差
%1002 1 1n相对误差
A/D转换器芯片种类很多,按其转换原理可分为逐次比较式、双重积分式、量化反馈式和并行式 A/D转换器;按其分辨率可分为 8~16位的 A/D转换器芯片。目前最常用的是逐次逼近式和双重积分式。
第 5章 MCS–51单片机的接口与应用逐次逼近式转换器的常用产品有 ADC0801~ADC0805型 8位
MOS型 A/D转换器,ADC0808/0809型 8位 MOS型 A/D转换器、
ADC0816/0817型 8位 MOS型 A/D转换器,AD574型快速 12位 A/D
转换器。
双重积分式转换器的常用产品有 ICL7106/ICL7107/ICL7126、
MC14433/5G14433,ICL7135等。
A/D转换器与单片机接口具有硬、软件相依性。一般来说,
A/D转换器与单片机的接口主要考虑的是数字量输出线的连接、
ADC启动方式、转换结束信号处理方法以及时钟的连接等。
第 5章 MCS–51单片机的接口与应用
A/D转换器数字量输出线与单片机的连接方法与其内部结构有关。对于内部带有三态锁存数据输出缓冲器的 ADC(如 ADC0809、
AD574等 ),可直接与单片机相连。对于内部不带锁存器 ADC,一般通过锁存器或并行 I/O接口与单片机相连。在某些情况下,为了增强控制功能,那些带有三态锁存数据输出缓冲器的 ADC也常采用 I/O接口连接。还有,随着位数的不同,ADC与单片机的连接方法也不同。对于 8位 ADC,其数字输出线可与 8位单片机数据线对应相接。对于 8位以上的 ADC,与 8位单片机相接就不那么简单了,
此时必须增加读取控制逻辑,把 8位以上的数据分两次或多次读取。
为了便于连接,一些 ADC产品内部已带有读取控制逻辑,而对于内部不包含读取控制逻辑的 ADC,在和 8位单片机连接时,应增设三态缓冲器对转换后的数据进行锁存。
第 5章 MCS–51单片机的接口与应用一个 ADC开始转换时,必须加一个启动转换信号,这一启动信号要由单片机提供。不同型号的 ADC,对于启动转换信号的要求也不同,一般分为脉冲启动和电平启动两种。对于脉冲启动型
ADC,只要给其启动控制端上加一个符合要求的脉冲信号即可,
如 ADC0809,ADC574等。通常用 WR和地址译码器的输出经一定的逻辑电路进行控制。对于电平启动型 ADC,当把符合要求的电平加到启动控制端上时,立即开始转换。在转换过程中,必须保持这一电平,否则会终止转换的进行。因此,在这种启动方式下,单片机的控制信号必须经过锁存器保持一段时间,一般采用
D触发器、锁存器或并行 I/O接口等来实现。 AD570,AD571等都属于电平启动型 ADC。
第 5章 MCS–51单片机的接口与应用当 ADC转换结束时,ADC输出一个转换结束标志信号,通知单片机读取转换结果。单片机检查判断 A/D转换结束的方法一般有中断和查询两种。对于中断方式,可将转换结束标志信号接到单片机的中断请求输入线上或允许中断的 I/O接口的相应引脚,作为中断请求信号;对于查询方式,可把转换结束标志信号经三态门送到单片机的某一位 I/O口线上,作为查询状态信号。
A/D转换器的另一个重要连接信号是时钟,其频率是决定芯片转换速度的基准。整个 A/D转换过程都是在时钟的作用下完成的。 A/D转换时钟的提供方法有两种:一种是由芯片内部提供 (如
AD574),一般不许外加电路;另一种是由外部提供,有的用单独的振荡电路产生,更多的则把单片机输出时钟经分频后,送到
A/D转换器的相应时钟端。
第 5章 MCS–51单片机的接口与应用5.3.2 A/D转换器 ADC0809与单片机的接口
1,ADC0809芯片简介图 5.16 ADC0809芯片的内部逻辑结构与引脚图第 5章 MCS–51单片机的接口与应用表 5.2 ADC0809通道地址选择表
ADDC ADDB ADDA 选通的通道
0 0 0 IN0
0 0 1 IN1
0 1 0 IN2
0 1 1 IN3
1 0 0 IN4
1 0 1 IN5
1 1 0 IN6
1 1 1 IN7
第 5章 MCS–51单片机的接口与应用图 5.17 ADC0809转换工作时序第 5章 MCS–51单片机的接口与应用
2,ADC0809与单片机接口图 5.18 ADC0809与 8031的接口连接图第 5章 MCS–51单片机的接口与应用
3,A/D转换应用程序举例设图 5.18接口电路用于一个 8路模拟量输入的巡回检测系统,
使用中断方式采样数据,把采样转换所得的数字量按序存于片内 RAM的 30H~37H单元中。采样完一遍后停止采集。
其数据采集的初始化程序和中断服务程序如下:
初始化程序:
MOV R0,#30H ;设立数据存储区指针
MOV R2,#08H ;设置 8路采样计数值
SETB IT0 ;设置外部中断 0为边沿触发方式
SETB EA ; CPU开放中断第 5章 MCS–51单片机的接口与应用
SETB EX0 ;允许外部中断 0中断
MOV DPTR,#FEF8H ;送入口地址并指向 IN0
LOOP,MOVX @DPTR,A ;启动 A/D转换,A的值无意义
HERE,SJMP HERE ;等待中断中断服务程序:
MOVX A,@DPTR ;读取转换后的数字量
MOV @R0,A ;存入片内 RAM单元
INC DPTR ;指向下一模拟通道
INC R0 ;指向下一个数据存储单元
DJNZ R2,INT0 ; 8路未转换完,则继续
CLR EA ;已转换完,则关中断
CLR EX0 ;禁止外部中断 0中断
RETI ;中断返回
INT0,MOVX @DPTR,A ;再次启动 A/D转换
RETI ;中断返回第 5章 MCS–51单片机的接口与应用
5.3.3 单片机与 A/D转换器 AD574的接口
1,AD574芯片简介
AD574是一种快速的 12位逐次比较式 A/D转换芯片,片内有两片双极型电路组成的 28脚双插直列式芯片,无需外接元器件就可独立完成 A/D转换功能。内部设有三态数据输出锁存器。
一次转换时间为 25 μs。芯片引脚如图 5.19所示。
第 5章 MCS–51单片机的接口与应用图 5.19 AD574的引脚图第 5章 MCS–51单片机的接口与应用
AD574的引脚定义如下:
REOUT:内部参考电源输出 (+10 V);
REFIN:参考电压输入;
BIP:偏置电压输入;
10VIN,± 5 V或 0~10 V模拟输入;
20VIN,± 10 V或 0~20 V模拟输入;
DB0~DB11数字量输出,高半字节为 DB8~DB11,低字节为 DB0~DB7;
第 5章 MCS–51单片机的接口与应用
STS:工作状态指示端。 STS=1时表示转换器正处于转换状态,
STS返回到低电平时,表示转换完毕。该信号可处理器作为中断或查询信号用;
12/-8:变换输出字长选择控制端,在输入为高电平时,变换字长输出为 12位,在低电平时,按 8位输出;
CS,CE:片选信号。当 CS=0,CE=1同时满足时,AD574才能处于工作状态。
R/C:数据读出和数据转换启动控制;
A0:字节地址控制。它有两个作用,在启动 AD574(R/C=0)时,
用来控制转换长度。 A=0时,按完整的 12位 A/D转换方式工作,
A=1时,则按 8位 A/D 转换方式工作。在 AD574处于数据读出工作状态 (R/-C=1)时,A0和 12/8成为输出数据格式控制。
第 5章 MCS–51单片机的接口与应用表 5.3 AD574控制信号状态表
CE CS R/ C 12/ 8 A0 功能说明
1 0 0 × 0 12位转换
1 0 0 × 1 8位转换
1 0 1 +5V × 12位输出
1 0 1 地 0 高 8位输出
1 0 1 地 1 低 4位输出第 5章 MCS–51单片机的接口与应用
2,AD574模拟输入电路的极性选择图 5.20 AD574的模拟输入电路
(a) 单极性输入; (b) 双极性输入第 5章 MCS–51单片机的接口与应用
3,AD574与 MCS-51单片机的接口图 5.21 AD574与 MCS–51单片机接口电路第 5章 MCS–51单片机的接口与应用
4.转换程序设计举例设要求 AD574进行 12位转换,单片机对转换结果读入,高 8
位和低 4位分别存于片内 RAM的 31H和 30H单元,其转换子程序如下,
ADTRANS,MOV R0,#7CH ; 7CH地址使 AD574的 CS=0,A0=0,R/C=0
MOV R1,#31H ; R1指向转换结果的送存单元地址
MOVX @R0,A ;产生有效的 WR信号,启动 AD574为
12位工作方式
MOV A,P1 ;读 P1口,检测 STS的状态第 5章 MCS–51单片机的接口与应用
WAIT,ANL A,#01H
JNZ WAIT ;转换未结束,等待,转换结束则进行如下操作
INC R0 ;使 CS=0,A0=0,R/C=1,为按双字节读取转换结果,并读高;字节
MOVX A,@R0 ;读取高 8位转换结果
MOV @R1,A ;送存高 8位转换结果
DEC R1 ; R1指向低 4位转换结果存放单元地址
INC R0
INC R0 ; (R0)=7FH,使 CS=0,A0=1,R/C=1,为读低字节
MOVX A,@R0 ;读取低 4位转换结果
ANL A,#0FH ;只取低 4位结果
MOV @R1,A ;送存低 4位结果
RET
第 5章 MCS–51单片机的接口与应用
5.4 D/A转换器接口
5.4.1 D/A 转换器概述在设计 D/A转换器与单片机接口之前,一般要根据 D/A转换器的技术指标选择 D/A转换器芯片。
(1) 分辨率。分辨率是 D/A转换器对输入量变化敏感程度的描述。 D/A转换器的分辨率定义为:当输入数字量发生单位数码变化时,即 LSB位产生一次变化时所对应输出模拟量的变化量。对于线性 D/A转换器来说,其分辨率 Δ与输入数字量输出的位数 n呈现下列关系
n2
模拟量输出的满量程值
第 5章 MCS–51单片机的接口与应用
(2) 建立时间。建立时间是描述 D/A转换速率快慢的一个重要参数。一般所指的建立时间是输入数字量变化后,模拟输出量达到终值误差 ± LSB/2(最低有效位 )时所经历的时间。根据建立时间的长短,把 D/A转换器分成以下几挡:
超高速 < 100 ns
较高速 100 ns~1 μs
高 速 1~10 μs
中 速 10~100 μs
低 速 ≥100 μs
第 5章 MCS–51单片机的接口与应用
(1) DAC0830系列。 DAC0830系列是美国 National
Semiconductor公司生产的具有两个数据寄存器的 8位 D/A转换芯片。该系列产品包括 DAC0830,DAC0831,DAC0832,管脚完全相容为 20脚双插直列式封装。
(2) DAC82。 DAC82是 B-B公司生产的 8位能完全与微处理器兼容的 D/A转换器芯片,片内带有基准电压和调节电阻。无需外接器件及微调即可与单片机 8位数据线相连。芯片工作电压为 ± 15 V,可以直接输出单极性或双极性的电压 (0~+10 V,
± 10 V)和电流 (0~1.6 mA,± 0.8 mA)。
第 5章 MCS–51单片机的接口与应用
(3) DAC1020/AD7520和 DAC1220/AD7521系列。
DAC1020/AD7520为 10位分辨率的 D/A转换集成系列芯片。
DAC1020系列是美国 National Semiconductor公司的产品,包括
DAC1020,DAC1021,DAC1022,与美国 Analog Devices公司的 AD7520及其后继产品 AD7530,AD7533完全兼容。单电源工作,电源电压为 +5~+15 V,电流建立时间为 500 ns,为 16线双插直列式封装。与美国 Analog Devices公司的 AD7520及其后继产品
AD7530,AD7533完全兼容。单电源工作,电源电压为 +5~+15
V,电流建立时间为 500 ns,为 16线双插直列式封装。
第 5章 MCS–51单片机的接口与应用
(4) DAC1220/AD7521系列。 DAC1220/AD7521系列为 12位分辨率的 D/A转换集成芯片。 DAC1220系列包括 DAC1220,
DAC1221,DAC1222产品,与 AD7521及其后继产品 AD7531管脚完全兼容,为 18线双插直列式封装。
(5) DAC1208和 DAC1230系列。 DAC1208和 DAC1230系列均为美国 National Semiconductor公司的 12位分辨率产品。两者不同之处是 DAC1230数据输入引脚线只有 8根,而 DAC1208有 12根。
DAC1208系列为 24线双插直列式封装,而 DAC1230系列为 20线双插直列式封装。 DAC1208系列包括 DAC1208,DAC1209、
DAC1210等,DAC1230系列包括 DAC1230,DAC1231、
DAC1232等。
第 5章 MCS–51单片机的接口与应用
(6) DAC708/709。 DAC708/709是 B-B公司生产的 16位微机完全兼容的 D/A转换器芯片,具有双缓冲输入寄存器,片内有基准电源及电压输出放大器。数字量可并行或串行输入,模拟量可以电压或电流输出。
D/A转换器与单片机接口也具有硬、软件相依性。各种 A/D
转换器与单片机接口的方法有些差异,但就其基本连接方法,
还是有共同之处:都要考虑到数据线、地址线和控制线的连接。
第 5章 MCS–51单片机的接口与应用就数据线来说,D/A转换器与单片机的接口要考虑到两个问题:一是位数,当高于 8位的 D/A转换器与 8位数据总线的
MCS-51单片机接口时,MCS-51单片机的数据必须分时输出,
这时必须考虑数据分时传送的格式和输出电压的 "毛刺 "问题;
二是 D/A转换器的内部结构,当 D/A转换器内部没有输入锁存器时,必须在单片机与 D/A转换器之间增设锁存器或 I/O接口。
最常用、也是最简单的连接是 8位带锁存器的 D/A转换器和 8位单片机的接口,这时只要将单片机的数据总线直接和 D/A转换器的 8位数据输入端一一对应连接即可。
第 5章 MCS–51单片机的接口与应用就地址线来说,一般的 D/A转换器只有片选信号,而没有地址线。这时单片机的地址线采用全译码或部分译码,经译码器的输出控制片选信号,也可由某一位 I/O线来控制片选信号。也有少数 D/A转换器有少量的地址线,用于选中片内独立的寄存器或选择输出通道 (对于多通道 D/A转换器 ),这时单片机的地址线与 D/A转换器的地址线对应连接。
就控制线来说,D/A转换器主要有片选信号、写信号及启动转换信号等,一般由单片机的有关引脚或译码器提供。一般来说,写信号多由单片机的 ---WR信号控制;启动信号常为片选信号和写信号的合成。
第 5章 MCS–51单片机的接口与应用5.4.2 8位 D/A转换器与单片机的接口
1,DAC0830/DAC0831/ DAC0832的结构与引脚功能图 5.22 DAC0830系列结构框图第 5章 MCS–51单片机的接口与应用
2,DAC0830系列 D/A转换器与单片机接口图 5.23 单路 DAC0830/DAC0831/DAC0832与单片机接口逻辑图第 5章 MCS–51单片机的接口与应用设分配给 DAC0830/DAC0831/ DAC0832的地址为
7FFFH(P2.7=0),则执行下列三条指令就可以将一个数字量转换为模拟量:
MOV DPTR,#7FFFH ;端口地址送 DPTR
MOV A,#DATA ; 8位数字量送累加器
MOVX @DPTR,A ;向锁存器写入数字量,同时启动转换第 5章 MCS–51单片机的接口与应用图 5.24 单路 DAC0830/DAC0831/DAC0832控制时序第 5章 MCS–51单片机的接口与应用下面的程序可使 DAC0830/DAC0831/ DAC0832输出呈渐升骤降的电压锯齿波。
START,MOV DPTR,#7FFFH
MOV A,#00
LOOP,MOVX @DPTR,A
INC A
MOV R0,#data ; data为延时常数
DJNZ R0,$ ;延时,改变 data可改变锯齿波周期 T值
SJMP LOOP o
第 5章 MCS–51单片机的接口与应用图 5.25 由软件产生的锯齿波第 5章 MCS–51单片机的接口与应用图 5.26 两路 DAC0830/DAC0831/DAC0832与单片机接口逻辑图第 5章 MCS–51单片机的接口与应用如果图 5.26中的模拟输出分别用于示波器的 X,Y偏转,则
MCS-51执行下面的程序后,可使示波器上的光点根据参数 X,Y
的值同步移动。
MOV DPTR,#0DFFFH
MOV A,#X
MOVX @DPTR,A ;将参数 X写入 DAC(1)的数据输入锁存器
MOV DPTR,#0BFFFH
MOV A,#Y
MOVX @DPTR,A ;将参数 Y写入 DAC(1)的数据输入锁存器
MOV DPTR,#7FFFH
MOVX @DPTR,A ;两片 DAC同时启动转换,同步输出
SJMP $
第 5章 MCS–51单片机的接口与应用
3,DAC0830/DAC0831/DAC0832的模拟输出方式
DAC0830/DAC0831/DAC0832属于电流输出型的 D/A转换器,
其转换结果是与输入数字量成正比的电流。这种形式的输出不能直接带动负载,需经运算放大器放大并转换成电压输出。电压输出又根据不同的场合,需要单极性电压输出和双极性电压输出。
图 5.22、图 5.25所示的接口电路是单极性电压输出,运放的输出电压为
R E FO U T V
DV
82
其中,D为用十进制表示的数字输入量。
第 5章 MCS–51单片机的接口与应用例如,设 VREF =-5 V,当 D=FFH=255时,
VV OUT 98.4)5(2 5 62 5 5
这是最大的输出电压。
若 D=01H=1时,这是最低位 LSB对应的输出电压。运放的输出电压与参考电压 VREF是反极性。
VV OUT 02.0)5(2 5 61
第 5章 MCS–51单片机的接口与应用第 5章 MCS–51单片机的接口与应用根据运放的理想情况,运放 A2的反向输入端 "虚地 ",且 I1+I2=0,

,
3
2
2
1 R
V
R
VI OUTREF
1
1
2 R
VI OUT?
如果选择 R2=R3=2R1,则可以得到
VOUT2=–(2VOUT1+VREF)
设 VREF=+5 V,当 VOUT1=0 V时,VOUT2=5 V; VOUT1=–2.5 V时,
VOUT2=0 V; VOUT1=–5 V时,VOUT2=5 V。 可见,VOUT2将 VOUT1输出电压范围 0~5 V转换成双极性电压范围 –5~+5 V。 因第 5章 MCS–51单片机的接口与应用
R E F8O U T V2
DV
所以
R E FR E FR E F V1 2 8
1 2 8D)V2V
2 5 6
D(V
第 5章 MCS–51单片机的接口与应用
5.4.3 高于 8位 D/A转换器与单片机的接口在微机控制系统中,为了提高精度需要采用 10位,12位、
14位,甚至更高位数的 D/A转换器芯片。高于 8位的 D/A转换器芯片与 8位单片机接口,被转换的数据至少要分两次送出。这需要解决两个问题:一是分时传送的数据格式,二是数据不同时传送可能引起的输出模拟量而出现 "毛刺 "。后一问题可通过
D/A转换芯片内部或外部增加锁存器,达到两级缓冲,使被转换数据完整进入二级缓冲器,开始转换。
第 5章 MCS–51单片机的接口与应用图 5.28 8位系统的 12位数据格式
(a) 左对齐格式; (b) 右对齐格式第 5章 MCS–51单片机的接口与应用
1,DAC1208系列的结构与引脚功能表 5.4 DAC1208系列精度精 度 型 号
0.012% DAC1208
0.024% DAC1209
0.05% DAC1210
第 5章 MCS–51单片机的接口与应用图 5.29 DAC0830系列结构框图第 5章 MCS–51单片机的接口与应用
2,DAC1208系列 D/A转换器与 MCS-51单片机的接口图 5.30 DAC1208系列与单片机接口逻辑图第 5章 MCS–51单片机的接口与应用
D/A转换程序如下:
MOV DPTR,#4001H ;使 DPTR指向 8位输入锁存器
MOV R1,#DIGIT ;使 R1指向 12位数的高 8位单元
MOV A,@R1 ;取高 8位转换数据
MOVX @DPTR,A ;向 DAC1208送高 8位数据
DEC DPTR ;使 DPTR指向 4位输入锁存器
INC R1 ;使 R1指向 12位数的低 4位单元
MOV A,@R1 ;取低 4位转换数据
SWAP A
MOVX @DPTR,A ;再向 DAC1208送低 4位数据
MOV DPTR,#6000H ;使 DPTR指向 DAC锁存器
MOVX @DPTR,A ;完成 12位 D/A转换第 5章 MCS–51单片机的接口与应用
5.5 行程开关、晶闸管、继电器与单片机的接口
5.5.1 光电耦合器件光电耦合器件是由发光二极管 (发光源 )与受光源 (如光敏三极管、光敏晶闸管或光敏集成电路等 )封装在一起,构成电-光
-电转换器件。根据受光源结构的不同,可以将光电耦合器件分为晶体管输出的光电耦合器件和晶闸管输出的光电耦合器件两大类。
晶体管输出的光电耦合器件的内部结构如图 5.31所示。
第 5章 MCS–51单片机的接口与应用图 5.31 晶体管光耦器件结构图第 5章 MCS–51单片机的接口与应用图 5.32 晶闸管输出光耦内部结构第 5章 MCS–51单片机的接口与应用
5.5.2 行程开关、继电器触点与单片机的接口图 5.33 开关、触点状态输入接口第 5章 MCS–51单片机的接口与应用
5.5.3 晶闸管元件与单片机接口图 5.34 光耦晶闸管与单片机接口示例第 5章 MCS–51单片机的接口与应用为了避免误触发,在 MOC304第 4引脚和外部大功率双向可控硅阴极之间增加了泄放电阻 R3。 R2是 MOC3041导通的限流电阻,避免因电流过大引起 MOC3041过流而损坏。
当单片机 P1.1引脚输出低电平时,MOC3041内部的发光二极管导通,由于 MOC3041内部带有过零触发电路,交流电压过零后将触发内部的双向可控硅而导通,结果外部大功率双向晶闸管导通,从而接通交流负载。
第 5章 MCS–51单片机的接口与应用
5.5.4 继电器与单片机接口图 5.35 继电器与单片机接口示例
(a) 驱动微型继电器; (b) 驱动较大功率继电器第 5章 MCS–51单片机的接口与应用当 P1.0输出低电平时,V1导通,继电器吸合;当 P1.0输出高电平时,V1截止,继电器不吸合。在继电器吸合到断开的瞬间,由于线圈中的电流不能突变,将在线圈产生下正上负的感应电压,使晶体管集电极承受很高电压,有可能损坏驱动管 V1,
为此在继电器线圈两端并接一个续流二极管 VD2,使线圈两端的感应电压被箝位在 0.7 V左右。正常工作时,线圈上的电压上正下负,二极管 VD2截止,对电路没有影响。当继电器驱动电压 VCC大于 5 V时,VCC电压可能通过三极管 V1串入低压回路,
为此在 7406和 V1之间加二极管 VD2。