毕业设计-基于stc89c52单片机的电子密码锁设计内容摘要:

修改密码等多种功能。 由于设计此电路的时间较仓促,其中还有些许未考虑周全的因素,还需要继续的改进和完善。 单片机密码锁课程设计报告 —— 湖南师大本科生课程设计 16 参考文献 [1] 石文轩 ,宋薇 .基于单片机 MCS 一 51 的智能密码锁设计 [M].武汉工程职业技术学院学报 ,2020,(01)。 [2] 祖龙起 ,刘仁杰 .一种新型可编程密码锁 [J].大连轻工业学院学报 ,2020,(01)。 [3] 叶启明 .单片机制作的新型安全密码锁 [J].家庭电子 ,2020,(10)。 [4] 郭海英 .基于单片机的电子安全密码锁的设计 [M].现代电子技术 ,2020,(13)。 [5] 李明喜 .新型电子密码锁的设计 [J].机电产品开发与创新 ,2020,(03)。 [6] 董继成 .一种新型安全的单片机密码锁 [J].电子技术 ,2020,(03)。 [7] 祖龙起 ,刘仁杰 ,孙乃凌 .一种新颖的电子密码锁 [J].电子世界 ,2020,(10)。 [8] 李明喜 .新型电子密码锁的设计 [J].机电产品开发与创新 ,2020,(03)。 [9] 杨茂涛 .一种电子密码锁的实现 [J].福建电脑 ,2020,(08)。 [10] 瞿贵荣 .实用电子密码锁 [J].家庭电子 ,2020,(07)。 [11] ,2020,(01)。 [12] Wireless World, 1998, vol、 84, No、 1509, p69。 [13] 王千 .实用电子电路大全 [M],电子工业出版社, 2020, p101。 [14] 何立民 .单片机应用技术选编 [M],北京:北京航空大学出版社, 1998。 [15] 李华 .MCS51系列单片机使用接口技术 [M],北京航空航天大学出版 社, 1993。 [16] 彭为 .单片机典型系统设计实例精讲 [M],北京:电子工业出版社, 2020。 [17] 潘永雄 .新编单片机原理与应用 [M],西安:西安电子科技大学出版社, 2020。 [18] 童诗白 ,华成英,模拟电子技术基础 [M],北京:高等教育出版社, 2020。 [19] 阎石主 .数字电子技术基础 [M],北京:高等教育出版社, 1998。 [20] 樊昌信 ,曹丽娜 .通信原理 [M],北京:国防工业出版社, 2020。 [21] 李瀚荪 .电路分析基础 [M],北京:高等教育出版社 1991。 单片机密码锁课程设计报告 —— 湖南师大本科生课程设计 17 附件一:电路原理 图 作品 实物图 电路原理图 作品实物图 单片机密码锁课程设计报告 —— 湖南师大本科生课程设计 18 附件 三 :程序清单 主程序 //**********家庭电子锁 ************/ //**********C 语言 版 ***************/ //**********2020 年 1 月 ************/ include include include include include include uchar code a0[]={Password Setting}。 uchar code a1[]={wele to here}。 uchar code a2[]={input password:}。 uchar code a4[]={input length:}。 uchar code a5[]={wait for ......}。 uchar code a6[]={secret is saving}。 uchar code a7[]={wait for ......}。 uchar code a8[]={secret is OK}。 uchar code a9[] ={Setting pleted}。 uchar code a10[] ={secret is ERROR}。 uchar code a11[] ={setting serect}。 uchar code b1[]={Families lock}。 uchar code b2[]={Password}。 uchar code c1[]={Open the door }。 uchar code c2[]={Wele host }。 uchar code c3[]={who are you ? }。 uchar code c4[]={I don39。 t know you}。 uchar code c5[]={Password ERROR!}。 bit FLAG1,FLAG2,FLAG3,FALG4。 uchar idata set1[11]={0,0,0,0,0,0,0,0,0,0,0}。 uchar idata set2[11]={0,0,0,0,0,0,0,0,0,0,0}。 enum jian{enter=10,cancel,open,setserect}。 ///////////////////////////////////////// // 用户密码设置 user()。 // 密码输入 inputserect() // 开锁显示 OPENLOCK() //密码读入 readserect() //*******************密码读入 void readserect() { int i。 for(i=0。 iread_random(20)。 i++) { set1[i]= read_random(i)。 } } void yanzh1() { clear()。 write1602(0,0,a8)。 write1602(0,1,a5)。 delay(1000)。 clear()。 write1602(0,0,c1)。 write1602(0,1,c2)。 delay(1000)。 delay(1000)。 clear()。 } void yanzh2() { write1602(0,0,a10)。 write1602(0,1,a5)。 delay(1000)。 write1602(0,0,c3)。 write1602(0,1,c4)。 delay(1000)。 delay(1000)。 clear()。 } void clear1() { int i。 for(i=0。 i16。 i++) {w(0xc0+i)。 wdata(0x20)。 } } /////////////////////////////////////////////////////// // 开锁函数 void openlock() { uchar i=0,m,j=0。 m=read_random(20)。 readserect()。 next: key=18。 i=0。 j++。 while(key==18) //矩阵键盘 { while(flag) keydown()。 flag=1。 if(key!=18) { w(0xc0+i)。 //显示输入密码 wdata(39。 *39。 )。 set2[i]=key+0x30。 i++。 } if(key==enter){ key=0。 i=0。 } 单片机密码锁课程设计报告 —— 湖南师大本科生课程设计 2 else key=18。 } for(i=0。 im。 i++) if(set1[i]!=set2[i]amp。 amp。 j!=3) {for(i=0。 im。 i++) set2[i]=0。 RED=0。 GREEN=1。 clear()。 write1602( 0,0, c5)。 delay(1000)。 clear()。 write1602( 0,0, a2)。 goto next。 } if(j==3) {j=0。 clear()。 yanzh2()。 BEEP=0。 RED=0。 GREEN=1。 } else { yanzh1()。 GREEN=0。 RED=1。 } } /////////////////////////////////////////////////// /////////////////////////////////////////////////// useserect() { uchar i=0。 write1602(0,0,a0)。 write1602(0,1,a5)。 delay(1000)。 clear()。 write1602(0,0,a2)。 key=18。 while(key==18) //矩阵键盘 { while(flag) keydown()。 flag=1。 if(key!=18) { w(0xc0+i)。 //显示输入密码 wdata(key+0x30)。 write_byte(i,key+0x30)。 //密码存储 i++。 } write_byte(20,i1)。 //密码存储 if(key==enter) key=0。 else key=18。 } clear()。 write1602(0,0,a6)。 write1602(0,1,a7)。 delay(1000)。 clear()。 } /////////////////////////////////////////////////// void main() { /////显初始化 init()。 while(1) { write1602(0,0,b1)。 write1602(0,1,a1)。 while(flag) keydown()。 flag=1。 switch(key) { case open: { clear()。 write1602( 0,0, a2)。 openlock()。 break。 } case setserect : { useserect()。 break。 } } } 单片机引脚定义: sbit RS = P1^0。 //RS 数据命令选择端,高电平数据,低电平命令 sbit RW = P1^1。 //RW 读写选择端,高电平读操作,低电平写操作 sbit E = P1^2。 //E 使能控制端, E 高电平跳变为低电平时 LCD 执行命令 sbit SDA = P3^5。 sbit SCL = P3^4。 sbit DB = P2。 //P0=0x80,P1=0x90,P2=0xA0,P3= sbit date1602 =P0。 sbit k1= P3^6。 sbit k2= P3^7。 sbit k3= P1^5。 sbit BEEP=P1^3。 //报警器 sbit RED=P1^5。 sbit GREEN=P1^4。 单片机密码锁课程设计报告 —— 湖南师大本科生课程设计 2 24C02 存取程序 C 代码 : include define uchar unsigned char define uint unsigned int define OP_WRITE 0xa0 // 器件地址以及写入操作 define OP_READ 0xa1 // 器件地址以及读取操作 void delayNOP() {_nop_()。 _nop_()。 _nop_()。 _nop_()。 } void delayms(uint ms) // 延时子程序 { uchar k。 while(ms) { for(k = 0。 k 90。 k++)。 } } /**********************************************************/ void start() //开始位 { SDA = 1。 SC。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。