版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 畢業(yè)設(shè)計(jì)說明書</b></p><p> 課題名稱 基于車流量檢測的多相位智能 </p><p> 交通燈控制器設(shè)計(jì)(軟件部分)</p><p> 2011年 6月 1日</p><p><b> 摘 要</b></p><
2、;p> 隨著科技的飛速發(fā)展,單片機(jī)的應(yīng)用正在不斷地走向深入。完成了各行各業(yè)的所需的實(shí)時(shí)檢測和自動控制要求,單片機(jī)其實(shí)就是一個(gè)小型計(jì)算機(jī),單片機(jī)一般是作為一個(gè)核心部件來使用,但是僅僅單片機(jī)方面知識是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu),以及針對具體應(yīng)用對象特點(diǎn)的軟件結(jié)合,加以完善的,才能實(shí)現(xiàn)軟硬件的完美結(jié)合控制。</p><p> 隨著社會的發(fā)展,人們生水來的提高,有能力買車的人越來越多,城市車輛的增加,使得城市
3、的交通壓力不斷加大。然而現(xiàn)在還有一部的城市里能夠減小交通壓力的交通燈并沒能有效的解決這個(gè)問題,為了解決這個(gè)問題本文對智能交通燈的研究意義和智能交通燈的研究現(xiàn)狀進(jìn)行了分析,發(fā)現(xiàn)有一部分交通燈存在的缺點(diǎn)就是控制通行的交通綠燈通行的時(shí)間固定死了,并沒能實(shí)現(xiàn)隨車輛的增加和減小而改變時(shí)間。為了解決這個(gè)問題提出了通過車流量檢測來改變能行時(shí)間的改進(jìn)方法。本設(shè)計(jì)的方案為在每條車道分別用兩個(gè)傳感器檢測車輛數(shù),車進(jìn)來時(shí)檢測自加,車出去時(shí)檢測自減,然后單片機(jī)
4、通過公式自動算出倒計(jì)時(shí)的時(shí)間,用以控制倒計(jì)時(shí),然后判斷倒計(jì)時(shí)是否為0來控制信號燈的亮滅,通過硬件以及模型的制作最終實(shí)物了這些功能,實(shí)現(xiàn)了多相位控制,可以很好的指揮車的禁行。</p><p> 關(guān)鍵詞:單片機(jī);交通燈;車流量檢測;多相位</p><p><b> Abstract</b></p><p> With the rapid de
5、velopment of science and technology,MCU applications are continually deepening. All walks of life needed to complete real-time detection and automatic control requirements, the MCU is actually a small computer,MCU is gen
6、erally used as a core component,But knowledge alone is not enough MCU, Should be based on specific hardware architecture, and application-specific software features object combination to perfect in order to achieve the p
7、erfect combination of hardware and software</p><p> As society develops, people are raw water to increase, have the ability to more and more people buy cars, city vehicles increased, making the city's i
8、ncreasing traffic pressure. However, there is still one of the city to reduce traffic pressure on the traffic lights did not effectively solve this problem, in order to solve this problem this paper, the research signifi
9、cance of intelligent traffic lights and intelligent traffic light analysis of current research found that Part of the traffic ligh</p><p> Key words: MCU; Traffic lights; Flow detection; Multi-phase</p&g
10、t;<p><b> 目 錄</b></p><p> 第一章 緒論……………………………………………………………………………… 1</p><p> 第一節(jié) 交通燈控制系統(tǒng)的發(fā)展………………………………………………… 1</p><p> 第二節(jié) 課題研究背景和目的…………………………………………………… 3
11、</p><p> 第三節(jié) 課題研究的意義………………………………………………………… 4</p><p> 第四節(jié) 課題研究的任務(wù)………………………………………………………… 4</p><p> 第五節(jié) 課題研究的內(nèi)容………………………………………………………… 4</p><p> 第二章 方案設(shè)計(jì)………………………
12、………………………………………………… 6</p><p> 第一節(jié) 交通燈的通行規(guī)則……………………………………………………… 6</p><p> 一、 相位的概念…………………………………………………………… 6</p><p> 二、 交通燈的基本運(yùn)行狀態(tài)…………………………………………… 6</p><p>
13、 第二節(jié) 交通燈控制系統(tǒng)的功能要求…………………………………………… 8</p><p> 一、 LED 信號燈…………………………………………………………… 8</p><p> 二、 倒計(jì)時(shí)顯示…………………………………………………………… 8</p><p> 三、 車輛數(shù)顯示…………………………………………………………… 9</
14、p><p> 四、 車流量的檢測及控制………………………………………………… 9</p><p> 第三節(jié) 交通燈控制系統(tǒng)的結(jié)構(gòu)和基本原理…………………………………… 9</p><p> 第三章 硬件電路的組成及連接……………………………………………………… 11</p><p> 第一節(jié) 通訊電路的組成及連接………………
15、………………………………… 11</p><p> 第二節(jié) 車流量檢測電路的組成及連接………………………………………… 12</p><p> 第三節(jié) 車輛數(shù)顯示電路的組成及連接………………………………………… 13</p><p> 第四節(jié) 狀態(tài)燈電路的組成及連接……………………………………………… 14</p><p&g
16、t; 第五節(jié) 倒計(jì)時(shí)電路的組成及連接……………………………………………… 15</p><p> 第四章 交通燈控制系統(tǒng)的程序設(shè)計(jì)………………………………………………… 16</p><p> 第一節(jié) 程序主體設(shè)計(jì)流程……………………………………………………… 16</p><p> 一、發(fā)送程序的總流程圖…………………………………………………
17、… 16</p><p> 二、接收程序的總流程圖…………………………………………………… 17</p><p> 第二節(jié) 各功能塊的程序設(shè)計(jì)…………………………………………………… 18</p><p> 一、按鍵模塊的程序設(shè)計(jì)…………………………………………………… 18</p><p> 二、延時(shí)子程序的設(shè)計(jì)……………
18、………………………………………… 20</p><p> 三、顯示程序的設(shè)計(jì)………………………………………………………… 21</p><p> 四、LED 燈程序設(shè)計(jì)………………………………………………………… 23</p><p> 五、中斷程序的設(shè)計(jì)………………………………………………………… 24</p><p> 六
19、、車流量計(jì)算公式的程序設(shè)計(jì)…………………………………………… 25</p><p> 七、發(fā)送與接收的程序設(shè)計(jì)………………………………………………… 26</p><p> 第五章 仿真及實(shí)物制作簡介………………………………………………………… 29</p><p> 第一節(jié) 系統(tǒng)制作與調(diào)試………………………………………………………… 29<
20、;/p><p> 第二節(jié) 硬件制作與調(diào)試………………………………………………………… 29</p><p> 結(jié)束語…………………………………………………………………………………… 31</p><p> 致謝……………………………………………………………………………………… 32</p><p> 參考文獻(xiàn)………………………
21、………………………………………………………… 33</p><p> 附錄一 整體仿真圖…………………………………………………………………… 34</p><p> 附錄二 實(shí)物電路板核心控制板圖…………………………………………………… 35</p><p> 附錄三 交通燈立體模型圖…………………………………………………………… 35&
22、lt;/p><p> 附錄四 發(fā)送單片機(jī)部分程序………………………………………………………… 36</p><p> 附錄五 接收單片機(jī)部分程序………………………………………………………… 41</p><p><b> 緒 論</b></p><p> 交通燈控制系統(tǒng)的發(fā)展</p>&l
23、t;p> 當(dāng)今,紅綠燈安裝在各個(gè)道口上,已經(jīng)成為疏導(dǎo)交通車輛最常見和最有效的手段。但這一技術(shù)在19世紀(jì)就已出現(xiàn)了。</p><p> 1858年,在英國倫敦主要街頭安裝了以燃煤氣為光源的紅,藍(lán)兩色的機(jī)械扳手式信號燈,用以指揮馬車通行。這是世界上最早的交通信號燈。1868年,英國機(jī)械工程師納伊特在倫敦威斯敏斯特區(qū)的議會大廈前的廣場上,安裝了世界上最早的煤氣紅綠燈。它由紅綠兩以旋轉(zhuǎn)式方形玻璃提燈組成,紅色表
24、示“停止”,綠色表示“注意”。1869年1月2日,煤氣燈爆炸,使警察受傷,遂被取消。</p><p> 電氣啟動的紅綠燈出現(xiàn)在美國,這種紅綠燈由紅綠黃三色圓形的投光器組成,1914年始安裝于紐約市5號大街的一座高塔上。紅燈亮表示“停止”,綠燈亮表示“通行”。</p><p> 1918年,又出現(xiàn)了帶控制的紅綠燈和紅外線紅綠燈。帶控制的紅綠燈,一種是把壓力探測器安在地下,車輛一接近紅燈便
25、變?yōu)榫G燈;另一種是用擴(kuò)音器來啟動紅綠燈,司機(jī)遇紅燈時(shí)按一下嗽叭,就使紅燈變?yōu)榫G燈。紅外線紅綠燈當(dāng)行人踏上對壓力敏感的路面時(shí),它就能察覺到有人要過馬路。紅外光束能把信號燈的紅燈延長一段時(shí)間,推遲汽車放行,以免發(fā)生交通事故。</p><p> 從1868年英國倫敦首次使用燃汽色燈信號以來,城市交通信號機(jī)由手動到自</p><p> 動,交通信號由固定周期到可變周期,系統(tǒng)控制方式由點(diǎn)控到面控
26、,從無車輛檢測器到有車輛檢測器,經(jīng)歷了近百年的歷史。到1963年加拿大多倫多市建立了一套使用IBM650型計(jì)算的集中協(xié)調(diào)感應(yīng)控制信號系統(tǒng),從而標(biāo)志著城市道路交通信號系統(tǒng)的發(fā)展進(jìn)入了一個(gè)新的階段。各個(gè)時(shí)期典型交通信號系統(tǒng)得特征如附表所示。之后,美國、英國、德國、日本、澳大利亞等多家相繼建成數(shù)字電子計(jì)算機(jī)區(qū)域交通控制系統(tǒng),這種系統(tǒng)一般還配備交通監(jiān)視系統(tǒng)組成交通管制中心。到80年代初,全世界建有交通管制中心的城市有300多個(gè),代表了未來交通控
27、制的發(fā)展方向。</p><p> 表1.1 交通信號系統(tǒng)發(fā)展?fàn)顩r</p><p> 信號燈的出現(xiàn),使交通得以有效管制,對于疏導(dǎo)交通流量、提高道路通行能力,減少交通事故有明顯效果。1968年,聯(lián)合國《道路交通和道路標(biāo)志信號協(xié)定》對各種信號燈的含義作了規(guī)定。綠燈是通行信號,面對綠燈的車輛可以直行,左轉(zhuǎn)彎和右轉(zhuǎn)彎,除非另一種標(biāo)志禁止某一種轉(zhuǎn)向。左右轉(zhuǎn)彎車輛都必須讓合法地正在路口內(nèi)行駛的車輛和
28、過人行橫道的行人優(yōu)先通行。紅燈是禁行信號,面對紅燈的車輛必須在交叉路口的停車線后停車。黃燈是警告信號,面對黃燈的車輛不能越過停車線,但車輛已十分接近停車線而不能安全停車時(shí)可以進(jìn)入交叉路口。</p><p> 在西方發(fā)達(dá)國家,交通控制系統(tǒng)基本上完成了由傳統(tǒng)的交通控制系統(tǒng)向智能交通控制系統(tǒng)ITS的轉(zhuǎn)變,而在我國,智能交通系統(tǒng)則剛剛處于起步階段。對于傳統(tǒng)的交通控制系統(tǒng)而言,對紅綠燈一般采用定時(shí)控制,無法對實(shí)際的交通流
29、進(jìn)行識別優(yōu)化,以至于不能適應(yīng)交通量的不確定性和隨機(jī)性的原因,往往造成交通資源的浪費(fèi)和道路的梗阻。而智能交通控制系統(tǒng)則在不產(chǎn)生大的硬件改動的情況下有效的提高效率。</p><p> ITS:Intelligent Transport systems。這一國際性術(shù)語于1994年被正式認(rèn)定。在此之前,美國稱這類技術(shù)或相關(guān)研究項(xiàng)目為“智能車輛道路系統(tǒng)(IVHS)”(Intelligent VelIiele Highwa
30、y System)。日本將這類技術(shù)稱為UTMS、VICS等:歐盟則稱之為“道路交通信息技術(shù)(RTI)”。國際標(biāo)準(zhǔn)化組織(ISO)為ITS設(shè)立的專項(xiàng)叫ISO/TC.204,使用的術(shù)語是“1rICS(交通運(yùn)輸信息與控制系統(tǒng))”。</p><p> 智能交通系統(tǒng)強(qiáng)調(diào)的是系統(tǒng)性、信息交流的交互性以及服務(wù)的廣泛性,其核心技術(shù)是電子技術(shù)、信息技術(shù)、通信技術(shù)、交通工程和系統(tǒng)工程。智能交通系統(tǒng)ITS是在較完善的道路設(shè)施基礎(chǔ)上,
31、將先進(jìn)的電子技術(shù)、信息技術(shù)、傳感器技術(shù)和系統(tǒng)工程技術(shù)集成運(yùn)用于地面交通管理所建立的一種實(shí)時(shí)、準(zhǔn)確、高效、大范圍、全方位發(fā)揮作用的交通運(yùn)輸管理系統(tǒng)。</p><p> 在國內(nèi),受客觀條件的制約,ITS起步比較晚,在20世紀(jì)90年代初,我國的相</p><p> 關(guān)學(xué)者開始意識到研究和開發(fā)ITS的重要性。到90年代中期,由于受到國外ITS研發(fā)的影響,政府部門也開始重視對ITS的研究,隨后,
32、又得到中央部門和部分地方政府的支持。</p><p> 1999年,我國成立了全國智能交通系統(tǒng)(ITS)協(xié)調(diào)指導(dǎo)小組及辦公室,同年,</p><p> 又成立了全國智能交通運(yùn)輸系統(tǒng)(ITS)專家咨詢委員會,其中,同濟(jì)大學(xué)、清華大學(xué)、北方交通大學(xué)、北京航空航天大學(xué)、吉林工業(yè)大學(xué)、東南大學(xué)等高校的有關(guān)專家為咨詢委員,并啟動了國家“九五”科技攻關(guān)課題和國家“十五”科技攻關(guān)課題。目前,在對一些
33、大中型城市引入的國外ITS進(jìn)行研究的基礎(chǔ)上已經(jīng)逐漸開始摸索開發(fā)設(shè)計(jì)適合自己國情的ITS系統(tǒng)。</p><p><b> 課題研究背景和目的</b></p><p> 隨著城市機(jī)動車輛的不斷增加,許多大城市出現(xiàn)了交通超負(fù)荷運(yùn)行的情況。因此,自80年代后期,這些城市紛紛修建城市高速道路,在高速道路建設(shè)完成的初期,它們也曾有效地改善了交通狀況。然而,隨著交通量的快速增長
34、和缺乏對高速道路的系統(tǒng)研究和控制。高速道路沒有充分發(fā)揮出預(yù)期的作用。而城市高速道路在構(gòu)造上的特點(diǎn),也決定了城市高速道路的交通狀況必然受高速道路與普通道路耦合處交通狀況的制約。所以,如何采用合適的控制方法,最大限度利用好耗費(fèi)巨資修建的城市高速道路。緩解主干道與匝道、城區(qū)同周邊地區(qū)的交通擁堵狀況,越來越成為交通運(yùn)輸管理和城市規(guī)劃部門亟待解決的主要問題。</p><p> 目前,國內(nèi)大部分中小城市仍采用傳統(tǒng)的交通燈控
35、制模式,但隨著城市的不斷發(fā)展,基于車流量的智能交通燈控制系統(tǒng)必將受到廣大人民的青睞。傳統(tǒng)的交通信號燈,通常采用定時(shí)分配方式控制,主要存在三方面的缺陷:(1)車道放行車輛時(shí),十字路口經(jīng)常出現(xiàn)不同相位上車輛放行時(shí)問相同,車輛多的一方容易出現(xiàn)車輛堆積,造成下一路口的交通阻塞;(2)當(dāng)某相位上無車時(shí),恰好是該相位上的車輛通行時(shí)間,則在這段時(shí)間內(nèi),就出現(xiàn)了交通指揮盲點(diǎn);(3)當(dāng)一路口車流量很大時(shí),不能夠自動延長口的綠燈時(shí)間,導(dǎo)致在一個(gè)周期內(nèi)此路口
36、的車輛不能完全通過。</p><p> 對基于車流量檢測的多相位智能交通燈控制系統(tǒng)進(jìn)行設(shè)計(jì)目的在于,更好的解決上述問題,以及對所學(xué)知識的綜合運(yùn)用,將理論知識與實(shí)際應(yīng)用相結(jié)合。本系統(tǒng)利用按鈕模擬傳感器檢測車流量狀態(tài),用單片機(jī)AT89S52對路口車流量進(jìn)行統(tǒng)計(jì),并執(zhí)行相應(yīng)的處理程序,來實(shí)現(xiàn)智能交通燈控制系統(tǒng),達(dá)到了根據(jù)車流量大小實(shí)時(shí)控制路口的通行情況。</p><p><b>
37、課題研究的意義</b></p><p> 本文設(shè)計(jì)的交通信號控制系統(tǒng)利用按鈕模擬傳感器檢測車流量狀態(tài),用單片機(jī)AT89S52對路口車流量進(jìn)行統(tǒng)計(jì),并執(zhí)行相應(yīng)的處理程序,來實(shí)現(xiàn)智能交通燈控制系統(tǒng),達(dá)到了根據(jù)車流量大小實(shí)時(shí)控制路口的通行情況。本系統(tǒng)可用在單個(gè)路口實(shí)現(xiàn)獨(dú)立的智能交通控制功能,易于維護(hù),運(yùn)行穩(wěn)定?;谲嚵髁康闹悄芙煌艨刂葡到y(tǒng)設(shè)計(jì)意義重大,特別在人口密度集中的中國,它起著更重要的作用。最直接
38、的作用是改善車輛的堵塞狀況,減少車輛的等待時(shí)間,增加單位時(shí)間內(nèi)的通行量,從而解決交通擁擠的問題。另外的社會經(jīng)濟(jì)效益是:減少交通事故的發(fā)生率、人員的死亡率;推動相關(guān)產(chǎn)業(yè)的發(fā)展,增加就業(yè)崗位,促進(jìn)社會經(jīng)濟(jì)的健康發(fā)展;減少能源消耗量,降低環(huán)境污染程度。</p><p> 此設(shè)計(jì)尤其適合中、小城市的十字路口交通控制,具有結(jié)構(gòu)簡單、可靠性高、成本低、實(shí)時(shí)性好、安裝維護(hù)方便等優(yōu)點(diǎn),具有廣泛的應(yīng)用前景。所以,基于車流量檢測的
39、多相位智能交通燈有現(xiàn)實(shí)的社會意義。</p><p><b> 課題研究的任務(wù)</b></p><p> 設(shè)計(jì)一個(gè)交通燈控制系統(tǒng),能夠?qū)崿F(xiàn)基于車流量檢測的多相位智能交通燈,根據(jù)十字路口車流量的變化相應(yīng)改變東西南北直行和左行的通行時(shí)間。</p><p><b> 課題研究的內(nèi)容</b></p><p&
40、gt; 基于整個(gè)交通控制系統(tǒng)的發(fā)展情況,本設(shè)計(jì)主要進(jìn)行如下方面的研究:用智能,集成,且功能強(qiáng)大的單片機(jī)芯片為控制中心,設(shè)計(jì)出一套十字路口的交通控制系統(tǒng),以指揮該路口的實(shí)時(shí)通行狀態(tài)。</p><p> 本設(shè)計(jì)主要做了如下幾方面的工作:</p><p> (1)是確定系統(tǒng)交通控制的總體設(shè)計(jì),包括十字路口具體的通行禁行方案設(shè)計(jì)以及系統(tǒng)應(yīng)擁有的各項(xiàng)功能,在這里,本設(shè)計(jì)除了有信號燈狀態(tài)控制能實(shí)
41、現(xiàn)基本的交通功能,還增加了倒計(jì)時(shí)顯示提示,為了便于答辯演示這里增加了車流數(shù)量顯示。</p><p> ?。?)是用按鈕代替智能傳感器設(shè)計(jì)車輛檢測與記錄,顯示電路等的設(shè)計(jì)對各器件的選擇及連接,大體分配各個(gè)器件及模塊的基本功能要求。</p><p> ?。?)是進(jìn)行軟件系統(tǒng)的設(shè)計(jì),對于本系統(tǒng),本人采用單片機(jī)C語言編寫,對單片機(jī)內(nèi)部結(jié)構(gòu)和工作情況做了充足的研究,了解定時(shí)器,中斷以及延時(shí)原理,總體
42、上完成了軟件的編寫。并用ISIS 7 Professional軟件進(jìn)行仿真,使得程序調(diào)試更加直觀。</p><p> ?。?)是本設(shè)計(jì)用到兩片單片機(jī),一塊負(fù)責(zé)車輛數(shù)檢測與記算出通行時(shí)間并顯示出來,同時(shí)發(fā)送數(shù)據(jù)到另一塊單片機(jī)進(jìn)行處理,另一塊單片機(jī)負(fù)責(zé)接收通行時(shí)間并用于進(jìn)行交通燈LED狀態(tài)和倒計(jì)時(shí)控制。</p><p> (5)是實(shí)物模型的制做。</p><p>&l
43、t;b> 方案設(shè)計(jì)</b></p><p><b> 交通燈的通行規(guī)則</b></p><p><b> 一、相位的概念</b></p><p> 為保證交通系統(tǒng)的嚴(yán)謹(jǐn)性和公平性,本設(shè)計(jì)規(guī)定“相位”概念。</p><p> 相位的定義如下:在單個(gè)十字路口,整個(gè)狀態(tài)周期每個(gè)
44、綠燈亮起的時(shí)間為一個(gè)固定值。</p><p> 相位的意義在于在一個(gè)循環(huán)狀態(tài)周期內(nèi),根據(jù)每個(gè)路口車流量大小可以分配適時(shí)適當(dāng)?shù)木G燈時(shí)間以保證時(shí)間的充分利用,保證車流大的干道可以通過足夠多的車輛,車流小的干道不用浪費(fèi)時(shí)間。從總體上提升系統(tǒng)的效率。</p><p> 交通燈的基本運(yùn)行狀態(tài)</p><p> 設(shè)在十字路口,分為東西直行向、東西左行、南北直行和南北左行向
45、,在任一時(shí)刻只有一個(gè)方向通行,剩下方向禁行,持續(xù)一定時(shí)間,經(jīng)過短暫的過渡時(shí)間,將通行禁行方向?qū)Q。其簡單狀態(tài)如下圖所示。</p><p> 說明:黑色表示亮,白色表示滅。交通狀態(tài)從狀態(tài)1開始變換,直至狀態(tài)8然后循環(huán)至狀態(tài)1,周而復(fù)始,即如下圖所示:</p><p> 圖2-1-2 交通燈運(yùn)行狀態(tài)圖</p><p> 通過圖2-1-2具體的路口交通燈狀態(tài)的演示
46、分析我們可以把這8個(gè)狀態(tài)歸納如下:</p><p> 狀態(tài)1東西方向紅燈亮,其他燈滅。南北方向直行燈亮,同時(shí)南北人行道綠燈亮,并倒計(jì)時(shí)。此狀態(tài)下,東西向禁止通行,南北向車及行人允許直行。</p><p> 狀態(tài)2東西方向紅燈亮,其他燈滅。南北方向直行燈滅,黃燈亮,南北人行道綠燈亮,并倒計(jì)時(shí)。此狀態(tài)下,東西向禁止通行,南北方向除了已經(jīng)正在通行中的車輛和行人其它都需等待狀態(tài)轉(zhuǎn)換。</
47、p><p> 狀態(tài)3東西方向紅燈亮,其他燈滅。南北方向左行燈亮,同時(shí)南北人行道紅燈亮綠燈滅,并倒計(jì)時(shí)。此狀態(tài)下,東西向禁止通行,南北向車允許左行。</p><p> 狀態(tài)4東西方向紅燈亮,其他燈滅。南北方向左行燈滅,黃燈亮,南北人行道紅燈亮綠燈滅,并倒計(jì)時(shí)。此狀態(tài)下,東西向禁止通行,南北左行方向除了已經(jīng)正在通行中的車輛其它都需等待狀態(tài)轉(zhuǎn)換。</p><p> 狀態(tài)
48、5南北方向紅燈亮,其他燈滅。東西方向直行燈亮,同時(shí)東西人行道綠燈亮,并倒計(jì)時(shí)。此狀態(tài)下,南北向禁止通行,東西向車及行人允許直行。</p><p> 狀態(tài)6南北方向紅燈亮,其他燈滅。東西方向直行燈滅,黃燈亮,東西人行道綠燈亮,并倒計(jì)時(shí)。此狀態(tài)下,南北向禁止通行,東西方向除了已經(jīng)正在通行中的車輛和行人其它都需等待狀態(tài)轉(zhuǎn)換。</p><p> 狀態(tài)7南北方向紅燈亮,其他燈滅。東西方向左行燈亮
49、,同時(shí)東西人行道紅燈亮綠燈滅,并倒計(jì)時(shí)。此狀態(tài)下,南北向禁止通行,東西向車允許左行。</p><p> 狀態(tài)8南北方向紅燈亮,其他燈滅。東西方向左行燈滅,黃燈亮,東西人行道紅燈亮綠燈滅,并倒計(jì)時(shí)。此狀態(tài)下,南北向禁止通行,東西左行方向除了已經(jīng)正在通行中的車輛其它都需等待狀態(tài)轉(zhuǎn)換。</p><p> 在以上狀態(tài)變換過程中的倒計(jì)時(shí)是不定的,它是由車流量決定倒計(jì)時(shí)間的值,車多時(shí)倒計(jì)時(shí)長,車少
50、時(shí)倒計(jì)時(shí)短。</p><p> 交通燈控制系統(tǒng)的功能要求</p><p> 從要用到單片機(jī)I/O口的數(shù)量及程序和硬件電路的簡化方面考慮,本設(shè)計(jì)用到兩片單片機(jī)通迅的方式共同模擬完成基本的交通控制,用紅綠黃燈表示禁行,通行和等待的信號發(fā)生,還能進(jìn)行倒計(jì)時(shí)顯示,車流量檢測。具體分工為:一塊負(fù)責(zé)車輛數(shù)檢測與記算出通行時(shí)間,可顯示,同時(shí)發(fā)送數(shù)據(jù)到另一塊單片機(jī)。另一塊單片機(jī)負(fù)責(zé)接收通行時(shí)間并用于進(jìn)
51、行交通燈LED狀態(tài)和倒計(jì)時(shí)控制,本設(shè)計(jì)能模擬基本的交通控制系統(tǒng),</p><p><b> LED信號燈</b></p><p> 由前文的交通燈運(yùn)行狀態(tài),本設(shè)計(jì)要設(shè)計(jì)的是一個(gè)路口要有五種信號燈,一種常亮的右行綠燈,一種直行綠燈,一種左行綠燈,一種狀態(tài)轉(zhuǎn)換燈黃燈,一種停止燈紅燈。</p><p> 對于這些信號燈的排放一般有兩個(gè)方案:&l
52、t;/p><p> (1)是行三個(gè)燈,列三個(gè)燈,最下面一個(gè)從左到右分別是左行綠燈、直行綠燈、右行常亮綠燈。中間一行從左到右分別是狀態(tài)轉(zhuǎn)換燈黃燈、狀態(tài)轉(zhuǎn)換燈黃燈、無燈。最上面一行從左到右分別是停止燈紅燈、停止燈紅燈、無燈。</p><p> (2)是只有一行,一共五個(gè)燈,從左到右分別是停止燈紅燈、狀態(tài)轉(zhuǎn)換燈黃燈、左行綠燈、直行綠燈、右行常亮綠燈。其實(shí)這兩種方案是現(xiàn)在交通燈用得最多的,對于用哪
53、一個(gè)基本上都差不多,本設(shè)計(jì)考慮到做模型美觀及節(jié)省燈數(shù)量,故選擇第二種方案。</p><p><b> 倒計(jì)時(shí)顯示</b></p><p> 倒計(jì)時(shí)顯示可以提醒駕駛員在信號燈燈色發(fā)生改變的時(shí)間、在“停止”和“通過”兩者間作出合適的選擇。駕駛員和行人普遍都愿意選擇有倒計(jì)時(shí)顯示的信號控制方式,并且認(rèn)為有倒計(jì)時(shí)顯示的路口更安全。倒計(jì)時(shí)顯示是用來減少駕駛員在信號燈色改變的關(guān)
54、鍵時(shí)刻做出復(fù)雜判斷的1種方法,它可以提醒駕駛員燈色發(fā)生改變的時(shí)間,幫助駕駛員在“停止”和“通過”兩者間作出合適的選擇。</p><p> 對于倒計(jì)時(shí)的選擇目前來說可以有三種方案:</p><p> ?。?)完全采用點(diǎn)陣式LED 顯示。這種方案實(shí)現(xiàn)復(fù)雜,且須完成大量的軟件工作;但功能強(qiáng)大,可方便的顯示各種英文字符,漢字,圖形等。</p><p> ?。?)完全采用數(shù)
55、碼管顯示。這種方案只顯示有限的符號和數(shù)碼字符,只限于一些對顯示要求不高的交通燈,本設(shè)計(jì)不是那種要求比較高的交通燈,不需要顯示各種英文字符,漢字,圖形等,故選擇第二種方案。</p><p> ?。?)采用數(shù)碼管與點(diǎn)陣LED 相結(jié)合的方法因?yàn)樵O(shè)計(jì)既要求倒計(jì)時(shí)數(shù)字輸出,又要求有狀態(tài)燈輸出等,為方便觀看并考慮到現(xiàn)實(shí)情況,用數(shù)碼管與LED燈分別顯示時(shí)間與提示信息。這種方案減少了系統(tǒng)實(shí)現(xiàn)的復(fù)雜度,功能相對也比較強(qiáng)大。<
56、/p><p><b> 三、車量數(shù)顯示</b></p><p> 對于車量數(shù)的顯示,這里選用數(shù)碼管顯示,主要是方便模型的演示,或是在實(shí)際應(yīng)該用中便于監(jiān)控、統(tǒng)計(jì)等。</p><p><b> 車流量的檢測及控制</b></p><p> 隨著我國經(jīng)濟(jì)建設(shè)的蓬勃發(fā)展,城市人口和機(jī)動車擁有量在急劇增長
57、,交通流量日益加大,交通擁擠堵塞現(xiàn)象日趨嚴(yán)重,交通事故時(shí)有發(fā)生。車輛檢測器作為智能交通系統(tǒng)的基本組成部分,在智能交通系統(tǒng)中占有重要的地位。現(xiàn)階段,車輛檢測器檢測方式有很多,各有其優(yōu)缺點(diǎn),如紅外線檢測器、地磁檢測器、機(jī)械壓電檢測器,磁頻檢測器、波頻檢測器、視頻檢測器等。一般車流量檢測器采用傳感器+單片機(jī)+外圍器件來實(shí)現(xiàn)車流量的檢測、計(jì)算和控制狀態(tài)。 </p><p> 但是本設(shè)計(jì)由于各條件的限制,只是做出一個(gè)模型
58、,并沒有選用任何的傳感器來作為車流量的檢測設(shè)備,而是用按鈕來代替各個(gè)檢測設(shè)備。</p><p> 對于車流量檢測和控制的方式,大的方面一般有兩個(gè)方案:</p><p> ?。?)是在各個(gè)路口的直行道和左行道各裝一個(gè)檢測設(shè)備,用于檢測車流的密度和流速,從而通過單片機(jī)處理并控制相應(yīng)的通行時(shí)間,這種方式實(shí)現(xiàn)的精確度不高。</p><p> ?。?)是地各個(gè)路口的直行道和
59、左行道各裝兩個(gè)檢測設(shè)備,一個(gè)作用是有車通過時(shí)自加,一個(gè)作用是有車通過時(shí)自減,通過兩個(gè)檢測設(shè)備的配就可以得出在等待的車準(zhǔn)確的數(shù)量,然后根據(jù)車的數(shù)量通過單片機(jī)自動計(jì)算相應(yīng)數(shù)量的車應(yīng)給多長的通行時(shí)間,從而實(shí)現(xiàn)交通燈禁行的完美控制,故本設(shè)計(jì)選擇第二種方案。</p><p> 第三節(jié) 交通燈控制系統(tǒng)的結(jié)構(gòu)和基本原理</p><p> 單片機(jī)設(shè)計(jì)交通燈控制系統(tǒng),可用單片機(jī)直接控制信號燈的狀態(tài)變化
60、,基本上可以指揮交通的具體通行,當(dāng)然,接入LED數(shù)碼管就可以顯示倒計(jì)時(shí)以提醒行使者,更具人性化。本系統(tǒng)在此基礎(chǔ)上,加入了車流量檢測電路為單片機(jī)采集數(shù)據(jù),單片機(jī)對此進(jìn)行具體處理,及時(shí)調(diào)整控制指揮。</p><p><b> 通訊</b></p><p> 圖2-3 系統(tǒng)的總體框圖</p><p> 據(jù)此,本設(shè)計(jì)系統(tǒng)以兩片單片機(jī)為控制核心,連
61、接成最小系統(tǒng),由車流量檢測模塊產(chǎn)生輸入負(fù)責(zé)檢測車流量及處理數(shù)據(jù)的發(fā)送單片機(jī)(這里自己給作為發(fā)送的單片機(jī)命名為發(fā)送單片機(jī)),發(fā)送單片機(jī)處理車流量顯示模塊的輸出。然后,接收單片機(jī)把發(fā)送單片機(jī)發(fā)送過來的數(shù)據(jù)接收進(jìn)行應(yīng)用,控制信號燈狀態(tài)模塊和LED倒計(jì)時(shí)模塊。系統(tǒng)的總體框圖如上所示。</p><p> 最終,本系統(tǒng)將不斷調(diào)用車流量檢測模塊對車流量進(jìn)行檢測統(tǒng)計(jì),到達(dá)一定時(shí)間將修正通行時(shí)間一滿足不同路況的需要。</p
62、><p> 硬件電路的組成及連接</p><p> 上一章本設(shè)計(jì)對交通燈控制系統(tǒng)的功能、原理及結(jié)構(gòu)進(jìn)行了詳細(xì)的說明,這一章本設(shè)計(jì)將在上一章的結(jié)構(gòu)圖的基礎(chǔ)下針對交通燈控制系統(tǒng)硬件電路的組成及連接作詳細(xì)的介紹,以便于更好的為編程服務(wù)。本設(shè)計(jì)交通燈控制系統(tǒng)主要用到的元器件有:AT89S52單片機(jī)兩片、74LS138一片、兩位8段數(shù)碼管8個(gè)、8550三極管16個(gè)、各種顏色LED燈若干等。</
63、p><p> 通訊電路的組成及連接</p><p> 在本設(shè)計(jì)中,一塊單片機(jī)端口是不夠用的,因?yàn)槠渲袡z測車流量要用到16個(gè)端口,用數(shù)碼管顯示車流量要用到16個(gè)端口,數(shù)碼管倒設(shè)計(jì)時(shí)要用到12個(gè)端口,信號燈控制要用到8個(gè)端口,一塊單片機(jī)的端口是32個(gè),現(xiàn)在要用到的已經(jīng)遠(yuǎn)遠(yuǎn)的超了,所以本設(shè)計(jì)考慮到用兩塊單片機(jī)通訊的方式來共同實(shí)現(xiàn)控制,這樣不僅解決了端口不夠用的問題,也大大簡化了原有的程序。在這一
64、節(jié)讓我們了解兩片單片機(jī)的組成及連接。圖3-1為通訊電路的組成及連接圖。</p><p> 圖3-1 通訊電路組成及連接圖</p><p> 從圖3-1我們已經(jīng)很直觀的看出所用的的硬件和連接,這里說明一點(diǎn)要注意的問題,兩片單片機(jī)的這樣通訊一定要共地,所以在做板時(shí)無論這兩片單片機(jī)是在一塊板上還是不在一塊板上,都要共地才行。</p><p> 我們看圖中所示,發(fā)送
65、單片機(jī)數(shù)據(jù)發(fā)送端口是P3.1/TXD和接收單片機(jī)P3.0/RXD連起來的,發(fā)送單片機(jī)數(shù)據(jù)發(fā)送端口是P3.0/TXD和接收單片機(jī)P3.1/RXD連起來的,我們用到的是P3口的第二功能,P3.1/TXD為串行數(shù)據(jù)輸出口,用于把SBUF里的數(shù)據(jù)輸出。P3.0/RXD為串行數(shù)據(jù)輸入口,用于接收數(shù)據(jù),然后把接收到的數(shù)據(jù)存入SBUF。只要我們按照這樣編一個(gè)串行通訊的控制程序就可以實(shí)現(xiàn)通訊了。</p><p> 第二節(jié) 車
66、流量檢測電路的組成及連接</p><p> 在本設(shè)計(jì)中發(fā)送單片機(jī)的P1和P2口用作16個(gè)車流量檢測點(diǎn)(用按鈕代替車流量檢測傳感器)的數(shù)據(jù)入口。</p><p><b> 其中:</b></p><p> P1.0作為東邊直行車道車輛數(shù)加的檢測點(diǎn)</p><p> P1.1作為東邊直行車道車輛數(shù)減的檢測點(diǎn)</
67、p><p> P1.2作為東邊左行車道車輛數(shù)加的檢測點(diǎn)</p><p> P1.3作為東邊左行車道車輛數(shù)減的檢測點(diǎn)</p><p> 剩下P1.4到P1.7和P2口都是類似的用法,這里不做一一例舉。圖3-2為東邊的檢測連接方式。</p><p> 圖3-2 車流量檢測電路圖</p><p> 如圖3-2所示,傳
68、感器(用按鈕模擬)是低電平起作用的,當(dāng)東邊直行車道有車進(jìn)來經(jīng)過PB10的檢測點(diǎn)的時(shí)候,也就是我們模擬按鈕按下的時(shí)候,發(fā)送單片機(jī)的P1.0口就有一個(gè)低電平信號輸入,這樣就可以在程序里處理東邊直行道車量數(shù)自加1。當(dāng)東邊直行車道有車出去經(jīng)過PB11檢測點(diǎn)的時(shí)候,也就是我們模擬按鈕按下的時(shí)候,發(fā)送單片機(jī)的P1.1口就有一個(gè)低電平信號輸入,這樣就可以在程序里處理東邊直行道車量數(shù)自減。其他的控制都是這樣的形式完成。全部連線完整之后我們就可以著手于編
69、程了。</p><p> 第三節(jié) 車量數(shù)顯示電路的組成及連接</p><p> 本設(shè)計(jì)加的車量數(shù)顯示,主要是方便模型的演示,當(dāng)然在現(xiàn)實(shí)中也可以讓相關(guān)部分門能能夠知道準(zhǔn)確的車量數(shù),由于各種原因本設(shè)計(jì)所顯示車量數(shù)是比較大小后的數(shù),而不是東南西北直行左行都全顯示,比如說本設(shè)計(jì)只顯示東直行和西直行比較大小之后得出一個(gè)最大值,顯示東西方向最大值的車輛數(shù)。剩下的也同理。</p>&
70、lt;p> 另一個(gè)問題是,剩下的端口已經(jīng)不夠4個(gè)兩位一體的數(shù)碼管好用了,用所本設(shè)計(jì)用到一個(gè)74LS138譯碼器進(jìn)行端口擴(kuò)展,其中P0.0到P0.7分別與數(shù)碼管的a-g和dp,P3.3、P3.6和P3.和74LS138的輸入口相連,74LS138的8個(gè)輸出口與相應(yīng)數(shù)碼管的掃描端相連接,圖3-3為車量數(shù)顯示電路的組成及連接圖。</p><p> 圖3-3 車量數(shù)顯示電路的組成及連接圖</p>
71、<p> 從圖3-3我們看行出具體的連線,本設(shè)計(jì)所用到的是共陽的數(shù)碼管,編寫顯示子程序時(shí),只要給P0口輸出與共陽及顯示內(nèi)容相關(guān)的代碼。然后單片機(jī)從P3.3、P3.6和P3.7輸出相應(yīng)的高低掃描電平,用以控制74LS138的輸出口以低電平從Y0口到Y(jié)7口循環(huán)掃描,為什么是低電平有效呢?因?yàn)楸驹O(shè)計(jì)用到了PNP三極管來驅(qū)動數(shù)碼管,當(dāng)?shù)碗娖綊呙柽^三極管的時(shí)候就有一個(gè)VCC電源從三極管輸出進(jìn)入共陽數(shù)碼管,點(diǎn)亮這個(gè)數(shù)碼管。</p
72、><p> 所以在我們編寫顯示子程序的時(shí)候注意這幾點(diǎn)就可以進(jìn)行車量數(shù)顯示的子程序的編寫了。</p><p> 第四節(jié) 狀態(tài)燈電路的組成及連接</p><p> 狀態(tài)燈是車輛以及人行道禁行的指示燈,本設(shè)計(jì)是用接收單片機(jī)進(jìn)行控制的,其中具體用到的控制口如下:</p><p> P1.0為東西直行道的綠燈通行指示燈,</p>&
73、lt;p> P1.1為東西左行道的綠燈通行指示燈,</p><p> P1.2為東西方向狀態(tài)轉(zhuǎn)換的黃燈指示燈,</p><p> P1.3為東西方向紅燈指示燈,</p><p> P1.4為南北直行道的綠燈通行指示燈,</p><p> P1.5為南北左行道的綠燈通行指示燈,</p><p> P1.
74、6為南北方向狀態(tài)轉(zhuǎn)換的黃燈指示燈,</p><p> P1.7為南北方向紅燈指示燈,</p><p> P2.4為南北走向的人行道紅燈。</p><p> P2.5為南北走向的人行道綠燈。</p><p> P2.6為東西走向的人行道紅燈。</p><p> P2.7為東西走向的人行道綠燈。</p>
75、;<p> 圖3-4為狀態(tài)燈電路的組成及連線圖</p><p> 圖3-4 狀態(tài)燈電路的組成及連線圖</p><p> 如圖3-4所示為電其電路組成的一部分,只有東邊示圖,剩下南西北及人行道的組成及接法同理,只要我們在程序中控制相應(yīng)端口輸出低電平,相應(yīng)的燈就會亮。由此我們就可以進(jìn)行狀態(tài)燈控制的程序編寫了。</p><p> 第五節(jié) 倒計(jì)時(shí)電
76、路的組成及連接</p><p> 本設(shè)計(jì)中倒計(jì)時(shí)也是用數(shù)碼管動態(tài)掃描的,和第三節(jié)的差的多,不過第三節(jié)用到74LS138,本節(jié)所講的倒計(jì)時(shí)電路沒有用了,故也作說明。倒計(jì)時(shí)也是和燈狀態(tài)控制一樣用接收單片機(jī)進(jìn)行控制的,一共用到4個(gè)兩位一體的共陽數(shù)碼管,并肯是兩兩并連的,就是東和西并連,南和北并連,所以掃描端口只用到4個(gè)就可以,用到的控制端口如圖3-5 倒計(jì)時(shí)電路組成及連接圖。</p><p>
77、; 圖3-5 倒計(jì)時(shí)電路組成及連接圖</p><p> 圖3-5即為倒計(jì)時(shí)的電路組成及連接,其P0口作為數(shù)據(jù)輸出,輸出與共陽數(shù)碼管及內(nèi)容相關(guān)的代碼,P2.0到P2.3口連接4個(gè)三極管,當(dāng)?shù)碗娖綊哌^相應(yīng)三極管時(shí),就會有VCC電源進(jìn)入數(shù)碼管,點(diǎn)亮相應(yīng)的數(shù)碼管,所以本設(shè)計(jì)用于送數(shù)據(jù)的P0口是以低電平有效的代碼,掃描口也是以低電平有效來進(jìn)行掃描,編寫程序的時(shí)候注意這點(diǎn)才可以避免出錯,能更好更快的完成整個(gè)設(shè)計(jì)。<
78、;/p><p> 第四章 交通控制系統(tǒng)的程序設(shè)計(jì)</p><p> 第一節(jié) 程序主體設(shè)計(jì)流程</p><p> 全部控制程序?qū)嶋H上分為兩部分:發(fā)送單片機(jī)系統(tǒng)部和接收單片機(jī)部分。其中發(fā)送單片機(jī)部分包括車流量檢測程序,LED顯示程序,鍵盤程序,發(fā)送數(shù)據(jù)程序。其中接收單片機(jī)包括狀態(tài)燈控制程序,次狀態(tài)判斷及處理程序,中斷服務(wù)子程序,紅綠燈時(shí)間調(diào)整程序等。整個(gè)軟件程序方
79、面主要分發(fā)送程序和接收程序兩大部分。</p><p> 一、發(fā)送程序的總流程圖</p><p> 圖4-1-1 發(fā)送程序的總流程圖</p><p> 如圖4-1-1所示,首先是按鍵處理程序,AT89S52通過對I1和I2口的掃描,確定是否有鍵按下,是那個(gè)鍵按下,從而程序判斷是相應(yīng)的東邊直行有車過來、東邊直行有車出去、東邊左行有車過來、東邊左行有車出去、南邊直
80、行有車過來、南邊直行有車出去、南邊左行有車過來、南邊左行有車出去、西邊直行有車過來、西邊直行有車出去、西邊左行有車過來、西邊左行有車出去、北邊直行有車過來、北邊直行有車出去、北邊左行有車過來、北邊左行有車出去,并儲存相應(yīng)的車輛數(shù)值。</p><p> 然后分別對較東西方向直行車數(shù)量的大小、東西方向左行車數(shù)量的大小、南北方向直行車數(shù)量的大小、南北方向左行車數(shù)量的大小,取出最大的值(即車輛數(shù))進(jìn)行儲存。</p
81、><p> 其次拿這個(gè)最大值來代入公式Y(jié)=7+2X計(jì)算出Y值(即相應(yīng)綠燈通行時(shí)間初值)儲存起來并放入SBUF寄存器,然后通過P3.1口發(fā)送。</p><p> 最后,是數(shù)碼管處理程序,主根通過按鈕選擇用數(shù)碼管顯示最大值的車輛數(shù)還是通行時(shí)間初值。</p><p> 二、接收程序的總流程圖</p><p> 圖4-1-2 接收程序的總流程圖
82、</p><p> 如圖4-1-2所示,開始之后,首先是啟到定時(shí)器T0和串行口中斷,將定時(shí)器T0設(shè)為50ms一次中斷,在串行中斷里面執(zhí)行的程序主要是完成數(shù)據(jù)的接收及從SBUF里取出數(shù)據(jù)進(jìn)行儲存,循環(huán)接收循環(huán)刷新覆蓋,同時(shí)狀態(tài)燈模塊和倒計(jì)是模塊進(jìn)入初值工作狀態(tài)。</p><p> 然后,用取得的初值,判斷黃燈倒計(jì)時(shí)為0時(shí),對倒計(jì)是模塊進(jìn)行初值賦值,通過20次中斷對倒計(jì)時(shí)值進(jìn)行一次減1,實(shí)
83、現(xiàn)倒計(jì)時(shí)工作,然后判斷倒計(jì)時(shí)間的狀態(tài)以控制相應(yīng)狀態(tài)燈模塊的狀態(tài),如此控制下去,從南北直行到南北左行,從南北左行到東西直行,從東西直行到東西左行,再回到南北直行,如此循環(huán)下去。</p><p> 各功能模塊的程序設(shè)計(jì)</p><p> 這一節(jié)將對各功能模塊的程序設(shè)計(jì),如果實(shí)現(xiàn)控制作出說細(xì)的說明。本節(jié)對應(yīng)相應(yīng)模塊的功能只是選一小段程序作說明,完整的程序請看附錄四 發(fā)送單片機(jī)總程序與附錄五
84、 接收單片機(jī)總程序。</p><p><b> 按鍵模塊的程序設(shè)計(jì)</b></p><p> 在講這個(gè)之前先講一下消抖處理,在按鍵計(jì)數(shù)的過程中,還存在機(jī)械抖動與軟件方面的矛盾,即當(dāng)程序檢測到了有按鍵按下,則會計(jì)一次數(shù),但是實(shí)際上,按鍵閉合后在微觀上還會彈起,然后閉合,一直到達(dá)穩(wěn)定,顯然后面的彈落是無效的,為了使程序避免這個(gè)問題,可以在檢測到首次閉合時(shí),調(diào)用一定時(shí)
85、間的延時(shí)程序。此處延時(shí)程序完全用軟件完成,利用程序執(zhí)行一條指令的時(shí)間,再加上兩次累減嵌套。</p><p> 本設(shè)計(jì)所用到的按鍵有17個(gè),其中16個(gè)與發(fā)送單片機(jī)的P1口和P2口連接用來模擬車流量的檢測的傳感器,其中一個(gè)是作為切換數(shù)碼管所顯示內(nèi)容的選擇。它們的外電路的連接都是一端接地一端接單片機(jī)相應(yīng)的口,用的是獨(dú)立式接法,低電平對單片起作用。它的程序工作原理為,開始進(jìn)入掃描按鈕后,首先是掃按鈕,哪個(gè)按鈕下了就作出
86、自加自減的相應(yīng)處理,最后返回。它的流程圖如圖4-2-1 按鈕模塊流程圖。</p><p><b> ·</b></p><p><b> ·</b></p><p><b> ·</b></p><p> 圖4-2-1 按鈕模塊流程圖&
87、lt;/p><p> 程序控制方式如下(附解釋):</p><p> /***********************東直行************************************/ </p><p> if(P10==0&&ip10!=1){ //當(dāng)P10按下ip10不等于1時(shí)</p><p>
88、delay(10); //消抖動處理</p><p> if(P10==0&&ip10!=1){</p><p> ip10=1; //把ip10置為1 作用為鎖按鈕</p><p> dongzhi=dongzhi+1; //東直行車輛數(shù)加1</p><p
89、><b> }</b></p><p> if(P10!=0){ //等待按鈕放開,如果放開重新把ip10置為0</p><p> ip10=0; //解除按鈕封鎖</p><p><b> }</b></p><p> i
90、f(P11==0&&ip11!=1&&dongzhi>=1){ //當(dāng)P11按下ip11不等于1東直行車輛數(shù)時(shí)</p><p> delay(10); //消抖動處理</p><p> if(P11==0&&ip11!=1&&dongzhi>=1){</p><p&g
91、t; ip11=1; //把ip11置為1作用為鎖按鈕</p><p> dongzhi=dongzhi-1; //東直行車輛數(shù)減1</p><p> if(dongzhi==0){</p><p> dongzhi=0;</p><p><b&g
92、t; }</b></p><p><b> }</b></p><p> if(P11!=0){ //等待按鈕放開,如果放開重新把ip11置為0</p><p> ip11=0; //解除按鈕封鎖</p><p&g
93、t;<b> }</b></p><p> 這種設(shè)計(jì)方式比用消抖處理好,因?yàn)橄短幚碛袝r(shí)會由于延時(shí)子程序的原影響到其他模塊的正??刂?,而且也解決了按鈕一直按著不放還會一直加或減下去的問題。</p><p><b> 延時(shí)子程序的設(shè)計(jì)</b></p><p> 本設(shè)計(jì)單片機(jī)的工作頻率為12MHZ,機(jī)器周期與主頻有關(guān),
94、機(jī)器周期是主頻的12倍,所以一個(gè)機(jī)器周期的時(shí)間為12*(1/12MHZ)=1us。我們可以知道具體每條指令的周期數(shù),這樣我們就可以通過指令的執(zhí)行條數(shù)來確定1ms的時(shí)間。它的工作原理是:首先這里有一個(gè)While和一個(gè)For循環(huán)的嵌套,先給While循環(huán)的i賦值,然后到For循環(huán)里的j賦值0,其次判斷j是否小125,如果小于則j自加1再循環(huán)回來比較,如果不小于125則跳出,i自減1,如此循環(huán)直到i減到為0整個(gè)延時(shí)才結(jié)束,其程序流程圖如圖4-
95、2-2 延時(shí)子程序流程圖。</p><p> 圖4-2-2 延時(shí)子程序流程圖</p><p> 以下為12M晶振下的1ms延時(shí)子程序:</p><p> /************************************************************************/</p><p> void
96、delay(unsigned int i)</p><p><b> {</b></p><p> unsigned char j;</p><p> while(i--)</p><p><b> {</b></p><p> for(j=0;j<125;j
97、++) //1ms基準(zhǔn)延時(shí)程序</p><p><b> {</b></p><p><b> ;</b></p><p> } </p><p><b> } </b></p><p><b> }
98、</b></p><p> 這個(gè)程序包函有兩個(gè)循環(huán)語句,i是調(diào)用時(shí)應(yīng)自己要延時(shí)的時(shí)間長短來給值的。如調(diào)用這個(gè)程序讓它延時(shí)1S,我們就可以這樣寫: delay(1000);</p><p><b> 顯示子程序的設(shè)計(jì)</b></p><p> 顯示部分,本設(shè)計(jì)是用到兩位一體共陽數(shù)碼管來作為顯示的,數(shù)碼管的8個(gè)數(shù)據(jù)口的單片P0口的
99、8個(gè)端口,驅(qū)動該數(shù)碼管的方法為:比如說要給第一位數(shù)碼管顯示1,第二位數(shù)碼管顯示2,首先要在程序開始時(shí)定義一個(gè)數(shù)組,數(shù)組里有相應(yīng)的共陽數(shù)碼管用的代碼,然后在即行顯示程序時(shí),當(dāng)掃描端點(diǎn)亮第一位數(shù)碼管的同時(shí)從數(shù)組中提取1相應(yīng)的代碼通過P0口輸出給數(shù)碼管,當(dāng)掃描端點(diǎn)亮第二位數(shù)碼管的同時(shí)從數(shù)組中提取2相應(yīng)的代碼通過P0口輸出給數(shù)碼管,其實(shí)就是輪著點(diǎn)亮不同的位的數(shù)碼管,但是由于掃得很快,讓人感覺它是同時(shí)亮而以。其程序控制流程圖如圖4-2-3 數(shù)碼
100、管程序控制流程圖。</p><p><b> ·</b></p><p><b> ·</b></p><p><b> ·</b></p><p> 圖4-2-3 數(shù)碼管程序控制流程圖</p><p><b
101、> 控制程序如下:</b></p><p> /************************************************************************/</p><p> void DisplaySecond2(unsigned char k)</p><p><b> {</b&g
102、t;</p><p> P0=Tab[k/10]; //從數(shù)組中取代碼給“十位”數(shù)碼管</p><p> P22=0; //點(diǎn)燈“十位”數(shù)碼管</p><p><b> P23=1; </b></p><p> delay(1); //延
103、時(shí)1ms</p><p> P0=0x00; </p><p> P22=1; //關(guān)閉數(shù)碼管--消影處理</p><p> P0=Tab[k%10]; //從數(shù)組中取代碼給“個(gè)位”數(shù)碼管</p><p> P22=1; </p
104、><p> P23=0; //點(diǎn)燈“個(gè)位”數(shù)碼管</p><p> delay(1); //延時(shí)1ms</p><p> P0=0x00; </p><p> P23=1; //關(guān)閉數(shù)碼管--消影處理</p><
105、;p><b> delay(1);</b></p><p><b> }</b></p><p> LED燈控制程序設(shè)計(jì)</p><p> 燈的控制很簡單,這里簡單介紹行了,一個(gè)LED燈,我們把它的正極接VCC,負(fù)極接單片機(jī)控制口,然后在程序里控制相應(yīng)端口為低電平時(shí)(比如:P34=0;),LED燈被點(diǎn)亮,高電
106、平時(shí)(比如:P34=1;),LED燈被熄滅。其具體的工作原理為:開始之后,給所有信號燈賦值,南北直行燈亮,東西紅燈亮,然后進(jìn)入中斷服務(wù)里控制倒計(jì)時(shí),接下判斷倒計(jì)時(shí)是否為0,如果不為0返回繼續(xù)倒計(jì)時(shí),如果為0則判斷LED_time是否為1、2、3、4、5、6、7、8,如果YES就處理相應(yīng)的程序段控制相應(yīng)的燈亮與滅,最后返回。其具體的程序流程圖如圖4-2-4 LED控制程序流程圖。</p><p> 圖4-2-4
107、 LED控制程序流程圖</p><p><b> 中斷程序的設(shè)計(jì)</b></p><p> 這里我們所說到的中斷程序就是用定時(shí)器所產(chǎn)生的中斷,定時(shí)器工作的基本原理其實(shí)就是給初值,讓它不斷加1直至減完為模值,這個(gè)初值是送到TH和TL中的。它是以加法記數(shù)的,并能從全1到全0時(shí)自動產(chǎn)生溢出中斷請求。因此,我們可以就可以效利用定時(shí)器的計(jì)數(shù)溢出,進(jìn)行各項(xiàng)控制,還有因?yàn)槎〞r(shí)
108、器的計(jì)時(shí)時(shí)間非常精確,對于有用到時(shí)間的地方一般都會選用定時(shí)器。其程序原理為:開始之后,啟動定時(shí)器T0并給其賦初值,下一步定計(jì)器計(jì)數(shù),然后產(chǎn)生中斷請求,從而從入口interrupt 1進(jìn)入中斷子程序,關(guān)閉定時(shí)器T0,在程序里執(zhí)行相應(yīng)控制,最后再重新給定時(shí)器賦初值并啟動定時(shí)器T0,其程序流程圖如圖4-2-5 中斷程序流程圖。</p><p> 圖4-2-5 中斷程序流程圖</p><p>
109、 中斷子程序部分源代碼如下:</p><p> 以下程序?yàn)槎〞r(shí)器的選擇及啟動,并對計(jì)數(shù)值進(jìn)行初始設(shè)定。</p><p><b> EA=1;</b></p><p> ET0=1; //定時(shí)器T0中斷允許</p><p> TH0=(65536-46083)/256; /
110、/將定時(shí)器計(jì)時(shí)時(shí)間設(shè)定為46083×1.085微秒</p><p> TL0=(65536-46083)%256; //=50000微秒=50毫秒 </p><p> TR0=1; //啟動定時(shí)器T0開始運(yùn)行</p><p> 以下程序?yàn)橹袛嘧佣〞r(shí)器的中斷子程序,每中斷一次就掃一次并重新
111、賦值</p><p> void interserve1(void ) interrupt 1 //選擇中斷入口,定時(shí)器T0為1</p><p><b> { </b></p><p> TR0=0; //關(guān)閉定時(shí)器T0</p><p> //從這里開始,可以加入其他控制語句</p>&
112、lt;p> TH0=(65536-46083)/256; //重新給計(jì)數(shù)器T0賦初值</p><p> TL0=(65536-46083)%256;</p><p> TR0=1; //啟動定時(shí)器T0</p><p><b> }</b></p><p> 車流量計(jì)算公式的程序設(shè)計(jì)</p
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計(jì)---plc交通燈控制器
- 基于fpga的交通燈控制器設(shè)計(jì)-畢業(yè)設(shè)計(jì)
- 交通燈課程設(shè)計(jì)--交通燈控制器
- 畢業(yè)設(shè)計(jì)-eda技術(shù)交通燈控制器(課程設(shè)計(jì))
- 交通燈控制器設(shè)計(jì).doc
- 0557、交通燈控制器設(shè)計(jì)
- 交通燈控制器設(shè)計(jì).doc
- 基于單片機(jī)交通燈控制器畢業(yè)設(shè)計(jì)
- 交通燈課程設(shè)計(jì)報(bào)告---交通燈控制器
- 交通燈控制器設(shè)計(jì)畢業(yè)論文
- 單片機(jī)的交通燈控制器畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)----單片機(jī)交通燈控制器設(shè)計(jì)制作
- 0557、交通燈控制器設(shè)計(jì)
- 交通燈控制器設(shè)計(jì)畢業(yè)論文.docx
- 課程設(shè)計(jì)---交通燈控制器設(shè)計(jì)
- 交通燈控制器課程設(shè)計(jì)
- 交通燈控制器課程設(shè)計(jì)
- 課程設(shè)計(jì)---交通燈控制器
- 課程設(shè)計(jì)-- 交通燈控制器設(shè)計(jì)
- 課程設(shè)計(jì)----交通燈控制器
評論
0/150
提交評論