第一章 交通燈控制系統設計的概述
十字道口的紅綠燈是交通法規的無聲命令,是司機和行人的行為準則。十字道口的交通紅綠燈控制是保證交通安全和道路暢通的關鍵。當前,國內大多數城市正在采用“自動”紅綠交通燈,它具有固定的“紅燈—綠燈”轉換間隔,并自動切換。它們一般由“通行與禁止時間控制顯示、紅黃綠三色信號燈和方向指示燈”三部分組成。在交通燈的通行與禁止時間控制顯示中,通常要么東西、南北兩方向各50秒;要么根據交通規律,東西方向60秒,南北方向40秒,時間控制都是固定的。交通燈的時間控制顯示,以固定時間值預先“固化”在單片機中,每次只是以一定周期交替變化。但是,實際上不同時刻的車輛流通狀況是十分復雜的,是高度非線性的、隨機的,還經常受人為因素的影響。采用定時控制經常造成道路有效應用時間的浪費,出現綠燈方向車輛較少,紅燈方向車輛積壓。它不顧當前道路上交通車輛數的實際情況變化,其最大的缺陷就在于當路況發生變化時,不能滿足司機與路人的實際需要,輕者造成時間上的浪費,重者直接導致交通堵塞,導致城市交通效率的下降。 目前,有一種使用“模糊控制”技術控制交通燈的方法。能夠根據十字路口兩個方向上車輛動態狀況,自動判斷紅綠燈時間間隔,以保證最大車流量,減少道口的交通堵塞。但是卻不像定時控制,能用數字顯示器顯示當前燈色剩余時間,以便于駕駛員隨時掌握自己的駕駛動作,及時停車或啟動。
第二章 交通燈控制的方案設計
設計中使用了8259中斷控制器、8255A可編程并行接口實現了,對南北、東西方向交通的分別計時、分別控制,設計采用定時加中斷控制的方式進行,對兩個方向車輛的通行時間分別計時,可隨意進行更改雙向的通行時間。
城市十字交叉路口紅綠燈控制系統主要負責控制東西走向和南北走向的紅綠燈的狀態和轉換順序,關鍵是各個狀態之間的轉換和進行適當的時間延時,正是基于以上考慮,采用如下設計:
1.東西方向車輛放行60秒鐘。即東西方向綠燈和南北方向的紅燈同時點亮1分鐘;
2.1分鐘后,東西方向的紅(綠)燈閃爍5秒鐘,以警示車輛將切換紅綠燈。此時南北方向仍維持紅燈點亮。
3.東西方向的紅(綠)燈閃爍5秒鐘后,轉為南北方向放行60秒鐘。即東西方向的紅燈和南北方向的綠燈同時點亮60秒鐘;
4.南北方向放行60秒鐘后,轉為南北方向的紅(綠)燈閃爍5秒鐘,以警示將切換紅綠燈。此時東西方向仍維持紅燈點亮。
5.南北方向的紅(綠)燈閃爍5秒鐘后轉為東西方向放行1分鐘。如此循環重復。
第三章 交通燈的硬件設計
3.1電路原理
本課題的設計可通過實驗平臺上的一些功能模塊電路組成,由于各模塊電路內部已經連接,用戶在使用時只要設計模塊間電路的連接,因此,硬件電路的設計及實現相對簡單。完整系統的硬件連接如圖1所示。硬件電路由R-S觸發器電路、發光二極管模塊、8255可編程并行接口模塊和緊急中斷模塊8259組成。
實驗的對應接線關圖系圖如下所示:
3.2.系統原理
3.2.1 8259A的工作原理
1、數據總線緩沖器:8259A與系統數據總線的接口,是8位雙向三態緩沖器。CPU與8259A之間的控制命令信息、狀態信息以及中斷類型信息,都是通過緩沖器傳送的。
2、讀/寫控制邏輯:CPU通過它實現對8259A的讀/寫操作。
3、級連緩沖器:用以實現8259A芯片之間的級連,使得中斷源可以由8級擴展至64級。
4、控制邏輯電路:對整個芯片內部各部件的工作進行協調和控制。
5、中斷請求寄存器IRR:8位,用以分別保存8個中斷請求信號,當響應的中斷請求輸入腳有中斷請求時,該寄存器的相應位置1。
6、中斷屏蔽寄存器IMR:8位,相應位用以對8個中斷源的中斷請求信號進行屏蔽控制。當其中某位置“0“時,則相應的中斷請求可以向CPU提出;否則,相應的中斷請求被屏蔽,即不允許向CPU提出中斷請求。該寄存器的內容為8259A的操作命令字OCW1,可以由程序設置或改變。
7、中斷服務寄存器ISR:8位,當CPU正在處理某個中斷源的中斷請求時,ISR寄存器中的相應位置1。
8、用以比較正在處理的中斷和剛剛進入的中斷請求之間的優先級別,以決定是否產生多重中斷或中斷嵌套。
3.2.2 8255A的工作原理
1、8255A的內部結構:
1)數據總線緩沖器:這是一個雙向三態的8位數據緩沖器,它是8255A與微機系統數據總線的接口。輸入輸出的數據、CPU輸出的控制字以及CPU輸入的狀態信息都是通過這個緩沖器傳送的。
2)三個端口A,B和C:A端口包含一個8位數據輸出鎖存器和緩沖器,一個8位數據輸入鎖存器。B端口包含一個8位數據輸入/輸出鎖存器和緩沖器,一個8位數據輸入緩沖器。C端口包含一個8位數據輸出鎖存器和緩沖器,一個8位數據輸入緩沖器(輸入沒有鎖存器)。
3) A組和B組控制電路:這是兩組根據CPU輸出的控制字控制8255工作方式的電路,它們對于CPU而言,共用一個端口地址相同的控制字寄存器,接收CPU輸出的一字節方式控制字或對C口按位復位字命令。方式控制字的高5位決定A組的工作方式,低3位決定B組的工作方式。對C口按位復位命令字可對C口的每一位實現置位或復位。A組控制電路控制A口和C口上半部,B組控制電路控制B口和C口下半部。
4)讀寫控制邏輯:用來控制把CPU輸出的控制字或數據送至相應端口,也由它來控制把狀態信息或輸入數據通過相應的端口送到CPU。
2、引腳信號
8255A的引腳如圖7.5所示,分為數據線、地址線、讀/寫控制線、輸入/輸出端口線和電源線。
D7~D0(data bus):三態、雙向數據線,與CPU數據總線連接,用來傳送數據。
(chip select):片選信號線,低電平有效時,芯片被選中。
A1, A0(port address):地址線,用來選擇內部端口。
(read):讀出信號線,低電平有效時,允許數據讀出。
(write):寫入信號線,低電平有效時,允許數據寫入。
RESET(reset):復位信號線,高電平有效時,
將所有內部寄存器(包括控制寄存器)清0。
PA7~PA0(port A):A口輸入/輸出信號線。
PB7~PB0(port B):B口輸入/輸出信號線。
PC7~PC0(port C):C口輸入/輸出信號線。
VCC:+5V電源。 GND:電源地線。
3、8255A的 工作方式:
方式0---基本輸入輸出方式;
方式1---選通輸入輸出方式;
方式2---雙向選通輸入輸出方式。
3.3 程序原理
交通燈控制系統程序流程圖
第四章 交通燈控制系統的軟件設計
4.1、交通燈控制系統的源程序