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

2025-08-20
| 25页
| 80人阅读
| 0人下载
精品

内容正文:

任务二 制作行列矩阵式键盘电子密码锁 (2) 单片机技术及应用 同步精品课堂 高等教育出版社第 4 版 1 了解行列矩阵式键盘模块电路原理图的绘制法 掌握行列矩阵式键盘模块的焊接与电路搭接 学会绘制行列矩阵式键盘电子密码锁的程序流程图 完成行列矩阵式键盘电子密码锁的仿真调试和程序下载验证功能 行列矩阵式键盘模块电路原理图的绘制 行列矩阵式键盘模块的焊接工艺和电路搭接 理解行列矩阵式键盘扫描函数的原理和实现 根据流程图准确编写 C51 源程序,确保密码锁功能正常 在之前的学习中,我们对电子密码锁有了一定的了解。这次我们将制作一个行列矩阵式键盘电子密码锁,它可以输入更多位数的密码,提高密码的安全性。 让我们一起动手实践,深入学习电子密码锁的制作吧。 任务二 制作行列矩阵式键盘电子密码锁——任务实施 ① 启动 Protel DXP 2004,新建一个电路原理图文件,其文件名为 “行列矩阵式键盘模块电路原理图”。 绘制行列矩阵式键盘模块电路原理图 任务二 制作行列矩阵式键盘电子密码锁——任务实施 ② 从元件库 “Miscellaneous Connectors.IntLib” 中查找 “Header 8”(1 个 I/O 口插座) 和 “Header 2”(1 个电源插座),拖入工作窗口。 ③ 从元件库 “Miscellaneous Devices.IntLib” 中查找 “RES”(4 个 10kΩ 电阻) 和 “SW - PB”(16 个按键) 拖入工作窗口。 绘制行列矩阵式键盘模块电路原理图 任务二 制作行列矩阵式键盘电子密码锁——任务实施 ④ 绘制如图所示的电路,修改标号和标称值。 ⑤ 保存该文件。 绘制独立式键盘模块电路原理图(绘制电路) 任务二 制作行列矩阵式键盘电子密码锁——任务实施 ① 根据行列矩阵式键盘模块电路元件清单,选取元件,用万用表检测元件的好坏。 焊接独立式键盘模块(元件布局与插装) 名称 标号 规格 数量 按键 S1~S16 6mm×6mm 16 I/O 口插座 P1 8 针 1 电源插座 POWER1 2 针 1 电阻 R1~R4 10kΩ 4 任务二 制作行列矩阵式键盘电子密码锁——任务实施 ② 绘制元件布局图,在万能电路板上按布局图依次进行元件的排列、插装。 焊接独立式键盘模块(元件布局与插装) 任务二 制作行列矩阵式键盘电子密码锁——任务实施 ③ 按工艺要求焊接元件,背面用直径为 0.5 - 1mm 的导线连接,直到所有的元件连接并焊完为止。焊接顺序为按键 →I/O 口插座 → 电阻 → 电源插座 → 连接导线。 焊接独立式键盘模块(焊接元件) 任务二 制作行列矩阵式键盘电子密码锁——任务实施 根据电路原理图 (如图所示) 用杜邦线搭接电路,行列矩阵式键盘的 I/O 口与最小系统板的 P1 口相连,LED 灯控电路的 I/O 口与最小系统板的 P2 口相连,连接电源和地端,安装电池盒。 搭接电路 行列矩阵式键盘电子密码锁原理图 任务二 制作行列矩阵式键盘电子密码锁——任务实施 ① 启动流程图绘图软件 Diagram Designer,新建一个文件,文件名为 “行列矩阵式键盘电子密码锁主程序流程图.DDD”,设置图纸大小为 A4。 ② 从右侧的标准框图符号库中拖取所需的框图符号,调整其大小和位置。 ③ 在框图中输入文本。 ④ 用指向线连接框图符号 ⑤ 保存该文件。 绘制程序流程图 任务二 制作行列矩阵式键盘电子密码锁——任务实施 绘制程序流程图 任务二 制作行列矩阵式键盘电子密码锁——任务实施 绘制程序流程图 任务二 制作行列矩阵式键盘电子密码锁——任务实施 编程(新建工程与源文件) ① 启动 Keil uVision2,新建一个工程文件 “行列矩阵式键盘电子密码锁.uV2”。 ② 新建一个 C51 源程序文件 “行列矩阵式键盘电子密码锁.C”,根据程序流程图,编写如下 C51 源程序代码。 编程实现 - 延时函数 void delay(uint ms){     uchar i;     while(ms--)     {         for(i = 0; i < 125; i++);     }} 任务二 制作行列矩阵式键盘电子密码锁——任务实施 编程实现 - 键盘扫描函数 uchar KeyV() {     uchar key, key_value, a;     P1 = 0x0f;     if(P1 == 0x0f)         return(0); // 无键按下,返回0值     else     {         delay(10);         if(P1 == 0x0f)             return(0);         for(a = 0; a < 4; a++)         {             P1 = _cror_(0x7f, a);             if(P1_0 == 0) break;             if(P1_1 == 0) break;             if(P1_2 == 0) break;             if(P1_3 == 0) break;         }        key = P1;              case 0xdb: key_value = 7; break; // 7             case 0xd7: key_value = 8; break; // 8             case 0xbe: key_value = 9; break; // 9             case 0xbd: key_value = 10; break; // 10             case 0xbb: key_value = 11; break; // 11             case 0xb7: key_value = 12; break; // 12             case 0x7e: key_value = 13; break; // 13             case 0x7d: key_value = 14; break; // 14             case 0x7b: key_value = 15; break; // 15             case 0x77: key_value = 16; break; // OK             default: break;         }         return(key_value);     } }         for(; P1 != 0x0f; P1 = 0x0f) {;} // 等待松开按键         switch(key)         {             case 0xee: key_value = 1; break; // 1             case 0xed: key_value = 2; break; // 2             case 0xeb: key_value = 3; break; // 3             case 0xe7: key_value = 4; break; // 4             case 0xde: key_value = 5; break; // 5             case 0xdd: key_value = 6; break; // 6 任务二 制作行列矩阵式键盘电子密码锁——任务实施 编程实现 - 主函数   uchar key_value = 0xff;     while(1)     {         while(key_value != D[0])         {             key_value = KeyV();         }         while(key_value != D[1])         {             key_value = KeyV();         }         while(key_value != D[2]) //与数组中预置的密码逐位比对         {             key_value = KeyV(); //键盘扫描,并取键值         }       while(key_value != D[3])         {             key_value = KeyV();         } while(key_value != D[4])         {             key_value = KeyV();         }         while(key_value != D[5])         {             key_value = KeyV();         }     }} ③ 编译生成 HEX 文件 “行列矩阵式键盘电子密码锁.HEX”。 任务二 制作行列矩阵式键盘电子密码锁——任务实施 编程实现 - 编程(代码解释) 延时函数delay:通过循环实现指定毫秒数的延时,用于按键消抖等操作。 键盘扫描函数KeyV:先检查是否有键按下,若有则进行消抖处理,然后通过循环右移和判断行线电平确定按下的键,最后根据键值返回对应的数字或确认键(1 - 16)。 主函数main:不断调用键盘扫描函数,依次等待输入与预设密码对应的键值。 任务二 制作行列矩阵式键盘电子密码锁——任务实施 仿真调试程序 启动仿真软件Proteus 7.4,新建一个仿真文件(四按键电子密码锁.DSN)。 根据电路原理图绘制仿真电路图(省略复位和时钟电路),添加电源(VCC) 和地端,修改元件标号和标称值。 任务二 制作行列矩阵式键盘电子密码锁——任务实施 下载程序,验证功能 ① 启动编程软件EasyPRO Programmer。 ② 加载HEX 文件(行列矩阵式键盘电子密码锁.HEX)。 ③ 单击“操作一键通”按钮,完成程序的下载。 ④ 将单片机插到最小系统板的ZIF 插座上。 ⑤ 加电,观察其功能。 随堂检测1 绘制行列矩阵式键盘模块电路原理图时,从哪个元件库中查找 I/O 口插座和电源插座? 答案:从元件库 “Miscellaneous Connectors.IntLib” 中查找。 焊接行列矩阵式键盘模块时,焊接顺序是什么? 答案:焊接顺序为按键 →I/O 口插座 → 电阻 → 电源插座 → 连接导线。 随堂检测2 在行列矩阵式键盘电子密码锁程序中,键盘扫描函数返回值的范围是多少? 答案:返回值范围是 1 - 16,前 10 个键分别代表 1234567890,第 16 个键表示 OK。 绘制行列矩阵式键盘电子密码锁程序流程图时,第2步是什么? 答案:从元件库 “Miscellaneous Connectors.IntLib” 中查找 “Header 8”(1 个 I/O 口插座) 和 “Header 2”(1 个电源插座),拖入工作窗口。 1 分组讨论,讨论如何优化行列矩阵式键盘电子密码锁的电路设计,提高其稳定性。分析在编程过程中,键盘扫描函数可能出现的问题及解决办法。 1. 绘制行列矩阵式键盘模块电路原理图 任务二 制作行列矩阵式键盘电子密码锁 (2) 2. 焊接行列矩阵式键盘模块 元件选取与检测 元件布局与插装 焊接元件 启动与新建文件 查找与拖入元件 绘制电路 保存文件 3. 搭接电路 4. 绘制程序流程图 启动与设置文件 拖取与调整框图 输入文本 连接框图与保存 5. 编程 感谢观看 25 $$

资源预览图

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