内容正文:
任务一 制作四按键电子密码锁(2)
单片机技术及应用
同步精品课堂
高等教育出版社第 4 版
1
了解独立式键盘模块电路的设计与焊接
掌握四按键电子密码锁的电路搭接方法
学会绘制四按键电子密码锁的程序流程图
能够编写、编译四按键电子密码锁的程序代码
独立式键盘模块电路的设计与焊接工艺
四按键电子密码锁程序流程图的绘制
理解按键消抖原理并在程序中实现
根据流程图准确编写程序代码,确保密码锁功能正常
在前面的学习中,我们了解了按键与键盘的相关知识,今天我们将利用这些知识来制作一个四按键电子密码锁。
通过这个项目,我们可以更深入地掌握单片机的输入输出控制和程序设计,下面让我们开始动手制作吧。
任务一 制作四按键电子密码锁 - 创设情境
日常生活中密码锁应用非常广,如超市和浴室的储物柜、家庭保险柜等,密码锁需要通过键盎输入密码,然后才能开锁。
生活中的密码锁
任务一 制作四按键电子密码锁 - 任务实施
① 启动 Protel DXP 2004,新建一个电路原理图文件,其文件名为 “独立式键盘模块电路原理图”。
绘制独立式键盘模块电路原理图(启动与新建文件)
任务一 制作四按键电子密码锁 - 任务实施
② 从元件库 “Miscellaneous Connectors.IntLib” 中查找 “Header2”(1 个电源插座) 和 “Header 4”(1 个 I/O 口插座),拖入工作窗口。
③ 从元件库 “Miscellaneous Devices.IntLib” 中查找 “Res2”(4 个电阻) 和 “SW - PB”(4 个按键) 拖入工作窗口。
绘制独立式键盘模块电路原理图(查找与拖入元件)
任务一 制作四按键电子密码锁 - 任务实施
④ 绘制如图所示的电路。
⑤ 保存该文件。
绘制独立式键盘模块电路原理图(绘制电路)
任务一 制作四按键电子密码锁 - 任务实施
① 根据独立式键盘模块电路元件清单,选取元件,用万用表检测元件的好坏。
焊接独立式键盘模块(元件选取与检测)
名称 标号 规格 数量
金属膜电阻 R1~R4 10kΩ 4
按键 S1~S4 6mm×6mm 4
I/O 口插座 P1 4 针 1
电源插座 POWER1 2 针 1
任务一 制作四按键电子密码锁 - 任务实施
② 绘制元件布局图,在万能电路板上按布局图依次进行元件的排列、插装。
焊接独立式键盘模块(元件布局与插装)
任务一 制作四按键电子密码锁 - 任务实施
③ 按工艺要求焊接元件,背面用直径为 0.5 - 1mm 的导线连接,直到所有的元件连接并焊完为止。焊接顺序为按键 → 电阻 →I/O 口插座 → 电源插座 → 连接导线。
焊接独立式键盘模块(焊接元件)
任务一 制作四按键电子密码锁 - 任务实施
根据四按键电子密码锁电路原理图用杜邦线搭接电路,四按键电子密码锁的 I/O 口与最小系统板的 P1 口的低 4 位相连,LED 灯控电路的 I/O 口与最小系统板的 P2 口相连,连接电源和地端,安装电池盒。
搭接电路
四按键电子密码锁电路原理图
任务一 制作四按键电子密码锁 - 任务实施
依次判断 S1~S4 各按键是否被按下,若 S1、S3 和 S4 被按下,LED1 亮,表示锁闭;若 S2 被按下,则 LED2 亮表示锁被打开。按键按下时,需要延时 10ms 消抖。
绘制程序流程图(绘制思路)
任务一 制作四按键电子密码锁 - 任务实施
① 启动流程图绘图软件 Diagram Designer,新建一个文件,文件名为 “四按键电子密码锁流程图.DDD”,设置图纸大小为 A4。
② 从右侧的标准框图符号库中拖取所需的框图符号,调整其大小和位置。
③ 在框图中输入文本。
④ 用指向线连接框图符号。
⑤ 保存该文件。
绘制程序流程图
任务一 制作四按键电子密码锁 - 任务实施
绘制程序流程图
任务一 制作四按键电子密码锁 - 任务实施
绘制程序流程图
任务一 制作四按键电子密码锁 - 任务实施
编程(新建工程与源文件)
① 启动 Keil uVision2,新建一个工程文件 “四按键电子密码锁.uV2”。
任务一 制作四按键电子密码锁 - 任务实施
编程(新建工程与源文件)
② 新建一个 C51 源程序文件 “四按键电子密码锁.C”,根据程序流程图,将下面的 C51 源程序代码补充完整。
sbit S1 = P1^0;
______1________
sbit S3 = P1^2;
sbit S4 = P1^3;
sbit LED1 = P2^0;
sbit LED2 = P2^1;
//函数声明
void delay(MS);
void lock_on(void);
void lock_off(void);
sbit S2 = P1^1;
任务一 制作四按键电子密码锁 - 任务实施
编程(新建工程与源文件)
/*---------主函数---------*/
void main(void){
while(1)
{
if(S1 == 0)
{
delay(10);
if(S1 == 0)
{
lock_off();
}
}
if(S2 == 0)
{
delay(10);
if(S2 == 0)
{
______; //锁被打开 }
}
if(S3 == 0)
{
delay(10);
if(S3 == 0)
{
lock_off();
}
}
if(S4 == 0)
{
delay(10);
if(S4 == 0)
{
lock_off();
}
}
}}
lock_on();
任务一 制作四按键电子密码锁 - 任务实施
编程(新建工程与源文件)
/*---------锁打开函数---------*/
void lock_on(void){
LED1 = 0;
LED2 = 1; //绿灯亮,锁被打开}
/*---------锁定函数---------*/
void lock_off(void){
LED1 = 1;
LED2 = 0; //红灯亮,锁定}
/*---------延时MS毫秒函数---------*/
void delay(uint MS){
uint i,j;
for(i = 0; i < MS; i++)
for(j = 0; j < 125; j++);}
③ 编译生成 HEX 文件 “四按键电子密码锁.HEX”。
任务一 制作四按键电子密码锁 - 任务实施
仿真调试程序
启动仿真软件Proteus 7.4,新建一个仿真文件(四按键电子密码锁.DSN)。
根据电路原理图绘制仿真电路图(省略复位和时钟电路),添加电源(VCC) 和地端,修改元件标号和标称值。
随堂检测1
绘制独立式键盘模块电路原理图时,从哪个元件库中查找电源插座和 I/O 口插座?
答案:从元件库 “Miscellaneous Connectors.IntLib” 中查找。
焊接独立式键盘模块时,焊接顺序是什么?
答案:焊接顺序为按键 → 电阻 →I/O 口插座 → 电源插座 → 连接导线。
随堂检测2
在四按键电子密码锁程序中,按键按下时为什么要延时 10ms?
答案:为了消除按键抖动的影响。
绘制四按键电子密码锁程序流程图时,第一步是什么?
答案:启动流程图绘图软件 Diagram Designer,新建一个文件,文件名为 “四按键电子密码锁流程图.DDD”,设置图纸大小为 A4。
1
讨论如何优化四按键电子密码锁的电路设计,提高其稳定性。分析在实际应用中,四按键电子密码锁可能存在的安全隐患及解决办法。
1. 绘制独立式键盘模块电路原理图
任务一 制作四按键电子密码锁(2)
2. 焊接独立式键盘模块
元件选取与检测
元件布局与插装
焊接元件
启动与新建文件
查找与拖入元件
绘制电路
保存文件
绘制思路
启动与设置文件
拖取与调整框图
输入文本
连接框图与保存
3. 搭接电路
4. 绘制程序流程图
5. 编程
感谢观看
26
$$