版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、四川交通职业技术学院毕业设计电子信息技术工程业生号师老导专学学指目:基于单片机的智能电子密码锁曾刚阳张老师日期:2015年11月5日基于单片机的智能密码锁设计摘要电子密码锁是一种通过密码输入來控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。现在应用较广的电子密码锁是以芯片为核心,通过编程來实现的。其性能和安全性已大大超过了机械锁,特点如下:保密性好,编码量多,远远大于弹子锁。随机开锁成功率儿乎为零。密码可变。用户可以经常更改密码,防止密码被盗,同时也可以避免因人员的更替而使锁的密级下降。3误码输入保护。
2、当输入密码多次错误时,报警系统自动启动。4.电子密码锁操作简单易行,一学即会。关键字;单片机LED数码管矩阵键盘密码锁AbstractElectronicCodeLockisapasswordinputtluoughthecontrolcucuit,orchip,thuscontrollingtheclosedmechanicalswitchtocompletethelock,closedthetaskofelectronicproducts.Itisofmanytypes,haveasimpleciicuitproducts,butalsothelughercostchip-basedpro
3、ductsNowthewidelyusedelectiomccodelockisaclupatthecore,achievedtluouglipiogianuning.Peiformanceandsafetyhavegreatlyexceededthemechanicallock,thefollowingfeatures:Privacyisgood,codingquantityisfaigieaterthanthesprmglockRandomunlockingsuccessrateisalmostzero.Passwordvariable.Userscanalwayschangethepas
4、sword,topreventpasswordtheft,butalsoavoidsthelockbecauseofstaffturnoverEiSiuanddrawingdownEnoiinputprotection.Whenyouentervourpasswordwrongseveraltimes,thealarmsystemstartedautomatically.E-lockoperationissimple,aschoolthatwill.Keywords;MCULEDdigitaltubematrixkeypadlock1概述1.1引言错误!未定义书签。1.2电子密码锁的背景错误!
5、未定义书签。1.3电子锁设计的意义和本设计的特点错误!未定义书签。错误!未定义书签。2.1系统总设计结构图错误!未定义书签。2.2AT89C51单片机2.2.1引脚介绍.222最小系统错误!未定义书签。错误!未定义书签。错误!未定义书签。2.3键盘模块2.4显示模块2.5开锁模块2.6报警模块错误!未定义书签。错误!未定义书签。错误!未定义书签。错误!未定义书签。3系统的软件设计.3.1系统软件设计思路3.2系统软件设计流程图错误!未定义书签。错误!未定义书签。.错误!未定义书签。4系统的仿真4.1仿真软件介绍错误!未定义书签。Proteus介绍错误!未定义书签。Keiluvision4与Pr
6、oteus联调错误!未定义书签。4.2仿真过程错误!未定义书签。整个软件设计的思路:错误!未定义书签。参考文献错误!未定义书签。错误!未定义书签。附录1系统电路图附录2程序清单错误!未定义书签。mam.c错误!未定义书签。10.C错误!未定义书签。2系统模块电路的设计hmc.c错误!未定义书签。timer.c错误!未定义书签。def.h错误!未定义书签。1概述1.1引言随着社会物质财富的日益增长,如何实现家庭防盗这一问题也变的尤其的突出,而锁自古以來就是把守门户的铁将军,人们对它要求共高,即要安全可靠地防盗,乂要使用方便。目前普遍使用的机械锁结构简单、使用方便、价格便宜。但在使用过程中暴露了很
7、多缺点:机械锁是靠金属制成的钥匙上的不同齿形与锁芯的配合來工作的。所以很多钥匙可以互开,保密性差,安全性低。钥匙一旦丢失,无论谁捡到都可以将锁打开。机械锁的材料大多为黄铜,质地较软容易损坏。机械锁钥匙易于复制,不适于诸如宾馆等公共场所使用。所以机械锁已难以满足当前社会和人们的要求。出于安全、方便的需要。随着人们生活水平的提高,电子密码防盗作为防盗卫士的作用日趋重要。电子密码锁用密码代替钥匙,不但省去了佩戴钥匙的烦恼,也从根本上解决了普通门锁保密性差的缺点。如果釆用6位密码,则密码组合可达到13,每增加1位,密码组合就增加10借。从而提高了密码锁的安全系数。密码锁被广泛应用保险柜、保险箱、文件柜
8、、防磁防火柜、防盗门、银库门、仓库门、车门、民用门等。目前市场上普遍所见的电子密码锁的密码很容易被窥探和多次试探,而丢失密码,使密码锁失去其安全性。该电子密码锁利用单片机作为主控核心,单片机(AT89C51)所具有的特殊功能使得电子密码锁的保密性能大大加强,这样就可以有效的防止多次试探密码的可能性。随着单片机和其它智能芯片的进一步开发防盗锁将实现智能化,这将是锁的安全性能大大提高。本系统实现密码一次输入的提示功能,若密码输入不正确将发出“嘀嘀”的报警声,引起他人警觉。若密码输入正确将发出“叮咚”的门铃声。本系统使用的单片机所具有强大的功能能够实现智能控制用來完成密码的输入、判断和比较从而执行相
9、应的开锁显示或报警等功能。电子密码锁是一种通过密码输入來控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。现在应用较广的电子密码锁是以芯片为核心,通过编程來实现的。其性能和安全性已大大超过了机械锁。其特点如下:保密性好,编码量多,远远大于弹子锁。随机开锁成功率儿乎为零。密码可变,用户可以随时更改密码,防止密码被盗,同时也可以避免因人员的更替而使锁的密级下降。误码输入保护,当输入密码多次错误时,报警系统自动启动。无活动零件,不会磨损,寿命长。使用灵活性好,不像机械锁必须佩带钥匙才能开锁。电子密码锁操作简单易
10、行,一学即会。1.2电子密码锁的背景随着社会科技的进步,锁己发展到了密码锁、磁性锁、电子锁、激光锁、声控锁等等。在传统钥匙的基础上,加了一组或多组密码,不同声音,不同磁场,不同声波,不同光束光波,不同图像。(如指纹、眼底视网膜等)來控制锁的开启。从而大大提高了锁的安全性,使不法之徒无从下手,人们也就能对自身财产安全有了更多的保障。当今安全信息系统应用越來越广泛,特别在保护机密、维护隐私和财产保护方面起到重大作用,而基于电子密码锁的安全系统是其中的组成部分,因此研究它具有重大的现实意义。1.3电子锁设计的意义和本设计的特点单片机,亦称单片微电脑或单片微型计算机。它是把中央处理器(CPU)、随机存
11、取存储器(RAM)、只读存储器(ROM)、输入/输出端口(I/O)等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。计算机的产生加快了人类改造世界的步伐,但是它毕竟体积大。微计算机(单片机)在这种情况下诞生了,它为我们改变了什么?纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC卡、电子宠物等,这些都离不开单片机。以前没有单片机时,这些东西也能做,但是只能使用复杂的模拟电路,然而这样做出來的产品不仅体积大,而且成本高,并且由于长期使用,元器件不断老化,控制的精度
12、自然也会达不到标准。在单片机产生后,我们就将控制这些东西变为智能化了,我们只需要在单片机外围接一点简单的接口电路,核心部分只是由人为的写入程序來完成。这样产品的体积变小了,成本也降低了,长期使用也不会担心精度达不到了,且容易升级改善。电子锁可以在日常生活和现代办公中,住宅与办公室的安全防范、单位的文件档案、财务报表以及一些个人资料的保存等多种场合使用。大大提高了主人物资的安全性,安全可以代替老式机械锁。目前使用的密码锁种类繁多,各具特色。本文从经济实用的角度出发,采用AT89C51单机,研制了一款具有防盗自动报警功能的电子密码锁。该密码锁设计方法合理,简单易行,成本低,符合住宅、办公室用锁要求
13、,具有一定的推广价值。(1)系统设置6位密码,密码通过键盘输入,若密码正确,则将锁打开。(2)密码由用户自己设定,在开锁状态下,用户可自行修改密码。(3)具有自动报警功能,若密码输入错误3次,由蜂鸣器发出报警声,保证了系统的安全性。系统工作时,用户通过按键输入6位密码,单片机将输入密码与设定密码进行比较,若密码正确,则发出开锁信号,将锁打开,系统不报警;若密码不正确,则有相应的指示灯闪动,并要求重新输入密码,重新输入密码的次数不能超过3次,若3次输入的密码都不正确,则发出报警信号。2系统模块电路的设计1系统总设计结构图密码输入电路显示电路密码修改电路AT89C51报警电路时钟电路图2.1系统结
14、构图本设计以AT89C51为主控芯片,主要由以下几个部分组成:复位电路、时钟电路、键盘部分、显示部分、报警部分等组成,下面将对以上几个部分一一介绍。2.2AT89C51单片机2.2.1引脚介绍AT89C51是一个低功耗,高性能CMOS8位单片机,片内含4kBytes的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及AT80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89C51可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89C51具有如下特点:40
15、个引脚,4kBytesFlash片内程序存储器,128bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,片内时钟振荡器。图22AT89C51引脚此外,AT89C51设计和配置了振荡频率可为OHz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。其主要功能特性:兼容MCS-
16、51指令系统32个双向I/O口2个16位可编程定时/计数器全双工UART串行中断口线2个外部中断源中断唤醒省电模式软件设置空闲和省电功能4k可反复擦写(1000次)FlashROM4.5-5.5V工作电压时钟频率0-33MHz128x8bit内部RAM低功耗空闲和省电模式3级加密双数据寄存器指针可以看出AT89C51提供以下标准功能:4K字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个数据指针,两个16位定时器/计数器,一个5向量两级中断结构,一个全双工串行通信口,以及片内振荡器和时钟。同时,AT89C51可降至OHz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲
17、方式时停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式是在RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到一个硬件复位。AT89C51引脚功能说明:VCC:电源电压GND:地POD:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口,作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端口。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。P1口:P1是一
18、个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号校验期间,P1接收低8位地址。P2口:P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流I。在访问8位地址的外部数据存储器(如执行:MOVXRi指令)时,P2口线上的内(也即特殊功能寄存器,在整
19、个访问期间不改变。Flash编程或校验时,P2也接收高位地址和其它控制信号。P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。作输入端口时,被外部拉低的P3口将用上拉电阻输出电流I。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,P3口的第二功能如下表(表2.1)表2.1P3口的第二功能端II功能第二功能端II引脚第二功能RXD(P3.0)串行输入1丨TO(P3.4)定时/计数器0外部输入TXD(P3.1)串行输出11T1(P3.5)定时/计数器1外部
20、输入INTO(P3.2)外中断0WR(P3.6)外部数据存储器写选通INTI(P3.3)外中断1RD(P3.7)外部数据存储器读选通RST:复位输入。当振荡工作时,RST引脚出现两个机器周期上高电平将使单片机复位。ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。即使不再访问外部存储器,ALE仍以时钟振荡频率的1/6输出的正脉冲信号,因此它可对外输出时钟或用于定时目地,要注意的是:当访问外部数据存储器时将跳过一个ALE脉冲。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的DO位置位,可禁止ALE操作。该位置禁位后,只有一条
21、MOVX和MOVC令ALE才会被激活。此外,该引脚伎被微弱拉高,单片机执行外部程序时,应设置ALE无效。PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。当访问外部数据存储器,高有两次有效的PSEN信号。EA/VPP:外部访问允许。欲使CPU访问外部程序存储器(地址OOOOH-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。Flash存储器编程时,该引脚
22、加上+12V的编程电压VPPoXTAL1:振荡器反相放大器及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。2.2.2最小系统VC罕5AT89C5140319181920_4.22UFIKJI12MHZIN414830P30P图2.3单片机最小系统单片机的最小化系统或者称为最小应用系统是指单片机能正常工作所必须的外围元件,是用最少的元件组成的单片机可以工作的系统对51系列单片机來说,最小系统一般应该包括:单片机、晶振电路、复位电路我们采用的是AT89C51芯片,它内部自带4K的FLASH程序存储器,一般情况下,这4K的存储空间足够我们使用,所以我们将AT89C51芯片的第31脚固
23、定接高电平(PCB画板时已经接死),所以我们只用芯片内部的4K程序存储器。单片机的时钟电路有一个12M的晶振和两个30P的小电容组成,它们决定了单片机的工作时间精度为1微秒。复位电路由22UF的电容和1K的电阻及IN4148二极管组成,以前教科书上常推荐用10UF电容和10K电阻组成复位电路,这里我们根据实际经验选用22UF的电容和1K的电阻,其好处是在满足单片机可靠复位的前提下降低了复位引脚的对地阻抗,可以显著增强单片机复位电路的抗干扰能力。二极管的作用是起快速泄放电容电量的功能,满足短时间多次复位都能成功晶体振荡器,简称晶振,其作用在于产生原始的时钟频率,这个频率经过频率发生器的放大或缩小
24、后就成了电脑中各种不同的总线频率。以声卡为例,要实现对模拟信号44.1kHz或48kHz的釆样,频率发生器就必须提供一个44.1kHz或48kHz的时钟频率。如果需要对这两种音频同时支持的话,声卡就需要有两颗晶振。但是现在的娱乐级声卡为了降低成本,通常都采用SCR将输出的釆样频率固定在48kHz,但是SRC会对音质带來损害,而且现在的娱乐级声卡都没有很好地解决这个问题。现在应用最广泛的是石英晶体振荡器。石英晶体振荡器是一种高精度和高稳定度的振荡器,石英晶体振荡器也称石英晶体谐振器,它用来稳定频率和选择频率,是一种可以取代LC谐振回路的晶体谐振元件。石英晶体振荡器广泛的应用在电视机、影碟机、录像
25、机、无线通讯设备、电子钟表、单片机、数字仪器仪表等电子设备中。石英晶体振荡器为数据处理设备产生时钟信号和为特定系统提供基准信号。在单片机中为其提供时钟频率。石英晶体振荡器是利用石英晶体(二氧化硅的结晶体)的压电效应制成的一种谐振器件,它的基本构成大致是:从一块石英晶体上按一定方位角切下薄片(简称为晶片,它可以是正方形、矩形或圆形等),在它的两个对应面上涂敷银层作为电极,在每个电极上各焊一根引线接到管脚上,再加上封装外壳就构成了石英晶体谐振器,简称为石英晶体或晶体、晶振。其产品一般用金属外壳封装,也有用玻璃壳、陶瓷或塑料封装的。只要在晶体振子板极上施加交变电压,就会使晶片产生机械变形振动,此现象
26、即所谓逆压电效应。当外加电压频率等于晶体谐振器的固有频率时,就会发生压电谐振,从而导致机械变形的振幅突然增大。图2.4晶振电路原理图复位电路:由电容串联电阻构成,由图并结合电容电压不能突变的性质,可以知道,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值來决定.典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可以保证可靠的复位.一般教科书推荐C取10u,R取8.2K.当然也有其他取法的,原则就是要让RC组合可以在RST脚上产生不少于2个机周期的高电平.TZ图25复位电路原理图2.3键盘模块由于本设计所用到的按键数量较多而不
27、适合用独立按键式键盘。采用的是矩阵式按键键盘,它由行线和列线组成,也称行列式键盘,按键位于行列的交叉点上,密码锁的密码由键盘输入完成,与独立式按键键盘相比,要节省很多I/O口。本设计中使用的这个4*3键盘不但能完成密码的输入还能作特别功能键使用,比如清空显示功能等。键盘的每个按键功能在程序设计中设置。当确认有按键按下后,下一步就要识别哪一个按键按下。对键的识别通常有两种方法:一种是常用的逐行扫描法;另一种是速度较快的线反转法。首先辨别键盘中有无按键按下,由单片机I/O口向键盘送全扫描字,然后读入行线状态來判断。方法是:向列线输出全扫描字00H,把全部列线置为低电平,然后将行线的电平状态读入累加
28、器A中。如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为1。P2.0P2.1P2.2p2.4123P2.5456P2.6789P2.7CCC0Enter图2.6按键键盘共计数字键10个,功能键2个,用4X3组成09数字键、确认键Enter及修改键CCC,10个数字键用来输入密码,另外2个功能键分别是:CCC、Enter.其中CCC键的功能是当输入密码错误的时候,清除前面己经输入的数据,重新输入。Enter键的功能是确认输入的密码。2.4显示模块图2.7七段数码管七段LED显示器由7个发光二极管组成,其中7个长条形的发光管排列成“日”字形,如上图所示,由七个发光二极管组成的七段显示
29、器。如再加一个贺点形的发光管在显示器的右下角作为显示小数点用,则组成八段LED显示器。它能显示各种数字及部份英文字母。LED显示器有两种不同的形式:一种是8个发光二极管的阳极都连在一起的,称之为共阳LED显示器;另一种是8个发光二极管的阴极都连在起的,称之为共阴LED显不器。如图2.8所不:ABCDEFGH共阳数玛显示器ABCDEFGH、共阴数码见示器图2.8LED数码显示器共阴和共阳结构的LED显示器各笔划段名和安排位置是相同的。当二极管导通时,相应的笔划段发亮,由发亮的笔划段组合而显示的各种字符。8个笔划段hgfedcba对应于一个字节(8位)的D7D6D5D4D3D2DIDO,于是用8位
30、二进制码就可以表示欲显示字符的字形代码。在单片机系统中,通常用LED数码显示器來显示各种数字或符号。由于它具有显示清晰、亮度高、使用电压低、寿命长的特点,因此使用非常广泛。2.5开锁模块本设计所用的开锁部分由电机(Most)来实现,这种电机有两根引线,更换两根引线的极性,电机换向。该驱动电路要求能进行正反转和停止控制。图2.9开锁电路上电时由软件辅助完成初始化,使P1.0为低电平”0”,三极管不导通,若密码输入正确,P1.0输出高电平”1”,三极管导通,电机转动,锁打开。2.6报警模块报警电平由P1.1控制,上电后同样是由软件完成初始化为”状态。在3次输入密码错误的情况下,由P1.1输出高电平
31、,三极管Q1导通,由喇叭报警,蜂鸣器发出连续的响声,约30S。密码错误输入达3次后,由P1.0输出“0”,开锁信号封锁。同时定时器开始计时,30S后才能再次输入密码尝试开锁。.BUZ1AvccBUZZERQ2R2MPS8098GND图2.10报警电路3系统的软件设计3.1系统软件设计思路密码锁的软件设计可分为以下儿个部分:主程序、密码初始化子程序、键盘输入子程序、密码检查子程序、密码错误报警子程序、TO定时中断服务子程序和延时子程序组成。(1)密码锁设计的关键问题是实现密码的输入、清除、更改、开锁等功能:(2)密码输入功能:按下一个数字键,一个“一”就显示在数码管上。(3)密码清除功能:当按下
32、清除键时,清除前面输入的所有值,并清除所有显示。(4)密码更改功能:将输入的值作为新的密码。(5)开锁功能:当按下开锁键,系统将输入与密码进行检查核对,如果正确锁打开,否则不打开。主要的设计过程:第一步,用Proteus进行硬件电路的设计。第二步,用Keil软件进行电子密码锁的程序设计、仿真、软件调试。第三步,用PROTEUS进行模拟软、硬件调试,仿真。2系统软件设计流程图开机开机按ex犍和断密码和断密码输入密码判断密码3?昱输入豹密码锁定延时再次输入諦密码验证密码写入新密码图3.1软件设计流程图4系统的仿真4.1仿真软件介绍L1Proteus介绍由于计算机技术的飞速发展,许多领域都出现了仿真
33、系统,明显促进了各领域科技事业的发展,仿真技术的出现与发展是科技发展的必然结果,是现代科技的关键技术之一,并逐渐成为科技人员的必备技术。Pioteus是英国Labcenter公司研发的多功能EDAoPioteus是模拟电路、数字电路、模数混合电路的设计与仿真平台;更是单片机系统先进的设计与仿真平台。它真正实现了在计算机上完成从原理图与电路设计、电路分析与仿真、单片机代码级调试与仿真、系统测试与功能验证到形成PCB的完整的设计与仿真过程。它得到了越来越多的从事单片机事业的教师、工程技术人员以及众多的大学生和单片机技术爱好者的青睐。Pioteus支持51、PIC、AVR、ARM7等多个系列的单片机
34、芯片,集编辑、编译、仿真调试于一体。它的界面简洁友好,可利用该软件提供的数r种数字/模拟仿真元器件以及丰富的仿真设备,使得在程序调试、系统仿真时不仅能观察到程序执行过程中单片机寄存器和存储器等内容变化,还可从工程的角度直观地看到外围电路工作情况,非常接近工程应用。另外Proteus还能与第三方集成开发环境(如Keil的Vision)进行联合仿真调试,给予开发人员莫大便利。本设计以51单片机构成的99秒马表为例描述基于Pioteus的硬件设计、基于KeilC的软件设计以及它们的联合仿真调试过程。该软件的特点是:(1)集原理图设计、仿真和PCB设计于一体,真正实现从概念到产品的完整开发工具。(2)
35、具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真,是独一无二的支持处理器与外围电路的协同仿真电路设计软件。(3)具有全速、单步、设置断点等多种形式的调试功能。(4)具有各种信号源和电路分析所需的虚拟仪表、是电类教学实验与创新的最侍平台。(5)支持KeilC51uVision4.MTLAB等第三方的软件编译和调试环境。(6)具有强大的原理图到PCB板设计功能,可输出多种格式的电路设计报表。4.1.2Keiluvision4与Proteus联调随着嵌入式系统应用不断扩大,功能不断增强,为了对整个系统及其所操作的部件、装置等资源进行统一协调、指挥和有效控制,使开发人员只专注于应用程
36、序设计,在嵌入式系统中引入操作系统是非常必要的。卩C/OSII是源码公开的实时多任务操作系统,具备足够的稳定性和安全性,特别适合用于中小型嵌入式系统中。MC/OSII的具体介绍和移植过程请见参考文献。Keil公司的KeilpVisioiM,是目前使用最为广泛的开发环境之一。这里介绍在KeilpVisioi】4环境下基于pC/OSII嵌入式操作系统的用户程序设计。设计两个任务:任务1为数码管显示,调用系统延时函数实现;任务2为按键判断,属于中断级任务。数码管显示和按键判断任务之间用信号量实现通信;其中按键任务发出信号量,数码管显示任务负责接收信号量。系统联调:在Proteus硬件电路图和Keil
37、C程序设计完成之后,接着进行联合仿真。此时需要对Proteus和Keil两个软件进行简单的配置,具体配置过程见参考文献刃。同时打开电路仿真图和C工程文件,在Keil中启动调试t4DebugStart/StopDebugSession,并运行DebugGo,此时Pioteus仿真被Keil启动,在Keil和Proteus中都可以观察运行状态。程序运行后,可看到数码管显示情况,当按下按键,数码管显示作相应切换。结语:基于Proteus电路设计、Keil程序设计以及它们联合仿真调试的方法,建立了单片机系统硬件设计、软件设计以及调试的全虚拟环境,使得全部的设计工作基于PC就能完成,显著提高了设计开发效
38、率,降低开发风险,这对嵌入式方案设计无疑是一个很好的思路。42仿真过程整个软件设计的思路:(1)开机,七段数码管数段转动,之后依次显示“HELLO”,然后依次显示“P_”(2)继(1),等待十秒后,数码管再次转动,重新显示“P_”(3)继(1),输入T,显示“E6_”,输入“#”,依次显示“EEP_”,输入三次错误后,显示“EE3”,然后转动n多次并由蜂鸣器报警,再后“HELLOP_”(4)继(1),输入“#”,后数码管显示“J”,之后便不断显示“8”(5)继(4),按“*”,“old”,输入纬”,显示“npl”,“#”,显示Fp2”,护提示“J”,继续显示“8”,修改密码成功(6)继(1),
39、密码输入连续错误三次,蜂鸣器发出持续报警声,并锁定键盘。(7)开关在未正确输入密码时,不起作用,当己经“解锁”时,可以使其返回锁定状态(修改密码时,无提示,可以继续更改)(8)在输入过程中,如果输入一定长度密码后,按“杓,显示“cc”,转动;如果在输入密码时候密码长度为零,则显示“C”,转动。仿真过程如下:图4.1开锁的瞬间开机,七段数码管数段转动,依次显示nor图4.2开机界面当数码管依次显示哽讥”时(如图4.3),可以进行密码的输入,输入完毕按Enter键,若输入正确则锁打开,数码管显示”J”,之后显示闪烁的“8”此时按数字键无效,如下(图4.4),蜂鸣器发出滴答的鸣音:图4.3密码输入提
40、示若开机显示欢迎界面HELLO后,超过20秒而未进行密码的输入,则蜂鸣器发出滴滴滴滴的响声,同时数码管重新显示“HELLO的欢迎界面,以此提示用户输入密码.图4.4(a)密码正确的状态图4.4(b)锁打开后数码管显示若输入密码错误,则锁不能打开,数码管显示”E”(表示enm密码错误)如图4.5,然后依次显示”P提示重新输入密码,并且蜂鸣器响,数码管的显示如下:pmD1R4-XTAL1OrAL2R8TP8EMw姐PZ2ifA10PZAIIP2.WA12PZSA13PZj&AUP2.7/A1SD*ADaO.VAD12TAO2O.WAOSADSDSDG图4.5(a)密码错误的状态D2图4.5(b)密
41、码错误显示若密码输入连续三次错误,则蜂鸣器发出持续鸣音约30秒,数码管依次显示咗”3“,然后数段不停的转动如下图(图4.6),此过程中密码锁锁定,不能进行密码输入。图4.6数码管数段转动修改密码的过程:只有在输入密码正确的情况下才可以进行密码的修改,锁打开后,按CCC键,数码管依次显示表示要输入密码锁的原始密码,按Emer键,输入成功,数码管显示npl,然后输入所要修改的新密码并按Emei键,显示np2,再次输入新密码,无误,数码管显示正确,用一个符号”J”表示,密码修改完成。在没有做毕业设计前觉得毕业设计只是对所学知识的单纯总结,但是通过这次做毕业设计发现自己的看法有点太片面。毕业设计不仅是
42、对前面所学知识的一种检验,而且也是对自己能力的一种提高。通过这次毕业设计使我明白了自己原来知识还比较欠缺。自己要学习的东西还太多,以前老是觉得自己什么东西都会,什么东西都懂,有点眼高手低。通过这次课程设计,我才明白学习是一个长期积累的过程,在以后的工作、生活中都应该不断的学习,努力提高自己知识和综合素质。实践是检验真理的唯一标准,当然也是检验学习成果的标准。在经过一段时间的学习之后,我们需要了解自己的所学应该如何应用在实践中,因为任何知识都源于实践,归于实践,所以要将所学的知识在实践中來检验。不管学会的还是学不会的的确觉得困难比较多,真是万事开头难,不知道如何入手。最后终于做完了有种如释重负的
43、感觉。此外,还得出一个结论:知识必须通过应用才能实现其价值!有些东西以为学会了,但真正到用的时候才发现是两回事,所以我认为只有到真正会用的时候才是真的学会了。程序的设计思想的精巧的重要性,是不管怎么说都不为过的,好的设计可以让大家很快的明白你的思想,而且很方便的來实现它。良好的编程习惯,它可以使你的程序很方便的被别人阅读,也很方便的被更改,所以可以的话,尽可能多的写出注释,没有人会闲你写的太多。在设计过程中,通过查阅大量有关资料,与同学交流经验和自学,并向老师请教等方式,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。在整个设计中我懂得了许多东西,也培养了我独立工作的能力,树立了对自己
44、工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。而且大大提高了动手的能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。虽然这个设计做的也不太好,但是在设计过程中所学到的东西是这次毕业设计的最大收获和财富,使我终身受益。对我而言,知识上的收获重要,精神上的丰收更加可喜。让我知道了学无止境的道理。我们每一个人永远不能满足于现有的成就,人生就像在爬山,一座山峰的后面还有更高的山峰在等着你。挫折是一份财富,经历是一份拥有。参考文献参考文献李朝青单片机原理及接II技术(简明修订版)M.北京:北京航空航天人学出版社,1998彭为.单片机典型系统设计实例精讲.北京:电子工业出版社,20
45、06.5公茂法.单片机人机接II实例集M.北京:北京航空航天人学出版社,1998.2康华光.电子技术基础数字部分M.北京:高等教育出版社,2001.1彭介华.电子技术课程设计指导M.北京:高等教育出版社,2001.2窦振中.单片机外閑器件实用手册存储器分册.北京:北京航空航天人学出版社,2004.3KundurPPowerSystemStabilityandControl.NewYork:MCGraw-Mil,1994杨将新,李华军,刘到骏等.单片机程序设计及应用(从基础到实践)J.电子工业出版社,2006StevenF.Barrett.DaneilJ.Pack.EmbeddedSystemM
46、.北京:电子工业出版社,2006黄智伟全国犬学生电子设计竞赛训练教程M北京:电子工业出版社,2005附录1系统电路VCCVCC基于单片机的智能密码锁设计voidchangePasswoid();voidcheckQ;voidcheck2();externvoidbeep();externvoiddelay(unsignedintx)externvoiddisplay(cliaidis);externchargetch();externcharinput(char*buf);externcharkeyscan();externvoidopenQ;附录2程序清单mainQinit()changep
47、asswoidOcheck()check2()close();主函数初始化修改密码验证验证新密码关闭锁中断服务main.c#mclude#iiicludechaipasswordMAX_LENGTH=1,1,1,1,1,1,0,0,0,0.0,0,0,0,0,0,0,0;保存密码charbufferMAX_LENGTH;/记录输入串charbuffei2MAX_LENGTH;charkeycode=0;当前输入键盘码charstatus=0;状态0:关闭,1:开启或者类型为sbitchartmp,i,j;临时变量chaitime=0;记录密码次数externvoidioll(unsignedc
48、harx);externvoidsavHello();displav(DISPLAY_P);externvoidsavHello();displav(DISPLAY_P);*/取消主函数tmp=mput(buffei);if(tmp=3)/显示超过输入次数display(DISPLAY_3);Pl_l=l;P1_1=O;sayHello();tune=0;elsedisplav(DISPLAY_8);keycode=keyscanQ;if(kevcode=CCC)cliangePassword();/修改密码1011(50);EA=1;/*/初始化函数开启中断voidlint(void)/TO
49、DO:输入初始化密码Pl_0=0;Pl_l=0;EA=0;/EXO=1;TMOD=OxOi;PTO=1;PX0=1;ETO=1;TRO=0;sayHelloQ;/*/修改密码voidchangePasswoidOwlule(l)/显示输入密码Pdisplay(DISPLAY_o);display(DISPLAYJL);display(DISPLAY_d);mput(buffer);if(tmp=1)if(tmp=0)/取消更改密码或者超时display(DISPLAY_n);display(DISPLAY_P);letuin;display(DISPLAY_1);cheeky;tmp=liip
50、ut(buffei);if(tmp=1)if(tmp=0)/取消更改密码break;或者超时elseletinn;/显示密码错误/显示再次输入新密码display(DISPLAY_E);display(DISPLAY_n);display(DISPLAY_P);display(DISPLAY_2);while(l)tmp=input(buffei-2);if(tmp=0)/取消更改密码或者超时retuin;显示输入新密码check2();/*/foi(i=0;iMAX_LENGTH;i+)passwordi=bufferi;/显示修改成功display(DIS_RIGHT);display(D
51、IS_RIGHT);break;else/显示修改失败display(DISPLAY_E);contmue;密码验证及重复验证两个功能可以合一不过编译会不通过,可能是keilc的限制吧voidcheck()i=0;tmp=l;默认相同密码正确while(iMAX_LENGTH)if(buffeii-password1)!=0)tmp=0;break;i卄;voidcheck2()i=0;tmp=1;默认相同密码正确while(KMAX_LENGTH)if(bufferi-buffei2i)!=0)tmp=0;break;i卄;中断服务,关闭锁时产生使密码锁状态改为关闭状态voidcloseQi
52、ntemipt0/INTOEXO=0;status=0;*ioc/*#mclude#includeudef.hn*/chaiLow=0 x0E,0 x0D,0 x0B,0 x07;charHigh=0 xl0,0 x20,0 x40,0 x80;externchaitmp,i,j;externchaitime;externintticks;externvoiddelay(unsignedintx);externvoidbeep();externvoidsavHello();externvoidstaitTunei();externvoidstopTunei();voiddisplay(clia
53、rdis);voidroll(unsignedchaix);键盘扫描程序高四位用来扫描行低四位用來扫描列返回11212个键值chaikevscan()for(i=0;i4;i+)fo旳=0;j4000)/20sreturn-1;while(keyscaii()0);ietuinch;/*/输入子程序返回-1:超时0:取消6-18:输入长度18:溢出ietuin0;/*/获取一个字符返回-1:超时112chargetch()charch;staitTimerQ;while(l)ch=keyscanQ;if(ch0)charmput_pt=0;指针归位while(input_pt=6)/ENTER
54、输入在索引为6及以上的位置上break;elsecontinue;elseif(bufmput_pt=-1)/显小超时roll(l);beep();delay(4000);beep();delav(4000);beepQ;roll(2);beepQ;roll(2);delav(4000);beepQ;sayHello();letuni0;elsetune=0;超时错误输入次数清零letuni-1;elseif(bufmput_pt=CCC)显示取消input_pt=0;显刀l清空当前输入display(DISPLAY_c);beepQ;delay(4000);beepQ;continue;display(DISPLAY_C);beepQ;delay(4000);beepQ;mput_pt+;P0=Oxff;delav(10000);PO=dis;delav(20000);/显?中线beep();display(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/PASPSF 002-2024校家社协同育人体系下科学教育实施指南
- 妇产科医院环境清洁与消毒知识考试试题及答案
- 乙苯装置操作工安全文明测试考核试卷含答案
- 玻璃釉印工常识水平考核试卷含答案
- 模型开发师安全实操强化考核试卷含答案
- 化学镀膜工测试验证竞赛考核试卷含答案
- 家具设计师岗前记录考核试卷含答案
- 污水处理工安全知识宣贯水平考核试卷含答案
- 机制砂石骨料生产工岗前实践综合技能考核试卷含答案
- 铸轧机操作工岗后强化考核试卷含答案
- 2026年专业技术人员继续教育公需科目-智慧城市历年参考题库含答案解析
- 湖南省2027届高三九校联盟第一次联考语文试卷(含答案及解析)
- 2026年广东中考英语考试大纲
- 2026年上海高考英语(秋考)完整真题(考生回忆版)+ 参考答案与解析
- 高中120个文言实词+18个文言虚词
- 广东广州市2025-2026学年九年级上学期第一次月考化学试题(含答案)
- 初中几何基础习题集含解答
- 消除母婴三病培训课件
- 临床实验(检验、病理)标本采集、储存、运送制度
- 酒店管理心理学
- 司炉工培训课件下载
评论
0/150
提交评论