总体设计思路 1、系统设计要求 实现密码设置、密码修改、键盘输入、屏幕显示、警报响应 功能模块包含:密码存储模块、输入模块、显示模块、报警模块 各模块功能: 输入模块:分为密码输入按键与功能按键,用于完成密码锁输入功能。 密码存储模块:用于完成掉电存储功能,使修改的密码断电后仍能保存。 显示模块:用于完成对系统状态显示及操作提示功能。 报警模块:完成密码输入错误达上限时警报功能 2实现方案 主芯片使用89c51芯片,存储部件使用AT24C02,LCD显示器用于显示作用,报警部分用到的是蜂鸣器 输入模块: 3*4矩阵式键盘输入,占用p1(0-7),用键盘扫描程序检测按键被按下并执行相应操作,屏幕平常显示当前时间,按下解锁键,屏幕显示输入密码,密码正确则将连有电磁继电器的端口置1,0,通过电流吸合或弹开衔铁,来模拟开锁过程。连续5次输错蜂鸣器报警!(中断,定时器,逻辑控制均由内部代码控制) 密码存储模块: 器材:AT24C02。AT24C02是一个2K位串行CMOS E2PROM, 内部含有256个8位字 节。AT24C02有一个8字节页写缓冲器。该器件通过IIC总线接口进行操作,有一个专门的写保护功能。在单片机上的应用广泛, 可以实现掉电数据不丢失功能。 管脚图: 管脚功能: 管脚名称 | 功能 | A0、A1、A2 | 器件地址选择 | SDA | 串行数据、地址 | SCL | 串行时钟 | WP | 写保护 | VCC | +1.8V~6.0V工作电压 | VSS | 地 |
SCL 串行时钟 AT24C02串行时钟输入管脚用于产生器件所有数据发送或接收的时钟,这是一个输入管脚。 SDA 串行数据/地址 AT24C02 双向串行数据/地址管脚用于器件所有数据的发送或接收,SDA 是一个开漏输出管脚,可与其它开漏输出或集电极开路输出进行线或(wire-OR)。 A0、A1、A2 器件地址输入端 这些输入脚用于多个器件级联时设置器件地址,当这些脚悬空时默认值为0。当使用AT24C02 时最大可级联8个器件。如果只有一个AT24C02被总线寻址,这三个地址输入脚(A0、A1、A2 )可悬空或连接到Vss。 WP 写保护 如果WP管脚连接到Vcc,所有的内容都被写保护只能读。当WP管脚连接到Vss 或悬空允许器件进行正常的读/写操作 AT24C02的器件地址: 显示模块: 器件:LCD1602 接口: LCD1602是很多单片机爱好者较早接触的字符型液晶显示器,它的主控芯片是HD44780或者其它兼容芯片。与此相仿的是LCD12864液晶显示器,它是一种图形点阵显示器,能显示的内容比LCD1602要丰富得多,除了普通字符外,还可以显示点阵图案,带有汉字库的还可以显示汉字,它的并行驱动方式与LCD1602相差无几,所以,在这里花点时间是值得的。 一般来说,LCD1602有16条引脚,据说还有14条引脚的,与16脚的相比缺少了背光电源A(15脚)和地线K(16脚)。这块LCD1602的型号是HJ1602A,它有16条引脚。如图: 它的16条引脚定义如下: 引脚号 | 符号 | 引脚说明 | 引脚号 | 符号 | 引脚说明 | 1 | VSS | 电源地 | 9 | D2 | 数据端口 | 2 | VDD | 电源正极 | 10 | D3 | 数据端口 | 3 | VO | 偏压信号 | 11 | D4 | 数据端口 | 4 | RS | 命令/数据 | 12 | D5 | 数据端口 | 5 | RW | 读/写 | 13 | D6 | 数据端口 | 6 | E | 使能 | 14 | D7 | 数据端口 | 7 | D0 | 数据端口 | 15 | A | 背光正极 | 8 | D1 | 数据端口 | 16 | K | 背光负极 |
对这个表的说明: 1. VSS接电源地。 2. VDD接+5V。 3. VO是液晶显示的偏压信号,可接10K的3296精密电位器。或同样阻值的RM065/RM063蓝白可调电阻。 4. RS是命令/数据选择引脚,接单片机的一个I/O,当RS为低电平时,选择命令;当RS为高电平时,选择数据。 5. RW是读/写选择引脚,接单片机的一个I/O,当RW为低电平时,向LCD1602写入命令或数据;当RW为高电平时,从LCD1602读取状态或数据。如果不需要进行读取操作,可以直接将其接VSS。 6. E,执行命令的使能引脚,接单片机的一个I/O。 7. D0—D7,并行数据输入/输出引脚,可接单片机的P0—P3任意的8个I/O口。如果接P0口,P0口应该接4.7K—10K的上拉电阻。如果是4线并行驱动,只须接4个I/O口。 8. A背光正极,可接一个10—47欧的限流电阻到VDD。 9. K背光负极,接VSS。 报警模块: 器件:蜂鸣器 每按下一个键蜂鸣器就响一下,当密码错误时发出警报声报警 |