单片机与应用复习题含参考答案Word文档下载推荐.docx
《单片机与应用复习题含参考答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《单片机与应用复习题含参考答案Word文档下载推荐.docx(18页珍藏版)》请在冰豆网上搜索。
![单片机与应用复习题含参考答案Word文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2022-11/22/061f68e5-50ce-4f61-9508-a2ce8181e358/061f68e5-50ce-4f61-9508-a2ce8181e3581.gif)
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;
}