《单片机的C语言程序设计及应用》(电工版第四版)期末复习卷(四)

标签:
精品解析文字版答案
2025-07-22
| 2份
| 11页
| 95人阅读
| 1人下载

内容正文:

《单片机的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从左向右循环点亮。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $$

资源预览图

《单片机的C语言程序设计及应用》(电工版第四版)期末复习卷(四)
1
《单片机的C语言程序设计及应用》(电工版第四版)期末复习卷(四)
2
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。