1.功能
设计红外线编码电路、红外线解码开锁电路、掉电保护电路、声光提示报警电路、键盘及显示电路,编写相应的程序代码并进行结果测试和仿真演示。
利用红外遥控技术和单片机的相应技术实现密码锁的开锁、出错报警、超次锁定、修改用户密码等基本的密码锁的功能以及遥控、掉电存储、声光提示等功能。
注:
设计的系统既可以通过发送端的按键进行红外控制,也可以通过接收端的按键进行控制,比较灵活,发送端和接收端的控制可以自由切换,比如我发送端操作到一半的时候,接收端可以继续操作,是通过在接收端的按键检测函数keyscan()中增加检测红外键值是否改变的代码:
if(IrKey != 0xff){
key = IrKey;
IrKey = 0xff;
}
其中IrKey的值是通过“读取红外数值的中断函数ReadIr()”中改变的,当接收到红外键值信号时,IrKey便会变成相应的键值。
2.红外发射接收原理
NEC协议规定的红外发射格式:
发送端:先检测矩阵键盘有没有按下,如果有按键按下的话,则调用发射函数将相应的键值发送出去;
接收端:HX1838红外接收管接收到的信号和发送的信号正好相反,接收函数从接收到的信号中取出键值,然后根据键值去执行接收端相应的操作(开锁,修改密码等等)。
3.接收端仿真
在接收端的仿真中密码锁的开锁、出错报警、超次锁定、修改用户密码等基本的密码锁的功能以及掉电存储、声光提示等功能都实现,只剩下红外遥控。
(1)输入密码开锁
开机界面:
按A键输入密码,进行开锁:
密码正确,成功开锁(LED灯灭):
密码输入错误:
(2)修改存储在24C06里面的密码
按修改密码键,修改密码之前需要输入旧密码:
输入旧密码正确:
输入旧密码错误:
之后输入新的密码:
提醒再次输入新密码:
更改密码成功:
(3)重置密码
按SET键3s以上,重置24C02存储器中密码:
(4)输入错误密码3次以上报警
输入密码错误次数超过3次报警界面(蜂鸣器响):
4.系统图
发送端:
接收端: