单片机与应用复习题含参考答案Word文档下载推荐.docx

上传人:b****6 文档编号:16300750 上传时间:2022-11-22 格式:DOCX 页数:18 大小:277.44KB
下载 相关 举报
单片机与应用复习题含参考答案Word文档下载推荐.docx_第1页
第1页 / 共18页
单片机与应用复习题含参考答案Word文档下载推荐.docx_第2页
第2页 / 共18页
单片机与应用复习题含参考答案Word文档下载推荐.docx_第3页
第3页 / 共18页
单片机与应用复习题含参考答案Word文档下载推荐.docx_第4页
第4页 / 共18页
单片机与应用复习题含参考答案Word文档下载推荐.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

单片机与应用复习题含参考答案Word文档下载推荐.docx

《单片机与应用复习题含参考答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《单片机与应用复习题含参考答案Word文档下载推荐.docx(18页珍藏版)》请在冰豆网上搜索。

单片机与应用复习题含参考答案Word文档下载推荐.docx

A.33H   B.CCH   C.DFH   D.F8H

15、用8位地址实现输入和输出口寻址,可寻址的输入、输出口数最多为B

A.8个   B.256个  C.512个  D.128个

16、微机系统中的一个输入口和一个输出口用同一地址,A

A.不会出现矛盾    B.在输入时会出现问题

C.在输出时会有问题  D.根本不能用

17、若每个存储单元为8位,设存储空间为8000H~BFFFH,则其中可存放的字数(16位)是B

A.4K   B.8K   C.16K   D.32K

18、8051外部中断的触发方式为A

A.低电平或下降沿触发  B.仅下降沿触发

C.仅低电平触发     D.高电平触发

19、8051关于外部中断的正确说法是D

A.外部中断

为电平触发,而

是边沿触发

B.外部中断

为边沿触发,而

是电平触发

C.外部中断

为电平触发还是取决于TCON的IE0、IE1

D.对于边沿触发器的外部中断请求,进入中断服务程序时,外部中断请求标志由内部硬件清零

20、若8051系统中断源同时请求中断,则最先响应的中断为B

A.由指令设置而定B.INT0   C.TF0   D.RI

21.8051单片机中,响应中断请求时,其中优先级最高的是D

A.IE1   B.TF1   C.RI+TI   D.TF0

22、8051响应中断后,需由用户采用软件来清除中断标志的是A

A.TI、RI   B.TF0、TF1   C.IE0、IE1  D.IE0、TF0

23、能用于消除键盘抖动的硬件电路为   A   

A.基本RS触发器  B.D触发器   C.驱动器   D.缓冲器

24、8位CPU与12位无数据锁存功能D/A芯片相连时,其合理的连接方式应为D

A.两级三态缓冲  B.一级锁存   C.两级锁存 D.一级或两级锁存均可

25、某医用冰箱温度控制范围为0°

C~-70°

C,已选用了合适的温度传感器和CPU,除此以外,还必须选用主要芯片为B

A.A/D、D/A、定时器 B.A/D、D/A  C.A/D、定时器  D.D/A、定时器

26、两片DAC0832与8位CPU相连,要求两片DAC0832同时对不同的数据进行D/A转换,则两片DAC0832共需地址端口数为D

A.1   B.2    C.3   D.4

27、某数据采集系统需在同一时刻采集三路模拟量数据,为满足这一要求,在下述几种设计方案中,合理的应为B

a.四选一模拟开关-采样保持器-A/D-CPU

b.

四选一模拟开关-A/D-CPU

c.

CPU

A.a或b  B.b或c  C.c或a  D.仅a

28、一个语音信号的数字化过程主要是一个A/D转换过程。

设A/D转换器的输入电压范围为0~5V,若语音的最高频率为3500Hz,其动态范围为80分贝,要求分辨率为4mv,应选ADC芯片的位数、转换时间分别为A

A.12位、小于300us    B.10位、小于300us

C.12位、小于100us    D.14位、小于20us

29、甲乙两台计算机近距离RS232相连进行串口通信时,常采用最简单的三线连接法,即B

A.甲机的TXD、RXD、GND分别与乙机的TXD、RXD、GND相连

B.甲机的TXD、RXD、GND分别与乙机的RXD、TXD、GND相连

C.甲机的

、TXD、RXD分别与乙机的

、TXD、RXD相连

D.甲机的

、RXD、

分别与乙机的

相连

30、串口通信中,正确的发送或接收指令为B

a.SBUF=a;

while(RI==0);

RI=0;

b.SBUF=a;

while(TI==0);

TI=0;

c.while(RI==0);

