道路交通燈控制系統(tǒng)設(shè)計(jì)論文_第1頁(yè)
道路交通燈控制系統(tǒng)設(shè)計(jì)論文_第2頁(yè)
道路交通燈控制系統(tǒng)設(shè)計(jì)論文_第3頁(yè)
道路交通燈控制系統(tǒng)設(shè)計(jì)論文_第4頁(yè)
道路交通燈控制系統(tǒng)設(shè)計(jì)論文_第5頁(yè)
已閱讀5頁(yè),還剩45頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、50/50基于AT89C51的交通燈控制系統(tǒng)的設(shè)計(jì)摘 要交通燈控制系統(tǒng)是近現(xiàn)代社會(huì)隨著物流、出行等交通發(fā)展產(chǎn)生的一套獨(dú)特的公共管理系統(tǒng)。隨著我國(guó)城市現(xiàn)代化進(jìn)程的不斷推進(jìn),交通是影響我國(guó)社會(huì)經(jīng)濟(jì)發(fā)展的嚴(yán)重問題,而城市交通問題的核心就是對(duì)十字路口交通信號(hào)的控制。因此,我國(guó)的城市交通問題的研究重點(diǎn)是交通燈控制系統(tǒng)的研究。本課題是根據(jù)單片機(jī)相關(guān)知識(shí)對(duì)簡(jiǎn)單交通燈控制系統(tǒng)的設(shè)計(jì)。本文首先介紹了交通燈的發(fā)展歷史和研究現(xiàn)狀,闡述了本課題的任務(wù)要求,并在交通管理系統(tǒng)知識(shí)的基礎(chǔ)上,根據(jù)設(shè)計(jì)要求和實(shí)際應(yīng)用情況,進(jìn)行總體方案論述。接著,對(duì)單片機(jī)進(jìn)行了簡(jiǎn)單介紹,然后通過對(duì)交通燈控制系統(tǒng)需完成的功能確定了控制系統(tǒng)中需要設(shè)

2、計(jì)的模塊,最后對(duì)每個(gè)模塊進(jìn)行硬件的選擇與設(shè)計(jì),完成了對(duì)交通燈控制系統(tǒng)的硬件設(shè)計(jì)。在軟件設(shè)計(jì)部分,運(yùn)用Proteus和Keil軟件對(duì)交通控制系統(tǒng)編程與仿真,使交通燈控制系統(tǒng)功能達(dá)到任務(wù)要求。關(guān)鍵詞:信號(hào)燈 AT89C51 倒計(jì)時(shí) 控制引言:在今天,紅綠燈安裝在各個(gè)道口上,已經(jīng)成為疏導(dǎo)交通車輛最常見和最有效的手段。這一技術(shù)在19世紀(jì)就已出現(xiàn)了。早期的交通信號(hào)燈使用“固定配時(shí)”方式實(shí)行自動(dòng)控制,這種方式對(duì)于早起交通流量不大的情況曾起過一定的作用。但隨著汽車工業(yè)的發(fā)展,交通流量增加,隨機(jī)變化增強(qiáng),采用以往那種單一模式的“固定配時(shí)”方式已不能滿足客觀需要,于是一種多時(shí)段多方案的信號(hào)控制器開始出現(xiàn)并逐步取

3、代了傳統(tǒng)的只有一種控制方案的控制器。計(jì)算機(jī)的出現(xiàn)為交通控制技術(shù)的發(fā)展注入了新的活力。加拿大多倫多市于1964年完成了計(jì)算機(jī)控制信號(hào)燈的實(shí)用化,建立了一套由IBM650型計(jì)算機(jī)控制的交通信號(hào)協(xié)調(diào)系統(tǒng),成為世界上第一個(gè)具有電子數(shù)字計(jì)算機(jī)城市交通控制系統(tǒng)的城市。這是道路交通控制技術(shù)發(fā)展的里程碑。為此,設(shè)計(jì)一個(gè)關(guān)于交通燈控制系統(tǒng),該設(shè)計(jì)以AT89C51單片機(jī)作為核心,功耗小可以方便以后研究。1.設(shè)計(jì)的要求與方案1.1根據(jù)上述交通燈控制系統(tǒng)的研究意義,本課題設(shè)計(jì)了適應(yīng)當(dāng)前交通管理的交通燈控制系統(tǒng)。此系統(tǒng)中除了具有基本的交通燈功能之外,還具有倒計(jì)時(shí)、時(shí)間設(shè)置、根據(jù)情況手動(dòng)控制等功能。(1)在一般情況下,交

4、通燈控制系統(tǒng)要求正常顯示信號(hào)燈以與倒計(jì)時(shí)的時(shí)間變化:當(dāng)東西方向?yàn)榫G燈時(shí),南北方向?yàn)榧t燈;當(dāng)東西方向綠燈變?yōu)辄S燈,提示此方向即將禁止通行;當(dāng)東西方向變?yōu)榧t燈,南北方向變?yōu)榫G燈;當(dāng)南北方向變?yōu)辄S燈時(shí),提示此方向即將禁止通行。在每個(gè)方向都要求有倒計(jì)時(shí)顯示,提示通行時(shí)間和暫緩?fù)ㄐ袝r(shí)間。(2)在特殊情況下,某一方向的車流量過多,按鍵設(shè)置通行時(shí)間和暫緩?fù)ㄐ袝r(shí)間。綜上所述,交通燈的發(fā)展帶動(dòng)了整個(gè)交通運(yùn)輸?shù)陌l(fā)展。本章主要介紹了交通燈的發(fā)展現(xiàn)狀和研究意義,提出了本課題的任務(wù)要求。1.2 系統(tǒng)設(shè)計(jì)的總體方案1.2.1 系統(tǒng)設(shè)計(jì)目標(biāo)隨著人們?nèi)粘I钏降奶岣?,機(jī)動(dòng)車輛不斷增加,簡(jiǎn)單的交通控制系統(tǒng)已不能滿足當(dāng)前交通道

5、路管理的需要。為了最大程度的滿足交通管理的需要,為車輛提供準(zhǔn)確的通行時(shí)間,本課題應(yīng)結(jié)合先進(jìn)的研究技術(shù)設(shè)計(jì)出功能完善的交通燈控制系統(tǒng)。此外,還需要充分考慮系統(tǒng)的可操作性,使控制系統(tǒng)具備與突發(fā)狀況相適應(yīng)的可調(diào)節(jié)能力。1.2.2 交通道路管理方案在設(shè)計(jì)交通燈控制系統(tǒng)之前,應(yīng)明確交通道路中交通燈的管理方案。東西、南北兩干道交于一個(gè)十字路口,各干道有一組紅、黃、綠三色的指示燈,以指揮車輛的安全通行。紅燈亮禁止通行;綠燈亮允許通行;黃燈亮提示人們注意紅、綠燈的狀態(tài)即將切換,且黃燈燃亮?xí)r間為東西、南北兩干道的公共停車時(shí)間。信號(hào)燈指示方案如表1.2.1所示。表1.2.1 信號(hào)燈指示方案狀態(tài)信號(hào)燈顯示S1東西方

