基于單片機(jī)AT89C52控制的交通燈附帶程序_第1頁(yè)
基于單片機(jī)AT89C52控制的交通燈附帶程序_第2頁(yè)
基于單片機(jī)AT89C52控制的交通燈附帶程序_第3頁(yè)
基于單片機(jī)AT89C52控制的交通燈附帶程序_第4頁(yè)
基于單片機(jī)AT89C52控制的交通燈附帶程序_第5頁(yè)
已閱讀5頁(yè),還剩63頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

資資料.資資料.學(xué)號(hào):2009學(xué)院

機(jī)械工程學(xué)院

課程設(shè)計(jì)題目基于AT89C52單片機(jī)的交通燈控制系統(tǒng)設(shè)計(jì)專業(yè)機(jī)械電子工程班級(jí)姓名指導(dǎo)教師20XX年12月XX日

課程設(shè)計(jì)任務(wù)書姓名XXX學(xué)號(hào)1X班級(jí)XXXX課程名稱單片機(jī)課程設(shè)計(jì)課程性質(zhì)必修設(shè)計(jì)時(shí)間2012年12月16日——2012年12月30日設(shè)計(jì)名稱基于AT89C52單片機(jī)的交通燈控制系統(tǒng)設(shè)計(jì)設(shè)計(jì)要求用AT89C52單片機(jī)控制一個(gè)交通信號(hào)燈系統(tǒng),晶振采用12MHz。設(shè)A車道與B車道交叉組成十字路口,A是主道,B是支道。設(shè)計(jì)要求如下:1)用發(fā)光二極管模擬交通信號(hào)燈,用按鍵開(kāi)關(guān)模擬車輛檢測(cè)信號(hào);2)正常情況下,A、B兩車道輪流放行,A車道放行50s,其中5s用于警告;B車道放行30s,其中5s用于警告;3)在交通繁忙時(shí),交通信號(hào)燈控制系統(tǒng)應(yīng)有手控開(kāi)關(guān),可人為地改變信號(hào)燈的狀態(tài),以緩解交通擁擠狀況。在B車道放行期間,若A車道有車而B車道無(wú)車,按下開(kāi)關(guān)K1使A車道放行15s;在人車道放行期間,若B車道有車而A車道無(wú)車,按下開(kāi)關(guān)K2使B車道放行15s;4)有緊急車輛通過(guò)時(shí),按下K3開(kāi)關(guān)使A、B車道均為紅燈,禁行20s。5)完成系統(tǒng)電路設(shè)計(jì);6)完成系統(tǒng)軟件設(shè)計(jì);7)完成系統(tǒng)Proteus下的仿真。8)完成課程設(shè)計(jì)報(bào)告。

時(shí)間:二周1)方案設(shè)計(jì)2天2)電路設(shè)計(jì)2天3)軟件設(shè)計(jì)3天計(jì)劃與進(jìn)度4)軟、硬件聯(lián)調(diào)2天5)系統(tǒng)仿真2天6)答辯1天7)完成報(bào).告2天任課教師意見(jiàn)年月日教研室主任簽名年月日平時(shí)考勤:20%設(shè)計(jì):30%仿真:20%答辯:10%說(shuō)明設(shè)計(jì)報(bào)告:20%共計(jì)100分。目錄TOC\o"1-5"\h\z目錄II第一章緒論11.1交通燈設(shè)計(jì)的意義11.2交通燈設(shè)計(jì)的思想11.3交通燈設(shè)計(jì)滿足的基本功能2第二章總體方案32.1總體方案設(shè)計(jì)思想32.2系統(tǒng)方案選擇與比較32.3系統(tǒng)總體方案論證5第三章硬件設(shè)計(jì)6總體設(shè)計(jì)與描述6交通燈通行模式及行車方向指示6主干道單獨(dú)時(shí)間設(shè)置功能8倒計(jì)時(shí)計(jì)數(shù)功能及其實(shí)現(xiàn)8各功能模塊硬件設(shè)計(jì)及實(shí)現(xiàn)9第四章軟件設(shè)計(jì)12軟件總體流程圖12定時(shí)器初始化124.3動(dòng)態(tài)顯示134.4設(shè)置狀態(tài)子程序14第五章系統(tǒng)調(diào)試155.1系統(tǒng)操作說(shuō)明15調(diào)試15調(diào)試心得19第六章設(shè)計(jì)總結(jié)21參考資料參考資料22參考資料參考資料22資資料.資資料.附錄23I原理圖23II原程序24資資料.資資料.第一章緒論1.1交通燈設(shè)計(jì)的意義交通的發(fā)達(dá),標(biāo)志著城市的發(fā)達(dá),相對(duì)交通的管理則顯得越來(lái)越重要。交通燈是城市交通中的重要指揮系統(tǒng),它與人們?nèi)粘I蠲芮邢嚓P(guān).隨著人們生活水平的提高,對(duì)交通管制也提出了更高的要求,因此提供一個(gè)可靠、安全、便捷的多功能交通燈控制系統(tǒng)有著現(xiàn)實(shí)的必要性。對(duì)于復(fù)雜的城市交通系統(tǒng),為了確保安全,保證正常的交通秩序,十字路口的信號(hào)控制必需按照一定的規(guī)律變化,以便于車輛行人能順利地通過(guò)十字路口。單片機(jī)自問(wèn)世以來(lái),性能不斷提高和完善,其資源又能滿足很多場(chǎng)合的應(yīng)用,加之單片機(jī)具有集成度高、功能強(qiáng)、速度快、體積小、功耗低、使用方便、性能可靠、價(jià)格低廉,其易于產(chǎn)品化、抗干擾能力強(qiáng)、可在各種惡劣環(huán)境下可靠的工作等特點(diǎn)。特別是它強(qiáng)大的面向控制能力,使它在工業(yè)控制領(lǐng)域,智能儀表、外設(shè)控制、家用電器、機(jī)器人、軍事裝置等方面得到了廣泛的應(yīng)用。考慮到單片機(jī)具有物美價(jià)廉、功能強(qiáng)、使用方便靈活、可靠性高等特點(diǎn),擬采用MCS-51系列的單片機(jī)來(lái)實(shí)現(xiàn)十字路口交通信號(hào)燈的控制。正常情況下,十字路口的紅綠燈應(yīng)交替變換,考慮緊急情況下,如有救護(hù)車或警車到來(lái)時(shí),應(yīng)優(yōu)先讓其通過(guò)。另外,單片機(jī)課程設(shè)計(jì)是應(yīng)用電子專業(yè)學(xué)生的必修課程。通過(guò)交通燈模擬系統(tǒng)的設(shè)計(jì)可以進(jìn)一步認(rèn)識(shí)單片機(jī)在控制系統(tǒng)中的重要性。在完成理論學(xué)習(xí)和必要的實(shí)驗(yàn)后,掌握了單片機(jī)的基本原理和各種基本功能的應(yīng)用,但對(duì)單片機(jī)的硬件實(shí)際應(yīng)用設(shè)計(jì)和單片機(jī)完整的用戶程序設(shè)計(jì)還不清楚,實(shí)際動(dòng)手能力不夠,因此對(duì)該課程進(jìn)行一次課程設(shè)計(jì)是有必要的。

