畢業(yè)設計(論文)基于單片機的交通信號燈模擬控制系統(tǒng)_第1頁
畢業(yè)設計(論文)基于單片機的交通信號燈模擬控制系統(tǒng)_第2頁
畢業(yè)設計(論文)基于單片機的交通信號燈模擬控制系統(tǒng)_第3頁
畢業(yè)設計(論文)基于單片機的交通信號燈模擬控制系統(tǒng)_第4頁
畢業(yè)設計(論文)基于單片機的交通信號燈模擬控制系統(tǒng)_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、摘 要本系統(tǒng)由at89c51單片機、鍵盤、led顯示、交通燈演示系統(tǒng)組成。系統(tǒng)包括人行道、左轉(zhuǎn)、右轉(zhuǎn)、以及基本的交通信號燈的功能。系統(tǒng)除基本交通信號燈功能外,還具有倒計時、時間設置、緊急情況處理、分時段調(diào)整信號燈的點亮時間以及根據(jù)具體情況手動控制等功能。隨著社會經(jīng)濟的發(fā)展,城市交通問題越來越引起人們的關注。人、車、路三者關系的協(xié)調(diào),已成為交通管理部門需要解決的重要問題之一。城市交通控制系統(tǒng)是用于城市交通數(shù)據(jù)監(jiān)測、交通信號燈控制與交通疏導的計算機綜合管理系統(tǒng),它是現(xiàn)代城市交通監(jiān)控指揮系統(tǒng)中最重要的組成部分。關鍵詞at89c51;交通信號燈;控制器目錄摘 要第章緒論第章方案設計與論證第章系統(tǒng)硬件設

2、計3.1 總體設計3.單片機最小系統(tǒng)3.3 顯示及其驅(qū)動模塊 3.3.1 鍵盤與狀態(tài)顯示功能 3.3.2 倒計時計數(shù)功能第4章 系統(tǒng)軟件設計104.1 軟件總體設計104.2 軟件主要子程序設計11 4.2.1 緊急狀態(tài)子程序設計11 4.4.2 設置狀態(tài)子程序設計11 4.2.3 鍵盤模塊子程序設計12第5章 系統(tǒng)調(diào)試與測試13 5.1 系統(tǒng)操作說明13 5.2 調(diào)試13第6章 系統(tǒng)可靠性、經(jīng)濟性、實用性分析15設計總結16致 謝18參考文獻19附錄1 交通燈的總體設計原理圖20附錄2 pcb板圖21附錄3 程序清單22附錄4 元件清單28第章緒論當今,紅綠燈安裝在各個道口上,已經(jīng)成為疏導交

3、通車輛最常見和最有效的手段。但這一技術在19世紀就已出現(xiàn)了。1858年,在英國倫敦主要街頭安裝了以燃煤氣為光源的紅、藍兩色的機械扳手式信號燈,用以指揮馬車通行。這是世界上最早的交通信號燈。1868年,英國機械工程師納伊特在倫敦威斯敏斯特區(qū)的議會大廈前的廣場上,安裝了世界上最早的煤氣紅綠燈。它由紅綠兩種旋轉(zhuǎn)式方形玻璃提燈組成,紅色表示“停止”,綠色表示“注意”。1869年1月2日,煤氣燈爆炸,造成人員傷亡,遂被取消。電氣啟動的紅綠燈出現(xiàn)在美國,這種紅綠燈由紅綠黃三色圓形的投光器組成,1914年開始安裝于紐約市5號大街的一座高塔上。紅燈亮表示“停止”,綠燈亮表示“通行”。1918年,又出現(xiàn)了帶控制