6、向綠燈 南北方向紅燈S2東西方向黃燈 南北方向紅燈S3東西方向紅燈 南北方向綠燈S4東西方向紅燈 南北方向黃燈1.2.3 系統(tǒng)設(shè)計(jì)總體方案根據(jù)交通系統(tǒng)管理方案和本課題任務(wù)的要求,該系統(tǒng)應(yīng)具有交通燈的顯示功能、倒計(jì)時(shí)功能和通行時(shí)間設(shè)置功能,所以把系統(tǒng)分為四個(gè)模塊,包括單片機(jī)控制、信號(hào)燈顯示、倒計(jì)時(shí)顯示和鍵盤設(shè)置,系統(tǒng)硬件設(shè)計(jì)結(jié)構(gòu)如圖2.1所示。初 始 參數(shù) 設(shè) 置AT89C51單片機(jī)控制模塊倒計(jì)時(shí)顯示模塊信號(hào)燈顯示模塊鍵盤設(shè)置74LS245驅(qū)動(dòng)圖1.2.1 系統(tǒng)硬件設(shè)計(jì)結(jié)構(gòu)下面分別簡(jiǎn)單介紹這四個(gè)模塊:(1)單片機(jī)控制模塊:?jiǎn)纹瑱C(jī)將計(jì)算機(jī)的基本部件微型化并集成到一塊芯片上,具有優(yōu)異的性能價(jià)格比,控

7、制功能強(qiáng),這將使各模塊功能的實(shí)現(xiàn)變得簡(jiǎn)單方便。本系統(tǒng)中,8051單片機(jī)的P0口控制南北方向的時(shí)間顯示;P1口控制信號(hào)燈的點(diǎn)亮;P2口控制東西方向的時(shí)間顯示;P3口接入鍵盤開關(guān),可設(shè)置適應(yīng)當(dāng)前狀況的通行時(shí)間和暫緩?fù)ㄐ袝r(shí)間。(2)信號(hào)燈顯示模塊:利用發(fā)光二極管代替交通信號(hào)燈,通過單片機(jī)控制使其按要求點(diǎn)亮。(3)倒計(jì)時(shí)顯示模塊:此模塊有兩種方案。第一種是采用數(shù)碼管顯示。該方案實(shí)現(xiàn)簡(jiǎn)單,但只能顯示有限的符號(hào)和數(shù)碼字符。第二種是采用點(diǎn)陣式LED顯示。該方案實(shí)現(xiàn)復(fù)雜,須完成大量的軟件工作,但功能強(qiáng)大,可方便的顯示各種英文字符、漢字和圖形。由于本控制系統(tǒng)只需顯示倒計(jì)時(shí)時(shí)間,利用數(shù)碼管即可完成此功能,因此本控

8、制系統(tǒng)中利用2位一體的共陰數(shù)碼管顯示道路兩個(gè)方向的通行時(shí)間和暫緩?fù)ㄐ袝r(shí)間,通過單片機(jī)控制進(jìn)行倒計(jì)時(shí)顯示。(4)鍵盤設(shè)置模塊:在交通道路突發(fā)情況時(shí),可通過按鍵手動(dòng)設(shè)置通行時(shí)間和暫緩?fù)ㄐ袝r(shí)間,通過單片機(jī)控制進(jìn)行時(shí)間設(shè)置。此模塊有兩種方案:第一種是采用8255擴(kuò)展I/O口與鍵盤、信號(hào)燈顯示等。該方案使用靈活,可提供較多I/O口,但操作復(fù)雜。另一種是直接在I/O口線上接上按鍵開關(guān)。該方案設(shè)計(jì)精簡(jiǎn),但提供的I/O口數(shù)量有限。由于本控制系統(tǒng)對(duì)于交通燈與數(shù)碼管的控制只用單片機(jī)本身的I/O口就可實(shí)現(xiàn),故選擇第二種方案。綜上所述,交通燈控制系統(tǒng)的總體方案已經(jīng)確定,下面進(jìn)行硬件設(shè)計(jì)。2交通燈控制系統(tǒng)硬件設(shè)計(jì)2.1

9、 單片機(jī)簡(jiǎn)介8051系列單片機(jī)是在美國(guó)Intel公司于20世紀(jì)80年代推出的MCS-51系列高性能8位單片機(jī)的基礎(chǔ)上發(fā)展而來的,它在單一芯片內(nèi)集成了并行I/O口、異步串行口、16位定時(shí)器/計(jì)數(shù)器、中斷系統(tǒng)、片內(nèi)RAM和片內(nèi)ROM,以與其他一些功能部件5。單片機(jī)主要有如下特點(diǎn):(1)有優(yōu)異的性能價(jià)格比。(2)集成度高、體積小、有很高的可靠性。單片機(jī)把各功能部件集成在一塊芯 片上,內(nèi)部采用總線結(jié)構(gòu),減少了各芯片之間的連線,大大提高了單片機(jī)的可靠性 與抗干擾能力。另外,其體積小,對(duì)于強(qiáng)磁場(chǎng)環(huán)境易于采取屏蔽措施,適合在惡劣的環(huán)境下工作。(3)控制功能強(qiáng)。為了滿足工業(yè)控制的要求,一般單片機(jī)的指令系統(tǒng)中均

10、有極豐富的轉(zhuǎn)移指令、I/O 口的邏輯操作以與位處理功能。單片機(jī)的邏輯控制功能與運(yùn)行速度均高于同一檔次的微機(jī)。(4)低功耗、低電壓,便于生產(chǎn)便攜式產(chǎn)品。(5)外部總線增加了 IC(Inter-Integrated Circuit)與 SPI(Serial Peripheral Interface)等串行總線方式,進(jìn)一步縮小了體積,簡(jiǎn)化了結(jié)構(gòu)。(6)單片機(jī)的系統(tǒng)擴(kuò)展和系統(tǒng)配置較典型、規(guī)范,容易構(gòu)成各種規(guī)模應(yīng)用系統(tǒng)6。2.2 系統(tǒng)時(shí)鐘電路晶振采用了內(nèi)部時(shí)鐘信號(hào)源的方式,如圖3.1所示。8051單片機(jī)內(nèi)部有一個(gè)高增益反向放大器,用于構(gòu)成振蕩器,反向放大器的輸入端為XTAL1,輸出端為XTAL2,分別是

11、8051的第19和18腳。在XTAL1和 XTAL2之間接1個(gè)石英晶體與2個(gè)電容,就可以構(gòu)成穩(wěn)定的自激振蕩器,當(dāng)震蕩在6MHz12 MHz時(shí)通常取30pF左右的電容進(jìn)行微調(diào)7。圖3.1 系統(tǒng)時(shí)鐘電路2.3 信號(hào)燈顯示電路在信號(hào)燈顯示電路中,本控制系統(tǒng)選用了發(fā)光二極管代替信號(hào)燈。其中:紅色發(fā)光二極管、黃色發(fā)光二極管和綠色發(fā)光二極管分別代替紅燈、黃燈、綠燈。發(fā)光二極管是一種特殊的二極管,導(dǎo)通時(shí)會(huì)發(fā)光(發(fā)光二極管導(dǎo)通壓降一般為1.5V左右)8。此外,工作電流要滿足該二極管的工作電流。一般發(fā)光二極管與I/O端口之間都會(huì)再連接一個(gè)電阻,其作用在于限制通過二極管的電流,從而達(dá)到減少功耗或者滿足端口對(duì)最大電

