还剩45页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
毕业设计(论文)任务书毕业设计(论文)题目电子密码锁的设计系别自控系班级电子学生姓名学号指导教师职称毕业设计(论文)进行地点任务下达时间年月日2010412起止日期年月日起——至年月日止20104122010627教研室主任年月日批准2010320便,安全保密性更强,由以前的单密码输入发展到现在的,密码加感应元件,实现了更为真正的电子加密,用户只有密码或电子钥匙中的一样,是打不开锁的,随着电子元件的发展及人们对保密性需求的提高出现了越来越多的电子密码控制系统由于数字、字符、图形图像、人体生物特征和时间等要素均可成为电子信息,组合使用这些信息能够使电子防盗密码控制获得更高的保密性,如防范森严的金库,需要使用复合信息密码的电子防盗密码控制系统组合使用信息也能够使电子防盗密码控制系统获得无穷扩展的可能可以看出组合使用电子信息是电子密码控制系统今后发展的趋势本设计所要实现的目标
1.4在没有硬件仿真系统或在线调试器时,如何对系统进行调试或仿真,介绍基于单片机C程序Keil51环境下的程序调试与软件仿真方法,合理使用这些方法模拟实际运行环境,验证程序设计,可以减少调试时间,提高编程效率Keil51C是目前流行的单片机开发工具之一,它具有编译、汇编、链接、实时操作系统、项目管理以及调试的功能,可以完成编辑、编译、链接、调试、仿真等整个单片机开发流程单片机系统软件的开发总要和片内、片外硬件设备息息相关,比如外部设备、键盘、引脚信号变化、AD转换、液晶、串口等;同时还需根据设备信号输出相应的控制信息在没有硬件仿真系统或在线调试器,必须使用Keil51c提供的软件调试、仿真功能,它可以很方便地模拟单片机的运行以及模拟片内和片外的外围器件的工作将Keil51c调试器配置成纯软件模式,可以不需要实际的目标硬件就能够模拟、仿真51系列单片机及外围器件的很多功能Keil51c辅助程序调试的窗口或界面主要有输出窗口、反汇编窗口、Watch窗口、Memory窗口、Tool Box按钮、Serial窗口、性能分析仪等他们使程序的调试更加方便、直观且功能强大Command页:通过命令行的形式,向运行中的程序发出调试命令,如显示变量、表达式、寄存器、CPU引脚、加载用户调试函数、信号函数等,然后等待程序返回,以此来验证目标程序的正确性Keil51C提供了大量的内部调试命令,如BREAK、DIR、SIGNAL、DISPLAY INCLUDE等命令行中输入的命令是C语言的子集,大多数的C语句可以在此运行另外,Keil51C还可以将命令行中输入的调试信息,即整个调试过程用log命令记录在文本文件中使用时再用INCLUDE命令加载该文件,使调试信息与目标程序同时运行,它们一个在前台,另一个在后台运行Serial窗口:串口输入输出窗口可用于系统调试时的输入和输出窗口可以通过该窗口输入信息、响应用户的交互操作、输出程序执行中的一些变量值或信息断点编辑器:充分使用断点,编辑各种断点,使程序在需要时中止运行,以便控制整个目标程序的运行过程,监视相关变量、寄存器或存储区的变化Keil51C有丰富的断点编辑功能和三种断点类型:执行断点、条件断点、以及存取断点CPU片内设备界面:包括I/O口,定时器,串口等,它是具体硬件电路的输入和输出窗口在程序调试运行时,打开设备界面可以观察到设备各参数值及其动态变化情况同时,在需要输入开关量的模拟中,可以直接修改界面上的各参数值进行仿真输入Tool Box按钮:包含用户配置的命令按钮,单击按钮可以调用相关调试命令、信号函数或自定义函数,可以完成命令行中所有的调试功能,提供给用户良好的调试界面系统的设计思想2方案一采用数字电路控制
2.1用以74LS112双JK触发器构成的数字逻辑电路作为密码控制系统的核心控制,共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过10秒(一般情况下,用户不会超过10秒,若用户觉得不便,还可以修改)电路将报警20秒,若电路连续报警三次,电路将锁定键盘2分钟,防止他人的非法操作采用数字电路设计方案时设计虽然简单,但控制的准确性和灵活性差故不采用方案二采用以单片机为核心的控制方案
2.2通由于单片机种类繁多,各种型号都有其一定的应用环境,因此在选用时要多加比较,合理选择,以期获得最佳的性价比一般来说在选取单片机时从下面几个方面考虑性能、存储器、运行速度、I/O口、定时/计数器、串行接口、模拟电路功能、工作电压、功耗、封装形式、抗干扰性、保密性,除了以上的一些还有一些最基本的,比如中断源的数量和优先级、工作温度范围、有没有低电压检测功能、单片机内有无时钟振荡器、有无上电复位功能等在开发过程中单片机还受到开发工具、编程器、开发成本、开发人员的适应性、技术支持和服务等等因素基于以上因素本设计选用单片机AT89c51作为本设计的核心元件,利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码控制功能在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接LCD1602显示器用于显示作用当用户需要开锁时,先按键盘开锁键之后按键盘的数字键0—
9、A—F输入密码.密码输完后按下确认键,如果密码输入正确则开锁,不正确显示密码错误重新输入密码,当三次密码错误则发出报警;当用户需要修改密码时,先按下键盘设置键后输入原来的密码,只有当输入的原密码正确后才能设置新密码新密码输入无误后按确认键使新密码将得到存储,密码修改成功可以看出方案二的控制灵活,准确性好,且保密性强还具有扩展功能,根据现实生活的需要此次设计采用此方案主要元器件介绍及总线说明312c主控芯片
3.1AT89c51AT89c51是一个低功耗,高性能CMOS8位单片机,片内含4kBytes的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及AT80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89c51可为许多嵌入式控制应用系统提供高性价比的解决方案
3.
1.1AT89c51性能简介AT89C51具有如下特点40个引脚,4k BytesFlash片内程序存储器,128bytes的随机存取数据存储器RAM,32个外部双向输入/输出I/O口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,片内时钟振荡器此外,AT89C51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模中断激活或硬件复位同时逐罡归口PLCC等三种封装形式,以适应不同产品的需求一一式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外图芯片引脚图
3.1AT89C51其主要功能特性A兼容MCS-51指令系统4k可反复擦写(〉1000次)Flash ROMA32个双向I/O口工作电压>2个16位可编程定时/计数器时钟频率0-33MHZ>全双工UART串行中断口线128x8bit内部RAM>2个外部中断源低功耗空闲和省电模式>中断唤醒省电模式3级加密>软件设置空闲和省电功能双数据寄存器指针可以看出AT89c51提供以下标准功能4K字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个数据指针,两个16位定时器/计数器,一个5向量两级中断结构,一个全双工串行通信口,以及片内振荡器和时钟同时,AT89c51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式空闲方式时停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作掉电方式是在RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到一个硬件复位引脚功能说明
3.2AT89C51VCC电源电压GND地P0n P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口,作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端口o在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻P1□:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口作输入口使用时「因为内部存在上拉电阻,某个引脚被外部信号校验期间,P1接收低8位地址P2□:P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动4个TTL逻辑门电路对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流I在访问8位地址的外部数据存储器(如执行MOVX@Ri指令)时,P2口线上的内(也即特殊功能寄存器,在整个访问期间不改变Flash编程或校验时,P2也接收高位地址和其它控制信号P3□:P3口是一组带有内部上拉电阻的8位双向I/O口P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口作输入端口时,被外部拉低的P3口将用上拉电阻输出电流IP3□除了作为一般的I/O口线外,更重要的用途是它的第二功能,P3口的第二功能如下表3-2表为口的第二功能3-2P3端口功能第二功能端口引脚第二功能串行输入口定时/计数器外部输入RXD P
3.0TO P
3.40串行输出口定时/计数器外部输入TXD P
3.1T1P
3.51外中断外部数据存储器写选通INTO P
3.20WR P
3.6外中断外部数据存储器读选通INTI P
3.31RD P
3.7RST复位输入当振荡工作时,RST引脚出现两个机器周期上高电平将使单片机复位ALE/PROG当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节即使不再访问外部存储器,ALE仍以时钟振荡频率的1/6输出的正脉冲信号,因此它可对外输出时钟或用于定时目地,要注意的是当访问外部数据存储器时将跳过一个ALE脉冲如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的DO位置位,可禁止ALE操作该位置禁位后,只有一条MOVX和MOVC指令ALE才会被激活此外,该引脚伎被微弱拉高,单片机执行外部程序时,应设置ALE无效PSEN程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲当访问外部数据存储器,高有两次有效的PSEN信号EA/VPP外部访问允许欲使CPU访问外部程序存储器(地址0000H-FFFFH),EA端必须保持低电平(接地)需注意的是如果加密位LB1被编程,复位时内部会锁存EA端状态如EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令Flash存储器编程时,该引脚加上+12V的编程电压VPPXTAL1振荡器反相放大器及内部时钟发生器的输入端XTAL2振荡器反相放大器的输出端芯片内部结构
3.3AT89C51特殊功能寄存器特殊功能寄存器的片内空间分布如下图3-3所示这些地址并没有全部占用,没有占用的地址不可使用,读这些地址将得到一个随意的数值而写这些地址单元将不能得到预期的结果中断寄存器各中断允许控制位于IE寄存器,5个中断源的中断优先级控制位于IP寄存器表为辅助寄存器3-3AUXRARXR地址=8EH复位状态=XXXOOXXOBNot BitAddressable—WD DIDI—IDLE SRTO---SALE20765431保留为将来扩展用途位DISALE ALE禁止/使用DISALE操作模式0ALE输出1/6震荡时钟频率脉冲1ALE仅在执行MOVX或MOVC指令期间输出脉冲DISRTO禁止/使能复位输出DISRTO0复位引脚在WET溢出时变高1复位引脚仅为输入WDIDLE禁止/使能IDLE模式的WDTWDIDLE0IDLE模式WDT继续计数1IDLE模式WDT停止计数双时钟指针寄存器为方便地访问内部和外部数据存储器,提供了两个16位数据指针寄存储器PD0位于SFR区块中的地址82H、83H和DPI位于地址84H、85H,当SFR中的位DPS=0时选择DP0,而DPS=1时选择DPI在使用前初始化DPS表3-4双时钟指针寄存器AUXR1地址二A2H不可寻址位复位状态=XXXXXXXOB—D——————PSBit76543210保留为今后扩展用途DPS数据指针选择位DPS0选择DPTR寄存器DP0L.DP0H1选择DPTR寄存器DP1L.DP1H电源空闲标志电源空闲标志(POF)在特殊功能寄存储器SFR中PCON的第4位(PCON.4),电源打开时POF置“1”,它可由软件设置睡眠状态并不为复位所影响存储器结构MCS-51单片机内核采用程序存储器和数据存储器空间分开的结构,均具有64KB外部程序和数据的寻址空间程序存储器如果EA引脚接地(GND),全部程序均执行外部存储器在AT89s51,假如接至VCC(电源+),程序首先执行从地址0000H—OFFFH(4KB)内部程序存储器,再执行地址为1000H—FFFFH(60KB)的外部程序存储器数据存储器在AT89c51的具有128字节的内部RAM,这128字节可利用直接或间接寻址方式访问,堆栈操作可利用间接寻址方式进行,128字节均可设置为堆栈区空间显示器
3.4LCD1602现在的字符型液晶模块已经是单片机应用设计中最常用的信息显示器件了1602型LCD显示模块具有体积小,功耗低,显示内容丰富等特点1602型LCD可以显示2行16个字符,有8位数据总线D0-D7和RS,R/W,EN三个控制端口,工作电压为5V,并且具有字符对比度调节和背光功能接口信号说明
3.51602型LCD的接口信号说明如表3-5所示:表为型的接口信号说明3-51602LCD编符引脚说明编引脚说明号号号符号电源地1VS9D2Data I/OS2V电源正极10D3Data I/ODD液晶显示偏压信3V011D4Data I/O号数据/命令选择端4RS12D5Data I/OH/L5R/读写选择端H/L13D6Data I/OW使能信号6E14D7Data I/O7D0Data I/O15B背光源正极LA背光源负极8D1Data I/O16BLK351主要技术参数1602型LCD的主要技术参数如表3-6所示表为型的主要技术参数
3.61602LCD芯片工作模块最佳显示容量电压工作电流工作电压字符尺寸16X2个字符
4.5〜
5.5V
2.0mA
5.0V
5.0V
2.95X
4.35WXHmm基本操作程序读状态输入RS=L,RW=L,E二H输出D0-D7二状态字读数据输入RS=H,RW=H,E=H输出无写指令输入RS=L,RW=L,口0437=指令码,E二高脉冲输出D0-D7=数据写数据输入RS=H,RW=L,D0-D7=数据,E=高脉冲输出无晶体振荡器
3.6晶体振荡器,简称晶振,其作用在于产生原始的时钟频率,这个频率经过频率发生器的放大或缩小后就成了电脑中各种不同的总线频率以声卡为例,要实现对模拟信号
44.1kHz或48kHz的采样,频率发生器就必须提供一个
44.1kHz或48kHz的时钟频率如果需要对这两种音频同时支持的话,声卡就需要有两颗晶振但是现在的娱乐级声卡为了降低成本,通常都采用SCR将输出的采样频率固定在48kHz,但是SRC会对音质带来损害,而且现在的娱乐级声卡都没有很好地解决这个问题现在应用最广泛的是石英晶体振荡器石英晶体振荡器是一种高精度和高稳定度的振荡器,石英晶体振荡器也称石英晶体谐振器,它用来稳定频率和选择频率,是一种可以取代LC谐振回路的晶体谐振元件石英晶体振荡器广泛地应用在电视机、影碟机、录像机、无线通讯设备、电子钟表、单片机、数字仪器仪表等电子设备中为数据处理设备产生时钟信号和为特定系统提供基准信号在单片机中为其提供时钟频率石英晶体振荡器是利用石英晶体(二氧化硅的结晶体)的压电效应制成的一种谐振器件,它的基本构成大致是从一块石英晶体上按一定方位角切下薄片(简称为晶片,它可以是正方形、矩形或圆形等),在它的两个对应面上涂敷上银层用作电极使用,在每个电极上各焊一根引线接到管脚上,再加上封装外壳就构成了石英晶体谐振器,简称为石英晶体或晶体、晶振其产品一般用金属外壳封装,也有用玻璃壳、陶瓷或塑料封装的只要在晶体振子板极上施加交变电压,就会使晶片产生机械变形振动,此现象即所谓逆压电效应当外加电压频率等于晶体谐振器的固有频率时,就会发生压电谐振,从而导致机械变形的振幅突然增大本设计中采用12MHz做系统的外部晶振电容取值为20pF
3.
6.1AT24C01串行EEPROM如图3-2为AT24coi的芯片引脚图图的芯片引脚图3-2AT24C01特点低压和标准电压运行模式-
2.7VCC=
2.7V to
5.5V-
1.8VCC=
1.8V to
5.5V内建128x8存储序列2线制串行接口双向数据传送协议100kHz
1.8V,
2.5V,
2.7V和400kHz5V兼容写同步时钟最大10ms高可靠性-极限1M写时钟周期-数据保存100年不断推进的芯片等级扩大了设备的可用温度范围8脚PDIP,8脚JEDEC SOIC和8脚TSSOP封装描述AT24C01提供电可擦除的串行1024位存储或可编程只读存储器EEPROM128字8位/字芯片在低压的工业与商业应用中进行了最优化AT24C01的封装为8脚PDIP、8脚JEDECSOIC、8脚TSSOP,通过2线制串行接口进行数据传输另外,整个系列有
2.7V
2.7V至
5.5V和
1.8V
1.8V至
5.5V两个版本设备操作CLOCK和DATA变化SDA管脚通常外部要拉高SDA管脚上的数据只能在SCL低期间改变数据在SCL高期间改变定义为一个开始或停止信号开始状态在任何操作之前必须有一个开始信号一在SCL为高时SDA上产生一个下降沿停止状态SCL为高时SDA产生一个上升沿是停止信号,停止信号后将停止所有通信在一个读的序列之后,停止信号将让EEPROM进入备用电源模式
3.
6.2I2C总线说明I2C(Inter—Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备12c总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便了管理112c总线的硬件结构12c串行总线一般有两根信号线,一根是双向的数据线SDA,另一根是时钟线SCL所有接到12c总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线的SCL±o为了避免总线信号的混乱,要求各设备连接到总线的输出端时必须是开漏输出或集电极开路输出设备上的串行数据线SDA接口电路应该是双向的,输出电路用于向总线上发送数据,输入电路用于接收总线上的数据而串行时钟线也应是双向的,作为控制总线数据传送的主机,一方面要通过SCL输出电路发送时钟信号,另一方面还要检测总线上的SCL电平,以决定什么时候发送下一个时钟脉冲电平;作为接受主机命令的从机,要按总线上的SCL信号发出或接收SDA上的信号,也可以向SCL线发出低电平信号以延长总线时钟信号周期总线空闲时,因各设备都是开漏输出,上拉电阻RP使SDA和SCL线都保持高电平任一设备输出的低电平都将使相应的总线信号线变低,也就是说各设备的SDA是“与关系,SCL也是“与”关系总线对设备接口电路的制造工艺和电平都没有特殊的要求(NMOS、CMOS都可以兼容)在I2C总线上的数据传送率可高达每秒十万位,高速方式时在每秒四十万位以上另外,总线上允许连接的设备数以其电容量不超过400pF为限总线的运行(数据传输)由主机控制所谓主机是指启动数据的传送(发出启动信号)、发出时钟信号以及传送结束时发出停止信号的设备,通常主机都是微处理器被主机寻访的设备称为从机为了进行通讯,每个接到12c总线的设备都有一个唯一的地址,以便于主机寻访主机和从机的数据传送,可以由主机发送数据到从机,也可以由从机发到主机凡是发送数据到总线的设备称为发送器,从总线上接收数据的设备被称为接受器I2C总线上允许连接多个微处理器以及各种外围设备,如存储器、LED及LCD驱动器、A/D及D/A转换器等为了保证数据可靠地传送,任一时刻总线只能由某一台主机控制,各微处理器应该在总线空闲时发送启动数据,为了妥善解决多台微处理器同时发送启动数据的传送(总线控制权)冲突,以及决定由哪一台微处理器控制总线的问题,Pc总线允许连接不同传送速率的设备多台设备之间时钟信号的同步过程称为同步化212c总线工作原理
2.1总线的构成及信号类型12c总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据在CPU与被控IC之间、IC与IC之间进行双向传送,最高传送速率100kbpso各种被控制电路均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作,所以每个电路和模块都有唯一的地址,在信息的传输过程中,Pc总线上并接的每一模块电路既是主控器(或被控器),又是发送器(或接收器),这取决于它所要完成的功能CPU发出的控制信号分为地址码和控制量两部分,地址码用来选址,即接通需要控制的电路,确定控制的种类;控制量决定该调整的类别(如对比度、亮度等)及需要调整的量这样,各控制电路虽然挂在同一条总线上,却彼此独立,互不相关12c总线在传送数据过程中共有三种类型信号,它们分别是开始信号、结束信号和应答信号开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据SCL结束信号:应答为高电平时,SDA由低电平向高电平跳变,结束传送数据接收数据的信号:的低电平IC在接收到8bit数据后,向发送数据的IC发出特定表示已收到数据脉冲,CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断若未收到应答信号,由判断为受控单元出现故障如图3-3所示SDASCL开始[结束]图开始、结束信号图3-3目前有很多半导体集成电路上都集成了12c接口带有12c接口的单片机有:CYGNAL的C8051F0XX系列,PHILIPSP87LPC7XX系列,MICROCHIP的PIC16C6XX系列等很多外围器件如存储器、监控芯片等也提供12c接口3总线基本操作12c规程运用主/从双向通讯器件发送数据到总线上,则定义为发送器,器件接收数据则定义为接收器主器件和从器件都可以工作于接收和发送状态总线必须由主器件(通常为微控制器)控制,主器件产生串行时钟(SCL)控制总线的传输方向,并产生起始和停止条件SDA线上的数据状态仅在SCL为低电平的期间才能改变,SCL为高电平的期间,SDA状态的改变被用来表示起始和停止条件1)控制字节在起始条件之后,必须是器件的控制字节,其中高四位为器件类型识别符(不同的芯片类型有不同的定义,EEPROM一般应为1010),接着三位为片选,最后一位为读写位,当为1时为读操作,为0时为写操作2)写操作:写操作分为字节写和页面写两种操作,对于页面写根据芯片的一次装载的字节不同有所不同3)读操作读操作有三种基本操作当前地址读、随机读和顺序读图4给出的是顺序读的时序图应当注意的是最后一个读操作的第9个时钟周期不是“不关心”为了结束读操作,主机必须在第9个周期时发出停止条件或者在第9个时钟周期内保持SDA为高电平、然后发出停止条件在FC总线的应用中应注意的事项总结为以下几点a)严格按照时序图的要求进行操作,b)若与口线上带内部上拉电阻的单片机接口连接,可以不外加上拉电阻c)程序中为配合相应的传输速率,在对口线操作的指令后可用N0P指令加一定的延时d)为了减少意外的干扰信号将EEPROM内的数据改写可用外部写保护引脚(如果有),或者在EEPROM内部没有用的空间写入标志字,每次上电时或复位时做一次检测,判断EEPROM是否被意外改写添加12c总线在现代电子系统中,有为数众多的IC需要进行相互之间以及与外界的通信为了提供硬件的效率和简化电路的设计,PHILIPS开发了一种用于内部IC控制的简单的双向两线串行总线12c(inter IC总线)I2C总线支持任何一种IC制造工艺,并且PHILIPS和其他厂商提供了种类非常丰富的12c兼容芯片作为一个专利的控制总线,FC已经成为世界性的工业标准每个FC器件都有一个唯一的地址,而且可以是单接收的器件(例如:LCD驱动器)或者可以接收也可以发送的器件(例如存储器)发送器或接收器可以在主模式或从模式下操作,这取决于芯片是否必须启动数据的传输还是仅仅被寻址12c是一个多主总线,即它可以由多个连接的器件控制早期的12c总线数据传输速率最高为100Kbits/s,采用7位寻址但是由于数据传输速率和应用功能的迅速增加,12c总线也增强为快速模式(400Kbits/s)和10位寻址以满足更高速度和更大寻址空间的需求12c总线始终和先进技术保持同步,但仍然保持其向下兼容性并且最近还增加了高速模式,其速度可达
3.4Mbits/s它使得12c总线能够支持o现有以及将来的高速串行传输应用,例如EEPROM和Flash存储器系统硬件构成4设计原理
4.1本设计主要由单片机、矩阵键盘、液晶显示器和密码存储等部分组成其中矩阵键盘用于输入数字密码和进行各种功能的实现由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警本系统共有两部分构成,即硬件部分与软件部分其中硬件部分由电源输入部分、键盘输入部分、复位部分、晶振部分、显示部分、报警部分组成,软件部分对应的由主程序、初始化程序、LCD显示程序、键盘扫描程序、启动程序、关闭程序、键功能程序、密码设置程序、EEPROM读写程序和延时程序等组成其原理框图如图4-1所示图电子密码锁原理框图4-1电路总图构成
4.2在确定了选用什么型号的单片机后,就要确定在外围电路,其外围电路包括电源输入部分、键盘输入部分、复位部分、晶振部分、显示部分、报警部分组成,根据实际情况键盘输入部分选择4*4矩阵键盘,显示部分选择字符型液晶显示LCD1602o其原理图如图4-2所示图电路总图4-2电源输入部分
4.3密码锁主要控制部分电源需要用5V直流电源供电,其电路如图4-3所示,而5V电源输入时往往伴有杂波,所以加一个
2.2uF的电容滤波这样输出的电压一般能满足要求图电源输入电路原理图4-3键盘输入部分
4.4由于本设计所用到的按键数量较多而不适合用独立按键式键盘采用的是矩阵式按键键盘,它由行线和列线组成,也称行列式键盘,按键位于行列的交叉点上,密码锁的密码由键盘输入完成,与独立式按键键盘相比,要节省很多I/O口本设计中使用的这个4*4键盘不但能完成密码的输入还能作特别功能键使用,比如清空显示功能等键盘的每个按键功能在程序设计中设置其大体功能(看键盘按键上的标记)及与单片机引脚接法如图4-4所示图键盘输入原理图4-4复位部分
4.5单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,例如复位后PC=OOOOH,使单片机从第一个单元取指令无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位在复位期间(即RST为高电平期间),P0口为高组态,Pl—P3口输出高电平;外部程序存储器读选通信号PSEN无效地址锁存信号ALE也为高电平根据实际情况选择如图4-5所示的复位电路该电路在最简单的复位电路下增加了手动复位按键,在接通电源瞬间,电容C1上的电压很小,复位下拉电阻上的电压接近电源电压,即RST为高电平,在电容充电的过程中RST端电压逐渐下降,当RST端的电压小于某一数值后,CPU脱离复位状态,由于电容C1足够大,可以保证RST高电平有效时间大于24个振荡周期,CPU能够可靠复位增加手动复位按键是为了避免死机时无法可靠复位当复位按键按下后电容C1通过R5放电当电容C1放电结束后,RST端的电位由R5与R6分压比决定由于R5〈〈R6因此RST为高电平,CPU处于复位状态,松手后,电容C1充电,RST端电位下降,CPU脱离复位状态R5的作用在于限制按键按下瞬间电容C1的放电电流,避免产生火花,以保护按键触电图复位电路原理图4-5晶振部分
4.6AT89C51引脚XTAL1和XTAL2与晶体振荡器及电容C
2、C1按图4-6所示方式连接晶振、电容C1/C2及片内与非门(作为反馈、放大元件)构成了电容三点式振荡器,振荡信号频率与晶振频率及电容Cl、C2的容量有关,但主要由晶振频率决定,范围在0〜33MHz之间,电容Cl、C2取值范围在5〜30pF之间根据实际情况,本设计中采用12MHZ做系统的外部晶振电容取值为20pFo图晶振电路原理图4-6显示部分
4.7为了提高密码锁的密码显示效果能力本设计的显示部分由液晶显示器LCD1602取代普通的数码管来完成只有按下键盘上的开启按键后,显示器才处于开启状态同理只有按下关闭按键后显示器才处于关闭状态否则显示器将一直处于初始状态,当需要对密码锁进行开锁时,按下键盘上的开锁按键后利用
1.设计论文的原始资料及依据;单片机应用、显示电路、RS-232串行通信以及传感器基础等图书资料
2.设计论文主要内容及要求;1能够实现人数的实时监控2采用12864显示模块3采用RS-232实现串行通信
3.对设计说明书、论文撰写内容、格式、字数的要求;按沈阳工程学院毕业设计论文格式要求打印
4.对外文翻译的题材、字数、出版期限等的要求要求翻译一篇与本专业或本课题有关的外文文献,不少于3000汉字
5.课题完成后应提交成果的种类、数量、质量等方面的要求;应提供开题报告1份,毕业设计论文1份,符合设计要求
6.时间进度安排;顺序阶段日期计划完成内容备注1查阅收集资料,整理分析2引言及方案论证部分3传感器电路设计4接收电路设计5控制电路设计6控制电路设计7显示电路设计
85.31~
6.6显示电路设计9完成论文10完成论文11答辩准备及答辩键盘上的数字键0—9输入密码,每按下一个数字键后在显示器上显示一个*,输入多少位就显示多少个*当密码输入完成时,按下确认键,如果输入的密码正确的话,LCD子显示“RIGHT”,单片机其中P
2.0引角会输出低电平,使三极管T2导通,电磁铁吸合,电子密码锁被打开,如果密码不正确,LCD显示屏会显示“ERROR,P
2.0输出的是高电平,电子密码锁不能被打开通过LCD显示屏,可以清楚的判断出密码锁所处的状态其显示部分引脚接口如图4-7所示1i|-r111213141516图显示电路原理图4-7报警部分
4.8报警部分由陶瓷压电发声装置及外围电路组成,加电后不发声,当有键按下时,“叮”声,每按一下,发声一次,密码正确时,不发声直接开锁,当密码输入错误时,单片机的P
2.1引脚为低电平,三极管T3导通轰鸣器发出噪鸣声报警如图4-8所示图报警电路原理图4-8系统软件设计5本系统软件设计由主程序、初始化程序、LCD显示程序、键盘扫描程序、键功能程序、密码设置程序、EEPROM读写程序和延时程序等组成主程序流程图
5.1如图5-1所示为主程序流程图,开始接上电源,程序进行初始化设置,然后在键盘上输入密码,此系统进行键盘扫描,然后启动程序,进行保护,再次在键盘上输入密码,系统进行扫描,如和之前一样,则执行程序,如不是,则执行另一种程序,最后结束初始化键盘扫描启动程序键盘扫描键功能程序关闭程序图主程序流程图5-1按键功能流程图
5.2如图5-2为按键功能流程图,在按键当中,有与输入、开锁、清除、设置、确认的程序相对应的按键,并按顺序与输入的数相比较,当输入正确时,进入密码程序,错误时进行清除,输入两次正确的,可进行重新设置,最后确认程序键功能程序返回图按键功能流程图5-2密码设置流程图
5.3如图5-3为密码设置流程图,开始按下设置键,输入旧密码,如果错误,累计三次错误,进行报警程序如输入正确,可以改密码,确认后再次输入更改后密码,如两次输入一样,则更改成功图密码设置流程图5-3开锁流程图
5.4如图5-4为开锁流程图,开始时按开锁键,输入密码,如果输入正确,则开锁成功如果输入错误累计达到三次,则执行报警程序开锁程序图开锁流程图5-4以上为毕业期间所设计的电子密码控制系统的电路,它经过多次修改和整理,可以满足设计的基本要求输入密码时,如三次输入错误,则进行报警,在输入时,LCD显示为“*”,在修改密码时,则显示数字次设计还具有防盗功能,如对密码控制系统进行破坏,有报警功能但因为我的水平有限,此电路中也存在一定的问题譬如说电路的密码不能遗忘,一旦遗忘,就很难打开,这可以通过增加电路解决,但由于过于复杂,本设计并未加入;电路密码只有16种可供修改,但由于他人不知道密码的位数,而且还要求在规定的时间内按一定的顺序开锁,所以他人开锁的几率很小由于使用的是单片机作为核心的控制元件,配合其它器件,使本密码控制系统具有功能强、性能可靠、电路简单、成本低的特点,加上经过优化的程序,使其有很高的智能化水平参考文献
[1]郝波,秦宏,李川.模拟电子技术基础.西安电子科技大学出版社,2003
[2]来清民.传感器与单片机接口及实例.北京航空航天大学出版社,2008
[3]崔中勤.中外集成电路速查手册.电子工业出版社,1991
[4]当方.微型计算机控制技术.中国水利水电出版社,2001年
[5]胡汉才.单片机原理及其借口技术.清华大学出版社,1996年
[6]赵新民.智能仪器设计基础.哈尔滨工业大学出版社,1999年
[7]潘新,民王,燕芳.微型计算机控制技术.电子工业出版社,2003年
[8]李钟实.实用电子报警器精选百例.北京科技技术文献出版社,2002年
[9]陈爱弟.Protel99se实用培训教程.人民邮电出版社,2000年
[10]阎石.数字电子技术基础.高等教育出版社,1998年三年的大学生活不知不觉中就要结束了,在这段难忘的生活中,我有许多美好的回忆在这份大学的最后一页里,我要感谢的人很多,首先要感谢我的学校,感谢在这三年中教给我的做人的道理,让我从一个懵懂得高中生变成一个成熟的青年还要感谢我的论文指导老师,在他的指导下我完成了论文,老师多次询问研究进程,并为我指点迷津当然,还要感谢寝室的兄弟们在我完成论文的过程中给予我的帮助和鼓励,也是他们陪我度过了这三年的生活,最后要感谢的就是我的父母,对于他们我更是有千言万语,还是汇聚成一句话感谢你们一直都伴随着我现在即将挥别我的学校、老师、同学,还有我三年的大学生活,虽然依依不舍,但是对未来的路,我充满了信心最后,感谢在大学期间认识我和我认识的所有人,有你们的伴随,才有我大学生活的丰富多彩,绚丽多姿!谢谢!附录A
1.1图总原理图1附录A
1.2源程序代码#include reg5l.h#include stdio.h#include stdlib.h#include Icd.h#include key.h uchar key_buf
[16]={0};ucharold_key
[16]={0};uchar key_index=O;uchar string_buf
[17]={0};uchar key;ucharkey_statu=O;uchar clear=l;uchar check=O;char times=3;uchar change=;void delay_msuint tuint ij;fori=0;it;i++j=2000;while—j;void save_iiciic_writesO,uchar*key_buf[6;void read_iic iic_readsO,uchar*old_key,l6;void runtimeriTH1=38;TL1=228;TR1=1;ET1=1;EA=1;void timer1voidinterrupt3{iftimes=0||!alarmir_out=-ir_out;uchar ir_key_checkuchar i=0;uchar j;if!ir_key1{if!checkfori=0;i16;i++ifkey_buf[i]!=old_key[i]lcd_set_addr0xa8;lcd_printn PassWordError!;times—;delay_ms250;lcd_set_addr0xa8;lcd_printn;key_index=O;forj=0;j16;j++string_buf[j]=0x0;key_buf[j]=0x0;}iftimes=0times=0;return0;key_index=0;times=3;forj=0;j16;j++string_buf[j]=0x0;key_buf[j]=0x0;ir_pin=l;lcd_clear;lcd_printH PassWordPass!;lcd_set_addr0xa8;lcd_printHThe DoorOpened;delay_ms250;lcd_set_addr0xa8;lcd_printn”;check=1;elseifchangelcd_clear;key_index-0;save_iic;forj=0;j16;j++string_buf[j]=OxO;key_buf[j]=OxO;lcd_printH InputPassword H;lcd_set_addr0xa8;lcd_printH;check=0;clear=1;read_iic;change=;ir_pin=0;elselcd_clear;ir_pin=0;lcd_printn DoorClosed!;delay_ms250;lcd_clear;lcd_printH InputPassword n;check=0;clear=1;change=0;return0;}if!ir_key2{ifcheckclear=0;}elseclear=1;key_index=0;forj=0;j16;j++string_buf[j]=0x0;key_buf[j]=0x0;}lcd_set_addr0xa8;lcd_printn;ifchecklcd_clear;change=l;lcd_printH Change Password;lcd_set_addr0xa8;lcd_printH;return0;void key_press{if!clear{ifKey_Status!key_statu{key_statu=1;ifkey_index16{key_buf[key_index]=read_key-1;string_buf[key_index]=key_buf[key_index]9A,-10+key_buf[key_index]:key_buf[key_index]+,O,;key_index++;lcd_set_addr0xa8;lcd_printstring_buf;}if!key_statuKey_Status key_statu=O;elseifKey_Status!key_statukey_statu=1;ifkey_index16{key_buf[key_index]=read_key-1;string_buf[key_index]=,*;key_index++;lcd_set_addr0xa8;lcd_printstring_buf;}}if!key_statuKey_Status key_statu=O;int mainTMOD=0x21;runtimeri;delay_ms100;lcd_init;read_iic;ir_pin=O;ir_out=0;lcd_printn InputPassword;lcd_set_addr0xa8;lcd_printH”;whilel ir_key_check;key_press;按键程序#include reg
1.2电子密码控制简介-1-
1.3电子密码控制的发展趋势-1-
1.4本设计所要实现的目标-2-2系统的设计思想-4-
2.1方案一采用数字电路控制-4-
2.2方案二采用以单片机为核心的控制方案-4-3主要元器件介绍及12c总线说明-5-
3.1主控芯片AT89c
3.2AT89C51引脚功能说明-7-
3.3AT89C51芯片内部结构-8-
3.4LCD1602显示器-10-
3.5接口信号说明-10-
3.
5.1主要技术参数-11-
3.
5.2基本操作程序-11-
3.6晶体振荡器-12-
3.
3.
6.212c总线说明-12-4系统硬件构成-18-
4.1设计原理-18-
4.2电路总图构成-18-
4.3电源输入部分-19-
4.4键盘输入部分-19-
4.5复位部分-20-
4.6晶振部分一21-
4.7显示部分-21-
4.8报警部分-22-5系统软件设计-24-
5.1主程序流程图-24-
5.2按键功能流程图-25-
5.3密码设置流程图-26-
5.4开锁流程图-27-结论-29-参考文献-30-致谢-31-附录A
1.
1.
1.1在安全技术防范领域,具有防盗报警功能的电子密码控制系统逐渐代替传统的机械式密码控制系统,克服了机械式密码控制的密码量少、安全性能差的缺点,使电子密码控制系统无论在技术上还是在性能上都大大提高了一步随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码控制系统,它除具有传统电子密码控制系统的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码控制系统具有很高的安全性、可靠性,应用日益广泛电子密码控制简介
1.2电子密码控制是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品电子密码控制不论性能还是安全性都已大大超过了机械类其特点如下1)保密性好,编码量多,远远大于机械控制随机开锁成功率几乎为零2)密码可变,用户可以随时更改密码,防止密码被盗,同时也可以避免因人员的更替而使控制的保密性下降3)误码输入保护,当输入密码多次错误时,报警系统自动启动4)无活动零件,不会磨损,寿命长5)使用灵活性好,不像机械锁必须佩带钥匙才能开锁6)电子密码控制系统具有操作简单易行,一学即会的特点电子密码控制的发展趋势
1.3由于电子器件所限,以前开发的电子密码控制系统,其种类不多,保密性差,最基本的就是只依靠最简单的模拟电子开关来实现的,制作简单但很不安全,后来便是基于EDA来实现的,其电路结构复杂,电子元件繁多,也有使用早先的20引脚的2051系列单片机来实现的,但密码简单,易破解随着电子元件的进一步发展,电子密码控制系统也出现了很多的种类,功能日益强大,使用更加方。
个人认证
优秀文档
获得点赞 0