第 8 章应用系统配置及接口技术

70
第8第 第第第 第第第第第第第

Upload: vita

Post on 16-Jan-2016

138 views

Category:

Documents


0 download

DESCRIPTION

第 8 章应用系统配置及接口技术. 前向、后向、人机通道系统框图. 8.1.1 键盘接口及处理程序. 8.1 人 - 机通道配置与接口技术. 编码键盘 : 键盘上闭合键的识别由专用的硬件译码器实现 , 并产生键编号或键值. 非编码键盘 : 靠软件识别的键盘. * 用得多的是非编码键盘. 按键特性. 硬件去抖动和软件去抖动. 硬件方法:利用 RS 触发器,用于键较少的场合。. 软件方法: (用于键较多的场合。) 检测有键闭合,延时 10ms~20ms 左右,再检测,仍保持闭合,则确认为有键按下。. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第 8 章应用系统配置及接口技术

第 8 章 应用系统配置及接口技术

Page 2: 第 8 章应用系统配置及接口技术

前向、后向、人机通道系统框图

Page 3: 第 8 章应用系统配置及接口技术

8.1 人 - 机通道配置与接口技术 8.1.1 键盘接口及处理程序

编码键盘 : 键盘上闭合键的识别由专用的硬件译码器实现 , 并产生键编号或键值

非编码键盘 : 靠软件识别的键盘

* 用得多的是非编码键盘

Page 4: 第 8 章应用系统配置及接口技术

按键特性

Page 5: 第 8 章应用系统配置及接口技术

硬件去抖动和软件去抖动

软件方法: (用于键较多的场合。) 检测有键闭合,延时 10ms~20ms 左右,再检测,仍保持闭合,则确认为有键按下。

硬件方法:利用 RS 触发器,用于键较少的场合。

Page 6: 第 8 章应用系统配置及接口技术

一、键盘结构1 、独立式非编码键盘接口及处理程序

Page 7: 第 8 章应用系统配置及接口技术

程序: MOV A,#0FFH

MOV P1,A

MOV A,P1 ;键状态输入JNB ACC.0,P0F ; 0 号键按下转JNB ACC.1,P1F

JNB ACC.2,P2F

JNB ACC.3,P3F

JNB ACC.4,P4F

JNB ACC.5,P5F

JNB ACC.6,P6F

JNB ACC.7,P7F

LJMP START ;无键按下返回P0F: LJMP PROG0

P1F: LJMP PROG1

……..

PROG0: ……

LJMP START

PROG1: ……

Page 8: 第 8 章应用系统配置及接口技术

2 、行列式键盘接口及工作原理

识别键的两种方法: 行(或列)扫描法 线反转法

例:右图(列扫法)向列线输出全 0 ,读入行线电平,若有键按下,再逐列扫描,获得相应键键值

Page 9: 第 8 章应用系统配置及接口技术

二、单片机对非编码键盘扫描的控制方式

常用行列矩阵式非编码键盘的控制有三种方式:1 、程序控制扫描方式,即查询方式。2 、定时扫描方式。

3 、中断扫描方式。参见 P148 图 8-10

应用举例:程序控制扫描方式及处理程序,硬件连接

图如下。

Page 10: 第 8 章应用系统配置及接口技术
Page 11: 第 8 章应用系统配置及接口技术

32 个键对应键值如下: (按 PA,PC 口二进制码, 为任意值)

FEE FDE FBE E7E EFE DFE BFE 7FE

FED FDD FBD E7D EFD DFD BFD 7FD

FEB FDB FBB E7B EFB DFB BFB 7FB

FE7 FD7 FB7 E77 EF7 DF7 BF7 7F7

键值到键号的转换:

闭合的键号 = 行首键号 + 列号

Page 12: 第 8 章应用系统配置及接口技术

键盘扫描子程出口: ( A ) = 键号对 8155 的初始化在主程序中完成,设 PA 为基本输出,

PC 为基本输入。

Page 13: 第 8 章应用系统配置及接口技术

KEY1: ACALL IfPressKey ;判断有无键按下JNZ KeyDebouce ;有 ,(A)0AJMP KEY1

KeyDebouce : ACALL T12MS ; delay 12msACALL IfPressKey ; 再判断JNZ ScanKeypad ; 有,逐列扫描键盘AJMP KEY1