12、流的限制9。一般發(fā)光二極管的點(diǎn)亮電流為515mA??刂葡到y(tǒng)中,信號(hào)燈指示電路如圖3.2所示。圖3.2 信號(hào)燈顯示電路在此信號(hào)燈顯示電路中,每個(gè)發(fā)光二極管都與1個(gè)220的電阻相連接,起到限流作用。因?yàn)槎O管的導(dǎo)通電壓為1.5V,電阻分得的電壓為5V1.5V=3.5V,當(dāng)選擇220的電阻時(shí)發(fā)光二極管的電流為3.5V/220,約為15mA,此時(shí)發(fā)光二極管正常點(diǎn)亮。2.4 倒計(jì)時(shí)顯示電路該交通燈控制系統(tǒng)的倒計(jì)時(shí)功能可以采用數(shù)碼管顯示,也可以采用點(diǎn)陣式LED顯示。點(diǎn)陣式LED雖然功能強(qiáng)大,但是需要完成大量的軟件工作,系統(tǒng)設(shè)計(jì)的復(fù)雜度會(huì)增加,因此本控制系統(tǒng)選擇采用數(shù)碼管來實(shí)現(xiàn)交通燈倒計(jì)時(shí)功能的顯示。8段數(shù)

13、碼管又稱為8字型數(shù)碼管,分為8段:A、B、C、D、E、F、G、DP。其中,DP為小數(shù)點(diǎn)。數(shù)碼管常用的有10根管腳,每一段有一根管腳,另外兩根管腳為一個(gè)數(shù)碼管的公共段,兩根之間相互連通10-13。8段LED數(shù)碼管,就是在一定形狀的絕緣材料上,利用不同形狀點(diǎn)劃的發(fā)光二極管組合,排列成“8”字型的數(shù)碼管,分別引出它們的電極,點(diǎn)亮相應(yīng)的點(diǎn)劃來顯示09的數(shù)字14。數(shù)字顯示代碼如表3.1所示。表3.1 數(shù)字顯示驅(qū)動(dòng)代碼表顯示數(shù)值dop g f e d c b a驅(qū)動(dòng)代碼(16進(jìn)制)000 1 1 1 1 1 13FH10 0 0 0 0 1 1 006H201 0 1 1 0 1 15BH301 0 0

14、1 1 1 14FH401 1 0 0 1 1 066H501 1 0 1 1 0 06DH601 1 1 1 1 0 07DH700 0 0 0 1 1 107H801 1 1 1 1 1 17FH本控制系統(tǒng)倒計(jì)時(shí)電路采用了4個(gè)2位一體的共陰數(shù)碼管,此數(shù)碼管在交通燈控制系統(tǒng)中便于觀察倒計(jì)時(shí)顯示,如圖3.3所示。圖2.2位一體的共陰數(shù)碼管這4個(gè)數(shù)碼管分別與控制兩干道倒計(jì)時(shí)顯示的端口相連接,即可顯示出信號(hào)燈的倒計(jì)時(shí)功能。以南北方向的數(shù)碼管為例,如圖3.4所示。此數(shù)碼管顯示的數(shù)值從綠燈的設(shè)置時(shí)間最大值一直減,每秒鐘減1,然后又從黃燈的設(shè)置時(shí)間一直減,再?gòu)募t燈的設(shè)置時(shí)間一直減,接下來又顯示綠燈時(shí)間,

15、如此循環(huán)。圖3.4 南北方向倒計(jì)時(shí)顯示2.5 鍵盤設(shè)置電路鍵盤設(shè)置電路中,采用獨(dú)立式按鍵進(jìn)行控制。獨(dú)立式按鍵是直接用I/O口線構(gòu)成的單個(gè)按鍵電路,其特點(diǎn)是每個(gè)按鍵單獨(dú)占用一根I/O口線,每個(gè)按鍵的工作不會(huì)影響其它I/O口線的狀態(tài)14。獨(dú)立式按鍵的典型應(yīng)用如圖3.5所示:圖3.5 獨(dú)立式按鍵電路獨(dú)立式按鍵電路配置靈活,軟件結(jié)構(gòu)簡(jiǎn)單,但每個(gè)按鍵必須占用一根I/O口線,因此,在按鍵較多時(shí),I/O口線浪費(fèi)較大,不宜采用。根據(jù)以上特點(diǎn),本控制系統(tǒng)單片機(jī)的I/O口數(shù)可以滿足該鍵盤,并且可以完成課題中所要求的手動(dòng)設(shè)定時(shí)間的控制功能,所以本控制系統(tǒng)中應(yīng)采用獨(dú)立式鍵盤,鍵盤設(shè)置電路如圖2.6所示。圖2.6 鍵盤

16、設(shè)置電路2.6 單片機(jī)控制電路設(shè)計(jì)交通燈控制系統(tǒng)中,單片機(jī)控制模塊是整個(gè)電路設(shè)計(jì)的主要部分。8051單片機(jī)有4個(gè)并行I/O口P0、P1、P2和P3,每個(gè)口都有8個(gè)引腳,共有32根I/O引腳,它們都是雙向通道,每一條I/O引腳都能獨(dú)立地用做輸入和輸出。本系統(tǒng)中,8051單片機(jī)的P0口控制南北方向的時(shí)間顯示;P1口控制信號(hào)燈的點(diǎn)亮;P2口控制東西方向的時(shí)間顯示;P3口接入鍵盤開關(guān),可設(shè)置適應(yīng)當(dāng)前交通狀況的通行時(shí)間和暫緩?fù)ㄐ袝r(shí)間。另外,在P0口控制南北方向的時(shí)間顯示中,利用74LS245芯片驅(qū)動(dòng)數(shù)碼管。74LS245管腳結(jié)構(gòu)如圖3.7所示,它是常用的芯片,用來驅(qū)動(dòng)LED或者其他的設(shè)備,是8路同相三態(tài)

17、雙向總線收發(fā)器,可雙向傳輸數(shù)據(jù)15。8051單片機(jī)P0口內(nèi)部不帶上拉電阻,輸出只有電壓沒電流,接負(fù)載時(shí)要外接上拉電阻,即當(dāng)8051單片機(jī)的P0口總線負(fù)載達(dá)到或超過P0最大負(fù)載能力時(shí),必須接入74LS245等總線驅(qū)動(dòng)器。圖3.774LS245管腳結(jié)構(gòu)74LS245芯片具有雙向三態(tài)功能,既可以輸出,也可以輸入數(shù)據(jù),74LS245芯片內(nèi)部結(jié)構(gòu)如圖3.8所示。圖3.874LS245內(nèi)部結(jié)構(gòu)當(dāng)片選端低電平有效時(shí),DIR=“0”,信號(hào)由 B 向 A 傳輸,即接收數(shù)據(jù);DIR=“1”,信號(hào)由 A 向 B 傳輸,即發(fā)送數(shù)據(jù)。當(dāng)為高電平時(shí),A、B均為高阻態(tài)。所以,在本控制系統(tǒng)中需要用74LS245芯片對(duì)數(shù)碼管進(jìn)

