《基于单片机的电子密码锁设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的电子密码锁设计.docx(56页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、华北科技学院毕业设计(论文)目录设计总说明IIntroductionI第一章 绪论11.1 设计背景11.2 电子密码控制简介11.3 电子密码控制的发展趋势21.4 本设计所要实现目标的简述2第二章 控制方案的设计、挑选32.1 采用数字电路控制32.2 采用以单片机为核心的控制方案4第三章 主要元器件介绍及I2C总线与串行通信说明53.1 主控芯片AT89C5153.1.1 AT89C51性能简介53.1.2 AT89C51引脚功能简介53.2 LCD1602显示器83.2.1 LCD结构及引脚功能83.2.2 LCD显示指令系统93.3 晶体振荡器93.4 I2C总线说明及M24C01串
2、行EEPROM103.4.1 I2C总线的硬件结构103.4.2 I2C总线工作原理:113.4.3 储备器24C01133.5 串口通信14第四章 系统硬件构成164.1 设计原理164.2 键盘输入部分174.2.1 矩阵式键盘的结构与工作原理184.3 复位部分194.4 晶振部分204.5 显示部分204.6 开锁部分和报警部分21第五章 系统软件构成225.1 系统软件流程图的设计225.1.1 主程序流程图225.1.2 按键功能流程图245.1.3 设置密码流程图245.1.4 开锁流程图255.2 Proteus和keil开发软件的功能介绍285.2.1 Proteus的简介2
3、85.2.2 Proteus的实用功能295.2.3 Keil的简介315.2.4 Keil软件的使用方法325.2.5 系统的仿真运行33第六章 结论36参考文献37致谢38附录A39附录 B40第一章 绪论 1.1 设计背景安全问题是现代社会各界普遍关注的焦点之一。目前,常见的安全产品有指纹识别系统、IC卡辨识系统以及红外防盗系统等。这些系统一样用于保密要求较高或供个人使用的保险柜。虽然产品的安全性高,但由于其生产成本高,携带、安装及使用不方便等缺点,在一定程度上限制了这类产品的普及和推广。具有防盗报警功能的电子密码控制系统逐步代替传统的机械式密码控制系统,克服了机械式密码控制的密码量少、
4、安全性能差的缺点,使电子密码控制系统无论在技术上还是在性能上都大大提高了一步。随着大规模集成电路技术的发展,特别是单片机的问世,显现了带微处理器的智能密码控制系统,它除具有传统电子密码控制系统的功能外,还引入了智能化治理、专家分析系统等功能,从而使密码控制系统具有很高的安全性、可靠性,应用日益广泛。基于单片机的电子密码锁使用C51单片机来实现多功能密码模块。这种电路设计具有加密更快速、可靠性更高、成本更低的特点,特别适合用于家庭、办公室、学生宿舍等场所,具有很强的社会推广价值。电子密码锁是由电子电路控制锁体的新型锁具,它采用键盘方式输入开锁密码,操作方便。在科学技术不断发展的今天,电子密码锁具
5、有它特殊的市场,本设计基于单片机,设计了一款简单适用具有开锁和报警功能的电子密码锁。1.2 电子密码控制简介电子密码控制是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。电子密码控制不论性能还是安全性都已大大超过了机械类。其特点如下:1) 保密性好,编码量多,远远大于机械控制。随机开锁成功率几乎为零。2) 密码可变,用户可以随时更换密码,防止密码被盗,同时也可以避免因人员的更替而使控制的保密性下降。3) 误码输入保护,当输入密码多次错误时,报警系统自动启动。4) 无活动零件,不会磨损,寿命长。5) 使用灵活性好,不像机械锁必须佩带钥匙才能开锁。6)
6、 电子密码控制系统具有操作简单易行,一学即会的特点。1.3 电子密码控制的发展趋势由于电子器件所限,以前开发的电子密码控制系统,其种类不多,保密性差,最基本的就是只依靠最简单的模拟电子开关来实现的,制作简单但很不安全,后来便是基于EDA来实现的,其电路结构复杂,电子元件繁多,也有使用早先的20引脚的2051系列单片机来实现的,但密码简单,易破解。随着电子元件的进一步发展,电子密码控制系统也显现了很多的种类,功能日益强大,使用更加方便,安全保密性更强,由以前的单密码输入发展到现在的,密码加感应元件,实现了更为真正的电子加密,用户只有密码或电子钥匙中的一样,是打不开锁的,随着电子元件的发展及人们对
7、保密性需求的提高显现了越来越多的电子密码控制系统 。由于数字、字符、图形图像、人体生物特点和时间等要素均可成为电子信息,组合使用这些信息能够使电子防盗密码控制获得更高的保密性,如防范森严的金库,需要使用复合信息密码的电子防盗密码控制系统。组合使用信息也能够使电子防盗密码控制系统获得无穷扩展的可能。可以看出组合使用电子信息是电子密码控制系统今后发展的趋势 。1.4 本设计所要实现目标的简述本设计采用单片机为主控芯片,结合外围电路,组成电子密码控制系统,用户想要打开锁,必先通过提供的键盘输入正确的密码才可以,密码输入错误有提示,为了提高安全性,当密码输入错误三次将报警。密码可以由用户自己修改设定,
8、锁打开后才能修改密码。修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操作。第二章 控制方案的设计、挑选2.1 采用数字电路控制 图2-1 数字密码锁电路控制方案用以74LS112双JK触发器构成的数字逻辑电路作为密码控制系统的核心控制,共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过10秒(一样情形下,用户不会超过10秒,若用户觉得不便,还可以修改)电路将报警20秒,若电路连续报警三次,电路将锁定键盘2分钟,防止他人的非法操作 。采用数字电路设计方案时设
9、计虽然简单,但控制的准确性和灵活性差。故不采用。电路由两大部分组成:密码锁电路和备用电源(UPS),其中设置UPS电源是为了防止因为停电造成的密码锁电路失效,使用户免遭麻烦。密码锁电路包含:键盘输入、密码修改、密码检测、开锁电路、执行电路、报警电路、键盘输入次数锁定电路。2.2 采用以单片机为核心的控制方案 图2-2 单片机控制方案由于单片机种类繁多,各种型号都有其一定的应用环境,因此在选用时要多加比较,合理挑选,以期获得最佳的性价比。一样来说在选取单片机时从下面几个方面考虑:性能、储备器、运行速度、I/O口、定时/计数器、串行接口、模拟电路功能、工作电压、功耗、封装形式、抗干扰性、保密性,除
10、了以上的一些还有一些最基本的,比如:中断源的数量和优先级、工作温度范畴、有没有低电压检测功能、单片机内有无时钟振荡器、有无上电复位功能等。在开发过程中单片机还受到:开发工具、编程器、开发成本、开发人员的适应性、技术支持和服务等等因素 。基于以上因素本设计选用单片机AT89C51作为本设计的核心元件,利用单片机警活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码控制功能。在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接LCD1602显示器用于显示作用。当用户需要开锁时,按键盘的数字键09输入密码。密码输完后按下开锁键,如果密码输入正确则开锁,不正确显示密码错误重新
11、输入密码,当三次密码错误则发出报警;同时本设计支持串行通信,可以在PC机上实现远程操控。当用户需要修改密码时,先按下键盘设置键后,如果未开锁则需要输入原先的密码,只有当输入的原密码正确后才能设置新密码。新密码输入无误后按确认键使新密码将得到储备,密码修改成功 。可以看出方案二的控制灵活,准确性好,且保密性强还具有扩展功能,根据现实生活的需要此次设计采用此方案。 第三章 主要元器件介绍及I2C总线与串行通信说明3.1 主控芯片AT89C51AT89C51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes的可反复擦写1000次的Flash只读程序储备器,器件采用ATMEL公司的高密度
12、、非易失性储备技术制造,兼容标准MCS-51指令系统及AT80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash储备单元,功能强大的微型运算机的AT89C51可为许多嵌入式控制应用系统提供高性价比的解决方案。 3.1.1 AT89C51性能简介AT89C51具有如下特点:40个引脚,4k Bytes Flash片内程序储备器,128 bytes的随机存取数据储备器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2 个16位可编程定时计数器,2个全双工串行通信口,片内时钟振荡器。3.1.2 AT89C51引脚功能简介芯片引脚图如下图3-1。 3-
13、1 AT89C51芯片引脚图VCC:电源电压 GND:地 P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口,作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端口。在拜访外部数据储备器或程序储备器时,这组口线分时转换地址(低8位)和数据总线复用,在拜访期间激活内部上拉电阻。在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。P1口:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸取或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入
14、口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号校验期间,P1接收低8位地址。P2口:P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流I。在拜访位地址的外部数据储备器(如执行:MOVX Ri 指令)时,P2口线上的内(也即特别功能寄存器,在整个拜访期间不改变。Flash 编程或校验时,P2也接收高位地址和其它控制信号。P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸
15、取或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。作输入端口时,被外部拉低的P3口将用上拉电阻输出电流I。P3口除了作为一样的I/O口线外,更重要的用途是它的第二功能,P3口的第二功能如下表3-2。 表3-2 P3口的第二功能端口功能第二功能端口引脚第二功能RXD(P3.0)串行输入口T0(P3.4)定时/计数器0外部输入TXD(P3.1)串行输出口T1(P3.5)定时/计数器1外部输入INT0(P3.2)外中断0WR(P3.6)外部数据储备器写选通INT1(P3.3)外中断1RD(P3.7)外部数据储备器读选通RST:复位输入。当振荡工作时,R
16、ST引脚显现两个机器周期上高电平将使单片机复位。ALE/PROG:当拜访外部程序储备器或数据储备器时,ALE(地址锁存答应)输出脉冲用于锁存地址的低8位字节。即使不再拜访外部储备器,ALE仍以时钟振荡频率的1/6输出的正脉冲信号,因此它可对外输出时钟或用于定时目地,要注意的是:当拜访外部数据储备器时将跳过一个ALE脉冲。如有必要,可通过对特别功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置禁位后,只有一条MOVX 和MOVC指令ALE才会被激活。此外,该引脚伎被柔弱拉高,单片机执行外部程序时,应设置ALE无效。PSEN:程序储存答应(PSEN)输出是外部程序储备器的读
17、选通信号,当AT89S51由外部程序储备器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。当拜访外部数据储备器,高有两次有效的PSEN信号。EA/VPP:外部拜访答应。欲使CPU拜访外部程序储备器(地址0000HFFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接VCC端),CPU则执行内部程序储备器中的指令。Flash储备器编程时,该引脚加上12V的编程电压VPP。XTAL1:振荡器反相放大器及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。3.2 LCD1602显示器现在的字符型液晶
18、模块已经是单片机应用设计中最常用的信息显示器件了。1602型LCD显示模块具有体积小,功耗低,显示内容丰富等特点。1602型LCD可以显示2行16个字符,有8位数据总线D0-D7和RS,R/W,EN三个控制端口,工作电压为5V,并且具有字符对比度调剂和背光功能。3.2.1 LCD结构及引脚功能LCD1602液晶屏外观示意图如下图3-3图3-3 LCD液晶显示屏LCD液晶屏引脚功能如下表3-4所列: 表3-4 LCD引脚功能表 编号符号引脚说明编号符号引脚说明1VSS电源地9D2Data I/O2VDD电源正极10D3Data I/O3VEE 液晶显示偏压信号11D4Data I/O4RS数据/
19、命令挑选端 12D5Data I/O5R/W读写挑选端(H/L)13D6Data I/O6E使能信号14D7Data I/O7D0Data I/O8D1Data I/OLCD1602的引脚中,其中VSS为地电源,VDD接5V,VEE为液晶显示器对比度调剂端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过1个10K的电位器调整对比度。RS为寄存器挑选,高电平时挑选数据寄存器、低电平时挑选指令寄存器。RW为读写信号线,高电平时进行读操作,低电平时进行写操作。E端为使能端。D0D7为8位双向数据线。3.2.2 LCD显示指令系统通过RS、RW、E这三个控制脚不
20、同的状态的配合,对LCD1602的操作主要有两类四种。两类分为读和写,四种是读状态,写指令,读数据,写数据。下面是具体的四种状态:1) 读状态, 输入:RS=L,RW=H,E=H。输出:D0D7=状态字。 2) 写指令, 输入:RS=L,RW=L,D0-D7=指令,E=高脉冲。输出:无。3) 读数据,输入:RS=H,RW=H,E=H。输出:D0D7=数据。4) 写数据,输入:RS=H,RW=L,D0D7=数据,E=高脉冲。输出:无。了解这四种状态就可以对LCD1602进行操作了。3.3 晶体振荡器晶体振荡器,简称晶振,其作用在于产生原始的时钟频率,这个频率经过频率发生器的放大或缩小后就成了电脑
21、中各种不同的总线频率。以声卡为例,要实现对模拟信号44.1kHz或48kHz的采样,频率发生器就必须提供一个44.1kHz或48kHz的时钟频率。如果需要对这两种音频同时支持的话,声卡就需要有两颗晶振。但是现在的娱乐级声卡为了降低成本,通常都采用SCR将输出的采样频率固定在48kHz,但是SRC会对音质带来损害,而且现在的娱乐级声卡都没有很好地解决这个问题。现在应用最广泛的是石英晶体振荡器。 石英晶体振荡器是一种高精度和高稳固度的振荡器,石英晶体振荡器也称石英晶体谐振器,它用来稳固频率和挑选频率,是一种可以取代LC谐振回路的晶体谐振元件。石英晶体振荡器广泛地应用在电视机、影碟机、录像机、无线通
22、讯设备、电子钟表、单片机、数字仪器外表等电子设备中。为数据处理设备产生时钟信号和为特定系统提供基准信号。在单片机中为其提供时钟频率。石英晶体振荡器是利用石英晶体(二氧化硅的结晶体)的压电效应制成的一种谐振器件,它的基本构成大致是:从一块石英晶体上按一定方位角切下薄片(简称为晶片,它可以是正方形、矩形或圆形等),在它的两个对应面上涂敷上银层用作电极使用,在每个电极上各焊一根引线接到管脚上,再加上封装外壳就构成了石英晶体谐振器,简称为石英晶体或晶体、晶振。其产品一样用金属外壳封装,也有用玻璃壳、陶瓷或塑料封装的。只要在晶体振子板极上施加交变电压,就会使晶片产生气械变形振动,此现象即所谓逆压电效应。
23、当外加电压频率等于晶体谐振器的固有频率时,就会发生压电谐振,从而导致机械变形的振幅突然增大。本设计中采用11.0592MHZ做系统的外部晶振,挑选的原因在后面串口通信的时候会具体说明。电容取值为22pF。 3.4 I2C总线说明及M24C01串行EEPROMI2C(InterIntegrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器治理中使用,其中包括单个组件状态的通信。例如治理员可对各个组件进行查询,以治理系统的配置或把握组件的功能状态,如电源和系统风扇。可随时
24、监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便了治理。3.4.1 I2C总线的硬件结构I2C串行总线一样有两根信号线,一根是双向的数据线SDA,另一根是时钟线SCL。所有接到I2C总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线的SCL上。为了避免总线信号的纷乱,要求各设备连接到总线的输出端时必须是开漏输出或集电极开路输出。设备上的串行数据线SDA接口电路应该是双向的,输出电路用于向总线上发送数据,输入电路用于接收总线上的数据。而串行时钟线也应是双向的,作为控制总线数据传送的主机,一方面要通过SCL输出电路发送时钟信号,另一方面还要检测总线上的S
25、CL电平,以决定什么时候发送下一个时钟脉冲电平;作为接受主机命令的从机,要按总线上的SCL信号发出或接收SDA上的信号,也可以向SCL线发出低电平信号以延长总线时钟信号周期。总线闲暇时,因各设备都是开漏输出,上拉电阻RP使SDA和SCL线都保持高电平。任一设备输出的低电平都将使相应的总线信号线变低,也就是说:各设备的SDA是“与”关系,SCL也是“与”关系。 总线对设备接口电路的制造工艺和电平都没有特别的要求(NMOS、CMOS都可以兼容)。在I2C总线上的数据传送率可高达每秒十万位,高速方式时在每秒四十万位以上。另外,总线上答应连接的设备数以其电容量不超过400pF为限。 总线的运行(数据传
26、输)由主机控制。所谓主机是指启动数据的传送(发出启动信号)、发出时钟信号以及传送终止时发出停止信号的设备,通常主机都是微处理器。被主机寻访的设备称为从机。为了进行通讯,每个接到I2C总线的设备都有一个唯独的地址,以便于主机寻访。主机和从机的数据传送,可以由主机发送数据到从机,也可以由从机发到主机。凡是发送数据到总线的设备称为发送器,从总线上接收数据的设备被称为接受器。I2C总线上答应连接多个微处理器以及各种外围设备,如储备器、LED及LCD驱动器、A/D及D/A转换器等。为了保证数据可靠地传送,任一时刻总线只能由某一台主机控制,各微处理器应该在总线闲暇时发送启动数据,为了妥善解决多台微处理器同
27、时发送启动数据的传送(总线控制权)冲突,以及决定由哪一台微处理器控制总线的问题,I2C总线答应连接不同传送速率的设备。多台设备之间时钟信号的同步过程称为同步化。3.4.2 I2C总线工作原理:1.总线的构成及信号类型: I2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,最高传送速率100kbps。各种被控制电路均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作,所以每个电路和模块都有唯独的地址,在信息的传输过程中,I2C总线上并接的每一模块电路既是主控器(或被控器),又是发送器(或接收器),这取决于它所要完成
28、的功能。CPU发出的控制信号分为地址码和控制量两部分,地址码用来选址,即接通需要控制的电路,确定控制的种类;控制量决定该调整的类别(如对比度、亮度等)及需要调整的量。这样,各控制电路虽然挂在同一条总线上,却彼此独立,互不相关。I2C总线在传送数据过程中共有三种类型信号, 它们分别是:开始信号、终止信号和应答信号。开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。终止信号:SCL为高电平时,SDA由低电平向高电平跳变,终止传送数据。 SDASCL开始终止 图3-5开始、终止信号图应答信号:接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数
29、据。CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情形作出是否连续传递信号的判定。若未收到应答信号,由判定为受控单元显现故障。2.总线基本操作:I2C规程运用主/从双向通讯。器件发送数据到总线上,则定义为发送器,器件接收数据则定义为接收器。主器件和从器件都可以工作于接收和发送状态。 总线必须由主器件(通常为微控制器)控制,主器件产生串行时钟(SCL)控制总线的传输方向,并产生起始和停止条件。SDA线上的数据状态仅在SCL为低电平的期间才能改变,SCL为高电平的期间,SDA状态的改变被用来表示起始和停止条件。控制字节:在起始条件之后,必须是器件的控
30、制字节,其中高四位为器件类型识别符(不同的芯片类型有不同的定义,EEPROM一样应为1010),接着三位为片选,最后一位为读写位,当为1时为读操作,为0时为写操作。 写操作:写操作分为字节写和页面写两种操作,对于页面写根据芯片的一次装载的字节不同有所不同。读操作:读操作有三种基本操作:当前地址读、随机读和顺序读。图4给出的是顺序读的时序图。应当注意的是:最后一个读操作的第9个时钟周期不是“不关心”。为了终止读操作,主机必须在第9个周期时发出停止条件或者在第9个时钟周期内保持SDA为高电平、然后发出停止条件。在I2C总线的应用中应注意的事项总结为以下几点 : a)严格按照时序图的要求进行操作,
31、b)若与口线上带内部上拉电阻的单片机接口连接,可以不外加上拉电阻。 c)程序中为配合相应的传输速率,在对口线操作的指令后可用NOP指令加一定的延时。d)为了减少意外的干扰信号将EEPROM内的数据改写可用外部写保护引脚(如果有),或者在EEPROM内部没有用的空间写入标志字,每次上电时或复位时做一次检测,判定EEPROM是否被意外改写。 3.添加:I2C 总线:在现代电子系统中,有为数众多的IC 需要进行相互之间以及与外界的通信。为了提供硬件的效率和简化电路的设计,PHILIPS 开发了一种用于内部IC 控制的简单的双向两线串行总线I2C(inter IC 总线)。I2C 总线支持任何一种IC
32、 制造工艺,并且PHILIPS 和其他厂商提供了种类非常丰富的I2C 兼容芯片。作为一个专利的控制总线,I2C 已经成为世界性的工业标准。每个I2C 器件都有一个唯独的地址,而且可以是单接收的器件(例如:LCD 驱动器)或者可以接收也可以发送的器件(例如:储备器)。发送器或接收器可以在主模式或从模式下操作,这取决于芯片是否必须启动数据的传输还是仅仅被寻址。I2C 是一个多主总线,即它可以由多个连接的器件控制。早期的I2C 总线数据传输速率最高为100Kbits/s,采用7 位寻址。但是由于数据传输速率和应用功能的迅速增加,I2C 总线也增强为快速模式(400Kbits/s)和10 位寻址以满足
33、更高速度和更大寻址空间的需求。I2C 总线始终和先进技术保持同步,但仍旧保持其向下兼容性。并且最近还增加了高速模式,其速度可达3.4Mbits/s。它使得I2C 总线能够支持现有以及将来的高速串行传输应用,例如EEPROM 和Flash 储备器。3.4.3 储备器24C01在叙述了I2C总线后,接下来将是I2C总线在串行EEPROM中的具体应用。M24C01是一个128字节的串行CMOS EEPROM,用在本设计里面内存空间足够了。具体有如下特性:内建128x8储备序列2线制串行接口双向数据传送协议100kHz(1.8V,2.5V,2.7V) 和400kHz(5V)兼容写同步时钟(最大10ms
34、)高可靠性极限:1M写时钟周期数据储存:100年不断推进的芯片等级扩大了设备的可用温度范畴M24CO1的管脚示意图如下图3-6图3-6M24CO1在图中可以看到第7引脚为写保护引脚。如果其连接到Vcc,所有的内容都被写保护只能读;当其连接到Vss或者悬空,答应器件进行正常的读/写操作。本实验中第7引脚接地,以便24C01可以被写入。第5引脚SDA为串行数据/地址引脚。24C01的双向串行数据/地址引脚用于器件所有的数据的发送和接收。SDA是一个开漏输出引脚,可与其他开漏输出或者集电极开路输出进行线或。第6引脚SCL为24C01串行时钟输入引脚,用于产生数据发送或接收的时钟,这是一个输入引脚。在
35、实际连线中还需记得连接上拉电阻。下面再简要描述一下其工作方式:1. 写操作: 字节写和页写2. 读操作: 当前地址读,指定地址读,连续读3.5 串口通信目前RS-232是PC与通信工业中应用最广泛的一种串行接口,其中RS代表举荐标准,232是标识号。RS-232被定义为一种在低速率串行通信中增加通信距离的单端标准。RS-232采取不平稳传输方式,即单端通信。单片机之间的串口通信,当传输距离在1.5-15米之间时,可以采用RS-232通讯协议进行数据传输,基于RS-232电气特性的限制,只能实现一点对一点通信(既单机通信)。本设计的一部分为C51单片机与PC串口间通讯,实现了单片机与PC机之间的
36、远程通信。设计分发送和接收两大模块,发送部分通过硬件电路的引用。其中包括RS-232接口电路、MAX232接口电路,引用相应的管脚相连,并将相应的软件程序转入电路中,即可运行。当电路是相对独立时,可直接调速电路参数值,其影响和干扰就小。在满足发射和接收模块的要求后可单独对控制进行调整,程序的编入,接收部分相应的结果即以实现,因此实现了PC机对远端单片机的控制。 当C51与PC机通过RS-232标准总线串行通信时,由于RS-232信号电平与C51单片机信号电平不一致,因此,必须进行信号电平转换。其常用的方法有两种,一种是采用运算放大器、晶体管、光电隔离器等器件组成的电路来实现,另一种是采用专门集
37、成芯片来实现。本设计中则是以MAX232集成芯片来实现的。具体的连线方法如下图。 图3-7 MAX232芯片和COM口关于串行通信的基础知识在这里就不赘述了。这里主要补充一下波特率的设置,这在晶振那里有提到。在串行通信中,收发双方对发送或接收数据的波特率有一个约定。通信双方波特率必须相同方可通信。51单片机串行通信有四种方式,方式0和方式2的波特率是固定不变的,方式1和方式3的波特率可以变化,通常由定时器T1(或者T2)的溢出率决定。在这里我们并不需要根据那一系列公式慢慢运算,因为下表给我们列出了常用的波特率。 表3-8常用的波特率 串行口工作方式波特率(Kb/s)晶振频率(MHz)SMOD
38、定时器T1C/T方式时间常数方式01000(最大) 12X X X X方式2 375 12 1 X X X方式1、3 62.5 12 1 0 2 FFH 19.211.0592 1 0 2 FDH 9.611.0592 0 0 2 FDH 4.811.0592 0 0 2 FAH方式1、3 2.411.0592 0 0 2 F4H 1.211.0592 0 0 2 E8H 0.137511.986 0 0 2 1DH 0.110 6 0 0 2 27H 0.110 12 0 0 1 FEEBH 由图中可知当挑选波特率为9600bps时,对应的晶振为11.0592MHz,此时T1工作在方式2,串
39、口为工作方式1。第四章 系统硬件构成4.1 设计原理本设计主要由单片机、矩阵键盘、液晶显示器和密码储备等部分组成。其中矩阵键盘用于输入数字密码和进行各种功能的实现。由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己储存的密码进行对比,从而判定密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警。本系统共有两部分构成,即硬件部分与软件部分。其中硬件部分由电源输入部分、键盘输入部分、复位部分、晶振部分、显示部分、报警部分组成,软件部分对应的由主程序、初始化程序、LCD显示程序、键盘扫描程序、启动程序、关闭程序、键功能程序、密码设置程序、EEPROM读
40、写程序和延时程序等组成。在确定了选用什么型号的单片机后,就要确定外围电路,其外围电路包括键盘输入部分、复位部分、晶振部分、显示部分、报警部分组成,元器件的构成在第三章已有介绍。根据实际情形具体为:键盘输入部分挑选4*4矩阵键盘来实现密码的输入和按键功能的实现,显示部分挑选字符型液晶屏LCD1602可以更好的显示提示信息,报警部分为蜂鸣器,密码储备则挑选M24C01,内存较小在这里比较合适,锁的开合则通过电磁继电器闭合和开启来实现。其具体原理框图如图4-1所示,一目了然。 之后则具体介绍各个部分。AT89C51键盘输入复位电路晶振电路电源输入显示电路报警电路开锁电路 4-1 电子密码锁原理框图4
41、.2 键盘输入部分由于本设计所用到的按键数量较多而不适合用独立按键式键盘。采用的是矩阵式按键键盘,它由行线和列线组成,也称行列式键盘,按键位于行列的交叉点上,密码锁的密码由键盘输入完成,与独立式按键键盘相比,要节省很多I/O口。本设计中使用的这个4*4键盘不但能完成密码的输入还能作特别功能键使用,比如清空显示功能等。键盘的每个按键功能在程序设计中设置。4.2.1 矩阵式键盘的结构与工作原理在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如下图4-2所示。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P2口)就可以构成
42、4*4=16个按键,比直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。矩阵式结构的键盘明显比直接法要复杂一些,识别也要复杂一些,图中,每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有NM个按键的键盘。图4-2 矩阵键盘在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序第一执行等待按键并确认有无按键按下的程序段。当确认有按键按下后,下一步就要识别哪一个按键按
43、下。对键的识别通常有两种方法:一种是常用的逐行扫描查询法;另一种是速度较快的线反转法。这里仅介绍一下矩阵式键盘的按键识别方法 :行扫描法。行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法,如上图所示键盘,介绍过程如下。1)判定键盘中有无键按下 将全部行线置低电平,然后检测列线的状态。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。若所有列线均为高电平,则键盘中无键按下。 2)判定闭合键所在的位置 在确认有键按下后,即可进入确定具体闭合键的过程。其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。在确定某
44、根行线位置为低电平后,再逐行检测各列线的电平状态。若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。 3)为了保证键每闭合一次CPU仅作一次处理,必须排除按键开释时的抖动。4.3 复位部分单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位。在复位期间(即RST为高电平期间),P0口为高组态,P1P3口输出高电平;外部程序储备器读选通信号PSEN无效。地址锁存信号ALE也为高电平。根据实际情形挑选如图4-3所示的复位电路。该电路在最简单的复位电路下增加了手动复位按键,在接通电源
45、瞬时,电容C3上的电压很小,复位下拉电阻上的电压接近电源电压,即RST为高电平,在电容充电的过程中RST端电压逐步下降,当RST端的电压小于某一数值后,CPU脱离复位状态,由于电容C3足够大,可以保证RST高电平有效时间大于24个振荡周期,CPU能够可靠复位。增加手动复位按键是为了避免死机时无法可靠复位。当复位按键按下后电容C3通过R2放电。当电容C3放电终止后,RST端的电位由R2与R3分压比决定。由于R2R3 因此RST为高电平,CPU处于复位状态,松手后,电容C3充电,RST端电位下降,CPU脱离复位状态。R2的作用在于限制按键按下瞬时电容C3的放电电流,避免产生火花,以保护按键触电 。 图4-3复位电路4.4 晶振部分AT89C51引脚XTAL1和XTAL2与晶体振荡器及电容C2、C1按图4-4所示方式连接。晶振、电容C1C2及片内与非门(作为反馈、放大元件)构成了电容三点式振荡器,振荡信号频率与晶振频率及电容C1、C2的容量有关,但主要由晶振频率决定,范畴在033MHz之间,电容C1、C2取值范畴在530pF之间。根据实