Scankeypad:MOV R2,#0FEH ;首列扫描字MOV R4,#00H ;首列号

LK4: MOV DPTR,#7F01H ; PA 口地址MOV A,R2MOVX @DPTR,A ;列扫INC DPTRINC DPTR ; PC 口地址MOVX A,@DPTR ;读入行JB ACC.0,LONE ; 第 0 行无键按下转MOV A,#00H ;行首键号AJMP LKP ; 转求键号

Page 14: 第 8 章应用系统配置及接口技术

LONE: JB ACC.1,LTWOMOV A,#08HAJMP LKP

LTWO: JB ACC.2,LTHRMOV A,#10HAJMP LKP

LTHR: JB ACC.3,NEXTMOV A,#18H

LKP: ADD A,R4 ;行首键号+列号PUSH ACC

LK3: ACALL IfPressKey ;等待键释放JNZ LK3POP ACC ; 键号送 ARET

NEXT: INC R4 ; 指向下一列MOV A,R2 ; 判断 8 列扫描完否?JNB ACC.7,KND ; 完,返回

Page 15: 第 8 章应用系统配置及接口技术

RL A ;否则变为下列扫描字

MOV R2,AAJMP LK4 ;转下列扫描

KND: AJMP KEY1IfPressKey : MOV DPTR,#7F01H ; PA 口地址

MOV A,#00H ;送全扫描字MOVX @DPTR,AINC DPTRINC DPTRMOVX A,@DPTRCPL AANL A,#0FHRET

T12MS: MOV R7,#18H ; 12ms 延时子程TM: MOV R6,#0FFHTM6: DJNZ R6,TM6

DJNZ R7,TMRET

Page 16: 第 8 章应用系统配置及接口技术

三、键操作及功能处理

MOV DPTR,#JMPTAB

CLR C

RLC A

JMP @DPTR+A

JMPTAB: AJMP AAA

AJMP BBB

AJMP CCC

…….

Page 17: 第 8 章应用系统配置及接口技术

8.1.2 LED 显示器接口及显示程序一、 LED 显示器结构原理

Page 18: 第 8 章应用系统配置及接口技术

二、 LED 显示器接口及显示方式LED 有静态(占较多 I/O 口线)和动态(需不断扫描)

两种显示方式。

Page 19: 第 8 章应用系统配置及接口技术

三、 LED 显示器与 8155 接口及显示子程序

Page 20: 第 8 章应用系统配置及接口技术

动态显示:扫描每位 LED 的间隔不能超过 20ms, 并注意保持延时一段时间。

Page 21: 第 8 章应用系统配置及接口技术

DIS: MOV R0,#7EH ;显示缓冲区

MOV R2,#01H ;位码MOV A,R2

LP0: MOV DPTR,#7F01HMOVX @DPTR,AINC DPTRMOV A,@R0ADD A,#0DHMOVC A,@A+PC ;段码 MOVX @DPTR,AACALL D1MSDEC R0MOV A,R2JB ACC.5,LP1RL AMOV R2,AAJMP LP0

LP1: RET

DB

3FH,06H,5BH,4FH,66H,6DH

DB

7DH,07H,7FH,6FH,77H,7CH

DB 39H,5EH,79H,71H,40H,00H

D1MS: MOV R7,#02H

DL: DJNZ R6,DL1

DL1: DJNZ R7,DL

RET

Page 22: 第 8 章应用系统配置及接口技术

8.1.3 键盘 /LED 显示器与 8155 接口及键盘扫描子程序

Page 23: 第 8 章应用系统配置及接口技术

KD1: MOV A,#00000011B ;PA,PB 为输出方式, PC 为输入方式MOV DPTR,#7F00HMOVX @DPTR,A

KEY1: ACALL IfPressKey JNZ LK1ACALL DIS ; 调用显示子程AJMP KEY1

LK1: ACALL DIS ;调用显示子程并 delay 12msACALL DIS ACALL IfPressKey ; 逐行扫描键盘JNZ ScanKeypad JNZ DISAJMP KEY1

Scankeypad:MOV R2,#0FEHMOV R4,#00H

LK4: MOV DPTR,#7F01HMOV A,R2MOVX @DPTR,AINC DPTRINC DPTRMOVX A,@DPTRJB ACC.0,LONEMOV A,#00HAJMP LKP

LONE: JB ACC.1,LTWO

MOV A,#08H

