智能交通信號(hào)燈畢業(yè)設(shè)計(jì)_第1頁(yè)
智能交通信號(hào)燈畢業(yè)設(shè)計(jì)_第2頁(yè)
智能交通信號(hào)燈畢業(yè)設(shè)計(jì)_第3頁(yè)
智能交通信號(hào)燈畢業(yè)設(shè)計(jì)_第4頁(yè)
智能交通信號(hào)燈畢業(yè)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩28頁(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)介

畢業(yè)設(shè)計(jì)〔論文〕報(bào)告題目智能交通信號(hào)燈機(jī)電工程學(xué)院〔系〕電氣工程及其自動(dòng)化專業(yè)學(xué)號(hào)100616036學(xué)生姓名@@@@@@@@@指導(dǎo)教師@@@@@@@起訖日期2014.1——2014.5設(shè)計(jì)地點(diǎn)@@@@@@@學(xué)位論文獨(dú)創(chuàng)性聲明本人聲明所呈交的學(xué)位論文是我個(gè)人在導(dǎo)師指導(dǎo)下進(jìn)行的研究工作及取得的研究成果。盡我所知,除了文中特別加以標(biāo)注和致謝的地方外,論文中不包含其他人已經(jīng)發(fā)表或撰寫(xiě)過(guò)的研究成果,也不包含為獲得井岡山大學(xué)或其它教育機(jī)構(gòu)的學(xué)位或證書(shū)而使用過(guò)的材料。與我一同工作的同志對(duì)本研究所做的任何奉獻(xiàn)均已在論文中作了明確的說(shuō)明并表示了謝意。論文作者簽名:日期:2014年 5月 14日學(xué)位論文使用授權(quán)聲明井岡山大學(xué)有權(quán)保存本人所送交學(xué)位論文的復(fù)印件和電子文檔,可以采用影印、縮印或其他復(fù)制手段保存論文。本人電子文檔的內(nèi)容和紙質(zhì)論文的內(nèi)容相一致。除在保密期內(nèi)的保密論文外,允許論文被查閱和借閱,可以公布〔包括刊登〕論文的全部或局部?jī)?nèi)容。論文的公布〔包括刊登〕授權(quán)井岡山大學(xué)教務(wù)處辦理。論文作者簽名:導(dǎo)師簽名:日期:年月日日期:年月日摘要交通燈是現(xiàn)代交通非常重要的一個(gè)組成局部,一套好的交通燈系統(tǒng)往往對(duì)提升城市交通運(yùn)輸效率,降低事故發(fā)生率有至關(guān)重要的影響。本系統(tǒng)由單片機(jī)系統(tǒng)、雙電源供電系統(tǒng)、交通燈演示系統(tǒng)、中斷系統(tǒng)組成。選用單片機(jī)作為此次設(shè)計(jì)的控制系統(tǒng)主要是考慮到單片機(jī)的通用性和廉價(jià)性。通用性是指單片機(jī)的電路以及編程語(yǔ)言相比照其他控制模塊來(lái)說(shuō)更加簡(jiǎn)單和通用,廉價(jià)性是單片機(jī)相對(duì)于其他的控制模塊來(lái)說(shuō)本錢更低,一塊成熟的STC89C52的本錢不過(guò)10元,加上其他的外圍電路本錢也不超過(guò)100元,無(wú)論是開(kāi)發(fā)本錢和維護(hù)本錢都能夠得到很好的控制。本設(shè)計(jì)選用STC89C52主要也就是基于上述的兩個(gè)原因。本交通燈系統(tǒng)選用了LED燈和雙位數(shù)碼管來(lái)模擬顯示的交通燈。兩種狀態(tài),一種正常十字路口紅綠燈智能轉(zhuǎn)換,一種緊急情況〔交通意外或者領(lǐng)導(dǎo)巡查經(jīng)過(guò)〕。八個(gè)按鍵,一個(gè)系統(tǒng)復(fù)位按鍵,一個(gè)緊急鍵,一個(gè)設(shè)置按鍵,一個(gè)確認(rèn)按鍵,一個(gè)南北通行時(shí)間加,一個(gè)南北通行時(shí)間減,一個(gè)東西通行時(shí)間加,一個(gè)東西通行時(shí)間減〔通行時(shí)間可通過(guò)按鍵設(shè)置〕。2個(gè)兩位數(shù)碼管顯示剩余時(shí)間,12個(gè)LED指示燈,紅色燈停止指示燈,綠色燈為通行指示燈,黃色燈閃爍為提醒過(guò)線車輛平安經(jīng)過(guò)未過(guò)線車輛停止繼續(xù)前進(jìn)指示燈。按下設(shè)置按鍵,經(jīng)過(guò)按鍵加減可設(shè)置車輛通過(guò)時(shí)間,按下確認(rèn)按鍵可確認(rèn)設(shè)置。當(dāng)遇到特殊情況〔如領(lǐng)導(dǎo)巡查經(jīng)過(guò)〕時(shí),按下緊急鍵,東西南北均為紅燈,等待領(lǐng)導(dǎo)經(jīng)過(guò),經(jīng)過(guò)后按下確認(rèn)按鍵可解除緊急情況顯示,進(jìn)入按下按鍵前狀態(tài)繼續(xù)顯示。關(guān)鍵詞:?jiǎn)纹瑱C(jī);STC89C52;交通燈;分時(shí)系統(tǒng)ABSTRACTTrafficlightsisacomponentofthemoderntransportationisveryimportant,agoodsetoftrafficlightssystemtendtoimproveurbantransportationefficiency,reducetheaccidentratehascrucialeffect.Thissystembysinglechipmicrocomputersystem,thedualpowersupplysystem,trafficlightsofthedemosystem,interruptsystem.Choosesinglechipmicrocomputerasthecontrolsystemforthisdesignismainlyconsideringtheuniversalityandcheapofthemicro-controller.Versatilityreferstothecircuitandsingle-chipmicrocomputerprogramminglanguagerelativelyismoresimpleandgeneralthanothercontrolmodules,cheapsexissinglechipmicrocomputerrelativetootherlowercostcontrolmodule,amatureSTC89C52cost10yuanonly,andotherperipheralcircuitcostsarelessthan100yuan,bothindevelopmentcostsandmaintenancecostscanbeverygoodcontrol.ThisdesignchoosesSTC89C52mainlyisbasedontheabovetworeasons.ThistrafficlightsystemUSESLEDlightsandon-offdigitaltoanalogdisplayoftrafficlightswitchingstate.Twokindsofstate,akindofnormalintersectiontrafficlightsintelligenttransformation,anemergency(trafficaccidentorleadingsearchthrough).Eightkey,asystemresetbutton,anemergencybuttonandaSettingsbutton,aconfirmationkey,addanorth-southtraffictime,anorthandsouthpassageoftime,apassageoftime,apassageoftimereduction(passageoftimecanbesetupthroughthebuttons).2twodigitaltubedisplaytheremainingtime,12LEDlights,redlightstoplights,greenlightsforthetrafficlights,yellowlightsflashtoremindthelinewithoutalineofvehiclesisvehiclesafetylightstoptomoveon.Pressthesetkey,aftercanbesettoaddandsubtractvehiclesthroughtime,presstheconfirmbuttontoconfirmSettings.Whenspecialcircumstances(suchasleadingpatrolpassed),presstheemergencybutton,northandsouth,eastandwestarearedlight,waitingfortheleadership,maybedischargedafterpresstheconfirmbuttonaftertheemergencysituation,accordingtoenterthestatecontinuetoshowbeforepressthebutton.Keywords:singlechipmicrocomputer;STC89C52;Thetrafficlight;Time-sharingsystem目錄22172第1章緒論1309971.1交通燈的歷史和現(xiàn)狀19931.2單片機(jī)相關(guān)介紹171101.3課題意義315974第2章課題內(nèi)容和實(shí)現(xiàn)狀態(tài)47691第3章系統(tǒng)設(shè)計(jì) 5218253.1交通燈5263993.1.1相位的概念規(guī)那么方案574793.1.2交通燈狀態(tài)5167103.1.3上下峰分時(shí)管理機(jī)制 796733.2軟件設(shè)計(jì) 8233263.3硬件設(shè)計(jì)局部8214273.3.1單片機(jī)系統(tǒng) 873343.3.2交通燈演示系統(tǒng) 15297973.3.3中斷系統(tǒng) 15136513.4其它硬件介紹八段LED數(shù)碼管1614905第4章原理圖1820345第5章系統(tǒng)調(diào)試19158425.1軟件調(diào)試19241765.2斷電調(diào)試19276085.3通電調(diào)試1979595.4根本要求局部的測(cè)試與分析 2014561結(jié)論2116162參考文獻(xiàn) 229970致謝 2324438附錄241793附錄A仿真圖2431310附錄B交通燈程序262826附錄C元器件清單35HYPERLINK第1章緒論1.1交通燈的歷史和現(xiàn)狀當(dāng)今,紅綠燈安裝在各個(gè)道口上,已經(jīng)成為疏導(dǎo)交通車輛最常見(jiàn)和最有效的手段。但這一技術(shù)在19世紀(jì)就已出現(xiàn)了。1858年,在英國(guó)倫敦主要街頭安裝了以燃煤氣為光源的紅,藍(lán)兩色的機(jī)械扳手式信號(hào)燈,用以指揮馬車通行。這是世界上最早的交通信號(hào)燈。1868年,英國(guó)機(jī)械工程師納伊特在倫敦威斯敏斯特區(qū)的議會(huì)大廈前的廣場(chǎng)上,安裝了世界上最早的煤氣紅綠燈。它由紅綠兩色旋轉(zhuǎn)式方形玻璃提燈組成,紅色表示“停止”,綠色表示“注意”。1869年1月2日,煤氣燈爆炸,使警察受傷,遂被取消。電氣啟動(dòng)的紅綠燈出現(xiàn)在美國(guó),這種紅綠燈由紅綠黃三色圓形的投光器組成,1914年始安裝于紐約市5號(hào)大街的一座高塔上。紅燈亮表示“停止”,綠燈亮表示“通行”。1918年,又出現(xiàn)了帶控制的紅綠燈和紅外線紅綠燈。帶控制的紅綠燈,一種是把壓力探測(cè)器安在地下,車輛一接近紅燈便變?yōu)榫G燈;另一種是用擴(kuò)音器來(lái)啟動(dòng)紅綠燈,司機(jī)遇紅燈時(shí)按一下嗽叭,就使紅燈變?yōu)榫G燈。紅外線紅綠燈當(dāng)行人踏上對(duì)壓力敏感的路面時(shí),它就能發(fā)覺(jué)到有人要過(guò)馬路。紅外光束能把信號(hào)燈的紅燈延長(zhǎng)一段時(shí)間,推遲汽車放行,以免發(fā)生交通事故。信號(hào)燈的出現(xiàn),使交通得以有效管制,對(duì)于疏導(dǎo)交通流量、提高道路通行能力,減少交通事故有明顯效果。1968年,聯(lián)合國(guó)《道路交通和道路標(biāo)志信號(hào)協(xié)定》對(duì)各種信號(hào)燈的含義作了規(guī)定。綠燈是通行信號(hào),面對(duì)綠燈的車輛可以直行,左轉(zhuǎn)彎和右轉(zhuǎn)彎,除非另一種標(biāo)志禁止某一種轉(zhuǎn)向。左右轉(zhuǎn)彎車輛都必須讓合法地正在路口內(nèi)行駛的車輛和過(guò)人行橫道的行人優(yōu)先通行。紅燈是禁行信號(hào),面對(duì)紅燈的車輛必須在交叉路口的停車線后停車。黃燈是警告信號(hào),面對(duì)黃燈的車輛不能越過(guò)停車線,但車輛已十分接近停車線而不能平安停車時(shí)可以進(jìn)入交叉路口。本設(shè)計(jì)的單片機(jī)控制交通燈就是基于信號(hào)燈。1.2單片機(jī)相關(guān)介紹單片機(jī)微型計(jì)算機(jī)是微型計(jì)算機(jī)的一個(gè)重要分支,也是頗具生命力的機(jī)種。單片機(jī)微型計(jì)算機(jī)簡(jiǎn)稱單片機(jī),特別適用于控制領(lǐng)域,故又稱為微控制器。通常,單片機(jī)由單塊集成電路芯片構(gòu)成,內(nèi)部包含有計(jì)算機(jī)的根本功能部件:中央處理器、存儲(chǔ)器和I/O接口電路等。因此,單片機(jī)只需要和適當(dāng)?shù)能浖巴獠吭O(shè)備相結(jié)合,便可成為一個(gè)單片機(jī)控制系統(tǒng)。單片機(jī)經(jīng)過(guò)1、2、3代的開(kāi)展,目前單片機(jī)正朝著高性能和多品種方向開(kāi)展,它們的CPU功能在增強(qiáng),內(nèi)部資源在增多,引腳的多功能化,以及低電壓低功耗。本設(shè)計(jì)選用了市面上較為常見(jiàn)的STC89C52單片機(jī),STC89C52是一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲(chǔ)器。使用高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在線系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。STC89C52的管腳圖如圖1.1所示。圖1.1STC89C52管腳圖1.3課題意義使用單片機(jī)作為本設(shè)計(jì)的控制方案主要是考慮到其低廉的本錢和易學(xué)易用的特性,相較于類似ARM這類性能更為強(qiáng)大的控制方案,單片機(jī)的性能并非其優(yōu)勢(shì)所在。但是如何充分利用單片機(jī)已有的功能進(jìn)行最大化的開(kāi)發(fā)才是本設(shè)計(jì)的重點(diǎn)。總的來(lái)說(shuō),本設(shè)計(jì)意義有如下4個(gè)方面:1、對(duì)單片機(jī)這一成熟的解決方案在交通燈領(lǐng)域的應(yīng)用進(jìn)行研究和開(kāi)發(fā);2、探究分時(shí)管理系統(tǒng)在交通燈系統(tǒng)中的應(yīng)用,對(duì)分時(shí)管理系統(tǒng)的C語(yǔ)言算法進(jìn)行開(kāi)發(fā)。舉一反三,延伸到其他類似領(lǐng)域的應(yīng)用。3、探究全新的交通燈管理系統(tǒng);第2章課題內(nèi)容和實(shí)現(xiàn)狀態(tài)2.1課題內(nèi)容本課題的主要內(nèi)容包括如下幾個(gè)方面:1、設(shè)計(jì)交通燈狀態(tài)的管理方案;2、設(shè)計(jì)單片機(jī)最小系統(tǒng)和周邊電路;3、設(shè)計(jì)交通燈系統(tǒng)、中斷系統(tǒng)的電路結(jié)構(gòu);4、設(shè)計(jì)整個(gè)系統(tǒng)的電路分布和接線;5、使用C語(yǔ)言編寫(xiě)整個(gè)系統(tǒng)運(yùn)行所需要的程序,重點(diǎn)是分時(shí)管理系統(tǒng)和緊急中斷系統(tǒng)的程序。2.2實(shí)現(xiàn)狀態(tài)兩種狀態(tài),一種正常十字路口紅綠燈智能轉(zhuǎn)換,一種緊急情況〔交通意外或者領(lǐng)導(dǎo)巡查經(jīng)過(guò)〕。八個(gè)按鍵,一個(gè)系統(tǒng)復(fù)位按鍵,一個(gè)緊急鍵,一個(gè)設(shè)置按鍵,一個(gè)確認(rèn)按鍵,一個(gè)南北通行時(shí)間加,一個(gè)南北通行時(shí)間減,一個(gè)東西通行時(shí)間加,一個(gè)東西通行時(shí)間減〔通行時(shí)間可通過(guò)按鍵設(shè)置〕。2個(gè)兩位數(shù)碼管顯示剩余時(shí)間,12個(gè)LED指示燈,紅色燈停止指示燈,綠色燈為通行指示燈,黃色燈閃爍為提醒過(guò)線車輛平安經(jīng)過(guò)未過(guò)線車輛停止繼續(xù)前進(jìn)指示燈。按下設(shè)置按鍵,經(jīng)過(guò)按鍵加減可設(shè)置車輛通過(guò)時(shí)間,按下確認(rèn)按鍵可確認(rèn)設(shè)置。當(dāng)遇到特殊情況〔如領(lǐng)導(dǎo)巡查經(jīng)過(guò)〕時(shí),按下緊急鍵,東西南北均為紅燈,等待領(lǐng)導(dǎo)經(jīng)過(guò),經(jīng)過(guò)后按下確認(rèn)按鍵可解除緊急情況顯示,進(jìn)入按下按鍵前狀態(tài)繼續(xù)顯示。HYPERLINK第3章系統(tǒng)設(shè)計(jì)HYPERLINK3.1交通燈本設(shè)計(jì)的交通燈以十字路口為模型,在實(shí)現(xiàn)根本的功能前提下增加了上下峰分時(shí)管理機(jī)制和人工干預(yù)機(jī)制。HYPERLINK3.1.1相位的概念規(guī)那么方案為保證交通系統(tǒng)的嚴(yán)謹(jǐn)性和公平性,本設(shè)計(jì)規(guī)定“相位”概念。相位的定義如下:在單個(gè)十字路口,整個(gè)狀態(tài)周期每個(gè)綠燈亮起的時(shí)間為一個(gè)固定值。相位的意義在于在一個(gè)循環(huán)狀態(tài)周期內(nèi),根據(jù)每個(gè)路口車流量大小可以分配適時(shí)適當(dāng)?shù)木G燈時(shí)間以保證時(shí)間的充分利用,保證車流大的干道可以通過(guò)足夠多的車輛,車流小的干道不用浪費(fèi)時(shí)間。從總體上提升系統(tǒng)的效率。HYPERLINK3.1.2交通燈狀態(tài)為方便說(shuō)明交通燈狀態(tài),交通燈系統(tǒng)的示意圖如圖3.1所示。如圖3.1,交通道路系統(tǒng)是由常見(jiàn)的雙車道加人行道組成,由南向北行駛的車輛所看的交通燈是北路口的車行道交通燈,由北向南的車輛所看的交通燈是南路口的車行道交通燈,由西向東行駛的車輛所看的交通燈是東路口的車行道交通燈,由東向西行駛的車輛所看的交通燈是西路口的車行道交通燈。圖3.1交通燈示意圖現(xiàn)規(guī)定如下?tīng)顟B(tài):S1:南北方向車輛通行,東西方向禁行,東西方向人行道通行、南北方向人行道禁行。S1狀態(tài)如圖3.2所示。圖3.2S1狀態(tài)示意圖S2:東西方向車輛通行,南北方向禁行,南北方向人行道通行、東西方向人行道禁行。S2狀態(tài)如圖3.3所示。圖3.3S2狀態(tài)示意圖圖3.4S3狀態(tài)示意圖S3:全紅燈,緊急事件狀態(tài)。S3狀態(tài)如圖3.4所示。HYPERLINK3.1.3上下峰分時(shí)管理機(jī)制本設(shè)計(jì)為提升交通燈系統(tǒng)效率,設(shè)置了上下峰分時(shí)管理機(jī)制。上下峰分時(shí)定義如下:頂峰時(shí)段:8點(diǎn)到10點(diǎn),一般為上班上學(xué)出行的頂峰期,18點(diǎn)到20點(diǎn),一般為下班放學(xué)出行頂峰期,此時(shí)主干道車流量高于次干道的車流量;低峰時(shí)段:除頂峰時(shí)段的其他時(shí)段。在頂峰時(shí)段,采取增加主干道綠燈通行時(shí)間,減少次干道綠燈通行時(shí)間以最大限度的通過(guò)車輛。在低峰時(shí)段,采取減少主干道綠燈通行時(shí)間,增加次干道綠燈通行時(shí)間以平衡通過(guò)車輛。上下峰時(shí)段狀態(tài)如表3.1所示。表3.1上下峰時(shí)段狀態(tài)表時(shí)期S1S2低峰時(shí)期南北向車行道綠燈時(shí)長(zhǎng)15s東西向車行道綠燈時(shí)長(zhǎng)20s頂峰時(shí)期南北向車行道綠燈時(shí)長(zhǎng)25s東西向車行道綠燈時(shí)長(zhǎng)30s在發(fā)生突發(fā)事件的時(shí)候啟動(dòng)緊急狀態(tài)S3,全部紅燈亮。這種狀態(tài)主要適用于例如救護(hù)車,軍車執(zhí)行任務(wù)時(shí)候使用。HYPERLINK3.2軟件設(shè)計(jì)在本次設(shè)計(jì)中,采用了C語(yǔ)言作為程序編程的語(yǔ)言。相較于C語(yǔ)言,匯編語(yǔ)言的機(jī)器代碼生成效率很高但可讀性卻并不強(qiáng),復(fù)雜一點(diǎn)的程序就更是難讀懂,而C語(yǔ)言在大多數(shù)情況下其機(jī)器代碼生成效率和匯編語(yǔ)言相當(dāng),但可讀性和可移植性卻遠(yuǎn)遠(yuǎn)超過(guò)匯編語(yǔ)言,而且C語(yǔ)言還可以嵌入?yún)R編來(lái)解決高時(shí)效性的代碼編寫(xiě)問(wèn)題。對(duì)于開(kāi)發(fā)周期來(lái)說(shuō),中大型的軟件編寫(xiě)用C語(yǔ)言的開(kāi)發(fā)周期通常要小于匯編語(yǔ)言很多。綜合以上C語(yǔ)言的優(yōu)點(diǎn),本設(shè)計(jì)在編程的時(shí)候選擇了C語(yǔ)言。本設(shè)計(jì)在編程環(huán)境上也選擇了KeilμVision2.0。這款軟件支持眾多不同公司的MCS51架構(gòu)芯片,它集編輯、編譯、仿真為一體,同時(shí)還支持PLM、匯編和C語(yǔ)言的程序設(shè)計(jì),界面友好、簡(jiǎn)單易學(xué),在調(diào)試程序。軟件仿真方面都有很強(qiáng)大的功能。在初期的軟件調(diào)試階段,KeilμVision會(huì)提供非常便利的環(huán)境。在沒(méi)有突發(fā)事件按鈕和上下峰切換按鈕都沒(méi)有按下時(shí)交通燈的執(zhí)行預(yù)定方案。HYPERLINK3.3硬件設(shè)計(jì)局部根據(jù)本設(shè)計(jì)交通燈的模型和實(shí)現(xiàn)的功能,硬件局部可以分為以下兩個(gè)大的系統(tǒng):?jiǎn)纹瑱C(jī)系統(tǒng)、交通燈演示系統(tǒng)、中斷系統(tǒng)。整個(gè)系統(tǒng)的硬件架構(gòu)圖如圖11。HYPERLINK3.3.1單片機(jī)系統(tǒng)STC89C52是一種帶8K字節(jié)閃爍可編程可檫除只讀存儲(chǔ)器〔FPEROM-FlashProgramableandErasableReadOnlyMemory〕的低電壓,高性能COMOS8的微處理器,俗稱單片機(jī)。該器件采用ATMEL搞密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。單片機(jī)總控制電路如下列圖3.5:圖3.5單片機(jī)總控制電路1.時(shí)鐘電路STC89C52內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器,引腳RXD和TXD分別是此放大器的輸入端和輸出端。時(shí)鐘可以由內(nèi)部方式產(chǎn)生或外部方式產(chǎn)生。內(nèi)部方式的時(shí)鐘電路,在RXD和TXD引腳上外接定時(shí)元件,內(nèi)部振蕩器就產(chǎn)生自激振蕩。定時(shí)元件通常采用石英晶體和電容組成的并聯(lián)諧振回路。晶體振蕩頻率可以在1.2~12MHz之間選擇,電容值在5~30pF之間選擇,電容值的大小可對(duì)頻率起微調(diào)的作用。外部方式的時(shí)鐘電路,RXD接地,TXD接外部振蕩器。對(duì)外部振蕩信號(hào)無(wú)特殊要求,只要求保證脈沖寬度,一般采用頻率低于12MHz的方波信號(hào)。片內(nèi)時(shí)鐘發(fā)生器把振蕩頻率兩分頻,產(chǎn)生一個(gè)兩相時(shí)鐘P1和P2,供單片機(jī)使用。示,RXD接地,TXD接外部振蕩器。對(duì)外部振蕩信號(hào)無(wú)特殊要求,只要求保證脈沖寬度,一般采用頻率低于12MHz的方波信號(hào)。片內(nèi)時(shí)鐘發(fā)生器把振蕩頻率兩分頻,產(chǎn)生一個(gè)兩相時(shí)鐘P1和P2,供單片機(jī)使用。RXD接地,TXD接外部振蕩器。對(duì)外部振蕩信號(hào)無(wú)特殊要求,只要求保證脈沖寬度,一般采用頻率低于12MHz的方波信號(hào)。片內(nèi)時(shí)鐘發(fā)生器把振蕩頻率兩分頻,產(chǎn)生一個(gè)兩相時(shí)鐘P1和P2,供單片機(jī)使用。〔a〕內(nèi)部方式時(shí)鐘電路〔b〕外部方式時(shí)鐘電路圖3.6時(shí)鐘電路交通燈設(shè)計(jì)的時(shí)鐘電路如圖3.7所示。時(shí)鐘電路中最為重要的就是晶振,晶振的作用是為系統(tǒng)提供根本的時(shí)鐘信號(hào)。晶振用一種能把電能和機(jī)械能相互轉(zhuǎn)化的晶體在共振的狀態(tài)下工作,以提供穩(wěn)定,精確的單頻振蕩。在通常工作條件下,普通的晶振頻率絕對(duì)精度可達(dá)百萬(wàn)分之五十。高級(jí)的精度更高。圖3.7最終設(shè)計(jì)交通燈的時(shí)鐘電路圖通常一個(gè)系統(tǒng)共用一個(gè)晶振,便于各局部保持同步。晶振結(jié)合單片機(jī)內(nèi)部的電路,產(chǎn)生單片機(jī)所必須的時(shí)鐘頻率,單片機(jī)的一切指令的執(zhí)行都是建立在這個(gè)根底上的,晶振的提供的時(shí)鐘頻率越高,那單片機(jī)的運(yùn)行速度也就越快。2.復(fù)位及復(fù)位電路〔1〕復(fù)位操作復(fù)位是單片機(jī)的初始化操作。其主要功能是把PC初始化為0000H,使單片機(jī)從0000H單元開(kāi)始執(zhí)行程序。除了進(jìn)入系統(tǒng)的正常初始化之外,當(dāng)由于程序運(yùn)行出錯(cuò)或操作錯(cuò)誤使系統(tǒng)處于死鎖狀態(tài)時(shí),為擺脫困境,也需按復(fù)位鍵重新啟動(dòng)。除PC之外,復(fù)位操作還對(duì)其他一些存放器有影響,它們的復(fù)位狀態(tài)如表3.2所示。表3.2一些存放器的復(fù)位狀態(tài)存放器復(fù)位狀態(tài)存放器復(fù)位狀態(tài)PC0000HTCON00HACC00HTL000HPSW00HTH000HSP07HTL100HDPTR0000HTH100HP0-P3FFHSCON00HIPXX000000BSBUF不定IE0X000000BPCON0XXX0000BTMOD00H〔2〕復(fù)位信號(hào)及其產(chǎn)生RST引腳是復(fù)位信號(hào)的輸入端。復(fù)位信號(hào)是高電平有效,其有效時(shí)間應(yīng)持續(xù)24個(gè)振蕩周期(即二個(gè)機(jī)器周期)以上。假設(shè)使用頗率為6MHz的晶振,那么復(fù)位信號(hào)持續(xù)時(shí)間應(yīng)超過(guò)4us才能完成復(fù)位操作。產(chǎn)生復(fù)位信號(hào)的電路邏輯如圖3.8所示:圖3.8復(fù)位信號(hào)的電路邏輯圖整個(gè)復(fù)位電路包括芯片內(nèi)、外兩局部。外部電路產(chǎn)生的復(fù)位信號(hào)(RST)送至施密特觸發(fā)器,再由片內(nèi)復(fù)位電路在每個(gè)機(jī)器周期的S5P2時(shí)刻對(duì)施密特觸發(fā)器的輸出進(jìn)行采樣,然后才得到內(nèi)部復(fù)位操作所需要的信號(hào)。復(fù)位操作有上電自動(dòng)復(fù)位相按鍵手動(dòng)復(fù)位兩種方式。上電自動(dòng)復(fù)位是通過(guò)外部復(fù)位電路的電容充電來(lái)實(shí)現(xiàn)的。這佯,只要電源Vcc的上升時(shí)間不超過(guò)1ms,就可以實(shí)現(xiàn)自動(dòng)上電復(fù)位,即接通電源就成了系統(tǒng)的復(fù)位初始化。按鍵手動(dòng)復(fù)位有電平方式和脈沖方式兩種。其中,按鍵電平復(fù)位是通過(guò)使復(fù)位端經(jīng)電阻與Vcc電源接通而實(shí)現(xiàn)的;而按鍵脈沖復(fù)位那么是利用RC微分電路產(chǎn)生的正脈沖來(lái)實(shí)現(xiàn)的,圖3.9最終設(shè)計(jì)的復(fù)位電路圖單片機(jī)復(fù)位后各存放器的狀態(tài):A=00H,說(shuō)明累加器已被清零;PSW=00H,說(shuō)明選存放器0組為工作存放器組;SP=07H,說(shuō)明堆棧指針指向片內(nèi)RAM07H字節(jié)單元,根據(jù)堆棧操作的先加后壓法那么,第一個(gè)被壓入的內(nèi)容寫(xiě)入到08H單元中;Po-P3=FFH,說(shuō)明已向各端口線寫(xiě)入1,此時(shí),各端口既可用于輸入又可用于輸出;IP=×××00000B,說(shuō)明各個(gè)中斷源處于低優(yōu)先級(jí);IE=0××00000B,說(shuō)明各個(gè)中斷均被關(guān)斷;上述電路圖中的電阻、電容參數(shù)適用于6MHz晶振,能保證復(fù)位信號(hào)高電平持續(xù)時(shí)間大于2個(gè)機(jī)器周期。STC89C52具體介紹如下:主電源引腳〔2根〕VCC(Pin40):電源輸入,接+5V電源GND(Pin20):接地線外接晶振引腳〔2根〕XTAL1(Pin19):片內(nèi)振蕩電路的輸入端XTAL2(Pin20):片內(nèi)振蕩電路的輸出端控制引腳〔4根〕RST/VPP(Pin9):復(fù)位引腳,引腳上出現(xiàn)2個(gè)機(jī)器周期的高電平將使單片機(jī)復(fù)位。ALE/PROG(Pin30):地址鎖存允許信號(hào)PSEN(Pin29):外部存儲(chǔ)器讀選通信號(hào)EA/VPP(Pin31):程序存儲(chǔ)器的內(nèi)外部選通,接低電平從外部程序存儲(chǔ)器讀指令,如果接高電平那么從內(nèi)部程序存儲(chǔ)器讀指令??删幊梯斎?輸出引腳〔32根〕STC89C52單片機(jī)有4組8位的可編程I/O口,分別位P0、P1、P2、P3口,每個(gè)口有8位〔8根引腳〕,共32根。PO口〔Pin39~Pin32〕:8位雙向I/O口線,名稱為P0.0~P0.7P1口〔Pin1~Pin8〕:8位準(zhǔn)雙向I/O口線,名稱為P1.0~P1.7P2口〔Pin21~Pin28〕:8位準(zhǔn)雙向I/O口線,名稱為P2.0~P2.7P3口〔Pin10~Pin17〕:8位準(zhǔn)雙向I/O口線,名稱為P3.0~P3.7STC89C52主要功能如表3.3所示。表3.3STC89C52主要功能主要功能特性兼容MCS51指令系統(tǒng)8K可反復(fù)擦寫(xiě)FlashROM32個(gè)雙向I/O口256x8bit內(nèi)部RAM3個(gè)16位可編程定時(shí)/計(jì)數(shù)器中斷時(shí)鐘頻率0-24MHz2個(gè)串行中斷可編程UART串行通道2個(gè)外部中斷源共6個(gè)中斷源2個(gè)讀寫(xiě)中斷口線3級(jí)加密位低功耗空閑和掉電模式軟件設(shè)置睡眠和喚醒功能本設(shè)計(jì)單片機(jī)主要是用于控制交通燈的演示系統(tǒng),故只需要單片機(jī)最小系統(tǒng)即可完成。單片機(jī)的最小系統(tǒng)是指能夠驅(qū)動(dòng)單片機(jī)工作的最小電路。此電路由單片機(jī)、時(shí)鐘電路、電源、復(fù)位電路4個(gè)組成局部組成。圖3.12為單片機(jī)最小電路的電路圖。其中,單片機(jī)復(fù)位電路原理是在單片機(jī)的復(fù)位引腳rst上外接電阻和電容,實(shí)現(xiàn)上電復(fù)位,而復(fù)位時(shí)間是(時(shí)鐘周期=12×振蕩周期,振蕩周期=1/f),這個(gè)時(shí)間只能大不能小,具體數(shù)值可以由rc電路計(jì)算出時(shí)間常數(shù)。圖3.10主程序流程圖圖3.11系統(tǒng)總架構(gòu)圖圖3.12STC89C52最小系統(tǒng)圖HYPERLINK3.3.2交通燈演示系統(tǒng)根據(jù)功能,交通燈的演示系統(tǒng)從功能上那么分為:倒計(jì)時(shí)電路、紅綠燈功能電路。倒計(jì)時(shí)電路主要是由雙位共陰數(shù)碼管組成,控制信號(hào)通過(guò)單片機(jī)的端口P1口進(jìn)行信號(hào)的傳輸。倒計(jì)時(shí)電路負(fù)責(zé)的是顯示紅綠燈持續(xù)顯示的時(shí)間。當(dāng)綠燈或者紅燈持續(xù)顯示時(shí),數(shù)碼管顯示該狀態(tài)的持續(xù)時(shí)間,在黃燈閃爍顯示時(shí),起到倒計(jì)時(shí)秒數(shù)的作用。HYPERLINK3.3.3中斷系統(tǒng)中斷系統(tǒng)主要是負(fù)責(zé)上下峰方案和緊急方案的切換。3.4其它硬件介紹八段LED數(shù)碼管LED顯示屏作為大型顯示設(shè)備的一種,具有亮度高、價(jià)格低、壽命長(zhǎng)、維護(hù)簡(jiǎn)便等優(yōu)點(diǎn)。LED數(shù)碼管的結(jié)構(gòu)簡(jiǎn)單,分為七段和八段兩種形式,也有共陽(yáng)和共陰之分。以八段共陽(yáng)管為例,它有8個(gè)發(fā)光二極管(比七段多一個(gè)發(fā)光二極管,用來(lái)顯示dP,即點(diǎn)),每個(gè)發(fā)光二極管的陽(yáng)極連在一起,如圖3.13所示。這樣,一個(gè)LED數(shù)碼管就有I根位選線和8根段選線,要想顯示一個(gè)數(shù)值,就要分別對(duì)它們的上下電平來(lái)加以控制。為方便起見(jiàn),本文主要討論共陽(yáng)八段LED數(shù)碼顯示管,其他類形的顯示管與其類似。圖3.13LED數(shù)碼管LED燈的顯示原理:通過(guò)同名管腳上所加電平的上下來(lái)控制發(fā)光二極管是否點(diǎn)亮而顯示不同的字形,如dp,g,f,e,d,c,b,a全亮顯示為8,采用共陽(yáng)極連接驅(qū)動(dòng)代碼,代碼表如下表3.4所示。表3.4驅(qū)動(dòng)代碼表顯示數(shù)值dp,g,f,e,d,c,b,a驅(qū)動(dòng)代碼011010000C0H111111001F9H210100100A4H310110000B0H41001100199H51001001092H61000001082H711111000F8H81000000080H91001000090H相應(yīng)在程序軟件上,可以通過(guò)調(diào)用程序給定的秒值經(jīng)過(guò)特定計(jì)算算出需要顯示的個(gè)位和十位,然后有DPTR調(diào)取LEDMAP的代碼。LED8段數(shù)碼管的設(shè)置為每個(gè)方位上的一對(duì)2為顯示器。四個(gè)方位上總共用8個(gè)LED接在單片機(jī)的IO口上。雖然路口不一樣,但是顯示的時(shí)間在數(shù)字上是一樣的,所以兩邊連接的IO口是對(duì)稱的。如圖3.14所示,其中A,B分別是P0,P1的網(wǎng)絡(luò)標(biāo)號(hào)。圖3.14LED連接圖原理圖電路實(shí)現(xiàn)的功能有兩種狀態(tài),一種正常十字路口紅綠燈智能轉(zhuǎn)換,一種緊急情況〔交通意外或者領(lǐng)導(dǎo)巡查經(jīng)過(guò)〕。八個(gè)按鍵,一個(gè)系統(tǒng)復(fù)位按鍵,一個(gè)緊急鍵,一個(gè)設(shè)置按鍵,一個(gè)確認(rèn)按鍵,一個(gè)南北通行時(shí)間加,一個(gè)南北通行時(shí)間減,一個(gè)東西通行時(shí)間加,一個(gè)東西通行時(shí)間減〔通行時(shí)間可通過(guò)按鍵設(shè)置〕。2個(gè)兩位數(shù)碼管顯示剩余時(shí)間,12個(gè)LED指示燈,紅色燈停止指示燈,綠色燈為通行指示燈,黃色燈閃爍為提醒過(guò)線車輛平安經(jīng)過(guò)未過(guò)線車輛停止繼續(xù)前進(jìn)指示燈。按下設(shè)置按鍵,經(jīng)過(guò)按鍵加減可設(shè)置車輛通過(guò)時(shí)間,按下確認(rèn)按鍵可確認(rèn)設(shè)置。當(dāng)遇到特殊情況〔如領(lǐng)導(dǎo)巡查經(jīng)過(guò)〕時(shí),按下緊急鍵,東西南北均為紅燈,等待領(lǐng)導(dǎo)經(jīng)過(guò),經(jīng)過(guò)后按下確認(rèn)按鍵可解除緊急情況顯示,進(jìn)入按下按鍵前狀態(tài)繼續(xù)顯示。第5章系統(tǒng)調(diào)試5.1軟件調(diào)試在proteus仿真軟件設(shè)計(jì)電路的時(shí)候,連線總是不夠熟練,在一次次又一次的實(shí)踐中,開(kāi)始對(duì)proteus軟件熟悉,并能熟練的找到各個(gè)芯片,在連接電路圖的時(shí)候也能較容易的布線。在輸入仿真程序的時(shí)候,有時(shí)候總不會(huì)出現(xiàn)自己設(shè)計(jì)的效果,在檢查的時(shí)候,發(fā)現(xiàn)程序編寫(xiě)上有問(wèn)題,在內(nèi)容上也有一些小的問(wèn)題,Proteus仿真軟件用來(lái)畫(huà)硬件電路原理圖,在其中我們可以同時(shí)調(diào)用各樣的單片機(jī),但是其中存放的是普通的單片機(jī)可能不存在我們所要的芯片,因此我們也可以用protel99來(lái)畫(huà)此硬件電路圖,而我在此次設(shè)計(jì)中采用了Proteus這個(gè)軟件。在畫(huà)圖過(guò)程中一定要注意的是,元器件之間的連接線不可以是非線一定要導(dǎo)線,因此完成電路圖后再調(diào)試這個(gè)硬件電路是否能實(shí)現(xiàn)它的功能。具體的操作是翻開(kāi)電路原理圖后雙擊單片機(jī)芯片在彈出的對(duì)話窗口中把我們?cè)趉eil編譯軟件中編譯生成的后綴名為.hex文件調(diào)入其中,而該單片機(jī)的工作時(shí)鐘頻率我們可以在此改變,設(shè)置好后點(diǎn)擊OK就可以了,再點(diǎn)擊原理圖左下角的運(yùn)行就可以正常運(yùn)行了,假設(shè)要暫?;蚴腔謴?fù)那么點(diǎn)擊相應(yīng)的按鈕就好了。Keil編譯軟件用來(lái)編程,可以用匯編語(yǔ)言也可以用C語(yǔ)言來(lái)進(jìn)行編程實(shí)現(xiàn)某些功能。當(dāng)翻開(kāi)keil后,首先新建一個(gè)工程保存在相應(yīng)位置,后再新建一個(gè)文本,將你已經(jīng)編好的程序復(fù)制到這個(gè)文本中或是在這個(gè)文本進(jìn)行編寫(xiě)程序,之后一再將其保存為一個(gè)以.Asm或是.c作為后綴名的文本,再在我們建立的組中將程序文件添加到工程中,再經(jīng)過(guò)編譯,然后生成.hex文件再編譯,假設(shè)提示沒(méi)有出現(xiàn)錯(cuò)誤errors〔不含警告warnings〕那么說(shuō)明調(diào)試成功,反之那么應(yīng)該對(duì)程序進(jìn)行檢查分析,直到調(diào)試成功為止。5.2斷電調(diào)試為平安起見(jiàn),防止硬件燒壞,首先進(jìn)行斷電調(diào)試,用萬(wàn)用表檢測(cè)系統(tǒng)是否有短路現(xiàn)象,再檢查嚴(yán)原理是否正確,各個(gè)線路的電平是否正常。經(jīng)檢測(cè),未出現(xiàn)短路現(xiàn)象以及各個(gè)電平都正常。HYPERLINK5.3通電調(diào)試1、檢查系統(tǒng)時(shí)鐘是否正常工作,用萬(wàn)用表直流電壓檔測(cè)量XTAL1與AXTAL2兩端間的電壓,檢測(cè)到電壓假設(shè)為2.5V左右,那么視為正常工作。2、檢查復(fù)位電路是否正常工作。3、檢查數(shù)碼管顯示是否正常。HYPERLINK5.4根本要求局部的測(cè)試與分析1、系統(tǒng)上電后,顯示交通燈根本狀態(tài),按中斷按鍵,中斷正常,直接進(jìn)入S3狀態(tài),按復(fù)位按鍵,整個(gè)系統(tǒng)復(fù)位成功。2、按設(shè)置鍵,按下設(shè)置按鍵,經(jīng)過(guò)按鍵加減可設(shè)置車輛通過(guò)時(shí)間,按下確認(rèn)按鍵可確認(rèn)設(shè)置。在頂峰期時(shí)間設(shè)置長(zhǎng)一些,在低峰期時(shí)間設(shè)置的短一些。3、在未進(jìn)行任何的中斷和復(fù)位操作時(shí),交通燈按照預(yù)定流程進(jìn)行。結(jié)論本文探究了單片機(jī)在當(dāng)今智能交通方面的應(yīng)用。相對(duì)于其他解決方案來(lái)說(shuō),單片機(jī)具有本錢低廉,通用性高,維護(hù)簡(jiǎn)單,軟件靈活,成熟度高等優(yōu)勢(shì)。但是,單片機(jī)開(kāi)展到現(xiàn)在也有存儲(chǔ)空間較小、下游方案較少等局限性。本設(shè)計(jì)在實(shí)現(xiàn)相應(yīng)功能的時(shí)候主要是考慮到現(xiàn)有的條件,采用成熟度高的STC89C52作為CPU的解決方案,同時(shí)用LED燈和雙位數(shù)碼管作為顯示模塊,軟件那么使用了移植性好的C語(yǔ)言。從功能需求上來(lái)看,已經(jīng)能夠滿足實(shí)際需要。供電方案也采用了現(xiàn)在熱門的雙電源供電,電路結(jié)構(gòu)簡(jiǎn)單,可靠性高,從一定程度上解決了實(shí)際中可能出現(xiàn)的由于電源引發(fā)的問(wèn)題。上下峰分時(shí)管理方案作為靈活的交通燈狀態(tài)方案,對(duì)提高交通運(yùn)輸系統(tǒng)的運(yùn)行效率也有很大的幫助。單片機(jī)作為已經(jīng)開(kāi)展了30年的成熟產(chǎn)品,很多優(yōu)勢(shì)正在逐漸失去,讓位于更加先進(jìn)的芯片解決方案。但是作為成熟方案還是在很多領(lǐng)域能夠發(fā)揮作用。HYPERLINK參考文獻(xiàn)[1]譚浩強(qiáng).2005.C程序設(shè)計(jì)〔第三版〕.北京:清華大學(xué)出版社.95-104.[2]肖金球.2004.單片機(jī)原理與接口技術(shù).北京:清華大學(xué)出版社.210-230.[3]彭冬明,韋友春.2007.單片機(jī)實(shí)驗(yàn)教程.北京:北京理工大學(xué)出版社.58-65.[4]范立南.1996.單片微機(jī)接口與控制技術(shù).沈陽(yáng):遼寧大學(xué)出版社.110-135.[5]李華.1993.MCS-51系列單片機(jī)實(shí)用接口技術(shù).北京:北京航空航天大學(xué)出版社.36-56.[6]溫欣玲,張玉葉.1999.基于單片機(jī)交通燈智能控制系統(tǒng)研究.微計(jì)算機(jī)信息,23〔10〕:90-91.[7]胡漢才.1996.單片機(jī)原理及接口技術(shù).北京:清華大學(xué)出版社.[8]周美珍,江志華.2005.單片機(jī)控制交通燈的硬件與軟件設(shè)計(jì).家庭電子,9〔20〕:20-21.[9]蔣汝根,錢丹浩.2006.基于AT89C51單片機(jī)的交通燈模擬控制系統(tǒng).無(wú)錫商業(yè)職業(yè)技術(shù)學(xué)院學(xué)報(bào),6〔6〕:8-12.[10]康華光,陳大欽.2005.電子技術(shù)根底〔模擬局部〕.北京:高等教育出版社.[11]康華光,鄒壽彬.2005.電子技術(shù)根底〔數(shù)字局部〕.北京:高等教育出版社.[12]李朝青.2005.單片機(jī)原理及接口技術(shù)〔第三版〕.北京:北京航空航天大學(xué)出版社.88-109.[13]張偉,王麗,趙晶.2003.電路設(shè)計(jì)與制作ProtelDXP入門與提高.北京:人民郵電出版社.300-320.HYPERLINK致謝在本次畢業(yè)設(shè)計(jì)的過(guò)程中,我進(jìn)一步的穩(wěn)固了如下所學(xué)知識(shí):模擬電路、數(shù)字電路、單片機(jī)、C語(yǔ)言程序設(shè)計(jì)。與此同時(shí),我自身的專業(yè)知識(shí)、動(dòng)手能力和文檔撰寫(xiě)能力也得到了很大程度的提升。這也讓我感受到“理論聯(lián)系實(shí)踐”這個(gè)硬道理,對(duì)于我未來(lái)的工作和人生都有很大的幫助。本次設(shè)計(jì)的完成不僅僅是我一個(gè)人努力的結(jié)果,老師在設(shè)計(jì)的過(guò)程中給予我很多的指導(dǎo)和提供了很多建設(shè)性的思路,特別是在我同時(shí)要上班、考試和做設(shè)計(jì)這繁忙的事務(wù)中,肖根福老師依然給了我很大的空間去完成畢業(yè)設(shè)計(jì)。除此以外,班上同學(xué)在我設(shè)計(jì)電路和編程的時(shí)候也給予了我方方面面的指導(dǎo),這跟同學(xué)們熱心助人和扎實(shí)過(guò)硬的專業(yè)知識(shí)是牢不可分的!因?yàn)榇蠹易约阂残枰瓿勺约旱漠厴I(yè)設(shè)計(jì),但是能夠在自己所剩不多的時(shí)間內(nèi),抽出一局部來(lái)幫助我完成設(shè)計(jì),這讓我非常的感謝。在此向老師和班上同學(xué)表示深切的感謝和崇高的敬意,同時(shí)也對(duì)機(jī)電工程學(xué)院所提供的良好學(xué)術(shù)環(huán)境表示感謝。附錄附錄A仿真圖仿真圖1南北綠燈,東西紅燈仿真圖2南北黃燈,東西紅燈仿真圖3南北紅燈,東西綠燈仿真圖4南北紅燈,東西黃燈仿真圖5東西南北紅燈附錄B交通燈程序#include<reg51.h> /*對(duì)單片機(jī)的口進(jìn)行了定義********/#defineucharunsignedchar/*定義字符串類型為無(wú)符號(hào)型*/ucharcodea[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};/*段碼組合,P0口,高有效*/ucharcodeb[4]={0x0D,0x0E,0x07,0x0B};/****P2口,低有效*/ucharcodec[4]={0x3A,0x36,0x5C,0x6C};/****P1口.低有效*/charSN=25,WE=30;/*SN表示南北方向——主干道,WE表示東西方向——支干道*/charSN_G=25,WE_G=15,Y=5;/*SN_G表示南北方向的綠燈,WE_G表示東西方向的綠燈,Y表示黃燈*/uchari,k=0,count=0;/*定義無(wú)符號(hào)字符串變量*/voiddelay(uchart);/*定義函數(shù)*/voidlight(); /*定義函數(shù)*/voidled(); /*定義函數(shù)*/voidledthrough();/*定義函數(shù)*/voidleddrive(); /*定義函數(shù)*/sbitK0=P3^0;/*開(kāi)關(guān)K0接P3^1管腳*/sbitK1=P3^6;/*開(kāi)關(guān)K1接P3^6管腳*/sbitK2=P3^3;/*開(kāi)關(guān)K2接P3^3管腳*/sbitK3=P3^5;/*開(kāi)關(guān)K3接P3^5管腳*/sbitK4=P3^2;/*開(kāi)關(guān)K4接P3^2管腳*/sbitK5=P3^1;/*開(kāi)關(guān)K5接P3^0管腳*/sbitK6=P3^7;/*開(kāi)關(guān)K6接P3^7管腳*//*程序初始化*/voidinit(void){/*12MHz*/TMOD=0x01;/**計(jì)數(shù)器用模式1,為16位計(jì)數(shù)器*****/TH1=(65536-50000)/256; /*0x3C*/TL1=(65536-50000)%256; /*0xB0*//*計(jì)50000個(gè)數(shù),用時(shí)50ms*/IT0=1;/*外部中斷為低電平觸發(fā)方式*/ET0=1;/*允許T0中斷*/TR0=1;/*啟動(dòng)計(jì)數(shù)器*/EA=1;/*CPU開(kāi)放總中斷*/EX0=1;/*允許外部中斷0中斷,即允許響應(yīng)端口P3^2(K4)中斷*/EX1=1;/*允許外部中斷1中斷,即允許響應(yīng)端口P3^3(K2)中斷*/}/*中斷0處理程序*/voidint0(void)interrupt0{EA=0;/*CPU禁止響應(yīng)一切中斷*/P1=0x3C;/*東西南北方向均紅燈亮*/TR0=!TR0;/*計(jì)數(shù)器停止工作*/for(;;)/*無(wú)條件循環(huán)*/{ledthrough();/*調(diào)用通行時(shí)間顯示函數(shù)*//*設(shè)置南北方向通行時(shí)間*/if(K0==0) /*P3^7=0*/{delay(10);/*延時(shí),把抖動(dòng)的時(shí)間拋掉*/if(K0==0){while(!K0)/*當(dāng)松開(kāi)K0開(kāi)關(guān)時(shí),跳出循環(huán),執(zhí)行后面的程序*/{ledthrough();/*調(diào)用通行時(shí)間顯示函數(shù)*/}SN_G++;/*南北方向綠燈時(shí)間+1*/if((SN_G+Y)==100)/*南北方向通行時(shí)間(綠燈加黃燈時(shí)間)為100s*/SN_G=1;/*由于使用的是兩位數(shù)碼管,當(dāng)南北方向通行時(shí)間加到100后綠燈時(shí)間歸1*/}}if(K5==0) /*P3^0=0*/{delay(10);/*延時(shí),把抖動(dòng)的時(shí)間拋掉*/if(K5==0){while(!K5)/*當(dāng)松開(kāi)K0開(kāi)關(guān)時(shí),跳出循環(huán),執(zhí)行后面的程序*/{ledthrough();/*調(diào)用通行時(shí)間顯示函數(shù)*/}SN_G--;/*南北方向綠燈時(shí)間-1*/if((SN_G+Y)==5)/*南北方向通行時(shí)間(綠燈加黃燈時(shí)間)為10s*/SN_G=94;/*由于使用的是兩位數(shù)碼管,當(dāng)南北方向通行時(shí)間加到后綠燈時(shí)間歸1*/}}/*設(shè)置東西方向通行時(shí)間*/if(K1==0) /*P3^6=0*/{delay(10);/*延時(shí),把抖動(dòng)的時(shí)間拋掉*/if(K1==0){while(!K1)/*當(dāng)松開(kāi)K1開(kāi)關(guān)時(shí),跳出循環(huán),執(zhí)行后面的程序*/{ledthrough();/*調(diào)用通行時(shí)間顯示函數(shù)*/}WE_G++;/*東西方向綠燈時(shí)間+1*/if((WE_G+Y)==100)/*東西方向通行時(shí)間(綠燈加黃燈時(shí)間)為100s*/WE_G=1;/*由于使用的是兩位數(shù)碼管,當(dāng)東西方向通行時(shí)間加到100后綠燈時(shí)間歸1*/}}if(K6==0) /*P3^6=0*/{delay(10);/*延時(shí),把抖動(dòng)的時(shí)間拋掉*/if(K6==0){while(!K6)/*當(dāng)松開(kāi)K1開(kāi)關(guān)時(shí),跳出循環(huán),執(zhí)行后面的程序*/{ledthrough();/*調(diào)用通行時(shí)間顯示函數(shù)*/}WE_G--;/*東西方向綠燈時(shí)間-1*/if((WE_G+Y)==5)/*東西方向通行時(shí)間(綠燈加黃燈時(shí)間)為10s*/WE_G=94;/*由于使用的是兩位數(shù)碼管,當(dāng)東西方向通行時(shí)間加到100后綠燈時(shí)間歸1*/}}/*返回*/if(K3==0)/*P3^5=0*/{delay(10);/*延時(shí),把抖動(dòng)的時(shí)間拋掉*/if(K3==0){while(!K3)/*當(dāng)松開(kāi)K3開(kāi)關(guān)時(shí),跳出循環(huán),執(zhí)行后面的程序*/{ledthrough();/*調(diào)用通行時(shí)間顯示函數(shù)*/}TR0=!TR0;/*啟動(dòng)計(jì)數(shù)器*/EA=1;/*CPU開(kāi)放總中斷*/break;/*跳出*/}}}}/*中斷1處理程序*/voidint1(void)interrupt2{P1=0x3C,P0=a[0];/*東西南北方向均紅燈亮,P0口輸出0*/EA=0;/*CPU禁止響應(yīng)一切中斷*/TR0=!TR0;/*計(jì)數(shù)器停止工作*/for(;;)/*無(wú)條件循環(huán)*/{leddrive();/*數(shù)碼管驅(qū)動(dòng)程序*//*返回*/if(K3==0)/*P3^5=0*/{delay(10);/*延時(shí),把抖動(dòng)的時(shí)間拋掉*/if(K3==0){while(!K3)/*當(dāng)松開(kāi)K3開(kāi)關(guān)時(shí),跳出循環(huán),執(zhí)行后面的程序*/{leddrive();/*數(shù)碼管驅(qū)動(dòng)程序*/}EA=1;/*CPU開(kāi)放總中斷*/TR0=!TR0;/*啟動(dòng)計(jì)數(shù)器*/break;/*跳出*/}}}}/*鍵盤程序*/voidkey(){/*南北有車而東西無(wú)車*/if(K0==0) /*K0=0*/{delay(10);/*延時(shí),把抖動(dòng)的時(shí)間拋掉*/if(K0==0){while(!K0)/*當(dāng)松開(kāi)K0開(kāi)關(guān)時(shí),跳出循環(huán),執(zhí)行后面的程序*/{light();/*調(diào)用交通燈函數(shù)*/led();/*調(diào)用數(shù)碼管函數(shù)*/}count=0;/*清零*/k=0;/*南北方向通車,東西方向不通車*/SN=SN_G,WE=SN_G+Y;/*南北方向顯示時(shí)間為南北方向綠燈通行時(shí)間,東西方向顯示時(shí)間為南北方向綠燈通行時(shí)間加黃燈閃亮?xí)r間*/}}/*南北無(wú)車而東西有車*/if(K1==0) /*K1=0*/{delay(10);/*延時(shí),把抖動(dòng)的時(shí)間拋掉*/if(K1==0){while(!K1)/*當(dāng)松開(kāi)K1開(kāi)關(guān)時(shí),跳出循環(huán),執(zhí)行后面的程序*/{light();/*調(diào)用交通燈函數(shù)*/led();/*調(diào)用數(shù)碼管函數(shù)*/}count=0;/*清零*/k=2;/*南北方向不通車,東西方向通車*/SN=WE_G+Y,WE=WE_G;/*南北方向顯示時(shí)間為東西方向綠燈通行時(shí)間加黃燈閃亮?xí)r間,東西方向顯示時(shí)間為東西方向綠燈通行時(shí)間*/}}}/*定時(shí)函數(shù)*/voidtime1(void)interrupt1{TH0=0x3c;TL0=0xb0;/*計(jì)50000個(gè)數(shù),用時(shí)50ms*/count++; /*自增運(yùn)算*/if(count>=20)/*當(dāng)count大于或等于20時(shí),歷時(shí)1s,執(zhí)行程序*/{SN--;/*自減運(yùn)算*/WE--;/*自減運(yùn)算*/count=0;/*清零*/if(SN==0||WE==0)/*當(dāng)SN=0或者WE=0時(shí),執(zhí)行程序*/{k++;/*自增運(yùn)算*/if(k>3)/*當(dāng)k>3時(shí),執(zhí)行程序*/k=0;/*清零*/switch(k)/*switch 語(yǔ)句*/{case0:SN=SN_G,WE=SN_G+Y;break;/*南北方向顯示時(shí)間為南北方向綠燈通行時(shí)間,東西方向顯示時(shí)間為南北方向綠燈通行時(shí)間加黃燈閃亮?xí)r間*/case1:SN=Y,WE=Y;break;/*東西南北方向顯示時(shí)間均為黃燈閃亮?xí)r間*/case2:SN=WE_G+Y,WE=WE_G;break;/*南北方向顯示時(shí)間為東西方向綠

溫馨提示

  • 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)論