基于51單片機匯編語言設(shè)計的交通燈.doc
《基于51單片機匯編語言設(shè)計的交通燈.doc》由會員分享,可在線閱讀,更多相關(guān)《基于51單片機匯編語言設(shè)計的交通燈.doc(23頁珍藏版)》請在裝配圖網(wǎng)上搜索。
交通燈的控制 摘 要:本設(shè)計以AT89C51單片機為主控模塊,主要由按鈕開關(guān),數(shù)碼管,發(fā)光二極管組成,利用匯編語言編寫程序來模擬對十字路口的交通管理,系統(tǒng)包括左右拐,直行,人行道四個基本的交通等功能。南北方向亮綠燈60s,然后黃燈閃爍3次,每次一秒(亮滅各40ms),紅燈40s,同時東西方向紅燈65s,綠燈35s,黃燈閃爍3s。各路燈用LED模擬顯示,同時用七段數(shù)碼管顯示兩路的倒計時時間。利用鍵盤可修改燈亮時間PC機設(shè)置燈亮時間,利用PC與單片機串口通信實現(xiàn) 。為防止出現(xiàn)緊急情況(如119,110通過時),該系統(tǒng)還設(shè)置了中斷,可通過按鍵使各個路口為紅燈其它車輛禁行,特殊車輛通行的狀態(tài),當東西方向為通行狀態(tài)時,南北方向有突發(fā)情況,也可通過手動按鍵使東西方向為紅燈,南北方向為綠燈。 在對系統(tǒng)的分析基礎(chǔ)上,提出了幾種設(shè)計方案,經(jīng)比較選擇各方較好的LED動態(tài)循環(huán)顯示方案進行設(shè)計,設(shè)計包括硬件和軟件兩大部分單片機最小系統(tǒng),時間顯示,交通等顯示三部分。以AT89C51為控制核心,東西南北各設(shè)置3個交通燈,東西,南北方向各設(shè)置一個2位的數(shù)碼管時間顯示器,交通燈顯示則采用紅綠黃三色高亮發(fā)光二極管模擬,軟件采用模塊化的設(shè)計方法,主要分為主程序,定時中斷服務子程序,倒計時顯示子程序,交通燈模擬顯示子程序。 軟件設(shè)計完成,經(jīng)過對該設(shè)計程序模擬測試,可實現(xiàn)對十字路口交通的良好管理,預期目標全部達到,該系統(tǒng)操作簡單,實用性強,擴展功能好。 關(guān)鍵詞:AT89C51 數(shù)碼管 光二極管 中斷 模擬 目錄 1前言 5 1.1該課程選題背景 5 1.2該課程選題現(xiàn)實意義 5 1.3單片機交通燈研究任務 5 2設(shè)計方案 6 2.1方案設(shè)計目的 6 2.2方案設(shè)計思路 6 2.3方案設(shè)計原理 7 3系統(tǒng)硬件設(shè)計 8 3.1 AT89C51芯片簡介 8 3.2 74LS47芯片簡介 11 3.3系統(tǒng)總框圖 12 3.4、交通燈硬件線路 12 3.5、系統(tǒng)工作原理 12 4.軟件設(shè)計 13 4.1每秒鐘的設(shè)定 13 4.2秒的方法 13 4.3相應程序代碼 13 4.4、鍵盤顯示流程圖 14 4.5、 軟件延時 14 5 Proteus軟件仿真 15 5.1正常運行時狀態(tài) 15 5.2黃燈亮時狀態(tài) 16 5.3應急情況下狀態(tài) 16 6 設(shè)計心得體會 17 附錄1:源程序代碼 18 附錄2:硬件連接圖 23 參考文獻 23 1前言 1.1單片機交通控制系統(tǒng)的選題背景 世界上第一盞正式投入使用的交通信號燈出現(xiàn)在1868年12月10日,這盞身高7米,由德哈特設(shè)計的紅綠兩色煤氣燈出現(xiàn)在議會大廈前的十字路口。一位警察手持長桿牽動皮帶轉(zhuǎn)換紅綠兩色:紅燈停,綠燈行。 隨著人口快速的增多,交通工具的爆炸性的發(fā)展,以及道路資源的有限性,交通控制就應運而生,在人類的生活、工作環(huán)境中,交通扮演著極其重要的角色,人們的出行都無時不刻與交通打著交道。自18世紀工業(yè)革命以來,工業(yè)發(fā)展帶動整個交通運輸?shù)陌l(fā)展,從而催生了單獨的交通控制學問與管理機構(gòu)。 道路交通信號燈是交通安全產(chǎn)品中的一個類別,是為了加強道路交通管理,減少交通事故的發(fā)生,提高道路使用效率,改善交通狀況的一種重要工具。適用于十字、丁字等交叉路口,由道路交通信號控制機控制,指導車輛和行人安全有序地通行。 1.2 單片機交通控制系統(tǒng)選題的現(xiàn)實意義 城市道路交通自動控制系統(tǒng)的發(fā)展是以城市交通信號控制技術(shù)為前導,與汽車工業(yè)并行發(fā)展的。在其各個發(fā)展階段,由于交通的各種矛盾不斷出現(xiàn),人們總是盡可能地把各個歷史階段當時的最新科技成果應用到交通自動控制中來,從而促進了交通自動控制技術(shù)的不斷發(fā)展。 交通網(wǎng)絡(luò)是城市的動脈,象征著一個城市的工業(yè)文明水平。交通關(guān)系著人們對于財產(chǎn),安全和時間相關(guān)的利益。具有優(yōu)良科學的交通控制技術(shù)對資源物流和人們出行都是十分有價值的,保證交通線路的暢通安全,才能保證出行舒暢,物流準時到位,甚至是生命通道的延伸。 1.3單片機交通控制系統(tǒng)主要研究的內(nèi)容 基于整個交通控制系統(tǒng)的發(fā)展情況,本設(shè)計主要進行如下方面的研究:用智能,集成,且功能強大的單片機芯片為控制中心,設(shè)計出一套十字路口的交通控制系統(tǒng),以指揮該路口的實時通行狀態(tài)。 本設(shè)計主要做了如下幾方面的工作: 一是確定系統(tǒng)交通控制的總體設(shè)計,包括十字路口具體的通行禁行方案設(shè)計以及系統(tǒng)應擁有的各項功能,在這里,本設(shè)計除了有信號燈狀態(tài)控制能實現(xiàn)基本的交通功能,還增加了倒計時顯示提示,基于實際情況,又要求了對車流量檢測及自調(diào)整模擬功能,違規(guī)檢測及處理,緊急狀況處理。 二是進行智能傳感器的硬件電路,顯示電路等的設(shè)計對各器件的選擇及連接,大 體分配各個器件及模塊的基本功能要求。 2方案設(shè)計 2.1課程設(shè)計目的 2.1.1鞏固和加深對單片機原理和接口技術(shù)知識的理解; 2.1.2培養(yǎng)根據(jù)課題需要選學參考書籍、查閱手冊和文獻資料的能力; 2.1.4掌握常用儀器、儀表的正確使用方法,學會軟、硬件的設(shè)計和調(diào)試方法; 2.1.5能按課程設(shè)計的要求編寫課程設(shè)計報告,能正確反映設(shè)計和實驗成果,能用計算機繪制電路圖和流程圖。 2.1.6通過單片機課程設(shè)計,熟練掌握匯編語言的編程方法,將理論聯(lián)系到實踐中去,提高我們的動腦和動手的能力。 2.1.7通過交通信號燈控制系統(tǒng)的設(shè)計,掌握定時/計數(shù)器及中斷的使用方法,和簡單程序的編寫,最終提高我們的邏輯抽象能力。 2.2設(shè)計思路 東西、南北兩干道交于一個十字路口,各干道有一組紅、黃、綠三色的指示燈,指揮車輛和行人安全通行。紅燈亮禁止通行,綠燈亮允許通行。黃燈亮提示人們注意紅、綠燈的狀態(tài)即將切換,且黃燈燃亮時間為東西、南北兩干道的公共停車時間。設(shè)東西道比南北道的車流量大,指示燈燃亮的方案如表1: 車道\時間 60s 3s 2s 35s 3s 東西道 綠燈 黃燈 紅燈 紅燈 紅燈 南北道 紅燈 紅燈 紅燈 綠燈 黃燈 表1 表1說明:(1)當東西道為綠燈,此道車輛通過,行人禁止通行。時間為60秒;南北方向為紅燈,此道車輛禁止通行,南北道行人可通過。 (2)當東西方向為黃燈閃爍3秒,警示車輛和行人紅、綠燈的狀態(tài)即將切換;南北方向為紅燈,此道車輛禁止通行,南北道行人可通過。 (3)當東西方向為紅燈,此道車輛禁止通行,東西道行人可通過;當南北方向為紅燈,此道車輛禁止通行,南北道行人可通過。 (4)當東西方向為紅燈,此道車輛禁止通行,東西道行人可通過;東西道為綠燈,此道車輛通過,行人禁止通行。時間為35秒。 (5)當東西方向為紅燈,此道車輛禁止通行,東西道行人可通過;南北方向為黃燈閃爍3秒,警示車輛和行人紅、綠燈的狀態(tài)即將切換。 (6)此表可根據(jù)車流量動態(tài)設(shè)定紅綠燈初始值。 2.3設(shè)計原理 人行道 人行道 人行道 人行道 1、首先了解實際交通燈的變化情況和規(guī)律。假設(shè)一個十字路口如上圖所以,為東南西北走向。初始狀態(tài)0為東西南北都紅燈亮。然后轉(zhuǎn)狀態(tài)1東西紅燈亮,南北綠燈亮通行。過一段時間后,轉(zhuǎn)狀態(tài)2,黃燈亮,東西紅燈滅,南北綠燈滅。再轉(zhuǎn)狀態(tài)3,東西綠燈通車,南北紅燈亮。過一段時間后轉(zhuǎn)狀態(tài)4,黃燈亮,東西綠燈滅南北紅燈滅。一段時間后,又循環(huán)至狀態(tài)1。中間可通過中斷按鈕產(chǎn)生中斷,跳入中斷程序執(zhí)行中斷。列出交通信號燈的狀態(tài)表如下:(其中,1代表燈亮,0代表燈滅) 狀態(tài) 北 西 南 東 綠黃紅 綠黃紅 綠黃紅 綠黃紅 0 001 001 001 001 1 100 001 100 001 2 010 010 010 010 3 001 100 001 100 4 010 010 010 010 2、對于交通信號燈來說,應該有東西南北共四組燈,但由于同一道上的兩組的信號燈的顯示情況是相同的,所以只要用兩組就行了,因此,采用單片機內(nèi)部的I/O口上的P1口中的6個引腳即可來控制6個信號燈。 3、通過編寫程序,實現(xiàn)對發(fā)光二極管的控制,來模擬交通信號燈的管理。每延時一段時間,燈的顯示情況都會按交通燈的顯示規(guī)律進行狀態(tài)轉(zhuǎn)換。 4、通過延時時間送顯,可以在原有的交通信號燈系統(tǒng)的基礎(chǔ)上,增添其倒計時間的顯示功能,實現(xiàn)其功能的擴展。 5、通過脈沖中斷編寫中斷程序,可實現(xiàn)中斷。 3系統(tǒng)硬件設(shè)計 選用設(shè)備:AT89C51單片機一片,74LS47芯片二片,電阻排RESPACK-7三個,共陰極的七段數(shù)碼管7SEG-MPX2-CA兩個,紅、黃、綠交通燈各四個,開關(guān)鍵盤、連線、電阻、電容若干。 3.1、AT89C51芯片簡介 AT89C51單片機內(nèi)部結(jié)構(gòu) AT89C51單片機包含中央處理器、程序存儲器(ROM)、數(shù)據(jù)存儲器(RAM)、定時/計數(shù)器、并行接口、串行接口和中斷系統(tǒng)等幾大單元及數(shù)據(jù)總線、地址總線和控制總線等三大總線。 MCS-51的引腳說明: MCS-51系列單片機中的8031、8051及8751均采用40Pin封裝的雙列直接DIP結(jié)構(gòu),右圖是它們的引腳配置,40個引腳中,正電源和地線兩根,外置石英振蕩器的時鐘線兩根,4組8位共32個I/O口,中斷口線與P3口線復用 經(jīng)綜合對本系統(tǒng)的分析,選用AT89C51單片機就非常合適, AT89C51有P0,P1,P2,P3四個外部接口,介紹如下: P0 口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動8個TTL邏 輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入端用。 在訪問外部數(shù)據(jù)存儲器或程序存儲器時,P0口被分時轉(zhuǎn)換地址(低8 位)和數(shù)據(jù)總線復用,在訪問期間激活內(nèi)部上拉電阻。 P1 口:P1 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,P1 輸出緩沖器能驅(qū)動4 個TTL 邏輯電平。對P1 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。 此外,P1.0和P1.2分別作定時器/計數(shù)器2的外部計數(shù)輸入(P1.0/T2)和時器/計數(shù)器2的觸發(fā)輸入(P1.1/T2EX),具體如下表所示。在flash編程和校驗時,P1口接收低8位地址字節(jié)。 P2 口:P2 是一個帶有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 的輸出緩沖級可驅(qū)動(吸收或輸出電流)4 個TTL邏輯門電路。對端口P2 寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流。 P3 口:P3 口是一組帶有內(nèi)部上拉電阻的8 位雙向I/O 口。P3 口輸出緩沖級可驅(qū)動(吸收或輸出電流)4 個TTL 邏輯門電路。對P3 口寫入“1”時,它們被內(nèi)部上拉電阻拉高并可作為輸入端口。此時,被外部拉低的P3 口將用上拉電阻輸出電流。 RST——復位輸入。當振蕩器工作時,RST引腳出現(xiàn)兩個機器周期以上高電平將是單片機復位。 ALE/PROG——當訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時鐘振蕩頻率的1/6輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。對FLASH存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。 PSEN——程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當AT89C52由外部程序存儲器取指令(或數(shù)據(jù))時,每個機器周期兩次PSEN有效,即輸出兩個脈沖,在此期間,當訪問外部數(shù)據(jù)存儲器,將跳過兩次PSEN信號。 EA/VPP——外部訪問允許,欲使CPU僅訪問外部程序存儲器(地址為0000H-FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復位時內(nèi)部會鎖存EA端狀態(tài)。 如EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序存儲器的指令。 下圖是MCS-51系列單片機的內(nèi)部結(jié)構(gòu)示意圖1。 圖1 單片機的復位及初始化如圖2: 圖2 3.2 74LS47芯片簡介 74LS47的端子功能圖如下圖3: 圖3 74LS47的主要功能端如下: BI為熄滅輸入端,低電平有效,當BI=0時,無論其他輸入端狀態(tài)如何,譯碼器輸出七段同時熄滅;BI=1時,不影響譯碼器正常譯碼。 LT為測試輸入端,低電平有效,用于檢查數(shù)碼管的七段是否正常發(fā)光。當LT=0,同時BI=1時,不管輸入的B南北碼是什么狀態(tài),都可使驅(qū)動數(shù)碼管的七段同時點亮。譯碼器要正常譯碼,必須LT輸入無效電平。 RBI為滅零輸入端,低電平有效。設(shè)置滅零輸入端的目的是為了能將不希望顯示的0熄滅,例如一個四位數(shù)碼顯示電路,整數(shù)部分兩位,小數(shù)部分兩位,在顯示6.4時,將出現(xiàn)06.40的字樣,如果將前、后多余的0熄滅,顯示的結(jié)果更醒目一些。滅零輸入端只能對顯示的0進行熄滅,而對其他數(shù)字沒有影響。 在原理圖中,譯碼器與數(shù)碼管的連接如圖4: 圖4 3.3系統(tǒng)總框圖如下: 74LS47七段驅(qū)動器數(shù)據(jù)口 數(shù)碼管顯示CD方向時 間 89C51系 統(tǒng) 處 理 鍵盤設(shè)置時間參數(shù) 東西和CD方向紅綠黃三種燈的顯示情況 74LS47七段驅(qū)動器數(shù)據(jù)口 數(shù)碼管顯示東西方向時 間 3.4、交通燈硬件線路圖: 3.5、系統(tǒng)工作原理 (1)開關(guān)鍵盤a、改變數(shù)碼管顯示的時間;b、開關(guān)控制十字路口十個方向的燈同時顯示紅燈且數(shù)碼管顯示00。 (2) 由AT89C51單片機每秒鐘通過P0、P2口向74LS47的數(shù)據(jù)口送信息,由P1口顯示紅、綠、黃燈的燃亮情況;由7SEG-MPX2-CA顯示每個燈的燃亮時間。 (3)AT89C51 P3.3為低電平時,P1口對應的紅燈即四個方向的紅燈亮,數(shù)碼顯示為00. (4 AT89C51 P3.2有下降沿觸發(fā)時,時間暫停,進入時間顯示狀態(tài),當P3.6為低電平時,時間顯示以240ms的速度進行加1;當P3.7為低電平時,時間顯示以240ms的速度進行減1;當P1.0為低電平時,時間暫停消除,恢復正常。 (5)初始狀態(tài)東西方向綠燈60秒南北方向紅燈65秒。 (6)當東西方向綠燈60秒倒計時完了。進入下一階段,東西方向黃燈3秒,且黃燈以40ms的速度閃爍;南北方向紅燈5秒。 (7)當東西方向黃燈3秒倒計時完。進入第三階段,東西方向紅燈40秒;南北方向紅燈2秒。 (8)當南北方向紅燈2秒倒計時完。進入第四階段,東西方向紅燈38秒;南北方向綠燈35秒。 (9)當南北方向綠燈35秒倒計時完。進入第五階段,東西方向紅燈3秒;南北方向黃燈3秒,且黃燈以40ms的速度閃爍。 (10)東西方向紅燈和南北方向黃燈3秒同時倒計時完畢,重新循環(huán)。 4.軟件設(shè)計 4.1、每秒鐘的設(shè)定 延時方法可以有兩種一中是利用AT89C51內(nèi)部定時器才生溢出中斷來確定1秒的時間,另一種是采用軟延時的方法。 4.2、秒的方法 我們采用在主程序中設(shè)定一個初值為20的軟件計數(shù)器和使T0定時50毫秒.這樣每當T0到50毫秒時CPU就響應它的溢出中斷請求,進入他的中斷服務子程序。在中斷服務子程序中,CPU先使軟件計數(shù)器減1,然后判斷它是否為零。為零表示1秒已到可以返回到輸出時間顯示程序. 4.3、相應程序代碼 (1)主程序 定時器需定時10毫秒,故T0工作于方式1?!〕踔担? T0初值=216-fose/12Xt=216-(12X106X0.01)/12=55536D=D8F0H ORG 0000H MAIN: MOV TMOD,#01H MOV TL0,#0F0H MOV TH0,#0D8H SETB EA SETB ET0 SETB TR0 SETB EX0 SETB EX1 SETB IT0 CLR IT1 SETB PT0 (2)中斷服務子程序 ORG 000BH ZHD2: MOV TL0,#0F0H ;重先賦值 MOV TH0,#0D8H CLR P3.4 RETI 4.4、鍵盤顯示流程圖 鍵盤“設(shè)置”按下 主程序 “加”鍵按下 程序設(shè) 置 “加”數(shù)字顯示程序 “減”數(shù)字顯示程序 主程序 “減”鍵按下 4.5、 軟件延時 MCS-51的工作頻率為2-12MHZ,我們選用的AT89C51單片機的工作頻率為12MHZ。機器周期與主頻有關(guān),機器周期是主頻的12倍,所以一個機器周期的時間為12*(1/12M)=1us。我們可以知道具體每條指令的周期數(shù),這樣我們就可以通過指令的執(zhí)行條數(shù)來確定1秒的時間。 具體的延時程序分析: DEL: MOV R7,#40 ; ;延時10ms DEL1: MOV R6,#123 NOP DEL2: DJNZ R6,DEL2 DJNZ R7,DEL1 RET 5 、Proteus軟件仿真 5.1交通燈控制系統(tǒng)正常運行時仿真圖(見下圖) 5.2 交通燈東西方向向南北方向轉(zhuǎn)變,黃燈亮 5.3應急情況下,東西南北方向都為紅燈,如下圖 6、設(shè)計心得體會 通過這次課程設(shè)計,使我得到了一次用專業(yè)知識、專業(yè)技能分析和解決問題全面系統(tǒng)的鍛煉。使我在單片機的基本原理、單片機應用系統(tǒng)開發(fā)過程,以及在常用編程設(shè)計思路技巧(特別是匯編語言)的掌握方面都能向前邁了一大步。本次課程設(shè)計的過程是艱辛的,不過收獲卻是很大的。 在設(shè)計過程中,會出現(xiàn)了一些問題,但都是常見的小問題,如:代碼中雙引號的使用并不是在英語書寫狀態(tài)下,輸入字母出錯等,在調(diào)試時出現(xiàn)異常,不過這些都是經(jīng)常性錯誤,經(jīng)過調(diào)試修改都一一解決,程序順利完成,并實現(xiàn)了其功能。 綜合課程設(shè)計讓我把以前學習到的知識得到鞏固和進一步的提高認識,對已有知識有了更進一步的理解和認識。在此,由于自身能力有限,在課程設(shè)計中碰到了很多的問題,我通過查閱相關(guān)書籍、資料以及和周圍同學交流。 由于使用的是單片機作為核心的控制元件,使得電路的可靠性比較高,功能也比較強大,而且可以隨時的更新系統(tǒng),進行不同狀態(tài)的組合。但是在我們設(shè)計和調(diào)試的過程中,也發(fā)現(xiàn)了一些問題,譬如紅燈和綠燈的切換還不夠迅速,紅綠燈規(guī)則不效率還不是很高等等,這需要在實踐中進一步完善。 當然,通過這次課程設(shè)計,我也發(fā)現(xiàn)了自身的很多不足之處,在以后的學習中,我會不斷的完善自我。 附錄1: 源程序代碼 ORG 0000H ;偽指令、程序開始、中斷入口地址 LJMP MAIN ORG 0003H LJMP ZHD1 ORG 000BH LJMP ZHD2 ORG 0013H LJMP ZHD3 ORG 1000H ;主程序 MAIN:MOV TMOD,#01H ;設(shè)工作方式 MOV TL0,#0F0H ;設(shè)初值 ,單片機晶振12M,定時10ms MOV TH0,#0D8H SETB EA ;開放總中斷 SETB ET0 ;開放T0中斷 SETB TR0 ;啟動T0定時 SETB EX0 ;開放外中斷0 SETB EX1 ;開放外中斷1 SETB IT0 ;設(shè)外中斷0為邊沿觸發(fā) CLR IT1 ;設(shè)外中斷1為低電平有效 SETB PT0 CYCLE:MOV R0,#60 ;AB方向綠燈顯示時間 MOV R1,#65 ;CD方向紅燈顯示時間 MOV R2,#25 ;為延時1秒而用 ;CD紅燈 AB綠燈 LOOP1:SETB P3.4 MOV P1,#01H SETB P1.7 ;點亮紅燈 SETB P1.4 ;點亮綠燈 LCALL DISPLAY ;調(diào)用顯示程序 DJNZ R2,LOOP1 MOV R2,#25 DEC R1 DJNZ R0,LOOP1 MOV R0,#3 ;AB方向黃燈顯示時間 ;CD紅燈 AB黃燈 LOOP2:MOV P1,#01H SETB P1.7 ;點亮紅燈 SETB P1.3 ;點亮黃燈 LLJ: LCALL DISPLAY ;調(diào)用顯示程序 CPL P1.3 DJNZ R2,LLJ DEC R1 MOV R2,#25 DJNZ R0,LOOP2 MOV R0,#40 ;AB方向紅燈顯示時間 ;CD紅燈 AB紅燈 LOOP3:MOV P1,#01H SETB P1.7 ;點亮紅燈 SETB P1.2 ;點亮紅燈 LCALL DISPLAY ;調(diào)用顯示程序 DJNZ R2,LOOP3 MOV R2,#25 DEC R0 DJNZ R1,LOOP3 MOV R1,#35 ;CD方向綠燈顯示時間 ;CD綠燈 AB紅燈 LOOP4:MOV P1,#01H SETB P1.5 ;點亮綠燈 SETB P1.2 ;點亮紅燈 LCALL DISPLAY ;調(diào)用顯示程序 DJNZ R2,LOOP4 MOV R2,#25 DEC R0 DJNZ R1,LOOP4 MOV R1,#3 ;CD方向黃燈顯示時間 ;CD黃燈 AB紅燈 LOOP5:MOV P1,#01H SETB P1.6 ;點亮黃燈 SETB P1.2 ;點亮紅燈 LLJ1: LCALL DISPLAY ;調(diào)用顯示程序 CPL P1.6 DJNZ R2,LLJ1 MOV R2,#25 DEC R0 DJNZ R1,LOOP5 LJMP CYCLE ;鍵盤中斷程序 ZHD1: LCALL DISPLAY JB P3.6,Q2 INC R1 INC R0 CJNE R1,#99,TIAO2 MOV R1,#00H TIAO2:CJNE R0,#99,TIAO3 MOV R0,#00H TIAO3:LCALL DISPLAY LCALL DISPLAY LCALL DISPLAY LCALL DISPLAY LCALL DISPLAY LCALL DISPLAY JNB P1.0,Z2 Q2: JB P3.7,WAIT1 DEC R1 DEC R0 CJNE R1,#00H,TIAO MOV R1,#99 TIAO: CJNE R0,#00H,TIAO1 MOV R0,#99 TIAO1:LCALL DISPLAY LCALL DISPLAY LCALL DISPLAY LCALL DISPLAY LCALL DISPLAY LCALL DISPLAY WAIT1:JNB P1.0,Z2 WAIT: LJMP ZHD1 Z2: RETI ;時間中斷程序 ZHD2: MOV TL0,#0F0H ;重先賦值 MOV TH0,#0D8H CLR P3.4 RETI ;應急通道中斷程序 ZHD3:MOV P1,#85H MOV P0,#30H MOV P2,#30H JNB P3.3,ZHD3 RETI ;數(shù)顯顯示 DISPLAY:MOV A,R0 ;AB方向時間的顯示 MOV B,#10 DIV AB ;把要顯示的數(shù)的十位存放在A中,個位存放在B中 ADD A,#10H ;位選通十位 MOV P0,A ;顯示十位數(shù)字 TI0: JNB P3.4,TT SJMP TI0 TT: SETB P3.4 MOV A,B ADD A,#20H ;位選通個位 MOV P0,A ;顯示個位數(shù)字 TI1: JNB P3.4,TT1 SJMP TI1 TT1: SETB P3.4 ;CD方向的顯示 MOV A,R1 ;CD方向時間的顯示 MOV B,#10 DIV AB ADD A,#10H ;位選通十位 MOV P2,A ;顯示十位數(shù)字 TI2: JNB P3.4,TT2 SJMP TI2 TT2: SETB P3.4 MOV A,B ADD A,#20H ;位選通個位 MOV P2,A ;顯示個位數(shù)字 TI3: JNB P3.4,TT3 SJMP TI3 TT3: SETB P3.4 RET 附錄2:硬件連接圖 參考文獻 1、《單片微機原理與接口技術(shù)》主編:曾一紅 副主編:劉虹、李壽強 2、《數(shù)字電子技術(shù)》蔣正萍、劉虹、張松、李小平編著 3、http://www.dz3w.com/articlescn/mcu/6162.html- 1.請仔細閱讀文檔,確保文檔完整性,對于不預覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認領(lǐng)!既往收益都歸您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 基于 51 單片機 匯編語言 設(shè)計 交通燈
鏈接地址:http://www.hcyjhs8.com/p-6620034.html