AJMP LKP

Page 24: 第 8 章应用系统配置及接口技术

LKP: ADD A,R4 ;行首键号+列号PUSH ACC

LK3: ACALL IfPressKey ;等待键释放JNZ LK3

POP ACC

RET

NEXT: INC R4

MOV A,R2

JNB ACC.7,KND

RL A

MOV R2,A

AJMP LK4

KND: AJMP KEY1

IfPressKey:MOV DPTR,#7F01H

MOV A,#00H

MOVX @DPTR,A

INC DPTR

INC DPTR

MOVX A,@DPTR

CPL A

ANL A,#0FH

RET

LTWO: JB ACC.2,LTHR

MOV A,#10H

AJMP LKP

LTHR: JB ACC.3,NEXT

MOV A,#18H

Page 25: 第 8 章应用系统配置及接口技术

8.1.4 串行口控制的键盘 /LED 显示器接口电路

Page 26: 第 8 章应用系统配置及接口技术

KEY: MOV A,#00HMOV SBUF,A

KL0: JNZ TI,KL0CLR TI

KL1: JNB P1.0,PK1JB P1.1,KL1

PK1: ACALL D10MSJNB P1.0,PK2JB P1.1,KL1

PK2: MOV R7,#08HMOV R6,#FEHMOV R3,#00H

PL5: MOV A,R6MOV SBUF,A

KL2: JNB TI,KL2CLR TIJNB P1.0,PK4JNB P1.1,PK5MOV A,R6RL AMOV R6,AINC R3DJNZ R7,PL5RET

Page 27: 第 8 章应用系统配置及接口技术

PK5: MOV R4,#08HAJMP PK3

PK4: MOV A,#00HMOV SBUF,A

KL3: JNB TI,KL3CLR TI

KL4: JNB P1.0,KL4JNB P1.1,KL4MOV A,R4ADD A,R3SUBB A,#0AHJNC KL6MOV DPTR,#TABLADD A,#0AHMOVC A,@A+DPTRMOV R0,60HMOV @R0,AINC R0CJNE R0#60H,KDMOV 60H,#58HSJMP KD1

Page 28: 第 8 章应用系统配置及接口技术

KD: MOV 60H,R0KD1: ACALL LED

RETKL6: MOV B,#03H

MUL ABMOV DPTR,KTABJMP @A+DPTR

KTAB: LJMP K1LJMP K2

…..TABL: DB C0H,F9H,A4H,B0H

DB 99H,92H,82H,F8HDB 80H,90H

LED: SETB P1.2MOV R7,#08HMOV R0,#58H

LED1: MOV A,@R0MOV SBUF,A

LED2: JNB TI,LED2CLR TIINC R0DJNZ R7,LED1CLR P1.2RET

Page 29: 第 8 章应用系统配置及接口技术

A/D 、 D/A 转换在单片机系统中的应用示意图

MCS-51 D/A转换器

控制执行机构

A/D转换器

多路开关

传感器 1

传感器 2

传感器 n

控制执行机构

温度、压力、流量等信号

模拟信号

模拟信号

数字信号

被控实体

Page 30: 第 8 章应用系统配置及接口技术

8.2 单片机测控系统前向通道配置--传感器及小信号放大电路

传感器模拟小信号放大

Page 31: 第 8 章应用系统配置及接口技术

8.3 前向通道中的 A/D 转换器及接口技术8.3.1 逐次逼近型 A/D 转换器及接口技术

一、 ADC0809 A/D 串换器芯片

Page 32: 第 8 章应用系统配置及接口技术

ADC0809 芯片的引脚1. IN0 ~ IN7: 八路模拟电压输入端;2. ALE: 地址锁存控制信号,上升沿送入、下降沿锁存;3. addA ~ addC: 地址输入线;4. START: 启动输入端,高电平有效。5. EOC: 转换结束标志输出 . 高电平表明转换完成。再次启动

ADC 时该引脚变低电平,直到转换完成后再次变高电平。6. D7 ~ D0: 数字量输出线。7. OE: 输出三态控制线 . 置高电平时数据经 D7 ~ D0 向外输出。8. CLOCK: 时钟输入端。 提供 640KH 逐次比较脉冲时序。9. Vref ( + )、 Vref ( - ) : 参考电压输入,为电阻网络提供

