第7部分 应用系统配置及接口技术.docx

上传人:b****9 文档编号:28673522 上传时间:2023-07-19 格式:DOCX 页数:18 大小:276.34KB
下载 相关 举报
第7部分 应用系统配置及接口技术.docx_第1页
第1页 / 共18页
第7部分 应用系统配置及接口技术.docx_第2页
第2页 / 共18页
第7部分 应用系统配置及接口技术.docx_第3页
第3页 / 共18页
第7部分 应用系统配置及接口技术.docx_第4页
第4页 / 共18页
第7部分 应用系统配置及接口技术.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

第7部分 应用系统配置及接口技术.docx

《第7部分 应用系统配置及接口技术.docx》由会员分享,可在线阅读,更多相关《第7部分 应用系统配置及接口技术.docx(18页珍藏版)》请在冰豆网上搜索。

第7部分 应用系统配置及接口技术.docx

第7部分应用系统配置及接口技术

第7部分应用系统配置及接口技术

1.为什么要消除键盘的机械抖动?

有哪些方法?

答:

通常按键所用的开关为机械弹性开关,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。

因而在闭合及断开的瞬间均伴随有一连串的抖动,键抖动会引起一次按键被误读多次。

为了确保CPU对键的一次闭合仅做一次处理,必须去除键抖动。

在键闭合稳定时,读取键的状态,并且必须判别;在键释放稳定后,再作处理。

按键的抖动,可用硬件或软件两种方法消除。

如果按键较多,常用软件方法去抖动,即检测出键闭合后执行一个延时程序,产生5~10ms的延时;让前沿抖动消失后,再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下。

当检测到按键释放后,也要给5~10ms的延时,待后沿抖动消失后,才能转入该键的处理程序。

硬件方法常用RS触发器。

2.试述A/D转换器的种类及特点。

答:

A/D转换器的种类很多,主要有计数比较型、逐次逼近型、双积分型等。

逐次逼近型A/D转换器的特点是精度、速度和价格都适中,是比较常用的A/D转化器。

双积分型A/D转换器的特点是精度高,抗干扰性好,价格低廉,但转换速度慢。

3.设计一个2×2行列式键盘电路并编写键扫描子程序。

解:

(1)逻辑电路如下:

(2)判断是否有键按下:

有列线P1.0、P1.1送全0,查P0.0、P0.1是否为0。

判断哪一个键按下:

逐列送0电平信号,再逐行扫描是否为0。

键号=行首号+列号

KEY:

LCALLKS

JZKEY

LCALLT10ms

LCALLKS

JZKEY

MOVR2,#0FEH

MOVR4,#00H

LK1:

MOVP1,R2

JBP0.0,ONE

MOVA,#00H

LJMPKP

ONE:

JBP0.1,NEXT

MOVA,#02H

KP:

ADDA,R4

PUSHACC

LK:

LCALLKS

JNZLK

POPACC

RET

NEXT:

INCR4

MOVA,R2

JNBACC.1,KND

RLA

MOVR2,A

AJMPLK1

KND:

AJMPKEY

KS:

MOVP1,#0FCH

MOVA,P0

CPLA

ANLA,#03H

RET

T10ms:

MOVR7,#10H

TS1:

MOVR6,#0FFH

TS2:

DJNZR6,TS2

DJNZR7,TS1

RET

4.试设计一个LED显示器/键盘电路。

解:

 

5.在一个89C51应用系统中,89C51以中断方式通过并行接口74LS244读取A/D器件5G14433的转换结果。

试画出有关逻辑电路,并编写读取A/D结果的中断服务程序。

解:

硬件电路设计如图:

读取A/D结果的中断服务程序:

MOVDPTR,#0FE00H

MOVXA,@DPTR

MOV30H,A

RETI

6.在一个fOSC为12MHz的89C51系统中接有一片D/A器件DAC0832,它的地址为7FFFH,输出电压为0~5V。

