声控电子锁设计(DOC33页).docx
声控电子锁设计摘要 随着科技的发展与进步,人们的生活习惯也逐渐受到新的科技技术的影响,而逐渐发生改变。锁具作为生活中最常用的设备之一,经过了几百年的发展,其功能未发生重大变化,但其结构设计随着科技的进步而进步。本设计提出了一种声控电子锁的设计,该设计利用声音作为控制锁具开关的钥匙,实现了免钥匙开锁功能,方便人们的出行。本次设计使用声音 传感器模块与单片机设计,声音传感器使用驻极体话筒与相关放大电路的设计,单片机采用速度较快的Atmel的AVR系列单片机,实现了对整个锁具的控制功能。本次设计将对整个系统的硬件单元与软件程序进行设计,硬件包括中央控制电路的设计,显示单元设计,声音识别与传感系统的设计以及相关执行单元的设计。而对软件程序的设计包括对显示程序的设计,对声音识别控制程序的设计等。系统的软件程序与硬件系统相互配合共同完成系统地工作,实现声音控制的功能。该声控电子锁设计能够实现声音控制开启,替代目前的机械锁设计,为未来的锁具实现形式之一。关键字:声控;电子锁;AVR;传感器AbstractWith the development and progress of science and technology, people's living habits are gradually affected by new technology and technology, and gradually change. As one of the most commonly used devices in daily life, the lock has not changed significantly in function after hundreds of years of development, but its structural design has improved with the progress of science and technology. This design puts forward a design of sound control electronic lock, which USES sound as the key to control the lock switch and realizes the function of keyless opening and locking, so as to facilitate people's travel. This design USES sound sensor module and microcontroller design, sound sensor using the electret microphone and the related the design of the amplifying circuit, single chip microcomputer using fast Atmel AVR series MCU, realizes the control function of the lock. Unit, the design will be for the whole system hardware and software design, hardware including the design of the central control circuit, the display unit design, voice recognition is associated with the design of the sensor system and the execution unit design. The software program design includes the display program design, the voice recognition control program design and so on. The software program of the system and the hardware system cooperate to complete the work of the system and realize the function of sound control. This sound control electronic lock design can realize sound control opening, replacing the current mechanical lock design, as one of the future lock implementation forms.Key words: voice control; Electronic lock; AVR. The sensor目 录摘要2Abstract3第一章 绪论41.1 本设计研究背景及意义41.2 国内外研究现状51.3 本论文主要内容6第二章 系统的结构与功能设计72.1 系统的功能设计72.2 系统的结构设计7第三章 声控电子锁硬件设计93.1 中央控制器设计93.2 显示模块设计103.3 声音传感器设计14第四章 软件程序设计164.1 显示程序设计164.2 密码识别程序设计194.3 系统总程序设计26第五章 系统的组装与调试285.1 系统的组装285.2 系统的调试29参考文献31致谢33第一章 绪论1.1 本设计研究背景及意义随着科技的进步与社会的发展,人们生活水平越来越高,生活也越来越方便。我国乃至世界锁具的发展经历了几百年时间,已经进化成相对完善的结构。锁具经过了几百年的变化与发展,其基本功能未发生根本性的变化,依旧为为人们的生命财产安全保驾护航。但随着科技的进步与发展,锁具的形式更加多样,结构也更为复杂,更难被破解。发展至今,人们最常用的锁具依旧为机械结构,随着电子科技的进步与发展,新式的电子锁逐渐发展起来,最为常用的即为常见的楼宇门电磁锁,其为电子锁的一类代表,其内部采用电磁结构控制锁具的开启与关闭,利用射频识别技术或远程开锁功能,能够将锁打开,实现无钥匙开锁。该锁并非真正意义上的电子锁。其任然采用机械式设计,配有钥匙开孔,加密方式以机械式加密为主,但能够实现一定的电子锁性能,能够实现非接触式开锁功能。随着电子技术的发展与加密技术的进步,新式的智能门锁逐渐涌现出来。智能门锁采用电子加密的方式,采用全电子结构设计,配合智能识别的方式,能够实现人脸识别,指纹识别,虹膜识别等多种识别方式开启电子锁。此类电子锁的设计大大方便了人们的出行,人们出行不再需要携带大量的钥匙,也不必再担心因钥匙丢失或忘记携带造成无法进门的情况发生。本次设计提出了一种新式的声控电子锁的设计,该设计使用声音作为识别密码,通过不同的声音组合形式组成一组声控密码,电子锁通过识别该密码,控制锁的开启与关闭,可以大大方便人们的生活与出行,实现无钥匙开锁的操作。1.2 国内外研究现状家庭防盗措施伴随着家庭概念的产生而产生。最初的防盗措施仅仅为一扇门经过了几十上百年的发展。才产生了锁具,锁具经过了几千年的发展。到今天仍旧为家庭防盗最主要的措施。从第一只锁具诞生到今天本所的发展已经经过了成百上千年的时间。锁具的根本功能并未发生变化,其主要作用依旧为保护居民财产安全。第一次锁具由中国人发明。但随着时代的发展,外国技术的不断进化使得国外防盗措施水平远远超过了我国,尤其在近些年现在电子技术的发展以及人们创新能力的提高。使得国外的防盗措施的防盗水平也越来越高。随着时代的发展与科技的进步。国外科技依旧在不断发展之中,国外的防盗水平也将越来越高。目前已出现了各种各样的新式防盗设施,例如指纹锁,密码锁,人脸识别等身份识别模式,使用红外探测等方式设计的防盗系统也越来越多。随着外国技术的涌入中国的防盗系统也在跟随世界的变化而更新。中国防盗技术的发展整体落后于世界的平均发展水平。大部分家庭依旧使用传统的机械防盗锁作为自家的防盗系统而国外的电子系统尚未普及。随着中国科学技术的进步,国民素质的提高创新能力的增强我国在防盗系统的研究上。将逐步追赶世界水平并不断进步达到跟世界水平相同的层次。1.3 本论文主要内容 本论文旨在设计一款基于单片机的声控电子锁,该电子锁能够实现声音控制的功能,能够通过输入一系列声音数据控制锁的开启与关闭,该声控电子锁的主要功能依旧为实现锁具的基本功能,保护人民的生命财产安全,但本设计改变了以往的锁具的机械控制结构,改用电子控制结构,实现了电子锁的设计。本论文将对该声控电子锁的功能与实现结构进行分析,分析实现声控电子锁应具有的结构。并依据结构与功能设计,对系统的硬件单元进行设计。系统的硬件单元包含中央控制器,本设计将对中央控制器的控制电路,电源电路,接口电路等电路进行设计。之后,本设计将对声音传感电路进行设计,声音传感电路包含驻极体话筒,声音放大电路等电路设计,同时,本设计将对显示模块进行设计,对显示器件进行选型与设计,将完成整个系统地硬件电路设计。完成硬件电路设计之后,本设计将对系统地软件程序进行设计,软件程序包含声音传感程序,显示程序,密码判断程序,系统加密程序等诸多程序组成,本设计将在完成系统的硬件电路设计与软件程序设计后,购买相关实际电子元器件等,对实际电路进行组装,并对实物进行调试,完成本设计的所有设计功能。 第二章 系统的结构与功能设计2.1 系统的功能设计本设计旨在设计一款声控电子锁,替代传统的机械锁设计,系统使用声音密码作为系统密码,系统具有声音密码控制,液晶显示,密码错误报警等功能,主要功能如下所示。(1)声音密码控制功能:系统通过一定的声音密码对整个系统进行控制,系统能够识别声音数据,并对声音密码进行记录,通过有声与无声两种方式,对密码进行录入,当录入的密码正确时,系统可将门锁打开,错误时,不打开门锁,以此来替代传统的机械结构。(2)液晶显示功能:能够通过液晶显示对系统的状态进行实时显示,并对用户的操作给与一定的指导,例如,无密码输入时显示欢迎界面,输入密码时提示用户输入密码,密码输入正确显示输入正确,输入错误时显示输入错误信息,帮助用户完成整个操作,提供友好的人机交互功能。(3)报警功能:当用户输入密码错误次数过多时,系统能够提供报警功能,报警功能包括声音报警与光报警,报警存在的意义为若为外人闯入,报警声能够震慑罪犯,阻止其闯入,同时能够吸引其他住户的注意,阻止罪犯犯罪。2.2 系统的结构设计系统主要包含输入设备,中央控制器,输出设备几部分组成,其组成结构如图2-1所示。图2-1 系统结构框图 其中输入设备为拾音器与功率放大器,拾音器作用为感知外界声音,并转换为电信号,由于拾音器的转换功率较小,输出功率不足以被中央控制器感知,因此需要与功率放大器配合使用,功率放大器负责对电信号进行放大,放大至单片机能够识别的状态,之后将声音数据传送至中央控制器,中央控制器为系统的核心,负责整个系统的运行。输出设备包括显示器件,门锁控制器以及声光报警器组成,显示器件能够对相关信息进行显示,辅助用户开锁,门锁控制器负责对门锁进行控制,能够控制门锁的开启与关闭,而声光报警单元作用是发出声光报警,在用户输入密码错误次数过多时,发出声光报警,提醒用户或起到震慑犯罪的功能,系统的各个模块共同组建成该系统,各个模块缺一不可,相互配合,实现系统功能。第三章 声控电子锁硬件设计3.1 中央控制器设计中央控制电路是整个系统的核心,为保证系统的稳定运行,本设计选用Arduino控制器作为我们系统的核心,该控制器有众多分支,我们使用最常用的Arduino Uno作为我们的控制器设计,其引脚多,技术成熟,适合长时间运行。Arduino Uno控制器如下图所示:图3-1 Arduino Uno控制器其控制芯片为Atmel328p,为8位单片机设计,内置32K程序存储器与2K内存存储器,最大时钟频率40MHz,带有1K容量的EEPROM,该芯片共32枚引脚,含有6通道的10位ADC,6枚PWM输出引脚,其运行速度能够满足我们的要求,也可满足本论文的设计要求,因此,我们选择该控制器作为我们的控制器设计。该控制器共有14位数字引脚,6位模拟引脚,模拟引脚也具备数字信号输入输出功能,同时具备3.3V与5V电压输出功能,带有一个串口,一个电源输入引脚,其采用的控制芯片速度是普通51单片机的几倍,拥有更加强大的控制能力。其各个引脚作用如表3.1所示:表3.1 Arduino Uno控制器引脚功能引脚名称功能0数字信号输入输出引脚0号引脚,同时作为串口信号RX端。1数字信号输入输出引脚1号引脚,同时作为串口信号TX端。2-13数字信号输入输出引脚,带有的引脚可作为 PWM脉冲宽度调制信号输出引脚。A0-A5模拟信号输入引脚,同时可兼用作数字信号输入输出引脚。AREF模拟输入信号,参考电压。IOREFIO引脚接口信号参考电压。5V5V电压输出3.3V3.3V电压输出GND电源地VIN外部电源输入引脚,支持最大外部输入电压12V。 在编写程序对引脚进行操作时,需先定义引脚功能,之后对引脚进行操作。3.2 显示模块设计显示模块的作用是显示设置的结果,显示数据较少,因此,我们选择双行显示模块LCD1602负责对测量结果进行显示。LCD1602是非常常用的显示器件,支持双行显示,每行16个字符,共计32个字符,常见的1602模块如图3-2所示:图3-2 LCD1602模块其支持4位传输模式与8位传输模式,可塑性大,通常LCD1602模块都支持背光,其使用点阵液晶显示板,每个字符占据5x11个点阵,共可显示两行,其支持ASCII码显示,自带字库,可直接输送ASCII码序号。在LCD1602启动时,需对其进行初始化设置,初始化命令如表3.2所示:表3.2 LCD1602控制命令表RSR/WD7D6D5D4D3D2D1D0说明清显示0000000001将DDRAM填满"20H",并且设定DDRAM的地址计数器(AC)到"00H"归位000000001*设定DDRAM的地址计数器(AC)到"00H",并且将游标移到开头原点位置;这个指令不改变DDRAM 的内容显示开关控制0000001DCBD=1: 整体显示 ON,C=1: 游标ON,B=1:游标位置反白允许进入模式设置00000001I/DSI/D=1,光标或闪烁向右移动,AC增加1。I/D=0,光标或闪烁向左移动,AC减少1,S整个显示移动光标或显示移位指令000001S/CR/L*光标或显示移位指令可使光标或显示在没有读写数据的情况下,向左或向右移动,指令不改变DDRAM 的内容功能设定00001DLNF*DL=0/1:4/8位数据,N=0/1,单行/双行显示,F=0/1,5*8/5*10点阵显示模式设置CGRAM地址0001AC5AC4AC3AC2AC1AC0CGRAM地址设置指令设置CGRAM地址指针,设定DDRAM地址0010AC5AC4AC3AC2AC1AC0DDRAM地址设置指令设置DDRAM地址。一行地址范围00H4FH,两行DDRAM地址第一行00H27H,第二行40H67H,读忙标志和地址01BFAC6AC5AC4AC3AC2AC1AC0BF:忙标志位,BF=1,模块正在进行内部操作,此时模块不接受任何外部指令和数据。BF=0,模块可以接受外部的指令和数据; 写RAM指令10D7D6D5D4D3D2D1D0将数据D7-D0写入到内部的RAM,将用户自定义的字符写入CGRAM中,D7D5为000,D4D0为5点的字模数据读RAM指令11D7D6D5D4D3D2D1D0从内部RAM读取数据D7D0其引脚图如图3-3所示:图3-3 LCD1602引脚图LCD1602共有16枚引脚组成,其中1号脚为电源地脚,2号脚为电源正极引脚,VCOM脚为对比度调节引脚,RS引脚为命令数据标志位,0为写入指令,1为写入数据,RW引脚为读写标志位,0为写入,1为读取,E为使能引脚,高电平有效,P00-P07为数据命令复用引脚,共计8根,其运行在8位模式下需8位引脚,运行在4位模式下需P04-P07四位引脚,BLA为背光引脚,BLA+为背光正,BLA-为背光负。在使用LCD1602需先对其进行初始化设置,才能对其进行读写操作。3.3 声音传感器设计声控电路通常采用驻极体话筒与相关检测放大电路相结合的形式进行设计,驻极体话筒是一类声音传感器,负责感知外界声音,并转换成电信号,检测电路在接收到该电信号后进行响应,打开开关,实现声音传感,声控开关总体结构图如图3-4所示:图 3-4 声控电路结构首先,声音经过驻极体话筒的转化变成声电信号,该声电信号被送至下一级的放大电路中。放大电路将对该声电信号进行放大,经过放大的信号被送入下一句声电转换电路中,该电路会将该信号转换成相应的电信号,在电电信号超过设定阈值时,便会启动电路,接通开关,实现声音控制的功能。驻极体话筒是一类声音传感器,其内部有两片相互间隔较近的金属薄片组成,通常,其中一枚薄片为金属制作,另一层为塑料膜状片,片上涂有金属涂料,在一枚金属薄片上加有一高电压,正电荷会在薄片上积累,因此,在薄膜上将会感应出一低电压,电子在薄膜上积累,当外界存在声音时,声音传导至薄膜引起薄膜的震动,薄膜与金属薄片之间的距离随声音的震动而发生不断地变化,由于金属薄片之间距离的变化,引起两金属片之间电容的改变,电容的变化引起薄片上存储电荷的改变,由此产生一个变化的电压,该电压与声音变化同步,实现了对声音信号的采集。被采集的声音以电压的方式传入下一级的放大电路中,放大电路通常采用电压放大电路设计,能够实现对电压的放大,由于由声音引起的电压信号较小,因此,对该放大电路要求其放大倍数较高,为实现较高的放大倍数,该放大电路通常采用运算放大器进行设计,运算放大器是一类放大元件,本身由于理想运算放大器的放大倍数为无穷大,但由于在现实条件下无法达到理想状态,因此,通常所用的运算放大器的放大倍数为1万倍或更低,由于运算放大器的放大倍数较高,直接使用运算放大器放大将导致声音微弱的变化将会触碰到运算放大器的峰值输出,造成声音信号的失真,因此,需选用一定的运算放大器放发电路设计对声音信号进行放大。常见的运算放大器组成的放大电路如下图所示。图3-5 电压放大电路输入电压通过一10K限流电阻输入运算放大器的同相输入端,运算放大器的反向输入端通过10K电阻接地,运算放大器的输出信号通过一100K电阻接入运算放大器的反向输入端,组成负反馈电路。由于输出电压与同相输入端输入电压相位相同,与反向输入端输入相位相反,因此,输出由反相端输入时,输出端变回产生一个与原电压电位相反的电压,阻碍原电压的放大,形成负反馈。依据运算放大器虚短路与虚断路的特点,放大倍数A的计算公式如下:=1+R3R1 (3-1)R3为100K电阻,R2为10K电阻,由此可得,该电路的放大倍数为11倍。如果实现更高的放大倍数,则需适当改变两电阻的阻值。声电转换电路实际为一高倍数放大器,其放大倍数较声音放大电路的放大倍数更高。因此,在经过上级放大之后,声音信号已经达到了一个较高的电压,在经过该给放大电路的放大,输出电压很容易触碰到该电路的峰值输出电压,造成电路输出一稳定的高电压,实现声音的控制电路开启。第四章 软件程序设计4.1 显示程序设计 显示程序分为LCD1602初始化程序与数据显示程序,依据LCD1602命令表,LCD1602初始化程序如下int LCD1602_RS=12; int LCD1602_RW=11; int LCD1602_EN=10; int DB = 6, 7, 8, 9; /采用4线制接法,系统数据接口地址void LCD_Command_Write(int command) /写命令函数 int i,temp; digitalWrite( LCD1602_RS,LOW); /拉低rs引脚 digitalWrite( LCD1602_RW,LOW); /拉低rw引脚 digitalWrite( LCD1602_EN,LOW); /拉低使能引脚,进入写指令模式 temp=command & 0xf0; /取命令高16位 for (i=DB0; i <= 9; i+) /依次写入命令 digitalWrite(i,temp & 0x80); /取命令高8位写入 temp <<= 1; digitalWrite( LCD1602_EN,HIGH); /拉高EN脚 delayMicroseconds(1); /延时1us digitalWrite( LCD1602_EN,LOW); /拉低EN脚 temp=(command & 0x0f)<<4; /取命令低16位 for (i=DB0; i <= 9; i+) /依次写入命令 digitalWrite(i,temp & 0x80); /取指令低8位写入LCD1602 temp <<= 1; /复位temp变量 digitalWrite( LCD1602_EN,HIGH); delayMicroseconds(1); digitalWrite( LCD1602_EN,LOW); void LCD_Data_Write(int dat) /LCD1602数据写入函数 int i=0,temp; digitalWrite( LCD1602_RS,HIGH); /拉高RS引脚,写入数据 digitalWrite( LCD1602_RW,LOW); /拉低RW,进入写模式 digitalWrite( LCD1602_EN,LOW); temp=dat & 0xf0; /取数据高8位写入 for (i=DB0; i <= 9; i+) digitalWrite(i,temp & 0x80); /依次写入数据 temp <<= 1; digitalWrite( LCD1602_EN,HIGH); delayMicroseconds(1); digitalWrite( LCD1602_EN,LOW); temp=(dat & 0x0f)<<4; /写入数据低8位 for (i=DB0; i <= 9; i+) digitalWrite(i,temp & 0x80); /依次写入数据 temp <<= 1; digitalWrite( LCD1602_EN,HIGH); /拉高系统使能 delayMicroseconds(1); /延时1us digitalWrite( LCD1602_EN,LOW); /拉低系统使能LCD_Command_Write(address); LCD_Command_Write(0x28); /设置光标自动+1delay(50); LCD_Command_Write(0x06); /设置关光标显示,屏幕不移动delay(50); LCD_Command_Write(0x0c); /关屏幕显示delay(50); LCD_Command_Write(0x80); /开屏幕显示delay(50); LCD_Command_Write(0x01); /清屏delay(50);LCD_Command_Write 函数为写指令函数,其能够将指令写入LCD1602中,delay函数为延时函数,写入指令后需给1602一定时间相应,写指令0x28是设置LCD1602显示为两行显示,4线输入模式,每个字符为5x7点阵。写指令0x06是设置LCD1602向右自动增量显示。写指令0x0C是设置LCD1602开启显示,光标关闭。写指令0x80为设置显示起始位置为第一行第一个字符,写指令0x01为清屏,光标复位,完成初始化的操作,之后,可向LCD1602中写入需显示的数据,并使其显示。4.2 密码识别程序设计密码识别程序需调用系统中断功能,并通过系统中断实现对声音密码的识别,由于每次声音密码产生将会产生一定的抖动,信号上升沿不稳定,因此,需先对信号进行消抖,再对信号进行识别,密码识别程序如下。int n=0;long m,m1;int a,c,q;int b=4;int d=1;int starts;int f8;int i;int j;int st;int err;int spe=0;void setup() pinMode(4,INPUT); pinMode(3,OUTPUT); pinMode(5,OUTPUT); pinMode(6,OUTPUT);pinMode(13,OUTPUT); Serial.begin(9600);attachInterrupt(0,blinkA,CHANGE);f0=1;digitalWrite(3,LOW);delay(20);lcd.begin(16, 2);lcd.setCursor(0, 0);lcd.print("Welcome!");void blinkA()if(starts) if(b>0&&b<4) fd=1; d+; b=4; else m1=millis(); c=m1-m; if(c<1000) b=4; else if(c>1000&&c<2000) fd+1=0; d=d+1; b=1; else if(c>2000&&c<3000) fd+1=0; fd+2=0; d=d+2; b=2; else if(c>3000&&c<4000) fd+1=0; fd+2=0; fd+3=0; d=d+3; b=3; else if(b=4) else if(c>4000) b=4; err=1; d=1; lcd.clear(); lcd.setCursor(0, 0); lcd.print("ERROR!"); spe+; delay(1000); err=0; m=millis(); Serial.println(c); Serial.println(d); Serial.println(err); Serial.println(spe); Serial.println("f="); for(i=0;i<8;i+) Serial.print(fi); Serial.println(""); else lcd.clear(); lcd.setCursor(0, 0); lcd.print("Welcome!"); void loop() st=digitalRead(4); if(st) starts=starts; delay(80); if(starts) lcd.clear(); delay(20); lcd.setCursor(0, 0); lcd.print("Please Input"); if(d>1) for(j=0;j<d+1;j+) lcd.setCursor(j, 1); lcd.print('*'); delay(10); if(spe<5) if(f1=0&&f2=0&&f3=1&&f4=0&&f5=0&&f6=1) digitalWrite(13,HIGH); lcd.clear(); delay(20); lcd.setCursor(0, 0); lcd.print("The Key Right!"); delay(10000); digitalWrite(13,LOW); for(i=0;i<8;i+) fi=0; starts=0; spe=0; b=4; err=0; d=1; else if(d>8) digitalWrite(13,LOW); lcd.clear(); lcd.setCursor(0, 0); lcd.print("ERROR!"); delay(1000); err=1; spe+; if(spe=3) spe+; while(1) d=1; spe=7; lcd.clear(); lcd.setCursor(0, 0); lcd.print("Warring!"); digitalWrite(6,HIGH); digitalWrite(5,HIGH); err=0; d=1; for(i=2;i<8;i+) fi=0; 声音识别程序调用了系统中断,当有声音超过设定阈值时,声音信号的高电平将触发系统中断,中断子程序为密码识别程序,密码识别程序同时调用了系统的定时器中断,定时器将对声音信号进行计时,计时时长为1s,即每个声音脉冲持续时间约1s,系统预设密码为响、响、空、空、响,每个声音持续1s时间,若密码输入错误次数超过3次,系统将强行关闭声控开锁功能,此时,用户只能通过钥匙将门锁打开。整个声音识别程序通过声音开启,系统开机时,将向显示屏发送数据,显示屏显示“welcome”字符。当系统检测到声音输入后,声控系统将开启,而开启声音不算作系统密码。声控系统开启后,将向现实屏发送数据,显示屏将显示“Please Input”,提示用户输入声音密码,用户可向系统输入声音密码,用户输入密码时,每输入一个密码,显示屏将显示一个“*”作为提示,用户可根据显示的“*”的多少判断输入的密码个数。当用户输入的密码数据正确时,系统将显示“Key The Key Right!”同时开启门锁,门锁开启时间为10s,若用于于10s内未打开房门,则门锁自动关闭,需要用户重新输入密码。若用户输入的声音密码错误,系统将显示“ERROR!”提醒用户再次输入,用户连续输错3次密码后,该门锁将锁死,用户只能通过钥匙开启门锁,无法再通过声控密码开启门锁。用户进屋后,可按下系统复位按钮为系统复位,系统复位后,声控密码将重新开启。由此完成声控开锁的控制。4.3 系统总程序设计 系统总程序主要由显示程序,声音传感器响应程序,门锁控制程序等几个部分组成,系统将首先对声音进行响应,判断启动开锁信号,之后对声音密码进行响应,处理声音密码,密码输入成功后,将启动开锁程序打开门锁。在整个程序执行过程中,始终配合显示程序共同执行,完成系统的所有功能,系统工作流程如图4-1所示。图4-1 系统流程图系统启动后,首先运行LCD1602初始化程序,等待系统初始化完成后,中央控制器向LCD写入显示数据,LCD1602显示welcome!之后,系统将循环运行声音判断程序,判断是否有声音信号启动开锁,若无,则持续显示welcome!若有,则启动密码判断程序。密码判断程序将同时启动外部输入中断以及定时器中断,定时器中断用于设定密码输入频率,外部中断用于控制声音密码输入,在密码输入完成之后,系统将对输入密码的正确性进行判断,若系统密码输入错误次数超过3次,则启动门锁抱死系统,将门锁锁死,此时声音解锁程序失效,无法通过声音控制程序对系统进行解锁,只能通过钥匙打开门锁。若输入密码错误此时不超过3次,系统则会重置,用户可再次输入声音密码。若用户密码输入正确,则门锁自动打开,并保持开启状态10s,等待用户进入室内,用户进入室内后,门锁会自动关闭,由此完成一次开锁。系统的运行依赖与各个模块的相互配合,依据系统运行流程设计,对相关程序进行设计,实现系统功能,完成声控电子锁的软件程序设计。第五章 系统的组装与调试5.1 系统的组装本设计依据系统的硬件原理图设计,购买相关硬件单元模块,对实物进行组装,依据程序中对各个引脚的定义,对各个模块进行连线,连线结果如图5-1所示。图5-1 实物连接图完成对实物连接后,对软件代码进行编写,编写界面如图5-2所示。