4、的紅綠燈和紅外線紅綠燈。帶控制的紅綠燈,一種是把壓力探測器安在地下,另一種是用擴音器來啟動紅綠燈。信號燈的出現(xiàn),使交通得以有效管制,對于疏導交通流量、提高道路通行能力,減少交通事故有明顯效果。1968年,聯(lián)合國道路交通和道路標志信號協(xié)定對各種信號燈的含義作了規(guī)定。綠燈是通行信號,面對綠燈的車輛可以直行,左轉(zhuǎn)彎和右轉(zhuǎn)彎,除非另一種標志禁止某一種轉(zhuǎn)向。左右轉(zhuǎn)彎車輛都必須讓合法地正在路口內(nèi)行駛的車輛和過人行橫道的行人優(yōu)先通行。紅燈是禁行信號,面對紅燈的車輛必須在交叉路口的停車線后停車。黃燈是警告信號,面對黃燈的車輛不能越過停車線,但車輛已十分接近停車線而不能安全停車時可以進入交叉路口?;趩纹瑱C構成

5、的城市交通信號燈控制系統(tǒng),可以節(jié)約人力資源和降低系統(tǒng)成本,從而有效的提高工作效率。但利用單片機控制交通信號燈涉及到一些現(xiàn)實問題,諸如信號的驅(qū)動、車輛到達的感知等。為此,我們采用模擬方式進行說明。所謂模擬,就是用綠、黃、紅色三只共兩組發(fā)光二極管代替交通信號燈。目前,城市交通信號燈控制系統(tǒng)應用廣泛,因此,開發(fā)這種系統(tǒng)顯得非常實用。第2章方案設計與論證本設計以單片機為核心,以led數(shù)碼管作為倒計時指示,根據(jù)設計的要求我們考慮了各功能模塊的幾種設計方案,以求最佳方案,實現(xiàn)實時顯示系統(tǒng)各種狀態(tài),系統(tǒng)還增設了根據(jù)交通擁擠情況可分別設置主干道和次干道的通行時間,以提高效率,緩減交通擁擠。系統(tǒng)總體設計框圖如圖

6、1-1所示。單片機最小系統(tǒng)倒計時顯示時間交通燈鍵盤與狀態(tài)顯示圖1-1系統(tǒng)總體設計框圖1電源提供方案為使模塊穩(wěn)定工作,須有可靠電源。本次設計考慮了兩種電源方案:方案一:采用獨立的穩(wěn)壓電源。此方案的優(yōu)點是穩(wěn)定可靠,且有各種成熟電路可供選用;缺點是各模塊都采用獨立電源,會使系統(tǒng)復雜,且可能影響電路電平。方案二:采用單片機控制模塊提供電源。該方案的優(yōu)點是系統(tǒng)簡明扼要,節(jié)約成本;缺點是輸出功率不高。綜上所述,選擇第二種方案。2顯示界面方案該系統(tǒng)要求完成倒計時功能。基于上述原因,本次設計考慮了兩種方案:方案一:完全采用點陣式led顯示。這種方案功能強大,可方便的顯示各種英文字符,漢字,圖形等,但實現(xiàn)復雜,

7、且須完成大量的軟件工作。方案二:完全采用數(shù)碼管顯示。這種方案優(yōu)點是實現(xiàn)簡單,可以完成倒計時功能。缺點是功能較少,只能顯示有限的符號和數(shù)碼字符。根據(jù)本設計的要求,方案二已經(jīng)滿足了要求,所以本次設計采用方案二以實現(xiàn)系統(tǒng)的顯示功能。3輸入方案這里同樣討論了兩種方案:方案一:采用8155擴展i/o口、鍵盤及顯示等。該方案的優(yōu)點是使用靈活可編程,并且有ram及計數(shù)器。若用該方案,可提供較多i/o口,但操作起來稍顯復雜。方案二:直接在i/o口線上接上按鍵開關。因為設計時精簡和優(yōu)化了電路,所以剩余的端口資源還比較多,我們使用六個按鍵,分別是p16、p17、p27、p30、p32、p33,依次完成倒計時加1、