18、行驅(qū)動(dòng)。本章對(duì)單片機(jī)進(jìn)行了簡(jiǎn)單介紹,設(shè)計(jì)了交通燈控制系統(tǒng)硬件電路。接下來,還需要對(duì)軟件部分進(jìn)行設(shè)計(jì),完成整個(gè)控制系統(tǒng)的設(shè)計(jì)要求。3 交通燈控制系統(tǒng)的軟件設(shè)計(jì)硬件平臺(tái)結(jié)構(gòu)一旦確定,功能框架就已經(jīng)形成。軟件在硬件平臺(tái)的基礎(chǔ)上構(gòu)筑,完成各部分硬件的控制和協(xié)調(diào)。系統(tǒng)是由軟硬件共同實(shí)現(xiàn)的,由于軟件的可伸縮性,最終實(shí)現(xiàn)的系統(tǒng)功能可強(qiáng)可弱,差別可能很大。因此,軟件是本系統(tǒng)的靈魂。軟件采用模塊化設(shè)計(jì)方法,不僅易于編程和調(diào)試,也可減小軟件故障率和提高軟件的可靠性。同時(shí),對(duì)軟件進(jìn)行全面測(cè)試也是檢驗(yàn)錯(cuò)誤排除故障的重要手段。3.1 軟件設(shè)計(jì)環(huán)境簡(jiǎn)介3.1.1 Proteus仿真軟件簡(jiǎn)介Proteus ISIS是英國(guó)L

19、abcenter公司開發(fā)的電路分析與實(shí)物仿真軟件。它運(yùn)行于Windows操作系統(tǒng)上,可以仿真、分析(SPICE)各種模擬器件和集成電路16。該軟件的特點(diǎn)是:(1)實(shí)現(xiàn)了單片機(jī)仿真和SPICE電路仿真相結(jié)合。具有模擬電路仿真、數(shù)字電路仿真、單片機(jī)與其外圍電路組成的系統(tǒng)的仿真、RS232動(dòng)態(tài)仿真、I2C調(diào)試器、SPI調(diào)試器、鍵盤和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號(hào)發(fā)生器等。(2)支持主流單片機(jī)系統(tǒng)的仿真。目前支持的單片機(jī)類型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以與各種外圍芯片。(3)提供

20、軟件調(diào)試功能。在硬件仿真系統(tǒng)中具有全速、單步、設(shè)置斷點(diǎn)等調(diào)試功能,同時(shí)可以觀察各個(gè)變量、寄存器等的當(dāng)前狀態(tài),因此在該軟件仿真系統(tǒng)中,也必須具有這些功能;同時(shí)支持第三方的軟件編譯和調(diào)試環(huán)境,如Keil C51 uVision2等軟件。(4)具有強(qiáng)大的原理圖繪制功能17??傊?,該軟件是一款集單片機(jī)和SPICE分析于一身的仿真軟件,功能極其強(qiáng)大。3.1.2KeilC51編譯軟件簡(jiǎn)介目前流行的51系列單片機(jī)開發(fā)軟件是德國(guó)Keil公司推出的Keil C51軟件,它是一個(gè)基于32位Windows環(huán)境的應(yīng)用程序,支持C語(yǔ)言和匯編語(yǔ)言編程,其6.0以上的版本將編譯和仿真軟件統(tǒng)一為uVision(通常稱為uV2

21、)18。Keil提供包括C編譯器、宏匯編、連接器、庫(kù)管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,由以下幾部分組成:uVision IDE集成開發(fā)環(huán)境(包括工程管理器、源程序編輯器、程序調(diào)試器)、C51編譯器、A51匯編器、LIB51庫(kù)管理器、BL51連接/定位器、OH51目標(biāo)文件生成器以與 Monitor-51、RTX51實(shí)時(shí)操作系統(tǒng)19-21。3.2 交通燈系統(tǒng)主程序在交通燈控制系統(tǒng)的設(shè)計(jì)中,首先對(duì)交通燈進(jìn)行初始參數(shù)設(shè)置,然后根據(jù)是否出現(xiàn)鍵盤事件,如出現(xiàn)鍵盤事件就啟動(dòng)鍵盤程序,進(jìn)行鍵盤時(shí)間處理;若沒有出現(xiàn),繼續(xù)進(jìn)行由初始參數(shù)進(jìn)行的控制程序。交通燈控制系統(tǒng)的設(shè)計(jì)流程如圖4.1所示:開始

22、初始化等待鍵盤事件鍵盤事件處理顯示程序處理圖4.1 交通燈控制系統(tǒng)設(shè)計(jì)流程3.3 交通燈延時(shí)程序延時(shí)方法可以有兩種,一種是利用MCS-51內(nèi)部定時(shí)器才生溢出中斷來確定1秒的延時(shí)時(shí)間,另一種是采用軟件延時(shí)的方法。3.3.1 計(jì)數(shù)器硬件延時(shí)(1)計(jì)數(shù)器初值計(jì)算定時(shí)器工作時(shí)必須給計(jì)數(shù)器初值,這個(gè)值是送到TH和TL中的。它是以加法計(jì)數(shù)的,并能從全1到全0時(shí)自動(dòng)產(chǎn)生溢出中斷請(qǐng)求22-26。因此,我們可以把計(jì)數(shù)器記滿為零所需的計(jì)數(shù)值設(shè)定為C和計(jì)數(shù)初值設(shè)定為TC可得到如下計(jì)算通式:TC=MC式中,M為計(jì)數(shù)器模值,該值和計(jì)數(shù)器工作方式有關(guān)。在方式0時(shí)M為213;在方式1時(shí)M的值為216;在方式2和3為28。(

23、2)計(jì)算公式TC=MT/ T計(jì)數(shù)T計(jì)數(shù)是單片機(jī)時(shí)鐘周期TCLK的12倍;TC為定時(shí)初值,如單片機(jī)的主脈沖頻率TCLK為12MHZ,經(jīng)過12分頻:方式0: TMAX=2131us =8.192ms方式1: TMAX=2161us=65.536ms方式2和3: TMAX=281us=0.256ms顯然1秒鐘已經(jīng)超過了計(jì)數(shù)器的最大定時(shí)時(shí)間,所以只有采用定時(shí)器和軟件相結(jié)合的辦法才能解決這個(gè)問題。(3)延時(shí)1秒的方法系統(tǒng)中采用在主程序中設(shè)定一個(gè)初值為4000的軟件計(jì)數(shù)器和使定時(shí)器定時(shí)250us。這樣每當(dāng)T0到250us時(shí)CPU就響應(yīng)它的溢出中斷請(qǐng)求,進(jìn)入它的中斷服務(wù)子程序。在中斷子程序中,CPU先使軟件

