《单片机原理与应用设计》课后习题及答案(二)_第1页
《单片机原理与应用设计》课后习题及答案(二)_第2页
《单片机原理与应用设计》课后习题及答案(二)_第3页
《单片机原理与应用设计》课后习题及答案(二)_第4页
《单片机原理与应用设计》课后习题及答案(二)_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《单片机原理与应用设计》课后习题及答案Q)

第7章习题答案

1、80c51有几个中断源?各中断标志的意义是什么?CPU响应各中断时,其中断入口地址是什么?

答:(1)5个

(2)IE0:外部中断0请求标志。IE0=l表示外部中断0向CPU申请中断。

IE1:外部中断1请求标志。IE1=1表示外部中断1向CPU申请中断。

TF0:定时器T0溢出标志。当定时器T0计满溢出时,由硬件使TFO置1,并且申请中断。

TF1:定时器T1溢出标志。当定时器T1计满溢出时,由硬件使TF1置1,并且申请中断。

TI:发送中断标志。RI:接收中断标志。

(3)外部中断有两个,分别是INTO和INT1,其入口地址分别是0003H和0013H。内部中断有

3个,分别是TO、T1和串行口,它们的入口地址分别是:OOOBH,001BH和0023H。

2、简述子程序调用和中断服务子程序的异同点。

答:相同点:均能中断主程序执行本程序,然后返回断点继续执行子程序

不同点:

(1)中断服务程序入口地址是固定的,子程序调用户口地址是用户自己设定的

(2)中断服务子程序返回指令,除具有子程序返回指令所具有的全部功能之外,还有清除中断相

应时被置位的优先级状态,开发较低中断和恢复中断逻辑等功能

(3)中断服务子程序在满足中断申请的条件下随时发生的,而子程序调用是用户主程序事先安排

好的。

3、80c51单片机中断的自然优先级顺序是什么?如何提高某一中断源的优先级?

答:中断源的自然优先级顺序由高到低如下:

外部中断0(PXO)

定时/计数器0溢出中断(PTO)

外部中断1(PX1)

定时/计数器1溢出中断(PT1)

串行口中断(PS)

若某几个控制位为1,则相应的中断源就规定为高级中断;反之若几个控制位为0,则相应的中

断源就规定为低级中断。当同时接收到几个同一优先级的中断请求时,响应哪个中断源则取决于内

部硬件查询顺序(即自然优先级顺序)。

4、串行中断只有一个中断向量,在中断服务程序中如何区分其是发送中断还是接收中断?

答:响应串行口中断后,CPU无法知道是接收中断还是发送中断,还需要测试两个中断标志位RI、

TL如果是RI=1,则表明是接收数据中断,若TI=1,则表明是发送数据中断。

5、多个中断源共用一个电路向CPU申请中断时,如何在中断程序中对它们进行区分?

答:当多个中断源共用一个电路向CPU申请中断时,在写中断子程序时可以通过中断号来区分:

外部中断0(PXO)interrupt0

定时/计数器。溢出中断(PTO)interrupt1

外部中断1(PX1)interrupt2

定时/计数器1溢出中断(PT1)interrupt3

串行口中断(PS)interrupt4

6、根据定时/计数器T0方式1逻辑结构,分析门控位GATE取不同值时启动定时器的工作过程。

答:当GATE=O:软件启动定时器,即用指令使TCON中的TRO置1即可启动定时器0。

当GATE=1:软件和硬件共同启动定时器,即用指令使TCON中的TRO置1时,只有外部中断INTO

引脚输入高电平时才能启动定时器0。

7、简述定时/计数器的控制寄存器TCON中各位的作用。

答:控制寄存器TCON中:

TF1:定时器T1溢出标志位。当定时器T1溢出时,由硬件自动使TF1置1,并向CPU申请中断。

CPU响应中断后,自动对TF1清零。TF1也可以用软件清零。

TR1:定时器T1运行控制位。可由软件置1(或清零)来启动(或关闭)定时器T1,使定时器T1

开始计数。用指令SETBTR1(或CLRTR1)使TR1置1(或清零)。

TFO:定时器T0溢出标志位。其功能与TF1相同。

TRO:定时器T0运行控制位。其功能与TR1相同。

IE1:外部中断1请求标志位。

IT1:外部中断1触发方式控制位。

IE0:外部中断0请求标志位。

ITO:外部中断0触发方式控制位。

