单片机之旅——电子密码锁
来源:互联网 发布:后期制作需要哪些软件 编辑:程序博客网 时间:2024/05/01 02:10
共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过40秒(一般情况下,用户不会超过40秒,若用户觉得不便,还可以修改)电路将报警80秒,若电路连续报警三次,电路将锁定键盘5分钟,防止他人的非法操作。
#include<reg52.h>sbit fmq=P0^7;sbit pass_1 = P2^0;sbit pass_2 = P2^1;sbit pass_3 = P2^2;sbit pass_4 = P2^3;unsigned int count;unsigned int jishu;void delay500us(){unsigned char j; for(j=0;j<57;j++) //500us基准延时程序 { ; } }void beep()//产生1KHZ频率声音的函数{ fmq=0;delay500us();fmq=1;delay500us();}void delay1ms(unsigned int i){unsigned char j; while(i--) { for(j=0;j<115;j++) //1ms基准延时程序 { ; } } }void delayms(unsigned int m){unsigned int i,j;for(i = m; i > 0; i--){for(j = 110; j > 0; j--);}}unsigned int i,j,t;void voice(){for(i = 10000; i > 0; i--){for(j = 110; j > 0; j--){for(t=0;t<1000;t++){beep();}fmq=1;delay1ms(1000);}}}unsigned char temp;void monitor_key(){P2 = 0xff;temp = P2;if(temp != 0xff){delayms(10);if(temp != 0xff){if(pass_1 == 0){count++;}else if(pass_2 == 0){count++;}else if(pass_3 == 0){count++;}else if(pass_4 == 0){count++;}else{count = 0;jishu++;}} delayms(10);}}void main(){unsigned int t; while(1) {monitor_key();if(jishu == 3){voice();delayms(5 * 60 * 1000);jishu = 0;} }}
- 单片机之旅——电子密码锁
- 单片机电子密码锁源代码
- 基于单片机的电子密码锁的实现
- 可以改密码的单片机电子密码锁
- 电子密码锁
- 电子密码锁
- MS51 电子密码锁设计
- 电子密码锁设计
- 简易电子密码锁设计
- 谁有基于AT89S51单片机的八位电子密码锁资料,谢谢!
- 单片机和24C02制作的可以改密码的电子密码锁
- 基于C语言STC89C52单片机电子密码锁的设计与仿真
- 四位密码锁*电子密码锁的设计
- 24c02单片机密码锁
- 51单片机密码锁源码
- 单片机实用密码锁
- 红外线电子密码锁的制作
- 贪心——特殊密码锁
- hdu 1253 胜利大逃亡 (bfs)
- 简单的三层框架以及使用dbutils进行数据库操作(入门)
- JSONModel源码阅读笔记
- hdu3787-A+B
- 如何写出高性能SQL--优化SQL查询:如何写出高性能SQL语句
- 单片机之旅——电子密码锁
- 解析Caliburn.Micro(四)
- GUI 中监听 文本框实时改变的实例
- hdu 2085 核反应堆
- 恢复和删除桌面快捷方式图标箭头
- 哑巴英语与软件开发者
- Oracle10中如何用dbms_xplan分析执行计划
- ios按钮圆角处理
- java基础教程-GUI