单片机控制的密码锁设计(含电路图及源程序)
[09-11 23:01:38] 来源:http://www.88dzw.com 单片机学习 阅读:8782次
文章摘要:图3-10 密码锁的主程序流程图中断服务程序主要完成三种定时的计时工作,包括①按键之后启动的待机计时,当待机超过5s则清除已输入的内容。②密码输入正确之后的计时,4s之后清除开锁驱动信号与已开锁指示信号。 ③密码输入错误3次的计时,计时15s,在则15s内无法再次输入密码,15秒过后清除所有报警与指示。中断服务程序流程图如图3-11所示。图3-11 密码锁中断服务程序流程图 单片机资源的分配与变量的定义: 密码的输入与判断需要定义4个变量。原始密码存储在数组init_val[6]中。键盘输入的密码存储在数据show_val[6]中,变量 key_index的值表示当前按键是六位密码中的哪一位,
单片机控制的密码锁设计(含电路图及源程序),标签:单片机开发,单片机原理,单片机教程,http://www.88dzw.com图3-10 密码锁的主程序流程图
中断服务程序主要完成三种定时的计时工作,包括①按键之后启动的待机计时,当待机超过5s则清除已输入的内容。②密码输入正确之后的计时,4s之后清除开锁驱动信号与已开锁指示信号。 ③密码输入错误3次的计时,计时15s,在则15s内无法再次输入密码,15秒过后清除所有报警与指示。中断服务程序流程图如图3-11所示。
图3-11 密码锁中断服务程序流程图
单片机资源的分配与变量的定义:
密码的输入与判断需要定义4个变量。原始密码存储在数组init_val[6]中。键盘输入的密码存储在数据show_val[6]中,变量 key_index的值表示当前按键是六位密码中的哪一位,每输入一个密码数字该变量增一。密码输入错误的次数暂存在变量error_num中。
计时功能需要5个变量。模式变量cnt_state存储计时属于什么状态,0表示待机计时,1表示密码正确的计时,2表示密码错误3次的计时。三个变量(cnt_val_15s,cnt_val_5s, cnt_val_4s)分别实现待机、密码正确和密码错误3次后的计时工作。定时器T1每250ms产生一次中断,变量T1_cnt记录定时器溢出中断的次数,当记录到4000时表示计时1秒。
(4)设计系统软件调试方案、硬件调试方案及软硬件联合调试方案
软件调试方案:伟福软件中,在“文件\新建文件”中,新建C语言源程序文件,编写相应的程序。在“文件\新建项目”的菜单中,新建项目并将C语言源程序文件包括在项目文件中。
在 “项目\编译”菜单中将C源文件编译,检查语法错误及逻辑错误。在编译成功后,产生以 “*.hex”和“*.bin” 后缀的目标文件。
硬件调试方案:在设计平台中,将单片机的P1.0-P1.7分别与8个独立式键盘通过插线连接起来,将P3.0-P3.3分别与4个发光二极管连接起来,P3.4与蜂鸣器的输入连接起来。
在伟福中将程序文件编译成目标文件后,将下载线安装在实验平台的下载线接口上,运行“MCU下载程序”,选择相应的flash 数据文件,点击“编程”按钮,将程序文件下载到单片机的Flash中。
然后,上电重新启动单片机,检查所编写的程序是否达到题目的要求,是否全面完整地完成试题的内容。
3.3.2 程序设计
//晶振11.0592MHz,T1每250微秒中断,按键P1.0-P1.7,发光二极管接P3.0-P3.3,p3.4
/*变量的定义:
show_val[6]: 显示的值
init_val[6]: 密码初始值
key_val: 返回按键的值 255-表示无按键按下
key_index: 当前按键是哪一位密码
T1_cnt: 定时器计数溢出数
cnt_val_15s: 报警计时的数值
cnt_val_5s: 待机时间计时
cnt_val_4s: 输入正确,等待4秒清除开锁信号
cnt_state: 计时状态
error_num: 错误次数
led_seg_code:数码管7段码
*/
#include "reg51.h"
/*说明key0=P1^0; key1=P1^1;key2=P1^2; key3=P1^3;key4=P1^4;key5=P1^5;enter=P1^6;esc=P1^7;*/
sbit relay_open=P3^0; //电磁锁开锁驱动
sbit pw_error=P3^1; //密码错误信号
sbit alarm_out=P3^2; //报警输出
sbit open_lock=P3^3; //已开锁指示信号
sbit audio_out=P3^4; //有源蜂鸣器
unsigned char data cnt_val_15s,cnt_val_5s,cnt_val_4s,cnt_state;
unsigned int data T1_cnt;
unsigned char data key_val,key_index,key_val_old;
unsigned char data state_val,error_num;
上一页 [1] [2] [3] [4] [5] [6] [7] 下一页
《单片机控制的密码锁设计(含电路图及源程序)》相关文章
- › 单片机控制彩电遥控器玩具车电路图
- › PWM技术在单片机控制智能充电器中的应用
- › 关于单片机控制GSM手机的技术及应用
- › 基于单片机控制的带锁相环三路智能同步采集卡设计
- › 用单片机控制红外编码探测障碍物
- › 单片机控制器在水泵一用一备控制系统中的应用
- 在百度中搜索相关文章:单片机控制的密码锁设计(含电路图及源程序)
- 在谷歌中搜索相关文章:单片机控制的密码锁设计(含电路图及源程序)
- 在soso中搜索相关文章:单片机控制的密码锁设计(含电路图及源程序)
- 在搜狗中搜索相关文章:单片机控制的密码锁设计(含电路图及源程序)