交通燈模擬系統(tǒng)的課程設(shè)計(jì)既讓學(xué)生鞏固了課本學(xué)到的理論,還讓學(xué)生學(xué)習(xí)了單片機(jī)硬件電路設(shè)計(jì)和用戶程序設(shè)計(jì)的整個(gè)過(guò)程,同時(shí)學(xué)習(xí)了查閱資料、參考資料的方法。單片機(jī)的課程設(shè)計(jì)主要是通過(guò)學(xué)生獨(dú)立設(shè)計(jì)方案并自己動(dòng)手用計(jì)算機(jī)電路設(shè)計(jì)軟件,編寫和調(diào)試用戶程序,來(lái)加深對(duì)單片機(jī)的認(rèn)識(shí),充分發(fā)揮學(xué)生的創(chuàng)新能力。交通燈設(shè)計(jì)的思想該設(shè)計(jì)在熟練掌握單片機(jī)及其仿真系統(tǒng)的使用方法基礎(chǔ)上,綜合應(yīng)用單片機(jī)原理、單片機(jī)應(yīng)用技術(shù)等課程方面的知識(shí),設(shè)計(jì)一個(gè)采用AT89C52單片機(jī)控制的交通燈控制電路。根據(jù)設(shè)計(jì)功能及要求,我們可得系統(tǒng)的原理框圖如圖所示。開(kāi)關(guān)電源LED數(shù)碼管顯示模塊―北-開(kāi)關(guān)電源LED數(shù)碼管顯示模塊LED數(shù)碼管

顯示模塊紅、綠、黃、藍(lán)LED狀態(tài)指示燈LED數(shù)LED數(shù)碼管顯示模塊LED數(shù)碼管顯示模塊圖1-1系統(tǒng)原理框圖根據(jù)系統(tǒng)的原理框圖,分別分析各部分電路的元器件的功能以及選擇合適的元件。具體設(shè)計(jì)思路如下:收集并整理資料,硬件設(shè)計(jì),軟件設(shè)計(jì),Proteus仿真,設(shè)計(jì)體會(huì)與總結(jié)。交通燈設(shè)計(jì)滿足的基本功能1、南北方向(主干道)車道和東西方向(次干道)車道兩條交叉道路上的車輛交替運(yùn)行,主干道每次通行時(shí)間都設(shè)為20秒、支干道每次通行間為20秒,時(shí)間可設(shè)置修改。2、在綠燈轉(zhuǎn)為紅燈時(shí),要求黃燈先亮3秒鐘,才能變換運(yùn)行車道;3、黃燈亮?xí)r,要求每秒閃亮一次4、東西方向、南北方向車道除了有紅、黃、綠燈指示外,每一種燈亮的時(shí)間都用顯示器進(jìn)行顯示(采用計(jì)時(shí)的方法)。5、一道有車而另一道無(wú)車,交通燈控制系統(tǒng)能立即讓有車道放行。第二章總體方案總體方案設(shè)計(jì)思想根據(jù)傳統(tǒng)十字路口交通燈的設(shè)計(jì),可將本系統(tǒng)分為四個(gè)模塊,第一個(gè)模塊是控制模塊,主要負(fù)責(zé)整個(gè)系統(tǒng)工作的控制和運(yùn)算,從而使各模塊正常工作;第二個(gè)模塊為顯示模塊,主要是對(duì)車輛和行人應(yīng)該遵守交通規(guī)則的指導(dǎo)性的直觀顯示,它主要包括倒計(jì)時(shí)顯示和紅、綠、黃燈兩大部分;第三個(gè)模塊是輸入模塊,它的主要作用是輔助控制模塊,相當(dāng)于輸入裝置,利用它可以對(duì)交通燈各路口通行時(shí)間的設(shè)置以及出現(xiàn)緊急情況時(shí),進(jìn)行不同工作方式的切換設(shè)置;第四個(gè)模塊是電源模塊,它是整個(gè)系統(tǒng)的“心臟”,負(fù)責(zé)給各模塊提供合適的電壓,讓各模2.2系統(tǒng)方案選擇與比較2.2.1控制模塊方案選擇方案一:由計(jì)數(shù)器74LS161級(jí)聯(lián)組成,配合譯碼器和秒脈沖信號(hào)發(fā)生器等器件組成交通燈系統(tǒng),整個(gè)系統(tǒng)簡(jiǎn)單,控制簡(jiǎn)單,調(diào)試容易等優(yōu)點(diǎn)。方案二:采用ATC公司的單片機(jī)ATC89C52作為控制器。單片機(jī)運(yùn)算能力強(qiáng),軟件編程靈活,自由度大。它是MCS-51系列單片機(jī)的派生產(chǎn)品,在指令系統(tǒng)、硬件結(jié)構(gòu)和片內(nèi)資源上與標(biāo)準(zhǔn)8052單片機(jī)完全兼容,使用時(shí)容易掌握;采用ATC89C52單片機(jī)穩(wěn)定可靠、應(yīng)用廣泛、通用性強(qiáng),在系統(tǒng)/在應(yīng)用可編程。方案比較:采用方案一來(lái)實(shí)現(xiàn)十字路口交通燈控制系統(tǒng)非常方便,電路結(jié)構(gòu)簡(jiǎn)單,控制單一,但整個(gè)系統(tǒng)性能不是很高,倒計(jì)時(shí)不是非常精確,如果要求系統(tǒng)能設(shè)置不同工作時(shí)間不容易,因而對(duì)于完成題目較困難,而方案二完全能實(shí)現(xiàn)設(shè)計(jì)要求,容易掌握,利用編程,易控制,I/O接口很多,易于擴(kuò)展外圍電路,價(jià)格便宜,故選擇方案二。2.2.2顯示模塊方案選擇該系統(tǒng)要求完成倒計(jì)時(shí)、狀態(tài)燈等功能。基于上述原因,考慮了三種方案。方案一:完全采用數(shù)碼管顯示。這種方案只顯示有限的符號(hào)和數(shù)碼字苻,無(wú)法勝任題目要求。方案二:完全采用點(diǎn)陣式LED顯示。這種方案實(shí)現(xiàn)復(fù)雜,且須完成大量的軟件工作;但功能強(qiáng)大,可方便的顯示各種英文字符,漢字,圖形等。方案三:用七段LED數(shù)碼管完成倒計(jì)時(shí)顯示,用LED燈作為狀態(tài)燈指示功能。方案比較:方案一和方案二都不符合設(shè)計(jì)要求,實(shí)現(xiàn)較復(fù)雜,而方案三采用數(shù)碼管與LED燈相結(jié)合的方法因?yàn)樵O(shè)計(jì)既要求倒計(jì)時(shí)數(shù)字輸出,又要求有狀態(tài)燈輸出等,為方便觀看并考慮到現(xiàn)實(shí)情況,用數(shù)碼管與LED燈分別顯示時(shí)間與提示信息。這種方案既滿足系統(tǒng)功能要求,又減少了系統(tǒng)實(shí)現(xiàn)的復(fù)雜度。權(quán)衡利弊,選擇方案三。2.2.3輸入模塊方案選擇方案一:采用8155擴(kuò)展I/O口及鍵盤,顯示等。該方案的優(yōu)點(diǎn)是:使用靈活可編程,并且有RAM,及計(jì)數(shù)器。若用該方案,可提供較多/O口,但操作起來(lái)稍顯復(fù)雜。方案二:直接在IO口線上接上按鍵開(kāi)關(guān)。因?yàn)樵O(shè)計(jì)時(shí)精簡(jiǎn)和優(yōu)化了電路,所以剩余的口資源還比較多,我們使用三個(gè)按鍵,分別是SET_KEY、UP_KEY、DOWN_KEY。由于該系統(tǒng)對(duì)于交通燈及數(shù)碼管的控制,只用單片機(jī)本身的I/O口就可實(shí)現(xiàn),且本身的計(jì)數(shù)器及RAM已經(jīng)夠用,故選擇方案二。2.2.4電源模塊方案選擇方案一:采用單片機(jī)控制模塊提供電源。該方案的優(yōu)點(diǎn)是系統(tǒng)簡(jiǎn)明扼要,節(jié)約成本;缺點(diǎn)是輸出功率不高,不能驅(qū)動(dòng)數(shù)碼管。方案二:采用獨(dú)立的穩(wěn)壓電源,采用開(kāi)關(guān)電源作為整個(gè)系統(tǒng)的供電,它具有多路電源輸出,此方案的優(yōu)點(diǎn)是穩(wěn)定可靠,且有各種成熟電路可供選用;缺點(diǎn)是各模塊都采用獨(dú)立電源。方案比較:方案一只采用單片機(jī)自身的I/O來(lái)驅(qū)動(dòng)數(shù)碼管顯示是不行的,而方案二雖然要給各模塊供電,但卻能給各模塊提供穩(wěn)定可靠的電壓從而達(dá)到顯示明亮的程度。故選擇第二種方案。