b=SBUF;

d.while(TI==0);

A.a和b   B.b和c   C.仅d   D.b和c

31、宏定义#defineIN0XBYTE[0x8000]中常量IN0是B

A.片内RAM的地址

B.片外RAM的地址

C.存放在地址为0x8000的片外RAM中的无符号字节型数据

D.存放在地址为0x8000的片外ROM中的无符号字节型数据

32、共阴极g~a经接口电路接主系统数据总线D6~D0,设D6~D0为0100100时显示字符“2”,该接口电路的基本组成应为B

A.同相锁存器,同相驱动器   B.反相锁存器,同相驱动器

C.同相锁存器,反相驱动器   D.反相锁存器,反相驱动器

33、设A(P1.3)、B(P1.2)、C(P1.1)、D(P1.0)为四相步进电机的四相,且各相为低电平驱动,则正确的环形脉冲分配器为B

A.unsignedcharidatastep[8]={0x08,0x0C,0x04,0x06,0x02,0x03,0x01,0x09};

B.unsignedcharcodestep[8]={0x07,0x06,0x0E,0x0C,0x0D,0x09,0x0B,0x03};

C.unsignedcharstep[8]={0x08,0x09,0x01,0x03,0x02,0x06,0x04,0x0C};

D.unsignedcharidatastep[]={0x08,0x04,0x02,0x01};

34、8051一个键盘/显示器的单片机系统,其监控程序通常应包括D

a.键盘管理

b.显示

c.初始化

d.存储器管理

A.a,b   B.a,b,c    C.b,c,d    D.a,b,c,d

35、十字路口的红绿灯定时控制系统,其硬件主要由CPU、存储器、D组成

A.传感器、A/D转换电路和驱动电路

B.传感器、A/D转换电路和开关量接口

C.人机对话部件、A/D转换电路和驱动电路

D.开关量接口、驱动电路

 

二、填空

1、一个机器周期=12个晶振周期

2、8051串口工作方式3为11位、波特率可变的传输方式,写出11位数据格式1位起始位,8位数据位,1位可编程位,1位停止位

3、8051单片机复位后,其特殊功能寄存器SP的值为07H

4、用8位地址实现输入和输出口寻址,可寻址的输入、输出口数量最多为256个

5、8051单片机中,定时器1的中断入口地址是001BH,用C51表示8051定时器1的中断服务函数为voidT1-IRS(void)interrupt3

6、若时钟晶振为12MHz,则8051单片机定时器0、1的最长定时时间间隔是65.536ms

7、数码显示器有静态显示和动态显示两种显示方式

8、8051外部中断

有低电平触发和下降沿触发两种方式

9、语句TMOD=(TMOD&

0xf0)|0x01;

功能设置T0工作于方式1,T1不变

10、正常情况下,8051单片机一个机器周期内包括2个ALE信号。

11、若unsignedchara=15,则执行a<

<

=3;

后,a的结果为120

12、AT89S51单片机内部有4k的FlashROM,若要用内部的ROM引导则

应接高电平

三、简答题

1、8051单片机内部资源概述;

(1)一个8位CPU

(2)一个片内振荡器及时钟电路

(3)4KBROM程序存储器

(4)128BRAM数据存储器

(5)两个16位定时器/计数器

(6)可寻址64KB外部数据存储器和64KB外部程序存储器空间的控制电路

(7)32条可编程的I/O线

(8)一个可编程全双工串行接口

(9)具有5个中断源、两个优先级嵌套中断结构

2、8051单片机片内RAM的空间划分与地址段分配;

高128BRAM特殊功能寄存器(SFR)

3、8051四个并行接口各自的功能;

P0口:

P0口可以作为输入输出口,但在实际应用中常作为地址/总线口,即低8为地址与数据线分时使用P0口。

低8位地址由ALE信号的负跳变使它锁存到外部地址锁存器中,而高8位地址由P2口输出。

P1口:

P1口的每一位都能作为可编程的输入或输出线。

P2口:

P2口可以作为输入口或输出口使用,外接I/O设备时,又作为扩展系统的地址总线,输出高8位地址,与P0口一起组成16位地址总线。

P3口:

P3口为双功能口。

作为第一功能使用时,其功能同P1口。

4、8051单片机试外部中断INT0、定时器中断T0、串行口中断产生中断的原理;

(1)、外部中断INT0的原理

若INT0中断允许(使能EX0=1,EA=1),则CPU立即停止当前程序,跳转到INT0对应的中断入口(ROM保留地址0x0003)执行中断服务程序(中断服务程序后CPU自动对中断标志清零:

IE0=0),待INT0中断服务程序执行完毕后再回原执行程序处;