请画出有关逻辑框图,并编写一个程序,使其运行后能在示波器上显示出锯齿波(设示波器X方向扫描频率为50μs/格,Y方向扫描频率为1V/格)。

解:

硬件电路设计如图:

根据DAC0832的地址为7FFFH,则89C51的P2.7接DAV0832的片选。

程序设计:

因为示波器X方向扫描频率为50μs/格,Y方向扫描频率为1V/格,所以选择DAC0832的输出电压为0V~2V,对应的数字量为00H~66H(0~102);每次数据量增值为3,共34次循环,34×5μs=170μs。

ORG0050H

MAIN:

MOVDPTR,#7FFFH

LOOP1:

MOVA,#00H

LOOP2:

MOVX@DPTR,A

ADDA,#03H

CJNEA,#66H,LOOP2

SJMPLOOP1

7.在一个fOSC为12MHz的89C51系统中接有一片A/D器件ADC0809,它的地址为7FF8H~7FFFH。

试画出有关逻辑框图,并编写ADC0809初始化程序和定时采样通道2的程序(假设采样频率为1ms/次,每次采样4个数据,存于89C51内部RAM70H~73H中)。

解:

硬件电路设计如图:

程序清单:

ORG0000H

LJMPMAIN

ORG0013H

LJMPIEX1

ORG0030H

MAIN:

MOVSP,#60H

MOVDPTR,#7FFAH

SETBIT1

SETBEX1

SETBEA

LOOP1:

MOVR0,#70H

MOVR7,#04H

LOOP2:

MOVX@DPTR,A

HEAR:

SJMPHEAR

DJMPR7,LOOP2

LCALLDIMS

SJMPLOOP1

DIMS:

MOVR5,#32H

DIMS1:

MOVR6,#64H

DIMS2:

MOVR6,DIMS2

MOVR5,DIMS1

RET

ORG0200H

IEX1:

MOVXA,@DPTR

MOV@R0,A

INCR0

RETI

8.在一个89C51系统中扩展一片74LS245,通过光电隔离器件外接8路TTL开关量输入信号。

试画出其有关的硬件电路。

解:

硬件电路设计如图:

9.用89C51的P1口作8个按键的独立式键盘接口。

试画出其中断方式的接口电路及相应的键盘处理程序。

解:

硬件电路设计如图:

键盘处理程序:

ORG0000H

LJMPMAIN

ORG0013H

LJMPIEX1

ORG0030H

MAIN:

MOVSP,#60H

SETBIT1

SETBEX1

SETBEA

SJMP$

IEX1:

MOVA,#FFH

MOVP1,A

MOVA,P1

JNBACC.7,P7F

JNBACC.6,P6F

JNBACC.5,P5F

JNBACC.4,P4F

JNBACC.3,P3F

JNBACC.2,P2F

JNBACC.1,P1F

JNBACC.0,P0F

RETI

P7F:

LJMPPROM7

P6F:

LJMPPROM6

P5F:

LJMPPROM5

P4F:

LJMPPROM4

P3F:

LJMPPROM3

P2F:

LJMPPROM2

P1F:

LJMPPROM1

P0F:

LJMPPROM0

……

10.试说明非编码键盘的工作原理。

如何去键抖动?

如何判断键是否释放?

答:

(1)非编码键盘是靠软件识别的键盘。

根据系统中按键数目的多少来选择不同的键盘结构。

键数少时,可采用独立式按键结构;当键数多时可采用行列式按键结构。

无论采用什么结构,都是通过单片机对它控制,因此可有三种控制方式:

程序控制扫描方式、定时扫描方式和中断扫描方式。

以行列式非编码键盘,采用程序控制扫描方式为例,其工作原理为:

首先判断键盘上有无键按下,若有键按下则去键的机械抖动影响,然后逐列(行)扫描,判别闭合键的键号,再判别键是否释放,如果键释放则按键号处理相应程序。