系統(tǒng)總體方案論證經(jīng)上述各模塊的方案選擇與論證,十字路口交通燈控制系統(tǒng)的控制芯片選用單片機(jī)AT89C52作為整個(gè)系統(tǒng)的核心控制器件,主要負(fù)責(zé)整個(gè)系統(tǒng)工作的控制和運(yùn)算,從而使各模塊正常工作;采用七段LED數(shù)碼管和LED燈作為顯示器件,用七段LED數(shù)碼管完成倒計(jì)時(shí)顯示,用LED燈作為狀態(tài)燈指示功能;用觸發(fā)按鍵構(gòu)成系統(tǒng)的輸入部分,它可以對(duì)系統(tǒng)進(jìn)行狀態(tài)設(shè)置,結(jié)合數(shù)碼管,可根據(jù)交通情況對(duì)整個(gè)系統(tǒng)進(jìn)行直觀的控制;以開(kāi)關(guān)電源作為系統(tǒng)電源部分,它有+12V、-12V、+5V、-5V電壓輸出,可方便對(duì)各個(gè)模塊供電。系統(tǒng)設(shè)計(jì)方框總圖如圖2-2:開(kāi)關(guān)電源LED數(shù)碼管顯示模塊北開(kāi)關(guān)電源LED數(shù)碼管顯示模塊LED數(shù)碼管顯示模塊紅、綠、黃、藍(lán)LED狀態(tài)指示燈LED數(shù)LED數(shù)碼管顯示模塊LED數(shù)碼管顯示模塊圖2-2系統(tǒng)設(shè)計(jì)方框總圖第三章硬件設(shè)計(jì)硬件設(shè)計(jì)是整個(gè)系統(tǒng)的基礎(chǔ),要考慮的方方面面很多,除了實(shí)現(xiàn)交通燈基本功能以外,主要還要考慮如下幾個(gè)因素:①系統(tǒng)穩(wěn)定度;②器件的通用性或易選購(gòu)性;③軟件編程的易實(shí)現(xiàn)性;④系統(tǒng)其它功能及性能指標(biāo);因此硬件設(shè)計(jì)至關(guān)重要。現(xiàn)從各功能模塊的實(shí)現(xiàn)逐個(gè)進(jìn)行分析探討。總體設(shè)計(jì)與描述本設(shè)計(jì)以單片機(jī)AT89S52為控制核心,采用模塊化設(shè)計(jì),共分以下幾個(gè)功能模塊:?jiǎn)纹瑱C(jī)控制系統(tǒng)、鍵盤及狀態(tài)顯示、行車方向指示和倒計(jì)時(shí)模塊等。單片機(jī)作為整個(gè)硬件系統(tǒng)的核心,它既是協(xié)調(diào)整機(jī)工作的控制器,又是數(shù)據(jù)處理器。它由單片機(jī)、時(shí)鐘電路、復(fù)位電路等組成。行車方向指示采用紅、綠、黃、藍(lán)(表示向左轉(zhuǎn))LED發(fā)光管,用四種顏色指示車輛放行、暫停、禁止,形象直觀。鍵盤及狀態(tài)顯示,鍵盤采用三只觸發(fā)按鍵組成,電路簡(jiǎn)潔可靠;顯示器采用七段LCD數(shù)碼管,可實(shí)時(shí)顯示系統(tǒng)運(yùn)行狀態(tài),可供交警在室內(nèi)實(shí)時(shí)監(jiān)視交通狀況。通過(guò)鍵盤可設(shè)置:緊急情況發(fā)生時(shí)的交通燈狀態(tài)控制、主干道通行時(shí)間等。系統(tǒng)采用雙數(shù)碼管倒計(jì)時(shí)計(jì)數(shù)功能,最大顯示數(shù)字不超過(guò)80。交通燈模擬仿真如圖3-1所示:

D4aD1ELED-GREENEP19-YELLOIAJ■D11*D1^hLED-cqpniled-'^hKij訂ed?D4aD1ELED-GREENEP19-YELLOIAJ■D11*D1^hLED-cqpniled-'^hKij訂ed?匚仃車ri?pD5piz■*D2占D3厶LED-I^VLEDD-SHEEND9LED-BLUEsTBTP-圖3-1交通燈模擬仿真圖交通燈通行模式及行車方向指示按交通燈控制規(guī)則,每個(gè)街口有轉(zhuǎn)彎、直行及行人三種指示燈。主要指示燈有紅、綠、黃三種顏色,但我在其中修改了一下,加進(jìn)一個(gè)藍(lán)燈。交道口模型如圖3-2所示:和功〒聲北和功〒聲北人行廉■ll■機(jī)如l迫人行廉■ll■機(jī)如l迫二人行逋——』氏g牛道書站車道機(jī)功牛道機(jī)訕44百II^AA■迫t甫圖機(jī)訕44百II^AA■迫t甫圖3-2交道口模型圖非機(jī)刮T迢人行道1I~PL功下議2組LED數(shù)碼管按照設(shè)置的通行時(shí)間(各路口默認(rèn)的通行時(shí)間均為20秒)進(jìn)行倒計(jì)時(shí),并各自進(jìn)行顯示,共有四種通行狀態(tài),分別為:圖3-3通行狀態(tài)一示意圖圖3-4通行狀態(tài)二示意圖圖3-5通行狀態(tài)三示意圖圖3-6通行狀態(tài)四示意圖直行默認(rèn)時(shí)間為20秒,轉(zhuǎn)彎默認(rèn)時(shí)間為20秒,系統(tǒng)設(shè)置了任意更改功能可以根據(jù)實(shí)際情況進(jìn)行倒計(jì)時(shí)調(diào)整,以提高車輛通過(guò)率,緩減交通壓力。在直行狀態(tài)變?yōu)檗D(zhuǎn)彎狀態(tài)時(shí)黃燈倒計(jì)時(shí)3秒后轉(zhuǎn)彎。本設(shè)計(jì)選用一只綠色、一只藍(lán)色LED發(fā)光管來(lái)指示轉(zhuǎn)彎、直行等交通指示信息。綠燈亮表示直行,藍(lán)燈亮表示允許轉(zhuǎn)彎行駛,紅色則表示禁止通行。所有指示信息一目了然。主干道單獨(dú)時(shí)間設(shè)置功能當(dāng)主干道方向的車輛過(guò)多發(fā)生堵塞,正常的信號(hào)燈時(shí)序?qū)?huì)使交通狀況更加惡化。本設(shè)計(jì)添加了主次干道單獨(dú)時(shí)間設(shè)置功能,交警可按需求設(shè)置綠燈的點(diǎn)亮?xí)r間,該措施可在一定程度緩減短暫的交通壓力。三個(gè)按鍵如圖3-7所示:3.4倒計(jì)時(shí)計(jì)數(shù)功能及其實(shí)現(xiàn)本系統(tǒng)使用數(shù)碼管完成倒計(jì)時(shí)顯示功能。以南北方向?yàn)槔?,?shù)碼管顯示的數(shù)值從綠燈的設(shè)置時(shí)間最大值往下減,每秒鐘減1,一直減到0。然后又從紅燈的設(shè)置時(shí)間最大值往下減,一直減到0。接下來(lái)又顯示綠燈時(shí)間,如此循環(huán)。系統(tǒng)共有2個(gè)兩位的LED數(shù)碼管,分別放置在模擬交通燈控制板上的南北、東西路口。因?yàn)閷?duì)應(yīng)的兩個(gè)方向應(yīng)該顯示同樣的內(nèi)容,所以可以把它們同樣對(duì)待。也就是說(shuō)各個(gè)方向的數(shù)碼管個(gè)位(把數(shù)碼管第二位定義為個(gè)位,第一位定義為十位)用一根信號(hào)線控制,十位用另一根信號(hào)線控制。3.5各功能模塊硬件設(shè)計(jì)及實(shí)現(xiàn)3.5.1單片機(jī)控制模塊設(shè)計(jì)單片微機(jī)簡(jiǎn)稱為單片機(jī)。它在一塊芯片上集中成了中央處理單元CPU、隨機(jī)存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、定時(shí)/計(jì)數(shù)和多功能輸入/輸出I/O口,如并行口I/O、串行口I/O和轉(zhuǎn)換A/D等。MCS-51系列單片機(jī)在我國(guó)得到了廣泛的應(yīng)用,是單片機(jī)的主流系列,軟硬件應(yīng)用設(shè)計(jì)資料豐富齊全。為了提高指令的執(zhí)行速度和效率,采用了面向控制的結(jié)構(gòu)和指令系統(tǒng)的獨(dú)立CPU。因此本設(shè)計(jì)采用AT89C52單片機(jī)作為系統(tǒng)的控制器件,這是因?yàn)锳T89C52是目前應(yīng)用比較廣泛的MCS-51系列兼容單片機(jī)作為主控制器。AT89C52單片機(jī)的主要性能特點(diǎn):1、與MCS-51系列單片機(jī)產(chǎn)品兼容;2、8K字節(jié)在系統(tǒng)可編程Flash存儲(chǔ)器,1000次擦寫周期;3、全靜態(tài)操作:0?33Hz;4、三級(jí)加密程序存儲(chǔ)器;5、32個(gè)可編程I/O口線,3個(gè)16位定時(shí)器/定時(shí)器,8個(gè)中斷源;6、全雙工UART串行通道,低功耗空閑和掉電模式;7、掉電后中端可喚醒,看門狗定時(shí)器;8、雙數(shù)據(jù)指針和掉電標(biāo)識(shí)符;電源、時(shí)鐘信號(hào)以及復(fù)位電路時(shí)單片機(jī)工作的基本條件,缺一不可。AT89C52單片機(jī)系統(tǒng)的基本工作電路包括電源電路、時(shí)鐘電路、復(fù)位電路。其組成方框圖如圖3-8所示:圖3-8單片機(jī)控制系統(tǒng)基本硬件組成方框圖1)、電源電路電源電路模塊為系統(tǒng)板上的其他模塊提供+5V電源。供電電源可由開(kāi)關(guān)電源提供,即能滿足。(2)、時(shí)鐘電路模塊的設(shè)計(jì)單片機(jī)的時(shí)鐘信號(hào)用來(lái)為單片機(jī)芯片內(nèi)部的各種操作提供時(shí)間基準(zhǔn)。時(shí)鐘電路為單片機(jī)產(chǎn)生時(shí)鐘脈沖序列,作為單片機(jī)工作的時(shí)間基準(zhǔn),典型的晶體振蕩頻率為12MHz。MCS-51系列單片的時(shí)鐘信號(hào)可以由兩種方式產(chǎn)生:一種是內(nèi)部時(shí)鐘方式,利用芯片內(nèi)部的振蕩電路;另一種方式為外部時(shí)鐘方式。(3)、復(fù)位電路模塊設(shè)計(jì)復(fù)位電路使單片機(jī)或系統(tǒng)中的其他部件處于某種確定的狀態(tài)。當(dāng)在MCS-51系列單片的RST引腳處引入高電平并保持2個(gè)機(jī)器周期,單片機(jī)內(nèi)部就執(zhí)行復(fù)位操作。復(fù)位操作有兩種基本形式:一種是上電復(fù)位,另一位是按鍵復(fù)位。本設(shè)計(jì)采用按鍵復(fù)位方式。3.5.2倒計(jì)時(shí)顯示及狀態(tài)指示模塊的設(shè)計(jì)倒計(jì)時(shí)顯示采用七段數(shù)碼管顯示,如下表格所示是七段顯示組合與數(shù)字對(duì)照表3-1:段碼位碼'abcdefG0HHHHHHL1LHHLLLL2HHLHHLH3HHHHLLH

