都可以满足要求。D1是开锁指示灯;由D2、C5组成开锁。其中D2、C5是为了消除电磁锁可能产生的反向高电压以及可能产生的电磁干扰。电磁锁的选用要视情况而定,但是吸合力要足够且有一定的余量。7第3章软件程序设计本系统软件设计由主程序、初始化程序、LCD显示程序、键盘扫描程序、键功能程序、密码设置程序、EEPROM读写程序和延时程序等组成。3.1主程序流程图如图所示为主程序流程图,开始接上电源,程序进行初始化设置,然后在键盘上输入密码,此系统进行键盘扫描,密码正确,开锁成功,密码错误3次出错报警,选择是否修改密码,若要修改密码,先输入旧密码密码,密码正确后设置新密码,错误时报警,需要两次确认新密码,确认后,密码修改成功,否则结束最终返回。然后启动程序,进行保护,再次在键盘上输入密码,系统进行扫描,如果和之前一样,则执行相同程序,如不是,则执行另一种程序。开开初始化次数加1输入密码密码正确?返返回回NYY开锁程序开锁?N修改密码?次数>3?报警程序修改程序YNNY开始返回主程序流程图3.2按键软件设计3.2.1按键功能程序流程图如图为按键功能流程图,在按键当中,有与输入、开锁、清除、设置、确认的程序相对应的按键,并按顺序与输入的数相比较,当输入正确时,进入密码程序,错误时进行清除,输入两次新密码正确时,可进行重新设置密码,最后确认程序。8开开始始键值=‘输入’?键值=‘开锁’?键值=‘清除’?键值=‘设置’?键值=‘确认’?密码输入程序设置程序清除程序开锁程序确认程序YYYYYNNNN返回N开始返回按键功能流程图3.3密码设置软件设计3.3.1密码设置程序流程图如图为密码设置流程图,开始按下设置键,输入旧密码,如果错误累计三次,进行报警程序。如输入正确,可以修改密码,确认后再次输入新密码,如两次输入一样,则更改成功。如果两次输入的新密码不一样,则修改密码失败,重新返回设置新密码。