(2)当判断有键按下时,执行5ms~10ms的延时程序后再判断键盘的状态。

如果仍为键按下状态,则认为确定有一个键按下;否则按照键抖动处理。

(3)判断键是否释放时,先判断键是否仍为闭合状态,如果为时,则执行5ms~10ms延时程序后再判断直到键释放,以便达到对键的一次闭合仅作一次处理。

11.DAC0832与89C51单片机连接时有哪些控制信号?

其作用是什么?

AC0832与89S51单片机连接时的控制信号有:

ILE——数据锁存允许信号,高电平有效;

/CS——输入寄存器选择信号,低电平有效;

/WR1——输入寄存器的“写”选通信号,低电平有效。

/XFER——数据转移控制信号线,低电平有效;

/WR2——DAC寄存器的“写”选通信号。

(2)作用:

当/CS=0,/WR1=0,ILE=1时,

=

=1,输入锁存器状态随输入线状态变化;当/CS=1,/WR1变高,ILE=1时,

=

=0时,锁存输入数据。

当/WR2=0,/XFER=0时,DAC寄存器的锁存信号

=

=1时,DAC寄存器的输随输入状态变化;当/WR2变高,/XFER=0时,

=0时,锁存输入状态。

12.在一个89C51单片机与一片DAC0832组成的应用系统中,DAC0832的地址为7FFFH,输出电压为0~5V。

试画出有关逻辑框图,并编写产生矩形波,其波形占空比为1∶4,高电平时电压为2.5V,低电平时电压为1.25V的转换程序。

解:

硬件电路设计如图:

VOUT=2.5V,D=2.5V×256/5=128=80H

VOUT=1.25V,D=1.25V×256/5=64=40H

程序清单:

MOVDPTR,#7FFFH

NEXT:

MOVA,#80H

MOVX@DPTR,A

ACALLDELY

MOVR4,#04H

MOVA,#40H

MOVX@DPTR,A

LOOP:

ACALLDELAY

DJNZR4,LOOP

AJMPNEXT

DELAY:

MOVR7,#10H

TS1:

MOVR6,#0FFH

TS2:

DJNZR6,TS2

DJNZR7,TS1

RET

13.在一个由89C51单片机与一片ADC0809组成的数据采集系统中,ADC0809的地址为7FF8H~7FFFH。

试画出有关逻辑框图,并编写出每隔1min轮流采集一次8个通道数据的程序。

共采样100次,其采样值存入片外RAM3000H开始的存储单元中。

解:

硬件电路设计如图:

设fOSC=6MHz,用定时器定时100ms,用软件计数10×60实现定时1min。

A/D转换采用查询(p1.0)方式。

程序设计如下:

ORG0000H

AJMPMAIN

ORG001BH

AJMPSEAVE

ORG0030H

MAIN:

MOVSP,#60H

MOVR7,#100;置采集次数

MOVR1,#30H;片外RAM地址高位

MOVR0,#00H;片外RAM地址低位

MOVR2,#10;R2为100ms计数器,置入初值10

MOVR3,#60;R3为秒计数器,置入初值60

MOVTMOD,#10H

MOVTH1,#3CH

MOVTL1,#0B0H

SETBET1

SETBEA

SETBTR1

LOOP:

SJMPLOOP

DJMPR7,LOOP

SJMP$

SEAVE:

MOVTH1,#3CH

MOVTL1,#0B0H

DJNZR2,RETURN

MOVR2,#10

DJNZR3,RETURN

MOVR6,#08;8个通道计数器初值

MOVDPTR,#7FF8H;IN0的地址

NEXT:

MOVX@DPTR,A;启动A/D转换

JBP1.0.$

MOVXA,@DPTR

PUSHDPH;将通道地址压入堆栈

PUSHDPL

MOVDPH,R1

MOVDPL,R0

MOVX@DPTR,A

INCDPTR

MOVR1,DPH;保存片外RAM地址

MOVR0,DPL

POPDPL