4L4LHH5HLH6HLH7HHH8HHH9HHHLLHHHLHHHHHHLLLLHHHHHLHH(表中“L”表示低電位,“H”表示高電位)狀態(tài)指示采用LED數(shù)碼管,半導(dǎo)體數(shù)碼管又稱LED數(shù)碼管,是一種廣泛使用的顯示器件。LED有兩種:共陽(yáng)極型和共陰極型。LED優(yōu)點(diǎn):亮度高、字形清晰,工作電壓低(1.5?3V)、體積小、可靠性高、壽命長(zhǎng),響應(yīng)速度極快。如圖3-10所示是硬件中的LED燈:mD16匕耳即乍LUOM壽命長(zhǎng),響應(yīng)速度極快。如圖3-10所示是硬件中的LED燈:mD16匕耳即乍LUOM1LEP-BLUE百tDIMD9LE[>-BLUE圖3-9硬件中的LED燈3.5.2鍵盤及狀態(tài)指示顯示模塊的設(shè)計(jì)鍵盤及狀態(tài)顯示如圖3-11所示:酣氷眄mDO師酣氷眄mDO師圖3-10鍵盤及狀態(tài)顯示按下開(kāi)始設(shè)置SET_KEY一下首先開(kāi)始南北直行綠燈設(shè)置,可以增也可以減時(shí)間;按下SET_KEY兩下設(shè)置南北的左轉(zhuǎn)彎藍(lán)燈時(shí)間,可以增也可以減時(shí)間;按下SET_KEY三下東西直行綠燈設(shè)置,可以增也可以減時(shí)間;按下SET_KEY四下東西左轉(zhuǎn)彎藍(lán)燈設(shè)置,可以增也可以減時(shí)間;按下SET_KEY五下返回正常運(yùn)行狀態(tài)。第四章軟件設(shè)計(jì)硬件平臺(tái)結(jié)構(gòu)一旦確定,大的功能框架即形成。軟件在硬件平臺(tái)上構(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ò)誤排除故障的重要手段。由于編程多涉及到數(shù)值運(yùn)算,比較復(fù)雜,還有LCD的菜單界面設(shè)計(jì)都是需要多重選擇判斷,用我們平時(shí)常用的匯編語(yǔ)言編程是很難實(shí)現(xiàn)的,這里我們選用了移值性好、結(jié)構(gòu)清晰、能進(jìn)行復(fù)雜運(yùn)算的C語(yǔ)言來(lái)實(shí)現(xiàn)編程。軟件總體流程圖軟件總體設(shè)計(jì)及流程圖見(jiàn)圖4-1,主要完成各部分的軟件控制和協(xié)調(diào)。本系統(tǒng)主程序模塊主要完成的工作是對(duì)系統(tǒng)的初始化。圖4-1總流程圖

定時(shí)器初始化定時(shí)/計(jì)數(shù)器方式寄存器TMOD相關(guān)知識(shí)如表4-1T1TOGATEC/TM1MOGATEC/TM1MOM1和M0為方式選擇位。定義如下表4-2:M1MO工作方式功能說(shuō)明00方式013位計(jì)數(shù)器01方式116位計(jì)數(shù)器10方式2自動(dòng)再裝入8位計(jì)數(shù)器11方式3定時(shí)器0:分成兩個(gè)8位計(jì)數(shù)器定時(shí)器1:停止計(jì)數(shù)TMOD=0x21;intChar.uiTime0=0xffff-10000;程序中用到兩個(gè)定時(shí)器,分別是TH0=intChar.ucTime0Buf[0];定時(shí)器1跟定時(shí)器0,采用了方TL0=intChar.ucTime0Buf[1];式2跟方式1,TMOD=0X21,調(diào)TR0=1;用了定時(shí)器T0和T1。定時(shí)器1TH1=0xfd;方式2定時(shí)器0方式1TL1=0xfd;TR1=1;SCON=0x50;ET0=1;ES=1;EA=1;動(dòng)態(tài)顯示主要是燈跟數(shù)碼管顯示,數(shù)碼管顯示流程圖如圖4-2所示:首先是位碼初始

化然后送位碼,選位碼,位碼右移,延時(shí),關(guān)位碼。設(shè)置狀態(tài)子程序在設(shè)置狀態(tài),按下開(kāi)始設(shè)置SET_KEY一下首先開(kāi)始南北直行綠燈設(shè)置,可以增也可以減時(shí)間;按下SET_KEY兩下設(shè)置南北的左轉(zhuǎn)彎藍(lán)燈時(shí)間,可以增也可以減時(shí)間;按下SET_KEY三下東西直行綠燈設(shè)置,可以增也可以減時(shí)間;按下SET_KEY四下東西左轉(zhuǎn)彎藍(lán)燈設(shè)置,可以增也可以減時(shí)間;按下SET_KEY五下返回正常運(yùn)行狀態(tài)。藍(lán)燈和綠燈的時(shí)間最大可以設(shè)為79,超出79的時(shí)候會(huì)出現(xiàn)亂碼現(xiàn)象。如圖4-3所示是設(shè)置狀態(tài)子程序流程圖:圖4-3設(shè)置狀態(tài)子程序流程圖第五章系統(tǒng)調(diào)試因本設(shè)計(jì)本身要求有穩(wěn)定性高、免維護(hù)、抗干擾能力強(qiáng)等功能,系統(tǒng)調(diào)試除了驗(yàn)證數(shù)據(jù)處理的精度,確保判斷的準(zhǔn)確性外,同時(shí)必須確認(rèn)各項(xiàng)的功能的正常運(yùn)行。系統(tǒng)操作說(shuō)明系統(tǒng)分為兩個(gè)狀態(tài):設(shè)置狀態(tài)和顯示狀態(tài)。利用鍵盤可以進(jìn)行兩個(gè)狀態(tài)間的切換;開(kāi)機(jī)時(shí),系統(tǒng)為顯示狀態(tài),此時(shí)數(shù)碼管從默認(rèn)的倒計(jì)時(shí)時(shí)間開(kāi)始倒計(jì)時(shí);LED燈開(kāi)始有規(guī)律工作,作行車方向指示;設(shè)置狀態(tài)時(shí)利用鍵盤可以設(shè)置各路口通行倒計(jì)時(shí)時(shí)間,主次干道的通行時(shí)間可以不相等,這里我們?cè)鎏砹朔珠_(kāi)分別設(shè)置功能;顯示狀態(tài)時(shí),交通燈四個(gè)led燈進(jìn)行倒計(jì)時(shí);LED發(fā)光管各組的交替指示;如果LED箭頭指示板上的綠燈亮,兩邊紅燈亮,則顯示的是通行時(shí)間;顯示過(guò)程中按鍵可以重新進(jìn)入設(shè)置狀態(tài)。調(diào)試根據(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ào)試,倒計(jì)時(shí)功能調(diào)試,主次干道分開(kāi)設(shè)置功能調(diào)試等。單片機(jī)軟件先在最小系統(tǒng)板上調(diào)試,確保工作正常之后,再與硬件系統(tǒng)聯(lián)調(diào)。最后將各模塊組合后在交道口模型上進(jìn)行整體測(cè)試,使系統(tǒng)的所有功能得以實(shí)現(xiàn)。硬件調(diào)試總硬件圖如圖5-1所示:如硬件系統(tǒng)圖所示接線,圖中,在十字路口的紅、黃、綠、藍(lán)交通燈,主要是對(duì)通行方式功能調(diào)試、倒計(jì)時(shí)功能調(diào)試。包括對(duì)四種通行方式控制調(diào)試,行車方向指示燈和驅(qū)動(dòng)電路調(diào)試。tPMFT1ruffln“in*rrsrjafX.VJUPZ3ur.1iPZIla-H■注;ztPMFT1ruffln“in*rrsrjafX.VJUPZ3ur.1iPZIla-H■注;z巴JId:?~?EnI:K2l3E9l應(yīng)M利sslsss.1-55~-TEO嚴(yán)p5叫圖5-1總硬件圖具體仿真效果:1、如圖5-2所示正常情況下南北方向亮綠燈,東西方向亮紅燈。南北放行,東西禁行,綠燈30S,紅燈是50+3+20=63S圖5-3黃燈延時(shí)圖5-3黃燈延時(shí)3S轉(zhuǎn)下一個(gè)狀態(tài)資料.圖5-3黃燈延時(shí)圖5-3黃燈延時(shí)3S轉(zhuǎn)下一個(gè)狀態(tài)資料.■■■■wnEraEEEE.Himrivsrra^-cPH*11ra旳*arrsw-aF-2ta?P.i-irarwl=eCDEFGDPIE134;E■:Tfcir>lIDl?Rki/TkD

