單片機模擬交通燈系統(tǒng)帶多功能加蜂鳴器含源代碼仿真圖_第1頁
單片機模擬交通燈系統(tǒng)帶多功能加蜂鳴器含源代碼仿真圖_第2頁
單片機模擬交通燈系統(tǒng)帶多功能加蜂鳴器含源代碼仿真圖_第3頁
單片機模擬交通燈系統(tǒng)帶多功能加蜂鳴器含源代碼仿真圖_第4頁
單片機模擬交通燈系統(tǒng)帶多功能加蜂鳴器含源代碼仿真圖_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、單片機課程設(shè)計論文 摘要 本系統(tǒng)由單片機系統(tǒng)、鍵盤、LED 顯示、蜂鳴器、交通燈演示系統(tǒng)組成。系統(tǒng)包括人行道、左轉(zhuǎn)、右轉(zhuǎn)、以及基本的交通燈的功能。系統(tǒng)除基本交通燈功能外,還具有倒計時、時間設(shè)置、緊急情況處理、分時段調(diào)整信號燈的點亮?xí)r間以及根據(jù)具體情況手動控制等功能。 本設(shè)計是單片機控制的交通燈控制系統(tǒng)。單片機即單片微型計算機。由RAM,ROM,CPU構(gòu)成,其集定時、計數(shù)和多種接口與一體的微控制器。它體積小、成本低、功能強,廣泛的應(yīng)用于只能產(chǎn)業(yè)和工業(yè)自動化上。而51系列單片機是各類單片機中最為典型和富有代表性的一種。本設(shè)計的意義在于通過具體控制系統(tǒng)的設(shè)計,掌握微機控制系統(tǒng)設(shè)計的一般方法和處理問題

2、的思路,特別是一些常用的技術(shù)手段。使大家能在實踐教學(xué)環(huán)節(jié)中,積累設(shè)計經(jīng)驗,開拓思維空間,全面提高個人的綜合能力。 紅綠燈控制是智能交通系統(tǒng)的一個重要部分,本文給出了一個用單片機控制的簡易交通紅綠燈自動控制系統(tǒng)。該系統(tǒng)適用于十字路口,并對放行和禁行時間進行倒計時顯示(秒)。 在車輛通行繁忙的十字交叉路口設(shè)置的交通燈控制系統(tǒng),其特點是:道路較窄而車流量較大,主干道,支干道的車輛通行時間不等,同時設(shè)有道路應(yīng)急控制。具體的情況是:在正常的情況下,東西支干道通行時間為20秒,南北主干道通行時間為30秒,每個方向在綠燈轉(zhuǎn)為紅燈時,要求黃燈先亮5秒鐘,才能變換運行車道。并且能夠在人工監(jiān)控狀態(tài)下,如果一道有車

3、而另一道無車,交通燈控制系統(tǒng)能立即讓有車道放行。而且有緊急車輛要求通過時,系統(tǒng)要能禁止普通車輛通行。 關(guān)鍵字:單片機 紅綠燈 AT89C51 Proteus仿真目錄1 概述 1.1課題名稱 3 1.2設(shè)計要求 3 1.3設(shè)計意義 32 系統(tǒng)總體方案及硬件設(shè)計 2.1芯片的選擇與簡單介紹 42.2工作原理 62.3電路原理圖 72.4單片機最小系統(tǒng) 72.5時間顯示電路 82.6交通燈電路 93 軟件設(shè)計3.1整體系統(tǒng)分析 9 3.2相關(guān)參數(shù)計算 10 3.3程序流程圖 104 Proteus軟件仿真 4.1系統(tǒng)仿真電路圖 11 4.2仿真結(jié)果分析 125課程設(shè)計體會 126參考文獻 14附1:

4、元器件清單 15附2:系統(tǒng)原理圖 15附3:程序清單 161 概述1.1課題名稱單片機控制的交通燈控制系統(tǒng)設(shè)計1.2設(shè)計要求1)南北方向(主干道)車道和東西方向(支干道)車道兩條交叉道路上的車輛交替運行,主干道每次通行時間都設(shè)為30秒、支干道每次通行間為20秒,時間可設(shè)置修改;2)在綠燈轉(zhuǎn)為紅燈時,要求黃燈先亮5秒鐘,才能變換運行車道;3)東西方向、南北方向車道除了有紅、黃、綠燈指示外,每一種燈亮的時間都用顯示器進行顯示(采用計時的方法);4)一道有車而另一道無車(實驗時用開關(guān) K0 和 K1 控制),交通燈控制系統(tǒng)能立即讓有車道放行; 5)有緊急車輛要求通過時,系統(tǒng)要能禁止普通車輛通行,A、