8、简述定时器/计数器TO、T1的初始化过程。

答:对TMOD赋值,以确定TO和T1的工作方式

计算初值,并将其写入THO、TLO或TH1、TL1;

中断方式时,要对IE赋值,开放中断;

使TRO或TR1置位,启动定时/计数器开始定时或计数。

9、当定时/计数器TO工作于方式3时,定时/计数器T1可以工作在何种方式下?如何控制T1的开

启和关闭?

答:TO用作方式3时,T1可以工作在方式0、1和2,T1的开启由TR1控制,即TR1=1时,T1开

始工作;TR1=O时或者定时/计数器工作在方式3时,T1停止工作。

10、当遇到“使用一个定时器无法满足定时需要”这一问题时,有几种解决方法?

答:可以有两种解决方法:

方法一:采用2个定时器级联,其中一个定时器用来产生周期信号,然后将该信号送入另一个

计数器的外部脉冲输入端进行脉冲计数。

方法二:采用1个定时器定时一定的间隔,然后用软件进行计数。

11、已知单片机系统晶振频率为6MHZ,若要求定时值为10ms时,定时器T0工作在方式1时,定时

器T0对应的初值为多少?TMOD的值为多少?TI10和TLO的值又是多少?

答:对应的初值为0EC78H,TMOD的值是0000000IB。THO=OECH;TL0=78H

12、使用TO,工作于方式2,请编程实现P1.0口输出周期为400us,占空比为10:1的脉冲。

答:

ttinclude<reg51.h>

sbitOSC=Pl'0;

main()

(

TM0D=0x02;〃设置TO的方式2

TH0=256-36;〃每次36us

TLO=THO;

EA=1;〃总中断允许

TRO=1;〃启动TO定时器

ETO=1;〃允许外部中断0中断

while(1);

}

voidETOISR(void)interrupt1〃定时中断

(

unsignedinti;

i++;

if(i==1)

(

OSC=1;〃36us的高电平时间到,电平变低

}

elseif(i==11)

(

OSC=0;〃360us的低电平时间到,电平变高

i=0:〃计数清零

}

)

13、利用AT89C51的P1口控制8个LED灯,相邻的4个LED为一组,使2组每隔0.5s交替发亮一

次,周而复始,试编写程序实现。

答:

ttinclude<reg51.h>

#defineucharunsignedchar

#defineuintunsignedint

voidmain(void)

TM0D=0x01;

TH0=0xbl;

TL0=0xe0;

IE=0X82;

TRO=1;

Pl=OxfO;

while(l);

)

voidTOisr()interrupt1

(

staticucharcount;

count++;

if(count==25)

(

P1=!P1;

count=0;

)

TH0=0xbl;

TL0=0xe0;

)

///////////////////////

#include<reg51.h>

#defineucharunsignedchar

#defineuintunsignedint

voiddelayms(uintn)

(

ucharj;

while(n一)

(

for(j=0;j<123;j++);

)

)

voidmain()

while⑴

Pl=OxfO;

delayms(500);

Pl=OxOf;

delayms(500);

)

)

14、要求从PL1引脚输出1000Hz的方波,晶振频率为12MHzo试编写程序实现。

答:

#include<reg51.h>

#defineucharunsignedchar

#defineuintunsignedint

sbitFB=Pri;

voidmain(void)

I

TM0D=0x01;

TH0=0xfe;

TL0=0x0c;

IE=0X82;

TRO=1;

FB-0;

while(l);

)

voidTOisr()interrupt1

FB=FB;

THO=Oxfe;

TLO=OxOc;

)

//////////////////////////////

#include<reg51.h>

#defineucharunsignedchar

4defineuintunsignedint

sbitFB=Pri;

voiddelayms(uintn)

(

ucharj;

while(n一)

(

for(j=0;j<123;j++);

}

}

voidmain()

(

while(1)

(

FB=O;

delayms(0.5);

FB=1;

delayms(0.5);

)

)

15、利用定时/计数器门定时中断控制,使Pl.7引脚驱动LED亮1s灭1s地闪烁(即输出脉冲周期

为2s),设时钟频率为12MHz。

答:include<reg51.h>

sbitLED=Pr7;

#defineucharunsignedchar

#defineuintunsignedint

voidmain(void)

(

TM0D=0x01;

TH0=0xec;

TL0=0x78;

IE=0X82;

TRO=1;

LED=1;

while(1);

)