raafflin

puim■■■■wnEraEEEE.Himrivsrra^-cPH*11ra旳*arrsw-aF-2ta?P.i-irarwl=eCDEFGDPIE134;E■:Tfcir>lIDl?Rki/TkD

raafflin

puimF3Igirrn

rDflfTI

raaPff

Fs.nnrA圖5-2南北直行通道2、如圖5-3所示是南北直行綠燈轉(zhuǎn)為黃燈到下一個(gè)狀態(tài),黃燈3S延時(shí):1EE5-JF~31■::<Thli:<T2JIET>WTALE口'P~H2"F-:□□Di3<°piFFii"P1UT2pi.imci:PI71EE5-JF~31■::<Thli:<T2JIET>WTALE口'P~H2"F-:□□Di3<°piFFii"P1UT2pi.imci:PI7沖P1.I-?I,F-ijSPi'SaPP3MMP111Z1]"15MEEnraEparaF3LIE?laaffmraan-TpiownhliiTT£t3、如圖5-4是南北左轉(zhuǎn)彎顯示20S:資資料.資資料.rUILADIFCL4UD-I"DWJ?AQAidKFCL7LAJV?-f.BTK-Knz-h才丄」冋■3imTOT■zig■LJJJ|:f3i6n'3~Ti''ggclls!rUILADIFCL4UD-I"DWJ?AQAidKFCL7LAJV?-f.BTK-Knz-h才丄」冋■3imTOT■zig■LJJJ|:f3i6n'3~Ti''ggclls!口怙-K-f3IWW&

PJl/TXIl

Fsz^nn

rajffTTTP34OUra^Tirairtir詠耐圖5-4南北左轉(zhuǎn)彎通道4、如圖5-5是東西直行綠燈亮50S:l書匚口EF&trIE>yr*.Li:E.LTEMREEraEBST丁WeTajue-QP.P'jllF1H72?IE"P13rrKrarararan阿:pj?E?■rFP"“口.IED

l書匚口EF&trIE>yr*.Li:E.LTEMREEraEBST丁WeTajue-QP.P'jllF1H72?IE"P13rrKrarararan阿:pj?E?■rFP"“口.IED

Fl^TITn

rxsfmREP3C/T1

ritfQH