5、B道均為紅燈,緊急車由K2 開關(guān)模擬;6)有盲人禁行模式,東西南北紅燈亮?xí)r蜂鳴器響。1.3設(shè)計意義國內(nèi)的交通燈一般設(shè)在十字路門,在醒目位置用紅、綠、黃三種顏色的指示燈。加上一個倒計時的顯示計時器來控制行車。對于一般情況下的安全行車,車輛分流尚能發(fā)揮作用,但根據(jù)實際行車過程中出現(xiàn)的情況,還存在以下缺點:1兩車道的車輛輪流放行時間相同且固定, 在十字路口,經(jīng)常一個車道為主干道,車輛較多,放行時間應(yīng)該長些;另一車道為副干道,車輛較少,放行時間應(yīng)該短些。2沒有考慮緊急車通過時,兩車道應(yīng)采取的措施,臂如,消防車執(zhí)行緊急任務(wù)通過時,兩車道的車都應(yīng)停止,讓緊急車通過。3.沒有考慮盲人過馬路問題,可以加上蜂鳴

6、器使盲人聽到“紅燈”?;趥鹘y(tǒng)交通燈控制系統(tǒng)設(shè)計過于死板,紅綠燈交替是間過于程式化的缺點,智能交通燈控制系統(tǒng)的設(shè)計就更顯示出了它的研究意義,它能根據(jù)道路交通擁護,交叉路口經(jīng)常出現(xiàn)擁堵的情況。利用單片機控制技術(shù)提出了軟件和硬件設(shè)計方案,能夠?qū)崿F(xiàn)道路的最大通行效率。2 系統(tǒng)總體方案及硬件設(shè)計2.1芯片的選擇與簡單介紹圖1主控芯片采用AT89C51單片機(其管腳圖如圖1所示)。單片機,亦稱單片微型計算機。它是把中央處理器(CPU)、數(shù)據(jù)存儲器(RAM)、程序存儲器(ROM)、輸入/輸出端口(I/0)等主要計算機功能部件都集成在一塊集成電路芯片上的微型計算機。計算機的產(chǎn)生加快了人類改造世界的步伐,但是

7、它畢竟體積大。于是,微型計算機(即單片機)在這種情況下誕生了??v觀生活的各個領(lǐng)域,從導(dǎo)彈的導(dǎo)航裝置,到飛機上各種儀表的控制,從計算機的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,到工業(yè)自動化過程的實時控制和數(shù)據(jù)處理,以及我們生活中廣泛使用的各種智能IC卡、電子 寵物等,這些都離不開單片機。單片機以體積小、功能全、性價比等諸多優(yōu)點而獨具特色,在工業(yè)控制、尖端武器、通信設(shè)備、家用電器等嵌入式應(yīng)用領(lǐng)域中獨占鰲頭。如果說C語言程序設(shè)計課程設(shè)計的基礎(chǔ)課,那么單片機以其系統(tǒng)硬件構(gòu)架完整、價格低廉、學(xué)生能動手等特點,成為工科學(xué)生硬件設(shè)計基礎(chǔ)課。MCS-51單片機是指由美國INTEL公司(大名鼎鼎的INTEL)生產(chǎn)的一系列單片機的總

8、稱,該系列其它單片機都是在8051的基礎(chǔ)上進行功能的增、減、改變而來的,所以人們習(xí)慣于用8051來稱呼MCS-51系列單片機。8051單片機包含中央處理器(CPU)、程序存儲器(ROM)、數(shù)據(jù)存儲器(RAM)、定時/計數(shù)器、并行接口、串行接口和中斷系統(tǒng)等幾大單元及數(shù)據(jù)總線、地址總線和控制總線等三大總線,現(xiàn)在我們分別加以說明:1.中央處理器(CPU)中央處理器(CPU)是整個單片機的核心部件,是8位數(shù)據(jù)寬度的處理器,能處理8位二進制數(shù)據(jù)或代碼,CPU負責(zé)控制、指揮和調(diào)度整個單元系統(tǒng)協(xié)調(diào)的工作,完成運算和控制輸入輸出功能等操作。2.數(shù)據(jù)存儲器(RAM)8051內(nèi)部有128個8位用戶數(shù)據(jù)存儲單元和1