电压。 Vref ( + )、 Vref ( - )可以与 Vcc 和 GND 连接。10. Vcc 、 GND: 电源和地。

Page 33: 第 8 章应用系统配置及接口技术

二、 ADC0809 与 8031 接口连接方案一:

Page 34: 第 8 章应用系统配置及接口技术

例:某粮库某冷冻厂需对 8点进行温度巡回检测,被测温度范围- 30~ 50c.

MAIN: MOV R0,#0A0HMOV R2,#08HSETB IT1SETB EASETB EX1MOV DPTR,#7FF8HMOVX @DPTR,A ;启动 A/D 转换

HERE: SJMP HERE;Interrupt

MOVX A,@DPTRMOVX @R0,AINC DPTRINC R0DJNZ R2,DONERETI

DONE: MOVX @DPTR,ARETI

Page 35: 第 8 章应用系统配置及接口技术

连接方案二:/RD/WR

P0 口

MCS-51

ALE

/INT1

OE

STARTALEADC0809 addCaddBaddC

D7~ D0CLOCK

EOC

地址锁存器

地址译码器

+

+

P0.2P0.1P0.0

分频器

F0H

该连接方案 IN0-IN7的通道地址怎么给出?

Page 36: 第 8 章应用系统配置及接口技术

正确理解 MOVX @Ri , A 指令,是设计 ADC 与单片机接口的关键。指令执行周期: P0先输出 Ri 中的地址 F0H (地址信号锁存在 373 中),后输出 A 中通道代码(数据信号锁存到 ADC 中)。

S1 S2 S6S5S4S3 S1 S2 S6S5S4S3

ALE

/Psen

A7-A0 指令 Ri=F0H A 中数据

/WR

P0 口

选中外部单元

MOVX @Ri ,A 指令的时序

START 、 ALE=/ WR∨/ F0H

OE=/ RD∨/ F0H

锁存 A 中通道地址于 ADC ,启动 AD

C

锁存低 8 位地址于 373 中

Page 37: 第 8 章应用系统配置及接口技术

对 IN0-IN7上的模拟电压采集并送到内部RAM30H开始的单元

(采用中断方式)

ORG 0000H LJMP START

ORG 0013H LJMP CINT1 ORG 0A00H START:MOV R1,#30H ; 数据区指针 R1 赋初值 30H

MOV R4,#08H ; 计数器 R4 赋初值 08H MOV R2,#00H ; 通道代码送 R2 SETB EA SETB EX1 ; 开 /INT1 中断 SETB IT1 ; 设 /INT1 为边沿触发 MOV R0,#0F0H ;ADC 地址送间址寄存器 R0 MOV A,R2 ; 通道代码送累加器 A MOVX @R0,A ; 送通道代码并启动 ADC SJMP $ ; 等待中断

Page 38: 第 8 章应用系统配置及接口技术

ORG 0100H

CINT1:MOV R0,#0F0H ; 中断服务程序MOVX A,@R0 ; 读入 ADC 数据MOV @R1,A ; 存入转换的数据INC R1 ; 修改数据区指针 R1

INC R2 ; 修改通道代码寄存器 R2

MOV A,R2 ; 通道代码送累加器 A

MOVX @R0,A ; 送下一个通道代码并启动 ADC

DJNZ R4,LOOP ; 若未采集完转 LOOP

CLR EX1 ; 采集完时,关中断LOOP:RETI ; 中断返回

END

Page 39: 第 8 章应用系统配置及接口技术

初始化:R0:ADC 口地址 =F0HR1: 数据块指针 =30HR2:ADC 通道代码 =00HR4: 循环计数器 =08H

开 INT1 中断

送通道代码并启动 ADCMOVX @R0 ,A

等待 INT1 中断

CINT1CINT1

从 ADC 中读数据MOVX A,@R0

修改数据指针修改同道代码

数据送内存MOV @R1,A

送下一个通道代码并启动 ADC

8 个通道完成?

返回

Y

N

主程序流程图

关闭 INT1

中断服务程序

Page 40: 第 8 章应用系统配置及接口技术

采用查询方式的 ADC 采集程序

ORG 0000HLJMP 0100HORG 0100H

START: MOV R1,#30H ; 数据区指针 R1 赋初值 30H MOV R4,#08H ; 计数器 R4 赋初值 08H MOV R2,#00H ; 通道代码送 R2

