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