9、28個專用寄存器單元,它們是統(tǒng)一編址的,專用寄存器只能用于存放控制指令數(shù)據(jù),用戶只能訪問,而不能用于存放用戶數(shù)據(jù),所以,用戶能使用的RAM只有128個,可存放讀寫的數(shù)據(jù),運算的中間結(jié)果或用戶定義的字型表。3.程序存儲器(內(nèi)部ROM):程序存儲器用于存放程序和固定不變的常數(shù)等。通常采用只讀存儲器,且其又多種類型,在89系列單片機中全部采用閃存。AT89C51內(nèi)部配置了4KB閃存。 3.1.定時/計數(shù)器(ROM): 定時/計數(shù)器用于實現(xiàn)定時和計數(shù)功能。AT89C51共有2個16位定時/計數(shù)器。3.2.并行輸入輸出(I/O)口: 8051共有4組8位I/O口(P0、 P1、P2或P3),用于對外部數(shù)

10、據(jù)的傳輸。每個口都由1個鎖存器和一個驅(qū)動器組成。它們主要用于實現(xiàn)與外部設(shè)備中數(shù)據(jù)的并行輸入與輸出,有些I/O口還有其他功能。4.全雙工串行口:A89C51內(nèi)置一個全雙工串行通信口,用于與其它設(shè)備間的串行數(shù)據(jù)傳送,該串行口既可以用作異步通信收發(fā)器,也可以當(dāng)同步移位器使用。5.時鐘電路:時鐘電路的作用是產(chǎn)生單片機工作所需要的時鐘脈沖序列。6.中斷系統(tǒng):中斷系統(tǒng)的作用主要是對外部或內(nèi)部的終端請求進行管理與處理。AT89C51共有5個中斷源,其中又2個外部中斷源和3個內(nèi)部中斷源。7.定時/計數(shù)器8051有兩個16位的可編程定時/計數(shù)器,以實現(xiàn)定時或計數(shù)產(chǎn)生中斷用于控制程序轉(zhuǎn)向。電 源交通燈AT89C5

11、1交通燈時間顯示部分時鐘電路復(fù) 位電 路2.2工作原理由軟件設(shè)置交通燈的初始時間,南北方向通行30秒,東西方向通行20秒,數(shù)碼管采用動態(tài)顯示,P0口送字形碼,P2口送字位選通信號,通過單片機的P1口控制各種信號燈的燃亮與熄滅。采用中斷方式實現(xiàn)按鍵的功能。東西方向 EW G Y R 緊急轉(zhuǎn)換 車輛檢測 系統(tǒng)控制 電路南北方向 NS G Y R2.3電路原理圖圖32.4單片機最小系統(tǒng)圖4單片機最小系統(tǒng)以80SC51為核心,外加時鐘和復(fù)位電路,電路結(jié)構(gòu)簡單,抗干擾能力強,成本相對較低,非常符合本設(shè)計的所有要求。89C51單片機系列是MCS-51系列的基礎(chǔ)上發(fā)展起來的,是當(dāng)前8位單片機的典型代表,采用

12、CHMOS工藝,即互補金屬氧化物的HMOS工藝, CHMOS是CMOS和HMOS的結(jié)合,具有HMOS高速度和高密度的特點,還具有CMOS低功耗的特點。時鐘電路在單片機的外部通過XTAL1,XTAL2這兩個引腳跨接晶體振蕩器和微調(diào)電容,構(gòu)成穩(wěn)定的自激振蕩器.本系統(tǒng)采用的為12MHz的晶振,一個機器周期為1us,C2,C3為30pF。復(fù)位電路分為上電自動復(fù)位和按鍵手動復(fù)位,RST引腳是復(fù)位信號的輸入端,復(fù)位信號是高電平有效.上電自動復(fù)位通過電容C1和電阻R4來實現(xiàn),按鍵手動復(fù)位是圖中復(fù)位鍵來實現(xiàn)的。2.5時間顯示電路圖5因為系統(tǒng)要求南北和東西方向的信號燈時間不一樣,所以就利用單片機的P0口送出數(shù)據(jù)

