新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于单片机的简易红外遥控密码锁设计与实现

基于单片机的简易红外遥控密码锁设计与实现

作者:时间:2012-12-10来源:网络收藏

2 系统软件

软件部分的汇编语言,采用模块化思想,以主程序为核心设置了多个功能模块子程序。主程序主要起到一个导向和决策功能,决定什么时候系统该做什么,系统的各种功能主要是通过调用具体的子程序来

2.1 发射模块程序的设计

发射模块的编码与调制工作是由软件编程的。当按键K按下时,密码信号依次送往数据缓冲器SBUF,然后利用“0”电平调制、“1”电平不调制的方法,将二进制信号调制成频率为38.5 kHz的间断脉冲串信号,通过P3.O口输出,驱动发光二极管,最后以波长940 nm的光发出红外信号。红外发射模块程序流程图如图6所示。

38.5 kHz已调波的实现是依据汇编语言具有严格的指令周期来实现的,低电平与高电平均持续13个机器周期,这里采用的时钟晶振是12 MHz,所以产生的调制波的精确频率为38.46 kHz。

2.2 本机接收处理模块程序的设计

本机处理部分可以实现密码设置和修改、本机按键*、按键提示、密码错误报警、超次提示、*和按键之间超过3 s自动复位等所有的功能。本机处理的主程序流程图如图7所示。

2.2.1 密码设置子程序的设计

系统只有内部上电复位的时候才能设置或者修改密码。当系统复位时,即进入了等待用户按键设置新密码状态,用户输入的8位密码依次保存在RAM存储单元的41H~48H单元。当8位密码设置完成后,蜂鸣器鸣响1 s提示密码已成功设置。当按键*时,输入的密码依次和RAM存储器中41H~48H单元的数相比较,只要有1位不相同,门锁不但不能打开,而且还发出报警信号。

2.2.2 按键间隔超时的判断及复位

前文提到了当按键间隔超过3 s有自动复位的功能,设置密码和按键*时分别采用定时器T0和T1来实现。两定时器均设为50 ms定时中断,连续产生60次中断的时间是3 s。当确实有键按下并弹起时,打开相应定时器中断并允许其计数。假如在下一按键按下时,发生定时中断还不到60次,则定时器停止计数并重设计数初值及定时中断次数;如果在下一按键按下之前,定时器已发生60次中断,表示3 s已到,则系统自动进行软件复位。设置密码时按键间隔超时的复位程序代码如下:

以上程序当执行完RETI指令后,PC指针指向0000H,程序从地址0000H处开始执行,即实现了软件复位。

当键盘*时,如果按键间隔超过3 s,这时的程序“复位”并不是从地址0000H处执行,而是回到“密码设置结束提示音”后的那一条指令处开始执行,利用单步执行指令的方法得到了此条指令的地址:0FC00H。

3 结语

该设计的亮点在于没有扩展任何E2PROM的情况下,实现了任意修改密码的功能,且采用软件复位的方法取消无效按键。通过对本系统设置密码、键盘*、红外*等各方面的情况进


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