BITT1LRP3f.lK圖5-5東西直行通道5、如圖5-6所示是東西直行綠燈轉(zhuǎn)為黃燈到下一個(gè)狀態(tài),黃燈3S延時(shí):A嚴(yán)卜JJ-I7Z.1LAIFtD11.ipinmFI.VT2MM2PI3FldA嚴(yán)卜JJ-I7Z.1LAIFtD11.ipinmFI.VT2MM2PI3FldrijFlV,C(MDDW1K?:「巳□ihrtpwLEUBJEEilIjtSh-i1HJ1■■1TEaCFa■wX■圖5-6黃燈延時(shí)3S轉(zhuǎn)下一個(gè)狀態(tài)6、如圖5-7所示是東西左轉(zhuǎn)彎藍(lán)燈顯示,時(shí)間為12S:圖5-7東西左轉(zhuǎn)彎通道軟件調(diào)試本系統(tǒng)的軟件系統(tǒng)很大,全部用C51來(lái)編寫。除了語(yǔ)法差錯(cuò)外,當(dāng)確認(rèn)程序沒(méi)問(wèn)題時(shí),通過(guò)直接下載到單片機(jī)來(lái)調(diào)試。采取的是自下到上的調(diào)試方法,即單獨(dú)調(diào)試好每一個(gè)模塊,然后再連接成一個(gè)完整的系統(tǒng),最后完成一個(gè)完整的系統(tǒng)調(diào)試。軟硬件聯(lián)調(diào)系統(tǒng)做好后,進(jìn)行系統(tǒng)的完整調(diào)試。主要任務(wù)是檢驗(yàn)實(shí)現(xiàn)的功能及其效果并校正數(shù)值。根據(jù)實(shí)測(cè)數(shù)據(jù),逐步校正數(shù)據(jù),使測(cè)量結(jié)果更準(zhǔn)確。單片機(jī)軟件先在最小系統(tǒng)板上調(diào)試,確保工作正常之后,再與硬件系統(tǒng)聯(lián)調(diào)。調(diào)試心得通過(guò)交通燈的編程到硬件的實(shí)現(xiàn),我們只有充分掌握了理論知識(shí)的基礎(chǔ)之上才能做好。首先,判斷數(shù)碼管是共陰管還是共陽(yáng)管,其次根據(jù)操作要求和自己的程序設(shè)計(jì)進(jìn)行調(diào)試看是否相同。在課程設(shè)計(jì)中,我們學(xué)習(xí)到了很多的東西:首先,怎么樣去查閱資料,收集與課設(shè)要用的有關(guān)的知識(shí)。其次,要完成一件工作,還得專心致志才行,細(xì)心耐心。第三,遇到困難要冷靜,要多想解決辦法,多嘗試。通過(guò)這次課程設(shè)計(jì),我們也進(jìn)一步熟悉數(shù)字電路的設(shè)計(jì)與特點(diǎn)。而且讓我們了解了電路設(shè)計(jì)的基本思路,增強(qiáng)了實(shí)踐動(dòng)手能力,理論結(jié)合實(shí)際的能力加強(qiáng)。除此以外,我們還深深地認(rèn)識(shí)到嚴(yán)謹(jǐn)、認(rèn)真的科學(xué)態(tài)度在科學(xué)實(shí)驗(yàn)中發(fā)揮的重要作用。交通燈是本次課設(shè)中原理比較簡(jiǎn)單的一個(gè),但是它的組成部分多,電路連接有些復(fù)雜,出現(xiàn)問(wèn)題后分析起來(lái)比較困難,所以我們養(yǎng)成了完成一個(gè)部分就調(diào)試檢驗(yàn)一個(gè)部分,確保正確才進(jìn)行下一步工作,出現(xiàn)了問(wèn)題只要在未檢驗(yàn)的部分查尋就可以很快找出,效果很不錯(cuò)。此次課程設(shè)計(jì)中我投入了很大的熱情和精力,從設(shè)計(jì)電路圖,選擇元器件,使用protel99,其過(guò)程中出現(xiàn)了不少的問(wèn)題,我沒(méi)有氣餒,沒(méi)有退縮,積極向同學(xué)請(qǐng)教,并且一遍又一遍的重復(fù)實(shí)踐,直到期望的結(jié)果實(shí)現(xiàn)。事實(shí)也證明我們的努力沒(méi)有白費(fèi),認(rèn)真嚴(yán)謹(jǐn)?shù)膶?shí)習(xí)態(tài)度給我?guī)?lái)了成功的喜悅!這短短一月的實(shí)踐,我感覺(jué)到自己在課本上學(xué)到的理論知識(shí)和實(shí)踐仍有一定的差距。有的知識(shí),自己感覺(jué)已經(jīng)掌握得差不多了,但是實(shí)際操作起來(lái)就有問(wèn)題出現(xiàn)了。我還遇到了不少,花費(fèi)了很多的時(shí)間。這讓我們重新反思我們的學(xué)習(xí),覺(jué)得這與自己當(dāng)時(shí)不注意實(shí)驗(yàn)課是分不開(kāi)的。第六章設(shè)計(jì)總結(jié)本設(shè)計(jì)以單片機(jī)AT89C52為核心,以LED發(fā)光管作為直行和左右拐彎指示,以LED數(shù)碼管作為倒計(jì)時(shí)指示,以雙色LED點(diǎn)陣作為行人通行的指示,完成了題目要求的所有功能。在此基礎(chǔ)上,增設(shè)了可根據(jù)交通擁擠情況分別設(shè)置主干道和次干道的通行時(shí)間,并對(duì)系統(tǒng)機(jī)械結(jié)構(gòu)進(jìn)行了優(yōu)化設(shè)計(jì)。該設(shè)計(jì)很好地完成了題目的各項(xiàng)要求,但這與實(shí)際情況還有很大一部分差距,具體有以下幾個(gè)方面:1、出現(xiàn)緊急情況時(shí),交通燈的控制;2、人行通道的設(shè)計(jì)沒(méi)有加進(jìn)去;3、軟件中設(shè)計(jì)左轉(zhuǎn)彎是交通燈顏色的改變。雖然這些功能未能設(shè)計(jì)進(jìn)去,但這一樣可以簡(jiǎn)單實(shí)現(xiàn)交通燈的控制,該設(shè)計(jì)在確保功能實(shí)現(xiàn)的基礎(chǔ)上,充分考慮了控制系統(tǒng)操作方便、人性化、抗干擾能力強(qiáng)、可靠性高、穩(wěn)定性好等要求。本設(shè)計(jì)雖然結(jié)束了,但由于時(shí)間、設(shè)備、條件和水平等各方面因素有限,系統(tǒng)還存在一些不足,一個(gè)新系統(tǒng)最終走向成熟和完善還需要我們?cè)谝院蟮膶W(xué)習(xí)和工作中作不懈的努力!另外,在重復(fù)修改與設(shè)計(jì)的過(guò)程中,我又重新把《單片機(jī)原理與應(yīng)用技術(shù)》這本書仔細(xì)的看了一下,弄懂了一些以前一知半解的東西,進(jìn)一次加強(qiáng)和鞏固了我的理論知識(shí)。在此次課程設(shè)計(jì)過(guò)程中,我把單片機(jī)的理論知識(shí)用于實(shí)踐中,使理論與實(shí)踐相結(jié)合,使我的理論知識(shí)的到了鞏固,在查資料翻閱資料的過(guò)程中也豐富了我的知識(shí)跟閱歷。參考資料[1]胡漢才單片機(jī)原理及其接口技術(shù)[M]清華大學(xué)出版,1996[2]蔡美琴M(fèi)CS-51系列單片機(jī)系統(tǒng)及其應(yīng)用高等教育出版社2004.2⑶付家才單片機(jī)控制工程實(shí)踐技術(shù)[M]化學(xué)工業(yè)出版社,2004.5潘新民微型計(jì)算機(jī)控制技術(shù)[M]人民郵電出版社,1999.9余錫存單片機(jī)原理及接口技術(shù)[M]西安電子科技大學(xué)出版社,2000.7雷麗文等?微機(jī)原理與接口技術(shù)[M]電子工業(yè)出版社,1997.2蔣萬(wàn)君在論循環(huán)時(shí)序電路的簡(jiǎn)便設(shè)計(jì)J]機(jī)電一體化,2005第5期周立功增強(qiáng)型80C51單片機(jī)速成與實(shí)戰(zhàn)北京航空航天大學(xué)出版社2004.5何立民單片機(jī)應(yīng)用技術(shù)選編⑩北京航空航天大學(xué)出版社2004.3何立民單片機(jī)應(yīng)用技術(shù)選編⑨北京航空航天大學(xué)出版社2004.3何立民MCS-5系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)北京航空航天大學(xué)出版社,1995.[12]李華MCS-51系列單片機(jī)實(shí)用接口技術(shù)[M]北京航空航天大學(xué)出版社,1993[13張?jiān)讫?交通信號(hào)控制器的設(shè)計(jì)J].兵工自動(dòng)化,2003,(04).白炳良.單片機(jī)自動(dòng)控制交通信號(hào)燈J].漳州師范學(xué)院,1997,(02).譚浩強(qiáng).C程序設(shè)計(jì)[M].清華大學(xué)出版社,1999年12月第2版附錄I原理圖A51O'c訕-jtaFQhtaGiiT0AT■?.1'■-■II原程序#include<reg51.h>#defineucharunsignedchar#defineuintunsignedint//I/O口定義定義南北方向?yàn)橹魍ǖ罇|西方向?yàn)榇瓮ǖ纒bitCI_GREEN=P1A0;//次通道--綠燈sbitZHU_GREEN=P1A1;//主通道--綠燈sbitCI_ZUO=P1A2;//次通道--左轉(zhuǎn)sbitZHU_ZUO=P1A3;//主通道--左轉(zhuǎn)sbitCI_RED=P1A4;//次通道--紅燈sbitZHU_RED=P1A5;//主通道--紅燈sbitCI_YELLOW二PM6;//次通道--黃燈sbitZHU_YELLOW=P1A7;//主通道--黃燈sbitZHU_LED1二P3^4;sbitZHU_LED2=P3A5;sbitCI_LED1=P3A6;sbitCI_LED2=P3A7;//位變量定義bitbFlag10ms;bitbResponse;