8、倒計時減1、調(diào)完確認、調(diào)時方向切換、南北強行和東西強行等功能。由于該系統(tǒng)是對交通燈及數(shù)碼管的控制,只需用單片機本身的i/o口就可實現(xiàn),且本身的計數(shù)器及ram已經(jīng)夠用,故選擇方案二。第3章系統(tǒng)硬件設計硬件設計是整個系統(tǒng)的基礎,要考慮的方方面面很多,除了實現(xiàn)交通燈基本功能以外,主要還要考慮如下幾個因素:系統(tǒng)穩(wěn)定度;器件的通用性或易選購性;軟件編程的易實現(xiàn)性;系統(tǒng)其它功能及性能指標;因此硬件設計至關重要。現(xiàn)從各功能模塊的實現(xiàn)逐個進行分析探討。3.1總體設計本設計以單片機為控制核心,采用模塊化設計,共分以下幾個功能模塊:單片機控制系統(tǒng)、鍵盤及狀態(tài)顯示、倒計時模塊等。單片機作為整個硬件系統(tǒng)的核心,它既是

9、協(xié)調(diào)整機工作的控制器,又是數(shù)據(jù)處理器。它由單片機振蕩電路、復位電路等組成。鍵盤及狀態(tài)顯示,開關鍵盤輸入交通燈初始時間,通過單片機p1輸入到系統(tǒng)。系統(tǒng)采用雙數(shù)碼管倒計時計數(shù)功能,最大顯示數(shù)字99。友好的人機界面、靈活的控制方式、優(yōu)化的物理結構是本設計的亮點。3.2單片機最小系統(tǒng)1振蕩電路at89c51是內(nèi)部具有振蕩電路的單片機,只需在18腳和19腳之間接上石英晶體,給單片機加工作所需直流電源,振蕩器就開始振蕩起來。振蕩電路就為單片機工作提供了所需要的時鐘脈沖信號,是單片機的內(nèi)部電路、單片機的內(nèi)部程序(若有)開始工作。振蕩電路不工作,整個單片機電路都不能正常工作。at89c51常外接6mhz、12

10、mhz的石英晶體,18腳和19腳分別對地接了一個20pf的電容,目的是防止單片機自激。若從18腳輸入外部時鐘脈沖,則19腳接地。2復位電路復位電路就是在rst端(9腳)外接的一個電路,目的是使單片機上的電開始工作時,內(nèi)部電路從初始狀態(tài)開始工作,或者在工作中人為讓單片機重新從初始狀態(tài)開始工作。在時鐘工作的情況下,只要復位引腳高電平保持在兩個機器周期以上的時間,at89c51便能完成系統(tǒng)重置的各項工作,使得內(nèi)部特殊功能寄存器的內(nèi)容均被設置成已知狀態(tài),并且從地址0000h處讀入程序代碼而執(zhí)行程序。單片機最小系統(tǒng)電路如圖3-1所示。圖3-1單片機最小系統(tǒng)電路原理圖3.3顯示及其驅(qū)動模塊3.3.1鍵盤與

11、狀態(tài)顯示功能鍵盤在本設計中用于緊急情況的手動控制裝置,以及定時時間的設置等功能,起到了不可缺少的重要作用。當定時器定時為1秒時程序跳轉(zhuǎn)到時間顯示及信號燈顯示子程序,它將依次顯示信號燈時間,同時一直顯示信號燈的顏色,這時在返回定時子程序定時1秒,在顯示黃燈的下一個時間,這樣依次把所有的時間顯示完后在重新給時間計數(shù)器賦初值,重新進入循環(huán)。鍵盤電路如圖3-2所示。圖3-2鍵盤電路3.3.2倒計時計數(shù)功能本系統(tǒng)使用數(shù)碼管完成倒計時顯示功能。以南北方向為例,數(shù)碼管顯示的數(shù)值從綠燈的設置時間最大值往下減,每秒鐘減1,一直減到1。然后又從紅燈的設置時間最大值往下減,一直減到1。接下來又顯示綠燈時間,如此循環(huán)

