密码锁
结束语
第 13 页 共 24 页
经过长达一个礼拜的制作,我终于完成了这次创新实践项目及项目报告。感谢在本次论文设计中给予我帮助的老师和同学。在本次论文设计中,我学习到了很多知识,重新对51系列单片机进行了系统学习,更加详细的了解了51系列单片机的功能,也重新加深了对七段显示管,键盘矩阵等的功能了解及设计技巧。通过本次论文设计,也重新巩固了自己对ISIS、Altium Designer 6、 Protel 99 SE等相关电子设计软件的掌握。当然,在本次设计中,遇到许多困难,充分表明我在以往的学习过程中在这方面知识的欠缺和经验不足。 转眼大学生活已经过去了三年,现在我们也将步入社会开始自己新的生活。通过这段时间做设计,我深深的感到自己在学校所学到的书本上的知识,还远不能满足自己以后的需要。虽然自己将要告别学生生活,但自己在以后的工作中还要更加努力的学习,做到“学习永无止境”。我相信四年的大学学习、生活,将成为我人生中的一笔宝贵的财富。
本次毕业设计的电子密码锁是最基本的设计,具有简单实用性,首先采用了AT89C51单片机作为主控制芯片,以达到使设计整体简洁明了的目的。设计中实用的按键连接电路、显示连接电路、复位电路、起振电路都是51单片机设计中最常采用的设计电路。在本次设计中,相比较51单片机常用的掉电存储电路的设计,我认为掉电存储电路的设计是有一定的创新性的。在本次设计中显示电路仅采用了四位八段数码管进行设计,虽然易于设计且方便实用,但功能远不够满足现实需求,希望今后的设计者能在此基础上增添一些功能,如:可以在设计中设计用户提示。 希望这个问题在以后的设计中得到解决。
密码锁
参考文献
第 14 页 共 24 页
1 徐惠民、安德宁:《单片微型计算机原理接口与应用》第1版,北京邮电大
学出版社,1996
2 夏继强:《单片机实验与实践教程》,北京航空航天大学出版社,2001 3 王毓银.数字电路逻辑设计.高等教育出版社,2005年12月 4 杨将新,李华军,刘到骏等.单片机程序设计及应用(从基础到实践)[J].电子工业出版社,2006
5 周立功.LPC900系列Flash单片机应用技术[J].北京航空航天大学出版社, 2004
6 刘和平.刘跃.单片机原理及应用.重庆.重庆大学出版社,2004
7 张立科.单片机典型外围器件及应用实例.北京.人民邮电出版社,2006 8 陈明荧.89C51单片机课程设计实训教材.北京.清华大学出版社,2004 9 刘瑞新.单片机原理及应用教程.北京.机械工业出版社,2003 10 求是科技.单片机.人民邮电大学出版社,2005
11 李朝青.单片机原理及接口技术.北京.北京航空航天大学出版社,2002 12 饶庆和.89C51单片机实用技术.北京.人民邮电出版社,2003
13 清华大学电子学教研组.闫石.数字电路基础.高等教育出版社,2008
14 李华.MCS-51系列单片机使用接口技术.北京航空航天大学出版社,1993 15 王忠飞.胥芳 MCS-51单片机原理及嵌入式系统应用.西安电大出版社,2007
密码锁
附录
软件程序
第 15 页 共 24 页
#include
#include\#include\#include\sbit led_red=P2^5; sbit led_gre=P2^6; sbit spk=P2^7;
uchar ASC[]={'0','1','2','3','4','5','6','7','8','9'}; uchar one=0,two=1,three=2,four=3; uint t0,t1;
void Init_time0(void) {
TMOD=0x11;
TH0=(65535-50000)/256; TL0=(65535-50000)%6; TH1=(65535-2000)/256; TL1=(65535-2000)%6; EA=1; ET0=1; ET1=1; TR0=0; TR1=0; }
void main(void) {
uchar flag=0,cflag=0; uchar i=0,k=0;
uchar j=0,t=0,shu=1;
uchar num,newpassword[4]; Init_IIC(); //初始化IIC Init_1602(); //初始化1602 Init_time0(); //初始化定时器0 led_red=0; //熄灭绿灯和红灯 led_gre=0; spk=0;
write_add(1,one); delay_ms(5);
write_add(2,two); delay_ms(5);
write_add(3,three);
密码锁
第 16 页 共 24 页
delay_ms(5);
write_add(4,four); delay_ms(5);
displaylistchar(0,0,\ while(1) {
num=KeyPro(); if(num!=0xff) {
if((num!=13)&&(flag==0)) {
displaylistchar(0,0,\
if(num>=0&&num<=9) {
TR0=~TR0; t0=0;
displayonechar(i,1,ASC[num]); newpassword[i++]=num; }
if(num==10) {
TR0=~TR0; //若按键后五秒内没有打开锁,则报警 t0=0; if(i>0) {
i=i-1;
displayonechar(i,1,' '); } }
if(num==11) {
TR0=0; i=0;
displaylistchar(0,1,\ }
if(num==12) {
TR0=0;
if(i==4) {
for(j=0;j<4;j++) {
if(newpassword[j]!=read_add(j+1))
密码锁
第 17 页 共 24 页
break;
}
if(j==i)
{ led_gre=1; led_red=0;
displaylistchar(0,1,\ delay_ms(1000);
i=0; //按键输入数置0
displaylistchar(0,1,\ }
else {
led_gre=0; //亮红灯 led_red=1;
displaylistchar(0,1,\ delay_ms(1000);
i=0; //按键输入数置0
displaylistchar(0,1,\ } }
else { led_gre=0; led_red=1;
displaylistchar(0,1,\ delay_ms(1000); i=0;
displaylistchar(0,1,\ } }
if(i==6) {
TR0=0;
led_gre=0; //亮红灯 led_red=1;
displaylistchar(0,1,\ delay_ms(1000);
i=0; //按键输入数置0
displaylistchar(0,1,\ } }
else