若INT0中断未允许,则程序不能跳转到INT0中断入口,不执行中断服务程序(中断标志IE0不能自动清0)。

(了解:

当INT0引脚输入如下信号:

下降沿(IT0=1)或低电平(IT0=0)

CPU自动(硬件)产生中断标志(IE0=1))

(2)、定时器中断T0原理

若T0中断允许(使能ET0=1,EA=1),则CPU立即停止当前程序,跳转到T0对应的中断入口(ROM保留地址0x000B)执行中断服务程序(中断服务程序后CPU自动对溢出标志清零:

TF0=0),待T0中断服务程序执行完毕后再回原执行程序处;

voidTIMER0_ISR(void)interrupt1

{//定时器0中断服务程序

}

若T0中断未允许,则程序不能跳转到T0中断入口,不执行中断服务程序(中断标志此时TF0不能自动清0)。

手工启动定时器(TR0=1)后,T0开始对机器周期计数(硬件对TH0、TL0构成的16位计数器递增计数);

当计至TH0=0xff,TL0=0xff后,再计一次则定时器产生溢出(溢出标志TF0=1))

(3)、串行口中断产生中断的原理

执行串口发送指令SBUF=a;

通过TXD口发送串行数据,发送结束后CPU自动产生发送结束标志(TI=1);

此时若串行中断使能(ES=1,EA=1),则程序立即停止当前程序,跳转置中断号为4的串行口中断入口地址(0x0023),执行中断服务程序voidUART_ISR(void)interrupt4,CPU不具有自动清零功能;

同样,若串口在RXD引脚接收到数据,硬件自动产生接收结束标志(RI=1),若此时若串行中断使能(ES=1,EA=1),则程序立即停止当前程序,跳转置中断号为4的串行口中断入口地址(0x0023),执行中断服务程序voidUART_ISR(void)interrupt4,CPU不具有自动清零功能,可通过b=SBUF;

指令取出暂存在数据缓冲区内的数据。

5、8051单片机的5个中断源名称、各自对应的中断号与中断入口地址,中断服务程序函数形式,各自的中断标志位名称,中断优先级等。

中断源名称

中断号(n)

中断入口地址(8n+3)

中断服务程序函数形式

中断标志位名称

中断优先级

外部中断0

0003H

voidINT0_ISR(void)interrupt0

{}

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

1

000BH

voidT0_ISR(void)interrupt1

外部中断1

2

0013H

voidINT1_ISR(void)interrupt2

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

3

001BH

voidT1_ISR(void)interrupt3

串行接口

4

0023H

voidUART_ISR(void)interrupt4

6、若串口通信率为9600bps,每个字节以10位方式传输。

若要传输1K字节大概多少时间?

7、会根据给定的fosc频率,计算8051定时器0的方式0、方式1、方式2的最长定时时间间隔计算。

方式0:

方式1:

方式2:

8、8051单片机应用系统的开发语言与开发步骤;

(1)开发语言:

C语言、汇编语言

(2)开发步骤:

了解系统功能、要求、任务

确定设计方案

硬件设计

软件设计

系统调试

9、标志位:

EX0、EX1、ET0、ET1、ES;

IE0、IE1、TF0、TF1、RI、TI;

IT0、IT1;

TR0、TR1;

SMOD的功能;

EX0:

外部中断0中断允许位。

1允许;

0禁止。

EX1:

外部中断1中断允许位。

ET0:

定时/计数器0的溢出中断允许位。

ET1:

定时/计数器1的溢出中断允许位。

ES:

串行接口中断允许位。

RI:

串行接口接收中断标志。

在串行接口方式0中,收到第8位数据时,由硬件置位;

其它方式中,收到停止位的中间位置时硬件置位。

中断服务子程序中,软件清0。

TI:

串行接口发送中断标志。

在串行接口方式0中,每当发完8位数据时由硬件置位;

其它方式中,停止位开始时置位。

TF0:

T0的溢出中断标志。

当T0溢出时,硬件使其置1。

CPU响应该中断时,硬件清0。

TF1:

T1的溢出中断标志。

当T1溢出时,硬件使其置1。

TR0:

T0的运行控制位。

1启动计数;

0停止计数。

TR1:

T1的运行控制位。

IT0:

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

1下降沿出发;

0低电平触发。

IT1:

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

IE0:

外中断0中断请求标志。

为低电平或下降沿时,IE0由硬件置1。

CPU响应该中断时,硬件使IE0清0。

IE1:

外中断1中断请求标志。