12、。系統(tǒng)共有4個兩位的led數(shù)碼管,分別放置在模擬交通燈控制板上的四個路口。因為四個方向的數(shù)碼管應該顯示同樣的內(nèi)容,所以我們可以把它們同樣對待。也就是說各個方向的數(shù)碼管個位(把數(shù)碼管第二位定義為個位,第一位定義為十位)用一根信號線控制,十位用另一根信號線控制。這里采用動態(tài)顯示。led數(shù)碼管如圖3-3所示。圖3-3led數(shù)碼管第4章系統(tǒng)軟件設計軟件在硬件平臺上構筑,完成各部分硬件的控制和協(xié)調(diào)。系統(tǒng)功能是由軟硬件共同實現(xiàn)的,由于軟件的可伸縮性,最終實現(xiàn)的系統(tǒng)功能可強可弱,差別可能很大。因此,軟件是本系統(tǒng)的靈魂。軟件采用模塊化設計方法,不僅易于編程和調(diào)試,也可減小軟件故障率和提高軟件的可靠性。同時,對

13、軟件進行全面測試也是檢驗錯誤排除故障的重要手段。這里我們選用了移值性好、結構清晰、能進行復雜運算的c語言來實現(xiàn)編程。4.1軟件總體設計軟件總體設計主要完成各部分的軟件控制和協(xié)調(diào)。本系統(tǒng)主程序模塊主要完成的工作是對系統(tǒng)的初始化,發(fā)送顯示數(shù)據(jù),同時對鍵盤進行掃描,等待外部中斷,以及根據(jù)所需要的功能進行相應的操作。其流程圖如圖4-1所示。圖4-1軟件總體流程圖4.2軟件主要子程序設計4.2.1緊急狀態(tài)子程序設計1在緊急狀態(tài)下,只有緊急狀態(tài)手動控制按鍵才可以使所有的led都被置為紅燈,車輛禁行、行人通行。緊急情況結束后再轉(zhuǎn)成自動狀態(tài)。程序流程如圖4-2所示。圖4-2緊急狀態(tài)子程序4.2.2設置狀態(tài)子程

14、序設計設置狀態(tài)子程序如圖4-3所示。圖4-3設置狀態(tài)子程序在設置狀態(tài),按下按鍵1(p16)開始設置南北的紅燈時間,按下按鍵2(p17)設置南北的綠燈時間,按下按鍵3(p27)返回正常運行狀態(tài)。紅燈和綠燈的時間最大可以設為99,超出99的時候會從50開始重新計數(shù)。它包含倒計時調(diào)整和緊急狀態(tài)兩個狀態(tài)。主程序中放了一個按鍵的判斷指令,當有按鍵按下的時候,程序就自動的跳轉(zhuǎn)到按鍵子程序處理。當檢測到按鍵2(p17)鍵按下的時候就自動返回到主程序。當出現(xiàn)緊急的情況的時候,按下按鍵3(p27)就切換到緊急狀態(tài),當緊急事件處理完畢的時候,按下按鍵2(p17),就可以返回正常狀態(tài)。4.2.3鍵盤模塊子程序設計鍵

15、盤是人機進行交互的重要接口之一。用戶通過按鍵對儀器下達命令,儀器對按鍵譯碼獲得相應的鍵值,并執(zhí)行相應的命令程序。鍵盤部分的軟件實現(xiàn)主要是指對鍵盤管理進行編程,從而成功地讀取鍵盤值,實現(xiàn)相應的功能。鍵盤實現(xiàn)的程序流程圖如圖4-4所示。開始初始化設定初值紅燈倒計時倒計時完畢黃燈閃3s綠燈倒計時倒計時完畢黃燈閃3s結束圖4-4鍵盤實現(xiàn)的程序流程圖第5章系統(tǒng)調(diào)試與測試5.1系統(tǒng)操作說明本設計采用的是開關鍵盤,共6個鍵。鍵盤用來輸入倒計時時間數(shù)字信息;功能菜單選擇鍵則用于主次干道通行時間分別設置、確定、取消(即調(diào)時方向的切換、倒計時的加減、東西強行、南北強行,調(diào)完確認)等功能。系統(tǒng)分為兩個狀態(tài):設置狀態(tài)