13、的段碼,位選信號用P2口送出,用動態(tài)掃描的方法顯示東西、南北的倒計時間(如圖5所示)。數(shù)碼管使用共陰數(shù)碼管,需要在片選端加三極管放大電流和段選端加驅(qū)動以提供足夠大的電流來驅(qū)動數(shù)碼管,數(shù)碼管的每段的電流是約10毫安。2.6交通燈電路本設(shè)計利用單片機的p1口來驅(qū)動和控制各種信號燈的燃亮和燃亮?xí)r間,在實際中,交通燈的信號燈需要用高電壓控制,在這里我們只是模擬一下它的控制信號,所以我們就只用單片機的信號引腳直接來控制發(fā)光二極管(如圖6所示),實際電路中在東西、南北紅燈處還各并聯(lián)了一個蜂鳴器,蜂鳴器也需要加三極管放大電流,才能正常工作。圖63 軟件設(shè)計3.1整體系統(tǒng)分析東西綠燈南北紅燈東西黃燈閃南北紅燈

14、亮東西紅燈南北綠燈東西紅燈亮南北黃燈閃總體流程圖(實現(xiàn)各種狀態(tài)間的轉(zhuǎn)換):圖7圖83.2相關(guān)參數(shù)計算 T0的計數(shù)初值:X=216-12*50*1000/12=15536=3CB0H 3.3程序流程圖圖94 Proteus軟件仿真4.1系統(tǒng)仿真電路圖1.交通燈控制系統(tǒng)正常運行時仿真圖(見圖10)。圖102.交通燈南北方向綠燈向紅燈轉(zhuǎn)變,黃燈閃爍時仿真圖(見圖11)。圖114.2仿真結(jié)果分析仿真實驗實現(xiàn)南北方向車道和東西方向車道兩條交叉道路的車輛交替運行,南北方向(主干道)每次通行時間設(shè)為30秒、東西方向通行時間設(shè)為20秒,時間可以在程序中修改。同時能夠?qū)崿F(xiàn)紅燈、黃燈、綠燈狀態(tài)轉(zhuǎn)換,紅綠燈轉(zhuǎn)換時間

15、為5秒,轉(zhuǎn)黃期間黃燈亮??梢詼?zhǔn)確顯示每個狀態(tài)所剩余的時間,按下禁行普通車輛鍵,東西南北方向都亮紅燈;按下南北放行鍵,南北綠燈亮,東西紅燈亮;按下東西放行鍵,東西綠燈亮,南北紅燈亮;任何時候按下返回鍵,此系統(tǒng)都將回到初始狀態(tài),當(dāng)緊急狀況出現(xiàn)時,按下緊急開關(guān),可實現(xiàn)主干道和支干道全部禁止通行,允許緊急車輛安全通行,實現(xiàn)了課程設(shè)計的要求。5課程設(shè)計心得體會這次單片機課程設(shè)計,我們選的模擬交通燈系統(tǒng)這個題目,在這兩個星期的時間里我們?nèi)齻€人合作成功的完成了我們的作品 我是我們組的組長,因為之前有過一定的實踐經(jīng)驗,所以在完成作品過程中負責(zé)查找資料、指導(dǎo)協(xié)助兩位組員完我們的作品。我覺得做單片機課程設(shè)計是十分

16、有意義的,在已度過的大學(xué)時間里,我們大多數(shù)接觸的是專業(yè)課。我們在課堂上掌握的僅僅是專業(yè)課的理論知識,如何去鍛煉我們的實踐能力?如何把我們所學(xué)的專業(yè)基礎(chǔ)課理論知識運用到實踐中去呢?我想做類似的課程設(shè)計就為我們提供了良好的實踐平臺。 這次單片機課程設(shè)計我們歷時兩個星期,兩個星期里我們最開始選題、然后做仿真、焊電路板、再改正我們焊接和程序里的錯誤之處,最后作品成功完成,最后成功的那一刻使我們最開心的時候,我們的辛苦沒有白費,作品也得到了老師的肯定。這次課設(shè)中遇到的主要問題是共陰極數(shù)碼管太暗,我們一開始給數(shù)碼管加上三極管后覺得應(yīng)該可以了,可是最后還是不夠亮,最后請教了同學(xué)和老師才知道要想變亮應(yīng)該再給數(shù)