24、計(jì)數(shù)器減1,然后判斷它是否為0。為0表示1秒已到可以返回到輸出時(shí)間顯示程序。(4)相應(yīng)程序代碼主程序中:定時(shí)器需要定時(shí)250 us,故T0工作于方式2。初值:TC=MT/ T計(jì)數(shù)=28250us/1us=06HTMOD = 0 x02;/設(shè)置定時(shí)器0為工作方式2TH0 = 0 x06;TL0 = 0 x06;/初始化8位定時(shí)器 (2566)*4000 = 1sEA = 1;/總中斷允許ET0 = 1;/T0中斷允許TR0 = 1;/打開T0中斷3.3.2 軟件延時(shí)軟件延時(shí)需要通過編寫延時(shí)程序進(jìn)行延時(shí)。計(jì)算機(jī)執(zhí)行一條指令需要一定的時(shí)間,由一些指令組成一段程序,并反復(fù)循環(huán)執(zhí)行,利用計(jì)算機(jī)執(zhí)行程序所

25、用的時(shí)間來實(shí)現(xiàn)延時(shí),這種程序稱為延時(shí)程序27-28。如當(dāng)系統(tǒng)使用12MHz晶振時(shí),一個(gè)機(jī)器周期為1us,執(zhí)行一條雙字雙周期DJNZ指令的時(shí)間為2us,因此執(zhí)行該指令50萬(wàn)次,就可以實(shí)現(xiàn)延時(shí)1s的目的,對(duì)于50萬(wàn)次循環(huán)可采用外循環(huán)、中循環(huán)、內(nèi)循環(huán)嵌套的多重循環(huán)結(jié)構(gòu)。3.4 交通燈顯示程序交通燈顯示程序設(shè)計(jì)流程如圖4.2所示。交通燈顯示程序總共有4個(gè)狀態(tài)S1、S2、S3和S4,每個(gè)狀態(tài)中發(fā)光二極管顯示信號(hào)燈點(diǎn)亮情況,數(shù)碼管來進(jìn)行倒計(jì)時(shí)顯示,完成這4個(gè)狀態(tài)后再進(jìn)入初始狀態(tài)S1,進(jìn)行循環(huán)。開始初始化,狀態(tài)S1延時(shí),并顯示時(shí)間狀態(tài)S2延時(shí),并顯示時(shí)間狀態(tài)S3延時(shí),并顯示時(shí)間狀態(tài)S4延時(shí),并顯示時(shí)間圖4.

26、2 交通燈顯示設(shè)計(jì)流程3.5 按鍵處理程序鍵盤是人機(jī)進(jìn)行交互的重要接口之一。用戶通過對(duì)儀器下達(dá)命令,儀器獲得相應(yīng)的鍵值,并執(zhí)行相應(yīng)的命令程序29。鍵盤部分的軟件設(shè)計(jì)主要是對(duì)鍵盤管理芯片8051進(jìn)行編程,從而成功地讀取鍵盤值,實(shí)現(xiàn)相應(yīng)功能。按鍵模塊設(shè)計(jì)流程如圖4.3所示。在系統(tǒng)中有3個(gè)按鍵設(shè)置,分別為“設(shè)置鍵”、“增加鍵”、“減少鍵”。若“設(shè)置鍵”沒有按下,不進(jìn)行按鍵處理。若“設(shè)置鍵”按下,則按照到“設(shè)置鍵”程序處理,看是否有“增加鍵”和“減少鍵”被按下,若沒有,不進(jìn)行處理;若有,進(jìn)行相應(yīng)按鍵處理。YYNNY等待按鍵按下設(shè)置鍵是否按下增加鍵是否按下減少鍵是否按下設(shè)置鍵處理程序增加鍵處理程序減少鍵

27、處理程序圖4.3 按鍵模塊設(shè)計(jì)流程3.5.1 設(shè)置鍵處理(1)設(shè)置鍵的功能設(shè)置鍵的功能是根據(jù)按鍵次數(shù)決定的,如表4.1所示。按下“設(shè)置鍵”1次,則設(shè)置東西方向的綠燈點(diǎn)亮?xí)r間;按下“設(shè)置鍵”2次,則設(shè)置東西方向黃燈點(diǎn)亮?xí)r間;按下“設(shè)置鍵”3次,則設(shè)置南北方向的綠燈點(diǎn)亮?xí)r間;按下“設(shè)置鍵”4次,則設(shè)置南北方向黃燈點(diǎn)亮?xí)r間;按下“設(shè)置鍵”5次,則恢復(fù)交通燈工作狀態(tài),時(shí)間顯示設(shè)置后的通行時(shí)間和暫緩?fù)ㄐ袝r(shí)間。表4.1 設(shè)置鍵功能按“設(shè)置鍵”次數(shù)第1次第2次第3次第4次第5次調(diào)整內(nèi)容東西方向綠燈點(diǎn)亮?xí)r間東西方向黃燈點(diǎn)亮?xí)r間南北方向綠燈點(diǎn)亮?xí)r間南北方向黃燈點(diǎn)亮?xí)r間恢復(fù)交通燈工作狀態(tài)(2)設(shè)置鍵設(shè)計(jì)流程N(yùn)NN

28、NYYYYY等待按鍵釋放第5次按下東西向綠燈點(diǎn)亮,數(shù)碼管閃爍,設(shè)置通行時(shí)間東西向黃燈點(diǎn)亮,數(shù)碼管閃爍,設(shè)置暫緩?fù)ㄐ袝r(shí)間南北向綠燈點(diǎn)亮,數(shù)碼管閃爍,設(shè)置通行時(shí)間南北向黃燈點(diǎn)亮,數(shù)碼管閃爍,設(shè)置暫緩?fù)ㄐ袝r(shí)間交通燈正常顯示,數(shù)碼管顯示設(shè)置好的時(shí)間返回等待第4次按下第3次按下第2次按下第1次按下圖4.4 設(shè)置鍵設(shè)計(jì)流程(3)設(shè)置鍵相關(guān)程序void setSecond(void)while(P3_4 = 0);cntP3_4+;/標(biāo)志設(shè)置鍵被按下的次數(shù)switch(cntP3_4)case 1:cntEW = 5;/ cntEW為東西向標(biāo)志位 P1 = 0 xf7;/東西向綠燈點(diǎn)亮 break;case