16、和顯示狀態(tài)。利用鍵盤可以進行兩個狀態(tài)間的切換;開機時,系統(tǒng)為顯示狀態(tài),此時顯示四個路口數(shù)碼管從默認的倒計時時間開始倒計時;顯示狀態(tài)時,交通燈模組的四個led數(shù)碼管進行倒計時;顯示過程中按鍵可以重新進入設置狀態(tài)。5.2調(diào)試根據(jù)電路功能逐級進行:1通行方式功能調(diào)試:對行人和行車方向指示燈亮度和驅(qū)動電路調(diào)試;2倒計時功能調(diào)試:數(shù)碼管亮度調(diào)試;3緊急情況手動控制功能調(diào)試:包括按鍵功能的調(diào)試。調(diào)試結果如下圖所示。第6章 系統(tǒng)可靠性、經(jīng)濟性、實用性分析可靠性分析采用at89sc51系列單片機為主控器,對整個電路進行控制,采用紅、黃、綠led模擬交通信號燈進行顯示,數(shù)碼顯示部分采用數(shù)碼管顯示通行時間,從而達

17、到交通自動控制的目的。該設計方案的優(yōu)點是系統(tǒng)簡明扼要,工作穩(wěn)定。經(jīng)濟性分析選用價廉、性能可靠的at89c51作為主控芯片,并采用了資源共享(中斷)技術,使外圍組成元件減少,從而有效地降低了系統(tǒng)的成本。例如在安裝、調(diào)試完成后,大體價格為100元左右。實用性分析出現(xiàn)緊急情況時系統(tǒng)可設置成手動控制,緊急情況結束后再轉(zhuǎn)成自動,控制十分靈活,友好的人機界面、有效的控制方式、優(yōu)化的物理結構是本設計的亮點設計總結通過本次課程設計,我深深的體會到了作為一個硬件工程師的艱辛。即使做一個小小的項目,都需要做這么多細致入微的工作,必須考慮到問題的任何一個細節(jié),否則最后也將是功敗垂成。 原理圖設計: 當我們選取了這樣

18、一個題目,我們就開始收集相關的各種資料,對題目有個大致的了解,規(guī)劃一下設計的任務將要完成哪些功能。然后就具體的每一項功能應該怎樣具體的設計,例如用什么方法完成這一功能,這種想法是否合理,比較使用哪個芯片來完成這項功能。經(jīng)過長時間的查閱資料、思索、推敲,最后定出了這次設計的原理圖。 pcb板設計:前段時間我又重新復習了有關 protel軟件使用方面的知識,研究應該怎樣生成正確的網(wǎng)絡表,pcb板的布局,布線,制板等工作。剛開始由于長時間的淡忘和經(jīng)驗的不足,一開始就遇到不少麻煩,經(jīng)過老師和同學的幫助以及自己的摸索,最后以勉強及格的水準畫出了這次的設計用板。 硬件焊接:開始制作實物之前,按照老師的要求

19、先進行整板的規(guī)劃,這是一個非常關鍵的步驟,因為當你焊接上器件之后將會很難修改。結果發(fā)現(xiàn)了真的還有一些不足,比如在畫板的過程中我們居然忘記留出電源接口,還有一些兩根電源線沒有和其他線接到一塊,另外我給按鍵留的引腳的孔太小了,數(shù)碼管的引腳情況也給弄錯了,這些都是因為經(jīng)驗不夠和粗心造成的。這也都給以后的學習留下了經(jīng)驗和教訓,必須先拿到或熟悉芯片才能確定引腳的間距以及大小,制板過程必須要細心。發(fā)現(xiàn)這些錯誤,在焊接過程中我們采取了一系列的措施來補救這些錯誤。關于焊接,因為自己的水平確實不怎么樣,這需要一定的經(jīng)驗和技巧,但是我卻是遲遲把握不到這種技巧。剛開始烙鐵和焊錫配合不到一塊,然后就是焊錫的量的控制問