voidTOisr()interrupt1

(

staticucharcount;

count++;

if(count==200)

(

LED二、LED;

count=0;

}

TH0=0xec;

TL0=0x78;

)

16、利用定时/计数器TO产生定时时钟,由Pl口控制8个指示灯。编写程序实现8个指示灯依次闪

动,闪动频率为1次/s(即亮Is后熄灭并点亮下一个LED)。

答:

#include<reg52.h>

#include<intrins.h>

#defineuintunsignedint

#defineucharunsignedchar

uchartemp;

intt;

voidmain()

(

TMOD=OxOl;

EA=1;

ET1=1;

TR1=1;

TH1=(65536-50000)/256;

TL1=(65536-50000)%256;

Pl=0xfe;

temp=Pl;

while(1)

(

)

)

voidTl_time()interrupt3

|

TH1=(65536-50000)/256;

TL1=(65536-50000)%256;

t++;

if(t==2)

(

t=0;

temp=_crol_(temp,1);

Pl=temp;

}

}

17、己知80C51单片机的工作频率为12MHz,采用定时/计数器T1定时,试编写程序实现PL0和

Pl.1引脚分别输出周期为2ms和500us的方波。

答:

ftinclude<reg51.h>

unsignedcharn;

sbitGatel=Pl0;

sbitGate2=Pl1;

mainO

(

n=0;

THl=Oxff;

TLl=OxO5;〃定时器250us产生一次中断

TMOD=0x10;〃定时器1工作于模式1,(用工作于模式2也可以,而且更简便)

TR1=1;〃使能定时器1

ETO=1;〃开中断

EA=1;〃开全局中断

while(l)

(

}

)

voidTimer(void)interrupt3

(

THl=Oxff;

TLl=0x05;〃定时器250us产生一次中断

Gate2=!Gate2;//产生500us方波

n++;

if(n==4)

(

n=0;

Gatel=!Gatel;〃产生2ms方波

)

)

18、定时/计数器TO己预置为156,且选定为方式2的计数方式,现在TO输入周期为1ms的脉冲,

此时TO的实际用途是什么?在什么情况下计数器0溢出?

答:TO的实际用途是定时1s,每隔1s计数器0溢出一次。

19、编程实现PL0输出脉冲宽度调制(PWM)信号,即脉冲频率为2KHz、占空比为7:10的矩形波,

晶振频率为12MHz。

答:

include<reg51.h>

sbitOUTW=PrO;

voidinit()

(

EA=1;

TM0D=0xll;

ETO=1;

ET1=1;

TRO=1;

TR1=O;

OUTW=O;

)

voidmain()

init();

while(l);

voidtimer()interrupt1

TH0=0xlf;

TL0=0x40;

THl=0xl5;

TLl=OxeO;

OUTW=1;

TR1=1;

)

voidtimerl()interrupt3

(

OUTW=O;

TR1=O;

)

20、两只开关分别接入P3.0和P3.1,在开关信号的4种不同组合逻辑状态下,使PL0分别输出频

率为0.5KHz、lKHz、2KHz、4KHz的方波,晶振频率为12MHz。

答:

#include<at89x52.h>

unsignedchardatasta;

unsignedchardatacou;

unsignedchardatamag;

voidmain()

TM0D=0x02;

TL0=131;

TH0=131;

TRO=1;

ETO=1;

EA=1;

cou=0;

while(1);

)

voidserve()interrupt1

I

unsignedchartemp;

P3=0xff;

temp=P3&0xfc;

if(temp!=sta)

(

sta=temp;

cou=0;

I

if(sta=0x00)

mag=7;

elseif(sta=0x01)

mag=3;

elseif(sta=0xl0)

mag=l;

elseif(sta=0xll)

mag=O;

if(cou==mag)

(

Pl_0=>l_0;

cou=0;

)

else

cou++;

}

第八章

练习与思考题

1.帧格式为1个起始位、8个数据位和1个停止位的异步串行通信方式是方式几?传输速率为

多少?

答:方式1;方式1波特率=2'*10/?2*定时器T1的溢出率。

2.某80C51单片机串行口传送的数据帧由1个起始位(0)、7个数据位、1个偶校验位和一个停

止位(1)组成。当该串行口每分钟传送1800个字符时,试计算其波特率。

答:串口每秒钟传送的字符为:1800/60=30个字符/秒,所以波特率为:30个字符/秒*10位/字