29、 2:cntEW = 1;P1 = 0 xef;/東西向黃燈點(diǎn)亮break;case 3:cntSN = 1;/ cntSN為南北向標(biāo)志位 P1 = 0 xfe;/南北向綠燈點(diǎn)亮break;case 4:cntSN = 3; P1 = 0 xfd;/南北向黃燈點(diǎn)亮break;case 5:cntEW = 5;/東西方向和南北方向標(biāo)志位都回到初始狀態(tài) cntSN = 5; cnt_num = 0; cntP3_4 = 0; break;增加鍵處理(1)增加鍵的功能當(dāng)系統(tǒng)系統(tǒng)需要進(jìn)行按鍵設(shè)置時(shí),通過“增加鍵”可以改變東西方向和南北方向的通行時(shí)間和暫緩?fù)ㄐ袝r(shí)間。此按鍵分為兩個(gè)功能,一個(gè)是“加1”功能

30、,一個(gè)是“加10”功能。(2)增加鍵處理流程N(yùn)NNYYYY延時(shí)按鍵是否還在按下延時(shí)按鍵是否釋放按鍵是否還在按下等待按鍵釋放數(shù)碼管值加1返回?cái)?shù)碼管值加10數(shù)碼管加10延時(shí)圖4.5 增加鍵設(shè)計(jì)流程(3)“增加鍵”相關(guān)程序秒數(shù)加1程序:void addSecond(void)while(P3_5 = 0);cnt_key = 0;/記錄長(zhǎng)按鍵的參數(shù)清零switch(cntP3_4)case 1:if(keyMemory != greenEW + 10)/判斷按鍵是否已經(jīng)加10,如果沒有加10則秒數(shù)加1,如果已經(jīng)加10則不加1greenEW+;if(greenEW = 90)greenEW = 0;/

31、90為秒數(shù)增加后的最大值,當(dāng)超過90s后自動(dòng)為0scdEW = greenEW;scdSN = greenEW + yellowEW + 1;break; /東西向綠燈顯示時(shí)間設(shè)置case 2:if(yellowEW+ = 9)yellowEW = 0;scdEW = yellowEW;break; /東西向黃燈顯示時(shí)間設(shè)置case 3:if(keyMemory != greenSN + 10)greenSN+;if( greenSN = 90) greenSN = 0;scdEW = greenSN + yellowSN + 1;scdSN = greenSN;break; /南北向綠燈顯示

32、時(shí)間設(shè)置case 4:if(yellowSN+ = 9)yellowSN = 0;scdSN = yellowSN;break; /南北向黃燈顯示時(shí)間設(shè)置長(zhǎng)按加10s程序:當(dāng)長(zhǎng)時(shí)間按下按鍵后,增加的時(shí)間為10s void add_10s(void)cnt_key = 0;switch(cntP3_4)case 1: /設(shè)置鍵按1次,設(shè)置東西方向綠燈顯示時(shí)間greenEW = greenEW + 10;/長(zhǎng)按秒數(shù)加10if(greenEW = 90)greenEW = 0;keyMemory = greenEW + 10;/keyMemory用來標(biāo)記秒數(shù)已經(jīng)加10scdEW = greenEW;

33、scdSN = greenEW + yellowEW + 1;break;case 3: /設(shè)置鍵按3次,設(shè)置東西方向綠燈顯示時(shí)間greenSN = greenSN + 10;if(greenSN =90)greenSN = 0;keyMemory = greenSN + 10;scdEW = greenSN + yellowSN + 1;scdSN = greenSN;break;減少鍵處理“減少鍵”與“增加鍵”設(shè)計(jì)的流程基本一樣,如圖4.6所示。NNNYYYY延時(shí)按鍵是否還在按下延時(shí)按鍵是否釋放按鍵是否還在按下等待按鍵釋放數(shù)碼管值減1返回?cái)?shù)碼管值減10數(shù)碼管減10延時(shí)圖 “減少鍵”設(shè)計(jì)流程

34、交通燈控制系統(tǒng)仿真 仿真開始時(shí),東西方向?yàn)榫G燈,數(shù)碼管從20s開始倒計(jì)時(shí);南北方向?yàn)榧t燈,數(shù)碼管從24s開始倒計(jì)時(shí)。接著,東西方向?yàn)辄S燈,數(shù)碼管從3s開始倒計(jì)時(shí);南北方向還是紅燈。過后,東西方向?yàn)榧t燈,數(shù)碼管從30s開始倒計(jì)時(shí);南北方向?yàn)榫G燈,數(shù)碼管從24s開始倒計(jì)時(shí)。再接著,東西方向繼續(xù)為紅燈;南北方向?yàn)辄S燈,數(shù)碼管從5s開始倒計(jì)時(shí)。最后,回到初始狀態(tài)進(jìn)行循環(huán)。當(dāng)?shù)缆飞铣霈F(xiàn)突發(fā)狀況時(shí),按鍵設(shè)置通行時(shí)間后,交通燈信號(hào)燈顯示狀態(tài)不變,通行時(shí)間和暫緩?fù)ㄐ袝r(shí)間變?yōu)榘存I設(shè)置后的時(shí)間。交通燈初始狀態(tài)時(shí)的仿真初始狀態(tài)下,東西方向顯示綠燈,數(shù)碼管從20s開始倒計(jì)時(shí);南北方向顯示紅燈,禁止通行,數(shù)碼管從24s

35、開始倒計(jì)時(shí)。圖4.7 交通燈初始狀態(tài)的仿真東西向信號(hào)燈切換時(shí)仿真東西向綠燈變?yōu)辄S燈,時(shí)間為3s,南北方向?yàn)榧t燈。圖4.8 東西向信號(hào)燈切換時(shí)的仿真鍵盤控制重設(shè)時(shí)間的仿真通過設(shè)置鍵、增加鍵、減少鍵對(duì)交通燈控制系統(tǒng)的通行時(shí)間和暫緩?fù)ㄐ袝r(shí)間進(jìn)行設(shè)置,東西方向的通行時(shí)間為36s,南北方向等待通行時(shí)間為40s。圖4.9 鍵盤控制重設(shè)時(shí)間的仿真綜上所述,該控制系統(tǒng)的軟件設(shè)計(jì)極其重要。本章主要闡述了每個(gè)模塊的設(shè)計(jì)流程,簡(jiǎn)單介紹了控制系統(tǒng)的程序設(shè)計(jì),列出了本控制系統(tǒng)的仿真結(jié)果。4 交通燈控制系統(tǒng)調(diào)試因本設(shè)計(jì)本身要求有穩(wěn)定性高、免維護(hù)、抗干擾能力強(qiáng)等功能,系統(tǒng)調(diào)試除了驗(yàn)證數(shù)據(jù)處理的精度,確保判斷的準(zhǔn)確性外,同時(shí)