17、碼管段選加驅(qū)動芯片,加了驅(qū)動后數(shù)碼管果然亮了,這讓我們非常開心! 這次課程設(shè)計查閱了大量的資料,我更加全面的掌握了單片機知識,也學(xué)會了仿真,熟悉了用protle畫圖,掌握了kile軟件的用法,掌握了調(diào)試程序的方法,我想這些能力都是我們作為一名自動化專業(yè)學(xué)生必須掌握的。發(fā)現(xiàn)、提出、分析、解決問題和實踐能力的提高都會受益于我在以后的學(xué)習(xí)、工作和生活中。設(shè)計過程,好比是我們?nèi)祟惓砷L的歷程,常有一些不如意,難免會遇到各種各樣的問題。在最后我們也得到了老師的建議,謝謝老師對我們的指點?。ㄍ鹾D荩﹥芍艿臅r間匆匆而過,由于各種考試、試驗,我們的單片機課程設(shè)計集中在了這最后的兩周,總的來說時間有點倉促,不過經(jīng)

18、過兩周的努力工作,終于完成了這次的單片機課程設(shè)計。我們的這次課題是基于51單片機設(shè)計交通燈,我們這組三個人,明確了自己的分工,我負責(zé)程序這塊,其他兩個負責(zé)焊接和實驗報告的部分。在試驗過程中,我們遇到了一些難題,比如在仿真環(huán)節(jié)上,焊接電路上,我們都遇到了不小的問題,最嚴重的一個就是數(shù)碼管的亮度問題,我們向其他同學(xué)請教,向老師請教,在這個問題上花費了兩天多的時間,當(dāng)我們最后一次接上電路時,當(dāng)我們看到數(shù)碼管亮起的時候,我們都興奮的跳了起來,因為我們兩天多時間上都花在這上面,線路都焊接了n次,焊接好電路,把我們設(shè)計好的程序加載上去的時候,所有功能都按我們預(yù)期的實現(xiàn)了,看到我們的勞動成果時,那種喜悅,那

19、種成就感,是無法言語的。當(dāng)今天拿著我們的成果讓老師驗收時,老師給我們這組提了一些更智能化的建議,還夸獎了我們這組做的真的挺不錯,還建議我們?nèi)⒓颖荣?,頓時,我們的努力沒有得到白費,自豪之情油然而生。不過,我們不會驕傲,會向更遠處走去。 通過這次實習(xí),我學(xué)會了很多知識,學(xué)會了一些畫圖軟件和仿真軟件,對單片機原理、各條指令、各個端口功能有了更進一步的了解和鞏固。在試驗過程中,我學(xué)會了克制、冷靜。這次的課程設(shè)計讓我受益匪淺。(葉駿)經(jīng)過這次課程設(shè)計實踐,我收獲頗多。在這次實踐中我負責(zé)焊接的任務(wù),其他兩個組員則分別負責(zé)程序和報告的任務(wù),但我們不是單獨工作,而是相互協(xié)作相互幫助,達到了共同完成此次課程設(shè)

20、計實踐的目的,并且我們完成得很出色。這是我們每個組員都感到驕傲和自豪的地方。 在此次課程設(shè)計實踐中,我主要負責(zé)焊接部分。經(jīng)歷過焊接實踐的我一開始也認為它只是單純的焊接,不需要任何知識和經(jīng)驗的積累,但實際我顯然錯了。這就使得我開始的焊接進程有些困難。但經(jīng)過不斷的實踐和經(jīng)驗積累,我主動去了解和掌握相關(guān)焊接線路的結(jié)構(gòu)、程序和知識,漸漸地焊接進程不斷加速和熟練,隨后的焊接過程也變的游刃有余。很快我的焊接任務(wù)變得暢通無阻,一口氣完成了。 在焊接過程中會出現(xiàn)一些細小的問題,但就是這些細小紛繁的問題就有可能導(dǎo)致最終的結(jié)果與理想的相偏差很大。比如導(dǎo)線的虛焊,觸點的短接等等。這些我在焊接過程中都必須注意。一旦焊

21、成成品,檢查錯誤是很難的一件事,與其一一檢查錯誤還不如在焊接過程中多注意,仔細焊接。在焊接過程中,排版電子器件、元件也是一步很重要的過程,排版的清晰程度反映著焊接思路的清晰程度,如果排版紛亂就會導(dǎo)致焊接思路的混亂,最終使得焊接線路錯誤多出影響焊接進程,最終拖延整體項目的進程。所以在焊接之初,我花費了較多時間在排版上,但這反而使得我焊接的效率更大的提高了,和其他小組相比,這一點我感到很自信。經(jīng)過這次課程設(shè)計實踐,我感覺收獲匪淺,不僅在焊接這部分,而且在程序的編排和試驗的部分也有很大受益。同時也十分感謝老師的指導(dǎo)和監(jiān)督,才使得我們的項目得以順利完成。(岳超)參考文獻1柴鈺 單片機原理及應(yīng)用 M.西