MOV A,#00H ; 通道代码送 AMOV R0,#0F0H

LOOP: MOVX @R0,A ; 送通道代码,启动 ADC

JB IE1,$ ;ADC转换是否结束MOVX A,@R0 MOV @R1,A; 取 ADC 的转换数据INC R1INC ADJNZ R4,LOOP

SJMP $ END

Page 41: 第 8 章应用系统配置及接口技术

初始化:R0:ADC 口地址 =F0HR1: 数据块指针 =30HR2:ADC 通道代码 =00HR4: 循环计数器 =08H

送通道代码并启动 ADCMOVX @R0 ,A

停机 IE1=1?

从 ADC 中读数据MOVX A,@R0

数据送内存MOV @R1,A

C

C

修改数据指针修改同道代码

8 个通道完成?N

Y

查寻法流程图

Page 42: 第 8 章应用系统配置及接口技术

8.3.2 双积分 A/D 转换器机及接口技术

Page 43: 第 8 章应用系统配置及接口技术

8.4 系统后向通道配置及接口技术

8.4.1 后向通道中的功率开关器件及接口一、继电器及接口二、光电耦合器(隔离器)件及驱动接口

Page 44: 第 8 章应用系统配置及接口技术

8.4.2 后向通道中的 D/A 转换及接口技术

D7

:

D0t

Vout

数字量输入 N

Vout模拟量 输出

将数字量 N ( D7 ~ D0 )转换为模拟量 Vout 的器件称之为 D/A 转换器。

D/A 转换器

Page 45: 第 8 章应用系统配置及接口技术

一、 D/A 转换芯片—— DAC0832

Page 46: 第 8 章应用系统配置及接口技术

DAC0832 芯片引脚介绍

数字量输入线 DI7~ DI0 ;

第 1级缓冲控制线:1. ILE:允许数字量输入线,高电平有效。2. /CS: 片选线,低电平有效。3. /WR1:写命令控制线,低电平有效。

【锁存原理】ILE= 1, /CS= /WR1=0 时:数据进入输入寄存器; 反之,条件不满足时:锁存器锁存数据。

Page 47: 第 8 章应用系统配置及接口技术

第 2级缓冲控制线(控制 DAC新的转换时刻):

1. /WR2:写命令控制线,低电平有效。2. /XFER: 输入传送控制线,低电平有效。 【锁存原理】/WR2=0 , /XFER=0 时:数据进入 DAC寄存器 , 通过 T 型电阻网络实现 DAC 转换; 反之,条件不满足时:锁存器锁存数据。 DAC寄 存器不接收输入寄存器的数据。

Page 48: 第 8 章应用系统配置及接口技术

输出线:1. Rfb: 与外接运算放大器的输出端相连。2. Iout1 、 Iout2: 模拟电流输出线,分别与运算放大器的

反相端、同相端连接。电源线:

1. VCC: 电源输入线, +5V~ +15V之间。2. VREF: 参考电压输入线, -10V~ +10V范围内,由基准电源提供。

3. DGND:数字电源地。4. AGND: 模拟电源地。

I Rf V out

电流 / 电压变换

DAC0832

Iout1

Iout2

V ref

Page 49: 第 8 章应用系统配置及接口技术
Page 50: 第 8 章应用系统配置及接口技术

根据 DAC0832 结构特点, DAC0832 的接法有:

1. 无缓冲的直通方式:用于无 CPU 的普通仪表场合。2. 单 缓 冲 方 式: 在单片机系统中常用的使用模式。3. 双 缓 冲 方 式: 用于多 DAC 的应用场合。

Page 51: 第 8 章应用系统配置及接口技术

二、 D/A 转换器与 8031 接口

Page 52: 第 8 章应用系统配置及接口技术

1 、单缓冲方式将 DAC 两个缓冲器中的后级直通( /XFER , /WR2=0 )。前级的 /WR1 与单片机的 /WR 连接, /CS 与地址译码器连接。这样,执行 MOVX 指令时, DAC 就开始进行转换。

MOV R0,#0FEH ; DAC0832 的地址送 R0

MOVX @R0,A ;产生 /WR 、 /CS 信号使 0832 进行转换。

/WR

P0 口

ALE

/WR1/WR2/XFER Rfb/CS Iout1ILE Iout2

DI7~ DI0

锁存器

译码器

+5V

V outFEH