符=300bps

3.假定串行口串行发送的数据帧格式为1个起始位、8个数据位、1个奇校验位和1个停止位,

请画出传送字符“A”的帧格式。

答:“A”的ASCII码为“01000001”

从左到右:01000001

起始位低位高位耀位终止位

<______________--------------------------->

O1OOOOO1001

4.简述串行口接收和发送数据的过程.

答:以方式1为例。

发送:数据位由TXT端输出,发送1帧信息为10位,当CPU执行1条数据写发送缓冲器SBUF

的指令,就启动发送。发送开始时,内部发送控制信号/SEND变为有效,将起始位向TXD输出,此

后,每经过1个TX时钟周期,便产生1个移位脉冲,并由TXD输出1个数据位。8位数据位全部完

毕后,置1中断标志位TI,然后/SEND信号失效。

接收:当检测到起始位的负跳变时,则开始接收。接受时,定时控制信号有2种,一种是位检

测器采样脉冲,它的频率是RX时钟的16倍。也就是在1位数据期间,有16个采样脉冲,以波特率

的16倍的速率采样RXD引脚状态,当采样到RXD端从1到0的跳变时就启动检测器,接收的值是3

次连续采样,取其中2次相同的值,以确认是否是真正的起始位的开始,这样能较好地消除干扰引

起的影响,以保证可靠无误的开始接受数据。

5.80C51单片机串行口有几种工作方式?如何选择?简述每种工作方式的特点。

答:80C51单片机串行口有4种工作方式。

各方式的特点:

方式0:串行口为同步移位寄存器的输入输出方式。主要用于扩展并行输入或输出口。波特率固

定为晶振频率的1/12,

方式1:为10位数据异步通信口。波特率可变。

方式2或方式3:为11位数据的异步通信口。方式2波特率固定,相对于固定的晶振频率只有

两种波特率。方式3波特率可变。

使用时,根据需要和各方式的特点配合选择。

6.RS-232c逻辑电平与TTL逻辑电平是否兼容?分别是怎么规定的?两者之间如何转换?

答:不兼容;TTL电平通信应用于两个单片机距离在1.5m之内,串行口直接相连,RS-232c双击

通信应用于两个单片机距离在L5~30m时,实现点对点的双机通信;两者之间的转换常采用美国

MAXIM公司的MAX232A,它是全双工发送器/接收器接口电路芯片,可实现两者相互转换

7.什么是同步通信?什么是异步通信?

答:同步通信:同步通信是一种比特同步通信技术,要求发收双方具有同频同相的同步时钟信

号,只需在传送报文的最前面附加特定的同步字符,使发收双方建立同步,此后便在同步时钟的控

制下逐位发送/接收。

异步通信:异步通信在发送字符时,所发送的字符之间的时隙可以是任意的。但是接收端必须

时刻做好接收的准备(如果接收端主机的电源都没有加上,那么发送端发送字符就没有意义,因为接

收端根本无法接收)。发送端可以在任意时刻开始发送字符,因此必须在每一个字符的开始和结束的

地方加上标志,即加上开始位和停止位,以便使接收端能够正确地将每一个字符接收下来。

8.串口工作方式1用什么作为波特率发生器?

答:定时器Tl。

9.为什么定时/计数器T1作为串行口波特率发生器时采用方式2?若已知时钟频率和通信波特

率,则应如何计算其初值?

答:因为定时器T1在方式2下,初值可自动重装,这就避免了执行重装参数的指令所带来的时

间误差。

设定时器T1方式2的初值为x,计算初值x可采用如下公式:

波特率二(2SM0D/32)*(fosc/12)/(256-x)

10.使用80c51的串行通信口按工作方式1进行串行数据通信,假定波特率为2400bit/s,以中

断方式传送数据,试编写全双工通信程序。

答:^include<reg51.h>

voidInitUART(void)

(

TMOD=0x20;

SCON=0x50;

TH1=0xF4;

TL1=TH1;

PCON=0x00;

EA=1;

ES=1;

TRI=1;

}

voidSendOneByte(unsignedcharc)〃发送函数

(

SBUF=c;

while(!TI);

TI=0;

)

voidmain(void)

InitUARTO;

)

voidUARTInterrupt(void)interrupt4

if(RI)

(

RI=0;

)

else

TI=0;

)