22、安:西安電子科技大學(xué)出版社20092余發(fā)山 王福忠 單片機原理及應(yīng)用技術(shù) M.徐州:中國礦業(yè)大學(xué)出版社 2008.3吳黎明 單片機原理及應(yīng)用技術(shù)M.北京:科學(xué)出版社 2003.4劉樂善 微型計算機接口技術(shù)及應(yīng)用M.北京: 華中科技大學(xué)出版社 2004.5 李伯成.基于MCS-51單片機的嵌入式系統(tǒng)的設(shè)計M.北京:電子工業(yè)出版社,2004.6 吳黎明, 王桂棠, 洪添勝, 等. 單片機原理及應(yīng)用技術(shù) M . 北京: 科學(xué)出版社,2005.附錄一 元件清單STC89C52單片機1個按鍵5個紅黃綠發(fā)光二級管各4個排針若干蜂鳴器2個驅(qū)動芯片74HC2451個共陰極數(shù)碼管2個三極管85506個電阻若干3

23、2.768KHZ晶振1個附錄二 系統(tǒng)原理圖附錄三 程序清單/*#include*/ #include #define uchar unsigned char /*定義字符串類型為無符號型*/uchar code a10=0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F;uchar code b4=0x0D,0x0E,0x07,0x0B; /*P2口,低有效*/uchar code c4=0xDE,0xDD,0xF3,0xEB; /*P1口,低有效*/char SN=25,WE=30; char SN_G=25,WE_G=15,Y=5; ucha

24、r i,k=0,count=0; void delay(uchar t);/*定義函數(shù)*/void light();/*定義函數(shù)*/void led(); /*定義函數(shù)*/sbit K0=P37;/*開關(guān)K0接P37管腳*/sbit K1=P36;/*開關(guān)K1接P36管腳*/sbit K2=P33;/*開關(guān)K2接P33管腳*/sbit K3=P35;/*開關(guān)K3接P35管腳*/sbit K4=P32;/*開關(guān)K4接P32管腳*/*程序初始化*/void init(void) /*12MHz */ TMOD=0x01; /*計數(shù)器用模式1,為16位計數(shù)器*/ TH1=(65536-50000)/

25、256; /*0x3C*/ TL1=(65536-50000)%256; /*0xB0*/*計50000個數(shù),用時50ms*/ IT0=1;/*外部中斷0為邊沿觸發(fā)方式*/ ET0=1;/*允許T0中斷*/ TR0=1;/*啟動計數(shù)器*/ EA=1;/*CPU開放總中斷*/ EX0=1;/*允許外部中斷0中斷,即允許響應(yīng)端口P32(K4)中斷*/ EX1=1;/*允許外部中斷1中斷,即允許響應(yīng)端口P33(K2)中斷*/*中斷0處理程序*/void int0(void) interrupt 0 EA=0;/*CPU禁止響應(yīng)一切中斷*/ P1=0xDB,P0=a0;/*東西南北方向均紅燈亮,P0口

26、輸出0*/ for(;)/*無條件循環(huán)*/ P2=b0,P0=a(SN_G+Y)%10;/*南北方向數(shù)碼管顯示可通行時間的個位*/ delay(5); /*延時*/ P2=b1,P0=a(SN_G+Y)/10;/*南北方向數(shù)碼管顯示可通行時間的十位*/ delay(5); /*延時*/P2=b2,P0=a(WE_G+Y)%10;/*東西方向數(shù)碼管顯示可通行時間的個位*/ delay(5); /*延時*/ P2=b3,P0=a(WE_G+Y)/10;/*東西方向數(shù)碼管顯示可通行時間的十位*/ delay(5); /*延時*/ /*設(shè)置南北方向通行時間*/ if(K0=0) /*P37=0*/ d

