1 系統功能介紹
本設計題目為 基于51單片機智能化交通紅綠燈堵車流量紅外設計,主要用于十字路口交通信號智能控制,通過紅外避障檢測車流量,自動調節紅綠燈時間,緩解擁堵。該系統由單片機、LED燈、紅外避障傳感器、LCD1602液晶顯示、電源等模塊組成,實現智能化、實時化的交通管理功能。
系統的主要功能如下:
-
十字路口紅綠燈控制
- 道路方向為東西南北,每條道路配備 2 套紅綠燈(紅、黃、綠);
- 系統在正常模式下依次控制紅燈亮 10 秒、黃燈亮 3 秒、綠燈亮 10 秒,循環運行;
- 每套紅綠燈同時只有一個燈亮,保證交通安全。
-
紅外避障檢測與綠燈延時
- 在南北方向設置紅外傳感器,檢測車輛數量;
- 當南北綠燈情況下檢測到車輛超過 5 輛,綠燈延長 10 秒,同時東西方向紅燈延長 10 秒;
- 在東西方向同樣設置紅外傳感器,達到車流量閾值時,東西綠燈延長 10 秒,南北紅燈延長 10 秒;
- 每次綠燈延時只允許一次,避免影響另一方向車道運行。
-
LCD1602顯示功能
- 實時顯示東西南北方向紅綠燈狀態;
- 顯示南北、東西方向的車流量信息。
-
智能化調節邏輯
- 根據紅外傳感器采集的車流量,自動調整綠燈時間,保證高峰期通車效率;
- 系統具備循環運行能力,實現全天候智能化控制。
通過以上功能,系統不僅完成基本的紅綠燈控制,還具備智能交通管理能力,對緩解交通擁堵具有重要意義。
2 系統電路設計
本系統硬件電路由 STC89C52 單片機核心電路、LED燈指示電路、紅外避障傳感器電路、LCD1602 液晶顯示電路、電源電路 等組成。下面詳細介紹每個模塊。
2.1 單片機核心電路
系統采用 STC89C52 單片機作為主控芯片,特點如下:
- 內置 8KB Flash 和 256B RAM,滿足紅綠燈控制及車流量處理需求;
- 多路 I/O 端口,可同時控制 LED 燈、紅外傳感器及 LCD 顯示;
- 支持定時器和中斷,便于實現循環定時與車流量檢測邏輯;
- 工作電壓 +5V,兼容低功耗設計。
單片機在系統中主要負責:
- 紅綠燈的定時切換與控制;
- 采集紅外傳感器數據,實現車流量檢測;
- 控制 LCD1602 顯示燈狀態及車流量參數;
- 判斷是否需要綠燈延時,并處理延時邏輯。
2.2 LED燈指示電路
每條道路配備 2 套 LED 紅綠燈,每套包含紅、黃、綠三個 LED,單片機通過 I/O 端口控制其亮滅:
- 紅燈亮時,禁止車輛通行;
- 綠燈亮時,允許車輛通行;
- 黃燈作為過渡燈,提示車輛準備停止。
LED 電路通過限流電阻連接單片機 I/O 口,保證 LED 發光穩定,并防止 I/O 口損壞。
2.3 紅外避障傳感器電路
為了實現智能化綠燈延時,系統在南北和東西方向分別設置紅外避障傳感器:
- 紅外傳感器通過檢測車輛紅外反射信號判斷車輛數量;
- 當綠燈狀態下車流量達到設定閾值(5 輛),單片機接收傳感器信號后延長綠燈時間;
- 紅外傳感器輸出信號為高低電平,單片機通過 I/O 口采集并計數。
2.4 LCD1602 液晶顯示電路
LCD1602 用于實時顯示交通狀態和車流量信息:
- 顯示東西南北燈的當前狀態(紅、黃、綠);
- 顯示南北、東西方向當前車流量;
- 通過 4 位數據接口與單片機通信,節省 I/O 資源;
- 提供清晰、直觀的顯示界面,便于管理人員觀察路口狀態。
2.5 電源電路
系統采用 +5V 穩壓電源供電,電源部分設計包括:
- 穩壓芯片(如 7805)提供穩定 5V 電源;
- 電容濾波器保證電壓平穩,避免干擾單片機運行;
- 紅外傳感器與 LED 燈電源分開,保證信號采集和顯示穩定性。
3 程序設計
程序設計基于 C 語言,在 Keil 開發環境下完成,通過 STC-ISP 下載到單片機。程序主要包括:
- 主程序:初始化硬件、循環執行紅綠燈控制及車流量檢測;
- 紅綠燈控制程序:實現紅黃綠燈的定時切換及延時邏輯;
- 紅外傳感器采集程序:計數車流量,判斷是否需要延時綠燈;
- LCD顯示程序:實時顯示紅綠燈狀態與車流量參數;
- 延時控制程序:實現綠燈延時一次的邏輯。
3.1 主程序框架
#include <reg52.h>
#include "lcd1602.h"
#include "delay.h"sbit Red_NS = P1^0;
sbit Yellow_NS = P1^1;
sbit Green_NS = P1^2;sbit Red_EW = P1^3;
sbit Yellow_EW = P1^4;
sbit Green_EW = P1^5;sbit Infra_NS = P3^0;
sbit Infra_EW = P3^1;unsigned char count_NS = 0;
unsigned char count_EW = 0;
bit NS_delay_flag = 0;
bit EW_delay_flag = 0;void main()
{LCD_Init();while(1){Traffic_Control_NS();Traffic_Control_EW();LCD_Update();}
}
3.2 南北方向紅綠燈控制
void Traffic_Control_NS(void)
{Red_NS = 1; Yellow_NS = 1; Green_NS = 0; // 綠燈亮count_NS = 0; NS_delay_flag = 0;for(int i=0;i<20;i++) // 每次循環約0.5s,總計10s{if(Infra_NS == 1) count_NS++;Delay_ms(500);}if(count_NS >= 5 && NS_delay_flag == 0) // 達到閾值延時一次{for(int j=0;j<20;j++) Delay_ms(500); // 延長10sNS_delay_flag = 1;}Green_NS = 1; Yellow_NS = 0; Red_NS = 1; // 黃燈亮3秒Delay_ms(3000);Red_NS = 0; Yellow_NS = 0; Green_NS = 1; // 紅燈亮10秒Delay_ms(10000);
}
3.3 東西方向紅綠燈控制
void Traffic_Control_EW(void)
{Red_EW = 0; Yellow_EW = 0; Green_EW = 1; // 紅燈亮count_EW = 0; EW_delay_flag = 0;for(int i=0;i<20;i++){if(Infra_EW == 1) count_EW++;Delay_ms(500);}if(count_EW >= 5 && EW_delay_flag == 0){for(int j=0;j<20;j++) Delay_ms(500); // 延長10sEW_delay_flag = 1;}Green_EW = 0; Yellow_EW = 1; Red_EW = 1; // 黃燈亮3秒Delay_ms(3000);Red_EW = 1; Yellow_EW = 0; Green_EW = 0; // 綠燈亮10秒Delay_ms(10000);
}
3.4 LCD1602顯示程序
void LCD_Update(void)
{LCD_Clear();LCD_SetCursor(0,0);LCD_PrintString("NS:");LCD_PrintChar(Green_NS?'G':(Yellow_NS?'Y':'R'));LCD_PrintString(" EW:");LCD_PrintChar(Green_EW?'G':(Yellow_EW?'Y':'R'));LCD_SetCursor(1,0);LCD_PrintString("Count NS:");LCD_PrintNumber(count_NS);LCD_PrintString(" EW:");LCD_PrintNumber(count_EW);
}
4 總結
本設計通過 STC89C52 單片機控制十字路口紅綠燈,實現基本的紅綠燈循環切換,并通過紅外避障傳感器實時檢測車流量,實現綠燈延時邏輯。LCD1602 顯示當前燈狀態及車流量,便于管理人員監控路口狀況。
系統特點包括:
- 智能交通控制:根據車流量動態調整綠燈時間,緩解擁堵;
- 多方向紅綠燈管理:東西南北四個方向同時控制,保證路口通行效率;
- LCD顯示直觀:顯示燈狀態和車流量,管理人員可直觀了解路口情況;
- 延時邏輯合理:每次綠燈延時僅允許一次,避免對另一方向造成影響;
- 可擴展性強:可增加無線通信模塊,實現遠程監控和數據記錄。
本設計不僅適用于十字路口紅綠燈控制,也可拓展到城市智能交通系統、停車場出口管理、工業園區道路管理等場景,具有較高的實用性和推廣價值。