11.参照例8-4,设计完成用甲单片机控制乙单片机来实现乙单片机Pl口8个LED的轮流点亮。

答:略。

第九章

练习与思考题

1.I/O接口和I/O端口的区别是什么?I/O接口的功能是什么?

答:I/O接口是单片机与外设间的连接电路的总称。I/O端口(简称I/O口)是指I/O接口电路

中具有单元地址的寄存器或缓冲器。I/O接口芯片都有一个或几个端口,一个端口对应于接口芯片内

部的一个寄存器或一组寄存器,计算机系统要为每个端口分配一个地址,各个端口的地址是唯i的,

不能重复。在信息传送过程中,接口起着数据锁存、数据缓冲、输入/输出、联络、数据转换、中断

管理、时序控制、可编程、电器特征匹配等作用。

2.I/O数据传送有哪几种传送方式?分别在哪些场合下使用?

答:同步传送、异步传送、中断传送

(1)同步传送(无条件传送)。当外设速度和单片机的速度相近时,常采用同步传送方式,例

如单片机和外部数据存储器之间的数据传送是最典型的同步传送。

(2)异步传送(查询传送)。单片机通过对外设的查询,然后进行数据传送。这样做的优点就

是通用性好,硬件连线和查询程序简单,但由于程序在运行中经常要查询外设的准备情况,因此工

作效率不高。

(3)中断传送。中断传送方式可提高单片机对外设的工作效率,即利用单片机本身的中断功能

和I/O接口芯片的中断功能来实现数据的传送。单片机只有在外设准备好后,才中断主程序的执行,

从而执行与外设进行数据传送的中断服务子程序。中断服务完成后又返回主程序断点处继续执行。

中断方式可以大大提高单片机的工作效率.

3.总线的优点有哪些?

答:系统连接简单,Pc总线系统直接与具有rc总线接口的各种扩展器件连接。12c总线对各

器件寻址采用纯软件的寻址方法,无需片选线的连接,这样就大大简化了总线数量,系统各部件之

间的连接只需两条线;传输速率高。

4.It总线在数据传送时,应答是如何进行的?

答:12c总线数据传送时,传送的字节数(数据帧)没有限制,每一字节必须为8位长。数据传

送时,先传送最高位,每一个被传字节后面都须跟I位应答位(一帧数据共9位)。PC总线在传送每

一字节数据后都须有应答信号A,A信号在第9个时钟位上出现,A信号对应的时钟由主机产生。这

时发方须在该时钟位上使SDA线处于高电平,以便收方在这一位上送出低电平的应答信号A»

由于某原因收方不对主机寻址信号应答时,例如接收方正在进行其他处理而无法接收总线上的

数据时,必须释放总线,将数据线置为高电平,而由主机产生一个终止信号以结束总线的数据传送。

当主机接收来自从机的数据时,接收到最后一个数据字节后,必须给从机发送一个非应答信号

(A),使从机释放数据总线,以便主机发送一个终止信号,从而结束数据的传送。

5.实时时钟芯片的优点是什么?

答:高性能、低功耗。芯片附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可

采用突发方式一次传送多个字节的时钟信号或RAM数据。实时时钟可提供秒、分、时、日、星期、

月和年,一个月小于31天时可自动调整,且具有闰年补偿功能。工作电压宽达2.5~5.5V。采用双电

源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后辈电源进行涓细电流充电的能

力。

6.DS18B20的内部结构由哪几部分组成?

答:DS18B20内部结构主要由四部分组成64位光刻ROM、温度传感器、非挥发的温度报警触发

器TH和TL、配置寄存器。

7.I2C总线传送起始信号和终止信号是如何定义的?

答:1C总线的起始信号和终止信号都由主机发出,在起始信号产生后,总线就处于占用状态;

在终止信号产生后,总线就处于空闲状态。

(1)起始信号(S)。在SCL线为高电平期间,SDA线由高电平向低电平的变化表示起始信号,只

有在起始信号以后,其他命令才有效。

(2)终止信号(P)。在SCL线为高电平期间,SDA线由低电平向高电平的变化表示终止信号。随

着终止信号的出现,所有外部操作都结束。

8.12c总线数据位的有效性是如何规定的?

答:FC总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在

时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。

9.SPI总线有何特点?

答:SPI是Motorola公司推出的一种同步串行通讯方式,是一种三线同步总线。有多个SPI接

口的单片机时,应为一主多从,在某一时刻只能由一个单片机为主器件;在扩展多个SPI外围器件

