项目三 电子密码锁《单片机技术及应用》(电工版第4版)章节过关卷

2025-12-09
| 2份
| 10页
| 55人阅读
| 0人下载

内容正文:

《单片机技术及应用》(电工版第4版) 项目三 电子密码锁 章节过关卷 考试时间:90分钟 满分:100分 姓名 班级 学号 1、 单项选择题(本题共10小题,每题2分,共20分) 1.在4按键键盘程序中,检测按键按下的正确方法是 ( ) A.if(KEY==1) B.if(KEY==0) C.while(KEY) D.switch(KEY) 【答案】B 2.矩阵键盘扫描的正确顺序是 ( ) A.逐列输出低电平 B.逐行输出高电平 C.逐行输出低电平 D.所有行同时输出低电平 【答案】C 3.在C51中定义P2.3为按键的正确语法是 ( ) A.#define KEY P2.3 B.sbit KEY = P2^3 C.bit KEY = P2_3 D.char KEY = P2.3 【答案】B 4.矩阵键盘键值通常存储在 ( ) A.int B.float C.unsigned char D.long 【答案】C 5.按键键盘的扫描程序通常放在 ( ) A.中断服务函数中 B.main函数的while(1)循环中 C.初始化函数中 D.定时器回调函数中 【答案】B 6.矩阵键盘扫描时,未按下按键对应的I/O口为 ( ) A.低电平 B.高电平 C.悬空状态 D.脉冲信号 【答案】B 7.处理多个按键值最适合使用的语句是 ( ) A.if-else B.while C.switch-case D.for 【答案】C 8.按键消抖的目的是消除 ( ) A.电源干扰 B.电磁干扰 C.机械抖动 D.信号衰减 【答案】C 9.4按键键盘的典型连接方式是 ( ) A.共阳极 B.共阴极 C.独立连接 D.串联连接 【答案】B 10.矩阵键盘扫描函数通常返回 ( ) A.电压值 B.电流值 C.键值 D.频率值 【答案】C 二、判断题(本题共20小题,每题2分,共40分) 1.使用sbit KEY1 = P1^0; 可以定义 P1.0 引脚为按键输入。( ) 【答案】正确 2.在 4 按键控制彩灯的程序中,必须使用外部中断检测按键。( ) 【答案】错误 3.if (KEY1 == 0) 可以判断按键 KEY1 是否被按下。( ) 【答案】正确 4.函数名中有void,说明该函数无参数传递。( ) 【答案】正确 5.使用P2 = 0x0F; 可以同时点亮P2口的低4位LED。( ) 【答案】错误 6.while (KEY1 == 0); 可以实现按键松手检测。( ) 【答案】正确 7.4个按键可以分别控制4个LED的亮灭。( ) 【答案】正确 8.在C51中,bit类型变量可以用于存储按键状态。( ) 【答案】正确 9.P2=~P2;可以让P2口的所有LED状态翻转。( ) 【答案】正确 10.按键扫描程序必须放在main函数的 while(1) 循环中。( ) 【答案】正确 11.使用 switch-case 语句可以实现不同按键对应不同 LED 效果。( ) 【答案】正确 12.P2 = 0x01 << i; 可以实现 LED 流水灯效果。( ) 【答案】正确 13.在 C51 中,#define LED P2 可以定义LED连接到P2口。( ) 【答案】正确 14.按键按下时,对应的I/O口会输出低电平。( ) 【答案】错误 15.P2 = 0xAA;可以让P2口的LED交替点亮。( ) 【答案】正确 16.矩阵键盘的行线应设置为输出模式,列线应设置为输入模式。( ) 【答案】正确 17.扫描矩阵键盘时,需要逐行输出低电平并检测列线状态。( ) 【答案】正确 18.4×4矩阵键盘需要占用8051单片机的8个I/O口。( ) 【答案】正确 19.矩阵键盘的消抖处理可以通过软件延时实现。( ) 【答案】正确 20.在矩阵键盘扫描程序中,必须使用外部中断来检测按键。( ) 【答案】错误 三、填空题(本题共10小题,每题2分,共20分) 1.按照构造可分为 和无触点开关按键两类。 【答案】有触点 2.矩阵键盘扫描时,通常将行线设置为______模式,列线设置为输入模式。 【答案】输出 3.矩阵键盘的行扫描值通常用______进制数表示。 【答案】十六 4.按键消抖常用的延时时间是______ms左右。 【答案】10 5.矩阵键盘扫描时,需要逐行输出______电平来检测按键。 【答案】低 6.读取矩阵键盘按键值时,需要将行号和______号组合计算。 【答案】列 7.矩阵键盘的键值通常存储在______类型变量中。 【答案】unsigned char 8.按键用KEY表示,检测按键释放的常用语句是while(______);。 【答案】KEY==0 9.按键键盘的按键状态检测通常放在______循环中。 【答案】while(1) 10.矩阵键盘扫描时,未按下的按键对应的I/O口为______电平。 【答案】高 四、简答题。(本题共5分) 1.在电子密码锁设计中,为何需要按键消抖?列举两种实现方法并说明优缺点。 【答案】 原因:机械按键存在触点抖动(约5-10ms),可能导致单片机误判多次触发。 方法: 软件消抖:检测到按键后延时10-20ms再次检测,确认状态。 优点:无需硬件改动;缺点:占用CPU时间。 硬件消抖:通过RC滤波电路或施密特触发器消除抖动信号。 优点:响应快;缺点:增加电路复杂度。 五、程序填空。按照题目要求,将正确的内容填入相应位置,使得程序完整(每空3分,共15分) 1.电路连接如图所示,依次判断S1~S4各按键是否被按下,若S1、S3和S4被按下,LED1亮,表示锁闭;若S2被按下,则LED2亮表示锁被打开。请填空。 #include "reg51.h' #define uint unsigned int 【1】 sbit LED1=P2^0; sbit LED2=P2^1; sbit S1=P1^0; 【2】; sbit S3=P1^2; sbit S4=P1^3; void delay(MS); void lock_on(void); void lock_off(void); void main(void) { 【3】 { if(S1==0) { delay(10); if(S1==0) { lock_off();}} if(S2==0) { delay(10); if(S2==0) 【4】}} if(S3==0) { delay(10); if(S3==0) { lock_off();}} if(S4==0) { delay(10); { if(S4==0) lock_off();}} void lock_on(void) { 【5】; LED2=0; } void lock_off(void) { LED1=0; LED2=1; } void delay(uint MS) { uint i,j; for(i=0;i<MS;i++) for(j=0;j<125;j++);} 【答案】 【1】#define uchar unsigned char 【2】sbit S2=P1^1 【3】while(1) 【4】lock_on() 【5】LED1=1 【解析】 【1】处需要定义一个常用的无符号字符类型,通常会用#define uchar unsigned char。 【2】处需要定义S2的引脚,根据上下文应为P1^1。 【3】处main函数需要一个无限循环,使用while(1)。 【4】处当S2被按下时应调用lock_on()函数。 【5】处lock_on()函数需要先关闭LED1(置1),再开启LED2(置0)。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $ 《单片机技术及应用》(电工版第4版) 项目三 电子密码锁 章节过关卷 考试时间:90分钟 满分:100分 姓名 班级 学号 1、 单项选择题(本题共10小题,每题2分,共20分) 1.在4按键键盘程序中,检测按键按下的正确方法是 ( ) A.if(KEY==1) B.if(KEY==0) C.while(KEY) D.switch(KEY) 2.矩阵键盘扫描的正确顺序是 ( ) A.逐列输出低电平 B.逐行输出高电平 C.逐行输出低电平 D.所有行同时输出低电平 3.在C51中定义P2.3为按键的正确语法是 ( ) A.#define KEY P2.3 B.sbit KEY = P2^3 C.bit KEY = P2_3 D.char KEY = P2.3 4.矩阵键盘键值通常存储在 ( ) A.int B.float C.unsigned char D.long 5.按键键盘的扫描程序通常放在 ( ) A.中断服务函数中 B.main函数的while(1)循环中 C.初始化函数中 D.定时器回调函数中 6.矩阵键盘扫描时,未按下按键对应的I/O口为 ( ) A.低电平 B.高电平 C.悬空状态 D.脉冲信号 7.处理多个按键值最适合使用的语句是 ( ) A.if-else B.while C.switch-case D.for 8.按键消抖的目的是消除 ( ) A.电源干扰 B.电磁干扰 C.机械抖动 D.信号衰减 9.4按键键盘的典型连接方式是 ( ) A.共阳极 B.共阴极 C.独立连接 D.串联连接 10.矩阵键盘扫描函数通常返回 ( ) A.电压值 B.电流值 C.键值 D.频率值 二、判断题(本题共20小题,每题2分,共40分) 1.使用sbit KEY1 = P1^0; 可以定义 P1.0 引脚为按键输入。( ) 2.在 4 按键控制彩灯的程序中,必须使用外部中断检测按键。( ) 3.if (KEY1 == 0) 可以判断按键 KEY1 是否被按下。( ) 4.函数名中有void,说明该函数无参数传递。( ) 5.使用P2 = 0x0F; 可以同时点亮P2口的低4位LED。( ) 6.while (KEY1 == 0); 可以实现按键松手检测。( ) 7.4个按键可以分别控制4个LED的亮灭。( ) 8.在C51中,bit类型变量可以用于存储按键状态。( ) 9.P2=~P2;可以让P2口的所有LED状态翻转。( ) 10.按键扫描程序必须放在main函数的 while(1) 循环中。( ) 11.使用 switch-case 语句可以实现不同按键对应不同 LED 效果。( ) 12.P2 = 0x01 << i; 可以实现 LED 流水灯效果。( ) 13.在 C51 中,#define LED P2 可以定义LED连接到P2口。( ) 14.按键按下时,对应的I/O口会输出低电平。( ) 15.P2 = 0xAA;可以让P2口的LED交替点亮。( ) 16.矩阵键盘的行线应设置为输出模式,列线应设置为输入模式。( ) 17.扫描矩阵键盘时,需要逐行输出低电平并检测列线状态。( ) 18.4×4矩阵键盘需要占用8051单片机的8个I/O口。( ) 19.矩阵键盘的消抖处理可以通过软件延时实现。( ) 20.在矩阵键盘扫描程序中,必须使用外部中断来检测按键。( ) 三、填空题(本题共10小题,每题2分,共20分) 1.按照构造可分为 和无触点开关按键两类。 2.矩阵键盘扫描时,通常将行线设置为______模式,列线设置为输入模式。 3.矩阵键盘的行扫描值通常用______进制数表示。 4.按键消抖常用的延时时间是______ms左右。 5.矩阵键盘扫描时,需要逐行输出______电平来检测按键。 6.读取矩阵键盘按键值时,需要将行号和______号组合计算。 7.矩阵键盘的键值通常存储在______类型变量中。 8.按键用KEY表示,检测按键释放的常用语句是while(______);。 9.按键键盘的按键状态检测通常放在______循环中。 10.矩阵键盘扫描时,未按下的按键对应的I/O口为______电平。 四、简答题。(本题共5分) 1.在电子密码锁设计中,为何需要按键消抖?列举两种实现方法并说明优缺点。 五、程序填空。按照题目要求,将正确的内容填入相应位置,使得程序完整(每空3分,共15分) 1.电路连接如图所示,依次判断S1~S4各按键是否被按下,若S1、S3和S4被按下,LED1亮,表示锁闭;若S2被按下,则LED2亮表示锁被打开。请填空。 #include <reg51.h> #define uint unsigned int 【1】 sbit LED1=P2^0; sbit LED2=P2^1; sbit S1=P1^0; 【2】; sbit S3=P1^2; sbit S4=P1^3; void delay(MS); void lock_on(void); void lock_off(void); void main(void) { 【3】 { if(S1==0) { delay(10); if(S1==0) { lock_off();}} if(S2==0) { delay(10); if(S2==0) 【4】}} if(S3==0) { delay(10); if(S3==0) { lock_off();}} if(S4==0) { delay(10); { if(S4==0) lock_off();}} void lock_on(void) { 【5】; LED2=0; } void lock_off(void) { LED1=0; LED2=1; } void delay(uint MS) { uint i,j; for(i=0;i<MS;i++) for(j=0;j<125;j++);} 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $

资源预览图

项目三 电子密码锁《单片机技术及应用》(电工版第4版)章节过关卷
1
项目三 电子密码锁《单片机技术及应用》(电工版第4版)章节过关卷
2
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。