1 系统功能介绍
本设计题目为 基于51单片机射频RFID停车刷卡计时收费系统设计,旨在实现停车场车辆的刷卡计时和收费管理。系统通过单片机控制,结合 RFID 射频识别技术、LCD1602 显示以及蜂鸣器报警,实现停车时间的智能计时、累加及超时提醒功能。
系统的主要功能如下:
-
RFID刷卡计时
- 系统通过 RFID 模块读取车辆刷卡信息;
- 用户刷卡一次,计时器开始倒计时 5 秒;
- 用户可以连续刷卡,每次增加 5 秒倒计时,总共允许刷 5 次,最大计时 25 秒;
- 倒计时实时在 LCD1602 上显示,便于用户和管理员查看剩余时间。
-
超时报警
- 当倒计时结束时,蜂鸣器会长鸣报警,提醒管理员或用户停车时间已到;
- 系统可以通过蜂鸣器声音长度区分不同状态,增加提示效果。
-
LCD1602 显示功能
- 实时显示剩余时间及刷卡次数,清晰直观;
- 提供人机交互界面,便于监控停车计时状态。
-
系统可扩展性
- 可以增加数据记录模块,将刷卡时间和次数存入存储芯片,实现收费统计;
- 可以结合继电器或电动门控制,实现自动放行或停车门控制。
2 系统电路设计
系统硬件由 STC89C52 单片机核心电路、RFID 模块、LCD1602 显示模块、蜂鸣器报警模块、电源电路 组成,下面详细介绍各模块设计。
2.1 单片机核心电路
系统采用 STC89C52 单片机作为主控芯片,其特点和作用如下:
- 内置 8KB Flash 和 256B RAM,满足刷卡计时、倒计时和显示逻辑需求;
- 拥有丰富的 I/O 端口,可同时控制 RFID 模块、蜂鸣器、LCD1602 显示器;
- 支持定时器和中断,可实现精确的倒计时和超时报警功能;
- 工作电压 5V,适合低功耗设计。
在系统中,单片机负责:
- RFID 信号采集与识别;
- 倒计时逻辑控制;
- LCD1602 显示剩余时间和刷卡次数;
- 蜂鸣器报警控制。
2.2 RFID 模块电路
RFID 模块用于实现刷卡识别:
- 常用模块为 RC522 或 MFRC522,通过 SPI 接口与单片机通信;
- 模块输出刷卡信号,单片机识别卡号,实现计时累加功能;
- 用户每次刷卡后,模块向单片机发送中断信号,触发计时累加逻辑。
2.3 LCD1602 液晶显示电路
LCD1602 用于显示倒计时和刷卡次数,特点如下:
- 采用 4 位数据接口,节省 I/O 口资源;
- 可显示字符和数字,清晰直观;
- 实时刷新剩余时间及累计刷卡次数,便于用户查看;
- 提供初始化、光标定位和数字显示函数,便于软件控制。
2.4 蜂鸣器报警电路
蜂鸣器用于超时报警:
- 由单片机控制高低电平驱动;
- 当倒计时结束时,蜂鸣器发出长鸣提示;
- 可根据设计要求调整报警持续时间和响声频率;
- 与单片机 I/O 口连接,直接控制输出。
2.5 电源电路
系统电源设计要求稳定、低干扰:
- 使用 7805 稳压芯片提供 5V 稳定电压;
- 输入电压可为 7~12V DC,经过稳压和滤波后供单片机及各模块使用;
- 电源电容滤波器保证系统运行平稳,防止计时误差或显示异常。
3 程序设计
程序设计采用 C 语言,在 Keil IDE 环境下开发,通过 STC-ISP 下载到 STC89C52 单片机。程序主要模块包括:
- 主程序:初始化硬件,循环检测刷卡和倒计时逻辑;
- RFID 刷卡识别程序:读取刷卡信息,实现计时累加;
- 倒计时程序:控制剩余时间显示及计数器逻辑;
- LCD 显示程序:实时显示倒计时及刷卡次数;
- 蜂鸣器报警程序:倒计时结束时发出长鸣提示。
3.1 主程序框架
#include <reg52.h>
#include "lcd1602.h"
#include "delay.h"
#include "rfid.h"sbit Buzzer = P1^0;unsigned int timer = 0;
unsigned char swipe_count = 0;void main()
{LCD_Init();RFID_Init();Buzzer = 0;while(1){if(RFID_Swipe_Detected()){if(swipe_count < 5){timer += 5; // 每次刷卡增加5秒swipe_count++;LCD_Update(timer, swipe_count);}}if(timer > 0){Delay_ms(1000);timer--;LCD_Update(timer, swipe_count);}else{Buzzer = 1; // 倒计时结束,蜂鸣器报警}}
}
3.2 RFID 刷卡识别程序
bit RFID_Swipe_Detected(void)
{if(RFID_Read()) // 读取到刷卡信号{return 1;}else{return 0;}
}
3.3 LCD1602 显示程序
void LCD_Update(unsigned int time, unsigned char count)
{LCD_Clear();LCD_SetCursor(0,0);LCD_PrintString("Time Left:");LCD_PrintNumber(time);LCD_SetCursor(1,0);LCD_PrintString("Swipe Count:");LCD_PrintNumber(count);
}
3.4 蜂鸣器报警程序
void Buzzer_Alarm(void)
{Buzzer = 1; // 高电平发声Delay_ms(5000); // 持续5秒报警Buzzer = 0;
}
4 总结
本设计通过 STC89C52 单片机实现 RFID 停车刷卡计时功能,结合 LCD1602 显示和蜂鸣器报警,完成了智能化停车时间管理。系统的主要特点如下:
- 刷卡累加计时:支持最多刷 5 次,每次增加 5 秒,便于灵活收费管理;
- 倒计时显示:LCD1602 实时显示剩余时间和刷卡次数,用户可直观了解停车状态;
- 超时报警:倒计时结束时蜂鸣器发声提醒,确保管理员或用户知晓超时情况;
- 模块化设计:单片机、RFID 模块、LCD 显示、蜂鸣器独立控制,便于后续扩展;
- 可扩展性强:可增加存储模块、门禁控制或远程通信,实现自动计费和管理。
该系统不仅适用于小型停车场收费管理,也可扩展到智能门禁、图书馆借阅计时、工厂设备使用计时等场景,具有较高的实用性和推广价值。