36、必須確認(rèn)各項(xiàng)的功能的正常運(yùn)行。根據(jù)系統(tǒng)設(shè)計(jì)方案,本系統(tǒng)的調(diào)試共分為三大部分:硬件調(diào)試,軟件調(diào)試和軟硬件聯(lián)調(diào)。由于在系統(tǒng)設(shè)計(jì)中采用模塊化設(shè)計(jì),所以方便了對(duì)各電路功能模塊的逐級(jí)測(cè)試,包括對(duì):交通燈點(diǎn)亮功能調(diào)試,倒計(jì)時(shí)功能調(diào)試,鍵盤設(shè)置功能調(diào)試。單片機(jī)軟件先在最小系統(tǒng)板上調(diào)試,確保工作正常之后,再與硬件系統(tǒng)聯(lián)調(diào)。最后將各模塊組合后進(jìn)行整體測(cè)試,使系統(tǒng)的所有功能得以實(shí)現(xiàn)。4.1 硬件調(diào)試交通燈控制系統(tǒng)電路板焊接工作量非常大,電路焊接完成后,首先要進(jìn)行檢查,即確認(rèn)電路無(wú)虛焊,無(wú)短路,無(wú)斷路,集成元件安裝是否正確,之后進(jìn)行電路功能模塊的分級(jí)調(diào)試,根據(jù)電路功能逐級(jí)進(jìn)行:(1)信號(hào)燈點(diǎn)亮功能調(diào)試:四種狀態(tài)下的

37、信號(hào)燈點(diǎn)亮情況和亮度的調(diào)試;(2)倒計(jì)時(shí)功能調(diào)試:包括數(shù)碼管亮度調(diào)試和延時(shí)功能的調(diào)試;(3)鍵盤設(shè)置功能調(diào)試:包括按鍵功能調(diào)試與延時(shí)功能的調(diào)試;4.2 軟件調(diào)試本系統(tǒng)的軟件系統(tǒng)全部用C語(yǔ)言來編寫,選用Keil對(duì)其進(jìn)行調(diào)試。首先,對(duì)程序的語(yǔ)法進(jìn)行檢查。當(dāng)確認(rèn)程序沒問題時(shí),通過直接下載到單片機(jī)來調(diào)試。采取的是自下到上的調(diào)試方法,即單獨(dú)調(diào)試好每一個(gè)模塊,然后再連接成一個(gè)完整的系統(tǒng),最后完成一個(gè)完整的系統(tǒng)調(diào)試。4.3 軟硬件聯(lián)調(diào)系統(tǒng)做好后,進(jìn)行系統(tǒng)的完整調(diào)試。主要任務(wù)是檢驗(yàn)實(shí)現(xiàn)的功能與其效果。調(diào)試時(shí),單片機(jī)軟件先在最小系統(tǒng)板上調(diào)試,確保工作正常之后,再與硬件系統(tǒng)聯(lián)調(diào)。信號(hào)燈指示電路模塊由12個(gè)發(fā)光二極

38、管和12個(gè)220電阻組成。該模塊接線繁瑣,極易出錯(cuò)。當(dāng)檢查發(fā)光二極管無(wú)故障、導(dǎo)線無(wú)斷線、連線接頭無(wú)互相搭聯(lián)后可先寫一個(gè)軟件調(diào)試程序,依次檢查東南西北方向的信號(hào)燈(發(fā)光二極管)是否點(diǎn)亮;若未點(diǎn)亮,則可能是連線接錯(cuò)。根據(jù)燈的亮滅情況依次查找錯(cuò)誤,直到電路正常工作為止。倒計(jì)時(shí)顯示電路模塊由4個(gè)數(shù)碼管組成。調(diào)試時(shí),先檢查數(shù)碼管管腳是否與相應(yīng)引腳相連,確認(rèn)無(wú)誤后,再將數(shù)碼管與仿真器相連,編制一個(gè)簡(jiǎn)單的程序進(jìn)行調(diào)試,直到數(shù)碼管正常顯示時(shí)間為止。鍵盤設(shè)置電路模塊由3個(gè)按鍵和3個(gè)1K電阻組成。當(dāng)檢查按鍵無(wú)故障、導(dǎo)線連接無(wú)誤后,用一個(gè)軟件調(diào)試程序進(jìn)一步檢查按鍵設(shè)置電路。當(dāng)各模塊均調(diào)試好后,進(jìn)行整機(jī)聯(lián)調(diào):將各模塊

39、連接起來,逐個(gè)進(jìn)行檢測(cè)。調(diào)試成功后再將程序?qū)懙絾纹瑱C(jī)中進(jìn)行調(diào)試,直至整個(gè)系統(tǒng)能夠正常工作。此外,在電路抗干擾設(shè)計(jì)方面,硬件電路中采取了引線盡量短,減少交叉等措施。實(shí)踐證明,這些措施對(duì)消除某些引腳引起的直流分量干擾起到了很好的效果??垢蓴_設(shè)計(jì)是單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)的重要組成部分,沒有良好的抗干擾措施,系統(tǒng)就無(wú)法安全可靠的工作。當(dāng)然,本系統(tǒng)只能通過系統(tǒng)軟件、硬件設(shè)計(jì)盡可能的減少干擾帶來的影響,而不可能完全消除干擾。5結(jié) 論本系統(tǒng)采用了8051芯片和74LS245芯片為中心器件來設(shè)計(jì)交通燈控制系統(tǒng),此系統(tǒng)通過P1口對(duì)交通燈燃亮情況進(jìn)行了控制,而南北方向和東西方向的顯示時(shí)間分別是通過P0、P2口進(jìn)行了控

40、制,鍵盤設(shè)置時(shí)間模塊是由P3.4、P3.5、P3.6控制,該系統(tǒng)設(shè)計(jì)簡(jiǎn)便,實(shí)用性強(qiáng),操作簡(jiǎn)單。但是本文所設(shè)計(jì)的交通燈控制系統(tǒng)還存在一些未盡人意的地方,還有很多不足之處:(1)該交通燈控制系統(tǒng)沒有考慮到夜晚車輛極少情況下的交通燈顯示情況。(2)該交通燈控制系統(tǒng)不能控制車的左、右轉(zhuǎn),以與自動(dòng)根據(jù)車流改變紅綠燈時(shí)間等。(3)該交通燈控制系統(tǒng)只考慮交通道路中的車輛,未考慮到行人的通行問題。通過這次畢業(yè)設(shè)計(jì),使我得到了一次運(yùn)用專業(yè)知識(shí)、專業(yè)技能分析和解決問題全面系統(tǒng)的鍛煉,使我在單片機(jī)的基本原理、單片機(jī)應(yīng)用系統(tǒng)的開發(fā)過程以與在常用編程設(shè)計(jì)思路技巧的掌握方面都能向前邁了一大步,為日后成為合格的應(yīng)用型人才打

41、下良好的基礎(chǔ)。參 考 文 獻(xiàn)1 余發(fā)山.單片機(jī)原理與應(yīng)用技術(shù)M.中國(guó)礦業(yè)大學(xué),2002.2李朝青.單片機(jī)原理與接口技術(shù)(修訂版)M.:航空航天大學(xué),1998.3Zadeh L.A. Fuzzy Sets and their ApplicationsM. New York:Academic Press,1975.4李廣弟.單片機(jī)基礎(chǔ)M.:航空航天大學(xué),1992.5余錫存,曹國(guó)華.單片機(jī)原理與接口技術(shù)M.陜西:西安電子科技大學(xué),1998.6 張立新,吳明捷,張曉燕. HYPERLINK :/ cnki .cn/Article/CJFDTOTAL-BJSY200101012.htm%09%09%09