Page 53: 第 8 章应用系统配置及接口技术

MOVX @R0,A 指令时序图

S1 S2 S6S5S4S3 S1 S2 S6S5S4S3

ALE

Psen

A15-A8(PC)

A7-A0 指令 A7-A0 数据

/RD 或 /WR

P2 口P0 口

选中 DAC0832

R0 中的地址

( FEH )

累加器 A 中的数据

Page 54: 第 8 章应用系统配置及接口技术

使用 DAC0832 作波形发生器,输出锯齿波、三角波和方波。

1 ,锯齿波发生器程序:ORG 1000H

START:MOV R0,#0FEH ; DAC 口地址

MOVX @R0,A ;数据送DAC

INC A ;数据加一

SJMP START ;返回继续

END

【说明】:单极性输出 Vout2562

VrfeB

VrfeB

n

/WR1/WR2/XFER Rfb/CS Iout1ILE Iout2

DI7 ~ DI0

V out

Voutt

Page 55: 第 8 章应用系统配置及接口技术

2, 三角波发生器程序: ORG 1000H

START: CLR A MOV R0,#0FEH

DOWN: MOVX @R0,A INC A JNZ DOWN

UP: DEC A MOVX @R0,A

JNZ UP SJMP DOWN END

【说明】:单极性输出 Vout

2562

VrfeB

VrfeB

n

/WR1/WR2/XFER Rfb/CS Iout1ILE Iout2

DI7 ~ DI0

V out

Voutt

Page 56: 第 8 章应用系统配置及接口技术

3, 方波发生器程序: ORG 1000H

START:MOV R0,#0FEH ; DAC 口地址LOOP: MOV A,#33H ;数据为 33H

MOVX@R0,A ; DAC 转换ACALL DELAY ;调延时MOV A,#0FEH ;数据为 FE

HMOVX @R0,A ; DAC 转换 ACALL DELAY ;调延时SJMP LOOP ;返回继续

DELAY: :END

【说明】:单极性输出 Vout

2562

VrfeB

VrfeB

n

/WR1/WR2/XFER Rfb/CS Iout1ILE Iout2

DI7 ~ DI0

Vout

Voutt

Page 57: 第 8 章应用系统配置及接口技术

2 、双缓冲方式/WR

P0 口

ALE

/WR1/WR2/CS Rfb/XFER Iout1ILE Iout2

DI7~ DI0

锁存器

译码器

+5V-

V X

FDH

FEH

FFH

/WR1/WR2/CS Rfb/XFER Iout1ILE Iout2

DI7~ DI0

+5V-

V Y

第一级缓冲:数据寄存器存 :/WR1,/CS

第二级缓冲: DAC寄存器 :/WR2,/XFER

Page 58: 第 8 章应用系统配置及接口技术

设内部RAM单元有两个长度为 30 的数据块,起始地址分别为 DA1 和 DA2 ,试编程将 DA1,DA2 中的数据分别从 1#和 2#DAC0832 输出的程序。

【解】: FDH:1#DAC0832数字量输入控制口; FEH:2#DAC0832数字量输入控制口; FFH:1#,2#DAC0832 的 DAC 转换控制口;

R2 为数据块长度计数器0 区 R1 为 DA1数据块指针, 1 区 R1 为 DA2数据块指针;R0 用于存放 DAC 口地址。

Page 59: 第 8 章应用系统配置及接口技术

ORG 1200H

DA1 DATA 20H ;DATA 为数据、地址赋值伪指令

DA2 DATA 40H ; 为左边的“字符”名称赋值DTOUT: MOV R1,#DA1 ;0 区的 R1 指向 DA1 数据区

MOV R2,#30 ; 数据区长度 30 送计数器 R2

SETB RS0 ;CPU 转向 1#工作寄存器区 MOV R1,#DA2 ;1# 区 R1 指向 DA2 数据区 CLR RS0 ; 返回 0#工作寄存器区

程序清单

Page 60: 第 8 章应用系统配置及接口技术

NEXT: MOV R0,#0FDH ; 指向 1# 输入数据口MOV A,@R1 ; 取 DA1 数据MOVX @R0,A ; 数据送 1# 的数据寄存器INC R1 ; 修改 DA1 数据区指针SETB RS0 ;CPU 转向 1#工作寄存器区MOV R0,#0FEH ; 指向 2# 输入数据口MOV A,@R1 ; 取 DA2 数据MOVX @R0,A ; 数据送 2# 的数据寄存器INC R1 ; 修改 DA2 数据区指针INC R0 ;R0=FFH, 指向 1# 、 2# 后级

