基于单片机的电子密码锁设计论文(编辑修改稿)内容摘要:

大学本科生毕业设计(论文) 14 否 是 否 是 否 否 是 是 否 图 10 系统程序流程图 开始 系统初始化 显示主界面 按键检测 读入键值 A 键是否按下 开锁,绿灯亮 判断密码对否 B 键是否按下 设置新密码 A 键是否按下 新密码设置完成 是 报警,红灯亮 大学本科生毕业设计(论文) 15 密码比较判断模块 该模块的功能是将键盘输入的密码利用 if 语句与设定的密码进行逐个比较,若密码完全正确则开锁;若不正确,则开启报警电路,复位后重新输入密码。 其密码输入和比较判决流程图如图 11 所示。 图 11 密码输入和比较判决流程图 密码修改模块 在密码输入正确情况下,可以按下“重置 密码”对密码进行重新设置,每设定一位就将密码送给 AT24C02 存储起来,当设置 6 位密码完毕后,系统将自动跳到程序开始,调用新设置的密码。 图 12 为修改密码流程图。 输入密码 核对 键盘锁定,开启报警电路 开锁,灯亮,可密码修改 N Y 复位 大学本科生毕业设计(论文) 16 图 12 修改密码流程图 键盘扫描模块 键盘使用矩阵式键盘,由行和列组成, CPU对所有键盘进行监视,从而实现逐列扫描键盘确定被按键的具体位置、判断键盘上有无键按下、消除去抖动、判断闭合的键是开始 输入原密码 密码比较 比较正确。 输入新密码 再输入新密码 调用 AT24C02 密码 比较正确 修改成功 返回菜单 键盘锁定,启动报警电路 复位 Y N 大学本科生毕业设计(论文) 17 否释放等功能。 如图 13 所示,为键盘扫描流程图。 图 13 键盘扫描流程图 1602A 液晶显示模块 此模块包括液晶初始化、命令的输入、显示数据的输入。 其中命令是用于控制液晶状态是否显示光标 , 光标是否闪烁 , 是否清除原来数据以及显示的具体位置。 数据显示主要是将要显示的信息按需要准时显示出来。 开始 延时去抖动 计算输入键值 键值送入单片机 有按键输入。 有按键输入。 有按键输入。 返回 N N Y Y 大学本科生毕业设计(论文) 18 5 总结 从基本方案的制定,到硬件电路的选择,再到电路的焊接,最后进行程序调试 ——在此期间我遇到很多困难,但经过不懈努力,和再学习,终于击破了各个难点,达到的所需要的效果。 在这次设计中,我深刻认识到自身的不足 —— 专业知识不足,缺少实 战经验。 与此同时,也因为这次设计,我们得到一定的锻炼,体会到理论与实践相结合的重要意义。 由于本次设计时间有限,一些设想没有完全实现,比如说:电子密码锁的网络通信扩展,人机界面智能化等。 期待以后有机会对以上设想进行进一步研究实践。 但是,基本成功实现了 1602 液晶显示 , 密码开锁 , 密码设置 , 防止多次试探 , 报警等功能。 致谢 非常感谢在这次毕业设计中给我很大帮助的朱金荣老师,感谢朱老师一如既往的严格要求,感谢朱老师给我们的压力,让我强迫自己从开始的迷茫困惑中渐渐熟悉掌握了毕业设计的思路和方向。 在论文 写作和实物设计过程中,朱老师严格认真的教学作风深深感染了我,我对他提出的各种疑难问题他都一一给我做了解答,并给我纠正了许多错误。 这次毕业设计我学到许多新的知识,也巩固了很多原来学过的知识,这对我以后的工作有极大地帮助。 同时感谢曾经孙妍,张凯,朱俊,陈卫峰等多位老师的专业课的讲授,才有学生今日的设计成果。 感谢王志俊同学对我的无私的帮助。 感谢祖国,感谢党,给我们当代大学生营造的和谐环境,才有我们今日顺利完成的学业。 参考文献 [1]郭海英 .基于单片机的电子安全密码锁的设计 [J].现代电子技术, 2020, 28( 13): 9597. [2]张毅刚 .单片机原理及应用 [M].北京:高等教育出版社, 2020. [3]谭浩强 .C 程序设计 [M].北京:清华大学出版社, 2020 [4]杨章伟,韩雪,张浩然 .跟我学 C 程序设计 [M].北京:清华大学出版社, 2020 [5]张培仁 .基于 C 语言编程 MCS51 单片机原理与应用 [M].北京:清华大学出版社,2020 [6]周润景,张丽娜,丁莉 .基于 PROTEUS 的电路及单片机设计与仿真 [M].北京:北大学本科生毕业设计(论文) 19 京航天航空大学出版社, 2020 [7] YB1602A 液晶模块使 用说明书 [DB/OL]. [8]AT24C02[DB/OL]. [9]at24c02 中文资料 [DB/OL]. [10]金桂,向国梁 .基于 C 语言 STC89C52 单片机电子密码锁的设计与仿真 [J].现代电子技术, 2020, 19: 176182. 附录 1 器件清单 器件名称 规格型号 编号 数量 单价(元) 总价(元) 备注 MCU STC89C52 U1 1 7 7 外部存储器 AT24C02 U2 1 LCD 1602A LCD1 1 20 20 发光二极管 3mm D1 1 绿光 普亮 3mm D2 1 红光 普亮 三极管 8550 Q1 1 晶振 12MHz X1 1 电阻 4 10kΩ 2 10K 排阻 RP1 1 电容 22P C1C2 2 10μ F C3 1 大学本科生毕业设计(论文) 20 IC 座 8 脚 IC 座 1 40 脚 IC 座 1 单排插座 1 蜂鸣器 LS1 1 电池盒 5V 电池盒 1 4 4 焊锡 2 1 2 导线 1 1 1 电路板 9 15cm 万用板 1 2 源 程序 include define uchar unsigned char void WrToROM(uchar Address,uchar Data[],uchar Num)。 void RdFromROM(uchar Address,uchar Data[],uchar Num)。 void LCD_init()。 void LCD_DISPLAY(uchar *str)。 void KeyDisp()。 extern uchar passwd[5]。 uchar ppp[5]=222。 void main() { LCD_init()。 WrToROM(0x00,passwd,5)。 RdFromROM(0x00,passwd,5)。 LCD_DISPLAY(Wele china ! Plz input passwd)。 while(1) 大学本科生毕业设计(论文) 21 { KeyDisp()。 } } //***************** 80s52 对键盘 **********************// include include define uchar unsigned char void LCD_DISPLAY(uchar *str)。 void write_(uchar )。 void write_data(uchar Data)。 void WrToROM(uchar Address,uchar Data[],uchar Num)。 void RdFromROM(uchar Address,uchar Data[],uchar Num)。 uchar code tab1[]={ERROR!}。 uchar code tab2[]={RIGHT!}。 uchar code tab3[]={0123456789*}。 uchar code tab4[]={Input the codes:}。 uchar code tab5[]={Input new codes:}。 uchar code tab6[]={Input old codes:}。 uchar mima[9] =22224444。 //存放用户密码和正确密码:前四位是用户输入密码,后四位是系统的正确密码 uchar passwd[5]=1111。 uchar te[9]={0}。 sbit relay = P2^0。 sbit beep = P2^1。 /****************************** 矩 阵 键 盘 子 程 序大学本科生毕业设计(论文) 22 *********************************/ void delay(uchar v)//延时 { while(v!=0) v。 } void delaynms(uchar n) //延时 50*n 毫秒 { uchar a,b,c。 for(c=n。 c0。 c) for(b=173。 b0。 b) for(a=143。 a0。 a)。 } uchar Keycan(void) //按键扫描程序 为行线 为列线 { uchar rcode, ccode。 P1 = 0xF0。 // 发全 0 行扫描码,列线输入 if((P1amp。 0xF0)!= 0xF0) // 若有键按下 { delay(200)。 // 延时去抖动 if((P1amp。 0xF0) != 0xF0) { rcode = 0xFE。 // 逐行扫描初值 while((rcodeamp。 0x10)!= 0) { P1=rcode。 // 输出行扫描码 if((P1amp。 0xF0)!= 0xF0) // 本行有键按下 { 大学本科生毕业设计(论文) 23 ccode=(P1amp。 0xF0)|0x0F。 do{。 }while((P1amp。 0xF0)!= 0xF0)。 //等待键释放 return ((~rcode)+(~ccode))。 //。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。