20、題,始終達不到老師說明的那種效果,這些都說明了我在實際動手能力方面還有待加強 編程調(diào)試:在整個程序的編寫過程中,研究每個子程序是否可行,我是通過keil c和proteus兩個軟件來實現(xiàn)的。proteus是一個單片機的仿真軟件,發(fā)現(xiàn)它之后真的很受用,通過它可以不用連接硬件就能檢查程序是否可行。keil c則幫助我檢查程序是否存在語法錯誤之類的問題,還可以生成hex文件,供proteus軟件仿真使用。通過這兩個軟件,我完成了整個設計程序的編寫與調(diào)試工作。 通過上面的這個步驟,把程序調(diào)試好,接下來就是真正的硬件連接調(diào)試了。程序既然已經(jīng)在仿真的軟件上通過認證,如果連接上硬件不可行的話,說明在硬件上某

21、個部分存在一定的問題。這點得到了驗證:硬件模擬的時候,緊急情況用的開關有一個有問題,按下的時候沒有反應。用萬用表檢測發(fā)現(xiàn),開關內(nèi)部的連接沒有錯誤,但是當開關按下的時候,不是接通的,說明此開關有問題。于是我又將有問題的開關進行了更換,結果硬件連接調(diào)試很順利。 通過這次畢業(yè)設計,使我得到了一次用專業(yè)知識、專業(yè)技能分析和解決問題全面系統(tǒng)的鍛煉。使我在單片機的基本原理、單片機應用系統(tǒng)開發(fā)過程,以及在常用編程設計思路技巧的掌握方面都能向前邁了一大步,為日后成為合格的應用型人才打下良好的基礎。 致謝轉(zhuǎn)眼間時間已經(jīng)在從我們的指間悄悄流走,沒有任何預兆,但是它卻留下了勤奮的汗水和努力過后的喜悅;我相信一分耕耘

22、一分收獲,特別在本次畢業(yè)設計中我深有體會。當然,做畢業(yè)設計是作為當代一名大學生將知識運用于實踐的一個重要環(huán)節(jié)。在這次畢業(yè)設計中,我鞏固了所學的電子基礎知識,也擴大了自己的知識面,鍛煉了我各方面的能力,這對我今后的學習和工作將產(chǎn)生積極的影響。此次畢業(yè)設計的順利完成離不開指導老師的大力支持,在這里,我特別要感謝我們的指導老師x老師, 是他告訴我不僅要在理論知識方面下手,也要去實際生活中尋找實例。從一開始老師就告訴我們要認真對待自己的畢業(yè)設計,將實際情況仔仔細細的告訴我們,還將最新的畢業(yè)設計信息通知給我們,并且在自己緊張的工作中,還盡量抽出時間關心我們的設計進度情況,督促我們抓緊學習。我們衷心的感謝

23、x老師的指導。在整個課題的設計中,用到了以前所學的知識。最開始老師就教給了我們遇到問題,如何去分析問題、解決問題的方法,使我們受益匪淺。從確定設計題目到現(xiàn)在完成畢業(yè)設計論文的過程中,尤其是在課題設計的前期準備工作和設計的過程中,x老師提出了許許多多寶貴的設計意見,在這段相處的時間里,x老師淵博的知識、敏銳的思路和實事求是的工作作風給我留下了深刻的印象,這也將對我不久的工作,起到很大的鼓動作用,將使得我終身受益,謹此向x老師表達我衷心的感謝和崇高的敬意! 對于學過的知識只有運用到實踐中,才能體現(xiàn)出它的價值。而這次畢業(yè)設計是自我鍛煉的一個很好的機會,讓我的大學生活畫上一個圓滿的句號。我知道,現(xiàn)在社

24、會競爭激烈,只有不斷學習才會有好的出路。母校給了我學習的空間和展示自我的舞臺,今天的成功離不開每位老師的細心教導和同學們的之間互相幫助。在此,再次對所有關心和幫助過我的老師和同學表示衷心的感謝,祝愿您們身體健康,一切順利。參考文獻1張毅剛. 單片機原理及應用.北京:高等教育出版社,2008 2沈紅衛(wèi). 單片機應用系統(tǒng)設計實例.北京:北京航空航天大學出版社,20033陳有卿. 通用集成電路應用與實例分析.北京:中國電力出版社,20074謝自美. 電子線路設計實驗測試武漢:華中科技大學出版社,20065和衛(wèi)星 等.電子電路cad實用技術.合肥:中國科學技術大學出版社,20086余錫存 等. 單片機

