《课程设计(论文)基于AT89S51单片机的电子锁系统设计.doc》由会员分享,可在线阅读,更多相关《课程设计(论文)基于AT89S51单片机的电子锁系统设计.doc(17页珍藏版)》请在三一办公上搜索。
1、基于AT89S51单片机的电子锁系统设计摘要:利用AT89S51单片机及由Keil uVision2软件编写单片机汇编语言源程序,并且通过Proteus仿真测试,设计了一个电子锁系统,实现按对密码指示灯亮,按错重新输入的功能。关键字:AT89S51;Keil uVision2;Proteus 0 引言 随着社会的发展和人们生活水平的提高,人们的安全意识也逐步加强。密码锁以其安全性高、成本低、功耗低、易操作等优点受到越来越多人的欢迎。本系统采用AT89S51 单片机为主控芯片,并使用51单片机汇编语言在Keil uVision2环境下编写源程序,生成.HEX文件后交给Proteus ISIS进行
2、单片机电路原理仿真。1 系统结构 系统由单片机AT89S51 为主控制器,单片机读取键盘提供的数据,送到LED显示,当按键按下,单片机处理按键。整个系统由5V电池提供,以便携带。所设计的电子锁实现以下功能:输入错误可修改操作,输入正确灯亮。Proteus ISIS电路原理仿真图1.1AT89S51介绍 AT89S51是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4K bytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。它集Flash程序存储器既可在线编程(ISP)也可用传统方法进行编程及通用
3、8位微处理器于单片芯片中。主要性能参数:l 与MCS-51产品指令系统完全兼容l 4K字节在系统编程()F闪速存储器l 1000次擦写周期l 4.0-5.5V的工作电压范围l 全静态工作模式:0Hz-33MHzl 三级程序加密锁l 128*8字节内部RAMl 32个可编程I/O口线 l 2个16位定时/计数器l 6个中断源l 全双工串行UART通道l 低功耗空闲和掉电模式l 中断可从空闲模唤醒系统l 看门狗(WDT)及双数据指针l 掉电标识和快速编程特性l 灵活的在系统编程(ISP字节或页写模式)功能特性概述: AT89S51提供以下标准功能:4K字节Flash闪速存储器,128字节内RAM,
4、32个I/O口线,看门狗,两个数据指针,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内震荡器及时钟电路。同时,AT89S51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但震荡器停止工作并禁止其它所有部件工作到下一个硬件复位。 AT89S51 具有如下特点:为适应不同的产品需求,采用PDIP、TQFP、PLCC 三种封装形式,本系统采用双列直接PDIP 封装形式,4KB Flash 片内程序存储器,128B 的随机存取数据存储器,32 个外
5、部双向输入/输出(I/O)口,5 个中断优先级,2 层中断嵌套中断,2 个16位可编程定时计数器,2 个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。此外,AT89S51 设计和配置了振荡频率可为0Hz 并可通过软件设置省电模式。空闲模式下,CPU 暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。AT89S51管脚图如图1:图11.2 矩阵式键盘1.21矩阵式键盘结构 矩阵式键盘由行线和列线组成,按键位于行、 列线的交叉点上。 矩阵式键盘中,行、 列线分别连接到按键开关的两段,行线通过上拉电阻
6、接到+5V上。当有键按下时,行,列线将导通,此时,行线电平将由与此行线相联的列线电平决定。这是识别按键是否按下的关键。然而,矩阵键盘中的行线,列线和多个键相连,各按键按下与否均应向该按键所在行线和列线的电平,各按键间将相互影响,因此,必须将行线,列线信号配合起来作适当处理,才能确定闭合键的位置。1.22矩阵键盘的工作原理 这次设计为4*3 4行3列的扫描电路 此处介绍一下4*3矩阵键盘的工作原理: 它将所有数码管的八个段线相应的并接在一起,并接到AT89S51的P0口,由P0口控制字段输出,而各位数码管的共阳级由AT89S51的P2口控制Q20-Q27来实现8位数码管的位输出控制 这样,对于一
7、组数码管动态稍描显示需要由两组信号来控制:一组是字段输出口输出的字形代码,用来控制显示的字形,称为段码;另一组是位输出口输出的控制信号,用来选择第几位数码管工作,称为位码。由于各位数码管的段线并联,段码的输出对各位数码管来说都是相同的。因此,同一时刻如果各位数码管地位选线都处于选通状态的话,8位数码管将显示相同的字符。若要各位数码管能够显示出与本位相应的字符,就必须采用扫描显示方式。即在某一时刻,只让某一位的位线处于导通状态,而其它各位的位选线处于导通状态,而其它各位的位选线处于关闭状态。同时,段线上输出相应位要显示字符的字型码。这样同一时刻,只有选通的那一位显示出字符,而其它各位则是熄灭的,
8、如此循环下去,就可以使各位数码管显示将要显示的字符。1.3八位LED以及输入键 指示灯 LED数码管由8个发光二极管构成,通过不同的组合可用来显示数字09、字符AF、H、L、P、R、U、Y、符号“-”及小数点“.”。 LED的结构及发光原理 50年前人们已经了解半导体材料可产生光线的基本知识,第一个商用二极管产生于1960年。LED是英文light emitting diode(发光二极管)的缩写,它的基本结构是一块电致发光的半导体材料,置于一个有引线的架子上,然后四周用环氧树脂密封,起到保护内部芯线的作用,所以LED的抗震性能好。 发光二极管的核心部分是由p型半导体和n型半导体组成的晶片,在
9、p型半导体和n型半导体之间有一个过渡层,称为p-n结。在某些半导体材料的PN结中,注入的少数载流子与多数载流子复合时会把多余的能量以光的形式释放出来,从而把电能直接转换为光能。PN结加反向电压,少数载流子难以注入,故不发光。这种利用注入式电致发光原理制作的二极管叫发光二极管,通称LED。 当它处于正向工作状态时(即两端加上正向电压),电流从LED阳极流向阴极时,半导体晶体就发出从紫外到红外不同颜色的光线,光的强弱与电流有关。输入键跟指示灯相对应,操作指示灯ENTER,CLEAR对应键盘按键ENTER键,CLR键。1.4时序电路和复位电路 由于Proteus ISIS软件电路仿真功能强大,在单片
10、机电路仿真时可省略其时钟电路和复位电路。电路原理图如下:2 Proteus简介 Proteus组合了高级原理布图、混合模式SPICE仿真,PCB设计以及自动布线来实现一个完整的电子设计系统。此系统受益于15年来的持续开发。2.1 Proteus系统特性: n ISIS原理布图个易用而又功能强大的工具; n PROSPICE混合模型SPICE仿真-可以升级到我们的独特的虚拟系统模型技术的工业标准SPICE3F5f仿真器; n ARES PCB设计具有32位数据库、元件自动布置、撤消和重试的自动布线功能的超强性能的PCB设计系统; n 标准的时尚的图形用户界面; n 保证所有的主要模块的操作性能和
11、兼容性; n 支持Windows 98/Me/2K/XP; n 产品完全可以信赖:超过15年的连续不断的开发; n 数千个拷贝安装分布全世界35个国家; n 直接来自开发者的技术支持; n 被EWW CAD REVIEW Roundup评为最好的全线产品2.2 ISIS智能输入系统 ISIS是PROTEUS系统的中心,它远不仅是一个图表库。它是具有控制原理图画图的外观的超强的设计环境。无论用户的要求是快速实现复杂设计的仿真以及PCB设计,还是设计精美的原理图以供出版,ISIS是您的最好工具。 l 特性:生成出版质量的图; l 风格模板允许提供库部件的用户化; l 鼠标驱动和内容关联的用户界面;
12、l 自动走线,以及接点的布置和切除l 参数表示子电路元件值的层次设计 l 包括子电路端口以及总线引脚的总线支持 l 挑选元件或建立新库元件可预览PCB 封装 l 完全体现多元器件的同性和异性l 包括相应对话框用户化的元件特性的精细管理 l 超过8000元件的大型元件库。完全适用于仿真模型 l 网表格式:Labcenter SDF,SPICE,Tango,Boardmaker,EEDeginer,Futurenet,Racal &Valid l 电器标准检查以及元件报告清单l 可彩色或单色输出到Windows 打印装置 l 图形输出格式:WMF,BNP,DXF,EPS以及HPGL 出版质量的原理
13、图ISIS提供给用户图形外观包括线宽、填充类型、字符等的全部控制,使用户能够生成如杂志上看到一样精美的原理图,远胜过CAD软件绘制出的稀薄的线条。画完图可以以图形文件输出,或者拷贝到剪切板以便其他文件使用。这就使得ISIS成为制作技术文件,学术论文,项目报告的理想工具,也是PCB设计的一个出色的前端。 用户界面ISIS有一个无连线方式,用户只需点击元件的引脚或者先前布好的线,就能实现布线。自动布线点击想要连接的两个引脚,就能将简单地实现布线。在特殊的位置需要布线,用户只需在中间的角落点击。自动布线也能在元件移动的时候操作,自动地解决相应的连线。节点自动布置和移除。节约时间的同时,避免其他方面可
14、能引起的错误。层次设计和支持通常的多图纸设计过程一样,ISIS支持层次设计。特殊的元件能够定义为通过电路图表示的模块,能够任意设定层次,模块可画成标准元件,或特殊可在使用中放置和删除端口的子电路块。 总线设计ISIS提供的不仅是一根总线,还能用总线引脚定义元件和子电路。因此,一个连接在处理器和存储器之间的32位的处理器总线可以用单一的线表示,节省绘图的时间和空间。元件库ISIS提供包含8000个部件的元件库,包括标准符号,三极管,二极管,热离子管,TTL,CMOS。ECL,微处理器以及存储器部件,PLDS,模拟ICS和运算放大器。可视封装工具原理图和PCB库部件的匹配是由封装工具简化的。在原理
15、图部分的引脚旁边将显示PCB的封装,并允许每个引脚名对应文本和图形的引脚号码。多个部件ISIS的元件库部分使所有的通用的单个元件(555定时器),同态多元器件和异态多元器件的成为可能。连接器也将每个引脚显示出来,以便于从原理图中区分出来,而不需将所有的连线接到单一的部分。元件属性设计中的每个元件都有一定数目的属性或性质。某些属性控制软件的专用功能,用户也可以添加自己的属性。一旦库建立,就能提供默认值以及属性定义。属性定义提供大量的属性描述,当修改元件时,将显示在它编辑的区域内。生成报告 ISIS支持许多第3方网表格式,因此能为其他软件使用。设置材料报表后可以填加用户所需的元件属性,也可设置属性
16、列以挑选一定数目的属性。ERC报告可列出可能的连线错误,如未连接的输入,矛盾的输出以及未标注的网络标签。3程序设计以及汇编语言 本次设计选用AT89S51芯片,并使用51单片机汇编语言在Keil uVision2环境下编写源程序,生成HEX文件后交给Proteus ISIS进行单片机电路原理仿真。 uVision2 IDE 是一个基于Window的开发平台包含一个高效的编辑器一个项目管理器和一个MAKE工具。 uVision2支持所有的KEIL 8051工具包括C编译器宏汇编器连接/定位器目标代码到HEX的转换器uVision2通过以下特性加速你的嵌入式系统的开发过程: u 全功能的源代码编辑
17、器 u 器件库用来配置开发工具设置 u 项目管理器用来创建和维护你的项目 u 集成的MAKE工具可以汇编编译和连接你的嵌入式应用 u 所有开发工具的设置都是对话框形式的 u 真正的源代码级的对CPU和外围器件的调试器 u 高级GDIAGDI接口用来在目标硬件上进行软件调试以及和Monitor-51进行通信 u 与开发工具手册和器件数据手册和用户指南有直接的链接 具体汇编源程序及注释如下:*设初始密码存放地址WORD1 EQU 30HWORD2 EQU 31HWORD3 EQU 32HWORD4 EQU 33HWORD5 EQU 34HWORD6 EQU 35H设用户输入密码存放地址KEY1 E
18、QU 48HKEY2 EQU 49HKEY3 EQU 4AHKEY4 EQU 4BHKEY5 EQU 4CHKEY6 EQU 4DHLINE EQU 42H;键行值存放ROW EQU 43H;键列值存放*程序开始,初始化 ORG 0000MAIN:MOV KEY1,#00H MOV KEY2,#00H MOV KEY3,#00H MOV KEY4,#00H MOV KEY5,#00H MOV KEY6, #00H MOV 46H,#0FFH ;定义特殊标志区 MOV 47H,#0FFH MOV WORD1,#1 ;定义初始密码:123456 MOV WORD2,#2 MOV WORD3,#3
19、MOV WORD4,#4 MOV WORD5,#5 MOV WORD6,#6 MOV LINE,#00H ;键行值清0 MOV ROW,#00H ;键列值清0 MOV SP,#60H ;设堆栈指针初始地址*键盘扫描开始START1:MOV P1,#8CH ;未按键先显示字母P MOV R0,#48H ;设密码位数指针首地址 SETB P3.6 SETB P3.5 SETB P3.4 ;P3口输出位清0 MOV DPTR,#TAB ;DPTR指向TAB首地址JL: MOV P2,#0FH ;行扫描LINE1:JB P2.0,LINE2 ACALL DEL JB P2.0,LINE2 MOV LI
20、NE,#00H AJMP JRLINE2:JB P2.1,LINE3 ACALL DEL JB P2.1,LINE3 MOV LINE,#01H AJMP JRLINE3:JB P2.2,LINE4 ACALL DEL JB P2.2,LINE4 MOV LINE,#02H AJMP JRLINE4:JB P2.3,JL ACALL DEL JB P2.3,JL MOV LINE,#03H AJMP JRJR: MOV P2,#0F0H;列扫描ROW1:JB P2.4,ROW2 MOV ROW,#00H AJMP COTROW2:JB P2.5,ROW3 MOV ROW,#01H AJMP C
21、OTROW3:JB P2.6,JL MOV ROW,#02H AJMP COTCOT:MOV A,LINE ;计算键值 MOV B,#03H MUL AB ADD A,ROW PUSH ACC ;等待键抬起WAIT:MOV A,P2 CJNE A,#0F0H,WAIT POP ACC CJNE A,#0AH,NEXT ;判断是否为CLEAR键 AJMP CLEARNEXT:CJNE A,#0BH,GO;判断是否位ENTER键 AJMP JKCLEAR:CLR P3.6 ;输入密码向前取消一位 ACALL DEL1 SETB P3.6 DEC R0 DEC R0 MOV A,R0 CJNE A
22、#0FFH,GOON AJMP START1GOON:INC R0 MOV R0,#00H AJMP SHOWGO: MOV R0,A ;密码位数指针操作 INC R0 CJNE R0,#4FH,SHOW AJMP JKSHOW:MOVC A,A+DPTR ;显示输入密码值 MOV P1,A ACALL DEL1 AJMP JLJK: MOV A,WORD1 ;判断密码是否正确 CJNE A,KEY1,ERROR MOV A,WORD2 CJNE A,KEY2,ERROR MOV A,WORD3 CJNE A,KEY3,ERROR MOV A,WORD4 CJNE A,KEY4,ERROR M
23、OV A,WORD5 CJNE A,KEY5,ERROR MOV A,,WORD6 CJNE A,KEY6,ERROR CLR P3.5 MOV P1,#88H AJMP $ERROR:CLR P3.4 MOV P1,#86H密码错误则返回初始状态 ACALL DEL1 ACALL DEL1 AJMP MAIN*供调用延迟子程序DEL:MOV R7,#50D6: MOV R6,#100D5: DJNZ R6,D5 DJNZ R7,D6RETDEL1:MOV R7,#250D8: MOV R6,#250D7: NOP NOP DJNZ R6,D7 DJNZ R7,D8RETTAB:DB 0C0H
24、,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HEND 经电路测试后,程序有效,键盘扫描部分能正常工作并正确输入数字。到此硬件调试和软件调试均顺利完成,输入正确密码后指示灯亮,设计成品“电子锁”完成,所有设计功能齐备经调试并能完全正常工作,设计成功。4结束语和感想 该电子锁系统采用了单片机作为主控制器, 结构简单,具有一定的实用价值。经过这段时间的毕业设计,终于完成了电子锁的设计。虽然没有完全达到要求,但是做出了产品。在这次毕业设计中遇到一些问题,特别在软件方面。所以要在以后的工作和学习中加强这方面的学习。从这次的毕业设计中,我真正的意识到,在以后的学习中,要理
25、论联系实际,把我们所学的理论知识用到实际当中,学习单机片机更是如此,程序只有在经常的写与读的过程中才能提高,这就是我在这次毕业设计中的最大收获。参考文献: 1刘守义。 单片机应用技术 西安电子科技大学出版社 2001年8月2 魏立峰,王宝兴。单片机原理与应用技术 北京:北京大学出版社,2006。The design of AT89S51 microcontroller-based electronic locking system Zhipeng mao Nanjin University of Information Science & Technology Specialty of Ele
26、ctronic science and technology, naning 210044ABSTRACT:AT89S51 used by the MCU and software development Keil uVision2 MCU assembly language source ,and Proteus through simulation testing, design an electronic locking system for the code by the light shine, re-enter the wrong function. Key word: AT89S51;Keil uVision2;Proteus目录1.系统结构11.1.AT89S51介绍21.2.矩阵式键盘41.3.1.3八位LED以及输入键 指示灯51.4.时钟电路和复位电路52.Proteus简介62.1.Proteus系统特性62.2.ISIS智能输入系统63.程序设计以及汇编语言84.结束语和感想15 参考文献.15 ABSTRACT.16