当前位置:首页 > 基于51单片机的红外遥控密码锁_毕业设计
由于密码采用双控模式,在主控模块采用矩阵键盘进行密码的输入及修改,因此,将红外接收端接到单片机的外部中断1来检测是否有红外信号,进而判断遥控器是否有按键按下,并进行密码的输入与修改。由原理图可知,接收头的三个管脚,只需要将GND接地VCC接入电源,另一根输出线接入到单片机的外部中断1口即可。
红外接收头与单片机的连接硬件电路如下图所示:
VS_1838bGNOutDVcc+5V STC89C52INT1P3^3
图16 红外接收头连接图
3.6 模拟锁与报警电路设计
本次设计采用led来模拟锁,将发光二极管接到单片机的IO口上,实际应用中接上一个1K电阻以保证发光二极管的亮度。如下图所示:
图17 led连接图
报警电路采用的是蜂鸣器,由于蜂鸣器的工作电流一般比较大,这将导致
【7】
单片机的IO口无法直接进行驱动【6】。以至于单片机的I/O 口是无法直接驱动,
所以要使用放大电路用以驱动蜂鸣器,本次设计采用三极管来进行蜂鸣器的驱动。
蜂鸣器驱动电路的外围设计:蜂鸣器、三极管再加上一个1K电阻接到单片机的IO口上。蜂鸣器外围电路如下:
图18 蜂鸣器连接图
3.7 系统PCB设计
根据上述每个模块的设计,以及单片机的各个管脚特性整体电路如图19。由于LCD接的是单片机的P0口所以每个管脚要接一个10K的上拉电路,即10K排阻。电源部分采用的是USB给单片机提供+5V的电源,发光二极管来指示有没有给单片机供电。再考虑每个模块需要加入的外围电路,以及接入到单片机相应的IO口,为了方便程序的修改,要严格按照仿真的接法接到单片机的管脚,本设计总体原理图如下图所示:
图19 总体原理图
4 系统软件设计 4.1 程序设计思路
本次设计的密码锁,采用的是双控模式,即在主控模块中有4×4矩阵键盘可以输入数字来进行改密等功能,同时也可以用遥控器来实现。
首先考虑到矩阵键盘的扫描问题,单片机IO口默认为高电平,如上面矩阵键盘图所示,键盘的列和行分别接P1口的高低电平,可以先固定在某一行进行扫描,利用switch语句返回每个按键锁表示的数值及跳转到某个功能函数中去,以此来实现按键控制。
其次是1602LCD显示问题,先将LCD初始化,首行显示提示语例如登陆界面 显示welcome,开锁是显示input code等。第二行用来显示密码。考虑到安全性,将会将数字显示成*,提示语及密码均显示在LCD的正中间以保证屏幕的整体美观效果。其中密码为六位数。
然后是AT24c02存储器,防止密码断电丢失。先写24c02的驱动程序,时钟信号,读写数据等等,要考虑怎么将密码写入到24c02中,以及从中读取等问题。
让LCD显示字符的同时保存到AT24c02中。
最后要考虑远程遥控问题,遥控器来发送红外波,并由接收头接收信号经过处理之后传到单片机中,再经过程序运行处理来进行开锁、改密等。由前面的硬件介绍部分可知接收头连接的是外部中断1,当发射器发送信号时,外部中断1打开,此时进入中断程序,遥控器的21个按键有各自的键码值,同上述按键扫描采用switch语句可返回各个按键代表的数字及功能,以此来实现遥控器对密码锁的控制。
另外,密码锁是用发光二极管来模拟,只需用高低电平来控制IO口即可。即当接发光二极管接的IO口为低电平时led点亮(可认为开锁)。当IO口味高电平时led熄灭,此时认为上锁。蜂鸣器是用三极管来驱动接入到单片机的IO口,如发光二极管,当IO口为低电平时蜂鸣器响。所以,当密码错误时,给IO口送低电平即可达到报警效果。 4.2 算法与流程图
鉴于密码锁在输入密码时可有矩阵按键及遥控器进行双控,红外遥控采用中断的方式进行接收信号,先是按键的扫描,判断是执行某个任务还是将输入密码输送到LCD1602上面。
接收头的输出管脚连接的是单片机的外部中断1口,因此,在程序运行时,首先要判断是否产生中断。先是遥控器发射出红外波,由接收部分将发射过来的信号转换为电信号,再经过放大电路等将其还原成相应的编码信号,然后通过译码器译码,将相应的解码赋予不同的功能,从而进行对密码锁的控制,实现遥控效果。本设计的主流程图如下图所示:
共分享92篇相关文档