1、 任务及设计要求任务及设计要求 1.设计一多位电子密码锁,输入密码用“F”表示,输入密码正确,绿灯亮(或显示 其它标志、 蜂鸣器替代) ,输入密码错误,红灯亮 (或显示其它标志、 蜂鸣器替代) . 2.具有确定键和取消键,在未确定之前可以取消,重新输入. 3.连续输入三次错误密码,红灯闪烁,报警电路动作,键盘锁定. 4.具有密码重置、修改功能. 5.具有密码输入等待操作时间限制功能,超过限定时间报警. 6.显示北京时间,时间可调整. 7.可利用蜂鸣器添加提示音. 系统原理框图系统原理框图 硬件原理图硬件原理图 元件清单元件清单 元件 数量 元件 数量 ADUC848 芯片 01 片 三极管 若
2、干 按键 18 个 MAX232 01 片 8 段数码管 05 位 二极管 若干 AT24C08 01 片 下载线 01 根 蜂鸣器 01 个 电源线 01 根 电阻 若干 开关 01 个 电容 若干 硬件原理图硬件原理图 仿真用原理图仿真用原理图 由于元件库缺少 ADUC848,故使用了 STC89C51 代替仿真,因为端口两个芯片的 P1口输入输出的设置不同,在仿真中修改了键盘扫描函数,以适用STC89C51的仿 真. 电源模块原理图电源模块原理图 有如下 3 种供电方式: 1/5V 电源适配器供电(开关往上拨、插针 1 下面两脚接跳线帽). 2/712V 电源适配器供电(开关往上拨、插针
3、 1 上面两脚接跳线帽). 3/USB 供电(开关往下拨). RS232RS232 串口连接原理图串口连接原理图 该模块中采用 maxin 公司的 max232 作电平转换,接上串口转换下载线就可以从 计算机上下载程序了. 数码管数码管显示显示模块原理模块原理 本开发板采用共阴极数码管,段码由PNP三极管驱动,位码由NPN 型三极管驱动. 本设计中使用了低 5 位的数码管. 蜂鸣器蜂鸣器原理图原理图 本设计中采用无源电磁式蜂鸣器,蜂鸣器由 PWM1(P2.6)控制.PWM1 为片内 PWM 模块的输出.蜂鸣器的驱动采用普通 NPN 三极管. 按键输入按键输入模块原理模块原理图图 由于 P1 口
4、(用于行扫描)内部无上拉电阻,为使无键按下时行信号为高电平,故 将行信号接上拉电阻,电阻大小 10K 即可. P2.0P2.3 为 4X4 矩阵式键盘列扫描信号. 程序程序 主要程序流程图主要程序流程图 程序程序 #include #include /* * 类型定义 * */ #define uint unsigned int #define uchar unsigned char /* * 状态定义 * */ #define opened 0 #define new1 15 #define new2 16 #define succed 5 #define fanin 10 #define null 11 #define error 12 #define different 13 #define tover 14 /* * 按键定义 * */ #define enter 10 #define back 11 #define trevise 12 #define revise 13 #define cancel 14 #define vain 15 #define off 16 #define end 17 #define finish 18 /*