为低电平或下降沿时,IE1由硬件置1。

CPU响应该中断时,硬件使IE1清0。

SMOD:

波特率选择位。

串口工作于方式2时,0波特率为振荡器频率的1/64,1波特率为振荡器频率的1/32;

串口工作于方式1或方式3时,0波特率为定时器1溢出率的1/32,1波特率为定时器1溢出率的1/16。

10、寄存器:

TMOD、TH0、TL0、TH1、TL1、SCON、PCON、PCON、SBUF的功能。

TMOD:

:

1计数器方式;

0定时器方式。

(一般取0)。

GATE:

一般取0。

TCON:

SCON:

SM0,SM1:

串口操作方式选择位。

(表2-9)

SM2:

允许方式2和方式3的多机通信使能位。

(一般取0)

REN:

允许串行接收位。

(一般取1)

TB8:

方式2和3中要发送的第9位数据。

(任意项)

RB8:

方式2和3中已接收的第9位数据。

TI,RI:

发送、接收中断标志。

PCON:

SBUF:

存放串口已接收或要发送的一个字节的数据。

四、程序设计

1、语句功能分析与应用;

#definesetbit(var,bit)(var|=(0x01<

(bit)))//定义置位函数

#defineclrbit(var,bit)(var&

=(~(0x01<

(bit))))//定义位清零函数

#definecheckbit(var,bit)(var&

(0x01<

(bit)))//定义位查询函数

#definexorbit(var,bit)(var^=(0x01<

(bit)))//定义位取反函数

2、给定晶振,在P1.0引脚上产生一要求的方波,写出完成的源程序,包括主程序与定时器中断服务程序;

#include"

reg51.h"

#defineCOUNT445//修改周期

unionMY1

{

unsignedinta;

unsignedcharb[2];

unionMY1X;

sbitp1_0=P1^0;

staticunsignedchari=0;

TH0=X.b[0];

TL0=X.b[1];

i++;

if(i==3){p1_0=0;

}//修改占空比

if(i==4)

{

p1_0=1;

i=0;

}

voidmain(void)

X.a=65535-COUNT;

TMOD=(TMOD&

0xf0)|0x01;

ET0=1;

EA=1;

TR0=1;

while

(1)

{}

周期为2ms,占空比为75%的方波。

3、给定fosc=11.0592MHz,根据串口通信波特率参数要求,写出串口初始化程序voidsbuf_init(),要求有计算过程。

波特率计算方法:

晶振频率,n:

计数器的计数值,SMOD:

波特率选择位,等于0或1。

方式1:

方式2:

方式3:

与方式1一样

voidsbuf_init(void)//11.0592MHz--10位异步通信方式,9600bps,SMOD=0,T1计数值n=3

SCON=0x50;

//01010000串口工作于方式1

PCON=0X00;

//最高位SMOD=0

0x0f)|0x20;

//T1工作于方式2,8位计数器TL1溢出后,TH1的值自动载入TL1.

TH1=0Xfd;

//T1计数值为3

TL1=0xfd;

TR1=1;

//T1启动

4、会定时器相关计算。

(参考简答题7)

五、分析设计题

1、A/D转换(实验七)

(1)会分析与设计ADC0809与AT89S51的接口电路;

(2)会根据硬件电路确定ADC0809的外部RAM地址;

上图中ADC引脚(实验中接P2.7)为0时,芯片被选中。

(3)会分析与设计基于查询方式的A/D转换程序;

absacc.h"

#defineAIN0XBYTE[0x0000]

sbitEOC=P3^3;

unsignedchari=0;

unsignedchara;

AIN0=0;

//开始AD转换

i=i;

while(EOC==0);

//等待转换完成

a=AIN0;

//转换结果放在变量a中

}

(4)会根据采集到的数字量与输入模拟量进行对应的计算。

V:

参考电压(

)n:

采集到的数字量

测得模拟电压

2、D/A转换(实验八)

(1)会设计DAC0832与AT89S51的单缓冲方式接口电路;

(2)会根据硬件电路确定DAC0832的外部RAM地址;

上图中DAC引脚(实验中接P2.7)为0时,芯片被选中。

(3)会编写锯齿波或三角波程序;

三角波:

voidtriangle(void)//三角波子函数,如要改成锯齿波,只需去除产生下降沿的For循环。

unsignedchari;

for(i=0;

i<

255;

i++)//三角波上升沿

{

DAC0832=i;

delay

(1);

}

i++)//三角波下降沿,去除此循环即为锯齿波。

DAC0832=255-i;

}

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

当前位置:首页 > 小学教育 > 语文

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

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