POPDPH

DJNZR6,NEXT

RETURN:

RETI

END

14.以DAC0832为例,说明D/A的单缓冲与双缓冲有何不同。

答:

所谓双缓冲方式,就是把DAC0832的两个锁存器都接成受控锁存方式。

双缓冲DAC0832的连接如下图所示。

双缓冲方式用于多路数/模转换系统,以实现多路模拟信号同步输出的目的。

为此就要使用两片DAC0832,并采用双缓冲方式连接,如下图所示。

电路中以译码法产生地址,两片DAC0832共占据三个单元地址,其中两个输入寄存器各占一个地址,而两个DAC寄存器则合用一个地址。

15.以DAC0832为例,说明D/A的单极性输出与双极性输出有何不同。

答:

在DAC0832的输出端连接一级运放组成的反向求和电路,可以得到单极性模拟电压(正电压或负电压),输出电压范围由参考电压VREF值决定。

例如,当VREF=+5V(或-5V)时,输出电压VOUT范围是0V~-5V(或0V~+5V);当VREF=±10V时,VOUT范围是0V~±10V。

在VREF确定以后,若要增加输出电压范围,可以通过增加运放反馈电阻的方法来实现。

连接方法是外加电阻R1同芯片中反馈电阻RF串联,并在输入数据为全1的条件下,调节R1阻值,使VOUT达到所需的满量程电压即可。

有时,需要转换器输出双极性模拟电压。

当输入数字量从全0到全1时,需求输出模拟量由负电压到正电压。

单极性输出电压表达式为:

VOUT1=

双极性输出电压表达式为:

VOUT2=

比较两式可知,只要将单极性输出模拟电压放大2倍,再与参考电压求和就可以获得双极性输出的模拟电压。

16.A/D和D/A的主要技术指标中,“分辨率”与“转换精度”(即“量化误差”或“转换误差”)有何不同。

答:

(1)分辨率

“分辨率”通常用位数表示,如8位、10位、12位等。

对于n位转换器,其实际分辨率为模拟量满量程的1/2n。

例如,一个10位的A/D转换器去转换一个满量程为5V的电压,则它能分辨的最小电压为5000mV/1024≈5mV,我们称该A/D转换器的分辨率为10位或5mV。

再例如,某D/A转换器能够转换8位二进制数,转换后的电压满量程是5V,则它能分辨的最小电压是5V/256≈20mV,我们称该D/A转换器的分辨率为8位或20mV。

(2)转换精度

“转换精度”是反映转换器转换值与理想值之间的误差。

例如,具有8位分辨率的A/D转换器,当输入0V~5V电压时,对应的饿数字量为00H~FFH,即输入每变化0.0196V时,数据就变化1。

由于输入模拟量是连续变化的,只有当它的值为0.0196V的整数倍时,模拟量值才能准确转换成对应的数字量,否则模拟量将被“四舍五入”为相近的数字量。

例如,0.025V被转换成02H,最大误差为1/2个最低有效位(常用±1/2LSB表示),这就是量化误差。

该A/D转换器的具体量化误差(或精度)值可以计算出来为

±(1/2)×5V/256=±(1/2)×0.0196V=±9.8mV

在例如,若某D/A转换器的分辨率为8位时,则它的精度为:

±(1/2)×1/256=±1/512。

(3)分辨率的计算

在计算分辨率时,为什么有人用满量程除以2n,有人却用满量程除以2n-1呢?

这是因为存在两种“满量程”的定义。

让我们以D/A转换的分辨率计算举例来说吧,对应线性D/A转换器来说,其分辨率计算公式为:

分辨率=模拟输出的满量程/2n。

但是,这个“满量程”又分为标称满量程和实际满量程。

标称满量程是指数字量2n所对应的模拟量,可实际数字量的变化范围是从0~2n–1,永远到不了2n。

所以实际最大值2n–1所对应的模拟输出量,就称为实际满量程。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1