时,单片机应分别通过I/O口线来分时选通外围器件。

10.简述SPI通信原理。

答:SPI的通信原理:主从方式工作,通常有一个主设备和一个或多个从设备,需要至少4根

线,事实上3根也可以(单向传输时)。也是所有基于SPI的设备共有的,它们是SDI(数据输入),

SDO(数据输出),SCK(时钟),CS(片选)。

(1)SDO-主设备数据输出,从设备数据输入

(2)SDI-主设备数据输入,从设备数据输出

(3)SCLK-时钟信号,由主设备产生

(4)CS-从设备使能信号,由主设备控制

第10章80C51单片机D/A、A/D转换接口模块

练习与思考题10

1.什么叫D/A和A/D转换?为什么要进行D/A和A/D转换?

答:D/A转换器又称数模转换器,是能将数字信号转换成模拟信号的电路。A/D转换又称模数转

换,是把模拟信号转换成数字信号的电路。

单片机是数字方式进行运算的,而实际的机器人或电器等在运转时,是模电下进行的。两者的

通信需要一个接口,而D/A和A/D转换就是实现这个接口的桥梁。

2.D/A转换器有哪些主要性能指标?简述其含义。

答:(1)分辨率:指DAC电路所能分辨的最小输出电压与满量程输出电压之比。

(2)线性度:实际转换特性曲线与理想直线特性之间的最大偏差。

(3)绝对精度(简称精度):在整个刻度范围内,任一输入数码所对应的模拟量实际输出值与

理论值之间的最大误差。

(4)建立时间:输入数字量变化后,输出模拟量稳定到相应数值范围所经历的时间。

(5)温度系数:在输入不变的情况下,输出模拟电压随温度变化产生的变化量。

3.D/A转换的基本原理是什么?

答:D/A转换器将输入的数字量转换为模拟量输出,数字量是由若干数位构成的,就是把每一位

上的代码按照权值转换为对应的模拟量,再把各位所对应的模拟量相加,所得到各位模拟量的和便

是数字量所对应的模拟量。

4.A/D转换器有哪些主要性能指标?简述其含义。

答:(1)分辨率:DAC电路所能分辨的最小输出电压与满量程输出电压之比。

(2)转换速率:完成一次从模拟转换到数字的AD转换所需的时间的倒数。

(3)量化误差:有限分辨率AI)的阶梯状转移特性曲线与无限分辨率AD(理想AD)的转移特性曲

线(直线)之间的最大偏差。

(4)偏移误差:输入信号为零时输出信号不为零的值。

(5)满刻度误差:满刻度输出时对应的输入信号与理想输入信号值之差。

(6)线性度:实际转换器的转移函数与理想直线的最大偏移。

5.A/D转换有哪儿种方法?原理是什么?

答:A/D转换主要包括积分型、逐次逼近型、并行比较型/串并行型、E-A调制型、电容阵列逐

次比较型及压频变换型。

工作原理:将时间连续、幅值也连续的模拟量转换为时间离散、幅值也离散的数字信号,一般

要经过取样、保持、量化及编码4个过程。

6.双积分型A/D转换的优缺点是什么?

答:转换速度较慢,抗干扰能力强,精度较高。

7.在ADC和DAC转换器的主要技术指标中,分辨率与转换精度有何不同?

答:对DAC来说,分辨率反映了输出模拟电压的最小变化量。而对于ADC来说,分辨率表示输

出数字量变化一个相邻数码所需输入模拟电压的变化量。量化误差是由ADC的有限分辨率而引起的

误差,但量化误差只适用于ADC,不适用于DAC。精度与分辨率基本一致,位数越多精度越高。严格

讲精度与分辨率并不完全一致。只要位数相同,分辨率则相同,但相同位数的不同转换器精度会有

所不同。

8.在什么情况下,A/D转换器前应引入采样保持器?

答:A/D转换器完成一次A/D转换总需要一定的时间。在进行A/D转换时间内,希望输入信号

不再变化,以免造成转换误差。这样,就需要在A/D转换器之前加入采样保持器。

9.判断A/D转换结束否一般可采用几种方式?每种方式有何特点?

答:延时等待法;保持等待法;查询法;中断响应法。

(1)延时等待法:EOC可不和I/O口连接,程序设计时,延时大于ADC转换时间后,取数据。

