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 顯示、蜂鳴器獨立控制,便于后續擴展;
- 可擴展性強:可增加存儲模塊、門禁控制或遠程通信,實現自動計費和管理。
該系統不僅適用于小型停車場收費管理,也可擴展到智能門禁、圖書館借閱計時、工廠設備使用計時等場景,具有較高的實用性和推廣價值。