42、%09%09%09%09%09%09%09%09%09%09 t _blank 可編程控制器(PLC)的高速計(jì)數(shù)器的應(yīng)用J.石油化工學(xué)院學(xué)報(bào),2001(1):3436.7 蔣萬(wàn)君.在論循環(huán)時(shí)序電路的簡(jiǎn)便設(shè)計(jì)J.機(jī)電一體化,2005(2):1214.8 史建平. HYPERLINK :/ cnki .cn/Article/CJFDTOTAL-CZGB199902007.htm%09%09%09%09%09%09%09%09%09%09%09%09%09 t _blank PLC在全功能交通燈控制上的應(yīng)用J.常州工學(xué)院學(xué)報(bào),1999(6):6568.9 Tobin,R.L Friesz .T.L

43、HYPERLINK :/d.wanfangdata .cn/ExternalResource-jtysxtgcyxx200502007%5e88.aspx Sensitivity analysis for equilibrium network flows J, Prentice Hall,2001(2):8791.10 黃義源.機(jī)械設(shè)備電氣與數(shù)字控制M.中央廣播電視大學(xué),1993.11 蔡美琴.張為民等MCS-51系列單片機(jī)系統(tǒng)與應(yīng)用M.高等教育,1992.12李建中.單片機(jī)原理與應(yīng)用M.西安:西安電子科技大學(xué),2002.13康華光.電子技術(shù)基礎(chǔ)(第四版)M.:高等教育,2000.14 楊佩

44、昆等編.交通管理與控制M.:人民文通,1992.15 繞慶和.MSC-51單片機(jī)實(shí)用技術(shù)M.:電子工業(yè),2003.16 沈紅衛(wèi).單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)實(shí)例與分析M.:航空航天大學(xué),2000.17陳靜,花瑞,宋炳生. HYPERLINK :/d.wanfangdata .cn/Periodical_whqcgydxxb200805008.aspx 交叉口交通信號(hào)控制的半實(shí)物仿真平臺(tái)設(shè)計(jì)J.武漢理工大學(xué)學(xué)報(bào)(信息與管理工程版),2008(5):2629.18 馀吉萬(wàn)等編.城市交通的計(jì)算機(jī)控制和管理M.測(cè)繪,1985.19 劉曉娟,張雁鵬,湯自安編.城市軌道交通智能控制系統(tǒng)M.中國(guó)鐵道,2008.20

45、王煒.城市交通規(guī)劃理論與其應(yīng)用M.:電子工業(yè),2007.21 張輝.8051單片機(jī)控制交通信號(hào)燈的方法研究J.邵陽(yáng)師范高等專科學(xué)校學(xué)報(bào),附錄附錄一:電路圖附錄二:程序#includeat89x51.hunsigned char num=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;/數(shù)字09unsigned char ctr=0 xfa,0 xf5;/0 xfa(P3_0和 P3_2為0,即高位有效)0 xf5(P3_1和P3_3為0,即低位有效)unsigned char disEW2;/記錄東西向高低位數(shù)值unsig

46、ned char disSN2; /記錄南北向高低位數(shù)值unsigned char v; unsigned char cnt_ctr; unsigned int scdEW,scdSN; unsigned int cntSN,cntEW; unsigned char cntP3_4,cntP3_5,cntP3_6;unsigned int cnt_num,cnt_key,cnt_flash,keyMemory;int greenEW = 20,yellowEW = 3,greenSN = 24,yellowSN = 5;/延時(shí)函數(shù),a為1延時(shí)1毫秒 void delay_ms(unsigned

47、 int a)int i;while(a-)i = 70;while(i-);/設(shè)置紅綠黃燈秒數(shù)void setSecond(void)while(P3_4 = 0);cntP3_4+;/標(biāo)志設(shè)置鍵被按下的次數(shù)switch(cntP3_4)case 1:cntEW = 5;P1 = 0 xf7;break;case 2:cntEW = 1;P1 = 0 xef;break;case 3:cntSN = 1;P1 = 0 xfe;break;case 4:cntSN = 3;P1 = 0 xfd;break;case 5:cntEW = 5;cntSN = 5;cnt_num = 0;cntP3

48、_4 = 0;break;/秒數(shù)加1void addSecond(void)while(P3_5 = 0);cnt_key = 0;/記錄長(zhǎng)按鍵的參數(shù)清零switch(cntP3_4)case 1:if(keyMemory != greenEW + 10)/判斷按鍵是否已經(jīng)加10,如果沒有加10則秒數(shù)加1,如果已經(jīng)加10則不加1 greenEW+;if(greenEW = 90) greenEW = 0;scdEW = greenEW;scdSN = greenEW + yellowEW + 1;break;case 2:if(yellowEW+ = 9)yellowEW = 0;scdEW

49、= yellowEW;break;case 3:if(keyMemory != greenSN + 10)greenSN+;if( greenSN = 90) greenSN = 0;scdEW = greenSN + yellowSN + 1;scdSN = greenSN;break;case 4:if(yellowSN+ = 9)yellowSN = 0;scdSN = yellowSN;break;/秒數(shù)減1void subSecond(void)while(P3_6 = 0);cnt_key = 0;/記錄長(zhǎng)按鍵的參數(shù)清零switch(cntP3_4)case 1:if(keyMem

50、ory != greenEW - 10)/判斷按鍵是否已經(jīng)減10,如果沒有減10則秒數(shù)減1,如果已經(jīng)減10則不減1 greenEW-;if(greenEW = -1) greenEW = 89;scdEW = greenEW;scdSN = greenEW + yellowEW + 1;break;case 2:if(yellowEW- = 0)yellowEW = 9;scdEW = yellowEW;break;case 3:if(keyMemory != greenSN - 10)greenSN-;if(greenSN = -1) greenSN = 89;scdEW = greenSN

51、 + yellowSN + 1;scdSN = greenSN;break;case 4:if(yellowSN- = 0)yellowSN = 9;scdSN = yellowSN;break; /正常顯示秒數(shù)void display(void)cnt_num+;if(cnt_ctr = 10) cnt_ctr = 0; P3 = 0 xff; P3 = ctrv;P2 = numdisEWv; /顯示東西方向秒數(shù)P0 = numdisSNv; /顯示南北方向秒數(shù)if(v+ = 1) v = 0; /閃爍顯示秒數(shù)void dspFlash(void)cnt_flash+;if(cnt_fla

52、sh = 90)greenEW = 0;keyMemory = greenEW + 10;/keyMemory用來標(biāo)記秒數(shù)已經(jīng)加10scdEW = greenEW;scdSN = greenEW + yellowEW + 1;break;case 3:greenSN = greenSN + 10;if(greenSN =90)greenSN = 0;keyMemory = greenSN + 10;scdEW = greenSN + yellowSN + 1;scdSN = greenSN;break;/長(zhǎng)按減10秒void sub_10s(void)cnt_key = 0;switch(cntP3_4)case 1:greenEW = greenEW - 10;/長(zhǎng)按秒數(shù)減10if(green

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論