基于单片机语音智能密码锁设计(共55页).doc
《基于单片机语音智能密码锁设计(共55页).doc》由会员分享,可在线阅读,更多相关《基于单片机语音智能密码锁设计(共55页).doc(55页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上一、设计任务及要求:设计任务:设计一个具有设置数字密码任设、存储、画面显示、语言播报以及具有报警功能的密码锁。要 求: 1密码由六位数字组成,可以由用户自定义设置。2密码锁具有语言播报和状态显示功能。3一次性只允许三次密码输入操作,支持密码修改。4具有报警功能。指导教师签名 2013年 月 日 二、指导教师评语: 指导教师签名 : 2013年 月 日 三、成绩 验收盖章 2013年 月 日 目录专心-专注-专业语音智能密码锁的设计1 设计目的本文所设计的智能密码锁系统是以89C52为中心控制器、4*4键盘采集输入信号、用24C04芯片对设定的密码进行保存,同时设有SX
2、6288组成的语音模块,通过LCD、LED灯以及语音模块直观的显示密码锁所处状态。用户可以自定义设置六位的数字密码,并有三次输入密码的机会,当密码输入错误时密码锁将会发出报警声,当三次输入密码错误时,密码锁将进行键盘锁定一段时间。2 设计的主要内容和要求1) LCD能够及时显示密码锁的状态信息。2) 语音模块能够播报密码锁状态。3) 能够设定初始密码,支持密码修改。4) 能够快速、准确的采集键盘上的输入信息。5) 用24C04芯片进行设定密码和保存。6) 当密码输入错误时,系统自行报警,并在连续输入超过三次密码错误时,将对键盘锁定一段时间。7) 设计一个5V的稳定电源,给系统供电。8)系统自定
3、义强,工作稳定、安全。3 整体设计方案本文设计的语音智能密码锁系统框图如图3.1所示。系统主要分为电源模块、控制模块、语音模块、密码保存模块、LCD显示模块、模拟锁以及蜂鸣器报警模块组成。图3.1 智能密码锁系统框图本系统分为写初始密码和密码锁工作两部分。1) 写密码部分:开始时LCD显示初始化状态,进键盘扫描,当按下C键后,可以自定义设定六位的密码,当按下D键时,LCD显示所设密码。2) 密码锁工作部部分:开始时LCD显示初始状态,锁处于关的状态,红色LED亮,等待键盘扫描。按下A键后,蜂鸣器响三声,LCD显示请输入密码提示进入开锁进程,此时有三次输入密码机会。若输入密码正确,将有蜂鸣器将会
4、响四声,LCD显示锁已打开,红色LED灭、绿色LED亮四种方式提示成功开锁,此时,锁处于已开锁状态。之后若按下E键系统将会进入初始状态;如果此时按下B键,系统将会进入重设密码进程,可以自定义重设六位的数字密码,设定后按下E键,系统进入初始状态。若输入密码错误,蜂鸣器将会发出报警声,连续三次输入错误密码,系统将会对键盘锁定一段时间,按下E键后,系统进入读密码初始状态。4硬件电路设计4.1 系统总电路的设计本系统原理图如图4.1所示:图4.1 系统电路原理图在设计本系统硬件时,主要有以下电路模块:1) +5V直流稳压电源模块;2) 系统硬件将采用AT89C52单片机为控制部分;3) SX6288中
5、文语音合成播报模块;4) 以4*4矩阵键盘为信号输入模块;5) 采用24C04芯片作为保存密码模块;6) LCD显示电路模块;7) 继电器模拟锁模块及蜂鸣器报警模块。4.2 直流稳压电源模块系统5V直流电源图4.2电路供电,它的工作过程如下:220V市电经过变压器降压为9V,经电容滤波变为平滑的10.8V电压,最后经过7805三端稳压器电路降压,再滤波最终得到5V的直流电源。从而保证芯片在正常电压范围内工作,保证了整个电路的正常工作。 图4.2 直流稳压电源电路原理图4.3 控制电路的设计 本设计系统采用AT89C52单片机作为总控制电路,如图4.3所示。本单片机具有40个引脚,6个中断源,2
6、0个I/O接口。本设计以P0以及P2、P3端口作为信号输出口,P1端口作为信号采集输入口,通过C语言编程对其进行控制,本设计利用其集成度高,体积小,开发性能好,控制能力强,可靠性强的特点使智能密码锁工作稳定安全。图4.3单片机电路图 4.4 语音模块电路的设计 本语音模块包括:控制模块、SX6288A语音合成芯片、数据库芯片spiflash、功放模块和喇叭。主控制器和SX6288A之间通过UART接口连接,控制器通过通讯接口SX6288A发送控制命令和文本,SX6288A把接收到的文本转化为语音信号输出,输出的信号经过功率放大器进行放大后接到喇叭进行播放。SX6288A具有音质好、自然度高、使
7、用方法简单、合成速度快、价格低等特点,支持GB2312、GBK、BIG5和 UNICODE内码格式的文本,支持多种通讯波特率。实物图如图4.4所示:图4.4 语音模块实物图从左至右引脚名称和说明如下:SP+:0.5W8欧姆的扬声器正级。 SP- :0.5W8欧姆的扬声器正级。BUSY:语音处理忙信号,忙为高电平,不忙为低电平。TX:模块的串行数据发送端,连接单片机P3.0 RXD引脚。RX:模块的串行数据接收端,连接单片机P3.1 TXD引脚。GND:电源地GND。 VCC;电源直流电3.3-5V。4.5 信号输入电路的设计本设计利用4*4矩阵键盘作为信号电路,其电路图如图4.5所示:图4.5
8、 4*4键盘信号输入电路的设计单片机通过对4*4键盘扫描,采集输入指令,从而使单片机完成相应数据处理。4*4矩阵键盘工作原理如下: 4*4矩阵键盘采用逐行扫描法,依次从第一至最末行线上发出低电平信号, 如果该行线所连接的键没有按下的话, 则列线所接的端口得到的是全“1”信号, 如果有键按下的话, 则得到非全“1”信号。 然后再通过从列线读入的信号来识别是哪一列的按键闭合。为了防止双键多多键同时按下,再以同样的方法往下扫描,一直到最后一行,若发现仅有一个“1”,则为有效键,否则全部作废。本设计以P10-P3为行扫描信号,在通过P14-P7作为列线读入。对各个按键进行相应功能的设置,单片机对有效键
9、时的信号采集,进而对采集的信号进行处理。4.6 密码储存电路的设计本设计采用AT24C04芯片作为密码保存模块电路,其引脚图如4.6.1所示。AT24C04是典型的I2C总线结构,具有512bit容量EEPROM存储器,其是一种采用I2C总线接口的串行总线存储器,这类存储器具有体积小、引脚少、功耗低、工作电压范围宽等特点。其具有支持I2C总线协议、占用单片机I/O端口少,芯片扩展方便、读写简单等优点。密码储存电路如图4.6.2所示: 图4.6.1 AT24C04引脚图图4.6.2 密码储存电路工作原理:AT24C04传送数据过程中共有三种类型信号:开始信号、停止信号和应答信号。开始信号:SCL
10、保持高电平的状态下,SDA出现下降沿。出现开始信号以后,总线被认为“忙”。停止信号:SCL保持高电平的状态下,SDA出现上升沿。停止信号过后,总线被认为“空闲”。应答信号:接收数据的器件在接收到8位数据后,向发送数据的器件发出特定的低电平脉冲,表示已收到数据。 主器件产生开始信号以后,发送的第一个字节为控制字节。前七位为从器件的地址片选信号。最低位为数据传送方向位(高电平表示读从器件,低电平表示写从器件),然后发送一个选择从器件片内地址的字节,来决定开始读写数据的起始地址。接着再发送数据字节,可以是单字节数据,也可以是一组数据,由主器件来决定。从器件每接收到一个字节以后,都要返回一个应答信号(
11、ASK=0)。主器件在应答时钟周期高电平期间释放SDA线,转由从器件控制,从器件在这个时钟周期的高电平期间必须拉低SDA线,并使之为稳定的低电平,作为有效的应答信号。在本设计中通过单片机P3.4和P3.5引脚分别对AT24C04芯片SCL和SDA引脚控制,实行密码数据的读和写,从而完成密码的设定保存。4.7 LCD显示电路的设计 本设计采用1602液晶作为显示电路,可以进行背光对比度调节,内含复位电路,提供了各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能,有80字节显示数据存储器DDRAM内建有160个5X7点阵的字型的字符发生器CGROM8个可由用户自定义的5X7的字符发生器
12、CGRAM。其电路图如图4.7所示。在本系统中,单片机P0端口作为LCD数据接收口,P2.0-P2.2控制液晶的读写和使能端,完成对液晶的显示控制。图4.7 LCD显示电路4.8 继电器模拟锁模块及蜂鸣器报警模块在本设计系统中用继电器断开与闭合模拟锁的开锁与锁定的状态,继电器一个端口接在单片机P3.6,当P3.6为高电平时,继电器绕线电流通过三极管Q2放大,绕线产生磁效应,吸合衔铁,视为开锁,其电路图如图4.8.1所示。在报警模块中,通过一个三极管放大电流从而完成蜂鸣器的驱动,当P3.7端口为高电平时,蜂鸣器发出响声,低电平时不响。本设计通过对电平频率的控制从而实现不同的响声。其电路图如4.8
13、.2所示。图4.8.1 模拟锁电路图图4.8.2 报警电路5软件程序设计5.1 系统程序设计本系统程序分为两部分,初始写密码程序和密码锁工作程序。如图所示图5.1为写初始密码流程图,图5.2为密码工作流程图。 密码输入初始化画面显示 键盘扫描按键C是 否按下Y键盘扫描显示设置密码开始结束按键D是否按下YNN图5.1 初始密码程序设定流程图 图5.2 密码锁工作主程序流程图1)写初始密码部分:LCD显示初始化状态,系统进入键盘扫描,仅当C键按下后,系统进入密码设定阶段,其他键对系统不产生作用,进入设定阶段后,可以自定义设定六位的密码。继续对键盘扫描,当按下D键时,LCD显示所设密码,按下C键可以
14、重设密码,按下其他键是将不会对系统产生影响。其设计流程图如图5.1所示。2)密码锁工作部分产生: LCD显示初始状态,系统进入键盘扫描。仅当按下A键后,蜂鸣器响三声,LCD显示请输入密码提示进入开锁进程,此时有三次输入密码机会。若密码输入正确,蜂鸣器响四声,LCD显示锁已打开,红色LED灭、绿色LED亮,若按下E键系统将会进入初始状态;如果此时按下B键,系统将会进入重设密码进程,可以自定义重设六位的数字密码,设定后按下E键,系统进入初始状态。若输入密码错误,蜂鸣器将会发出报警声,连续三次输入错误密码,系统将会对键盘锁定一段时间,按下E键后,系统进入读密码初始状态。其流程图如图5.2所示。5.2
15、 主要程序设计1)初始密码设定在程序中包含蜂鸣器驱动子函数、延时子函数、4*4键盘扫描函数、开机液晶显示子函数、写密码子函数、读密码子函数 、1602驱动子头文件函数、AT24C04驱动头文件函数(见附件)。其主函数如下所示:void main()uchar i;BEEP=0;start:Delay_ms(10);lcd_init();I2C_init();lcd_wcmd(0x00|0x80);i = 0;while(line1_datai != 0)lcd_wdat(line1_datai);i+;lcd_wcmd(0x40|0x80);i = 0;while(line2_datai !=
16、 0)lcd_wdat(line2_datai);i+;while(1)P1=0xf0;if(P1!=0xf0)MatrixKey();if(key=0x0c)WriteCode();if(key=0x0d)ReadCode();if(key=0x0e)goto start;2)密码锁工作函数在程序中包含蜂鸣器驱动子函数、延时子函数、4*4键盘扫描函数、开机液晶显示子函数、写密码子函数、读密码子函数 、密码输入错误显示子函数、密码输入正确显示子函数、重设密码子函数、报警鸣声子函数、定时中断子函数、1602驱动子头文件函数、AT24C04驱动头文件函数(见附件)。其主函数如下所示:void ma
17、in()TMOD=0x21;/定时器0 方式1 定时器1 工作在方式2TH0=0xee; /5ms 定时初值TL0=0x00;EA=1; /开总中断ET0=1;/打开定时器0SCON = 0x50; /串口工作方式为1 , 串行允许接收TR1 = 1; /允许定时器1工作TH1 = 0xfd; /波特率 9600bps fosc=11.0592MHzTL1 = 0xfd;ES = 1; /开串口中断Delay_ms(10);lcd_init(); /液晶初始化I2C_init();/I2C初始化START:RELAY=1;/继电器关闭lcd_clr();/调入清屏函数StartDisp();/
18、开机画面显示read_nbyte (0xa0,0x00,code_buf,6);/从24Cxx的0x00开始的单元中读出6个密码存入code_buf数组中P1=0xf0;while(P1=0xf0);/等待按键按下SCAN:MatrixKey();/键盘扫描if(key!=0x0a)goto SCAN;/若按下的不是A键,跳转到标号SCAN处继续扫描/Uart_SendString(shuru); /语音播报密码错误TR0=1;/启动定时器Delay_ms(500);beep();if(flag_2s=1)flag_2s=0;/若2s到,则将 2s标志位清0else goto SCAN;/若2
19、s到,则将 2s标志位清0PassIn();/调用密码输入函数while(1)if(flag_comp=1)MatrixKey();/键盘扫描if(key=0x0b)/若有B按下 进入密码重设PassSet();/调入密码设置函数MatrixKey();if(key=0x0e)goto START; /若按下了E键,则跳转到标志START处重新开始if(key=0x0e)goto START;/若按下了E键,则跳转到标志START处重新开始if(flag_comp=0)MatrixKey();if(key=0x0e)goto START; /若按下了E键,则跳转到标志START处重新开始/*定
20、时中断*/void timer0() interrupt 1TH0=0xee;TL0=0x00;count_5ms+;if(count_5ms=200)count_5ms=0;sec+;if(sec=2)flag_2s=1;TR0=0;6 系统仿真6.1 系统仿真环境及参数设置本设计在Protues的ISIS 7.0SP2或者更高版本的软件环境下打开电路仿真图,接下来将设计好的程序在Keil C51 Vision3开发集成环境上编译成机器语言,生成.hex文件。打开Proteus软件,进入ProteusISIS,首先将设置初始密码程序的hex文件导入到80C52中,点击按钮,按下C键选择密码设
21、置,D键为读密码功能。再把密码锁工作程序生成的hex导入单片机中,E键位功能复位键,按下A键系统进入密码输入状态,输入密码后,按下B键后系统进入密码重设状态。6.2系统仿真结果及其分析6.2.1系统仿真系统整体仿真电路图如图6.1所示:图6.1 密码锁整体proteus仿真图6.2.2设定初始密码仿真导入初始密码hex文件后,系统进入初始化状态,仿真结果如图6.2所示。图6.2 设定密码初始状态仿真图按下扫描按键C,系统进入密码设定输入状态,LCD上提示输入密码,仿真结果如图6.3所示。图6.3 设定初始密码输入仿真图设定密码后按下D键,系统进入读密码状态,LCD上显示所设密码,仿真图如图6.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 语音 智能 密码锁 设计 55
限制150内