MOVX @R0,A ; 同时启动 1# 、 2# DAC进行转换

CLR RS0 ;CPU 转回 0# 工作寄存器区DJNE R2,NEXT ;30 个数据是否完成SJMP DTOUT ; 未完时,转 DTOUT 继续END

Page 61: 第 8 章应用系统配置及接口技术

程序流程图

初始化:0 区的 R1做 DA1 指针1 区的 R1做 DA2 指针

计数器 R2 赋初值 30

从 DA1 中取数据送 1#

修改 DA1 指针

启动 1# 、 2#DAC

从 DA2 中取数据送 2#

修改 DA2 指针

R2-1→R2R2=0?

N

Y

Page 62: 第 8 章应用系统配置及接口技术

外设接口电路小结:外部数据传送指令 :

MOVX A,@R0 (MOVX A, @DPTR)

或: MOVX @R0,A (MOVX @DPTR , A)

1. R0 的内容作为低 8 位地址通过 P0 口输出并锁存在 74LS373 中,经过译码器产生外设的片选( /CS )信号。因此应事先将外设的地址送到 R0 (or DPTR) 中;

2. 指令执行中,单片机自动产生 /WR或/RD信号,此信号与外设的对应信号连接,实现单片机对外设的控制。

3. 如果是输入,则通过 P0 口将外部数据送 A;

如果是输出,则将 A 中数据通过 P0 送到外设。

Page 63: 第 8 章应用系统配置及接口技术

5.5 行程开关、晶闸管、继电器与单片机的接口

5.5.1 光电耦合器件

光电耦合器件是由发光二极管 ( 发光源 ) 与受光源 (如光敏三极管、光敏晶闸管或光敏集成电路等 )封装在一起,构成电-光-电转换器件。根据受光源结构的不同,可以将光电耦合器件分为晶体管输出的光电耦合器件和晶闸管输出的光电耦合器件两大类。

晶体管输出的光电耦合器件的内部结构如图 5.31所示。

Page 64: 第 8 章应用系统配置及接口技术

图 5.31 晶体管光耦器件结构图

Page 65: 第 8 章应用系统配置及接口技术

图 5.32 晶闸管输出光耦内部结构

Page 66: 第 8 章应用系统配置及接口技术

5.5.2 行程开关、继电器触点与单片机的接口

图 5.33 开关、触点状态输入接口

Page 67: 第 8 章应用系统配置及接口技术

5.5.3 晶闸管元件与单片机接口

图 5.34 光耦晶闸管与单片机接口示例

Page 68: 第 8 章应用系统配置及接口技术

为了避免误触发,在 MOC304第 4 引脚和外部大功率双向

可控硅阴极之间增加了泄放电阻 R3 。 R2 是 MOC3041导通的

限流电阻,避免因电流过大引起MOC3041过流而损坏。

当单片机 P1.1 引脚输出低电平时, MOC3041 内部的发光二

极管导通 ,由于 MOC3041 内部带有过零触发电路,交流电压过

零后将触发内部的双向可控硅而导通,结果外部大功率双向晶

闸管导通,从而接通交流负载。

Page 69: 第 8 章应用系统配置及接口技术

5.5.4 继电器与单片机接口

图 5.35 继电器与单片机接口示例(a) 驱动微型继电器; (b) 驱动较大功率继电器

Page 70: 第 8 章应用系统配置及接口技术

当 P1.0 输出低电平时, V1导通,继电器吸合;当 P1.0 输

出高电平时, V1截止,继电器不吸合。在继电器吸合到断开

的瞬间,由于线圈中的电流不能突变,将在线圈产生下正上负

的感应电压,使晶体管集电极承受很高电压,有可能损坏驱动

管 V1 ,为此在继电器线圈两端并接一个续流二极管 VD2 ,使

线圈两端的感应电压被箝位在 0.7 V 左右。正常工作时,线圈

上的电压上正下负,二极管 VD2截止,对电路没有影响。当

继电器驱动电压 VCC大于 5 V 时, VCC 电压可能通过三极管

V1串入低压回路,为此在 7406 和 V1 之间加二极管 VD2 。