1. 项目概述
这个基于单片机的智能楼宇门禁系统是我去年指导的一个本科毕业设计项目,经过多次迭代现在已经可以稳定运行在实际楼宇环境中。系统最大的特点就是采用了双验证机制 - 既支持传统的按键密码输入,又支持IC卡刷卡验证,两种方式可以单独使用也可以组合使用,大大提高了门禁系统的安全性和灵活性。
核心控制芯片选用了经典的AT89C51单片机,虽然现在看起来有点"老古董"的感觉,但对于这种中小规模的控制系统来说完全够用,而且价格便宜、资料丰富,特别适合学生做毕业设计。整个系统的硬件成本控制在200元以内,但实现的功能却相当完善。
2. 系统硬件设计
2.1 核心控制器选型
AT89C51是我们最终选择的单片机型号,主要基于以下几点考虑:
- 价格优势:相比STM32等新型单片机,AT89C51价格只有1/3左右
- 开发简便:使用Keil C51开发环境,学习曲线平缓
- 资源足够:4KB Flash完全满足程序存储需求,128B RAM也够用
- 接口丰富:32个I/O口正好满足所有外设连接需求
注意:AT89C51已经逐步停产,实际项目中可以考虑替换为STC89C52,功能完全兼容且价格更低。
2.2 输入设备配置
系统采用了4×4矩阵键盘作为主要输入设备,通过P1口连接单片机。键盘布局设计如下:
| 按键 | 功能 |
|---|---|
| 0-9 | 数字输入 |
| * | 确认/功能键 |
| # | 返回/取消键 |
| A | 进入管理模式 |
| B | 修改密码 |
| C | IC卡管理 |
| D | 开门(测试用) |
键盘扫描采用行列反转法,通过定时器中断每50ms扫描一次,既保证了响应速度又不会占用太多CPU资源。
2.3 RFID模块选型与连接
RC522 RFID模块通过SPI接口与单片机通信,具体连接方式:
| RC522引脚 | 单片机引脚 |
|---|---|
| SDA | P2.0 |
| SCK | P2.1 |
| MOSI | P2.2 |
| MISO | P2.3 |