bitbShan;bitbShan;//字節(jié)變量定義ucharucKey;ucharucNextKey;ucharucSetState,ucDispState;ucharucZhuTime,ucZhuZhuan,ucCiTime,ucCiZhuan;//主通道直行時(shí)間主通道轉(zhuǎn)彎時(shí)間次通道直行時(shí)間次通道轉(zhuǎn)彎時(shí)間ucharucZhuTimeDisp,ucCiTimeDisp;ucharucMiaoCount;ucharucShanCount;//常量定義#defineSET_KEY0xee#defineUP_KEY0xde#defineDOWN_KEY0xdducharcodeDISP_TAB[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};////////////////////////////unionucharucTime0Buf[2];uintuiTime0;}intChar;//函數(shù)申明voidintSys();uchartestKey(void);ucharreadKey();dealKey(uchartempkey);voidStateCov(void);voiddisplay();voiddispSM(ucharx,uchary);delay();/////////////////////////////////////////////////////////////////////////voidmain(void){uchartemp;intSys();while(1){if(bFlag10ms==1){bFlag10ms=0;temp=testKey();if(temp!=0xff){ucKey=readKey();if(ucKey!=0xff){dealKey(ucKey);}}else{bResponse=0;}if(ucMiaoCount==0){ucMiaoCount=99;StateCov();}else{{{{資資料.資資料.ucMiaoCount--;}display();}}}voidtimeSer(void)interrupt1using1{TH0=intChar.ucTime0Buf[0];TL0=intChar.ucTime0Buf[1];bFlag10ms=1;}voidUARTSer(void)interrupt4using1{}資資料.資資料.*函數(shù)名:intSys*函數(shù)功能:系統(tǒng)初始化,包括內(nèi)存單元、定時(shí)器、串行口、中斷voidintSys(){ucNextKey=0xff;ucSetState=ucDispState=0;ucZhuTime=20;ucZhuZhuan=18;ucCiTime=15;ucCiZhuan=12;ucMiaoCount=99;ucShanCount=19;ucDispState=0;ucCiTimeDisp=ucZhuTime+ucZhuZhuan+6;ucZhuTimeDisp=ucZhuTime;P1=0xff;ZHU_GREEN=0;CI_RED=0;ZHU_LED1=0;ZHU_LED2=0;CI_LED1=0;CI_LED2=0;bResponse=0;TMOD=0x21;intChar.uiTime0=0xffff-10000;TH0=intChar.ucTime0Buf[0];TL0=intChar.ucTime0Buf[1];TR0=1;TH1=0xfd;TL1=0xfd;TR1=1;SCON=0x50;ET0=1;ES=1;EA=1;}*函數(shù)名:testKey*函數(shù)功能:鍵盤測(cè)試函數(shù),測(cè)試鍵盤是否有鍵按下**********************************************************uchartestKey(void){資{資料.{資{資料.{資{資料.uchari;P0=0xf0;i=P0;i=i|0x0f;returni;}*函數(shù)名:readKey*函數(shù)功能:鍵盤鍵值讀取函數(shù)**********************************************************ucharreadKey(){uchari,j;P0=0xf0;i=P0;P0=0x0f;j=P0;i=i+j;if(ucNextKey==i)if(bResponse==0){bResponse=1;returni;}elsereturn0xff;}else{ucNextKey=i;bResponse=0;return0xff;}}*函數(shù)名:dealKey*函數(shù)功能:鍵盤鍵值處理函數(shù)**********************************************************dealKey(uchartempKey)資資料.資資料.caseUP_KEY:{資caseUP_KEY:{資料.switch(tempKey){caseSET_KEY:{if(ucSetState==4){ucSetState=0;ucDispState=0;ucCiTimeDisp=ucZhuTime+ucZhuZhuan+6;ucZhuTimeDisp=ucZhuTime;P1=0xff;ZHU_GREEN=0;CI_RED=0;}else{ucSetState++;}break;}switch(ucSetState){case0:{break;}case1:{if(ucZhuTime<80)ucZhuTime++;break;}case2:{if(ucZhuZhuan<80)ucZhuZhuan++;break;}case3:{if(ucCiTime<80)ucCiTime++;break;}casebreak;}case4:break;}casebreak;}case4:case1:{case1:{資料.case1:{case1:{資料.{if(ucCiZhuan<80)ucCiZhuan++;break;}}break;}caseDOWN_KEY:{switch(ucSetState){case0:{break;}if(ucZhuTime>5)break;}break;}break;}break;}資資料.資資料.ucZhuTime--;case2:{if(ucZhuZhuan>5)ucZhuZhuan--;break;}case3:{if(ucCiTime>5)ucCiTime--;break;}case4:{if(ucCiZhuan>5)ucCiZhuan--;break;}default:break;}break;}break;}break;}break;}break;}break;}break;}case0://主通道綠燈狀態(tài)結(jié)束判斷{case0://主通道綠燈狀態(tài)結(jié)束判斷{資料.case0://主通道綠燈狀態(tài)結(jié)束判斷{case0://主通道綠燈狀態(tài)結(jié)束判斷{資料.default:break;}}*函數(shù)名:stateCov*函數(shù)功能:顯示狀態(tài)轉(zhuǎn)換函數(shù)*入口參數(shù):鍵盤鍵值**********************************************************voidStateCov(void){if(ucSetState==0){switch(ucDispState){{ucZhuTimeDisp--;{ucZhuTimeDisp--;資料.{ucZhuTimeDisp--;{ucZhuTimeDisp--;資料.if(ucZhuTimeDisp==1){ucDispState++;ucZhuTimeDisp=3;}else{ucZhuTimeDisp--;ucCiTimeDisp--;}break;}case1://主通道黃燈狀態(tài)結(jié)束判斷{if(ucZhuTimeDisp==1){ucDispState++;ucZhuTimeDisp=ucZhuZhuan;}else}break;}}break;}}break;}}break;}if(ucZhuTimeDisp==1){資if(ucZhuTimeDisp==1){資料.if(ucZhuTimeDisp==1){資if(ucZhuTimeDisp==1){資料.ucCiTimeDisp--;case2://主通道左轉(zhuǎn)彎綠燈狀態(tài)結(jié)束判斷{if(ucZhuTimeDisp==1){ucDispState++;ucZhuTimeDisp=3;}else{ucZhuTimeDisp--;ucCiTimeDisp--;}break;}case3://主通道左轉(zhuǎn)彎綠燈閃爍狀態(tài)結(jié)束判斷{}}}}ucCiTimeDisp--;ucCiTimeDisp--;資料.ucCiTimeDisp--;ucCiTimeDisp--;資料.ucDispState++;ucZhuTimeDisp=ucCiTime+ucCiZhuan+6;ucCiTimeDisp=ucCiTime;else{ucZhuTimeDisp--;ucCiTimeDisp--;}break;}case4://次通道綠燈狀態(tài)結(jié)束判斷{if(ucCiTimeDisp==1){ucDispState++;ucCiTimeDisp=3;}else{ucZhuTimeDisp--;break;}break;}break;}break;}{資{資料.{資{資料.case5://次通道黃燈狀態(tài)結(jié)束判斷{if(ucCiTimeDisp==1){ucDispState++;ucCiTimeDisp=ucCiZhuan;}else{ucZhuTimeDisp--;ucCiTimeDisp--;}break;}case6://次通道左傳綠燈狀態(tài)結(jié)束判斷{if(ucCiTimeDisp==1)ucDispState++;/r

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論