(2)保持等待法:EOC与READY相连EOC无效时,自动插入等待状态。直至EOC有效时,取数据。

(3)查询法:EOC可以和任意I/O口连接,程序设计时,反复判断EOC是否有效,直至EOC有效时,

取数据。(4)中断响应法:EOC与外部中断相连,A/D转换结束后,发中断申请,在中断服务程序中取

数据式。

10.A/D转换器的参考电压的作用是什么?

答:A/D转换时的参考电压是内部T行网络的标准电压,参考电压可以认为是最高上限电压(不

超过电源电压),当信号电压较低时,可以降低参考电压来提高分辨率。改变参考电压后,同样二进

制表示的电压值就会不一样,最大的二进制表示的就是参考电压,在计算实际电压时,就需要将参

考电压考虑进去。参考电压的稳定性对系统性能有很大的影响。

11.DAC0832主要特性参数有哪些?

答:(1)2路电流输出型D/A转换器;(2)分辨率为8位,并行输入;(3)输入数据的逻辑电平

与TTL电平兼容;(4)可以与微处理器直接连接:(5)数字量输入有直通、单缓冲和双缓冲3种方

式;(6)满量程误差为±1LSB;(7)电流稳定时间为1us;(8)增益温度系数为0.0002%FS/℃;

(9)参考电压为±10V;(10)单电源电压为515VDC;(11)低功耗,约20m队

12.简述DAC0832芯片的输入寄存器和DAC寄存器二级缓冲的优点。

答:可以分别控制,常用于多路D/A转换电路。即数字量的输入和转换可分两步完成,可以

把数据总线分时的向各路D/A转换器输入要转换的数字量并锁存在各自的锁存器中,然后CPU对所

有的D/A转换器发出控制信号,实现同步转换。

13.简述DAC0832的工作过程。

答:根据对DAC0832的数据锁存器和DAC寄存器的不同的控制方式,DAC0832有三种工作方

式:直通方式、单缓冲方式和双缓冲方式。

(1)单缓冲方式。单缓冲方式是控制输入寄存器和DAC寄存器同时接收资料,或者只用输入寄

存器而把DAC寄存器接成直通方式。此方式适用只有一路模拟量输出或几路模拟量异步输出的情形。

(2)双缓冲方式。双缓冲方式是先使输入寄存器接收资料,再控制输入寄存器的输出资料到DAC

寄存器,即分两次锁存输入资料。此方式适用于多个D/A转换同步输出的情节。

(3)直通方式。直通方式是资料不经两级锁存器锁存,即CS*,XFER*,WRI*,WR2*均接地,

ILE接高电平。此方式适用于连续反馈控制线路和不带微机的控制系统,不过在使用时,必须通过另

加I/O接口与CPU连接,以匹配CPU与D/A转换。

14.简述应该如何处理ADC0809的ALE信号和START信号。

答:ALE:地址锁存允许信号在ALE上升沿,ADDA、ADDB、ADDC地址状态被送入地址锁存器中。

START:转换启动信号。START上跳沿时,所有内部寄存器清0;START下跳沿时,开始进行A/D

转换;在AD转换期间,START应保持低电平。

ADC0809输出具有三态锁存,START与ALE信号连在一起,这样在START端加上高电平启动信号

的同时,将通道号进行锁存。

15.简述ADC0809的工作过程。

答:(1)把通道地址送到ADDA〜ADDC上,选择模拟输入;(2)在通道地址信号有效期间,ALE

上的上升沿该地址锁存到内部地址锁存器;(3)START引脚上的下降沿启动A/D变换;(4)变换开始

后,E0C引脚呈现低电平,E0C重新变为高电平时表示转换结束;(5)0E信号打开输出锁存器的三态

门送出结果。

16.MC14433有什么特点?

答:MC14433是3位半双积分A/D转换器,是目前市场上广为流行的典型的A/D转换器。MC14433

具有抗干扰性能好,转换精度高,自动校零,自动极性输出,自动量程控制信号输出,动态字位扫

描BCD码输出,单基准电压,外接元件少,价格低廉等特点。

17.当单片机控制ADC转换时,程序查询方式与中断控制方式有什么不同?各自的优缺点是什么?

答:中断方式是当中断条件满足时立即中止当前正在运行的程序,进入中断服务程序,执行完

毕后返回断点继续执行,程序查询方式是一直在循环主程序中通过查询语句判断条件是否满足,因

