单片机与应用复习题含参考答案Word文档格式.docx

上传人:b****1 文档编号:5674356 上传时间:2023-05-05 格式:DOCX 页数:22 大小:267.91KB
下载 相关 举报
单片机与应用复习题含参考答案Word文档格式.docx_第1页
第1页 / 共22页
单片机与应用复习题含参考答案Word文档格式.docx_第2页
第2页 / 共22页
单片机与应用复习题含参考答案Word文档格式.docx_第3页
第3页 / 共22页
单片机与应用复习题含参考答案Word文档格式.docx_第4页
第4页 / 共22页
单片机与应用复习题含参考答案Word文档格式.docx_第5页
第5页 / 共22页
单片机与应用复习题含参考答案Word文档格式.docx_第6页
第6页 / 共22页
单片机与应用复习题含参考答案Word文档格式.docx_第7页
第7页 / 共22页
单片机与应用复习题含参考答案Word文档格式.docx_第8页
第8页 / 共22页
单片机与应用复习题含参考答案Word文档格式.docx_第9页
第9页 / 共22页
单片机与应用复习题含参考答案Word文档格式.docx_第10页
第10页 / 共22页
单片机与应用复习题含参考答案Word文档格式.docx_第11页
第11页 / 共22页
单片机与应用复习题含参考答案Word文档格式.docx_第12页
第12页 / 共22页
单片机与应用复习题含参考答案Word文档格式.docx_第13页
第13页 / 共22页
单片机与应用复习题含参考答案Word文档格式.docx_第14页
第14页 / 共22页
单片机与应用复习题含参考答案Word文档格式.docx_第15页
第15页 / 共22页
单片机与应用复习题含参考答案Word文档格式.docx_第16页
第16页 / 共22页
单片机与应用复习题含参考答案Word文档格式.docx_第17页
第17页 / 共22页
单片机与应用复习题含参考答案Word文档格式.docx_第18页
第18页 / 共22页
单片机与应用复习题含参考答案Word文档格式.docx_第19页
第19页 / 共22页
单片机与应用复习题含参考答案Word文档格式.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

单片机与应用复习题含参考答案Word文档格式.docx

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

单片机与应用复习题含参考答案Word文档格式.docx

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

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

A.由指令设置而定B.INT0C.TF0D.RI

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

A.IE1B.TF1C.RI+TID.TF0

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

A.TI、RIB.TF0、TF1C.IE0、IE1D.IE0、TF0

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

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

A.两级三态缓冲E.—级锁存C.两级锁存D.—级或两级锁存均可

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

C〜一70°

C,已选用了合适的温度传感器和CPU,除此以外,还

必须选用主要芯片为B

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

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

DAC0832共需地址端口数为D

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

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

理的应为B

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

b.采样保持器2—四选一模拟开关—A/D—CPU

采样保持器3

采样保持器1—A/D—缓冲器

c.采样保持器2—A/D—缓冲器—CPU

采样保持器3—A/D-缓冲器

A.a或bB.b或cC.c或aD.仅a

A/D转换过程。

设A/D转换器的输入电压范围为0~5V,若

80分贝,要求分辨率为4mv,应选ADC芯片的位数、转换

C.甲机的

RTS、TXD、RXD分别与乙机的

GS、TXD、RXD相连

D.甲机的DTR、RXD、DSR分别与乙机的DSR、RXD、DTR相连

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);

e.

b=SBUF;

31、宏定义#defineINOXBYTE[0x8000]中常量INO是B

A.片内RAM的地址

B.片外RAM的地址

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

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

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

a.键盘管理

b.显示

c.初始化

d.存储器管理

A.a,bB.a,b,cC.b,c,dD.a,b,c,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、数码显示器有静态显示和动态显示两种显示方式

8051外部中断INT0、iNTT有低电平触发和下降沿触发两种方式

9、语句TMOD=(TMOD&

0xf0)|0x01;

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

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

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

<

=3;

后,a的结果为120

12、AT89S51单片机内部有4k的FlashROM,若要用内部的ROM引导则EA应接高电平

三、简答题

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的空间划分与地址段分配;

工作寄存器区0:

00H~07H

工作寄存器区1:

08H~0FH

工作寄存器区2:

10H~17H

低128BRAM

工作寄存器区3:

18H~1FH

位寻址区:

20H~2FH

数据缓冲器:

30H~7FH

5

高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单片机试外部中断INTO、定时器中断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