25、原理及接口技術.陜西:西安電子科技大學出版社,20077龔尚福. 微機原理與接口技術.西安:西安電子科技大學出版社,20088李全利. 單片機原理及應用技術.北京:高等教育出版社,20039顧 濱. 單片微計算機原理、開發(fā)及應用.北京:高等教育出版社,200010朱家建. 單片機與可編程控制器.北京:高等教育出版社,200111張毅坤. 單片微型計算機原理及應用.陜西:西安電子科技大學出版社,200812趙新民. 智能儀器設計基礎.哈爾濱哈:爾濱工業(yè)大學出版社,199913李麗娟. c語言程序設計教程.北京:人民郵電出版社,200614康華光. 電子技術基礎(模擬部分).北京:高等教育出版社,

26、200615康華光. 電子技術基礎(數(shù)字部分).北京:高等教育出版社,200616馬忠梅 等單片機的c語言應用程序設計.北京:北京航空航天大學出版社,2007附錄1交通燈的總體設計原理圖附錄2pcb板圖附錄3程序清單#include #include #define uchar unsigned char#define uint unsigned intsbit k1=p16;sbit k2=p17;sbit k3=p27;sbit k4=p30;sbit yellowled_nb=p14;/南北黃燈sbit yellowled_dx=p11;/東西黃燈uchar code table11=0

27、x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00;uchar data dig;/位選uchar data led;/偏移量uchar data buf4;uchar data sec_dx=20;/東西數(shù)碼指示值uchar data sec_nb=20;/南北數(shù)碼指示值uchar data set_timedx=20;uchar data set_timenb=20;/倒計時設置的鍵值保存uchar data b;/定時器中斷次數(shù)bit time;/燈狀態(tài)循環(huán)標志bit int0_time;/中斷強行標志bit set;/調(diào)時方向切換

28、鍵標志void delay(int ms);/延時子程序void key();/按鍵掃描子程序void key_to1();/鍵處理子程序void key_to2();void display();/顯示子程序void main()tmod=0x01;th0=0x3c;tl0=0xb0;ea=1;et0=1;tr0=1;ex0=1;ex1=1;p1=0xf3;/ 東西通行while(1)key(); /調(diào)用按鍵掃描程序display(); /調(diào)用顯示程序void key()/按鍵掃描子程序if(k1!=1)delay(10);if(k1!=1)while(k1!=1);key_to1();if

29、(k2!=1)delay(10);if(k2!=1)while(k2!=1);key_to2(); if(k4!=1) delay(10); if(k4!=1) while(k4!=1); set=!set; if(k3!=1&int0_time=1)tr0=1; /啟動定時器sec_nb=20;sec_dx=20;int0_time=0;/清標志 else if(k3!=1&int0_time=0) tr0=1;set_timenb=sec_nb;set_timedx=sec_dx; /設置的鍵值返回保存 void display()buf1=sec_dx/10; /第1位 東西秒十位buf

30、2=sec_dx%10; /第2位 東西秒個位buf3=sec_nb/10; /第3位 南北秒十位buf0=sec_nb%10; /第4位 南北秒個位p0=tablebufled;delay(2);/先延時,提前顯示一位了p2=dig;dig=_crol_(dig,1);led+;if (led=4)led=0;dig=0xfe;void time0(void) interrupt 1 using 1 /定時中斷子程序b+;if(b=10) / 定時器中斷次數(shù)。b=0;sec_dx-;sec_nb-;/*南北黃燈閃爍判斷*/if(sec_nb=3&time=0) yellowled_nb=1;/南北黃燈亮 delay(300); yellowled_nb=0; if(sec_nb=2&time=0)yellowled_nb=1;/南北黃燈亮 delay(300); yellowled_nb=0

溫馨提示

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

評論

0/150

提交評論