版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机系统课程设计单片机系统课程设计成绩评定表设计课题:基于89C51的电子密码锁设计学院名称:电气工程学院专业班级:自动F1202学生姓名:张春雷学号:201223910418指导教师:李攀峰设计地点:31-517设计时间:2014-12-29~2015-01-09指导教师意见:成绩:签名:年月日单片机系统课程设计课程设计名称:基于89C51 的电子密码锁设计专业班级:自动F1202学生姓名:张春雷学号:201223910418指导教师:李攀峰课程设计地点:31-517课程设计时间:2014-12-29~2015-01-09单片机系统课程设计任务书学生姓名张春雷专业班级自动F1202学号201223910418题目基于89C51的电子密码锁设计课题性质工程设计课题来源自拟指导教师李攀峰主要内容(参数)基于AT89C51的电子密码锁,具有按键提示、密码显示、密码出错报警、控制开锁等功能,具体功能如下:密码输入:用户通过键盘输入正确的密码后,系统自动锁。提示报警:系统使用不同的声音作为用户不同操作的提示。数码管显示:系统使用6位字符表示有关信息。电子锁控制:当用户输入正确密码后,系统开锁;否则,系统闭锁。任务要求(进度)第1-2天:熟悉课程设计任务及要求,查阅技术资料,确定设计方案。第3-4天:按照确定的方案设计单元电路。要求画出单元电路图,元件及元件参数选择要有依据,各单元电路的设计要有详细论述。第5-6天:软件设计,编写程序。第7-8天:实验室调试。第9-10天:撰写课程设计报告。要求内容完整、图表清晰、文理流畅、格式规范、方案合理、设计正确,篇幅合理。主要参考资料[1]张迎新.单片微型计算机原理、应用及接口技术(第2版)[M].北京:国防工业出版社,2004[2]伟福LAB6000系列单片机仿真实验系统使用说明书[3]阎石.数字电路技术基础(第五版).北京:高等教育出版社,2006审查意见系(教研室)主任签字:年月日目录1绪论 41.1 电子密码锁概述 41.2 设计思路及功能 42 总体方案设计 53 硬件电路设计 63.1 电源电路设计 63.2 键盘电路设计 73.3 显示器电路设计 83.4 报警电路设计 93.5 电子锁控制电路设计 103.6 单片机电路设计 104 软件电路设计 114.1 系统主程序设计 124.2 显示子程序设计 134.3 报警子程序设计 134.4 键盘子程序设计 135 调试 155.1 硬件调试 155.2 软件调试 156 总结 167 参考文献 178 附录 188.1 附录1源程序 188.2 附录2电路图 251绪论电子密码锁概述随着科技的发展和社会生活水平的提高,人们对日常生活中安全保险器件的要求越来越高,电子安全密码锁是基于这一要求的保险器件。目前使用的密码锁种类繁多,如指纹密码锁、红外密码锁、GPS密码锁等,各具特色。着社会科技的进步,锁已发展到了密码锁、磁性锁、电子锁、激光锁、声控锁等等。在传统钥匙的基础上,加了一组或多组密码,不同声音,不同磁场,不同声波,不同光束光波,不同图像。(如指纹、眼底视网膜等)来控制锁的开启当今安全信息系统应用越来越广泛,特别在保护机密、维护隐私和财产保护方面起到重大作用,而基于电子密码锁的安全系统是其中的组成部分,因此研究它具有重大的现实意义。电子锁可以在日常生活和现代办公中,住宅与办公室的安全防范、单位的文件档案、财务报表以及一些个人资料的保存等多种场合使用。设计思路及功能基于AT89C51单片机的电子密码锁,它具有按键提示、输入错误提示、密码显示、密码出错报警、控制开锁等功能,具体功能如下:密码输入:用户通过键盘输入正确的密码后,系统自动锁。提示报警:系统使用不同的声音作为用户不同操作的提示。短叫一声表示有按键输入,长叫一声表示密码正确,长叫5s表示密码错误,长叫3min表示连续5次密码出错。数码管显示:系统使用6位字符白哦是有关信息。第一个字符表示功能,P表示等待用户输入开锁密码;O表示系统已经开锁;显示A表示密码多次出错告警。电子锁控制:当用户输入正确的密码后,系统开锁;否则系统闭锁,当系统处于开锁状态时,可以通过按键操作,使系统闭锁。 总体方案设计根据功能介绍,密码锁系统要完成用户密码输入、显示和控制报警3大功能,因此可分为键盘模块、显示模块、报警模块、电子锁控制模块、电源模块和单片机模块。系统模块图如图2.1所示。图2.1系统模块图各模块设计思路如下:用户通过键盘模块输入密码和其他功能。密码键有10个,功能键有3个,一共需要13个按键。因此,系统键盘采用4x4行列式键盘,可安装16个按键,能够满足需要。系统只需要显示0~9共10个数字和若干字符,不用显示汉字等信息,所以采用6位LED数码管显示器。第一个数码管用来显示功能字符,其余5位用于显示密码。为了简化电路设计,系统采用动态显示方法。报警模块用来产生报警或提示声音,可以有蜂鸣器构成。电子锁控制模块用于控制开锁或闭锁。系统通过继电器控制电子锁,方便用户使用。本设计电子所部分采用发光二极管代替,当发光二极管亮,表示系统闭锁;当发光二级光灭,表示系统闭锁。单片机模块采用AT89C51,用于接收键盘输入、控制显示、报警、电子锁等模块。电源部分接收外部9v输入,产生5v输出,为单片机及其他模块供电。硬件电路设计根据系统各模块的功能,选择合适的集成电路芯片,然后就可进行硬件电路设计。密码锁硬件电路较为简单,按照系统功能模块分为电源电路、显示电路、报警电路、电子锁电路及单片机电路。单片机电路是主控电路,接收键盘电路的按键输入,并送显示电路显示;根据输入的按键,控制报警电路是否报警及电子锁电路的开、闭锁。下面对个电路逐一加以介绍。电源电路设计整个电路的芯片使用5v电压,所以电源电路将外部9v的输入电压,稳压后形成5v电压供系统使用。稳压芯片种类繁多,系统采用线性稳压芯片LM7805CT。LM7805CT是美国国家半导体公司生产的降压式三端稳压芯片,输入电压范围是7.5~30v,最大输出电流为1A,内部有过热、短路保护电路,需要较少的外接元件,方便使用。整个系统需要电流不大,系统电源电路图如图3.1所示。图3.1系统电源电路图说明:外部9v电源通过二极管D2接LM7805的1号脚,+5v电源通过3号脚输出,2号脚是地引脚。输入端和输出端通常接两个电容,一个大电容用于低频滤波,一个小电容用于高频滤波。本设计C5、C4采用电解电容,容量是25v/100uF。C6、C7采用0.1uF的独石电容。D2用于防止外接电源极性接反。J1用于制作PCB板时预留电源接线端子。键盘电路设计按键模块采用4x4行列矩阵结构,由4条行线和4条列线构成。行线和列线共有你16个交叉点,每个交叉点可放置一个按键,这样共可放置16个按键。按键电路图如图3.2所示。图3.2按键电路图说明:KEYL0-KEYL3是行线,分别接单片机的P2.0~P2.3;KEYR0~KEYR3是列线,分别接单片机的P2.4~P2.7。软件编程采用线反转法,但是该方法要求行线和列线都要有上拉电阻。由于8C51单片机的P2口内部集成上拉电阻,所以系统未加。S1~S10分别表示0~9数字键,S14表示退格键,S15表示闭锁键,S16表示确认键。线反转个工作原理。首先辨别键盘中有无键按下,有单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。方法是:向行线输出全扫描字00H,把全部列线置为低电平,然后将列线的电平状态读入累加器A中。如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为1判断键盘中哪一个键被按下使通过将列线逐列置低电平后,检查行输入状态来实现的。方法是:依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下的键不在此列;如果不全为1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。显示器电路设计显示电路由6个共阳极LED数码管构成。软件编程时,采用动态显示的方法,显示电路图如图3.3所示。图3.3显示电路图说明:系统使用PNP三极管Q1~Q6控制LED数码管轮流点亮。由于单片机复位期间,I/O引脚输出高电平,使用PNP三极管可避免在复位时显示乱码。R1~R6是三极管的基极电阻,取值1kΩ,R8~R15是LED数码管的限流电阻,取值320Ω.系统使用74LS07驱动LED数码管。由于有8个引脚要驱动,每个74LS07能驱动6个,所以系统使用2片74LS07(U2,U3)。动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。报警电路设计报警电路主要由PNP三极管和蜂鸣器构成。报警电路图如图3.4所示。图3.4报警电路图LS1是一个5v的压电蜂鸣器,当对其1、2号引脚施加5v电压时,便会鸣叫。由图3.4可知,当ALARMCON输出低电平时,三极管Q7饱和导通,蜂鸣器响;输出高电平时,Q7截止,蜂鸣器停止鸣叫。通过控制ALARMCON输出低电平的时间长短来控制蜂鸣器长叫或短叫。蜂鸣器在此设计主要是为了提供按键提醒,通过一个三极管来提供驱动,蜂鸣器一端接高电平,一端接三极管的发射极,三极管的基极通过一个电阻接I/O口的P2.3,集电极接地。当P2.3口送出低电平时,三极管接通,蜂鸣器接通,发出响声。电子锁控制电路设计电子锁控制电路主要由继电器、三极管和发光二极管组成。电子锁控制电路如图3.5所示。图3.5电子锁控制电路继电器线圈的一个接线端接VCC,另一端接NPN三极管Q8的集电极。Q8的基极通过电阻R17接单片机的引脚。当LOCKCON输出高电平时,Q8导通,继电器线圈得点,触点闭合,DS1发光,相当于电子锁闭锁;当LOCKCON输出低电平时,Q8截止,继电器线圈失电,触点释放,DS1熄灭,相当于电子锁开锁。D1是线圈的续流二极管,为感应电动势提供回路,以免损坏三极管。单片机电路设计单片机电路主要由单片机、振荡电路和复位电路组成,电路图如图3.6所示。AT89C51的P0口用于输出显示器段码。P1口的P1.1~P1.5用于控制LED0~LED5的亮灭。P2口用于构成行列矩阵键盘。P3.3用于控制蜂鸣器的鸣叫。P3.5用于控制电子锁的开闭。31号引脚接VCC,使得单片机执行片内程序。软件电路设计软件设计主要是对键盘进行扫描,根据按键控制报警电路、电子锁电路,并将结果显示。因此,整个软件分为按键子程序、显示子程序、报警子程序、电子锁控制子程序及主程序。按键子程序针对硬件电路中的按键电路,扫描键盘返回用户按键值。显示子程序针对硬件电路中的显示电路,实现数据的显示。报警子程序针对硬件电路中的报警电路,实现蜂鸣器鸣叫。电子锁控制子程序针对硬件电路中的电子锁控制电路,通过控制继电器通断实现LED的亮灭。主程序通过调用各个子程序,实现系统功能。系统主程序设计函数main是系统主程序,调用其他子程序实现系统功能。主程序流程图如图4.1所示。函数main调用Ini_System对系统进行初始化,其后程序是一个无限循环程序。在循环体中,当TimerBit值为1时,即每隔20ms执行一次显示、报警、按键扫描、按键处理等子程序。图4.1主程序流程图显示子程序设计显示子程序通过控制LED数码管电路显示DispBuf[]缓冲区的内容,主要包括填充子程序和显示子程序。填充子程序负责将显示内容写入DispBuf、PassInBuf缓冲区中,分为以下几个子程序。函数Fill_Buf:使用特定字符填充DispBuf、PassInBuf。函数Fill_Buf_P:将系统闭锁时的显示信息写入缓冲区。函数Fill_Buf_O:将系统开锁时的显示信息写入缓冲区。函数Fill_Buf_A:将系统报警时的显示信息写入缓冲区。填充区子程序显示信息填好后,由缓冲区显示子程序通过LED数码管将其显示,主要包括以下主程序。函数Disp_led_Sin:在某个LED数码管上显示一个字符。函数Disp_led_OFF:关闭数码管显示。函数Disp_led_ALL:将DispBuf缓冲区的内容显示。具体程序请查看附录1.报警子程序设计报警子程序通过控制蜂鸣器鸣叫,实现按键提示音及密码锁错误报警提示音,包括以下子程序。函数Sys_Speaker:设置报警时间及报警标志位。函数Sys_Alarm:控制蜂鸣器鸣叫。具体程序请参照附录1.键盘子程序设计按键检测子程序负责扫描键盘,生成按键值以及按键去抖动等操作,由以下函数构成。函数Find_Key:扫描一次键盘返回按键值。函数Scan_Key:负责按键去抖等操作。键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦有按键按下,便转向相应的子程序处理,处理结束再返回。其程序流程如图4.4所示。.图4.4键盘扫描流程图调试硬件调试单片机应用系统的硬件调试和软件调试是分不开的.许多硬件故障只有通过软、硬件联调才能发现,但一般是先排除系统中比较明显的硬件故障后才和软件一起联调。元器件错误元器件错误的原因有器件损坏或性能不符合要求,电解电容、二极管的极性接反或集成块装反等。可靠性差应用系统可靠性差的原因很多,如内部和外部的干扰、电压纹波系数过大、器件负载过重等均会造成系统的可靠性差。电源故障电源故障包括:电压值不符合设计要求、电源功率不足、负载能力差、纹波太重等。硬件调试办法:脱机调试是在加电前,先用万用表等工具,按图纸仔细核对线路是否正确,并对元器件的安装、型号、规格等进行仔细检查,特别是有无走线之间相互短路等。软件调试伟福软件中,在“文件\新建文件”中,新建C语言源程序文件,编写相应的程序。在“文件\新建项目”的菜单中,新建项目并将C语言源程序文件包括在项目文件中。在
“项目\编译”菜单中将C源文件编译,检查语法错误及逻辑错误。在编译成功后,产生以
“*.hex”和“*.bin”
后缀的目标文件。对于模块结构程序.要一个个子程序分别调试。调试时,一定要符合入口条件和出口条件,调试可用单步运行和断点运行方式,通过检查用者系统的CPU现场情况、RAM的内容和I/O口的状态,检测程序执行结果是否符合设计要求,有无循环错误、有无机器码错误以及转移地址的错误,同时,还可以发现系统中存在的硬件设计错误和软件算法错误。总结通过对该课题的研究,加深对所学知识的理解,提高对课外知识的学习力增强知识的应用能力,提高解决实际问题的能力,培养自我创新意识。积累实践经验,为以后的发展打下基础,也为以后我们自己在这方面的发展打下基础,并能够在这方面培养自己的兴趣在设计中我们必须首先熟悉和掌握单片机的结构及工作原理,单片机的接口技术及相关外围芯片的外特性,控制方法。以单片机核心的电路设计的基本方法和技术了解表关电路参数的计算方法。单片机不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机了解计算机原理与结构的最佳选择。目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。随着单片机的广泛应用,将大大促进各领域的技术更新,向自动化、小型化、智能化方向迈进。而对于我们来说,我们这代人的目标和任务是把这些高科技产品更升一个层次。参考文献【1】:张迎新.单片微型计算机原理,应用及接口技术.北京:国防工业出版社。【2】:伟福LAB6000系列单片机仿真实验系统使用说明书。
【3】:阎石.数字电子技术基础.北京:高等教育出版社。附录附录1源程序#include
<reg51.h>#include<intrins.h>
#define
uint
unsigned
int
#define
uchar
unsigned
char
sbit
buzzer=P3^0;
sbit
relay=P3^1;
uchar
code
table[2]={0x40,0x00
};
ucharkeyword[4]={1,1,1,1};
uchar
keycmp[4];
uchar
key=0,num=0,flg=0;void
delay(uint
x)
{
uint
i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}void
display()
{
uchar
i,j,cs=0x7f;
for(i=num;i>0;i--)
{
P0=table[0];
cs=_crol_(cs,1);
P2=cs;
delay(10);
}for(j=4-num;j>0;j--)
{
P0=table[1];
cs=_crol_(cs,1);P2=cs;
delay(10);
}
}void
set()
{
num=0;
display();
flg=1;
}//==============================确认键程序void
ok()
{
uchar
i=0;
display();P0=(flg+1);delay(1000);
if(flg==0)
{
for(i=0;i<4;i++)if(keyword[i]!=keycmp[i])
{alarm();break;}
if(num==4)
{relay=0;num=0;}
}
if(flg==2)
{
num=0;for(i=0;i<4;i++)keyword[i]=keycmp[i];flg=0;}if(flg==1){for(i=0;i<4;i++)if(keyword[i]!=keycmp[i]){alarm();break;}if(num==4){num=0;display();//P0=0x07;delay(1000);flg=2;}}}//==============================键盘扫描程序voidkeyscan(){uchartemp1,temp2;P1=0xfe;//令第一列为低电平,检测第1列temp1=P1;if(temp1!=0xfe){delay(5);//去抖temp2=P1;if(temp1==temp2){switch(temp2){case0xf6:if(num<4){key=1;keycmp[num]=key;num++;display();}elsealarm();break;case0xee:if(num<4){key=4;keycmp[num]=key;num++;display();}elsealarm();break;case0xde:if(num<4){key=7;keycmp[num]=key;num++;display();}elsealarm();break;case0xbe:set();break;}}}while(temp1!=0xfe)temp1=P1;//等待按键释放P1=0xfd;//检测第2列temp1=P1;if(temp1!=0xfd){delay(5);//去抖temp2=P1;if(temp1==temp2){
switch(temp2)
{
case
0xf5:
if(num<4){key=2;keycmp[num]=key;num++;disp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年益阳市法官检察官遴选试题及答案
- 2026年药物鉴定考试题库及答案
- 2026年湖南省永州市辅警考试试题及答案
- 2026年吉林省安全员a证考试题库及答案解析
- 2026年中医耳鼻喉科学副高案例真题解析试卷及答案
- 中医学问诊核心技法
- 【曼秀雷敦-丰盈护唇】小红书种草方案
- 2026年预算绩效管理业务干部测试冲刺卷及答案
- 统计专业技术中级资格考试(统计工作实务)备考题库及答案(2026年云南迪庆州)
- 2026年密闭空间作业风险管控考核试题及答案
- 工程师职称答辩报告
- DB44T 1669-2015 注塑机专用机械手
- 2025年新媒体传播与营销考试试题及答案
- 《隧道工程测量》课件
- 教育社会学钱民辉
- CJT511-2017 铸铁检查井盖
- GB/T 7911-2024热固性树脂浸渍纸高压装饰层积板(HPL)
- 机构名称:北京市计量检测科学研究院
- Unit2Lesson1theUnderdog教学设计高中英语北师大版
- 创新思维与方法(第2版)PPT全套完整教学课件
- GA/T 1069-2013法庭科学电子物证手机检验技术规范
评论
0/150
提交评论