内容正文:
《单片机技术及应用》(高教版第四版) 教案
课 题
制作四按键电子密码锁(1)
课 型
理论
课 时
2
授课班级
授课时间
授课教师
教材分析
本节为 “电子密码锁” 项目的核心基础章节,聚焦 “按键输入与信号处理” 核心任务,系统讲解常用按键类型(自锁按键、钮子开关等)、独立式键盘原理及按键抖动消除方法。教材采用 “按键分类→键盘类型→抖动处理→实践流程” 递进结构,通过独立式键盘接口电路、抖动波形图及编程实例(软件消抖延时子程序),将抽象的硬件信号处理与 “密码输入验证” 需求深度融合。作为衔接 “LED 控制” 与 “复杂输入系统” 的关键环节,本节通过按键输入逻辑(I/O 口电平检测)与软件消抖技术(延时确认)培养学生软硬件协同开发能力,为后续学习矩阵键盘、密码算法设计等任务奠定硬件接口与信号处理的技术基础,是提升单片机系统输入控制能力的核心章节。
学情分析
学生已掌握单片机控制 LED 的基础操作(如 I/O 口输出控制)及 C 语言基础语法,但对按键输入(独立式键盘接口电路)、抖动消除及 “按键输入→信号处理→密码验证→LED 反馈” 全流程逻辑理解较浅;部分学生能完成单 LED 控制,却难以将 “按键按下→I/O 口电平变化” 与 “密码输入逻辑” 关联,对软件消抖(延时 10ms 子程序)的必要性与实现原理认知模糊。软件操作中,虽熟悉 Keil 与 Proteus 基础,但面对多按键协同(4 个按键对应 0-3)时,易因 I/O 口分配冲突或消抖逻辑遗漏(未延时确认)导致仿真异常。需通过按键抖动示意图、独立式键盘电路及 “按键检测 - 消抖 - 密码验证” 实践,强化硬件接口与软件逻辑的协同能力,突破密码锁输入控制的认知瓶颈。
学习目标
知识目标:
1. 了解常用按键与开关的类型和应用场合。
2. 掌握键盘的分类和独立式键盘的特点。
3. 理解按键抖动的原因和消除方法。
技能目标:
1. 学会设计电子密码锁的程序。
2. 能够完成电子密码锁的硬件搭建、软件编程、仿真调试和程序下载。
情感目标:
提升跨文化沟通与表达能力,能在多元团队中清晰传递观点并引导共识形成。
学习重难点
重点:
1. 常用按键与开关的特点和应用。
2. 独立式键盘的工作原理和电路连接。
3. 按键抖动的消除方法。
4. 电子密码锁程序的设计和实现。
难点:
1. 理解独立式键盘检测按键按下的原理。
2. 掌握软件消抖的编程实现。
3. 调试电子密码锁程序,确保密码输入和开锁功能正常。
教学方法
案例分析、讲授法、小组讨论法
课前准备
1.查找相应网站资料,课堂演示使用。
2.学生课前预习。
教学媒体
电子课件、多媒体视频
教学过程
教学环节
教师活动设计
学生活动设计
设计意图
活动一:
创设情境
生成问题
【课程导入】
在日常生活中,密码锁随处可见,它为我们的生活提供了安全保障。今天,我们将学习如何使用单片机来设计一个简单的电子密码锁,通过 4 个按键输入密码,控制 LED 灯的亮灭来表示锁的锁定和打开状态。
【新知识传授】
· 任 务 准 备
(1) 常用按键与开关
按键与开关在电路中用字母 “S”(有时也用 “K”)表示。常用按键与开关包括自锁按键、钮子开关、拨码开关、微动开关、拨动开关和薄膜按键等。
(2) 键盘简介
键盘是单片机应用系统中最常用的输入设备之一,由若干个按键按照一定规则组成。
每一个按键实际上是一个开关元件,按照构造可分为有触点开关按键、无触点开关按键两类。
· 有触点开关按键有机械开关、微动开关、导电橡胶等;
· 无触点开关按键有电容式按键、光电式按键和磁感应按键等
目前单片机应用系统中,主要采用独立式和行列矩阵式两大类键盘,独立式键盘适用于按键数目少于 8 个的场合,行列矩阵式键盘适用于按键数目大于 8 个的场合。
2.引导学生带着问题去课本寻找答案,明确本节课的学习内容。
3.展示本讲学习目标。
1. 接收并查看本节课堂任务书。
2. 了解学习目标,带着目标进行学习。
3. 观察生活中常见的多媒体信息形式,思考其背后的技术支撑。
4. 针对教师给出的问题,初步发表个人见解。
5. 目标明确:跟随教师引导,明确本节课学习目标。
1.以提问的方式导入课程,让学生带着问题有针对性的进行学习。
2.通过任务实施,调动学生积极性。
活动二:
调动思维
探究新知
【新知识传授】
· 任 务 准 备
(1) 独立式键盘
独立式键盘的每个按键占用一根 I/O 口线。当某一按键被按下时,该键所对应的 I/O 口线将由高电平变为低电平。反之,如果检测到某 I/O 口线为低电平,则可判断出该 I/O 口线对应的按键被按下。
① 各按键相互独立,电路配置灵活。
② 按键数量较多时,I/O 口线耗费较多,电路结构繁杂。
③ 软件结构简单,适用于按键数量较少的场合。
单片机控制系统中,如果只需要几个功能键,此时,可采用独立式按键结构。
(2) 按键抖动与消除抖动的方法
单片机应用系统中键盘通常是由机械触点构成的,按下键盘中某一个按键时,会产生抖动,抖动时间一般为 5 - 10ms。抖动现象会引起单片机对一次按键操作进行多次处理,从而可能产生错误操作。
可以采用硬件消抖,也可以采用软件消抖,软件消抖成本低,效果好,目前单片机应用系统中通常采用软件消抖的方法。
具体方法如下:检测到按键按下后,执行延时 10 ms 子程序,避开按键按下时的抖动时间,然后再确认该键是否确实按下,就可以消除抖动影响。
2. 教师操作演示
3. 引导学生带着问题去课本寻找答案,明确本节课的学习内容。
1. 阅读探究:阅读课本相关内容,探究多媒体技术的产生背景。
2. 概念理解:理解多媒体、多媒体技术和多媒体系统的定义,并尝试用自己的话复述。
3. 要点记录:记录多媒体技术强调的要点,加深理解。
1. 了解学生现有知识储备。
2. 巩固练习。
活动三:
调动思维
探究新知
【新知识传授】
· 电子密码锁程序设计
(1) 整体流程
· 初始化I/O 口,设置按键和 LED 灯对应的引脚。
· 不断检测按键状态,记录输入的密码。
· 比较输入的密码与预设密码是否一致。
· 根据比较结果控制LED 灯的亮灭。
(2) 按键检测
通过检测 I/O 口线的电平变化来判断按键是否按下。当检测到某一按键对应的 I/O 口线为低电平时,说明该按键被按下。
(3) 密码记录
将每次按下按键对应的数字记录下来,组成输入的密码。
(4) 密码比较
将输入的密码与预设密码进行比较,如果一致则打开密码锁(LED2 绿灯亮),否则保持锁定状态(LED1 红灯亮)。
(5) 代码框架
#include <reg51.h> // 定义按键和LED对应的引脚
#define KEY_PORT P1
#define LED_PORT P2 // 预设密码
unsigned char password[] = {1, 2, 3, 0}; // 输入密码数组unsigned char input_password[4]; // 记录输入密码的位置unsigned char input_index = 0;
void delay(
unsigned int ms);
void key_scan();
void check_password();
void main() {
while (1) {
key_scan();
}}
void key_scan() {
// 检测按键状态,记录输入密码
// ...
if (input_index == 4) {
check_password();
input_index = 0;
}}
void check_password() {
unsigned char i;
for (i = 0; i < 4; i++) {
if (input_password[i] != password[i]) {
// 密码错误,LED1红灯亮
LED_PORT = 0x01;
return;
}
}
// 密码正确,LED2绿灯亮
LED_PORT = 0x02;}
void delay(unsigned int ms) {
unsigned int i, j;
for (i = 0; i < ms; i++)
for (j = 0; j < 125; j++);}
2. 教师操作演示
3. 引导学生带着问题去课本寻找答案,明确本节课的学习内容。
1. 应用列举
2. 影响分析
3. 创新思考
1. 引导学生主动思考,发散思维,参与课堂。
2. 培养学生发现问题,解决问题的能力。
3. 了解相关知识。
4. 辩论形式让学生参与并归纳总结。
活动四:
巩固练习
素质提升
【随堂检测】
1 独立式键盘的特点有哪些?
2 按键抖动会带来什么问题?
3 如何消除按键抖动?
4 电子密码锁程序中,如何判断密码是否正确?
5 简述常用按键与开关的类型及应用场合。
【分组讨论】
分组讨论,讨论如何增加密码的复杂度,提高密码锁的安全性。分析在实际应用中,电子密码锁可能遇到的问题及解决方法。
1. 答案交流
2. 话题讨论
3. 效率分析
4. 挑战探讨
5. 总结汇报
知识检测与巩固
课堂小结
作业布置
课堂小结
作业布置
复习本节课内容,预习下节课内容。
板书设计
1. 任 务 准 备
2. 电子密码锁程序设计
教学反思
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$$