○2AT24CO2是ATMEL公司的一个2K位串行CMOS E²PROM, 内部含有256个8位字节,CATALYST公司的先进CMOS技术实质上减少了器件的功耗。AT24C02有一个16字节页写缓冲器。该器件通过IIC总线接口进行操作,有一个专门的写保护功能。其引脚图如下
图12 AT24C02引脚图及功能表
本系统利用STC89C52的P2.5和P2.6来模拟I²C总线,实现单片机STC89C52与AT24C02之间的数据交换。P2.6与SDA相连,P2.5与SCL相连。电路如图:
图13 STC89C52与AT24C02连接电路图
图中AT24C02的A0、A1、A2三条地址线均接地,SDA和SCL两条线分别经R28和R29上拉至高电平,保证数据不会被非法修改。WP管脚接VSS或悬空,允许器件进行正常的读/写操作。C19为电源去藕电容。另外根据AT24C02的控制字格式(如图14),可得出器件地址为A0H。
1 0 1 0 0 0 0 R/W  ̄
图14 AT24C2的控制字格式
AT24C02中带有片内地址计数器。每写入或读出一个数据字节后,该地址计数器自动加1,自动指向下一个存储单元。
4. 系统软件设计
4.1 应用软件设计原则
在控制系统中,软件设计与硬件设计同等重要。硬件电路设计好后,系统的主要功能要靠软件来实现,而且软件的设计在很大程度上决定了系统的性能的好坏。为了满足系统的要求,软件编程要求:易理解性、易文护性,实时性,准确性,可靠性。
4.2 主程序流程图
在本系统中,采用模块化设计,各功能程序分别编写和调试,不涉及复杂的数据运算。用户在使用系统的过程中,可能在任何时刻按下任何按键,而程序都必须对此作出正确响应。系统的主程序如图15所示。我们设计的主程序中主要的就是对按键进行扫描和键盘值的度取以及一些子程序的调用,其中包括系统的初始化、按键、密码修改、密码开锁、报警程序等。
4.3 密码设定子程序流程图
如下图可以看出,修改密码的处理流程跟开锁程序流程类似,都需检查密码是否正确,错误的话,提示重新输入,只有输入密码正确才可以进行修改密码,然后,输入新密码,只有当连续两次输入新密码正确,新密码才能够得以存储,修改密码成功。在此过程中,LCD都会显示相应的命令,提示进行相应的操作。
4.4 固定键盘扫描子程序流程图
4.5 密码比对子程序流程图
4.6 无线发送流程图
4.7 无线遥控接收解码流程图
如果主程序判断到解码器有数据送来时,调用遥控接收处理子程序,并从解码器获得密码数据、比对密码及执行开锁操作。
4.8 LCD显示子程序
当每次进行不同的操作,需要更新显示内容时,LCD显示子程序都会被调用,来显示相应的命令。其流程如图21所示。
4.9 遥控密码系统的操作方法
密码正确开锁:当6位有效密码输入正确时,单片机使PT2262的编码启动端14脚启动,发射数据。当PT2272数据管脚地址码与PT2262一致,然后数据信号输入端接收PT2262模块发送的信号,然后使电子锁动作,完成开锁。
密码错误报警:在输入6位有效密码时,必须按照密码的先后序输入,如顺序错误或密码不对时,这时不进行无线信号的发送。P3.3口输出低电平使蜂鸣器发出报警信号,用以提醒用户密码错误。
密码输入有效显示:为了帮助我们确信是否有键按下,我们特在电路中设置了显示电路。而为了防止密码外泄,显示时,并不是显示用户按下的数字符号。有键按下,对应显示器显示*,这样巧妙的保护了密码。 STC89C52单片机遥控电子密码锁的设计+电路图+源程序(6):http://www.youerw.com/tongxin/lunwen_1497.html