基于单片机的遥控密码锁设计毕业设计.docx
- 文档编号:27583198
- 上传时间:2023-07-03
- 格式:DOCX
- 页数:44
- 大小:881.32KB
基于单片机的遥控密码锁设计毕业设计.docx
《基于单片机的遥控密码锁设计毕业设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的遥控密码锁设计毕业设计.docx(44页珍藏版)》请在冰豆网上搜索。
基于单片机的遥控密码锁设计毕业设计
本科毕业设计
基于单片机的遥控密码锁设计
摘要
红外遥控密码锁是一种以高强度密码序列为基础,在单片机上实现的密码开关。
它以红外光作为信息媒体,从而实现了遥遥控。
该锁具有使用方便、操作简单、价格低廉等特点,给人们的生活带来了极大方便,特别高辐射区、高传染区等。
本次设计的题目是基于单片机的红外遥控密码锁设计。
该设计包括红外发射模块、红外接收模块和单片机处理模块。
该文详细的阐述了各模块的设计与编程,该遥控密码锁能实现密码输入、密码修改、上锁、开锁以及超次锁定功能。
为了防止遥控器失窃,非法人员多次试探尝试打开遥控锁,该系统还增加了错误报警功能,输入密码错误三次以后,蜂鸣器会持续鸣叫进行报警。
软件部分用C语言进行编程,采用模块化设计思想。
发射模块主要包括矩阵键盘、红外编码与调制部分。
其中红外发射使用红外发光二极管,调制部分采用38kHz的脉冲调制,矩阵键盘使用4×4矩阵。
接受部分通过红外接收头接、放大和解调接收到的红外波,该接受头内部电路包括红外检测二极管、放大器、限幅器、带通滤波器、积分电路和比较器等。
使用单片机的内部存储器进行密码存储。
关键词:
单片机红外线遥控密码锁
TheDeviceofInfraredElectronicLockinCodeBasedonsinglechipDevice
WuGuanhui
(CollegeofEngineering,SouthChinaAgriculturalUniversityGuangzhou510640,China)
Abstract:
Infraredremotecontrolcodedlockisahigh-intensitypasswordsequencebasedonsinglechipmicrocomputerimplementationcodeswitch.Thelockiseasytouse,simpleoperation,lowcostandsoon.Ithasbroughtgreatconveniencetopeople'slife,especiallyhighradiativezoneandhightransmissionarea.
Thetopicofthisdesignisbasedonsinglechipmicrocomputerinfraredremotecontrolcodedlockdesign.Thedesignincludesinfraredemissionmodule,theinfraredreceivingmoduleandsingle-chipmicrocomputerprocessingmodule.Thispaperdetailedexpoundsthemoduledesignandprogramming,theremotecontrolcanrealizecombinationlockpassword,passwordmodification,lock,unlockandsuperlockfunction.Inordertopreventtheremotecontroltheft,illegalpersonnelmanytimestestingattemptstoopentheremotecontrollock,thesystemalsoincreasestheerroralarmfunction,inputwrongpassword3times,buzzerwillcontinuetocallforthepolice.SoftwarepartinClanguageprogramming,usingmodulardesignthought.Launchmodulemainlyincludesmatrixkeyboard,theinfraredcodingandmodulation.Whichuseinfraredlight-emittingdiodes,infraredlaunchmodulationparton38kHzpulsemodulation,usinga4x4matrixkeyboardmatrix.Acceptancepartthroughtheinfraredsensor,amplificationanddemodulatingthereceivedinfraredwave,theacceptheaderinternalcircuitincludingtheinfraredraydetectiondiode,limiter,bandpassfilter,amplifier,comparatorandintegralcircuit.ItusesSCM’sinternalstorageforpassword.
Keywords:
singlechipinfraredrayremotecontrolcodedlock
华南农业大学本科生毕业设计成绩评定表
1前言
1.1课题的研究背景
电子技术的飞速发展,给古老的锁具生产带来了巨大的变革,现代的电子技术与机械技术相结合,产生了一大批如声控锁、磁控锁、密码锁、遥控锁,指纹锁等先进的锁具。
本设计是利用红外传输为途径,方便远距离开锁,不用像传统锁那样一定要将钥匙插进锁里才能开启。
该设计能实现密码输入、密码修改、上锁、开锁以及超次锁定功能。
为了防止遥控器失窃,非法人员多次试探尝试打开遥控锁,该系统还增加了错误报警功能,输入密码错误三次以后,蜂鸣器会持续鸣叫进行报警。
该设计具有使用方便、操作简单、价格低廉等特点,特别适用于那些正常人体不宜接近的特殊场所,比如高辐射区、高传染区等。
1.2红外通信基本原理
红外遥控是单工的红外通信方式,本设计的红外遥控采用以通信方式为基础的红外遥控,而且本设计也使用了红外通信技术,故着重分析红外通信的基本原理。
红外通信是利用红外技术实现两点间的近距离保密通信和信息转发。
它一般由红外发射和接收系统两部分组成。
发射系统对一个红外辐射源进行调制后发射红外信号,而接收系统用光学装置和红外探测器进行接收,就构成红外通信系统。
红外线是波长在750nm至1mm之间的电磁波,它的频率高于微波而低于可见光,是一种人的眼睛看不到的光线。
红外通信一般采用红外波段内的近红外线,波长在0.75um至25um之间。
红外数据协会(IrDA)成立后,为了保证不同厂商的红外产品能够获得最佳的通信效果,红外通信协议将红外数据通信所采用的光波波长的范围限定在850至900nm之内。
红外通信的基本原理是发送端将基带二进制信号调制为一系列的脉冲串信号(载波信号),通过红外发射管发射红外信号。
常用的有通过脉冲宽度来实现信号调制的脉宽调制(PWM)和通过脉冲串之间的时间间隔来实现信号调制的脉时调制(PPM)两种方法,脉时调制(PPM)是红外数据协会(IrDA)和国际电子电工委员会(IEEE)都推荐的调制方式,本设计采用脉时调制方法,即用两个脉冲串之间的时间间隔来表示二进制信息,数据比特的传送仿照不带奇偶校验的RS232通信,首先产生一个同步头,然后接着8位数据比特,如图1所示。
图1PPM调制波形图
载波信号的频率f=38kHz,载波周期T=26.32μs,本设计使用单片机软件产生载波,脉冲宽度t1=10T=260μs,二进制数0的脉冲串周期t2=500μs,二进制数1的脉冲串周期t3=1000μs。
普通的红外遥控采用面向指令的帧结构,数据帧由同步码,地址码和指令码组成,指令码长度多为8~16个比特,传送多字节遥控协议时效率偏低,而增加指令码的长度不利于接收器同步,为此本设计选用一种面向字节的帧结构,采用类似于异步串行通信的帧结构,每帧由一个起始位(二进制数0)、8个数据位和2个停止位(二进制数1)构成,如图2所示。
每帧传送1个字节的数据,帧与帧间隔大于2ms,帧结构不含地址信息,寻址问题由高层协议解决。
图2数据帧结构示意图
由于红外光存在反射,在全双工的方式下发送的信号也可能会被本身接收,因此,红外通信应采用异步半双工方式,即通信的某一方发送和接收是交替进行的。
2系统设计
2.1红外遥控发射系统组成及工作原理
红外发射系统硬件部分由红外发射电路、键盘矩阵电路、复位电路、晶振电路和指示灯电路组成。
其结构框图如图3所示。
图3红外遥控发射框图
该红外遥控发射系统采用软件编码方式,取代传统的专用芯片编码。
键盘输入信息通过I/O口传送到单片机系统,单片机内部按照NEC编码协议,将键值信息进行编码,并经38kHz载波调制,将调制之后的信息由红外发射电路发射出去。
2.2红外遥控接收系统组成及工作原理
红外发射系统硬件部分由红外接收电路、复位电路、晶振电路、液晶显示电路、报警电路和指示灯电路组成。
其结构框图如图4所示。
图4红外遥控接收框图
通过I/O口接收红外发射系统发送的信息并传送到单片机内部,单片机内部按照NEC编码协议,将接收到的信息进行解码,并通过液晶显示。
3方案选择和论证
3.1红外发射模块
方案一:
专用芯片解决方案。
专用红外编码芯片种类很多,如日本三菱公司的M50426AP\PT2262、BL9148、ZD6631等,此类芯片一般集载波振荡、编码、发射于一体,具有很强的抗干扰能力,外围电路简单,使用很方便,而且价格很低。
通用的遥控器上大多使用此类专用芯片。
但是,专用芯片也有致命的弱点:
专用芯片的应用灵活性很差,其内部编码已经固定,无法修改内部数据,不适用经常需要改动传送数据的场所;专用芯片几乎都是面向指令型的编码遥控方式,传输效率较低;大多数的专用芯片的内部编码及技术数据已经公诸于世,会产生安全漏洞。
方案二:
微处理器单独解决方案。
电路如图5所示。
图5软件编码发射电路
该方案使用微处理器的I/O口直接产生38kHz已调波,驱动红外发光二极管,发射红外数据。
38kHz方波由CPU的定时器产生或由软件编程产生。
红外编码工作由软件完成,因此,红外编码方案可以任意设计,外部只需配接非常简单的硬件电路,大大降低了了电路的复杂性,有利于降低成本,减小遥控器的体积。
由于使用软件编码方案,占用了CPU的一定的时间,CPU处理速度受到一定的影响,但是,对于遥控器这一类功能比较单一的系统来说,处理任务比较少,根本影响不了CPU的处理效率,仅仅是增加了软件编程的负担。
经比较,方案二既可满足题目要求,电路又非常简单,硬件成本又很低,仅仅是增加了软件的编程负担,使得红外编码非常灵活,所以采用该方案。
3.2红外接收模块
方案一:
分立元件解决方案,电路如图6所示。
图6低电压红外接收电路
图中RD1为红外接收管;R3、R4,VT1构成反相放大器;VT2、R5、C2构成滤波器,滤掉38kHz的高频载波;R6、R7、VT3构成整形电路。
将滤波后的波形处理为较好的方波;C1、C3为耦合电容;R2为限流电阻,当接收到较强的信号是保护VT1(陈汝全,2004)。
该方案最大的优点是供电电压比较低,可用两节电池3V电压供电。
但是,由于电路使用分立元件构成,其稳定性和抗干扰能力不高,影响红外数据传输的准确性。
方案二:
集成电路解决方案,电路如图7所示。
该方案使用一体化红外接收器,集红外接收和放大于一体,不需任何外接元件,就能完成从红外接收到输出与TTL电平兼容的所有工作,而体积和普通的塑封三极管大小一样。
图7SM0038接收电路
3.3单片机最小系统模块
方案一:
STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
具有以下标准功能:
8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口(DavidCalcuttetal,2004)。
另外STC89X52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
最高运作频率35MHz,6T/12T可选(李叶紫等,2004)。
方案二:
AT89S52是一个低功耗,高性能CMOS8位单片机,片内含8kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。
另外,AT89S52支持ISP下载,并且可以通过AT89S52系统板预留ISP下载接口,实现在线烧写程序。
综合比较上述两种方案,单片机最小系统模块应采用STC89C52。
3.4报警模块
(1)普通单色发光二极管具有体积小、工作电压低、工作电流小、发光均匀稳定、响应速度快、寿命长等优点。
但是发光二极管发光强度小,难以引起注意,用于报警功能,显得不适合。
(2)蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,应用于电子产品中作发声器件。
采用无源蜂鸣器实现,只要编写相应的程序即可实现发出不同频率的声音。
蜂鸣器所使用的报警频率为单片机内部提供,不需外部提供时钟频率。
因此,减少外围设备元件。
综合上述比较,我们的设计采用二者的结合,我们采用蜂鸣器做报警器,在三次输入密码不正确后,蜂鸣器就会响;而发光二极管,我们则是利用它来进行判断输入的密码是否正确。
3.5液晶显示模块
方案一:
数码管是利用发光二极管的特性组合而成数字显示器件,通过控制相应的二极管的状态显示相应的数字。
使数码管正常显示就得有驱动电路驱动相应的段码,数码管现实方式可分为静态显示和动态显示,静态显示方式只适合显示单个的数字,因此设计应采用动态显示方式。
由于动态显示方式利用人眼视觉暂留的特性,扫描的时间应不大于20毫秒,占用系统资源大,而且显示的个数和字型有限,在本设计中不易采用。
方案二:
1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点型液晶模块它有若干个5×7或者5×11等点阵字符位组成,每个点阵字符位都可以显示一个字符。
每位之间有一个点距的间隔,每行之间也有也有间隔,起到了字符间距和行间距的作用。
1602的驱动电路带有11条指令,可以很方便的控制液晶的现实效果如:
清屏、左移右移、光标显示。
而且1602显示的字符在下一条指令为到来之前不会改变,也就是能够维持显示的字符,1602液晶占用的系统资源也少。
综合比较上述两种方案,应采用1602液晶组成本设计的显示模块。
3.6键盘矩阵模块
STC89C52单片机P2引脚外接4×4矩阵键盘,按键有0~9,还有回格键、清屏、设初始密码、修改密码等按键。
开机后液晶屏显示提示语,按数字键即可输入密码,按修改密码键,在正确输入旧密码的前提下,即可修改密码。
4硬件设计流程
本设计为红外遥控密码锁,硬件部分总共分为以下几个模块:
4.1单片机最小系统电路
单片机最小系统电路原理图如图8所示。
图8单片机最小系统电路
4.2报警电路
报警电路原理图如图9所示。
图9报警模块电路
4.3红外发射电路
红外发射电路原理图如图10所示。
图10红外发送电路
4.4红外接收电路
红外接收模块原理图如图11所示。
图11红外接收电路
4.5液晶显示器
液晶显示屏的引脚图如图12所示。
图12液晶显示屏引脚图
5软件设计流程
系统的软件设计才用C语言,对单片机进行编程实现各项功能。
在软件设计过程中,采用模块化设计思想,利用“化整为零”、“化零为整”的方法,分别设计各个子模块的流程图,然后按照流程图去编写对应程序,并在此过程中,分模块进行编译与调试。
5.1KeiluVision3软件简介
KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
用过汇编语言后再使用C来开发,体会更加深刻。
KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
C51工具包的整体结构,其中uVision与Ishell分别是C51forWindows和forDos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。
开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。
然后分别由C51及A51编译器编译生成目标文件(.OBJ)。
目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。
ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中(王为青等,2007)。
5.2红外发射模块编码
在发射模块编码过程中,一定要严格按照NEC协议的标准进行设计。
因此,在编码之前,必须理解并掌握NEC编解码的定义。
5.2.1红外遥控编码思想
遥控发射器专用芯片很多,根据编码格式可以分成两大类,这里我们以运用比较广泛,解码比较容易的一类来加以说明,现以日本NEC的uPD6121G组成发射电路为例说明编码原理,我们使用的超薄型红外线遥控器使用的就是6121编码。
当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。
这种遥控码具有以下特征:
采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”,其波形如图13所示。
图13数据波形编码
上述“0”和“1”组成的32位二进制码经38kHz的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。
然后再通过红外发射二极管产生红外线向空间发射。
UPD6121G产生的遥控编码是连续的32位二进制码组,其中前16位为用户识别码,能区别不同的电器设备,防止不同机种遥控码互相干扰,如我们可以同时使用电视机、机顶盒、功放等遥控器,但它们不会产生误触发。
该芯片的用户识别码固定为十六进制01H;后16位为8位操作码(功能码)及其反码。
UPD6121G最多额128种不同组合的编码。
遥控器在按键按下后,周期性地发出同一种32位二进制码,周期约为108ms。
一组码本身的持续时间随它包含的二进制“0”和“1”的个数不同而不同,大约在45~63ms之间。
如下图14所示。
图14遥控编码波形
当一个键按下超过36ms,振荡器使芯片激活,将发射一组108ms编码脉冲,这108ms发射代码由一个起始码(9ms),一个结果码(4.5ms),低8位地址码(9ms~18ms),高8位地址码(9ms~18ms),8位数据码(9ms~18ms)和这8位数据的反码(9ms~18ms)组成。
如果键按下超过108ms仍未松开,接下来发射的代码(连发代码)将仅由起始码(9ms)和结束码(2.5ms)组成。
代码格式(以接收代码为准,接收代码与发射代码反向。
1、位定义如图15所示。
图15“0”码编码波形
2、单发代码格式如图16所示。
图1632位码编码波形
3、连发代码格式如图17所示。
图17重复码编码波形
由于本设计中,我们需要自己设计并制作红外遥控系统,并在编码中使用NEC协议。
5.2.2软件程序资源分配
在程序开始以前,首先要根据电路及设计的需要进行必要的位定义变量、无符号变量、符号变量以及数据表格变量。
1、位定义变量
本设计中位定义变量共有多个,包括按键、红外发射端口、红外指示灯的位定义变量以及各种功能标志位。
特殊定义函数,如键盘扫描函数ucharkey(),红外发射函数voidsend_hw(ucharc),发射引导码函数voidsend_star(),数据编码函数voidsend_char(ucharc)等。
2、无字符局部变量及全局变量
根据在程序中设计到的全局变量,都会在.h头文件里予以声明,可以同时赋初值,若没有赋初值则程序自动赋0。
本程序中设计到的全局变量包括时间变量、按键标志变量、地址变量、显示标志变量、红外收发标志变量等。
bithw;//红外发射标志位
bitkey_bit;//按键重复标记
sbitled=P3^7;//这是红外指示灯的位定义
sbitout=P3^6;////这是红外数据发射端口的位定义
#defineportP2//这是键盘按键的接口定义
5.3程序设计子模块分析
键盘实际上是一组按键开关的集合,在键的闭合和断开过程中,会产生抖动,抖动时间长短和开关的机械特性有关。
键的闭合与断开,反映在行线输出电压上就是呈现高电平或低电平。
为准确判定按键的位置,我们必须消除抖动期的影响(马忠梅等,2003)。
常用软件的方法来消除按键抖动。
其基本思想就是:
在第一次检测到有键按下时,该键所对应的行线为低电平,执行一段1ms的延时子程序后,确认该行线电平是否仍为低电平,如果仍为低电平,则确认该行确实有按键按下。
当按键松开时,行线的低电平变为高电平,执行一段1ms的延时子程序,检测该行线为高电平,说明按键确实已经松开(李明喜,2004)。
采取以上方法,即可消除抖动的影响,延时消抖程序如下。
voiddelay()//1ms误差-0.651041666667μs
{
unsignedchara,b;
for(b=102;b>0;b--)
for(a=3;a>0;a--);
}
5.3.1键盘扫描模块
本设计中采用了4×4矩阵键盘。
其工作原理为:
按建设在行、列线交点上。
行线经过上拉电阻接到+5V上。
无键按下时,行线处于高电平状态;当有按键按下时,行线电平状态将由与此行线相连的列线的电平决定。
按键的识别方法:
1、扫描法
第一步,首先要识别有无键按下。
将所有的列线均置为0电平,然后检查各行线电平是否都为高电平,如果不全为高电平,则有键按下,否则说明无键按下。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 遥控 密码锁 设计 毕业设计