《应用电子技术毕业设计(论文)基于C51单片机的电子密码锁的设计.doc》由会员分享,可在线阅读,更多相关《应用电子技术毕业设计(论文)基于C51单片机的电子密码锁的设计.doc(27页珍藏版)》请在三一办公上搜索。
1、IVT-REJX-50 苏州工业园区职业技术学院 毕业设计 2011 届2011年04月15日设计名称: 基于C51单片机的电子密码锁的设计 专业名称: 应用电子技术 姓 名 : 、 学 号 : 班 级: 指导教师: 苏州工业园区职业技术学院毕业项目任务书(个人表)系部: 电子工程系 毕业项目类别:毕业设计毕业项目名称:基于C51单片机的电子密码锁的设计校内指导教师: 职称:工程师类别:专职校外指导教师: 职称:工程师类别:专职学 生: 专业:应用电子技术班级:1、毕业项目的主要任务及目标1、任务:按单片机应用系统设计的方法及开发研制的步骤,设计并制作一个基于MSC-51系列单片机的电子密码锁
2、。2、目标:1) 完成电子密码锁的设计方案,提供成套电路原理图、程序源代码;2) 交一份设计报告。2、毕业项目的主要内容 1)单片机应用系统-完成电子密码锁的设计;2)利用ISIS 6 Professional设计软件画出系统硬件原理图; ;3)利用keil Uv3编程环境,使用汇编语言实现软件编写和调试;4) 借助编程器完成软件下载;5)可实现用按键控制的电子密码锁及功能利用4*4键盘组成0-9个数字以及A-F个字母,以及利用了LCD显示来完成一些列的功能。开始运行显示You Password.,C键可以用来设定你要的新密码,然后按D键保存。而F键是用来清除密码的。而B键是用来开锁的,如果正
3、确会显示在第二行显示“Unlock OK!”,否则就显示在第二行显示“ERROR!”。6)写出相应的使用说明和使用效果与改进和改进意见。 续表:3、 主要参考文献(若不需要参考文献,可注明,但不要空白)1)8051单片机实践与应用 ,清华大学出版社2)李华,MCS-51单片机接口技术与运用,北京航天航空大学出版社3)胡汉才,单片机接口技术与运用,清华大学出版社4)李鸿,单片机原理及应用,南大学出版社,20025)徐仁贵,单片微型计算机应用技术,机械工业出版社,20016)杨恢先,单片机原理及应用,防科技大学出版社,20037)杨路明,电子信息类专业毕业设计(论文)指导教程,20054、进度安排
4、毕业项目各阶段任务起止日期1毕业项目主题的确定2011年1月4日2011年1月14日2毕业项目资料的搜集2011年1月15日2011年2月14日3毕业项目初稿的完成2011年2月15日2011年2月28日4对毕业项目的修改2011年3月1日2011年3月15日5依据导师建议再次修改2011年3月16日2011年3月31日6. 最终完成2011年4月1日2011年4月15日注: 此表在指导老师的指导下填写。诚 信 声 明本人郑重声明:所呈交的毕业项目报告/论文基于C51单片机的电子密码锁的设计是本人在指导老师的指导下,独立研究、写作的成果。论文中所引用是他人的无论以何种方式发布的文字、研究成果,
5、均在论文中以明确方式标明。本声明的法律结果由本人独自承担。 作者签名: 年 月 日 摘 要单片机以其高可靠性、高性价比、低电压、低功耗等一系列优点,近几年得到迅猛发展和大范围推广,广泛应用于工业控制系统,数据采集系统、智能化仪器仪表,及通讯设备、日常消费类产品、玩具等。并且已经深入到工业生产的各个环节以及人民生活的各层次中,如车间流水线控制、自动化系统等、智能型家用电器(冰箱、空调、彩电)等,无不含有CPU控制器,即单片机。单片机实际上是一个硬件的芯片,通常很难直接和被控对象进行电气连接,必须外加各种扩展接口电路、外部设备、被控对象等硬件和软件,才能构成一个单片机应用系统。C51控制技术主要以
6、MCS-51系列单片机为核心,以扩展输入、输出、显示、控制等外围电路组成的单片机应用系统为实训目的,以高级语言C语言作为编程语言,完成单片机应用系统的设计和开发。MCS-51系列单片机编程语言目前常用的有两种,一种是汇编语言,另一种是C语言。C语言是一种通用 计算机程序设计语言,在国际上十分流行,它既可用来编写计算机的系统程序,也可以编写一般的应用程序。C语言既具有一般高级语言的特点,又能直接对计算机的硬件进行操作,表达和运算能力也很强,许多以前只能采用汇编语言来解决的问题现在都可以改用C语言来解决。随着科学技术的日新月异,对于便捷的加密防盗技术的要求也越来越高,原有的装置远远不能满足当前电子
7、密码锁的需求。单片机电子密码锁设计的系统具有集成度高,可靠性好,安装方便等优点。单片机以其高可靠性、高性价比、低电压、低功耗等一系列优点,近几年得到迅猛发展和大范围推广,广泛应用于工业控制系统,数据采集系统、智能化仪器仪表,及通讯设备、日常消费类产品、玩具等。本篇设计内容是基于51内核单片机的电子密码锁设计,以51单片机为核心,扩展了1602液晶,4*4矩阵键盘,已经继电器驱动电路,构成了电子密码锁的系统设计。程序采用汇编语言编写,具有结构明了,简单易懂编译方便等特点。关键词:单片机,电子锁,LM016L液晶目 录基于C51单片机的电子密码锁的设计- 1 -1.引言- 1 -2.系统概述- 1
8、 -2.1 系统说明:- 1 -2.2 功能简介:- 1 -3所需芯片简介- 3 -3.1基于51内核系列单片机简介- 3 -3.2 AT89C51- 4 -3.3 总体硬件设计- 7 -4 系统软件设计与调试- 8 -5.软件仿真技术在单片机系统设计中的运用- 16 -5.1 基于Proteus的系统仿真- 16 -结 论- 18 -致 谢- 18 -基于C51单片机的电子密码锁的设计1.引言单片机以其高可靠性、高性价比、低电压、低功耗等一系列优点,近几年得到迅猛发展和大范围推广,广泛应用于工业控制系统,数据采集系统、智能化仪器仪表,及通讯设备、日常消费类产品、玩具等。单片机是一种控制芯片,
9、一个微型的计算机,而加上晶振,存储器,地址锁存器,逻辑门,七段译码器(显示器),按钮(类似键盘),扩展芯片,接口等那是单片机系统。MCS51是指由美国INTEL公司生产的一系列单片机的总称,这一系列单片机包括了好些品种,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的产品,该系列其它单片机都是在8051的基础上进行功能的增、减、改变而来的,所以人们习惯于用8051来称呼MCS51系列单片机。随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,
10、受到了广大用户的亲睐。2.系统概述2.1 系统说明:利用4*4键盘组成0-9个数字以及A-F个字母,以及利用了LCD显示来完成一些列的功能。开始运行显示You Password.,C键可以用来设定你要的新密码,然后按D键保存。而F键是用来清除密码的。而B键是用来开锁的,如果正确会显示在第二行显示“Unlock OK!”,否则就显示在第二行显示“ERROR!”。2.2 功能简介:1)本题使用16*2(LM016L)LCD显示器2)开机时显示“You Password”3)键盘设计键盘值: 0123456789ABCDEFc.09为数字键,及其所对应的LCD显示码;A.上锁键。B开门键:输入密码后
11、,再按此键,经比较密码,正确则令电锁动作(P0.0)。并在第二行显示“Unlock OK!”。如错误则在第二行显示“ERROR!” F;清除键:按此键后,可以把输错的密码删掉;C 如果你要设定新密码,可以按此键 D 当你新密码完成后 。可以按此键保存。3所需芯片简介3.1基于51内核系列单片机简介MCS-51单片机是美国INTE公司于1980年推出的产品(如图1),与MCS-48单片机相比,它的结构更先进,功能更强,在原来的基础上增加了更多的电路单元和指令,指令数达111条,MCS-51单片机可以算是相当成功的产品,一直到现在,MCS-51系列或其兼容的单片机仍是应用的主流产品,各高校及专业学
12、校的培训教材仍以MCS-51单片机作为代表进行理论基础学习。我们也以这一代表性的机型进行系统的讲解。MCS-51系列单片机主要包括8031、8051和8751等通用产品,其主要功能如下:4kbytes 程序存储器(ROM) 128bytes的数据存储器(RAM)32条I/O口线111条指令,大部分为单字节指令21个专用寄存器2个可编程定时/计数器5个中断源,2个优先级一个全双工串行通信口外部数据存储器寻址空间为 64kB外部程序存储器寻址空间为64kB逻辑操作位寻址功能双列直插40PinDIP封装单一+5V电源供电MCS-51以其典型的结构和完善的总线专用寄存器的集中管理,众多的逻辑位操作功能
13、及面向控制的丰富的指令系统,堪称为一代“名机”,为以后的其它单片机的发展奠定了基础。正因为其优越的性能和完善的结构,导致后来的许多厂商多沿用或参考了其体系结构,有许多世界大的电气商丰富和发展了MCS-51单片机,象PHILIPS、Dallas、ATMEL等著名的半导体公司都推出了兼容MCS-51的单片机产品,就连我国的台湾WINBOND公司也发展了兼容C51(人们习惯将MCS-51简称C51,如果没有特别声明,二者同指MCS-51系列单片机)的单片机品种。近年来C51获得了飞速的发展,C51的发源公司INTEL由于忙于开发PC及高端微处理器而无精力继续发展自己的单片机,而由其它厂商将其发展,最
14、典型的是PHILIPS和ATML公司,PHILIPS公司主要是改善其性能,在原来的基础上发展了高速I/O口,A/D转换器,PWM(脉宽调制)、WDT等增强功能,并在低电压、微功耗、扩展串行总线(I2C)和控制网络总线(CAN)等功能加以完善。 3.2 AT89C5151单片机AT89C51中文资料AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器, AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。1主要特性:与MCS-51
15、 兼容 4K字节可编程闪烁存储器 寿命:1000写/擦循环数据保留时间:10年全静态工作:0Hz-24Hz三级程序存储器锁定128*8位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源 可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路2管脚说明: VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P
16、1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它
17、利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部
18、输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地
19、址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向
20、振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。3.3 总体硬件设计系统总体的设计主要分4个部分:单片机以及最小系统,矩阵键盘,LM016L液晶显示模块如(图十)(图十)4 系统软件设计与调试一、C51源程序:;*; /名称:用1602LCD与24C04设计的电子密码锁/-/说明:初始密码由24C04.BIN设定为“876543”。/ 当输入09中的数字时可以输入密码,不超过6位,输入完成后按下B/ 键开锁,密码正确时LED点亮,液晶屏显示开锁成功。/ 其他键功能是:A上锁 C重新输入密码 D保存新密码 F清除/ 重设密码时要求先输入正确的密码开锁成功。/-#in
21、clude #include #define uchar unsigned char#define uint unsigned int/上次按键和当前按键序号,该矩阵中序号范围为015,16表示无按键uchar Pre_KeyNo=16, KeyNo=16;uchar code Title_Text=Your Password.; /标题字符串uchar DSY_BUFFER10=; /显示缓冲uchar UserPassword10=; /用户输入密码void LCD_Init();/void Display_String(uchar * str,uchar LineNo);void Dis
22、play_String(uchar x,uchar y,uchar *str);void IIC_24C04_Init();void Beep();uchar RecString(uchar Slave,uchar Subadder,uchar *Buffer,uchar N); /从IIC读取数据uchar SendString(uchar Slave,uchar Subadder,uchar *Buffer,uchar N); /从IIC写入数据uchar Keys_Scan(); /键盘扫描,返回键盘号015sbit LED_OPEN=P27; /开锁灯亮sbit BEEP=P37; /
23、蜂鸣器/-/延时/-void DelayMS(uint x)uchar i;while (x-) for (i=0;i120;i+);/-/蜂鸣器子程序/-void Beep()uchar i;for (i=0;i100;i+)DelayMS(1);BEEP=BEEP;/-/清除密码/-void Clear_Password()UserPassword0=0;DSY_BUFFER0=0;/-/ 主程序/-void main() uchar i = 0; uchar IIC_Password10;/=876543; uchar IS_Valid_User = 0; P0 = 0xFF; P1 =
24、 0xFF; P2 = 0xFF; DelayMS(10); LCD_Init(); /初始化LCD IIC_24C04_Init(); /初始化24C04 Display_String(0,0,Title_Text); /在第1行显示标题 /24C04的内容已由初始化BIN文件导入 /将24C04中预先写入的密码读入pass RecString(0xa0, 0 , IIC_Password, 6); IIC_Password6 = 0; while(1) P1 = 0xF0; if(P1 != 0xF0) KeyNo = Keys_Scan(); /扫描键盘获取键序号KeyNo switch
25、 ( KeyNo ) case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: if ( i= 5 ) /密码限制在6位以内 /如果i为0则执行一次清屏 if (i=0)Display_String(0,1, ); UserPasswordi = KeyNo + 0; UserPasswordi+1 = 0; DSY_BUFFERi = *; DSY_BUFFERi+1 = 0; Display_String(0,1,DSY_BUFFER); i+; break; case 11: /按B键开锁 if (st
26、rcmp(UserPassword,IIC_Password) = 0) LED_OPEN = 0; /点亮LED Clear_Password(); Display_String(0,1,Unlock OK! ); IS_Valid_User = 1; else LED_OPEN =1; /关闭LED Clear_Password(); Display_String(0,1,ERROR! ); IS_Valid_User = 0; i = 0; break; case 10: /按A键上锁 LED_OPEN =1; Clear_Password(); Display_String(0,0,T
27、itle_Text);Display_String(0,1, ); i = 0; IS_Valid_User = 0; break; case 12: /按C键设置新密码 /如果是合法用户则提示输入新密码 if ( !IS_Valid_User )Display_String(0,1,No Rights! ); else i = 0; Display_String(0,0,New Password );Display_String(0,1, ); break; case 13: /按13键保存新密码 if ( !IS_Valid_User ) Display_String(0,1,No Rig
28、hts! ); else SendString(0xa0, 0 , UserPassword, 6); for(i=0;i7;i+)IIC_Passwordi=UserPasswordi; /重新读入刚写的密码 / RecString(0xa0, 0 , IIC_Password, 6); / IIC_Password6 = 0; i = 0; Display_String(0,0,Title_Text); Display_String(0,1,Password Saved); break; case 15: /按F键消除所有输入 i = 0; Clear_Password(); Displa
29、y_String(0,1, ); Beep(); DelayMS(100); P1= 0xF0; while (P1 != 0xF0); /如果有键未释放则等待 while (P1 = 0xF0); /如果没有再次按下按键则等待 RETFINI:NOPEND二、利用keil Uv2进行程序编译与调试1、如图7,keil Uv2的启动界面。图72、新建工程:点击projectnew project,然后选择保存地址。文件名Ley Look,然后选择单片机为AT89C51,生成工程文件。如图8图83、新建文件添加到工程:点击,生成,在此文件下编写程序。写完程序将文件保存为.c文件。右击选择将.c文
30、件添加到工程。如图94、编译并生成.C文件右击,单击进入设置界面,在OUTPUT选项卡下选中如图9,点击OK完成。图95.软件仿真技术在单片机系统设计中的运用5.1 基于Proteus的系统仿真5.11 Proteus Professional界面介绍安装完 Proteus后,运行ISIS 6 Professional,会出现下面这个窗口:图12为方便介绍,我分别对窗口内各部分进行了说明(图7)。下面简单介绍各部分的功能:1.原理图编辑窗口(The Editing Window)顾名思义,它是用来绘制原理图的。蓝色方框内为可编辑区,元件要放到它里面。注意,这个窗口是没有滚动条的,你可以用预览窗
31、口来改变原理图的可视范围。 2、预览窗口(The Overview Window)它可以显示两个内容。一个是:当你在元件列表中选择一个元件时,它会显示该元件的预览图;另一个是:当你的鼠标焦点落在原理图编辑窗口时(即放置元件到原理图编辑窗口后或在原理图编辑窗口中点击鼠标后),它会显示整张原理图的缩略图,并会显示一个绿色的方框,绿色方框里面的内容就是当前原理图窗口中显示的内容,因此你可用鼠标在它上面点击来改变绿色方框的位置,从而改变原理图的可视范围。 图133.模型选择元件栏(Mode Selector Toolbar)主要模型(Main Modes) 由左向右功能分别为:选择元件(compone
32、nts)(默认选择的) 、放置连接点 、放置标签(用总线时会用到) 、放置文本、用于绘制总线 、用于放置子电路 、用于即时编辑元件参数(先单击该图标再单击要修改的元件) 配件(Gadgets)由左向右功能分别为: 终端接口(terminala):有VCC、地、输出、输入等接口 器件引脚:用于绘制各种引脚 仿真图表(graph):用于各种分析,如Noise Analysis 录音机 信号发生器(generators) 电压探针:使用仿真图表时要用到 电流探针:使用仿真图表时要用到 虚拟仪表:有示波器等 2D图形(2D Graphics):由左向右功能分别为:画各种直线 、画各种方框 、画各种圆
33、、画各种圆弧 、画各种多边形 、画各种文本 、画符号 、画原点等 4.元件列表(The Object Selector)用于挑选元件(components)、终端接口(terminals)、信号发生器(generators)、仿真图表(graph)等。举例,当你选择“元件(components)”,单击“P”按钮会打开挑选元件对话框,选择了一个元件后(单击了OK后),该元件会在元件列表中显示,以后要用到该元件时,只需在元件列表中选择即可。5.方向工具栏(Orientation Toolbar)旋转:旋转角度只能是90的整倍数。翻转:水平翻转和垂直翻转。使用方法:先右键单击元件,再点击(左击)相应的旋转图标。6.仿真工具栏仿真控制按钮由左向右功能分别为:运行、单步运行 、暂停 、停止 参 考 文 献(1)8051单片机实践与应用 ,清华大学出版社(2)李华,MCS-51单片机接口技术与运用,北京航天航空大学出版社(3)胡汉才,单片机接口技术与运用,清华大学出版社(4)李鸿,单片机原理及应用,南大学出版社,2002(5)徐仁贵,单片微型计算机应用技术,机械工业出版社,2001(6)杨恢先,单片机原理及应用,防科技大学出版社,2003(7)杨路明,电子信息类专业毕业设计(论文)指导教程,2005