主程序执行周期的影响,查询实效性很低,对于要求低的应用可以勉强使用,对实效性要求高的情

况必须使用中断方式,比如通过外部中断测速,查询方式对较高速度的响应会产生十分大的误差,

甚至测量数值混乱。

18.在一个由80c51单片机与一片DAC0832组成的应用系统中,DAC0832的地址为7FFFH,输出

电压为0、5V。试画出有关逻辑电路图,并编写转换程序产生矩形波,波形占空比为1:4,高电平为

2.5V,低电平为1.25V。

答:硬件电路连接图如图所示:

DAC0832的地址为7FFFH,波形占空比为1:4,高电平波形时间与低电平波形时间的比值为1/3。

当Vo=2.5V时,D=80H;Vo=l.25V时,D=40Ho

程序如下:

ORG0000H

LJMPMAIN

ORG0030II

MAIIN:MOVSP,#60H

MOVDPTR,#7FFFH

NEXT:MOVA,#80H

MOVX@DPTR,A

ACALLDELAY

MOVR4,#03H

MOVA,#40H

MOVX©DPTR,A

LOOP:ACALLDELAY

DJNZR4,LOOP

AJMPNEXT

DELAY:,,,,

RET

END

19.在一个由80C51单片机与一片ADC0809组成的数据采集系统中,ADC0809的地址为

7FF8r7FFFH。试画出逻辑电路图,并编写程序,每隔Imin轮流采集一次8通道数据,8通道总共采

集100次,其采样值存入外RAM,从3000H开始存储。

答:硬件电路连接图如图所示:

设8051的时钟频率为12MHZ,程序如下:

0RG0000H

LJMPMAIN

0RG001BH

LJMPTl_l

ORG01OOH

MAIN:MOVSP,#60H;设堆栈指针

MOVR7,#100;置采集次数

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

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

MOVR2,#20;置入初值20(计1s)

MOVR3,#60;置入初值60(计1min)

SETB7FH;置1min标志为1

MOVTOMD,1收0H;定时器T1工作于模式1

MOVTH1,#3CH;计数器初值

MOVTL1,#OBOH

SETBEA;开中断

SETBET1;定时器口允许中断

SETBTRI;启动定时器T1

LOOP:SJMPLOOP;等待中断

JB7FH,LOOP;1min未到,等待

DJNZR7,LOOP;是否到100次?

SJMP$

ORG0200H

Tl_1:MOVTH1,#3CH;中断服务程序,重新赋计数器初值

MOVTL1,#0B0H

SETB7FH;置1min未到标志

DJNZR2,RETI_O;ls未到,返回

MOVR2,#20;重新置“100s”计数器初值

DJNZR3,RETI_O;1min未到,返回

MOVR3,#60

CLR7FH;置1min到标志

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

MOVDPTR,#7FF8H;IN0地址

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

JBP3.2,$;判断转换是否结束

MOVXA,©DPTR;读取转换结果

PUSHDPH;将通道地址压入堆栈

PUSHDPL

MOVDPH,RI;将片外RAM地址送DPTR

MOVDPL,RO

MOVX©DPTR,A;将转换结果存入片外RAM

INCDPTR;片外RAM地址增1

MOVRi,DPH;保存片外RAM地址

MOVRO,DPL

POPDPL;恢复通道地址

POPDPH

INCDPTR

DJNZR6,LOOP1;8个通道是否采集结束

RETI;中断返回

END

查询法采集8路数据的程序:

ORG0000H

LJMPMAIN

ORG0030H

MAIN:MOVSP,#60H;设堆栈指针

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

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

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

MOVDPTR,#7FF8H;IN0地址

LOOP1:MOVX@DPTR,A;启动AD转换

JNBP1.0,$;判转换是否结束

MOVXA,@DPTR;读取转换结果

PUSHDPH;将通道地址压入堆栈

PUSHDPL

MOVDPH,RI;将片外RAM地址送DPTR

MOVDPL,RO

MOVX@DPTR,A;将转换结果存入片外RAM

INCDPTR;片外RAM地址增1

MOVRI,DPH;保存片外RAM地址

MOVRO,DPL

POPDPL;恢复通道地址

POPDPH

INCDPTR

DJNZR6,LOOP1;8个通道是否采集结束

SJMP$

END

中断法采集8路数据的程序:

ORGOOOOH

LJMPMAIN

ORG0003H

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论