(INT。

0003H

voidINT0_ISR(void)interrupt0

{}

r

定时/计数器0

溢出中断(T0)

1

000BH

voidT0_ISR(void)interrupt1

TF。

外部中断1

(INT1)

2

0013H

voidINT1」SR(void)interrupt2{}

IE1

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

3

001BH

voidT1_ISR(void)interrupt3

串行接口

4

0023H

voidUART_ISR(void)interrupt

RI、TI

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

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

t=1024101.07s

方式0:

tma^f2213二

fosc

方式1:

tmax

12

osc

216

方式2:

tmax二f228二

fosc

9600

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

(1)开发语言:

C语言、汇编语言

(2)开发步骤:

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

2确定设计方案

3硬件设计

4软件设计

5系统调试

9、标志位:

EXO、EX1、ETO、ET1、ES;

IEO、IE1、TFO、TF1、RI、TI;

ITO、IT1;

TRO、TR1;

SMOD

的功能;

EXO:

外部中断0中断允许位。

1允许;

0禁止

EX1:

外部中断1中断允许位。

ETO:

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

ET1:

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

ES:

串行接口中断允许位。

RI:

串行接口接收中断标志。

在串行接口方式

0中,收到第8位数据时,由硬件置位;

其它方式中,收到停止位的

中间位置时硬件置位。

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

TI:

串行接口发送中断标志。

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

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

置位。

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

TFO:

TO的溢出中断标志。

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

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

TF1:

T1的溢出中断标志。

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

TRO:

TO的运行控制位。

1启动计数;

0停止计数。

TR1:

T1的运行控制位。

IT0:

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

1下降沿出发;

0低电平触发。

IT1:

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

IE0:

外中断0中断请求标志。

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

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

夕卜中断1中断请求标志。

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

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

SMOD:

波特率选择位。

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

串口

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

TH0:

T0高8位

TLO:

T0低8位<

TH1:

T1高8位

TL1:

T1低8位

TMOD:

GATE

C/T

M,

丁e方式揑制

TMOD

Eg6656Qi6

图2-14TMOD寄存胖各位定义

Mr

%

1方式

说明

13世定时器/计数器

J■J

0位定时器/计藪器

10

21

自动装人时闾常數妁S佗定时強广计歆器

J

]

对T*分为两个8位计数器;

对比童方盒弓时停止工作

GATE:

一般取0。

C/T:

1计数器方式;

0定时器方式。

(一般取0)

TCON:

6

1>

D5

5

D丄

Do

TCON

TFi

TRi

TRfl

ITi

用于外部中析

图2-15TCO訝寄存器各位定义

SCON:

SMO,SM1:

串口操作方式选择位。

(表2-9)

SM2:

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

REN:

允许串行接收位。

0禁止。

(一般取1)

TB8:

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

(任意项)

RB8:

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

TI,RI:

发送、接收中断标志。

PCON:

SBUF:

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

四、程序设计

写出完成的源程序,包括主程序与定时器中断服务程

voidmain(void)

{

X.a=65535-COUNT;

TMOD=(TMOD&

0xf0)|0x01;

TH0=X.b[0];

TL0=X.b[1];

ET0=1;

EA=1;

TR0=1;

while

(1)

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

2、给定晶振,在P1.0引脚上产生一要求的方波,序;

#include"

reg51.h"

#defineCOUNT445〃修改周期

unionMY1

unsignedinta;

unsignedcharb[2];

unionMY1X;

sbitp1_0=P1A0;

voidT0_ISR(void)interrupt1

staticunsignedchari=0;

i++;

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

}//修改占空比

if(i==4)

p1_0=1;

i=0;

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

求有计算过程。

方式2:

波特率=2SMOD

64

方式3:

与方式1一样

voidsbuf_init(void)

〃11.0592MHz--10

9600bps,SMOD=0,T1计数值n=3

SCON=0x50;

PCON=0X00;

//01010000串口工作于方式1

〃最高位SMOD=0

位异步通信方式,

波特率计算方法:

0x0f)|0x20;

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

TH1=0Xfd;

TL1=0xfd;

TR1=1;

〃T1计数值为3

//T1计数值为3

//T1启动

4、会定时器相关计算。

(参考简答题7)

五、分析设计题

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

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

叫!

4JDCM

wc

50皐

a

z

cr

CM

EQ

DI

K

%>

rjii

A1X

(Jt

rut

4XMULIO

-I

t-i

汽」

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

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

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

#inelude"

absacc.h"

#defineAIN0XBYTE[0x0000]

sbitEOC=P3A3;

unsignedchari=0;

unsignedchara;

while

(1)

//开始AD转换

//等待转换完成

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

AIN0=0;

i=i;

while(EOC==0);

a=AIN0;

(4)

n:

采集到的数字量

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

V:

参考电压(VREF()-VREF(_))

测得模拟电压u=?

V

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

16

15

T7

13

DOL5B)

VCC

Dll

DI2

VEEF

D13

D14

DIS

D16

Rih

nir-

8

7

10

9

11

14

r2

i

TT~

XFEEAGND

ILEDGMD

DACQ832

D7-D0

HEADER8X2

DAC0832

I0UT1

I0UT2

AD/DACON

DAC

LM74LWS:

R210k

30T

+12V

CON2

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

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

三角波:

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

unsignedchari;

for(i=0;

i<

255;

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

DAC0832=i;

delay

(1);

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

DAC0832=255-i;

delay

(1);

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

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

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2