任务二 制作行列矩阵式键盘电子密码锁 (1)(教案)-《单片机技术及应用》(高教版第四版) 同步精品课堂

2025-08-19
| 8页
| 72人阅读
| 1人下载
精品

内容正文:

《单片机技术及应用》(高教版第四版) 教案 课 题 制作行列矩阵式键盘电子密码锁 (1) 课 型 理论 课 时 2 授课班级 授课时间 授课教师 教材分析 任务二为 “电子密码锁” 项目的进阶章节,聚焦 “行列矩阵式键盘密码锁制作” 核心目标,系统讲解矩阵键盘原理、软件扫描方法及 C51 函数应用。教材采用 “知识准备(矩阵键盘→函数基础)→实践流程(编程→仿真→验证)” 递进结构,通过矩阵键盘电路、函数调用示意图及扫描逻辑示例(逐列送低电平→逐行读取),将抽象的多按键检测与 “6 位密码输入验证” 需求深度融合。作为衔接独立式键盘(任务一)与复杂输入系统的关键环节,本节通过矩阵扫描(行线列线协同)和函数模块化设计(函数定义、调用、声明)培养学生系统开发能力,为后续学习触摸键盘、智能密码算法等任务奠定技术基础,是提升单片机输入控制复杂度的核心章节。 学情分析 学生已掌握独立式键盘密码锁设计(任务一),具备 I/O 口检测、按键消抖等基础,但对行列矩阵式键盘的行线列线扫描逻辑(逐列送低电平→逐行读取)理解较浅;部分学生能完成单按键检测,却难以将 “行列短接信号→键值计算” 关联,对多按键协同(4×4 矩阵)的扫描算法(软件扫描方法①②)易混淆。C51 函数应用中,虽接触过延时函数,但对函数定义(无参 / 有参)、调用顺序(需提前声明)及多文件调用(extern 关键字)认知模糊,易因函数声明遗漏或参数类型不匹配导致编译错误。实践中,Proteus 仿真与 Keil 编程常因扫描逻辑错误(未逐列扫描)或函数调用异常(未包含头文件)出现密码输入错位。需通过矩阵键盘电路、函数调用示意图及 “扫描算法 - 函数设计 - 仿真验证” 实践,强化复杂输入系统的开发能力,突破矩阵键盘密码锁的技术瓶颈。 学习目标 知识目标: 1. 了解行列矩阵式键盘的工作原理和软件扫描方法。 2. 掌握制作行列矩阵式键盘电子密码锁的流程和方法。 技能目标: 1. 学会使用 C51 函数进行编程,实现密码锁功能。 2. 能够完成电子密码锁的硬件搭建、软件编程、仿真调试和程序下载。 情感目标: 培养法治思维与规则意识,在学术研究和职业行为中恪守学术规范与行业准则。 学习重难点 重点: 1. 行列矩阵式键盘的电路原理和软件扫描方法。 2. C51 函数的定义、调用和声明。 3. 行列矩阵式键盘电子密码锁的程序设计和实现。 难点: 1. 理解行列矩阵式键盘的扫描原理和键值获取方法。 2. 正确使用 C51 函数进行编程,实现密码输入和验证功能。 3. 教学方法 案例分析、讲授法、小组讨论法 课前准备 1.查找相应网站资料,课堂演示使用。 2.学生课前预习。 教学媒体 电子课件、多媒体视频 教学过程 教学环节 教师活动设计 学生活动设计 设计意图 活动一: 创设情境 生成问题 【课程导入】 在之前的学习中,我们制作了独立式键盘电子密码锁,但密码位数较少。这次我们将设计一个可以输入 6 位数字的行列矩阵式键盘电子密码锁,提高密码的复杂度和安全性。 【新知识传授】 · 知识准备 任务二要制作行列矩阵式键盘电子密码锁,可输入 6 位数字密码。在 4×4 行列矩阵式键盘中输入 6 位密码 “980417”,按下确认键后,若密码正确,LED 会被点亮,否则 LED 不亮。密码预置在单片机的 Flash ROM 中。 (1) 行列矩阵式键盘 行列矩阵式键盘电路原理图如图所示,其 I/O 口线分为行线和列线,按键跨接在行线和列线上,按键按下时,行线与列线被短接。 注意:单片机的 P1、P2 和 P3 口内部均有上拉电阻,因此行列矩阵式键盘与这些端口接口时一般不需要外接上拉电阻,为了保证电路稳定工作,可以外接 10kΩ 的上拉电阻。如果使用 P0 口做输入端口,则必须外接上拉电阻。 (2) 行列矩阵式键盘软件扫描方法 ① 从 P1 口的高 4 位送出低电平,然后读取 P1 口数据,若送出去的数据与读取的数据一致,表示没有键被按下,若不一致则表示有键被按下。 ② 若有键被按下,然后逐列扫描,从 P1 高 4 位逐列送出低电平,然后逐行读取 P1 口低 4 位数据,若某一行为低电平,则表示该行某一个键被按下,此时读取 P1 口对应的数据,就可以获得键盘的键值。 2.引导学生带着问题去课本寻找答案,明确本节课的学习内容。 3.展示本讲学习目标。 1. 接收并查看本节课堂任务书。 2. 了解学习目标,带着目标进行学习。 3. 观察生活中常见的多媒体信息形式,思考其背后的技术支撑。 4. 针对教师给出的问题,初步发表个人见解。 5. 目标明确:跟随教师引导,明确本节课学习目标。 1.以提问的方式导入课程,让学生带着问题有针对性的进行学习。 2.通过任务实施,调动学生积极性。 活动二: 调动思维 探究新知 【新知识传授】 · C51 函数 (1) 概述 C51 程序由一个主函数 main () 和若干个子函数构成。主函数可以调用其他函数,其他函数也可以相互调用,函数可以调用它本身,称为递归调用,但是其他函数不能调用主函数。 (2) 函数的定义 从函数的形式来看,函数可以分为无参数函数和有参数函数。前者在被调用时没有参数传递,后者在被调用时有参数传递。 1  无参数函数定义格式 类型说明符 函数名(void) //void声明该函数无参数传递 { ...... } 2  有参数函数定义格式 类型说明符 函数名(形式参数列表) //形式参数超过一个时,用“,”隔开 { ..... return(n); } (3) 函数调用 函数调用就是在一个函数体中使用另外一个已经定义的函数,前者为主调用函数,后者为被调用函数。函数调用的格式如下: 函数名(实参表); 有实参的函数调用中,如果有多个实参,要用“,”间隔开。实参与形参顺序对应,个数相同, 类型相同。 (4) 函数声明 ① 如果被调用函数的函数定义在主调用函数之后,则需要在调用之前 (一般在程序头部) 对函数进行声明。上述程序段中的函数声明如下:void delay(uint ms); // 函数声明 ② 如果程序中使用了 C51 标准库函数,则在程序的开头要用 #include 预处理语句将被调用的函数包含进来。 #include "INTRINS.H" //C51内置库函数,头文件中定义了移位函数 ③ 如果被调用的函数不是标准库函数,在本文件中也没有定义,而是在其他文件中定义的,调用时需要使用关键字 “extern” 进行函数原型说明。 2. 教师操作演示 3. 引导学生带着问题去课本寻找答案,明确本节课的学习内容。 1. 阅读探究:阅读课本相关内容,探究多媒体技术的产生背景。 2. 概念理解:理解多媒体、多媒体技术和多媒体系统的定义,并尝试用自己的话复述。 3. 要点记录:记录多媒体技术强调的要点,加深理解。 1. 了解学生现有知识储备。 2. 巩固练习。 活动三: 调动思维 探究新知 【新知识传授】 · 编程实现 · 编程思路 1.初始化行列矩阵式键盘和 LED 灯的端口。 2.通过软件扫描方法获取键盘输入的 6 位密码。 3.将输入的密码与预置在单片机 Flash ROM 中的密码 “980417” 进行比较。 4.若密码正确,按下确认键后点亮 LED 灯;否则 LED 灯不亮。 (1) 初始化部分 #include <reg51.h> #define KEY_PORT P1 #define LED_PORT P2 // 预置密码unsigned char password[] = {9, 8, 0, 4, 1, 7}; // 输入密码数组unsigned char input_password[6]; // 记录输入密码的位置 unsigned char input_index = 0; void init() {     // 初始化端口等操作     // ...} (2) 键盘扫描部分 unsigned char key_scan() {     // 行列矩阵式键盘扫描及键值获取     unsigned char row, col;     KEY_PORT = 0x0F;  // 高4位送低电平     if ((KEY_PORT & 0x0F) != 0x0F) { // 有键按下         delay(10); // 消抖         if ((KEY_PORT & 0x0F) != 0x0F) {             row = KEY_PORT & 0x0F;             KEY_PORT = 0xF0;             col = KEY_PORT & 0xF0;             return get_key_value(row, col); // 获取键值函数         }     }     return 0xFF; // 无键按下} (3) 密码记录部分 void record_password() {     unsigned char key = key_scan();     if (key != 0xFF && input_index < 6) {         input_password[input_index++] = key;     }} (4) 密码验证部分 bit check_password() {     unsigned char i;     for (i = 0; i < 6; i++) {         if (input_password[i] != password[i]) {             return 0; // 密码错误         }     }     return 1; // 密码正确} (5) 主函数部分 void main() {     init();     while (1) {         record_password();         if (input_index == 6 && key_scan() == CONFIRM_KEY) { // 确认键按下             if (check_password()) {                 LED_PORT = 0x01; // 点亮LED             } else {                 LED_PORT = 0x00; // 熄灭LED             }             input_index = 0; // 重置输入位置         }     }} 2. 教师操作演示 3. 引导学生带着问题去课本寻找答案,明确本节课的学习内容。 1. 应用列举 2. 影响分析 3. 创新思考 1. 引导学生主动思考,发散思维,参与课堂。 2. 培养学生发现问题,解决问题的能力。 3. 了解相关知识。 4. 辩论形式让学生参与并归纳总结。 活动四: 巩固练习 素质提升 【随堂检测】 1  行列矩阵式键盘的软件扫描方法第一步是什么? 2  C51 函数调用时,实参和形参有什么要求? 3  如果被调用函数的定义在主调用函数之后,应该怎么做? 4  在行列矩阵式键盘中,使用 P0 口做输入端口时需要注意什么? 5  简述行列矩阵式键盘的工作原理 【分组讨论】 分组讨论,讨论如何提高行列矩阵式键盘电子密码锁的安全性。分析在编程过程中可能遇到的问题及解决办法。 1. 答案交流 2. 话题讨论 3. 效率分析 4. 挑战探讨 5. 总结汇报 知识检测与巩固 课堂小结 作业布置 课堂小结 作业布置 复习本节课内容,预习下节课内容。 板书设计 1. 知识准备 2. C51 函数 3. 编程实现 教学反思 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $$

资源预览图

任务二 制作行列矩阵式键盘电子密码锁 (1)(教案)-《单片机技术及应用》(高教版第四版) 同步精品课堂
1
任务二 制作行列矩阵式键盘电子密码锁 (1)(教案)-《单片机技术及应用》(高教版第四版) 同步精品课堂
2
任务二 制作行列矩阵式键盘电子密码锁 (1)(教案)-《单片机技术及应用》(高教版第四版) 同步精品课堂
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。