1、单片机实训仿真设计说 明 书专业名称:电子信息工程 班 级:11 班 学 号:2010 姓 名: 指导教师: 日期: 2013 年 05 月 05 日 - 2 -目 录一、设计的目的和意义 .- 3 -1、设计背景 .- 3 -2、设计的目的及意义 .- 3 -二、设计原理及规模 .- 5 -1、器件的简介 .- 5 -(1)AT89C51 的简介 .- 5 -(2)LCD 显示屏简介 .- 7 -2、软件程序设计 .- 9 -三、正文 .- 10 -1、方案的论证 .- 10 -2、主要参数的计算 .- 10 -3、功能的实现 .- 11 -(1)硬件部分 .- 11 - 矩阵键盘 .- 1
2、1 - LCD 显示电路 .- 12 - 键盘的消抖 .- 13 - 仿真电路 .- 13 -(2)软件部分 .- 13 - LCD 显示模块 .- 14 - 密码判断模块 .- 14 - 密码重置模块 .- 17 - 密码锁复位模块 .- 18 - 密码安全提示模块 .- 19 -四、结论 .- 20 -五、参考书目 .- 21 -六、附录 .- 22 - 3 -一、设计的目的和意义1、设计背景在现今社会中,安全防盗已经成为严重的社会问题,锁具自古以来就是防盗的重要工具。目前国内很多人都还在使用传统的机械锁,机械锁存在很大的弊端。所以新型的电子密码锁有了更大的发展空间。从现在的技术水平和市场
3、认可度上来分析,目前使用最为广泛的按键式电子密码锁。电子密码锁一般用于保险柜,取款机等重要地方。由于电子密码锁的实用,涌现出了更多的电子智能密码锁,如:指纹识别的电子密码锁等高科技含量的锁具。但是此类密码锁在公共场所容易损坏,成本也比较高,所以键盘式的电子密码锁依然是防盗的主流产品。键盘式电子密码锁突出的优点是密码在授权人的脑袋里记着,即准确有可靠。很难丢失。此外电子密码锁还有很多特点。如:密码可变。用户可以随时的更改密码。防止密码泄露。误码输入保护,当密码输入错误时,系统会自动报警。电子密码锁不同于机械锁。电子密码锁没有活动零件,不会磨损,寿命长,电子密码锁的操作也非常简单。现在锁具在原有锁
4、的基础上充分运用了现代科技,出现了磁控锁,声控锁,遥控锁,红外锁,电子卡片锁,超声波锁,电磁波锁,指纹锁等高科技含量的锁具。大大提高了锁的安全性,可靠性。2、设计的目的及意义(1)设计目的掌握单片机控制知识,学习扩展外部设备的基本技能。通过设计学以致用,加强单片机的实践操作能力。 (2)设计意义- 4 -在现代文明社会,随着人们生活水平和自身防范意识的提高,个人财产安全和人身安全的问题也越来越受到人们的重视,拥有一把能够有效保证居民财产安全和人身安全的锁具也越发的重要起来。锁具的起源可以追朔到人类社会财产私有化的出现,锁具从其出现到发展至今天的高科技化、信息化,已经有若干年的历史了。经过若干年
5、的使用和研究,人们对锁具的结构、机理也了解得相当透彻了,因此,不使用钥匙就能将锁打开的方法也层出不穷。特别是传统的机械锁,由于其构造简单,在惯偷面前,甚至能够只用一根铁丝就直接将其打开,使其失去了保障用户个人财产安全的意义。在信息现代化的今天,锁具也应该向高精度、高安全性的智能化、信息化发展。自 20 世纪 70 年代第一块单片机芯片 TMS-1000 于美国德克萨斯仪器公司面世以来,基于其体积小、价格低廉、个性突出等特点,越来越多的电子产品开始采用单片机芯片作为核心控制部件。在这样的大环境下,基于单片机的电子密码锁也应运而生。这种电子密码锁是以单片机为核心,配以相应的硬件电路和软件程序,实现
6、密码的设置、存贮、识别和显示,以及报警信号的接收和发送等功能,具有操作快、修改密码简单、安全性高、功耗低等优点。基于单片机的电子密码锁的面世使人们的自身财产安全有了更多的保障,同时也促进了安全信息系统的发展,是安全信息系统的一大进步。基于单片机的电子密码锁的出现,在一定程度上解决了用户私人财产安全的问题。但是,时代在发展,社会在进步,任何事物只有不断地进步才能适应时代发展的需求。电子密码锁虽然有安全性高、操作简单等优点,因此,研究基于单片机的电子密码锁的设计是很有必要且具有现实意义的。- 5 -二、设计原理及规模在本次实验中,使用了单片机和数字电路两种仿真方式设计出了较为合理的密码锁方案,我们
7、也对传统密码锁进行了适当改进,使其更适应当今复杂多变社会的防盗环境。通过 AT89C51 单片机进行模拟控制,LCD 显示屏和发光二极管进行时间和状态的显示,实现智能密码锁的控制。1、器件的简介(1)AT89C51 的简介AT89C51 是一种带 4K 字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8 位微处理器,俗称单片机。AT89C2051 是一种带 2K 字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除 100 次。该器件采用 ATMEL 高
8、密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中,ATMEL 的 AT89C51 是一种高效微控制器,AT89C2051 是它的一种精简版本。AT89C 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。与MCS-51 兼容 ,4K 字节可编程闪烁存储器 ,寿命: 1000 写/擦循环,数据保留时间:10 年,全静态工作:0Hz-24Hz,三级程序存储器锁定,128*8 位内部RAM,32 可编程 I/O 线,两个 16 位定时器/计数器,5 个中断源(两个外部中断源和 3 个内部中断源) ,可
9、编程串行通道,低功耗的闲置和掉电模式,片内振荡器和时钟电路。管脚说明:VCC:供电电压。GND:接地。- 6 -P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,当 P0 口的管脚第一次写 1时,被定义为高阻输入。P0 能够用于外部程序数据存储器,它可以被定义为数据地址的低八位。在 FIASH 编程时,P0 口作为原码输入口,当 FIASH 进行校验时,P0 输出原码,此时 P0 外部必须接上拉电阻。P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能接收输出 4TTL 门电流。P1 口管脚写入 1 后,被内部上拉为高,可用作输入,P1 口被外部下拉为低
10、电平时,将输出电流,这是由于内部上拉的缘故。在FLASH 编程和校验时,P1 口作为低八位地址接收。 P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接收,输出 4 个 TTL 门电流,当 P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时,P2 口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。P2 口在 FLASH 编程
11、和校验时接收高八位地址信号和控制信号。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 外部输入)P3.5 T1(计时器 1 外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外
12、部数据存储器读选通)P3 口同时为闪烁编程和编程校验接收一些控制信号。- 7 -RST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN 有效。EA/VPP:当/EA 保持低电平时,则在此期间外部程序存储器(0000H-FFFFH) ,不管是否有内部程序存储器。注意加密方式 1 时,/EA 将内部锁定为RESET;当/EA 端保持高电平时,此间内部程序存储器。XTAL1:反向振荡放大器的输入及内部
13、时钟工作电路的输入。XTAL2:来自反向振荡器的输出。引脚图如图 1 所示:图 1 AT89C51 引脚图(2)LCD 显示屏简介1602 液晶也叫 1602 字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个 5X7 或者 5X11 等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义 CGRAM,显示效果也不好) 。1602LCD 是指显示的内容为 16X2,即可以显示两行,每行 16 个字符液晶模块(显示字符和数字) 。目前市面上字符液- 8
14、-晶大多数是基于 HD44780 液晶芯片的,控制原理是完全相同的,因此基于HD44780 写的控制程序可以很方便地应用于市面上大部分的字符型液晶。LCD1602 引脚说明第 1 脚:VSS 为电源地第 2 脚:VCC 接 5V 电源正极第 3 脚:V0 为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影” ,使用时可以通过一个 10K 的电位器调整对比度) 。第 4 脚:RS 为寄存器选择,高电平 1 时选择数据寄存器、低电平 0 时选择指令寄存器。第 5 脚:RW 为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。第 6 脚:E
15、(或 EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。第 714 脚:D0D7 为 8 位双向数据端。第 1516 脚:空脚或背灯电源。15 脚背光正极,16 脚背光负极。显示屏引脚图如图 2 所示:图 2 LCD 显示屏引脚图2、软件程序设计硬件设计完毕后,根据电路图以及程序设计流程进行程序编写,编写时大至可分为四个模块,第一个模块为密码输入及 LCD 返现,第二个模块为密码判- 9 -断识别,第三个模块为密码修改,第四个模块为密码锁复位设置。设计第一个模块时,通过 Key_Input(),Key_Num_Recognize()两个函数密码输入及返现,通过 Cle
16、ar_Func()函数进行密码清除设置;设计第二个模块时,首先通过编写一个函数 PassWord_Safe()对密码进行检验,如果密码太简单则提示更改,然后编写 Cipher_Judge()将输入的密码与开始设置的密码进行对比,从而完成对密码的判断,最后编写 Lock_Func()函数对三次密码输入错误采取措施;设计第三个模块时,通过编写 Cipher_Reset()函数进行密码更改;设计第四个模块,通过编写 Restoration()函数完成。最后建立主函数将以上函数串联起来完成设计。- 10 -三、正文1、方案的论证根据设计的基本要求,经过多方面的查证与对比,以充分发挥资源和提高系统性价比
17、为原则,本系统采用 AT89C51 单片机为控制电路,使用 LCD 液晶显示屏及蜂鸣器电路来实现功能。具体设计方案的论证如下:方案一:采用数字电路控制用以 74LS112 双 JK 触发器构成的数字逻辑电路作为密码锁的核心控制,将密码保存在 JK 触发器中,与输入密码通过比较器比较,判断结果是否相符合。采用数字电路设计的方案好处就是设计简单,但控制的准确性和灵活性差,故不采用。方案二:采用以单片机为核心的控制方案选用单片机作为系统的核心部件,实现控制与处理的功能。单片机具有资源丰富、速度快、编程容易等优点。利用单片机内部的随机存储器(RAM)和只读存储器(ROM)及其引脚资源,外接液晶显示(LCD) ,键盘输入等实现数据的处理传输和显示功能,具有较好的灵活性,基本上能实现设计指标。因此综合考虑,本系统采用方案二。2、主要参数的计算本设计涉及的主要计算为键盘输入后系统解析为数字的计算。首先扫描按下按键在矩阵的位置然后通过程序计算将其转换为相应数字。键盘扫描应用了反转法,通过两次更改 AT89C51 的 I/O 口电平,然后与按下按键后的电平相异或得到按键在矩阵的地址。通过 switch 语句将其变为相应数字。计算程序如下:tem=P10x0f;