单片机辅导学习资料.docx
《单片机辅导学习资料.docx》由会员分享,可在线阅读,更多相关《单片机辅导学习资料.docx(17页珍藏版)》请在冰豆网上搜索。
单片机辅导学习资料
单片机应用技术练习题
1-5章练习题
一、填空题
1.单片机即一个芯片的计算机,此芯片上包括五部分:
运算器、_存储器__、_
控制器__、输入部分、__输出部分___。
2.KeilC51软件中,工程文件的扩展名为_UV2,编译连接后生成可烧写的文件
扩展名为Hex。
3.A/D转换器的作用是将_数字_量转为_模拟量。
4.在C51语言的程序中,注释一般采用_“〃”符号和_“/**/”符号_来实现。
5.A/D转换器的三个重要指标是转换速度、分辨率_和转换精度。
6.MCS-51单片机片内有_5个中断源,其中_2个外部中断源。
7.D/A转换器的作用是将_数字—量转为—模拟_量。
8.MCS-51内有5个中断源,按其自然优先级从高到低的排列顺序为_外部0_、定时器
/计数器0_、_外部1、_定时器/计数器1、_串口
9.定时器0和定时器1的中断标志分别为TFO和TF1。
10.中断处理过程分为3个阶段,即中断响应_、中断处理以及中断返回_。
11.单片机中,常用作地址锁存器的芯片是_74HC573,常用作地址译码器的芯片
是74HC138。
12.若采用12MH在的晶体振荡器,
则MCS-51单片机的振荡周期为
1/12us
机器
周期为1us。
13.A/D芯片选择的主要参数是
分辨率
和
转换时间
。
14.MC—51单片机的P0—P4口均是并行I/O口,其中的P0口和P2口除了可以进行数据
的输入、输出外,通常还用来构建系统_数据总线和_地址总线,在
P0-P4口中,P0为真正的双向口,_P1-P3为准双向口。
15.字符char型变量的取值范围为-128〜127。
16.若采用6MH在的晶体振荡器,则MCS-51单片机的机器周期为_2us_,振荡周期为
1/6us
17.一个10位A/D转换器,其分辨率为1/210。
18.无符号整型unsignedint变量的取值范围为_0〜65536。
19.在C51语言的程序中,循环语句一般采用_for、do-while和
while来实现。
20.DAC0832的数据输入有—单缓冲、—双缓冲、—直通三种
方式。
二、选择题
1.C51语言提供的合法的数据类型关键字是(B)。
AsfrBBITCCharDinteger
2.可以将P1口的低4位全部置高电平的表达式是(B)。
AP1&=0x0fBP1||=0x0fCP1A=0x0fDP1=〜P1
3.51单片机的4组8位I/O口,是双向8位三态I/O口的是(A
B.P1
A.P0
C.P2
D.P3
4.当MCS-51单片机接有外部存储器,P2口可作为(D)。
A数据输入口B数据的输出口C准双向输入/输出口D输出高8位地址
5.单片机的定时器/计数器工作方式1是(D)。
A8位计数器结构B2个8位计数器结构C13位计数结构D16位计数结构
6.具有模数转换功能的芯片是(A
AADC0809BDAC0832CMAX813DPCF8563
7.设MCS-51单片机晶振频率是12MHz定时器作计数器使用时,其最高的输入计数频率应为(C
A2MHzB1MHz
8.
A.
C.
9.
A.
)。
下面哪个不是
CPU并行I/O接口下面哪个不是单片机的特点(高性价比
可弯曲性
)。
C500KHzD250KHz
51系列单片机的组成部分(
B.RAM
D.无线模块
C
B.可编程能力
D.扩展能力强
)。
)。
C.
10.单片机的P0、P1口作输入用途之前必须(A在相应的端口先置1B在相应的端口先置
11.利用下列(D
A、interruptB、
C、whileD、
12.单片机的定时器/计数器工作方式
A、8位计数器结构B
C、13位计数结构
13.下列关于数码管的说法错误的是(
A.共阴数码管设计电路时一般把阴极接地
B.多位一体数码管的公共端叫位选线
C.数码管动态显示程序中需要“消影”的语句是:
D.单位数码管只能显示0~9的数字
14.具有模数转换功能的芯片是(A)
)。
A
C外接高电平D外接上拉电阻)关键字可以改变工作寄存器组
sfrusing1是(D
D、
)。
2个8位计数器结构
16位计数结构
)。
P0=0xff
A、ADC0809B、DAC0832C、MAX813
15.MCS-51单片机的CPU主要的组成部分为(A
A.运算器、控制器B•加法器、寄存器
C.运算器、加法器D.运算器、译码器
16.单片机8051的XTAL1和XTAL2引脚是(D
A.外接定时器B.外接串行口
17.单片机应用程序一般存放在(
A.RAMB.ROMC
18.当MCS-51单片机接有外部存储器,
A数据输入口B数据的输出口
、PCF8563
)。
引脚。
C.
B)中。
.寄存器
P2口可作为
C准双向输入
A
)
外接中断
D.CPU
/输出口D)。
D.外接晶振
)。
输出高
8位地址
19.单片机的P0、P1口作输入用途之前必须(
A在相应的端口先置1B在相应的端口先置0C外接高电平20.8051单片机中,输入/输出引脚中用于专门的第二功能的引脚是(
A.P0B.P1C.P2D.P3
21.可以将P1口的低4位全部置高电平的表达式是(B
AP1&=OxOfBP1||=0x0fCP1A=0x0fDP1=
D外接上拉电阻
D)。
P1
)。
22.MCS-51单片机定时器TO的溢出标志TFO,若计满数产生溢出时,其值为(C)。
A.OOHB.FFHC.1D.计数值
23.当TCON勺ITO为1,且CPLP向应外部中断0,匚亓的中断请求后,(C)。
A.需用软件将IE0清0B.需用软件将IE0置1
C.硬件自动将IE0清0D.•…(P3.2管脚)为高电平时自动将IE0清0
24.若MCS-51中断源都编程为同级,当它们同时申请中断时,CPL首先响应(B)。
(A)INT1(B)INT0(C)T1(D)T0
25.单片机8051的RST引脚是(D)引脚。
A外接定时器B复位C外接中断D外接晶振
26.8052单片机共有(C)中断源。
A.4B.5C.6D.7
27.
8051单片机计数初值的计算中,若设最大计数值为M对于模式1下的M值为
B.加法器、寄存器
D.运算器、译码器
(20)引脚是(B)引脚。
B.接地C.备用电源
31.下列有关MCS-51中断优先级控制的叙述中,错误的是
B
C.同级中断请求按时间的先后顺序响应
D.同时同级的多中断请求,将形成阻塞,系统无法响应
32.
8051单片机中,输入/输出引脚中用于专门的第二功能的引脚是(D)°
38.下列关于单片机周期的几个说法错误的是(C
机器周期是
A时钟周期就是单片机外接晶振的倒数B状态周期是时钟周期的两倍C
单片机中最小最基本的时间单位D一般一个指令周期含有1~4个机器周期
39.单片机的定时器/计数器工作方式2是(A)°
A自动重装初值的8位计数器结构B2个8位计数器结构C13位计数结构D16位计数结构
三、判断题
1.若一个函数的返回类型为void,则表示其没有返回值。
(V)
2.CPU的时钟周期为振荡器频率的倒数。
(V)
3.在C语言中,函数的调用是可以根据需要随便调用,前面的函数可以调用后面的函数,后
面的函数也可以调用前面的函数,无需声明。
(x)
4.单片机的一个机器周期是指完成某一个规定操作所需的时间,一般情况下,一个机器周期等于一个时钟周期组成。
(x)
5.在MC—51单片机内部结构中,TMOD为模式控制寄存器,主要用来控制定时器的启动与停止。
(x)
6.在一般情况8051单片机允许同级中断嵌套。
(V)
7.8051单片机5个中断源相应地在芯片上都有中断请求输入引脚。
(x)
8.MCS—51单片机的中断允许寄存器的IE的作用是用来对各中断源进行开放或屏蔽的控制。
(V)
9.8051单片机允许5个中断源请求中断,都可以用软件来屏蔽,即利用中断允许寄存器IE
来控制中断的允许和禁止。
(V)
10.在51系列的单片机系统中,一个机器周期是固定的。
(x)
11.在MC—51单片机内部结构中,TCON为控制寄存器,主要用来控制定时器的启动与停止。
(V)
12.程序存储器和数据存储器的作用不同,程序存储器一般用存放数据表格和程序,而数据
存储器一般用来存放数据。
(x)
13.在C语言中,函数的调用是可以根据需要调用,前面的函数可以调用后面的函数,后面
的函数也可以调用前面的函数,需要声明。
(V)
14.单片机的指令周期是执行一条指令所需要的时间。
一般由若干个机器周期组成。
。
(V)
15.MCS—51单片机五个中断源中优先级是高的是外部中断0,优先级是低的是串行口中断。
(V)
16.MCS—51单片机的两个定时器的均有两种工作方式,即定时和计数工作方式。
(V)
17.中断初始化时,对中断控制器的状态设置,只可使用位操作指令,而不能使用字节操作
指令。
(x)
18.MCS—51单片机的中断允许寄存器的IE的作用是用来对各中断源进行开放或屏蔽的控
制。
(V)
19.8051单片机的P2口只能用作通用I/O口。
(x)
20.在51系列的单片机系统中,一个机器周期是1.5us。
(x)
21.#include与#include“reg51.h”是等价的。
(V)
22.LED共阳极的接法就是把所有发光二极管的阴极连在一起构成公共阳极。
x)
23.所有定义在主函数之前的函数无需进行声明。
(V
24•当EA脚接高电平时,对ROM勺读操作只访问片外程序存储器。
(X
25.AD0809是8位8通道的双积分式串行AD转换器。
(X)
26.LED共阴极的接法就是把所有发光二极管的阳极连在一起构成公共阳极。
27.定时器工作在模式2的方式下,8位自装载定时器,当溢出时将TH存放的值装入TL。
(v)
28.DAC0832是8位D/A转换器,其输出量是数字电流量。
(X)
四、简答题
1、51系列单片机具有几个中断源,分别是如何定义的?
其中哪些中断源可以被定义为高优先级中断,如何定义?
答:
具有5个中断源,分别是外部中断INTO和外部中断INT1、定时器溢出中断0和定时器溢出中断1以及串行中断。
通过对中断优先级寄存器IP的设置,每个中断源都可以被定义为高优先级中断。
2、在使用8O51的定时器/计数器前,应对它进行初始化,其步骤是什么?
答:
(1)确定T/C的工作方式一一编程TMO寄存器;
(2)计算T/C中的计数初值,并装载到TH和TL;
⑶T/C在中断方式工作时,须开CPU中断和源中断一一编程IE寄存器;
(4)启动定时器/计数器一一编程TCON中TR1或TRO位。
3、如何消除键盘的抖动?
答:
由于按键是机械开关结构,所以当用手按下其中一个键时,往往会出现所按键在闭合位置和断开位置之间发生跳几下后才会稳定到闭合状态的情况。
在释放一个键时,也会出现类似的情况,这就是键的抖动,抖动的持续时间不一,但通常不会大于1Oms。
若抖动问题不解决,就会引起对闭合键的多次读入。
对于键抖动最方便的解
决方法就是当发现有键按下后,不是立即进行扫描,而是延时大约10ms后再进行。
由于一个键按下的时间一般会持续上百毫秒,所以延迟10ms后再扫描处理并不迟。
4、晶振fosc为12MHz用定时器0方式1产生20ms定时,计算确定其初值TL0和TH0=
5、单片机对中断优先级的处理原则是什么?
答:
(1)低优先级中断源可被高优先级中断源所中断,而高优先级中断源不能被任何中断源所中断;
(2)一种中断源(不管是高优先级还是低优先级)一旦得到响应,与它同级的中断源不能再中断它。
6、简述数码管动态扫描的实现原理。
答:
所谓动态扫描显示,即轮流向各位数码管送出字形码和相应的位选,利用发光管的余晖和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示,而实际上数码管是一位一位轮流显示的,只是轮流的速度非常快,人眼已经无法分辨出来。
7、写出共阴极LED数码管从1到F的显示的十六进制字形代码(a为最低位,dp为最高位)。
0
0xc0
8
0x80
1
0xf9
9
0x90
2
0xa4
10
0x88
3
0xb0
11
0x83
4
0x99
12
0xc6
5
0x92
13
0xa1
6
P0x82
14
0x86
7
0xf8
15
0x8e
8、简述89C51单片机中断的概念。
答:
当CPU正在处理某件事情的时候,外部发生的某一事件请求CPU迅速去处理,于是,CPU
暂时中止当前的工作,转去处理所发生的时间。
中断服务处理完该事件以后,再回到原来被
中止的地方,继续原来的工作,这样的过程成为中断。
五、编程题
1、写下一段程序,要求实现流水灯效果。
(led灯连接方式见第三题所示)
#include
#defineucharunsignedchar
uchartab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
voiddelay(ucharz)
{ucharx,y;
for(x=z;x>0;x--)
for(y=200;y>0;y--);
}
voidmain()
{uchari;
while
(1)
{for(i=0;i<8;i++)
{P1=tab[i];
delay(200);
}
}
}
连接图如
2、用定时器0的方式1实现数码管前两位60S循环倒计时(晶振为12MHZ)。
课本P58所示)
#include
#defineucharunsignedchar
#defineuintunsignedint
ucharcodetable[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
sbitdula=P2A6;
sbitwela=P2A7;
ucharshi,ge,aa,temp;
voiddisplay(ucharshi,ucharge);
voiddelay(uintz);
voidmain()
{
temp=60,aa=0;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
while
(1)
{
shi=temp/10;
ge=temp%10;
if(aa==20)
{
aa=0;
temp--;
if(temp==0)
{temp=60;}
}
display(shi,ge);
voiddisplay(ucharshi,ucharge)
{
dula=1;
P0=table[shi];
dula=0;
P0=0xff;
wela=1;
P0=0xfe;
wela=0;
delay
(1);
dula=1;
P0=table[ge];
dula=0;
P0=0xff;
wela=1;
P0=0xfd;
wela=0;
delay
(1);
}
voiddelay(uintz)
{
uchari,j;
for(i=z;i>0;i--)for(j=110;j>0;j--);
}
voidtimer0()interrupt1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;aa++;
LED偶数灯点亮。
}
3、写一段程序,要求实现功能,按下按键,
#inelude
#defineuintunsignedintsbitkey=P2A7;
voiddelayms(uintx)
{
uinti,j;for(i=x;i>0;i--)for(j=110;j>0;j--);
}
voidmain()
{
P仁Oxff;
if(key==0)
{
delayms(10);if(key==0){
P仁0xaa;while
(1);