智能密码锁控制器论文.doc_第1页
智能密码锁控制器论文.doc_第2页
智能密码锁控制器论文.doc_第3页
智能密码锁控制器论文.doc_第4页
智能密码锁控制器论文.doc_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

智能密码锁控制器设计报告智能密码锁控制器-设计报告广东技术师范学院指导老师:刘炽辉作者:张杰建、罗志勇摘 要随着人们生活水平的提高,传统的机械锁由于其构造的简单,被撬开的事件屡见不鲜,电子锁保密性高,能够防止不法分子多次试探密码;性价比高,因此,电子锁受到了广大的亲昵。也使得该项技术有了更好的发展前景。本作品智能密码锁控制器,以低价格高性能的8位单片机为核心,采用人性化的设计,用LCD显示和语音提示双重显示,人机界面友好。另外预留着可扩展通道,可以根据用户的要求进行其他功能的扩展。本系统安全可靠,智能化高,安装方便,是大众型电子锁的首选。本文着重介绍了该系统的软件、硬件设计方法以及测试结果分析。 采用的技术主要有:(1) 语音芯片ISD4002的应用(2) 4X4按键的应用(3) 实时时钟芯片DS1302的应用(4) 存储器AT2408应用(5) LCD显示12864应用。(6) 单片机资源的运用和多机通信技术应用。关键词 电子锁技术、单片微型机、语音芯片ISD4002、LCD液晶显示、存储器应用 l Controller locks many roadAbstract: As living standards improve, the traditional mechanical lock because of its simple structure, was to break open the case of frequent, high-Electronics Security lock, to prevent lawless elements can test the code several times; cost-effective, therefore, the electronic lock by the large numbers of intimacy. The technology also enables a better development prospects. The road works many locks controller to low-cost high-performance 8-bit single-chip microcomputer as the core, the use of user-friendly design, with LCD display and voice prompts dual display, friendly man-machine interface. To set aside an additional channel with scalable, can be carried out in accordance with the requirements of users of the expansion of other functions. The system is safe and reliable, high intelligence, installation convenience, the general public are the first choice for electronic locks. This article focuses on the systems software, hardware design and analysis of test results.The adoption of technique as:(1) the application of voice chip ISD4002 (2) 4X4 Application button (3) real-time clock chip DS1302 Application (4) memory applications AT2408 (5) LCD display 128 64 applications. (6) the use of resources and single-chip multi-machine communication technology applications.Key words: Electronic lock technology, micro-chip, voice chip ISD4002, LCD liquid crystal display, memory applications目 录第一章 前 言20第二章 方案设计与论证20一LCD显示和语音系统20二 实时时钟21三 按键电路22四 储存电路23五 系统原理图24第三章 硬件设计25一 AT89S52单片机硬件结构25二 最小应用系统设计26三 液晶显示LCD128X6427四 语音系统设计28五 4X4按键30六 实时时钟31第四章 软件设计32一 主程序设计32二 ISD4002录音程序39三 LCD显示和语音系统程序设计46四 实时时钟55第五章 系统调试以及测试结果分析和结论56致 谢57参 考 文 献58附部分电路图A59附部分电路图C60附部分电路图C61附部分电路图D6263第一章 前 言随着人们生活水平的提高,传统的机械锁由于其构造的简单,被撬开的事件屡见不鲜,电子锁保密性高,能够防止不法分子多次试探密码;性价比高,因此,电子锁受到了广大的亲昵。也使得该项技术有了更好的发展前景。本作品智能密码锁控制器,以低价格高性能的8位单片机为核心,采用人性化的设计,用LCD显示和语音提示双重显示,人机界面友好。另外预留着可扩展通道,可以根据用户的要求进行其他功能的扩展。本系统安全可靠,智能化高,安装方便,是大众型电子锁的首选本系统采用以低价格高性能的8位单片机AT89S52为核心, AT89S52采用CHOMS工艺,功耗很低,并且价格合适,应用普遍,更是支持了ISP在线下载,易于开发。使用该CPU进行设计具有实际意义。 第二章 方案设计与论证我们结合自身的知识结构和实际情况,得出了几种不同的方案。通过查阅大量的相关资料,调查论证,从可行性、价钱、实用性和安全性等方面综合考虑,终于得出了比较合理、实用、可靠的方案。核心处理器我们采用低位机AT898S52,这类单片机具有在线下载功能,开发容易,并且价格便宜,实用性能高,安全可靠,自身资源基本满足设计要求。但考虑到本系统的设计比较宠大,一片这样的8位单片机资源远远不够,所以系统设计过程中采用了多片单片机通过并口和串口结合通信的方法。显示方面我们采用了12864LCD显示,语音方面我们采用了ISD公司的串口语音芯片,还有其它各种功能的传感器匀采用了方便实用的类型,大大减轻了设计难度。一LCD显示和语音系统 考虑到本系统显示的内容比较多并且涉及到中文内容的显示,为了节省单片机内部空间,我们选用带中文字库的12864LCD显示器。另外考虑到8位单片机端口的缺乏,我们最终选取了串并口兼有的LCD显示器。语音系统方面,本系统要求有:对检测到的状及时读取,超速提醒,数据的实时读取,系统的操作提示。读取的内容比较大,并且要求分段并且段数也有一定的要求。所以语音系统也有三个方案可选取。方案一:传统的录放音装置方案二:并口方式的可分段语音芯片方案三:串口方式的可分段语音芯片传统的录放音装置,一来不可以分段,二来分段是固定的,不利于开发。实现起来硬件开销大大加大。就本系统而言基本不作考虑。而采用分段的语音芯片,不管是并口还是串口方式,其基本工作原理和机制都是一样的。而此类芯片不管从普遍性还是技术的成熟度和开放性,首选就是ISD公司的语音芯片系列。本系统设计中我们采用串口试的的语音芯片进行设计,这样可以节省8条以上的I/O。这对8位单片机来说是一个很大的节省。然而硬件的节省必定会加大软件的开销,并且技术方面,串口语音芯片技术公开性和成熟度远不如并口的芯片。但从资源利用加上并口的芯片大多已停产等方面考虑,我们还是决定克报程序方面的困难采用串口的芯片。并且采用长度为2分钟的ISD4002,基本满足上面要求。ISD4002系列工作电压3V,单片录放时间2分钟,音质好,适用于移动电话及其他便携式电子产品中。芯片采用CMOS技术,内含振荡器、防混淆滤波器、平滑滤波器、音频放大器、自动静噪及高密度多电平闪烁存贮陈列。芯片设计是基于所有操作必须由微控制器控制,操作命令可通过串行通信接口(SPI或Microwire)送入。芯片采用多电平直接模拟量存储技术, 每个采样值直接存贮在片内闪烁存贮器中,因此能够非常真实、自然地再现语音、音乐、音调和效果声,避免了一般固体录音电路因量化和压缩造成的量化噪声和金属声。采样频率可为 4.0,5.3,6.4,8.0kHz,频率越低,录放时间越长,而音质则有所下降,片内信息存于闪烁存贮器中,可在断电情况下保存100年(典型值),反复录音10万次。SPI(Serial Peripheral Interface,串行外设接口)传输协议说明: 1、所有串行数据传输从SS 端下降沿开始。SS 端在传送过程中应一直保持低电平,在指令间为高电平; 2、时钟信号上升沿时锁存输入数据,时钟信号下降沿时输出数据;3、录/放音操作起始于SS 变低,并给 33000器件输入操作码和地址(见表1); 4、操作码有五位,地址码十一位。目前器件地址只要十位,而第十一位是为将来作扩展用的。为了明了 起见, “X”表示任意; 5、每个操作(包括信息快速检索)结束,出现EOM标志或溢出时,将产生一次中断。当下一个SPI周期开 始时,此 中断被清除; 6、中断数据从33000器件的MISO端输出的同时,控制码及地址信号也从MOSI端输入。读出中断数据和 启动一个新的操作可在同一个SPI周期内完成; 7、运行位(RUN)置1时启动操作,置0时结束操作; 8、所有操作都在SS 端上升沿开始执行。二 实时时钟系统时钟的实现可有二种方案方案一:利用单片机内部定时或延时程序实现方案二:采用实时时钟芯片不管是采用单片机内部资料定时或延时方式都会加强程序的复杂度,浪费了宝贵的资源。同时准确度也很难达到要求。所以我们直接采用了实时时钟芯片DS1302。DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个318的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。 DS1302 的基本组成和工作原理管脚描述X1 X2 32.768KHz 晶振管脚GND 地RST 复位脚I/O 数据输入/输出引脚SCLK 串行时钟Vcc1,Vcc2 电源供电管脚DS1302 串行时钟芯片8 脚DIPDS1302S 串行时钟芯片8 脚SOIC 200milDS1302Z 串行时钟芯片8 脚SOIC 150mil DS1302 内部寄存器CH: 时钟停止位寄存器2 的第7 位12/24 小时标志CH=0 振荡器工作允许bit7=1,12 小时模式CH=1 振荡器停止bit7=0,24 小时模式WP: 写保护位寄存器2 的第5 位:AM/PM 定义WP=0 寄存器数据能够写入 AP=1 下午模式WP=1 寄存器数据不能写入 AP=0 上午模式TCS: 涓流充电选择 DS: 二极管选择位TCS=1010 使能涓流充电 DS=01 选择一个二极管TCS=其它 禁止涓流充电 DS=10 选择两个二极管DS=00 或11, 即使TCS=1010, 充电功能也被禁止电路连接图:三 按键电路方案一:利用单片机IO口作独立按键方案二:采用4X4矩阵扫描按键 键盘是单片机系统中一个很重要的部件,是实现人-机接口常用的器件通过它人们可以向机算机输入数据,传送命令,控制CPU的运行,以实现特定的功能。为了节省单片机的IO口资源,本系统采用4X4矩阵按键,通过单片机的不断扫描来识别按键。通过按键实现对单片机的数据输入,用于功能选择,输入密码和修改密码。 以下是电路图和按键在实物中的功能作用: 四 储存电路 方案一:单片机内部储存 方案二:外部储存器 单片机内部储存,在断电后数据会回复到初始状态,所以用于保存密码是行不通的,为了系统能在掉电后数据不掉失,这里采用了外部储存芯片AT24C02掉电存储单元的作用是在电源断开的时候,存储当前设定的密码数据。AT24C02是ATMEL公司的2KB字节的电可擦除存储芯片,采用两线串行的总线和单片机通讯,电压最低可以到2.5V,额定电流为1mA,静态电流10Ua(5.5V),芯片内的资料可以在断电的情况下保存40年以上,而且采用8脚的DIP封装,使用方便。 为了保密各组密码数据都是存放在外部储存器中,并且在放的的时候会经过一个简单的加密算法,再放到内存单元中,这样就使一组数字密码变成一组数据存于内存中,就算打存储芯片拔去,也很难译出内在的密码数据。 以下是储存部分的电路:五 系统原理图综上所要述,得出系统原理图。本系统从总体上可以分为三个模块,分别由各自的单片机控制系统控制。主机 实为总控制单片机。它除了处理各种传感器传送过来的信息外,还汇总另外两个单片机传输过来的信息,再进行逻辑的组合运用。各单片机之间通过并串又重方式进行了组合。从机主要用来控制语音芯片相应程序执行。它的控制信号来之其它两个单片机采集到的信号。第三章 硬件设计一个单片机应用系统的硬件电路设计包含有两部分内容:一是系统扩展,即单片机内部的功能单元,如ROMRAMI/O口定时/记数器中断系统等能量不能满足应用系统的要求时,必须在片外进行扩展,选择适当的芯片,设计相应的电路。二是系统配置,既按照系统功能要求配置外围设备,如键盘显示器A/DD/A转换器、各类传感器和采集到的信息等,要设计合适的接口电路。一 AT89S52单片机硬件结构AT89S52单片机是把那些作为控制应用所必需的基本内容都集成在一个尺寸有限的集成电路芯片上2。如果按功能划分,它由如下功能部件组成,即微处理器、数据存储器、程序存储器、并行I/O口、串行口、定时器/计数器、中断系统及特殊功能寄存器。它们都是通过片内单一总线连接而成,其基本结构依旧是CPU加上外围芯片的传统结构模式。但对各种功能部件的控制是采用特殊功能寄存器的集中控制方式。1 微处理器该单片机中有一个8位的微处理器,与通用的微处理器基本相同,同样包括了运算器和控制器两大部分,只是增加了面向控制的处理功能,不仅可处理数据,还可以进行位变量的处理。2 数据存储器片内为256个字节,片外最多可外扩至64k字节,用来存储程序在运行期间的工作变量、运算的中间结果、数据暂存和缓冲、标志位等,所以称为数据存储器。3 程序存储器由于受集成度限制,片内只读存储器一般容量较小AT89S52为8K,如果片内的只读存储器的容量不够,则需用扩展片外的只读存储器,片外最多可外扩至64k字节。4 中断系统具有5个中断源,2级中断优先权。5 定时器/计数器片内有3个16位的定时器/计数器, 具有四种工作方式。6 串行口1个全双工的串行口,具有四种工作方式。可用来进行串行通讯,扩展并行I/O口,甚至与多个单片机相连构成多机系统,从而使单片机的功能更强且应用更广。7 P1口、P2口、P3口、P4口为4个并行8位I/O口。8 特殊功能寄存器共有21个,用于对片内的个功能的部件进行管理、控制、监视。实际上是一些控制寄存器和状态寄存器,是一个具有特殊功能的RAM区。由上可见, 51系列单片机的硬件结构具有功能部件种类全,功能强等特点。特别值得一提的是该单片机CPU中的位处理器,它实际上是一个完整的1位微计算机,这个一位微计算机有自己的CPU、位寄存器、I/O口和指令集。1位机在开关决策、逻辑电路仿真、过程控制方面非常有效;而8位机在数据采集,运算处理方面有明显的长处。MCS-51单片机中8位机和1位机的硬件资源复合在一起,二者相辅相承,它是单片机技术上的一个突破,这也是MCS-51单片机在设计的精美之处。二 最小应用系统设计AT89S52是片内有ROM/EPROM的单片机,因此,这种芯片构成的最小系统简单可靠。用AT单片机构成最小应用系统时,只要将单片机接上时钟电路和复位电路即可,如图3.1 AT89S52单片机最小系统所示。由于集成度的限制,最小应用系统只能用作一些小型的控制单元。其应用特点:(1) 有可供用户使用的大量I/O口线。(2) 内部存储器容量有限。(3) 应用系统开发具有特殊性。图3-2-1 51系列单片机最小系统1、时钟电路AT89S52虽然有内部振荡电路,但要形成时钟,必须外部附加电路。AT89S52单片机的时钟产生方法有两种。内部时钟方式和外部时钟方式。本设计采用内部时钟方式,利用芯片内部的振荡电路,在XTAL1、XTAL2引脚上外接定时元件,内部的振荡电路便产生自激振荡。本设计采用最常用的内部时钟方式,即用外接晶体和电容组成的并联谐振回路。振荡晶体可在1.2MHZ到12MHZ之间选择。电容值无严格要求,但电容取值对振荡频率输出的稳定性、大小、振荡电路起振速度有少许影响,CX1、CX2可在20pF到100pF之间取值,但在60pF到70pF时振荡器有较高的频率稳定性。所以本设计中,振荡晶体选择6MHZ,电容选择65pF。2、复位电路AT89S52的复位是由外部的复位电路来实现的。复位引脚RST通过一个斯密特触发器用来抑制噪声,在每个机器周期的S5P2,斯密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。复位电路通常采用上电自动复位和按钮复位两种方式。最简单的上电自动复位电路中上电自动复位是通过外部复位电路的电容充电来实现的。只要Vcc的上升时间不超过1ms,就可以实现自动上电复位。时钟频率用6MHZ时C取22uF,R取1K。除了上电复位外,有时还需要按键手动复位。本设计就是用的按键手动复位。按键手动复位有电平方式和脉冲方式两种。其中电平复位是通过RST端经电阻与电源Vcc接通而实现的。按键手动复位电路见图3.2。时钟频率选用6MHZ时,C取22uF,Rs取200,RK取1K。AT89S52AAT89 图3-2-2 AT89S52复位电路三 液晶显示LCD128X64本系统采用液晶显示模块是12864 点阵的汉字图形型液晶显示模块,可显示汉字及图形,内置国标GB2312 码简体中文字库(16X16 点阵)、128 个字符(8X16 点阵)及64X256 点阵显示RAM(GDRAM)。可与CPU 直接接口,提供两种界面来连接微处理机:8-位并行及串行两种连接方式。具有多种功能:光标显示、画面移位、睡眠模式等。该部分电路图如下所示: 四 语音系统设计语音系统方面,本系统实现的功能有:对检测到的状及时读取,超速提醒,数据的实时读取,系统的操作提示。读取的内容比较大,并且要求分段并且段数也有一定的要求。我们采用ISD4002芯片。ISD4002芯片的引脚图如下:图3-6-2 ISD4002引脚图引脚描述如下:电源:(VCCA,VCCD) 为使噪声最小,芯片的模拟和数字电路使用不同的电源总线,并且分别引到外封装的不同管脚上,模拟和数字电源端最好分别走线,尽可能在靠近供电端处相连,而去耦电容应尽量靠近器件。地线:(VSSA,VSSD) 芯片内部的模拟和数字电路也使用不同的地线。同相模拟输入(ANA IN+) 这是录音信号的同相输入端。输入放大器可用单端或差分驱动。单端输入时,信号由耦合电容输入,最大幅度为峰峰值32mV,耦合电容和本端的3K电阻输入阻抗决定了芯片频带的低端截止频率。差分驱动时,信号最大幅度为峰峰值16mV,为ISD33000系列相同。反相模拟输入(ANA IN-) 差分驱动时,这是录音信号的反相输入端。信号通过耦合电容输入,最大幅度为峰峰值16mV音频输出(AUD OUT) 提供音频输出,可驱动5K的负载。片选(SS) 此端为低,即向该ISD4004芯片发送指令,两条指令之间为高电平。串行输入(MOSI) 此端为串行输入端,主控制器应在串行时钟上升沿之前半个周期将数据放到本端,供ISD输入。串行输出(MISO) ISD的串行输出端。ISD未选中时,本端呈高阻态。串行时钟(SCLK) ISD的时钟输入端,由主控制器产生,用于同步MOSI和MISO的数据传输。数据在SCLK上升沿锁存到ISD,在下降沿移出ISD。中断(/INT) 本端为漏极开路输出。ISD在任何操作(包括快进)中检测到EOM或OVF时,本端变低并保持。中断状态在下一个SPI周期开始时清除。中断状态也可用RINT指令读取。OVF标志-指示ISD的录、放操作已到达存储器的未尾。EOM标志-只在放音中检测到内部的EOM标志时,此状态位才置1。行地址时钟(RAC) 漏极开路输出。每个RAC周期表示ISD存储器的操作进行了一行(ISD4004系列中的存贮器共2400行)。该信号175ms保持高电平,低电平为25ms。快进模式下,RAC的218.75s是高电平,31.25s为低电平。该端可用于存储管理技术。200ms25ms图3-6-3行地址时钟时序图外部时钟(XCLK) 本端内部有下拉元件。芯片内部的采样时钟在出厂前已调校,误差在 +1%内。商业级芯片在整个温度和电压范围内, 频率变化在+2.25%内。工业级芯片在整个温度和电压范围内,频率变化在-6/+4%内,此时建议使用稳压电源。若要求更高精度,可从本端输入外部时钟(如前表所列)。由于内部的防混淆及平滑滤波器已设定,故上述推荐的时钟频率不应改变。输入时钟的占空比无关紧要,因内部首先进行了分频。在不外接地时钟时,此端必须接地。自动静噪(AMCAP) 当录音信号电平下降到内部设定的某一阈值以下时,自动静噪功能使信号衰弱,这样有助于养活无信号(静音)时的噪声。通常本端对地接1mF的电容,构成内部信号电平峰值检测电路的一部分。检出的峰值电平与内部设定的阈值作比较,决定自动静噪功能的翻转点。大信号时,自动静噪电路不衰减,静音时衰减6dB。1mF的电容也影响自动静噪电路对信号幅度的响应速度。本端接VCCA则禁止自动静噪。单片机和ISD4002的连接线路比较简单。下图为单片机控制ISD4002录放音系统的电路图。图3-6-3 ISD4002语音系统部分电路图五 4X4按键单片机系统中,若使按键较多时,通常采用矩阵式(也称行列式)键盘。1矩阵式键盘的结构及原理矩阵式键盘由行线和列线组成,按键位于行、列线的交叉点上,其结构如下图所示。 由图可知,一个44的行、列结构可以构成一个含有16个按键的键盘,显然,在按键数量较多时,矩阵式键盘较之独立式按键键盘要节省很多I/O口。矩阵式键盘中,行、列线分别连接到按键开关的两端,行线通过上拉电阻接到5V上。当无键按下时,行线处于高电平状态;当有键按下时,行、列线将导通,此时,行线电平将由与此行线相连的列线电平决定。这是识别按键是否按下的关键。然而,矩阵键盘中的行线、列线和多个键相连,各按键按下与否均影响该键所在行线和列线的电平,各按键间将相互影响,因此,必须将行线、列线信号配合起来作适当处理,才能确定闭合键的位置。2矩阵式键盘按键的识别识别按键的方法很多,其中,最常见的方法是扫描法。按键按下时,与此键相连的行线与列线导通,行线在无键按下时处在高电平,显然,如果让所有的列线也处在高电平,那么,按键按下与否不会引起行线电平的变化,因此,必须使所有列线处在低电平,只有这样,当有键按下时,该键所在的行电平才会由高电平变为低电平。CPU根据行电平的变化,便能判定相应的行有键按下。3键盘的编码对于独立式按键键盘,因按键数量少,可根据实际需要灵活编码。对于矩阵式键盘,按键的位置由行号和列号唯一确定,因此可分别对行号和列号进行二进制编码,然后将两值合成一个字节,高4位是行号,低4位是列号。采用上述编码对于不同行的键离散性较大,不利于散转指令对按键进行处理。因此,可采用依次排列键号的方式对安排进行编码。以上图中的44键盘为例,可将键号编码为:01H、02H、03H0EH、0FH、10H等16个键号。编码相互转换可通过计算或查表的方法实现。六 实时时钟系统的时钟显示我们直接采用了实时时钟芯片DS1302。DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个318的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。DS1302和单片机的连接也很简单采是用SPI方式。电路图如下所示:第四章 软件设计系统软件设计说明在进行单片机控制系统设计时,除了系统硬件设计外,大量的工作就是如何根据每个元器件的作用和担任的角色以及在系统中的逻辑关系结合实际需要设计应用程序。因此,软件设计在单片机控制系统设计中占重要地位。对于本系统,软件和硬件一样,都很重要,甚至比硬件设计难度还要高得多。在单片机控制系统中,程序的大体上可分为数据处理、过程控制两个基本类型。数据处理包括:数据的采集、数字滤波、标度变换等。过程控制程序主要是使单片机按一定的方法进行计算,然后再输出,进行显示等以达到设计要求。为了完成上述任务,在进行软件设计时,通常把整个过程分成若干个部分,每一部分叫做一个模块。所谓“模块”,实质上就是所完成一定功能,相对独立的程序段,这种程序设计方法叫模块程序设计法。模块程序设计法的主要优点是:1、 单个模块比起一个完整的程序易编写及调试;2、 模块可以共存,一个模块可以被多个任务在不同条件下调用;3、 模块程序允许设计者分割任务和利用已有程序,为设计者提供方便。本系统中我们采用多机协作控制,客观上要求程序实现模块化,另外为了组员之间的分工和溶合,同一个单片机内部的程序也采用了模块化编写,大大加强了程序的融合和可读性。本系统软件采用模块化结构,包括主机逻辑控制程序防盗短信、电话收到控制程序、显示和语音控制程序。各个传感器之间更是采用了模块化设计,任何一方面的传感器出现问题也不会影响到其传感器的动作。一 主程序设计 主程序的程序主要包括对输入的按键、各个传感器和防盗系统传输进来的数据进行协调处理,以便输出显示,语音提示等功能,进行人机交换。由于程序比较长,这里只给出它的关键部分和流程图。/*以下是修改密码散转程序*/void alter_key() uchar a=0,b=0,i,g=0;writeCmd(0x01); /清屏 isd_out(3);/请输入高级密码dislcd12864(0,0, );dislcd12864(0,1,密码:);dislcd12864(0,3,返回-按Mu); dislcd12864(0,2,10确定 11删除);dislcd12864_delay(0,0,输入高级密码);while(1)i=KEYcom(); isd_out(0);/关语音 if(i=0&i=9&g8) ion1_keyg+=i; if(g=1)dislcd12864(3,1,* ); if(g=2)dislcd12864(3,1,*); if(g=3)dislcd12864(3,1,*); if(g=4)dislcd12864(3,1,*); if(g=5)dislcd12864(3,1,*); if(g=6)dislcd12864(3,1,*); if(g=7)dislcd12864(3,1,*); if(g=8)dislcd12864(3,1,*); buzzer(400); if(i=11) /删除 buzzer(400); dislcd12864(3,1, );/去掉* for(g=0;g8;g+) ion1_keyg=0; g=0; if(g=8&i=10) /确定 buzzer(400); for(a=0;a8;a+) if(ion1_keya!=rd_24c01(31+a) /高级密码输入错误返回 writeCmd(0x01); /清屏 isd_out(5);/密码输入错误 dislcd12864(0,0,高级密码输入错误);dislcd12864_delay(0,1,高级密码输入错误);delay1MS(1000); isd_out(0);/关语音 delay1MS(1000);b=1;break; if(a=8) writeCmd(0x01); /清屏 isd_out(7);/请选择要修改的代号dislcd12864(0,0, ); dislcd12864(0,1,一至五路 按1-5); dislcd12864(0,2,高级密码-按0); dislcd12864(0,3,返回-按Mu);dislcd12864_delay(0,0,选择要修改的); while(1) isd_out(0); /关语音 i=KEYcom(); if(i=0)buzzer(400);input_two_h_key();b=1; if(i=1)buzzer(400);input_two_key(1);b=1; if(i=2)buzzer(400);input_two_key(2);b=1; if(i=3)buzzer(400);input_two_key(3);b=1; if(i=4)buzzer(400);input_two_key(4);b=1; if(i=5)buzzer(400);input_two_key(5);b=1; if(b=1)break; if(i=12)break; if(b=1)b=0;writeCmd(0x01);buzzer(200);buzzer(200); break;if(i=12)break; /*第一路*/void inkey1() writeCmd(0x01); /清屏 Lu_key=1; put_inkey(); if(com_KEY=1) key_led(1);open_time1=20; else key_led(0); /*第二路*/void inkey2() writeCmd(0x01); /清屏 Lu_key=2; put_inkey(); if(com_KEY=2) key_led(2);open_time2=20; else key_led(0);/*第三路*/void inkey3() writeCmd(0x01); /清屏 Lu_key=3; put_inkey(); if(com_KEY=3) key_led(3);open_time3=20; else key_led(0);/*第四路*/void inkey4() writeCmd(0x01); /清屏 Lu_key=4; put_inkey(); if(com_KEY=4) key_led(4);open_time4=20; else key_led(0);/*第五路*/void inkey5() writeCmd(0x01); /清屏 Lu_key=5; put_inkey(); if(com_KEY=5) key_led(5);open_time5=20; else key_led(0);/*以下是菜单程序散转*/void zd_choose() uchar i,j=1; zd_time=200; writeCmd(0x01); /清屏 while(1) i=KEYcom(); if(j=0)isd_out(0); /关语音 if(j=1) isd_out(2); /请选择菜单dislcd12864(0,0, ); dislcd12864(0,1,一至五路 按1-5); dislcd12864(0,2,修改密码-按0); dislcd12864(0,3,返回-按Mu); dislcd12864_delay(0,0,选择菜单); j-; switch(i) case 1: buzzer(400); inkey1(); zd_time=0; break; /第一路 case 2: buzzer(400); inkey2(); zd_time=0; break; /第二路 case 3: buzzer(400); inkey3(); zd_time=0; break; /第三路 case 4: buzzer(400); inkey4(); zd_time=0; break; /第四路 case 5: buzzer(400); inkey5(); zd_time=0; break; /第五路 case 0: buzzer(400); alter_key();i=12; zd_time=0; break; /修改密码 if(i=12)zd_time=0;buzzer(400); if(zd_time=0)break; writeCmd(0x01);/清除LCD的显示内容 /*计数器初始化*/void init(void) TMOD=0x01; TH0=-(50000/256); TL0=-(50000%256); ET0=1; TR0=1; EA=1;/*计数器0 50ms发生器*/void time0(void) interrupt 1 /50ms TH0=-(50000/256); TL0=-(50000%256);if(key_time!=0)key_time-;if(open_time1!=0)open_time1-;if(open_time2!=0)open_time2-;if(open_time3!=0)open_time3-;if(open_time4!=0)open_time4-;if(open_time5!=0)open_time5-;if(zd_time!=0)zd_time-; /以下是关锁 if(Lu_LED1=0&open_time1=0)key_led(0); if(Lu_LED2=0&open_time2=0)key_led(0);if(Lu_LED3=0&open_time3=0)key_led(0);if(Lu_LED4=0&open_time4=0)key_led(0);if(Lu_LED5=0&open_time5=0)key_led(0);/*时间显示*/void time_out() init_time(); /时间扫描 dislcd12864(0,0,智能锁的密码控制); dislcd12864(0,1,20); /0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论