27、elay(10);/*延時,把抖動的時間拋掉*/ if(K0=0) while(!K0)/*當(dāng)松開K0開關(guān)時,跳出空循環(huán),執(zhí)行后面的程序*/ SN_G+;/*南北方向綠燈時間+1*/ if(SN_G=100) SN_G=0;/*由于使用的是兩位數(shù)碼管,當(dāng)南北方向綠燈時間加到100后清零*/ /*設(shè)置東西方向通行時間*/ if(K1=0) /*P36=0*/ delay(10);/*延時,把抖動的時間拋掉*/ if(K1=0) while(!K1)/*當(dāng)松開K1開關(guān)時,跳出空循環(huán),執(zhí)行后面的程序*/ WE_G+;/*東西方向綠燈時間+1*/ if(WE_G=100) WE_G=0;/*由于使用的

28、是兩位數(shù)碼管,當(dāng)東西方向綠燈時間加到100后清零*/ /*返回*/ if(K3=0) /*P35=0*/ delay(10);/*延時,把抖動的時間拋掉*/ if(K3=0) while(!K3)/*當(dāng)松開K3開關(guān)時,跳出空循環(huán),執(zhí)行后面的程序*/ count=0;/*清零*/ k=0;/*南北方向通車,東西方向不通車*/ SN=SN_G,WE=SN_G+Y;/*南北方向顯示時間為南北方向綠燈通行時間,東西方向顯示時間為南北方向綠燈通行時間加黃燈閃亮?xí)r間*/ light();/*調(diào)用交通燈函數(shù)*/ led(); /*調(diào)用數(shù)碼管函數(shù)*/ EA=1; /*CPU開放總中斷*/ break;/*跳出

29、*/ /*中斷1處理程序*/void int1(void) interrupt 2P1=0xDB,P0=a0;/*東西南北方向均紅燈亮,P0口輸出0*/ EA=0;/*CPU禁止響應(yīng)一切中斷*/TR0=!TR0;/*計數(shù)器停止工作*/ for(;)/*無條件循環(huán)*/ /*數(shù)碼管掃描程序,*/ P2=b0;/*顯示南北方向個位*/ delay(5);/*延時*/ P2=b1;/*顯示南北方向十位*/ delay(5);/*延時*/ P2=b2;/*顯示東西方向個位*/ delay(5);/*延時*/ P2=b3;/*顯示東西方向十位*/ delay(5);/*延時*/ /*返回*/ if(K3=

30、0) /*P35=0*/ delay(10);/*延時,把抖動的時間拋掉*/ if(K3=0) while(!K3)/*當(dāng)松開K3開關(guān)時,跳出空循環(huán),執(zhí)行后面的程序*/ EA=1;/*CPU開放總中斷*/TR0=!TR0;/*啟動計數(shù)器*/ break;/*跳出*/ /*鍵盤程序*/void key()/*南北有車而東西無車*/ if(K0=0) /*K0=0*/ delay(10);/*延時,把抖動的時間拋掉*/ if(K0=0) while(!K0)/*當(dāng)松開K0開關(guān)時,跳出循環(huán),執(zhí)行后面的程序*/ light();/*調(diào)用交通燈函數(shù)*/led(); /*調(diào)用數(shù)碼管函數(shù)*/ count=0

31、;/*清零*/ k=0;/*南北方向通車,東西方向不通車*/ SN=SN_G,WE=SN_G+Y;/*南北方向顯示時間為南北方向綠燈通行時間,東西方向顯示時間為南北方向綠燈通行時間加黃燈閃亮?xí)r間*/ light();/*調(diào)用交通燈函數(shù)*/ led(); /*調(diào)用數(shù)碼管函數(shù)*/ /*南北無車而東西有車*/ if(K1=0) /*K1=0*/ delay(10);/*延時,把抖動的時間拋掉*/ if(K1=0) while(!K1)/*當(dāng)松開K1開關(guān)時,跳出循環(huán),執(zhí)行后面的程序*/ light();/*調(diào)用交通燈函數(shù)*/led(); /*調(diào)用數(shù)碼管函數(shù)*/ count=0;/*清零*/ k=2;/*南北方向不通車,東西方向通車*/ SN=WE_G+Y,WE=WE_G;/*南北方向顯示時間為東西方向綠燈通行時間加黃燈閃亮?xí)r間,東西方向顯示時間為東西方向綠燈通行時間*/ light();/*調(diào)用交通燈函數(shù)*/ led(); /*調(diào)用數(shù)碼管函數(shù)*/ /*定時函數(shù)*/void time1(void) interrupt 1TH0=0x3c;TL0=0xb0;/*計50000個數(shù),用時50ms*/count+; /*自增運算*/if(count=20)/*當(dāng)count大于或等于20時,歷時1s,執(zhí)行程序*/ SN-;/*自減運算*/

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論