内容正文:
《单片机的C语言程序设计及应用》(电工版第4版)
期末复习卷(四)
时间:90分钟 总分:100分
班级 姓名 学号 成绩
一、选择题(本大题共15小题,每小题2分,共30分)
1.8051单片机的4个并行口中,还具有外中断、串行通信等第二功能的口是
A.P0 B.P1 C.P2 D.P3
2.C51程序的执行总是开始于
A.预处理命令 B.main()函数 C.子程序 D.while()
3.下列数据中有可能是八进制数的是
A.647 B.238 C.693 D.789
4.下列哪个不是KeilC的预处理命令
A.#include B.#exit C.#define D.#if
5.使用_nop_函数时,必须包含的库文件是
A.reg52.h B.absacc.h C.intrins.h D.stdio.h
6.串行口的4种工作方式中,工作方式1的通信方式是
A.8位同步 B.9位同步 C.10位异步 D.11位异步
7.外部中断1中断源的中断允许位是
A.ET1 B.ET0 C.EX0 D.EX1
8.定时器/计数器0在GATE=0时运行的条件是
A.P3.2=1 B.设置好定时初值 C.TR0=1 D.T0开中
9.51单片机串行口工作方式0的波特率是
A./12 B./32或/64 C.可变的 D./64
10.定时器/计数器1工作在计数方式时,其外加的计数脉冲信号应连接到
A.P3.2 B.P3.3 C.P3.4 D.P3.5
11.单片机的定时器/计数器工作模式0是
A.8位计数器结构 B.2个8位计数器结构
C.13位计数器结构 D.16位计数器结构
12.下列说法不正确的是
A.同一级别的中断请求按时间的先后顺序响应
B.同一时间同一级别的多中断请求,将形成阻塞,系统无法响应
C.低优先级中断请求不能中断高优先级中断请求,但是高优先级中断请求能中断低优先级中断请求
D.同级中断不能嵌套
13.MCS-51单片机的外部中断1的中断请求标志位是
A.ET1 B.TF1 C.IT1 D.IE1
14.用8051串行口扩展并行I/O口时,串行口工作方式应选择
A.方式0 B.方式1 C.方式2 D.方式3
15.51单片机的中断源个数
A.5 B.4 C.3 D.2
二、判断题(本大题共5小题,每小题2分,共10分)
1.在C51中,sfr关键字用于定义特殊功能寄存器。( )
【答案】正确
2.51单片机的复位引脚(RST)高电平有效。( )
【答案】正确
3.TR0=1;语句用于启动定时器0。( )
【答案】正确
4.51单片机的串口中断向量号是4。( )
【答案】正确
5.IT0=1;语句将外部中断0设置为边沿触发模式。( )
【答案】正确
三、填空题(本大题共10小题,每小题2分,共20分)
1.MCS-51单片机的复位信号的有效位是________电平。
2.内部时钟方式是指采用外接晶振和________来组成并联谐振电路。
3.计算机的系统总线有地址总线、___________、数据总线。
4.ADC是实现将模拟量转换成________的器件。
5.单片机应用程序一般存放在______________。
6.在串行通信中,根据数据传送方向分为单工、半双工和______三种方式。
7.二进制0011 0100B转换成十六进制是________。
8.中断允许总控制位EA位于________________特殊功能寄存器中。
9.TMOD寄存器中,=1为________工作方式。
10.8051有两个16位可编程定时器/计数器,它们的功能可由两个控制寄存器TCON和____的内容决定。
11.C51中,没有专门的循环语句,可以用函数______完成一个字节的循环左移。
12.51单片机外部中断源中断请求信号有效方式分为脉冲触发和_______触发两种。
13.在MCS-51单片机中,当IP=0x04时,优先级最高的中断是____________。
14.MCS-51有一个串行接口,可以实现串行________步通信。
15.keil C51软件中,μVision2建立的工程文件的扩展名是________。
四、简答题(本大题共4小题,每小题5分,共20分)
1.假设晶振12MHz,如何用C51实现软件延时1μs。
2.假设晶振12MHz,请说一下时钟周期、机器周期和指令周期的大小和关系。
五、程序填空。按照题目要求,将正确的内容填入相应位置,使得程序完整(本题共1个小题,每空3分,共15分)
1.AT89C51的P2口接一静态共阳极数码管,P3.2接按键key,中断方式控制,数码管显示按键key按下的次数。(请填空)
#include <reg51.h>
unsigned char code ucSegBuff[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
unsigned char keynum = 0;
void main()
{ EA = 【1】 ;
EX0 =【2】 ;
IT0 = 1;
while(1)
{ P2 =ucSegBuff[【3】];
}}
void Int0Server() 【4】
{ keynum ++;
if(kegnum>9)
kegnum = 【5】 ;
}
六、读程题(本大题共1小题,共5分)
1.八盏LED灯水平放置,并接在51单片机的P1口上,灌电流控制,最左侧LED灯接P1.0,最右侧LED灯接P1.7,该程序实现的功能是 。
#include <reg51.h>
#include<intrins.h>
void delayxms(unsigned int xms)
{ unsigned int t1,t2;
for(t1=xms;t1>0;t1--)
for(t2=110;t2>0; t2--);
}
void main()
{ unsigned char sel;
sel=0xfe;
while(1)
{ P1=sel ;
delayxms(500);
sel=_crol_(sel,1) ;}
}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$
《单片机的C语言程序设计及应用》(电工版第4版)
期末复习卷(四)
时间:90分钟 总分:100分
班级 姓名 学号 成绩
一、选择题(本大题共15小题,每小题2分,共30分)
1.8051单片机的4个并行口中,还具有外中断、串行通信等第二功能的口是
A.P0 B.P1 C.P2 D.P3
【答案】D
2.C51程序的执行总是开始于
A.预处理命令 B.main()函数 C.子程序 D.while()
【答案】B
3.下列数据中有可能是八进制数的是
A.647 B.238 C.693 D.789
【答案】A
4.下列哪个不是KeilC的预处理命令
A.#include B.#exit C.#define D.#if
【答案】B
5.使用_nop_函数时,必须包含的库文件是
A.reg52.h B.absacc.h C.intrins.h D.stdio.h
【答案】C
6.串行口的4种工作方式中,工作方式1的通信方式是
A.8位同步 B.9位同步 C.10位异步 D.11位异步
【答案】C
7.外部中断1中断源的中断允许位是
A.ET1 B.ET0 C.EX0 D.EX1
【答案】D
8.定时器/计数器0在GATE=0时运行的条件是
A.P3.2=1 B.设置好定时初值 C.TR0=1 D.T0开中
【答案】C
9.51单片机串行口工作方式0的波特率是
A./12 B./32或/64 C.可变的 D./64
【答案】A
10.定时器/计数器1工作在计数方式时,其外加的计数脉冲信号应连接到
A.P3.2 B.P3.3 C.P3.4 D.P3.5
【答案】D
11.单片机的定时器/计数器工作模式0是
A.8位计数器结构 B.2个8位计数器结构
C.13位计数器结构 D.16位计数器结构
【答案】C
12.下列说法不正确的是
A.同一级别的中断请求按时间的先后顺序响应
B.同一时间同一级别的多中断请求,将形成阻塞,系统无法响应
C.低优先级中断请求不能中断高优先级中断请求,但是高优先级中断请求能中断低优先级中断请求
D.同级中断不能嵌套
【答案】B
13.MCS-51单片机的外部中断1的中断请求标志位是
A.ET1 B.TF1 C.IT1 D.IE1
【答案】D
14.用8051串行口扩展并行I/O口时,串行口工作方式应选择
A.方式0 B.方式1 C.方式2 D.方式3
【答案】A
15.51单片机的中断源个数
A.5 B.4 C.3 D.2
【答案】A
二、判断题(本大题共5小题,每小题2分,共10分)
1.在C51中,sfr关键字用于定义特殊功能寄存器。( )
【答案】正确
2.51单片机的复位引脚(RST)高电平有效。( )
【答案】正确
3.TR0=1;语句用于启动定时器0。( )
【答案】正确
4.51单片机的串口中断向量号是4。( )
【答案】正确
5.IT0=1;语句将外部中断0设置为边沿触发模式。( )
【答案】正确
三、填空题(本大题共10小题,每小题2分,共20分)
1.MCS-51单片机的复位信号的有效位是________电平。
【答案】高
2.内部时钟方式是指采用外接晶振和________来组成并联谐振电路。
【答案】电容
3.计算机的系统总线有地址总线、___________、数据总线。
【答案】控制总线
4.ADC是实现将模拟量转换成________的器件。
【答案】数字量
5.单片机应用程序一般存放在______________。
【答案】程序存储器
6.在串行通信中,根据数据传送方向分为单工、半双工和______三种方式。
【答案】全双工
7.二进制0011 0100B转换成十六进制是________。
【答案】0x34
8.中断允许总控制位EA位于________________特殊功能寄存器中。
【答案】IE
9.TMOD寄存器中,=1为________工作方式。
【答案】计数器
10.8051有两个16位可编程定时器/计数器,它们的功能可由两个控制寄存器TCON和____的内容决定。
【答案】TMOD
11.C51中,没有专门的循环语句,可以用函数______完成一个字节的循环左移。
【答案】crol
12.51单片机外部中断源中断请求信号有效方式分为脉冲触发和_______触发两种。
【答案】电平
13.在MCS-51单片机中,当IP=0x04时,优先级最高的中断是____________。
【答案】外部中断1
14.MCS-51有一个串行接口,可以实现串行________步通信。
【答案】异
15.keil C51软件中,μVision2建立的工程文件的扩展名是________。
【答案】.uv2
四、简答题(本大题共2小题,每小题5分,共10分)
1.假设晶振12MHz,如何用C51实现软件延时1μs。
【答案】
void delay1us(unsigned int i) {
while (--i); }
【解析】
晶振12MHz,则机器周期T=12/f=12/12MHz=12/(12×106Hz=1×10-6s=1us,指令周期=1~4机器周期=1~4us。若i=1,实际测试中延时为1us。
2.假设晶振12MHz,请说一下时钟周期、机器周期和指令周期的大小和关系。
【答案】时钟周期=83.3ns,机器周期=12×时钟周期=1us,指令周期=1~4机器周期=1~4us。
【解析】
51系列单片机的4种时序周期分别是振荡周期、状态周期、机器周期和指令周期。
已知晶振频f率为12MHz,则时钟周期=1/f=1/12MHz=1/(12×106Hz=83.3ns。
机器周期=12×时钟周期=12/f=12/12MHz=12/(12×106Hz=1×10-6s=1us
指令周期=1~4机器周期=1~4us。
五、程序填空。按照题目要求,将正确的内容填入相应位置,使得程序完整(本题共1个小题,每空3分,共15分)
1.AT89C51的P2口接一静态共阳极数码管,P3.2接按键key,中断方式控制,数码管显示按键key按下的次数。(请填空)
#include <reg51.h>
unsigned char code ucSegBuff[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
unsigned char keynum = 0;
void main()
{ EA = 【1】 ;
EX0 =【2】 ;
IT0 = 1;
while(1)
{ P2 =ucSegBuff[【3】];
}
}
void Int0Server() 【4】
{ keynum ++;
if(kegnum>9)
kegnum = 【5】 ;
}
【答案】:
【1】1
【2】1
【3】keynum
【4】interrupt 0
【5】0
【解析】
【1】应当填入1。因为EA是总中断允许控制位,将其设为1才能使能总中断。
【2】要填入1。EX0是外部中断0允许控制位,设为1可使能外部中断0。
【3】应填入keynum。这样就能根据keynum的值,从段码表中选取对应的段码输出到P2口。
【4】需填入interrupt0。这表明该函数是外部中断0的中断服务程序,其中断号为0。
【5】要填入0。当keynum大于9时,将其重置为0,以保证显示的数字在0-9的范围内循环。
六、读程题(本大题共1小题,共5分)
1.八盏LED灯水平放置,并接在51单片机的P1口上,灌电流控制,最左侧LED灯接P1.0,最右侧LED灯接P1.7,该程序实现的功能是 。
#include <reg51.h>
#include<intrins.h>
void delayxms(unsigned int xms)
{ unsigned int t1,t2;
for(t1=xms;t1>0;t1--)
for(t2=110;t2>0; t2--);
}
void main()
{ unsigned char sel;
sel=0xfe;
while(1)
{ P1=sel ;
delayxms(500);
sel=_crol_(sel,1) ;}
}
【答案】
每隔500ms自左向右循环轮流点亮LED灯。
【解析】
该程序实现的功能是:每隔500ms自左向右循环轮流点亮LED灯。。具体分析如下:
延时函数
delay(unsigned int xms) 通过嵌套循环实现延时。
外层循环xms次,内层循环t2=0~124 次,每次循环消耗约12个时钟周期(假设晶振为12MHz)。
当xms=500时,总延时约为500ms
主程序逻辑
P1=sel ;点亮最左侧灯
delayxms(500);等待500ms
sel=_crol_(sel,1);使用_crol_函数将控制字循环左移一位,从而实现LED从左向右循环点亮。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$